diff options
264 files changed, 29556 insertions, 12968 deletions
diff --git a/.gitignore b/.gitignore index 81e12c0621..5bfb234591 100644 --- a/.gitignore +++ b/.gitignore @@ -178,6 +178,7 @@ /gitweb/static/gitweb.min.* /test-chmtime /test-ctype +/test-config /test-date /test-delta /test-dump-cache-tree diff --git a/Documentation/RelNotes/2.1.1.txt b/Documentation/RelNotes/2.1.1.txt new file mode 100644 index 0000000000..830fc3cc6d --- /dev/null +++ b/Documentation/RelNotes/2.1.1.txt @@ -0,0 +1,44 @@ +Git v2.1.1 Release Notes +======================== + + * Git 2.0 had a regression where "git fetch" into a shallowly + cloned repository from a repository with bitmap object index + enabled did not work correctly. This has been corrected. + + * Git 2.0 had a regression which broke (rarely used) "git diff-tree + -t". This has been corrected. + + * "git log --pretty/format=" with an empty format string did not + mean the more obvious "No output whatsoever" but "Use default + format", which was counterintuitive. Now it means "nothing shown + for the log message part". + + * "git -c section.var command" and "git -c section.var= command" + should pass the configuration differently (the former should be a + boolean true, the latter should be an empty string), but they + didn't work that way. Now it does. + + * Applying a patch not generated by Git in a subdirectory used to + check the whitespace breakage using the attributes for incorrect + paths. Also whitespace checks were performed even for paths + excluded via "git apply --exclude=<path>" mechanism. + + * "git bundle create" with date-range specification were meant to + exclude tags outside the range, but it did not work correctly. + + * "git add x" where x that used to be a directory has become a + symbolic link to a directory misbehaved. + + * The prompt script checked $GIT_DIR/ref/stash file to see if there + is a stash, which was a no-no. + + * "git checkout -m" did not switch to another branch while carrying + the local changes forward when a path was deleted from the index. + + * With sufficiently long refnames, fast-import could have overflown + an on-stack buffer. + + * After "pack-refs --prune" packed refs at the top-level, it failed + to prune them. + + * "git gc --auto" triggered from "git fetch --quiet" was not quiet. diff --git a/Documentation/RelNotes/2.1.2.txt b/Documentation/RelNotes/2.1.2.txt new file mode 100644 index 0000000000..abc3b8928a --- /dev/null +++ b/Documentation/RelNotes/2.1.2.txt @@ -0,0 +1,20 @@ +Git v2.1.2 Release Notes +======================== + + * "git push" over HTTP transport had an artificial limit on number of + refs that can be pushed imposed by the command line length. + + * When receiving an invalid pack stream that records the same object + twice, multiple threads got confused due to a race. + + * An attempt to remove the entire tree in the "git fast-import" input + stream caused it to misbehave. + + * Reachability check (used in "git prune" and friends) did not add a + detached HEAD as a starting point to traverse objects still in use. + + * "git config --add section.var val" used to lose existing + section.var whose value was an empty string. + + * "git fsck" failed to report that it found corrupt objects via its + exit status in some cases. diff --git a/Documentation/RelNotes/2.2.0.txt b/Documentation/RelNotes/2.2.0.txt new file mode 100644 index 0000000000..438f92e344 --- /dev/null +++ b/Documentation/RelNotes/2.2.0.txt @@ -0,0 +1,204 @@ +Git v2.2 Release Notes +====================== + +Updates since v2.1 +------------------ + +Ports + + * Building on older MacOS X systems automatically sets + the necessary NO_APPLE_COMMON_CRYPTO build-time option. + + +UI, Workflows & Features + + * "git config --edit --global" starts from a skeletal per-user + configuration file contents, instead of a total blank, when the + user does not already have any. This immediately reduces the + need for a later "Have you forgotten setting core.user?" and we + can add more to the template as we gain more experience. + + * "git stash list -p" used to be almost always a no-op because each + stash entry is represented as a merge commit. It learned to show + the difference between the base commit version and the working tree + version, which is in line with what "git show" gives. + + * Sometimes users want to report a bug they experience on their + repository, but they are not at liberty to share the contents of + the repository. "fast-export" was taught an "--anonymize" option + to replace blob contents, names of people and paths and log + messages with bland and simple strings to help them. + + * "log --date=iso" uses a slight variant of ISO 8601 format that is + made more human readable. A new "--date=iso-strict" option gives + datetime output that is more strictly conformant. + + * A broken reimplementation of Git could write an invalid index that + records both stage #0 and higher stage entries for the same path. + We now notice and reject such an index, as there is no sensible + fallback (we do not know if the broken tool wanted to resolve and + forgot to remove higher stage entries, or if it wanted to unresolve + and forgot to remove the stage#0 entry). + + * The "pre-receive" and "post-receive" hooks are no longer required + to consume their input fully (not following this requirement used + to result in intermittent errors in "git push"). + + * The pretty-format specifier "%d", which expanded to " (tagname)" + for a tagged commit, gained a cousin "%D" that just gives the + "tagname" without frills. + +Performance, Internal Implementation, etc. + + * The API to manipulate the "refs" is currently undergoing a revamp + to make it more transactional, with the eventual goal to allow + all-or-none atomic updates and migrating the storage to something + other than the traditional filesystem based one (e.g. databases). + + * We no longer attempt to keep track of individual dependencies to + the header files in the build procedure, relying on automated + dependency generation support from modern compilers. + + * In tests, we have been using NOT_{MINGW,CYGWIN} test prerequisites + long before negated prerequisites e.g. !MINGW were invented. + The former has been converted to the latter to avoid confusion. + + * Looking up remotes configuration in a repository with very many + remotes defined has been optimized. + + * There are cases where you lock and open to write a file, close it + to show the updated contents to external processes, and then have + to update the file again while still holding the lock, but the + lockfile API lacked support for such an access pattern. + + * The API to allocate the structure to keep track of commit + decoration has been updated to make it less cumbersome to use. + + * An in-core caching layer to let us avoid reading the same + configuration files number of times has been added. A few commands + have been converted to use this subsystem. + + * Various code paths have been cleaned up and simplified by using + "strbuf", "starts_with()", and "skip_prefix()" APIs more. + + * A few codepaths that died when large blobs that would not fit in + core are involved in their operation have been taught to punt + instead, by e.g. marking too large a blob as not to be diffed. + + * A few more code paths in "commit" and "checkout" have been taught + to repopulate the cache-tree in the index, to help speed up later + "write-tree" (used in "commit") and "diff-index --cached" (used in + "status"). + + * A common programming mistake to assign the same short option name + to two separate options is detected by parse_options() API to help + developers. + + * The code path to write out the packed-refs file has been optimized, + which especially matters in a repository with a large number of + refs. + + * The check to see if a ref $F can be created by making sure no + existing ref has $F/ as its prefix has been optimized, which + especially matters in a repository with a large number of existing + refs. + + * "git fsck" was taught to check contents of tag objects a bit more. + + * "git hash-object" was taught a "--literally" option to help + debugging. + + +Also contains various documentation updates and code clean-ups. + + +Fixes since v2.1 +---------------- + +Unless otherwise noted, all the fixes since v2.1 in the maintenance +track are contained in this release (see the maintenance releases' +notes for details). + + * "git log --pretty/format=" with an empty format string did not + mean the more obvious "No output whatsoever" but "Use default + format", which was counterintuitive. + + * Implementations of "tar" that do not understand an extended pax + header would extract the contents of it in a regular file; make + sure the permission bits of this file follows the same tar.umask + configuration setting. + + * "git -c section.var command" and "git -c section.var= command" + should pass the configuration differently (the former should be a + boolean true, the latter should be an empty string). + + * Applying a patch not generated by Git in a subdirectory used to + check the whitespace breakage using the attributes for incorrect + paths. Also whitespace checks were performed even for paths + excluded via "git apply --exclude=<path>" mechanism. + + * "git bundle create" with date-range specification were meant to + exclude tags outside the range, but it didn't. + + * "git add x" where x that used to be a directory has become a + symbolic link to a directory misbehaved. + + * The prompt script checked $GIT_DIR/ref/stash file to see if there + is a stash, which was a no-no. + + * Pack-protocol documentation had a minor typo. + + * "git checkout -m" did not switch to another branch while carrying + the local changes forward when a path was deleted from the index. + + * With sufficiently long refnames, "git fast-import" could have + overflown an on-stack buffer. + + * After "pack-refs --prune" packed refs at the top-level, it failed + to prune them. + + * Progress output from "git gc --auto" was visible in "git fetch -q". + + * We used to pass -1000 to poll(2), expecting it to also mean "no + timeout", which should be spelled as -1. + + * "git rebase" documentation was unclear that it is required to + specify on what <upstream> the rebase is to be done when telling it + to first check out <branch>. + (merge 95c6826 so/rebase-doc later to maint). + + * "git push" over HTTP transport had an artificial limit on number of + refs that can be pushed imposed by the command line length. + (merge 26be19b jk/send-pack-many-refspecs later to maint). + + * When receiving an invalid pack stream that records the same object + twice, multiple threads got confused due to a race. + (merge ab791dd jk/index-pack-threading-races later to maint). + + * An attempt to remove the entire tree in the "git fast-import" input + stream caused it to misbehave. + (merge 2668d69 mb/fast-import-delete-root later to maint). + + * Reachability check (used in "git prune" and friends) did not add a + detached HEAD as a starting point to traverse objects still in use. + (merge c40fdd0 mk/reachable-protect-detached-head later to maint). + + * "git config --add section.var val" used to lose existing + section.var whose value was an empty string. + (merge c1063be ta/config-add-to-empty-or-true-fix later to maint). + + * "git fsck" failed to report that it found corrupt objects via its + exit status in some cases. + (merge 30d1038 jk/fsck-exit-code-fix later to maint). + + * Use of "--verbose" option used to break "git branch --merged". + (merge 12994dd jk/maint-branch-verbose-merged later to maint). + + * Some MUAs mangled a line in a message that begins with "From " to + ">From " when writing to a mailbox file and feeding such an input + to "git am" used to lose such a line. + (merge 85de86a jk/mbox-from-line later to maint). + + * "rev-parse --verify --quiet $name" is meant to quietly exit with a + non-zero status when $name is not a valid object name, but still + gave error messages in some cases. diff --git a/Documentation/config.txt b/Documentation/config.txt index c55c22ab7b..04a1e2f37e 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -499,7 +499,8 @@ core.bigFileThreshold:: Files larger than this size are stored deflated, without attempting delta compression. Storing large files without delta compression avoids excessive memory usage, at the - slight expense of increased disk usage. + slight expense of increased disk usage. Additionally files + larger than this size are always treated as binary. + Default is 512 MiB on all platforms. This should be reasonable for most projects as source code and other text files can still @@ -2043,6 +2044,25 @@ receive.autogc:: receiving data from git-push and updating refs. You can stop it by setting this variable to false. +receive.certnonceseed:: + By setting this variable to a string, `git receive-pack` + will accept a `git push --signed` and verifies it by using + a "nonce" protected by HMAC using this string as a secret + key. + +receive.certnonceslop:: + When a `git push --signed` sent a push certificate with a + "nonce" that was issued by a receive-pack serving the same + repository within this many seconds, export the "nonce" + found in the certificate to `GIT_PUSH_CERT_NONCE` to the + hooks (instead of what the receive-pack asked the sending + side to include). This may allow writing checks in + `pre-receive` and `post-receive` a bit easier. Instead of + checking `GIT_PUSH_CERT_NONCE_SLOP` environment variable + that records by how many seconds the nonce is stale to + decide if they want to accept the certificate, they only + can check `GIT_PUSH_CERT_NONCE_STATUS` is `OK`. + receive.fsckObjects:: If it is set to true, git-receive-pack will check all received objects. It will abort in the case of a malformed object or a diff --git a/Documentation/git-credential-cache--daemon.txt b/Documentation/git-credential-cache--daemon.txt index d15db42d43..7051c6bdf8 100644 --- a/Documentation/git-credential-cache--daemon.txt +++ b/Documentation/git-credential-cache--daemon.txt @@ -8,7 +8,7 @@ git-credential-cache--daemon - Temporarily store user credentials in memory SYNOPSIS -------- [verse] -git credential-cache--daemon <socket> +git credential-cache--daemon [--debug] <socket> DESCRIPTION ----------- @@ -21,6 +21,10 @@ for `git-credential-cache` clients. Clients may store and retrieve credentials. Each credential is held for a timeout specified by the client; once no credentials are held, the daemon exits. +If the `--debug` option is specified, the daemon does not close its +stderr stream, and may output extra diagnostics to it even after it has +begun listening for clients. + GIT --- Part of the linkgit:git[1] suite diff --git a/Documentation/git-fast-export.txt b/Documentation/git-fast-export.txt index 221506b04b..dbe9a46833 100644 --- a/Documentation/git-fast-export.txt +++ b/Documentation/git-fast-export.txt @@ -105,6 +105,11 @@ marks the same across runs. in the commit (as opposed to just listing the files which are different from the commit's first parent). +--anonymize:: + Anonymize the contents of the repository while still retaining + the shape of the history and stored tree. See the section on + `ANONYMIZING` below. + --refspec:: Apply the specified refspec to each ref exported. Multiple of them can be specified. @@ -141,6 +146,62 @@ referenced by that revision range contains the string 'refs/heads/master'. +ANONYMIZING +----------- + +If the `--anonymize` option is given, git will attempt to remove all +identifying information from the repository while still retaining enough +of the original tree and history patterns to reproduce some bugs. The +goal is that a git bug which is found on a private repository will +persist in the anonymized repository, and the latter can be shared with +git developers to help solve the bug. + +With this option, git will replace all refnames, paths, blob contents, +commit and tag messages, names, and email addresses in the output with +anonymized data. Two instances of the same string will be replaced +equivalently (e.g., two commits with the same author will have the same +anonymized author in the output, but bear no resemblance to the original +author string). The relationship between commits, branches, and tags is +retained, as well as the commit timestamps (but the commit messages and +refnames bear no resemblance to the originals). The relative makeup of +the tree is retained (e.g., if you have a root tree with 10 files and 3 +trees, so will the output), but their names and the contents of the +files will be replaced. + +If you think you have found a git bug, you can start by exporting an +anonymized stream of the whole repository: + +--------------------------------------------------- +$ git fast-export --anonymize --all >anon-stream +--------------------------------------------------- + +Then confirm that the bug persists in a repository created from that +stream (many bugs will not, as they really do depend on the exact +repository contents): + +--------------------------------------------------- +$ git init anon-repo +$ cd anon-repo +$ git fast-import <../anon-stream +$ ... test your bug ... +--------------------------------------------------- + +If the anonymized repository shows the bug, it may be worth sharing +`anon-stream` along with a regular bug report. Note that the anonymized +stream compresses very well, so gzipping it is encouraged. If you want +to examine the stream to see that it does not contain any private data, +you can peruse it directly before sending. You may also want to try: + +--------------------------------------------------- +$ perl -pe 's/\d+/X/g' <anon-stream | sort -u | less +--------------------------------------------------- + +which shows all of the unique lines (with numbers converted to "X", to +collapse "User 0", "User 1", etc into "User X"). This produces a much +smaller output, and it is usually easy to quickly confirm that there is +no private data in the stream. + + Limitations ----------- diff --git a/Documentation/git-imap-send.txt b/Documentation/git-imap-send.txt index 875d2831a5..7d991d919c 100644 --- a/Documentation/git-imap-send.txt +++ b/Documentation/git-imap-send.txt @@ -38,18 +38,17 @@ Variables imap.folder:: The folder to drop the mails into, which is typically the Drafts folder. For example: "INBOX.Drafts", "INBOX/Drafts" or - "[Gmail]/Drafts". Required to use imap-send. + "[Gmail]/Drafts". Required. imap.tunnel:: Command used to setup a tunnel to the IMAP server through which commands will be piped instead of using a direct network connection - to the server. Required when imap.host is not set to use imap-send. + to the server. Required when imap.host is not set. imap.host:: A URL identifying the server. Use a `imap://` prefix for non-secure connections and a `imaps://` prefix for secure connections. - Ignored when imap.tunnel is set, but required to use imap-send - otherwise. + Ignored when imap.tunnel is set, but required otherwise. imap.user:: The username to use when logging in to the server. @@ -76,7 +75,8 @@ imap.preformattedHTML:: imap.authMethod:: Specify authenticate method for authentication with IMAP server. - Current supported method is 'CRAM-MD5' only. + Current supported method is 'CRAM-MD5' only. If this is not set + then 'git imap-send' uses the basic IMAP plaintext LOGIN command. Examples ~~~~~~~~ diff --git a/Documentation/git-init.txt b/Documentation/git-init.txt index afd721e3a9..369f889bb4 100644 --- a/Documentation/git-init.txt +++ b/Documentation/git-init.txt @@ -43,7 +43,7 @@ OPTIONS -q:: --quiet:: -Only print error and warning messages, all other output will be suppressed. +Only print error and warning messages; all other output will be suppressed. --bare:: @@ -57,12 +57,12 @@ DIRECTORY" section below.) --separate-git-dir=<git dir>:: -Instead of initializing the repository where it is supposed to be, -place a filesytem-agnostic Git symbolic link there, pointing to the -specified path, and initialize a Git repository at the path. The -result is Git repository can be separated from working tree. If this -is reinitialization, the repository will be moved to the specified -path. +Instead of initializing the repository as a directory to either `$GIT_DIR` or +`./.git/`, create a text file there containing the path to the actual +repository. This file acts as filesystem-agnostic Git symbolic link to the +repository. ++ +If this is reinitialization, the repository will be moved to the specified path. --shared[=(false|true|umask|group|all|world|everybody|0xxx)]:: @@ -72,60 +72,65 @@ repository. When specified, the config variable "core.sharedRepository" is set so that files and directories under `$GIT_DIR` are created with the requested permissions. When not specified, Git will use permissions reported by umask(2). - ++ The option can have the following values, defaulting to 'group' if no value is given: ++ +-- +'umask' (or 'false'):: - - 'umask' (or 'false'): Use permissions reported by umask(2). The default, - when `--shared` is not specified. +Use permissions reported by umask(2). The default, when `--shared` is not +specified. - - 'group' (or 'true'): Make the repository group-writable, (and g+sx, since - the git group may be not the primary group of all users). - This is used to loosen the permissions of an otherwise safe umask(2) value. - Note that the umask still applies to the other permission bits (e.g. if - umask is '0022', using 'group' will not remove read privileges from other - (non-group) users). See '0xxx' for how to exactly specify the repository - permissions. +'group' (or 'true'):: - - 'all' (or 'world' or 'everybody'): Same as 'group', but make the repository - readable by all users. +Make the repository group-writable, (and g+sx, since the git group may be not +the primary group of all users). This is used to loosen the permissions of an +otherwise safe umask(2) value. Note that the umask still applies to the other +permission bits (e.g. if umask is '0022', using 'group' will not remove read +privileges from other (non-group) users). See '0xxx' for how to exactly specify +the repository permissions. - - '0xxx': '0xxx' is an octal number and each file will have mode '0xxx'. - '0xxx' will override users' umask(2) value (and not only loosen permissions - as 'group' and 'all' does). '0640' will create a repository which is - group-readable, but not group-writable or accessible to others. '0660' will - create a repo that is readable and writable to the current user and group, - but inaccessible to others. +'all' (or 'world' or 'everybody'):: -By default, the configuration flag receive.denyNonFastForwards is enabled +Same as 'group', but make the repository readable by all users. + +'0xxx':: + +'0xxx' is an octal number and each file will have mode '0xxx'. '0xxx' will +override users' umask(2) value (and not only loosen permissions as 'group' and +'all' does). '0640' will create a repository which is group-readable, but not +group-writable or accessible to others. '0660' will create a repo that is +readable and writable to the current user and group, but inaccessible to others. +-- + +By default, the configuration flag `receive.denyNonFastForwards` is enabled in shared repositories, so that you cannot force a non fast-forwarding push into it. -If you name a (possibly non-existent) directory at the end of the command -line, the command is run inside the directory (possibly after creating it). +If you provide a 'directory', the command is run inside it. If this directory +does not exist, it will be created. -- - TEMPLATE DIRECTORY ------------------ The template directory contains files and directories that will be copied to the `$GIT_DIR` after it is created. -The template directory used will (in order): +The template directory will be one of the following (in order): - - The argument given with the `--template` option. + - the argument given with the `--template` option; - - The contents of the `$GIT_TEMPLATE_DIR` environment variable. + - the contents of the `$GIT_TEMPLATE_DIR` environment variable; - - The `init.templatedir` configuration variable. + - the `init.templatedir` configuration variable; or - - The default template directory: `/usr/share/git-core/templates`. + - the default template directory: `/usr/share/git-core/templates`. -The default template directory includes some directory structure, some -suggested "exclude patterns", and copies of sample "hook" files. -The suggested patterns and hook files are all modifiable and extensible. +The default template directory includes some directory structure, suggested +"exclude patterns" (see linkgit:gitignore[5]), and sample hook files (see linkgit:githooks[5]). EXAMPLES -------- @@ -136,10 +141,12 @@ Start a new Git repository for an existing code base:: $ cd /path/to/my/codebase $ git init <1> $ git add . <2> +$ git commit <3> ---------------- + -<1> prepare /path/to/my/codebase/.git directory -<2> add all existing file to the index +<1> Create a /path/to/my/codebase/.git directory. +<2> Add all existing files to the index. +<3> Record the pristine state as the first commit in the history. GIT --- diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt index c0d7403b9a..b17283ab7a 100644 --- a/Documentation/git-push.txt +++ b/Documentation/git-push.txt @@ -10,7 +10,8 @@ SYNOPSIS -------- [verse] 'git push' [--all | --mirror | --tags] [--follow-tags] [-n | --dry-run] [--receive-pack=<git-receive-pack>] - [--repo=<repository>] [-f | --force] [--prune] [-v | --verbose] [-u | --set-upstream] + [--repo=<repository>] [-f | --force] [--prune] [-v | --verbose] + [-u | --set-upstream] [--signed] [--force-with-lease[=<refname>[:<expect>]]] [--no-verify] [<repository> [<refspec>...]] @@ -129,6 +130,12 @@ already exists on the remote side. from the remote but are pointing at commit-ish that are reachable from the refs being pushed. +--signed:: + GPG-sign the push request to update refs on the receiving + side, to allow it to be checked by the hooks and/or be + logged. See linkgit:git-receive-pack[1] for the details + on the receiving end. + --receive-pack=<git-receive-pack>:: --exec=<git-receive-pack>:: Path to the 'git-receive-pack' program on the remote diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt index 2a93c645bd..4138554912 100644 --- a/Documentation/git-rebase.txt +++ b/Documentation/git-rebase.txt @@ -9,7 +9,7 @@ SYNOPSIS -------- [verse] 'git rebase' [-i | --interactive] [options] [--exec <cmd>] [--onto <newbase>] - [<upstream>] [<branch>] + [<upstream> [<branch>]] 'git rebase' [-i | --interactive] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>] 'git rebase' --continue | --skip | --abort | --edit-todo @@ -316,11 +316,8 @@ which makes little sense. -f:: --force-rebase:: - Force the rebase even if the current branch is a descendant - of the commit you are rebasing onto. Normally non-interactive rebase will - exit with the message "Current branch is up to date" in such a - situation. - Incompatible with the --interactive option. + Force a rebase even if the current branch is up-to-date and + the command without `--force` would return without doing anything. + You may find this (or --no-ff with an interactive rebase) helpful after reverting a topic branch merge, as this option recreates the topic branch with diff --git a/Documentation/git-receive-pack.txt b/Documentation/git-receive-pack.txt index b1f7dc643a..9016960e27 100644 --- a/Documentation/git-receive-pack.txt +++ b/Documentation/git-receive-pack.txt @@ -53,6 +53,56 @@ the update. Refs to be created will have sha1-old equal to 0\{40}, while refs to be deleted will have sha1-new equal to 0\{40}, otherwise sha1-old and sha1-new should be valid objects in the repository. +When accepting a signed push (see linkgit:git-push[1]), the signed +push certificate is stored in a blob and an environment variable +`GIT_PUSH_CERT` can be consulted for its object name. See the +description of `post-receive` hook for an example. In addition, the +certificate is verified using GPG and the result is exported with +the following environment variables: + +`GIT_PUSH_CERT_SIGNER`:: + The name and the e-mail address of the owner of the key that + signed the push certificate. + +`GIT_PUSH_CERT_KEY`:: + The GPG key ID of the key that signed the push certificate. + +`GIT_PUSH_CERT_STATUS`:: + The status of GPG verification of the push certificate, + using the same mnemonic as used in `%G?` format of `git log` + family of commands (see linkgit:git-log[1]). + +`GIT_PUSH_CERT_NONCE`:: + The nonce string the process asked the signer to include + in the push certificate. If this does not match the value + recorded on the "nonce" header in the push certificate, it + may indicate that the certificate is a valid one that is + being replayed from a separate "git push" session. + +`GIT_PUSH_CERT_NONCE_STATUS`:: +`UNSOLICITED`;; + "git push --signed" sent a nonce when we did not ask it to + send one. +`MISSING`;; + "git push --signed" did not send any nonce header. +`BAD`;; + "git push --signed" sent a bogus nonce. +`OK`;; + "git push --signed" sent the nonce we asked it to send. +`SLOP`;; + "git push --signed" sent a nonce different from what we + asked it to send now, but in a previous session. See + `GIT_PUSH_CERT_NONCE_SLOP` environment variable. + +`GIT_PUSH_CERT_NONCE_SLOP`:: + "git push --signed" sent a nonce different from what we + asked it to send now, but in a different session whose + starting time is different by this many seconds from the + current session. Only meaningful when + `GIT_PUSH_CERT_NONCE_STATUS` says `SLOP`. + Also read about `receive.certnonceslop` variable in + linkgit:git-config[1]. + This hook is called before any refname is updated and before any fast-forward checks are performed. @@ -101,9 +151,14 @@ the update. Refs that were created will have sha1-old equal to 0\{40}, otherwise sha1-old and sha1-new should be valid objects in the repository. +The `GIT_PUSH_CERT*` environment variables can be inspected, just as +in `pre-receive` hook, after accepting a signed push. + Using this hook, it is easy to generate mails describing the updates to the repository. This example script sends one mail message per -ref listing the commits pushed to the repository: +ref listing the commits pushed to the repository, and logs the push +certificates of signed pushes with good signatures to a logger +service: #!/bin/sh # mail out commit update information. @@ -119,6 +174,14 @@ ref listing the commits pushed to the repository: fi | mail -s "Changes to ref $ref" commit-list@mydomain done + # log signed push certificate, if any + if test -n "${GIT_PUSH_CERT-}" && test ${GIT_PUSH_CERT_STATUS} = G + then + ( + echo expected nonce is ${GIT_PUSH_NONCE} + git cat-file blob ${GIT_PUSH_CERT} + ) | mail -s "push certificate from $GIT_PUSH_CERT_SIGNER" push-log@mydomain + fi exit 0 The exit code from this hook invocation is ignored, however a diff --git a/Documentation/git-rev-list.txt b/Documentation/git-rev-list.txt index 7a1585def0..fd7f8b5bc1 100644 --- a/Documentation/git-rev-list.txt +++ b/Documentation/git-rev-list.txt @@ -45,7 +45,7 @@ SYNOPSIS [ \--regexp-ignore-case | -i ] [ \--extended-regexp | -E ] [ \--fixed-strings | -F ] - [ \--date=(local|relative|default|iso|rfc|short) ] + [ \--date=(local|relative|default|iso|iso-strict|rfc|short) ] [ [\--objects | \--objects-edge] [ \--unpacked ] ] [ \--pretty | \--header ] [ \--bisect ] diff --git a/Documentation/git-rev-parse.txt b/Documentation/git-rev-parse.txt index 0b84769bd9..fa4a8c3afc 100644 --- a/Documentation/git-rev-parse.txt +++ b/Documentation/git-rev-parse.txt @@ -114,6 +114,7 @@ can be used. Only meaningful in `--verify` mode. Do not output an error message if the first argument is not a valid object name; instead exit with non-zero status silently. + SHA-1s for valid object names are printed to stdout on success. --sq:: Usually the output is made one line per flag and diff --git a/Documentation/git-send-pack.txt b/Documentation/git-send-pack.txt index dc3a568baa..2a0de42a75 100644 --- a/Documentation/git-send-pack.txt +++ b/Documentation/git-send-pack.txt @@ -35,6 +35,16 @@ OPTIONS Instead of explicitly specifying which refs to update, update all heads that locally exist. +--stdin:: + Take the list of refs from stdin, one per line. If there + are refs specified on the command line in addition to this + option, then the refs from stdin are processed after those + on the command line. ++ +If '--stateless-rpc' is specified together with this option then +the list of refs must be in packet format (pkt-line). Each ref must +be in a separate packet, and the list must end with a flush packet. + --dry-run:: Do everything except actually send the updates. @@ -77,7 +87,8 @@ this flag. Without '--all' and without any '<ref>', the heads that exist both on the local side and on the remote side are updated. -When one or more '<ref>' are specified explicitly, it can be either a +When one or more '<ref>' are specified explicitly (whether on the +command line or via `--stdin`), it can be either a single pattern, or a pair of such pattern separated by a colon ":" (this means that a ref name cannot have a colon in it). A single pattern '<name>' is just a shorthand for '<name>:<name>'. diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt index 44c970ce18..ef8ef1c545 100644 --- a/Documentation/git-svn.txt +++ b/Documentation/git-svn.txt @@ -386,11 +386,13 @@ Any other arguments are passed directly to 'git log' tree-ish to specify which branch should be searched). When given a tree-ish, returns the corresponding SVN revision number. + +-B;; --before;; Don't require an exact match if given an SVN revision, instead find the commit corresponding to the state of the SVN repository (on the current branch) at the specified revision. + +-A;; --after;; Don't require an exact match if given an SVN revision; if there is not an exact match return the closest match searching forward in the @@ -608,21 +610,6 @@ config key: svn.authorsfile Make 'git svn' less verbose. Specify a second time to make it even less verbose. ---repack[=<n>]:: ---repack-flags=<flags>:: - These should help keep disk usage sane for large fetches with - many revisions. -+ ---repack takes an optional argument for the number of revisions -to fetch before repacking. This defaults to repacking every -1000 commits fetched if no argument is specified. -+ ---repack-flags are passed directly to 'git repack'. -+ -[verse] -config key: svn.repack -config key: svn.repackflags - -m:: --merge:: -s<strategy>:: diff --git a/Documentation/git-tag.txt b/Documentation/git-tag.txt index 320908369f..e953ba4439 100644 --- a/Documentation/git-tag.txt +++ b/Documentation/git-tag.txt @@ -42,7 +42,7 @@ committer identity for the current user is used to find the GnuPG key for signing. The configuration variable `gpg.program` is used to specify custom GnuPG binary. -Tag objects (created with `-a`, `s`, or `-u`) are called "annotated" +Tag objects (created with `-a`, `-s`, or `-u`) are called "annotated" tags; they contain a creation date, the tagger name and e-mail, a tagging message, and an optional GnuPG signature. Whereas a "lightweight" tag is simply a name for an object (usually a commit diff --git a/Documentation/git-update-index.txt b/Documentation/git-update-index.txt index dfc09d93d8..82eca6fdf6 100644 --- a/Documentation/git-update-index.txt +++ b/Documentation/git-update-index.txt @@ -202,7 +202,7 @@ merging. To pretend you have a file with mode and sha1 at path, say: ---------------- -$ git update-index --cacheinfo mode sha1 path +$ git update-index --cacheinfo <mode>,<sha1>,<path> ---------------- '--info-only' is used to register files without placing them in the object diff --git a/Documentation/git.txt b/Documentation/git.txt index de7b870a35..c6175d45e4 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -43,9 +43,11 @@ 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.1.0/git.html[documentation for release 2.1] +* link:v2.1.2/git.html[documentation for release 2.1.2] * release notes for + link:RelNotes/2.1.2.txt[2.1.2], + link:RelNotes/2.1.1.txt[2.1.1], link:RelNotes/2.1.0.txt[2.1]. * link:v2.0.4/git.html[documentation for release 2.0.4] @@ -452,6 +454,11 @@ example the following invocations are equivalent: given will override values from configuration files. The <name> is expected in the same format as listed by 'git config' (subkeys separated by dots). ++ +Note that omitting the `=` in `git -c foo.bar ...` is allowed and sets +`foo.bar` to the boolean true value (just like `[foo]bar` would in a +config file). Including the equals but with an empty value (like `git -c +foo.bar= ...`) sets `foo.bar` to the empty string. --exec-path[=<path>]:: Path to wherever your core Git programs are installed. diff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt index 643c1ba929..9b45bda748 100644 --- a/Documentation/gitattributes.txt +++ b/Documentation/gitattributes.txt @@ -440,8 +440,8 @@ Unspecified:: A path to which the `diff` attribute is unspecified first gets its contents inspected, and if it looks like - text, it is treated as text. Otherwise it would - generate `Binary files differ`. + text and is smaller than core.bigFileThreshold, it is treated + as text. Otherwise it would generate `Binary files differ`. String:: diff --git a/Documentation/pretty-formats.txt b/Documentation/pretty-formats.txt index 85d63532a3..eecc39dec9 100644 --- a/Documentation/pretty-formats.txt +++ b/Documentation/pretty-formats.txt @@ -115,19 +115,22 @@ The placeholders are: - '%aD': author date, RFC2822 style - '%ar': author date, relative - '%at': author date, UNIX timestamp -- '%ai': author date, ISO 8601 format +- '%ai': author date, ISO 8601-like format +- '%aI': author date, strict ISO 8601 format - '%cn': committer name - '%cN': committer name (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1]) - '%ce': committer email - '%cE': committer email (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1]) -- '%cd': committer date +- '%cd': committer date (format respects --date= option) - '%cD': committer date, RFC2822 style - '%cr': committer date, relative - '%ct': committer date, UNIX timestamp -- '%ci': committer date, ISO 8601 format +- '%ci': committer date, ISO 8601-like format +- '%cI': committer date, strict ISO 8601 format - '%d': ref names, like the --decorate option of linkgit:git-log[1] +- '%D': ref names without the " (", ")" wrapping. - '%e': encoding - '%s': subject - '%f': sanitized subject line, suitable for a filename @@ -182,8 +185,9 @@ The placeholders are: NOTE: Some placeholders may depend on other options given to the revision traversal engine. For example, the `%g*` reflog options will insert an empty string unless we are traversing reflog entries (e.g., by -`git log -g`). The `%d` placeholder will use the "short" decoration -format if `--decorate` was not already provided on the command line. +`git log -g`). The `%d` and `%D` placeholders will use the "short" +decoration format if `--decorate` was not already provided on the command +line. If you add a `+` (plus sign) after '%' of a placeholder, a line-feed is inserted immediately before the expansion if and only if the diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt index deb8cca917..5d311b8d46 100644 --- a/Documentation/rev-list-options.txt +++ b/Documentation/rev-list-options.txt @@ -677,7 +677,7 @@ include::pretty-options.txt[] --relative-date:: Synonym for `--date=relative`. ---date=(relative|local|default|iso|rfc|short|raw):: +--date=(relative|local|default|iso|iso-strict|rfc|short|raw):: Only takes effect for dates shown in human-readable format, such as when using `--pretty`. `log.date` config variable sets a default value for the log command's `--date` option. @@ -687,7 +687,16 @@ e.g. ``2 hours ago''. + `--date=local` shows timestamps in user's local time zone. + -`--date=iso` (or `--date=iso8601`) shows timestamps in ISO 8601 format. +`--date=iso` (or `--date=iso8601`) shows timestamps in a ISO 8601-like format. +The differences to the strict ISO 8601 format are: + + - a space instead of the `T` date/time delimiter + - a space between time and time zone + - no colon between hours and minutes of the time zone + ++ +`--date=iso-strict` (or `--date=iso8601-strict`) shows timestamps in strict +ISO 8601 format. + `--date=rfc` (or `--date=rfc2822`) shows timestamps in RFC 2822 format, often found in email messages. diff --git a/Documentation/technical/api-allocation-growing.txt b/Documentation/technical/api-allocation-growing.txt index 542946b1ba..5a59b54844 100644 --- a/Documentation/technical/api-allocation-growing.txt +++ b/Documentation/technical/api-allocation-growing.txt @@ -34,3 +34,6 @@ item[nr++] = value you like; ------------ You are responsible for updating the `nr` variable. + +If you need to specify the number of elements to allocate explicitly +then use the macro `REALLOC_ARRAY(item, alloc)` instead of `ALLOC_GROW`. diff --git a/Documentation/technical/api-config.txt b/Documentation/technical/api-config.txt index edd5018e15..0d8b99b368 100644 --- a/Documentation/technical/api-config.txt +++ b/Documentation/technical/api-config.txt @@ -77,6 +77,99 @@ To read a specific file in git-config format, use `git_config_from_file`. This takes the same callback and data parameters as `git_config`. +Querying For Specific Variables +------------------------------- + +For programs wanting to query for specific variables in a non-callback +manner, the config API provides two functions `git_config_get_value` +and `git_config_get_value_multi`. They both read values from an internal +cache generated previously from reading the config files. + +`int git_config_get_value(const char *key, const char **value)`:: + + Finds the highest-priority value for the configuration variable `key`, + stores the pointer to it in `value` and returns 0. When the + configuration variable `key` is not found, returns 1 without touching + `value`. The caller should not free or modify `value`, as it is owned + by the cache. + +`const struct string_list *git_config_get_value_multi(const char *key)`:: + + Finds and returns the value list, sorted in order of increasing priority + for the configuration variable `key`. When the configuration variable + `key` is not found, returns NULL. The caller should not free or modify + the returned pointer, as it is owned by the cache. + +`void git_config_clear(void)`:: + + Resets and invalidates the config cache. + +The config API also provides type specific API functions which do conversion +as well as retrieval for the queried variable, including: + +`int git_config_get_int(const char *key, int *dest)`:: + + Finds and parses the value to an integer for the configuration variable + `key`. Dies on error; otherwise, stores the value of the parsed integer in + `dest` and returns 0. When the configuration variable `key` is not found, + returns 1 without touching `dest`. + +`int git_config_get_ulong(const char *key, unsigned long *dest)`:: + + Similar to `git_config_get_int` but for unsigned longs. + +`int git_config_get_bool(const char *key, int *dest)`:: + + Finds and parses the value into a boolean value, for the configuration + variable `key` respecting keywords like "true" and "false". Integer + values are converted into true/false values (when they are non-zero or + zero, respectively). Other values cause a die(). If parsing is successful, + stores the value of the parsed result in `dest` and returns 0. When the + configuration variable `key` is not found, returns 1 without touching + `dest`. + +`int git_config_get_bool_or_int(const char *key, int *is_bool, int *dest)`:: + + Similar to `git_config_get_bool`, except that integers are copied as-is, + and `is_bool` flag is unset. + +`int git_config_get_maybe_bool(const char *key, int *dest)`:: + + Similar to `git_config_get_bool`, except that it returns -1 on error + rather than dying. + +`int git_config_get_string_const(const char *key, const char **dest)`:: + + Allocates and copies the retrieved string into the `dest` parameter for + the configuration variable `key`; if NULL string is given, prints an + error message and returns -1. When the configuration variable `key` is + not found, returns 1 without touching `dest`. + +`int git_config_get_string(const char *key, char **dest)`:: + + Similar to `git_config_get_string_const`, except that retrieved value + copied into the `dest` parameter is a mutable string. + +`int git_config_get_pathname(const char *key, const char **dest)`:: + + Similar to `git_config_get_string`, but expands `~` or `~user` into + the user's home directory when found at the beginning of the path. + +`git_die_config(const char *key, const char *err, ...)`:: + + First prints the error message specified by the caller in `err` and then + dies printing the line number and the file name of the highest priority + value for the configuration variable `key`. + +`void git_die_config_linenr(const char *key, const char *filename, int linenr)`:: + + Helper function which formats the die error message according to the + parameters entered. Used by `git_die_config()`. It can be used by callers + handling `git_config_get_value_multi()` to print the correct error message + for the desired value. + +See test-config.c for usage examples. + Value Parsing Helpers --------------------- @@ -134,6 +227,68 @@ int read_file_with_include(const char *file, config_fn_t fn, void *data) `git_config` respects includes automatically. The lower-level `git_config_from_file` does not. +Custom Configsets +----------------- + +A `config_set` can be used to construct an in-memory cache for +config-like files that the caller specifies (i.e., files like `.gitmodules`, +`~/.gitconfig` etc.). For example, + +--------------------------------------- +struct config_set gm_config; +git_configset_init(&gm_config); +int b; +/* we add config files to the config_set */ +git_configset_add_file(&gm_config, ".gitmodules"); +git_configset_add_file(&gm_config, ".gitmodules_alt"); + +if (!git_configset_get_bool(gm_config, "submodule.frotz.ignore", &b)) { + /* hack hack hack */ +} + +/* when we are done with the configset */ +git_configset_clear(&gm_config); +---------------------------------------- + +Configset API provides functions for the above mentioned work flow, including: + +`void git_configset_init(struct config_set *cs)`:: + + Initializes the config_set `cs`. + +`int git_configset_add_file(struct config_set *cs, const char *filename)`:: + + Parses the file and adds the variable-value pairs to the `config_set`, + dies if there is an error in parsing the file. Returns 0 on success, or + -1 if the file does not exist or is inaccessible. The user has to decide + if he wants to free the incomplete configset or continue using it when + the function returns -1. + +`int git_configset_get_value(struct config_set *cs, const char *key, const char **value)`:: + + Finds the highest-priority value for the configuration variable `key` + and config set `cs`, stores the pointer to it in `value` and returns 0. + When the configuration variable `key` is not found, returns 1 without + touching `value`. The caller should not free or modify `value`, as it + is owned by the cache. + +`const struct string_list *git_configset_get_value_multi(struct config_set *cs, const char *key)`:: + + Finds and returns the value list, sorted in order of increasing priority + for the configuration variable `key` and config set `cs`. When the + configuration variable `key` is not found, returns NULL. The caller + should not free or modify the returned pointer, as it is owned by the cache. + +`void git_configset_clear(struct config_set *cs)`:: + + Clears `config_set` structure, removes all saved variable-value pairs. + +In addition to above functions, the `config_set` API provides type specific +functions in the vein of `git_config_get_int` and family but with an extra +parameter, pointer to struct `config_set`. +They all behave similarly to the `git_config_get*()` family described in +"Querying For Specific Variables" above. + Writing Config Files -------------------- diff --git a/Documentation/technical/api-run-command.txt b/Documentation/technical/api-run-command.txt index 69510ae57a..842b8389eb 100644 --- a/Documentation/technical/api-run-command.txt +++ b/Documentation/technical/api-run-command.txt @@ -13,6 +13,10 @@ produces in the caller in order to process it. Functions --------- +`child_process_init` + + Initialize a struct child_process variable. + `start_command`:: Start a sub-process. Takes a pointer to a `struct child_process` @@ -96,8 +100,8 @@ command to run in a sub-process. The caller: -1. allocates and clears (memset(&chld, 0, sizeof(chld));) a - struct child_process variable; +1. allocates and clears (using child_process_init() or + CHILD_PROCESS_INIT) a struct child_process variable; 2. initializes the members; 3. calls start_command(); 4. processes the data; diff --git a/Documentation/technical/api-strbuf.txt b/Documentation/technical/api-strbuf.txt index f9c06a7573..cca6543234 100644 --- a/Documentation/technical/api-strbuf.txt +++ b/Documentation/technical/api-strbuf.txt @@ -160,6 +160,10 @@ then they will free() it. Add a single character to the buffer. +`strbuf_addchars`:: + + Add a character the specified number of times to the buffer. + `strbuf_insert`:: Insert data to the given position of the buffer. The remaining contents @@ -307,6 +311,16 @@ same behaviour as well. use it unless you need the correct position in the file descriptor. +`strbuf_getcwd`:: + + Set the buffer to the path of the current working directory. + +`strbuf_add_absolute_path` + + Add a path to a buffer, converting a relative path to an + absolute one in the process. Symbolic links are not + resolved. + `stripspace`:: Strip whitespace from a buffer. The second parameter controls if diff --git a/Documentation/technical/pack-protocol.txt b/Documentation/technical/pack-protocol.txt index 18dea8d15f..462e20645f 100644 --- a/Documentation/technical/pack-protocol.txt +++ b/Documentation/technical/pack-protocol.txt @@ -212,9 +212,9 @@ out of what the server said it could do with the first 'want' line. want-list = first-want *additional-want - shallow-line = PKT_LINE("shallow" SP obj-id) + shallow-line = PKT-LINE("shallow" SP obj-id) - depth-request = PKT_LINE("deepen" SP depth) + depth-request = PKT-LINE("deepen" SP depth) first-want = PKT-LINE("want" SP obj-id SP capability-list LF) additional-want = PKT-LINE("want" SP obj-id LF) @@ -465,9 +465,9 @@ contain all the objects that the server will need to complete the new references. ---- - update-request = *shallow command-list [pack-file] + update-request = *shallow ( command-list | push-cert ) [pack-file] - shallow = PKT-LINE("shallow" SP obj-id) + shallow = PKT-LINE("shallow" SP obj-id LF) command-list = PKT-LINE(command NUL capability-list LF) *PKT-LINE(command LF) @@ -481,12 +481,27 @@ references. old-id = obj-id new-id = obj-id + push-cert = PKT-LINE("push-cert" NUL capability-list LF) + PKT-LINE("certificate version 0.1" LF) + PKT-LINE("pusher" SP ident LF) + PKT-LINE("pushee" SP url LF) + PKT-LINE("nonce" SP nonce LF) + PKT-LINE(LF) + *PKT-LINE(command LF) + *PKT-LINE(gpg-signature-lines LF) + PKT-LINE("push-cert-end" LF) + pack-file = "PACK" 28*(OCTET) ---- If the receiving end does not support delete-refs, the sending end MUST NOT ask for delete command. +If the receiving end does not support push-cert, the sending end +MUST NOT send a push-cert command. When a push-cert command is +sent, command-list MUST NOT be sent; the commands recorded in the +push certificate is used instead. + The pack-file MUST NOT be sent if the only command used is 'delete'. A pack-file MUST be sent if either create or update command is used, @@ -501,6 +516,34 @@ was being processed (the obj-id is still the same as the old-id), and it will run any update hooks to make sure that the update is acceptable. If all of that is fine, the server will then update the references. +Push Certificate +---------------- + +A push certificate begins with a set of header lines. After the +header and an empty line, the protocol commands follow, one per +line. + +Currently, the following header fields are defined: + +`pusher` ident:: + Identify the GPG key in "Human Readable Name <email@address>" + format. + +`pushee` url:: + The repository URL (anonymized, if the URL contains + authentication material) the user who ran `git push` + intended to push into. + +`nonce` nonce:: + The 'nonce' string the receiving repository asked the + pushing user to include in the certificate, to prevent + replay attacks. + +The GPG signature lines are a detached signature for the contents +recorded in the push certificate before the signature block begins. +The detached signature is used to certify that the commands were +given by the pusher, who must be the signer. + Report Status ------------- diff --git a/Documentation/technical/protocol-capabilities.txt b/Documentation/technical/protocol-capabilities.txt index e174343847..0c92deebcc 100644 --- a/Documentation/technical/protocol-capabilities.txt +++ b/Documentation/technical/protocol-capabilities.txt @@ -18,8 +18,8 @@ was sent. Server MUST NOT ignore capabilities that client requested and server advertised. As a consequence of these rules, server MUST NOT advertise capabilities it does not understand. -The 'report-status', 'delete-refs', and 'quiet' capabilities are sent and -recognized by the receive-pack (push to server) process. +The 'report-status', 'delete-refs', 'quiet', and 'push-cert' capabilities +are sent and recognized by the receive-pack (push to server) process. The 'ofs-delta' and 'side-band-64k' capabilities are sent and recognized by both upload-pack and receive-pack protocols. The 'agent' capability @@ -250,3 +250,12 @@ allow-tip-sha1-in-want If the upload-pack server advertises this capability, fetch-pack may send "want" lines with SHA-1s that exist at the server but are not advertised by upload-pack. + +push-cert=<nonce> +----------------- + +The receive-pack server that advertises this capability is willing +to accept a signed push certificate, and asks the <nonce> to be +included in the push certificate. A send-pack client MUST NOT +send a push-cert packet unless the receive-pack server advertises +this capability. diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN index a4cdfbf7f6..153d55d2b9 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -1,7 +1,7 @@ #!/bin/sh GVF=GIT-VERSION-FILE -DEF_VER=v2.1.0 +DEF_VER=v2.1.0.GIT LF=' ' @@ -14,11 +14,11 @@ all:: # Define INLINE to a suitable substitute (such as '__inline' or '') if git # fails to compile with errors about undefined inline functions or similar. # -# Define SNPRINTF_RETURNS_BOGUS if your are on a system which snprintf() +# Define SNPRINTF_RETURNS_BOGUS if you are on a system which snprintf() # or vsnprintf() return -1 instead of number of characters which would # have been written to the final string if enough space had been available. # -# Define FREAD_READS_DIRECTORIES if your are on a system which succeeds +# Define FREAD_READS_DIRECTORIES if you are on a system which succeeds # when attempting to read from an fopen'ed directory. # # Define NO_OPENSSL environment variable if you do not have OpenSSL. @@ -317,9 +317,6 @@ all:: # dependency rules. The default is "auto", which means to use computed header # dependencies if your compiler is detected to support it. # -# Define CHECK_HEADER_DEPENDENCIES to check for problems in the hard-coded -# dependency rules. -# # Define NATIVE_CRLF if your platform uses CRLF for line endings. # # Define XDL_FAST_HASH to use an alternative line-hashing method in @@ -432,7 +429,6 @@ XDIFF_OBJS = VCSSVN_OBJS = GENERATED_H = EXTRA_CPPFLAGS = -LIB_H = LIB_OBJS = PROGRAM_OBJS = PROGRAMS = @@ -551,6 +547,7 @@ PROGRAMS += $(patsubst %.o,git-%$X,$(PROGRAM_OBJS)) TEST_PROGRAMS_NEED_X += test-chmtime TEST_PROGRAMS_NEED_X += test-ctype +TEST_PROGRAMS_NEED_X += test-config TEST_PROGRAMS_NEED_X += test-date TEST_PROGRAMS_NEED_X += test-delta TEST_PROGRAMS_NEED_X += test-dump-cache-tree @@ -631,131 +628,11 @@ VCSSVN_LIB = vcs-svn/lib.a GENERATED_H += common-cmds.h -LIB_H += advice.h -LIB_H += archive.h -LIB_H += argv-array.h -LIB_H += attr.h -LIB_H += bisect.h -LIB_H += blob.h -LIB_H += branch.h -LIB_H += builtin.h -LIB_H += bulk-checkin.h -LIB_H += bundle.h -LIB_H += cache-tree.h -LIB_H += cache.h -LIB_H += color.h -LIB_H += column.h -LIB_H += commit.h -LIB_H += compat/bswap.h -LIB_H += compat/mingw.h -LIB_H += compat/obstack.h -LIB_H += compat/poll/poll.h -LIB_H += compat/precompose_utf8.h -LIB_H += compat/terminal.h -LIB_H += compat/win32/dirent.h -LIB_H += compat/win32/pthread.h -LIB_H += compat/win32/syslog.h -LIB_H += connected.h -LIB_H += convert.h -LIB_H += credential.h -LIB_H += csum-file.h -LIB_H += decorate.h -LIB_H += delta.h -LIB_H += diff.h -LIB_H += diffcore.h -LIB_H += dir.h -LIB_H += exec_cmd.h -LIB_H += ewah/ewok.h -LIB_H += ewah/ewok_rlw.h -LIB_H += fetch-pack.h -LIB_H += fmt-merge-msg.h -LIB_H += fsck.h -LIB_H += gettext.h -LIB_H += git-compat-util.h -LIB_H += gpg-interface.h -LIB_H += graph.h -LIB_H += grep.h -LIB_H += hashmap.h -LIB_H += help.h -LIB_H += http.h -LIB_H += kwset.h -LIB_H += levenshtein.h -LIB_H += line-log.h -LIB_H += line-range.h -LIB_H += list-objects.h -LIB_H += ll-merge.h -LIB_H += log-tree.h -LIB_H += mailmap.h -LIB_H += merge-blobs.h -LIB_H += merge-recursive.h -LIB_H += mergesort.h -LIB_H += notes-cache.h -LIB_H += notes-merge.h -LIB_H += notes-utils.h -LIB_H += notes.h -LIB_H += object.h -LIB_H += pack-objects.h -LIB_H += pack-revindex.h -LIB_H += pack.h -LIB_H += pack-bitmap.h -LIB_H += parse-options.h -LIB_H += patch-ids.h -LIB_H += pathspec.h -LIB_H += pkt-line.h -LIB_H += prio-queue.h -LIB_H += progress.h -LIB_H += prompt.h -LIB_H += quote.h -LIB_H += reachable.h -LIB_H += reflog-walk.h -LIB_H += refs.h -LIB_H += remote.h -LIB_H += rerere.h -LIB_H += resolve-undo.h -LIB_H += revision.h -LIB_H += run-command.h -LIB_H += send-pack.h -LIB_H += sequencer.h -LIB_H += sha1-array.h -LIB_H += sha1-lookup.h -LIB_H += shortlog.h -LIB_H += sideband.h -LIB_H += sigchain.h -LIB_H += strbuf.h -LIB_H += streaming.h -LIB_H += string-list.h -LIB_H += submodule.h -LIB_H += tag.h -LIB_H += tar.h -LIB_H += thread-utils.h -LIB_H += transport.h -LIB_H += tree-walk.h -LIB_H += tree.h -LIB_H += unpack-trees.h -LIB_H += unicode_width.h -LIB_H += url.h -LIB_H += urlmatch.h -LIB_H += userdiff.h -LIB_H += utf8.h -LIB_H += varint.h -LIB_H += vcs-svn/fast_export.h -LIB_H += vcs-svn/line_buffer.h -LIB_H += vcs-svn/repo_tree.h -LIB_H += vcs-svn/sliding_window.h -LIB_H += vcs-svn/svndiff.h -LIB_H += vcs-svn/svndump.h -LIB_H += walker.h -LIB_H += wildmatch.h -LIB_H += wt-status.h -LIB_H += xdiff-interface.h -LIB_H += xdiff/xdiff.h -LIB_H += xdiff/xdiffi.h -LIB_H += xdiff/xemit.h -LIB_H += xdiff/xinclude.h -LIB_H += xdiff/xmacros.h -LIB_H += xdiff/xprepare.h -LIB_H += xdiff/xtypes.h -LIB_H += xdiff/xutils.h +LIB_H = $(shell $(FIND) . \ + -name .git -prune -o \ + -name t -prune -o \ + -name Documentation -prune -o \ + -name '*.h' -print) LIB_OBJS += abspath.o LIB_OBJS += advice.o @@ -1025,11 +902,6 @@ sysconfdir = etc endif endif -ifdef CHECK_HEADER_DEPENDENCIES -COMPUTE_HEADER_DEPENDENCIES = no -USE_COMPUTED_HEADER_DEPENDENCIES = -endif - ifndef COMPUTE_HEADER_DEPENDENCIES COMPUTE_HEADER_DEPENDENCIES = auto endif @@ -1381,7 +1253,6 @@ ifdef NO_INET_PTON endif ifndef NO_UNIX_SOCKETS LIB_OBJS += unix-socket.o - LIB_H += unix-socket.h PROGRAM_OBJS += credential-cache.o PROGRAM_OBJS += credential-cache--daemon.o endif @@ -1405,12 +1276,10 @@ endif ifdef BLK_SHA1 SHA1_HEADER = "block-sha1/sha1.h" LIB_OBJS += block-sha1/sha1.o - LIB_H += block-sha1/sha1.h else ifdef PPC_SHA1 SHA1_HEADER = "ppc/sha1.h" LIB_OBJS += ppc/sha1.o ppc/sha1ppc.o - LIB_H += ppc/sha1.h else ifdef APPLE_COMMON_CRYPTO COMPAT_CFLAGS += -DCOMMON_DIGEST_FOR_OPENSSL @@ -1479,6 +1348,9 @@ ifdef NO_REGEX COMPAT_CFLAGS += -Icompat/regex COMPAT_OBJS += compat/regex/regex.o endif +ifdef NATIVE_CRLF + BASIC_CFLAGS += -DNATIVE_CRLF +endif ifdef USE_NED_ALLOCATOR COMPAT_CFLAGS += -Icompat/nedmalloc @@ -1659,7 +1531,11 @@ endif profile:: profile-clean $(MAKE) PROFILE=GEN all $(MAKE) PROFILE=GEN -j1 test - $(MAKE) PROFILE=GEN -j1 perf + @if test -n "$$GIT_PERF_REPO" || test -d .git; then \ + $(MAKE) PROFILE=GEN -j1 perf; \ + else \ + echo "Skipping profile of perf tests..."; \ + fi $(MAKE) PROFILE=USE all profile-fast: profile-clean @@ -1933,29 +1809,13 @@ $(dep_dirs): missing_dep_dirs := $(filter-out $(wildcard $(dep_dirs)),$(dep_dirs)) dep_file = $(dir $@).depend/$(notdir $@).d dep_args = -MF $(dep_file) -MQ $@ -MMD -MP -ifdef CHECK_HEADER_DEPENDENCIES -$(error cannot compute header dependencies outside a normal build. \ -Please unset CHECK_HEADER_DEPENDENCIES and try again) -endif endif ifneq ($(COMPUTE_HEADER_DEPENDENCIES),yes) -ifndef CHECK_HEADER_DEPENDENCIES dep_dirs = missing_dep_dirs = dep_args = endif -endif - -ifdef CHECK_HEADER_DEPENDENCIES -ifndef PRINT_HEADER_DEPENDENCIES -missing_deps = $(filter-out $(notdir $^), \ - $(notdir $(shell $(MAKE) -s $@ \ - CHECK_HEADER_DEPENDENCIES=YesPlease \ - USE_COMPUTED_HEADER_DEPENDENCIES=YesPlease \ - PRINT_HEADER_DEPENDENCIES=YesPlease))) -endif -endif ASM_SRC := $(wildcard $(OBJECTS:o=S)) ASM_OBJ := $(ASM_SRC:S=o) @@ -1963,45 +1823,10 @@ C_OBJ := $(filter-out $(ASM_OBJ),$(OBJECTS)) .SUFFIXES: -ifdef PRINT_HEADER_DEPENDENCIES -$(C_OBJ): %.o: %.c FORCE - echo $^ -$(ASM_OBJ): %.o: %.S FORCE - echo $^ - -ifndef CHECK_HEADER_DEPENDENCIES -$(error cannot print header dependencies during a normal build. \ -Please set CHECK_HEADER_DEPENDENCIES and try again) -endif -endif - -ifndef PRINT_HEADER_DEPENDENCIES -ifdef CHECK_HEADER_DEPENDENCIES -$(C_OBJ): %.o: %.c $(dep_files) FORCE - @set -e; echo CHECK $@; \ - missing_deps="$(missing_deps)"; \ - if test "$$missing_deps"; \ - then \ - echo missing dependencies: $$missing_deps; \ - false; \ - fi -$(ASM_OBJ): %.o: %.S $(dep_files) FORCE - @set -e; echo CHECK $@; \ - missing_deps="$(missing_deps)"; \ - if test "$$missing_deps"; \ - then \ - echo missing dependencies: $$missing_deps; \ - false; \ - fi -endif -endif - -ifndef CHECK_HEADER_DEPENDENCIES $(C_OBJ): %.o: %.c GIT-CFLAGS $(missing_dep_dirs) $(QUIET_CC)$(CC) -o $*.o -c $(dep_args) $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $< $(ASM_OBJ): %.o: %.S GIT-CFLAGS $(missing_dep_dirs) $(QUIET_CC)$(CC) -o $*.o -c $(dep_args) $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $< -endif %.s: %.c GIT-CFLAGS FORCE $(QUIET_CC)$(CC) -o $@ -S $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $< @@ -2128,9 +1953,9 @@ XGETTEXT_FLAGS_C = $(XGETTEXT_FLAGS) --language=C \ XGETTEXT_FLAGS_SH = $(XGETTEXT_FLAGS) --language=Shell \ --keyword=gettextln --keyword=eval_gettextln XGETTEXT_FLAGS_PERL = $(XGETTEXT_FLAGS) --keyword=__ --language=Perl -LOCALIZED_C := $(C_OBJ:o=c) $(LIB_H) $(GENERATED_H) -LOCALIZED_SH := $(SCRIPT_SH) -LOCALIZED_PERL := $(SCRIPT_PERL) +LOCALIZED_C = $(C_OBJ:o=c) $(LIB_H) $(GENERATED_H) +LOCALIZED_SH = $(SCRIPT_SH) +LOCALIZED_PERL = $(SCRIPT_PERL) ifdef XGETTEXT_INCLUDE_TESTS LOCALIZED_C += t/t0200/test.c @@ -2138,7 +1963,7 @@ LOCALIZED_SH += t/t0200/test.sh LOCALIZED_PERL += t/t0200/test.perl endif -po/git.pot: $(LOCALIZED_C) +po/git.pot: $(GENERATED_H) FORCE $(QUIET_XGETTEXT)$(XGETTEXT) -o$@+ $(XGETTEXT_FLAGS_C) $(LOCALIZED_C) $(QUIET_XGETTEXT)$(XGETTEXT) -o$@+ --join-existing $(XGETTEXT_FLAGS_SH) \ $(LOCALIZED_SH) @@ -1 +1 @@ -Documentation/RelNotes/2.1.0.txt
\ No newline at end of file +Documentation/RelNotes/2.2.0.txt
\ No newline at end of file @@ -33,7 +33,7 @@ int is_directory(const char *path) */ static const char *real_path_internal(const char *path, int die_on_error) { - static char bufs[2][PATH_MAX + 1], *buf = bufs[0], *next_buf = bufs[1]; + static struct strbuf sb = STRBUF_INIT; char *retval = NULL; /* @@ -41,16 +41,14 @@ static const char *real_path_internal(const char *path, int die_on_error) * here so that we can chdir() back to it at the end of the * function: */ - char cwd[1024] = ""; - - int buf_index = 1; + struct strbuf cwd = STRBUF_INIT; int depth = MAXDEPTH; char *last_elem = NULL; struct stat st; /* We've already done it */ - if (path == buf || path == next_buf) + if (path == sb.buf) return path; if (!*path) { @@ -60,41 +58,38 @@ static const char *real_path_internal(const char *path, int die_on_error) goto error_out; } - if (strlcpy(buf, path, PATH_MAX) >= PATH_MAX) { - if (die_on_error) - die("Too long path: %.*s", 60, path); - else - goto error_out; - } + strbuf_reset(&sb); + strbuf_addstr(&sb, path); while (depth--) { - if (!is_directory(buf)) { - char *last_slash = find_last_dir_sep(buf); + if (!is_directory(sb.buf)) { + char *last_slash = find_last_dir_sep(sb.buf); if (last_slash) { last_elem = xstrdup(last_slash + 1); - last_slash[1] = '\0'; + strbuf_setlen(&sb, last_slash - sb.buf + 1); } else { - last_elem = xstrdup(buf); - *buf = '\0'; + last_elem = xmemdupz(sb.buf, sb.len); + strbuf_reset(&sb); } } - if (*buf) { - if (!*cwd && !getcwd(cwd, sizeof(cwd))) { + if (sb.len) { + if (!cwd.len && strbuf_getcwd(&cwd)) { if (die_on_error) die_errno("Could not get current working directory"); else goto error_out; } - if (chdir(buf)) { + if (chdir(sb.buf)) { if (die_on_error) - die_errno("Could not switch to '%s'", buf); + die_errno("Could not switch to '%s'", + sb.buf); else goto error_out; } } - if (!getcwd(buf, PATH_MAX)) { + if (strbuf_getcwd(&sb)) { if (die_on_error) die_errno("Could not get current working directory"); else @@ -102,48 +97,35 @@ static const char *real_path_internal(const char *path, int die_on_error) } if (last_elem) { - size_t len = strlen(buf); - if (len + strlen(last_elem) + 2 > PATH_MAX) { - if (die_on_error) - die("Too long path name: '%s/%s'", - buf, last_elem); - else - goto error_out; - } - if (len && !is_dir_sep(buf[len - 1])) - buf[len++] = '/'; - strcpy(buf + len, last_elem); + if (sb.len && !is_dir_sep(sb.buf[sb.len - 1])) + strbuf_addch(&sb, '/'); + strbuf_addstr(&sb, last_elem); free(last_elem); last_elem = NULL; } - if (!lstat(buf, &st) && S_ISLNK(st.st_mode)) { - ssize_t len = readlink(buf, next_buf, PATH_MAX); + if (!lstat(sb.buf, &st) && S_ISLNK(st.st_mode)) { + struct strbuf next_sb = STRBUF_INIT; + ssize_t len = strbuf_readlink(&next_sb, sb.buf, 0); if (len < 0) { if (die_on_error) - die_errno("Invalid symlink '%s'", buf); - else - goto error_out; - } - if (PATH_MAX <= len) { - if (die_on_error) - die("symbolic link too long: %s", buf); + die_errno("Invalid symlink '%s'", + sb.buf); else goto error_out; } - next_buf[len] = '\0'; - buf = next_buf; - buf_index = 1 - buf_index; - next_buf = bufs[buf_index]; + strbuf_swap(&sb, &next_sb); + strbuf_release(&next_sb); } else break; } - retval = buf; + retval = sb.buf; error_out: free(last_elem); - if (*cwd && chdir(cwd)) - die_errno("Could not change back to '%s'", cwd); + if (cwd.len && chdir(cwd.buf)) + die_errno("Could not change back to '%s'", cwd.buf); + strbuf_release(&cwd); return retval; } @@ -158,54 +140,16 @@ const char *real_path_if_valid(const char *path) return real_path_internal(path, 0); } -static const char *get_pwd_cwd(void) -{ - static char cwd[PATH_MAX + 1]; - char *pwd; - struct stat cwd_stat, pwd_stat; - if (getcwd(cwd, PATH_MAX) == NULL) - return NULL; - pwd = getenv("PWD"); - if (pwd && strcmp(pwd, cwd)) { - stat(cwd, &cwd_stat); - if ((cwd_stat.st_dev || cwd_stat.st_ino) && - !stat(pwd, &pwd_stat) && - pwd_stat.st_dev == cwd_stat.st_dev && - pwd_stat.st_ino == cwd_stat.st_ino) { - strlcpy(cwd, pwd, PATH_MAX); - } - } - return cwd; -} - /* * Use this to get an absolute path from a relative one. If you want * to resolve links, you should use real_path. - * - * If the path is already absolute, then return path. As the user is - * never meant to free the return value, we're safe. */ const char *absolute_path(const char *path) { - static char buf[PATH_MAX + 1]; - - if (!*path) { - die("The empty string is not a valid path"); - } else if (is_absolute_path(path)) { - if (strlcpy(buf, path, PATH_MAX) >= PATH_MAX) - die("Too long path: %.*s", 60, path); - } else { - size_t len; - const char *fmt; - const char *cwd = get_pwd_cwd(); - if (!cwd) - die_errno("Cannot determine the current working directory"); - len = strlen(cwd); - fmt = (len > 0 && is_dir_sep(cwd[len - 1])) ? "%s%s" : "%s/%s"; - if (snprintf(buf, PATH_MAX, fmt, cwd, path) >= PATH_MAX) - die("Too long path: %.*s", 60, path); - } - return buf; + static struct strbuf sb = STRBUF_INIT; + strbuf_reset(&sb); + strbuf_add_absolute_path(&sb, path); + return sb.buf; } /* @@ -86,8 +86,7 @@ int error_resolve_conflict(const char *me) * other commands doing a merge do. */ advise(_("Fix them up in the work tree, and then use 'git add/rm <file>'\n" - "as appropriate to mark resolution and make a commit, or use\n" - "'git commit -a'.")); + "as appropriate to mark resolution and make a commit.")); return -1; } @@ -1,26 +1,13 @@ #include "cache.h" -static const char *alias_key; -static char *alias_val; - -static int alias_lookup_cb(const char *k, const char *v, void *cb) -{ - const char *name; - if (skip_prefix(k, "alias.", &name) && !strcmp(name, alias_key)) { - if (!v) - return config_error_nonbool(k); - alias_val = xstrdup(v); - return 0; - } - return 0; -} - char *alias_lookup(const char *alias) { - alias_key = alias; - alias_val = NULL; - git_config(alias_lookup_cb, NULL); - return alias_val; + char *v = NULL; + struct strbuf key = STRBUF_INIT; + strbuf_addf(&key, "alias.%s", alias); + git_config_get_string(key.buf, &v); + strbuf_release(&key); + return v; } #define SPLIT_CMDLINE_BAD_ENDING 1 diff --git a/archive-tar.c b/archive-tar.c index 719b6298e6..df2f4c8a64 100644 --- a/archive-tar.c +++ b/archive-tar.c @@ -192,7 +192,7 @@ static int write_extended_header(struct archiver_args *args, unsigned int mode; memset(&header, 0, sizeof(header)); *header.typeflag = TYPEFLAG_EXT_HEADER; - mode = 0100666; + mode = 0100666 & ~tar_umask; sprintf(header.name, "%s.paxheader", sha1_to_hex(sha1)); prepare_header(args, &header, mode, size); write_blocked(&header, sizeof(header)); @@ -300,7 +300,7 @@ static int write_global_extended_header(struct archiver_args *args) strbuf_append_ext_header(&ext_header, "comment", sha1_to_hex(sha1), 40); memset(&header, 0, sizeof(header)); *header.typeflag = TYPEFLAG_GLOBAL_HEADER; - mode = 0100666; + mode = 0100666 & ~tar_umask; strcpy(header.name, "pax_global_header"); prepare_header(args, &header, mode, ext_header.len); write_blocked(&header, sizeof(header)); @@ -395,7 +395,7 @@ static int write_tar_filter_archive(const struct archiver *ar, struct archiver_args *args) { struct strbuf cmd = STRBUF_INIT; - struct child_process filter; + struct child_process filter = CHILD_PROCESS_INIT; const char *argv[2]; int r; @@ -406,7 +406,6 @@ static int write_tar_filter_archive(const struct archiver *ar, if (args->compression_level >= 0) strbuf_addf(&cmd, " -%d", args->compression_level); - memset(&filter, 0, sizeof(filter)); argv[0] = cmd.buf; argv[1] = NULL; filter.argv = argv; @@ -5,6 +5,7 @@ #include "archive.h" #include "parse-options.h" #include "unpack-trees.h" +#include "dir.h" static char const * const archive_usage[] = { N_("git archive [options] <tree-ish> [<path>...]"), @@ -98,9 +99,19 @@ static void setup_archive_check(struct git_attr_check *check) check[1].attr = attr_export_subst; } +struct directory { + struct directory *up; + unsigned char sha1[20]; + int baselen, len; + unsigned mode; + int stage; + char path[FLEX_ARRAY]; +}; + struct archiver_context { struct archiver_args *args; write_archive_entry_fn_t write_entry; + struct directory *bottom; }; static int write_archive_entry(const unsigned char *sha1, const char *base, @@ -146,6 +157,65 @@ static int write_archive_entry(const unsigned char *sha1, const char *base, return write_entry(args, sha1, path.buf, path.len, mode); } +static void queue_directory(const unsigned char *sha1, + const char *base, int baselen, const char *filename, + unsigned mode, int stage, struct archiver_context *c) +{ + struct directory *d; + d = xmallocz(sizeof(*d) + baselen + 1 + strlen(filename)); + d->up = c->bottom; + d->baselen = baselen; + d->mode = mode; + d->stage = stage; + c->bottom = d; + d->len = sprintf(d->path, "%.*s%s/", baselen, base, filename); + hashcpy(d->sha1, sha1); +} + +static int write_directory(struct archiver_context *c) +{ + struct directory *d = c->bottom; + int ret; + + if (!d) + return 0; + c->bottom = d->up; + d->path[d->len - 1] = '\0'; /* no trailing slash */ + ret = + write_directory(c) || + write_archive_entry(d->sha1, d->path, d->baselen, + d->path + d->baselen, d->mode, + d->stage, c) != READ_TREE_RECURSIVE; + free(d); + return ret ? -1 : 0; +} + +static int queue_or_write_archive_entry(const unsigned char *sha1, + const char *base, int baselen, const char *filename, + unsigned mode, int stage, void *context) +{ + struct archiver_context *c = context; + + while (c->bottom && + !(baselen >= c->bottom->len && + !strncmp(base, c->bottom->path, c->bottom->len))) { + struct directory *next = c->bottom->up; + free(c->bottom); + c->bottom = next; + } + + if (S_ISDIR(mode)) { + queue_directory(sha1, base, baselen, filename, + mode, stage, c); + return READ_TREE_RECURSIVE; + } + + if (write_directory(c)) + return -1; + return write_archive_entry(sha1, base, baselen, filename, mode, + stage, context); +} + int write_archive_entries(struct archiver_args *args, write_archive_entry_fn_t write_entry) { @@ -167,6 +237,7 @@ int write_archive_entries(struct archiver_args *args, return err; } + memset(&context, 0, sizeof(context)); context.args = args; context.write_entry = write_entry; @@ -187,9 +258,17 @@ int write_archive_entries(struct archiver_args *args, } err = read_tree_recursive(args->tree, "", 0, 0, &args->pathspec, - write_archive_entry, &context); + args->pathspec.has_wildcard ? + queue_or_write_archive_entry : + write_archive_entry, + &context); if (err == READ_TREE_RECURSIVE) err = 0; + while (context.bottom) { + struct directory *next = context.bottom->up; + free(context.bottom); + context.bottom = next; + } return err; } @@ -211,7 +290,16 @@ static int reject_entry(const unsigned char *sha1, const char *base, int baselen, const char *filename, unsigned mode, int stage, void *context) { - return -1; + int ret = -1; + if (S_ISDIR(mode)) { + struct strbuf sb = STRBUF_INIT; + strbuf_addstr(&sb, base); + strbuf_addstr(&sb, filename); + if (!match_pathspec(context, sb.buf, sb.len, 0, NULL, 1)) + ret = READ_TREE_RECURSIVE; + strbuf_release(&sb); + } + return ret; } static int path_exists(struct tree *tree, const char *path) @@ -221,7 +309,9 @@ static int path_exists(struct tree *tree, const char *path) int ret; parse_pathspec(&pathspec, 0, 0, "", paths); - ret = read_tree_recursive(tree, "", 0, 0, &pathspec, reject_entry, NULL); + pathspec.recursive = 1; + ret = read_tree_recursive(tree, "", 0, 0, &pathspec, + reject_entry, &pathspec); free_pathspec(&pathspec); return ret != 0; } @@ -237,6 +327,7 @@ static void parse_pathspec_arg(const char **pathspec, parse_pathspec(&ar_args->pathspec, 0, PATHSPEC_PREFER_FULL, "", pathspec); + ar_args->pathspec.recursive = 1; if (pathspec) { while (*pathspec) { if (**pathspec && !path_exists(ar_args->tree, *pathspec)) @@ -402,14 +493,6 @@ static int parse_archive_args(int argc, const char **argv, return argc; } -static int git_default_archive_config(const char *var, const char *value, - void *cb) -{ - if (!strcmp(var, "uploadarchive.allowunreachable")) - remote_allow_unreachable = git_config_bool(var, value); - return git_default_config(var, value, cb); -} - int write_archive(int argc, const char **argv, const char *prefix, int setup_prefix, const char *name_hint, int remote) { @@ -420,7 +503,9 @@ int write_archive(int argc, const char **argv, const char *prefix, if (setup_prefix && prefix == NULL) prefix = setup_git_directory_gently(&nongit); - git_config(git_default_archive_config, NULL); + git_config_get_bool("uploadarchive.allowunreachable", &remote_allow_unreachable); + git_config(git_default_config, NULL); + init_tar_archiver(); init_zip_archiver(); @@ -97,8 +97,7 @@ static struct git_attr *git_attr_internal(const char *name, int len) a->attr_nr = attr_nr++; git_attr_hash[pos] = a; - check_all_attr = xrealloc(check_all_attr, - sizeof(*check_all_attr) * attr_nr); + REALLOC_ARRAY(check_all_attr, attr_nr); check_all_attr[a->attr_nr].attr = a; check_all_attr[a->attr_nr].value = ATTR__UNKNOWN; return a; @@ -215,11 +215,12 @@ static struct commit_list *best_bisection_sorted(struct commit_list *list, int n } qsort(array, cnt, sizeof(*array), compare_commit_dist); for (p = list, i = 0; i < cnt; i++) { - struct name_decoration *r = xmalloc(sizeof(*r) + 100); + char buf[100]; /* enough for dist=%d */ struct object *obj = &(array[i].commit->object); - sprintf(r->name, "dist=%d", array[i].distance); - r->next = add_decoration(&name_decoration, obj, r); + snprintf(buf, sizeof(buf), "dist=%d", array[i].distance); + add_name_decoration(DECORATION_NONE, buf, obj); + p->item = array[i].commit; p = p->next; } @@ -140,33 +140,17 @@ static int setup_tracking(const char *new_ref, const char *orig_ref, return 0; } -struct branch_desc_cb { - const char *config_name; - const char *value; -}; - -static int read_branch_desc_cb(const char *var, const char *value, void *cb) -{ - struct branch_desc_cb *desc = cb; - if (strcmp(desc->config_name, var)) - return 0; - free((char *)desc->value); - return git_config_string(&desc->value, var, value); -} - int read_branch_desc(struct strbuf *buf, const char *branch_name) { - struct branch_desc_cb cb; + char *v = NULL; struct strbuf name = STRBUF_INIT; strbuf_addf(&name, "branch.%s.description", branch_name); - cb.config_name = name.buf; - cb.value = NULL; - if (git_config(read_branch_desc_cb, &cb) < 0) { + if (git_config_get_string(name.buf, &v)) { strbuf_release(&name); return -1; } - if (cb.value) - strbuf_addstr(buf, cb.value); + strbuf_addstr(buf, v); + free(v); strbuf_release(&name); return 0; } @@ -226,7 +210,6 @@ void create_branch(const char *head, int force, int reflog, int clobber_head, int quiet, enum branch_track track) { - struct ref_lock *lock = NULL; struct commit *commit; unsigned char sha1[20]; char *real_ref, msg[PATH_MAX + 20]; @@ -285,15 +268,6 @@ void create_branch(const char *head, die(_("Not a valid branch point: '%s'."), start_name); hashcpy(sha1, commit->object.sha1); - if (!dont_change_ref) { - lock = lock_any_ref_for_update(ref.buf, NULL, 0, NULL); - if (!lock) - die_errno(_("Failed to lock ref for update")); - } - - if (reflog) - log_all_ref_updates = 1; - if (forcing) snprintf(msg, sizeof msg, "branch: Reset to %s", start_name); @@ -301,13 +275,26 @@ void create_branch(const char *head, snprintf(msg, sizeof msg, "branch: Created from %s", start_name); + if (reflog) + log_all_ref_updates = 1; + + if (!dont_change_ref) { + struct ref_transaction *transaction; + struct strbuf err = STRBUF_INIT; + + transaction = ref_transaction_begin(&err); + if (!transaction || + ref_transaction_update(transaction, ref.buf, sha1, + null_sha1, 0, !forcing, &err) || + ref_transaction_commit(transaction, msg, &err)) + die("%s", err.buf); + ref_transaction_free(transaction); + strbuf_release(&err); + } + if (real_ref && track) setup_tracking(ref.buf + 11, real_ref, track, quiet); - if (!dont_change_ref) - if (write_ref_sha1(lock, sha1, msg) < 0) - die_errno(_("Failed to write ref")); - strbuf_release(&ref); free(real_ref); } diff --git a/builtin/add.c b/builtin/add.c index 4baf3a5635..352b85e8db 100644 --- a/builtin/add.c +++ b/builtin/add.c @@ -180,7 +180,7 @@ static int edit_patch(int argc, const char **argv, const char *prefix) char *file = git_pathdup("ADD_EDIT.patch"); const char *apply_argv[] = { "apply", "--recount", "--cached", NULL, NULL }; - struct child_process child; + struct child_process child = CHILD_PROCESS_INIT; struct rev_info rev; int out; struct stat st; @@ -214,7 +214,6 @@ static int edit_patch(int argc, const char **argv, const char *prefix) if (!st.st_size) die(_("Empty patch. Aborted.")); - memset(&child, 0, sizeof(child)); child.git_cmd = 1; child.argv = apply_argv; if (run_command(&child)) diff --git a/builtin/apply.c b/builtin/apply.c index be2b4ce2fd..8714a88720 100644 --- a/builtin/apply.c +++ b/builtin/apply.c @@ -1920,6 +1920,66 @@ static int parse_binary(char *buffer, unsigned long size, struct patch *patch) return used; } +static void prefix_one(char **name) +{ + char *old_name = *name; + if (!old_name) + return; + *name = xstrdup(prefix_filename(prefix, prefix_length, *name)); + free(old_name); +} + +static void prefix_patch(struct patch *p) +{ + if (!prefix || p->is_toplevel_relative) + return; + prefix_one(&p->new_name); + prefix_one(&p->old_name); +} + +/* + * include/exclude + */ + +static struct string_list limit_by_name; +static int has_include; +static void add_name_limit(const char *name, int exclude) +{ + struct string_list_item *it; + + it = string_list_append(&limit_by_name, name); + it->util = exclude ? NULL : (void *) 1; +} + +static int use_patch(struct patch *p) +{ + const char *pathname = p->new_name ? p->new_name : p->old_name; + int i; + + /* Paths outside are not touched regardless of "--include" */ + if (0 < prefix_length) { + int pathlen = strlen(pathname); + if (pathlen <= prefix_length || + memcmp(prefix, pathname, prefix_length)) + return 0; + } + + /* See if it matches any of exclude/include rule */ + for (i = 0; i < limit_by_name.nr; i++) { + struct string_list_item *it = &limit_by_name.items[i]; + if (!wildmatch(it->string, pathname, 0, NULL)) + return (it->util != NULL); + } + + /* + * If we had any include, a path that does not match any rule is + * not used. Otherwise, we saw bunch of exclude rules (or none) + * and such a path is used. + */ + return !has_include; +} + + /* * Read the patch text in "buffer" that extends for "size" bytes; stop * reading after seeing a single patch (i.e. changes to a single file). @@ -1935,9 +1995,14 @@ static int parse_chunk(char *buffer, unsigned long size, struct patch *patch) if (offset < 0) return offset; - patch->ws_rule = whitespace_rule(patch->new_name - ? patch->new_name - : patch->old_name); + prefix_patch(patch); + + if (!use_patch(patch)) + patch->ws_rule = 0; + else + patch->ws_rule = whitespace_rule(patch->new_name + ? patch->new_name + : patch->old_name); patchsize = parse_single_patch(buffer + offset + hdrsize, size - offset - hdrsize, patch); @@ -2561,7 +2626,7 @@ static void update_image(struct image *img, * NOTE: this knows that we never call remove_first_line() * on anything other than pre/post image. */ - img->line = xrealloc(img->line, nr * sizeof(*img->line)); + REALLOC_ARRAY(img->line, nr); img->line_allocated = img->line; } if (preimage_limit != postimage->nr) @@ -4127,64 +4192,6 @@ static int write_out_results(struct patch *list) static struct lock_file lock_file; -static struct string_list limit_by_name; -static int has_include; -static void add_name_limit(const char *name, int exclude) -{ - struct string_list_item *it; - - it = string_list_append(&limit_by_name, name); - it->util = exclude ? NULL : (void *) 1; -} - -static int use_patch(struct patch *p) -{ - const char *pathname = p->new_name ? p->new_name : p->old_name; - int i; - - /* Paths outside are not touched regardless of "--include" */ - if (0 < prefix_length) { - int pathlen = strlen(pathname); - if (pathlen <= prefix_length || - memcmp(prefix, pathname, prefix_length)) - return 0; - } - - /* See if it matches any of exclude/include rule */ - for (i = 0; i < limit_by_name.nr; i++) { - struct string_list_item *it = &limit_by_name.items[i]; - if (!wildmatch(it->string, pathname, 0, NULL)) - return (it->util != NULL); - } - - /* - * If we had any include, a path that does not match any rule is - * not used. Otherwise, we saw bunch of exclude rules (or none) - * and such a path is used. - */ - return !has_include; -} - - -static void prefix_one(char **name) -{ - char *old_name = *name; - if (!old_name) - return; - *name = xstrdup(prefix_filename(prefix, prefix_length, *name)); - free(old_name); -} - -static void prefix_patches(struct patch *p) -{ - if (!prefix || p->is_toplevel_relative) - return; - for ( ; p; p = p->next) { - prefix_one(&p->new_name); - prefix_one(&p->old_name); - } -} - #define INACCURATE_EOF (1<<0) #define RECOUNT (1<<1) @@ -4210,8 +4217,6 @@ static int apply_patch(int fd, const char *filename, int options) break; if (apply_in_reverse) reverse_patches(patch); - if (prefix) - prefix_patches(patch); if (use_patch(patch)) { patch_stats(patch); *listp = patch; @@ -4269,13 +4274,11 @@ static int apply_patch(int fd, const char *filename, int options) return 0; } -static int git_apply_config(const char *var, const char *value, void *cb) +static void git_apply_config(void) { - if (!strcmp(var, "apply.whitespace")) - return git_config_string(&apply_default_whitespace, var, value); - else if (!strcmp(var, "apply.ignorewhitespace")) - return git_config_string(&apply_default_ignorewhitespace, var, value); - return git_default_config(var, value, cb); + git_config_get_string_const("apply.whitespace", &apply_default_whitespace); + git_config_get_string_const("apply.ignorewhitespace", &apply_default_ignorewhitespace); + git_config(git_default_config, NULL); } static int option_parse_exclude(const struct option *opt, @@ -4423,7 +4426,7 @@ int cmd_apply(int argc, const char **argv, const char *prefix_) prefix = prefix_; prefix_length = prefix ? strlen(prefix) : 0; - git_config(git_apply_config, NULL); + git_apply_config(); if (apply_default_whitespace) parse_whitespace_option(apply_default_whitespace); if (apply_default_ignorewhitespace) diff --git a/builtin/blame.c b/builtin/blame.c index 17d30d00aa..3838be2b02 100644 --- a/builtin/blame.c +++ b/builtin/blame.c @@ -2580,6 +2580,9 @@ parse_done: case DATE_RFC2822: blame_date_width = sizeof("Thu, 19 Oct 2006 16:00:04 -0700"); break; + case DATE_ISO8601_STRICT: + blame_date_width = sizeof("2006-10-19T16:00:04-07:00"); + break; case DATE_ISO8601: blame_date_width = sizeof("2006-10-19 16:00:04 -0700"); break; @@ -2700,7 +2703,7 @@ parse_done: * uninteresting. */ if (prepare_revision_walk(&revs)) - die("revision walk setup failed"); + die(_("revision walk setup failed")); if (is_null_sha1(sb.final->object.sha1)) { o = sb.final->util; diff --git a/builtin/branch.c b/builtin/branch.c index 0591b22a48..9e4666f0c5 100644 --- a/builtin/branch.c +++ b/builtin/branch.c @@ -280,6 +280,7 @@ struct ref_item { char *dest; unsigned int kind, width; struct commit *commit; + int ignore; }; struct ref_list { @@ -385,6 +386,7 @@ static int append_ref(const char *refname, const unsigned char *sha1, int flags, newitem->commit = commit; newitem->width = utf8_strwidth(refname); newitem->dest = resolve_symref(orig_refname, prefix); + newitem->ignore = 0; /* adjust for "remotes/" */ if (newitem->kind == REF_REMOTE_BRANCH && ref_list->kinds != REF_REMOTE_BRANCH) @@ -484,17 +486,6 @@ static void fill_tracking_info(struct strbuf *stat, const char *branch_name, free(ref); } -static int matches_merge_filter(struct commit *commit) -{ - int is_merged; - - if (merge_filter == NO_FILTER) - return 1; - - is_merged = !!(commit->object.flags & UNINTERESTING); - return (is_merged == (merge_filter == SHOW_MERGED)); -} - static void add_verbose_info(struct strbuf *out, struct ref_item *item, int verbose, int abbrev) { @@ -522,10 +513,9 @@ static void print_ref_item(struct ref_item *item, int maxwidth, int verbose, { char c; int color; - struct commit *commit = item->commit; struct strbuf out = STRBUF_INIT, name = STRBUF_INIT; - if (!matches_merge_filter(commit)) + if (item->ignore) return; switch (item->kind) { @@ -575,7 +565,7 @@ static int calc_maxwidth(struct ref_list *refs) { int i, w = 0; for (i = 0; i < refs->index; i++) { - if (!matches_merge_filter(refs->list[i].commit)) + if (refs->list[i].ignore) continue; if (refs->list[i].width > w) w = refs->list[i].width; @@ -618,6 +608,7 @@ static void show_detached(struct ref_list *ref_list) item.kind = REF_LOCAL_BRANCH; item.dest = NULL; item.commit = head_commit; + item.ignore = 0; if (item.width > ref_list->maxwidth) ref_list->maxwidth = item.width; print_ref_item(&item, ref_list->maxwidth, ref_list->verbose, ref_list->abbrev, 1, ""); @@ -653,7 +644,23 @@ static int print_ref_list(int kinds, int detached, int verbose, int abbrev, stru add_pending_object(&ref_list.revs, (struct object *) filter, ""); ref_list.revs.limited = 1; - prepare_revision_walk(&ref_list.revs); + + if (prepare_revision_walk(&ref_list.revs)) + die(_("revision walk setup failed")); + + for (i = 0; i < ref_list.index; i++) { + struct ref_item *item = &ref_list.list[i]; + struct commit *commit = item->commit; + int is_merged = !!(commit->object.flags & UNINTERESTING); + item->ignore = is_merged != (merge_filter == SHOW_MERGED); + } + + for (i = 0; i < ref_list.index; i++) { + struct ref_item *item = &ref_list.list[i]; + clear_commit_marks(item->commit, ALL_REV_FLAGS); + } + clear_commit_marks(filter, ALL_REV_FLAGS); + if (verbose) ref_list.maxwidth = calc_maxwidth(&ref_list); } diff --git a/builtin/checkout.c b/builtin/checkout.c index f71e74531d..8afdf2b5c4 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -552,6 +552,12 @@ static int merge_working_tree(const struct checkout_opts *opts, } } + if (!active_cache_tree) + active_cache_tree = cache_tree(); + + if (!cache_tree_fully_valid(active_cache_tree)) + cache_tree_update(&the_index, WRITE_TREE_SILENT | WRITE_TREE_REPAIR); + if (write_locked_index(&the_index, lock_file, COMMIT_LOCK)) die(_("unable to write new index file")); diff --git a/builtin/clean.c b/builtin/clean.c index 1032563e5f..3beeea6ec0 100644 --- a/builtin/clean.c +++ b/builtin/clean.c @@ -67,7 +67,7 @@ struct menu_item { char hotkey; const char *title; int selected; - int (*fn)(); + int (*fn)(void); }; enum menu_stuff_type { diff --git a/builtin/clone.c b/builtin/clone.c index bbd169ceb4..3927edfb6e 100644 --- a/builtin/clone.c +++ b/builtin/clone.c @@ -685,9 +685,10 @@ static void write_config(struct string_list *config) } } -static void write_refspec_config(const char* src_ref_prefix, - const struct ref* our_head_points_at, - const struct ref* remote_head_points_at, struct strbuf* branch_top) +static void write_refspec_config(const char *src_ref_prefix, + const struct ref *our_head_points_at, + const struct ref *remote_head_points_at, + struct strbuf *branch_top) { struct strbuf key = STRBUF_INIT; struct strbuf value = STRBUF_INIT; @@ -1004,5 +1005,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix) strbuf_release(&key); strbuf_release(&value); junk_mode = JUNK_LEAVE_ALL; + + free(refspec); return err; } diff --git a/builtin/commit.c b/builtin/commit.c index 5ed60364ce..b0fe7847d3 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -42,7 +42,20 @@ static const char * const builtin_status_usage[] = { NULL }; -static const char implicit_ident_advice[] = +static const char implicit_ident_advice_noconfig[] = +N_("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"); + +static const char implicit_ident_advice_config[] = N_("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:\n" @@ -340,6 +353,13 @@ static char *prepare_index(int argc, const char **argv, const char *prefix, discard_cache(); read_cache_from(index_lock.filename); + if (update_main_cache_tree(WRITE_TREE_SILENT) == 0) { + if (reopen_lock_file(&index_lock) < 0) + die(_("unable to write index file")); + if (write_locked_index(&the_index, &index_lock, CLOSE_LOCK)) + die(_("unable to update temporary index")); + } else + warning(_("Failed to update main cache tree")); commit_style = COMMIT_NORMAL; return index_lock.filename; @@ -380,8 +400,12 @@ static char *prepare_index(int argc, const char **argv, const char *prefix, if (!only && !pathspec.nr) { hold_locked_index(&index_lock, 1); refresh_cache_or_die(refresh_flags); - if (active_cache_changed) { + if (active_cache_changed + || !cache_tree_fully_valid(active_cache_tree)) { update_main_cache_tree(WRITE_TREE_SILENT); + active_cache_changed = 1; + } + if (active_cache_changed) { if (write_locked_index(&the_index, &index_lock, COMMIT_LOCK)) die(_("unable to write new_index file")); @@ -431,6 +455,7 @@ static char *prepare_index(int argc, const char **argv, const char *prefix, hold_locked_index(&index_lock, 1); add_remove_files(&partial); refresh_cache(REFRESH_QUIET); + update_main_cache_tree(WRITE_TREE_SILENT); if (write_locked_index(&the_index, &index_lock, CLOSE_LOCK)) die(_("unable to write new_index file")); @@ -520,77 +545,80 @@ static int sane_ident_split(struct ident_split *person) return 1; } -static int parse_force_date(const char *in, char *out, int len) +static int parse_force_date(const char *in, struct strbuf *out) { - if (len < 1) - return -1; - *out++ = '@'; - len--; + strbuf_addch(out, '@'); - if (parse_date(in, out, len) < 0) { + if (parse_date(in, out) < 0) { int errors = 0; unsigned long t = approxidate_careful(in, &errors); if (errors) return -1; - snprintf(out, len, "%lu", t); + strbuf_addf(out, "%lu", t); } return 0; } +static void set_ident_var(char **buf, char *val) +{ + free(*buf); + *buf = val; +} + +static char *envdup(const char *var) +{ + const char *val = getenv(var); + return val ? xstrdup(val) : NULL; +} + static void determine_author_info(struct strbuf *author_ident) { char *name, *email, *date; struct ident_split author; - char date_buf[64]; - name = getenv("GIT_AUTHOR_NAME"); - email = getenv("GIT_AUTHOR_EMAIL"); - date = getenv("GIT_AUTHOR_DATE"); + name = envdup("GIT_AUTHOR_NAME"); + email = envdup("GIT_AUTHOR_EMAIL"); + date = envdup("GIT_AUTHOR_DATE"); if (author_message) { - const char *a, *lb, *rb, *eol; + struct ident_split ident; size_t len; + const char *a; - a = strstr(author_message_buffer, "\nauthor "); + a = find_commit_header(author_message_buffer, "author", &len); if (!a) - die(_("invalid commit: %s"), author_message); - - lb = strchrnul(a + strlen("\nauthor "), '<'); - rb = strchrnul(lb, '>'); - eol = strchrnul(rb, '\n'); - if (!*lb || !*rb || !*eol) - die(_("invalid commit: %s"), author_message); - - if (lb == a + strlen("\nauthor ")) - /* \nauthor <foo@example.com> */ - name = xcalloc(1, 1); - else - name = xmemdupz(a + strlen("\nauthor "), - (lb - strlen(" ") - - (a + strlen("\nauthor ")))); - email = xmemdupz(lb + strlen("<"), rb - (lb + strlen("<"))); - len = eol - (rb + strlen("> ")); - date = xmalloc(len + 2); - *date = '@'; - memcpy(date + 1, rb + strlen("> "), len); - date[len + 1] = '\0'; + die(_("commit '%s' lacks author header"), author_message); + if (split_ident_line(&ident, a, len) < 0) + die(_("commit '%s' has malformed author line"), author_message); + + set_ident_var(&name, xmemdupz(ident.name_begin, ident.name_end - ident.name_begin)); + set_ident_var(&email, xmemdupz(ident.mail_begin, ident.mail_end - ident.mail_begin)); + + if (ident.date_begin) { + struct strbuf date_buf = STRBUF_INIT; + strbuf_addch(&date_buf, '@'); + strbuf_add(&date_buf, ident.date_begin, ident.date_end - ident.date_begin); + strbuf_addch(&date_buf, ' '); + strbuf_add(&date_buf, ident.tz_begin, ident.tz_end - ident.tz_begin); + set_ident_var(&date, strbuf_detach(&date_buf, NULL)); + } } if (force_author) { - const char *lb = strstr(force_author, " <"); - const char *rb = strchr(force_author, '>'); + struct ident_split ident; - if (!lb || !rb) + if (split_ident_line(&ident, force_author, strlen(force_author)) < 0) die(_("malformed --author parameter")); - name = xstrndup(force_author, lb - force_author); - email = xstrndup(lb + 2, rb - (lb + 2)); + set_ident_var(&name, xmemdupz(ident.name_begin, ident.name_end - ident.name_begin)); + set_ident_var(&email, xmemdupz(ident.mail_begin, ident.mail_end - ident.mail_begin)); } if (force_date) { - if (parse_force_date(force_date, date_buf, sizeof(date_buf))) + struct strbuf date_buf = STRBUF_INIT; + if (parse_force_date(force_date, &date_buf)) die(_("invalid date format: %s"), force_date); - date = date_buf; + set_ident_var(&date, strbuf_detach(&date_buf, NULL)); } strbuf_addstr(author_ident, fmt_ident(name, email, date, IDENT_STRICT)); @@ -600,6 +628,10 @@ static void determine_author_info(struct strbuf *author_ident) export_one("GIT_AUTHOR_EMAIL", author.mail_begin, author.mail_end, 0); export_one("GIT_AUTHOR_DATE", author.date_begin, author.tz_end, '@'); } + + free(name); + free(email); + free(date); } static void split_ident_or_die(struct ident_split *id, const struct strbuf *buf) @@ -1048,7 +1080,8 @@ static const char *find_author_by_nickname(const char *name) revs.mailmap = &mailmap; read_mailmap(revs.mailmap, NULL); - prepare_revision_walk(&revs); + if (prepare_revision_walk(&revs)) + die(_("revision walk setup failed")); commit = get_revision(&revs); if (commit) { struct pretty_print_context ctx = {0}; @@ -1402,6 +1435,24 @@ int cmd_status(int argc, const char **argv, const char *prefix) return 0; } +static const char *implicit_ident_advice(void) +{ + char *user_config = NULL; + char *xdg_config = NULL; + int config_exists; + + home_config_paths(&user_config, &xdg_config, "config"); + config_exists = file_exists(user_config) || file_exists(xdg_config); + free(user_config); + free(xdg_config); + + if (config_exists) + return _(implicit_ident_advice_config); + else + return _(implicit_ident_advice_noconfig); + +} + static void print_summary(const char *prefix, const unsigned char *sha1, int initial_commit) { @@ -1440,7 +1491,7 @@ static void print_summary(const char *prefix, const unsigned char *sha1, strbuf_addbuf_percentquote(&format, &committer_ident); if (advice_implicit_identity) { strbuf_addch(&format, '\n'); - strbuf_addstr(&format, _(implicit_ident_advice)); + strbuf_addstr(&format, implicit_ident_advice()); } } strbuf_release(&author_ident); @@ -1508,7 +1559,7 @@ static int run_rewrite_hook(const unsigned char *oldsha1, { /* oldsha1 SP newsha1 LF NUL */ static char buf[2*40 + 3]; - struct child_process proc; + struct child_process proc = CHILD_PROCESS_INIT; const char *argv[3]; int code; size_t n; @@ -1520,7 +1571,6 @@ static int run_rewrite_hook(const unsigned char *oldsha1, argv[1] = "amend"; argv[2] = NULL; - memset(&proc, 0, sizeof(proc)); proc.argv = argv; proc.in = -1; proc.stdout_to_stderr = 1; @@ -1620,11 +1670,12 @@ int cmd_commit(int argc, const char **argv, const char *prefix) const char *index_file, *reflog_msg; char *nl; unsigned char sha1[20]; - struct ref_lock *ref_lock; struct commit_list *parents = NULL, **pptr = &parents; struct stat statbuf; struct commit *current_head = NULL; struct commit_extra_header *extra = NULL; + struct ref_transaction *transaction; + struct strbuf err = STRBUF_INIT; if (argc == 2 && !strcmp(argv[1], "-h")) usage_with_options(builtin_commit_usage, builtin_commit_options); @@ -1746,16 +1797,6 @@ int cmd_commit(int argc, const char **argv, const char *prefix) strbuf_release(&author_ident); free_commit_extra_headers(extra); - ref_lock = lock_any_ref_for_update("HEAD", - !current_head - ? NULL - : current_head->object.sha1, - 0, NULL); - if (!ref_lock) { - rollback_index_files(); - die(_("cannot lock HEAD ref")); - } - nl = strchr(sb.buf, '\n'); if (nl) strbuf_setlen(&sb, nl + 1 - sb.buf); @@ -1764,10 +1805,17 @@ int cmd_commit(int argc, const char **argv, const char *prefix) strbuf_insert(&sb, 0, reflog_msg, strlen(reflog_msg)); strbuf_insert(&sb, strlen(reflog_msg), ": ", 2); - if (write_ref_sha1(ref_lock, sha1, sb.buf) < 0) { + transaction = ref_transaction_begin(&err); + if (!transaction || + ref_transaction_update(transaction, "HEAD", sha1, + current_head + ? current_head->object.sha1 : NULL, + 0, !!current_head, &err) || + ref_transaction_commit(transaction, sb.buf, &err)) { rollback_index_files(); - die(_("cannot update HEAD ref")); + die("%s", err.buf); } + ref_transaction_free(transaction); unlink(git_path("CHERRY_PICK_HEAD")); unlink(git_path("REVERT_HEAD")); @@ -1778,7 +1826,7 @@ int cmd_commit(int argc, const char **argv, const char *prefix) if (commit_index_files()) die (_("Repository has been updated, but unable to write\n" - "new_index file. Check that disk is not full or quota is\n" + "new_index file. Check that disk is not full and quota is\n" "not exceeded, and then \"git reset HEAD\" to recover.")); rerere(0); @@ -1796,5 +1844,6 @@ int cmd_commit(int argc, const char **argv, const char *prefix) if (!quiet) print_summary(prefix, sha1, !current_head); + strbuf_release(&err); return 0; } diff --git a/builtin/config.c b/builtin/config.c index fcd8474701..37305e93e9 100644 --- a/builtin/config.c +++ b/builtin/config.c @@ -445,6 +445,20 @@ static int get_urlmatch(const char *var, const char *url) return 0; } +static char *default_user_config(void) +{ + struct strbuf buf = STRBUF_INIT; + strbuf_addf(&buf, + _("# This is Git's per-user configuration file.\n" + "[core]\n" + "# Please adapt and uncomment the following lines:\n" + "# user = %s\n" + "# email = %s\n"), + ident_default_name(), + ident_default_email()); + return strbuf_detach(&buf, NULL); +} + int cmd_config(int argc, const char **argv, const char *prefix) { int nongit = !startup_info->have_repository; @@ -551,6 +565,8 @@ int cmd_config(int argc, const char **argv, const char *prefix) } } else if (actions == ACTION_EDIT) { + const char *config_file = given_config_source.file ? + given_config_source.file : git_path("config"); check_argc(argc, 0, 0); if (!given_config_source.file && nongit) die("not in a git directory"); @@ -559,9 +575,18 @@ int cmd_config(int argc, const char **argv, const char *prefix) if (given_config_source.blob) die("editing blobs is not supported"); git_config(git_default_config, NULL); - launch_editor(given_config_source.file ? - given_config_source.file : git_path("config"), - NULL, NULL); + if (use_global_config) { + int fd = open(config_file, O_CREAT | O_EXCL | O_WRONLY, 0666); + if (fd) { + char *content = default_user_config(); + write_str_in_full(fd, content); + free(content); + close(fd); + } + else if (errno != EEXIST) + die_errno(_("cannot create configuration file %s"), config_file); + } + launch_editor(config_file, NULL, NULL); } else if (actions == ACTION_SET) { int ret; @@ -586,7 +611,8 @@ int cmd_config(int argc, const char **argv, const char *prefix) check_argc(argc, 2, 2); value = normalize_value(argv[0], argv[1]); return git_config_set_multivar_in_file(given_config_source.file, - argv[0], value, "^$", 0); + argv[0], value, + CONFIG_REGEX_NONE, 0); } else if (actions == ACTION_REPLACE_ALL) { check_write(); diff --git a/builtin/fast-export.c b/builtin/fast-export.c index 92b4624a4b..b8182c241d 100644 --- a/builtin/fast-export.c +++ b/builtin/fast-export.c @@ -18,6 +18,7 @@ #include "parse-options.h" #include "quote.h" #include "remote.h" +#include "blob.h" static const char *fast_export_usage[] = { N_("git fast-export [rev-list-opts]"), @@ -34,6 +35,7 @@ static int full_tree; static struct string_list extra_refs = STRING_LIST_INIT_NODUP; static struct refspec *refspecs; static int refspecs_nr; +static int anonymize; static int parse_opt_signed_tag_mode(const struct option *opt, const char *arg, int unset) @@ -81,6 +83,76 @@ static int has_unshown_parent(struct commit *commit) return 0; } +struct anonymized_entry { + struct hashmap_entry hash; + const char *orig; + size_t orig_len; + const char *anon; + size_t anon_len; +}; + +static int anonymized_entry_cmp(const void *va, const void *vb, + const void *data) +{ + const struct anonymized_entry *a = va, *b = vb; + return a->orig_len != b->orig_len || + memcmp(a->orig, b->orig, a->orig_len); +} + +/* + * Basically keep a cache of X->Y so that we can repeatedly replace + * the same anonymized string with another. The actual generation + * is farmed out to the generate function. + */ +static const void *anonymize_mem(struct hashmap *map, + void *(*generate)(const void *, size_t *), + const void *orig, size_t *len) +{ + struct anonymized_entry key, *ret; + + if (!map->cmpfn) + hashmap_init(map, anonymized_entry_cmp, 0); + + hashmap_entry_init(&key, memhash(orig, *len)); + key.orig = orig; + key.orig_len = *len; + ret = hashmap_get(map, &key, NULL); + + if (!ret) { + ret = xmalloc(sizeof(*ret)); + hashmap_entry_init(&ret->hash, key.hash.hash); + ret->orig = xstrdup(orig); + ret->orig_len = *len; + ret->anon = generate(orig, len); + ret->anon_len = *len; + hashmap_put(map, ret); + } + + *len = ret->anon_len; + return ret->anon; +} + +/* + * We anonymize each component of a path individually, + * so that paths a/b and a/c will share a common root. + * The paths are cached via anonymize_mem so that repeated + * lookups for "a" will yield the same value. + */ +static void anonymize_path(struct strbuf *out, const char *path, + struct hashmap *map, + void *(*generate)(const void *, size_t *)) +{ + while (*path) { + const char *end_of_component = strchrnul(path, '/'); + size_t len = end_of_component - path; + const char *c = anonymize_mem(map, generate, path, &len); + strbuf_add(out, c, len); + path = end_of_component; + if (*path) + strbuf_addch(out, *path++); + } +} + /* Since intptr_t is C99, we do not use it here */ static inline uint32_t *mark_to_ptr(uint32_t mark) { @@ -119,6 +191,26 @@ static void show_progress(void) printf("progress %d objects\n", counter); } +/* + * Ideally we would want some transformation of the blob data here + * that is unreversible, but would still be the same size and have + * the same data relationship to other blobs (so that we get the same + * delta and packing behavior as the original). But the first and last + * requirements there are probably mutually exclusive, so let's take + * the easy way out for now, and just generate arbitrary content. + * + * There's no need to cache this result with anonymize_mem, since + * we already handle blob content caching with marks. + */ +static char *anonymize_blob(unsigned long *size) +{ + static int counter; + struct strbuf out = STRBUF_INIT; + strbuf_addf(&out, "anonymous blob %d", counter++); + *size = out.len; + return strbuf_detach(&out, NULL); +} + static void export_blob(const unsigned char *sha1) { unsigned long size; @@ -137,12 +229,19 @@ static void export_blob(const unsigned char *sha1) if (object && object->flags & SHOWN) return; - buf = read_sha1_file(sha1, &type, &size); - if (!buf) - die ("Could not read blob %s", sha1_to_hex(sha1)); - if (check_sha1_signature(sha1, buf, size, typename(type)) < 0) - die("sha1 mismatch in blob %s", sha1_to_hex(sha1)); - object = parse_object_buffer(sha1, type, size, buf, &eaten); + if (anonymize) { + buf = anonymize_blob(&size); + object = (struct object *)lookup_blob(sha1); + eaten = 0; + } else { + buf = read_sha1_file(sha1, &type, &size); + if (!buf) + die ("Could not read blob %s", sha1_to_hex(sha1)); + if (check_sha1_signature(sha1, buf, size, typename(type)) < 0) + die("sha1 mismatch in blob %s", sha1_to_hex(sha1)); + object = parse_object_buffer(sha1, type, size, buf, &eaten); + } + if (!object) die("Could not read blob %s", sha1_to_hex(sha1)); @@ -190,7 +289,7 @@ static int depth_first(const void *a_, const void *b_) return (a->status == 'R') - (b->status == 'R'); } -static void print_path(const char *path) +static void print_path_1(const char *path) { int need_quote = quote_c_style(path, NULL, NULL, 0); if (need_quote) @@ -201,6 +300,43 @@ static void print_path(const char *path) printf("%s", path); } +static void *anonymize_path_component(const void *path, size_t *len) +{ + static int counter; + struct strbuf out = STRBUF_INIT; + strbuf_addf(&out, "path%d", counter++); + return strbuf_detach(&out, len); +} + +static void print_path(const char *path) +{ + if (!anonymize) + print_path_1(path); + else { + static struct hashmap paths; + static struct strbuf anon = STRBUF_INIT; + + anonymize_path(&anon, path, &paths, anonymize_path_component); + print_path_1(anon.buf); + strbuf_reset(&anon); + } +} + +static void *generate_fake_sha1(const void *old, size_t *len) +{ + static uint32_t counter = 1; /* avoid null sha1 */ + unsigned char *out = xcalloc(20, 1); + put_be32(out + 16, counter++); + return out; +} + +static const unsigned char *anonymize_sha1(const unsigned char *sha1) +{ + static struct hashmap sha1s; + size_t len = 20; + return anonymize_mem(&sha1s, generate_fake_sha1, sha1, &len); +} + static void show_filemodify(struct diff_queue_struct *q, struct diff_options *options, void *data) { @@ -245,7 +381,9 @@ static void show_filemodify(struct diff_queue_struct *q, */ if (no_data || S_ISGITLINK(spec->mode)) printf("M %06o %s ", spec->mode, - sha1_to_hex(spec->sha1)); + sha1_to_hex(anonymize ? + anonymize_sha1(spec->sha1) : + spec->sha1)); else { struct object *object = lookup_object(spec->sha1); printf("M %06o :%d ", spec->mode, @@ -279,6 +417,114 @@ static const char *find_encoding(const char *begin, const char *end) return bol; } +static void *anonymize_ref_component(const void *old, size_t *len) +{ + static int counter; + struct strbuf out = STRBUF_INIT; + strbuf_addf(&out, "ref%d", counter++); + return strbuf_detach(&out, len); +} + +static const char *anonymize_refname(const char *refname) +{ + /* + * If any of these prefixes is found, we will leave it intact + * so that tags remain tags and so forth. + */ + static const char *prefixes[] = { + "refs/heads/", + "refs/tags/", + "refs/remotes/", + "refs/" + }; + static struct hashmap refs; + static struct strbuf anon = STRBUF_INIT; + int i; + + /* + * We also leave "master" as a special case, since it does not reveal + * anything interesting. + */ + if (!strcmp(refname, "refs/heads/master")) + return refname; + + strbuf_reset(&anon); + for (i = 0; i < ARRAY_SIZE(prefixes); i++) { + if (skip_prefix(refname, prefixes[i], &refname)) { + strbuf_addstr(&anon, prefixes[i]); + break; + } + } + + anonymize_path(&anon, refname, &refs, anonymize_ref_component); + return anon.buf; +} + +/* + * We do not even bother to cache commit messages, as they are unlikely + * to be repeated verbatim, and it is not that interesting when they are. + */ +static char *anonymize_commit_message(const char *old) +{ + static int counter; + return xstrfmt("subject %d\n\nbody\n", counter++); +} + +static struct hashmap idents; +static void *anonymize_ident(const void *old, size_t *len) +{ + static int counter; + struct strbuf out = STRBUF_INIT; + strbuf_addf(&out, "User %d <user%d@example.com>", counter, counter); + counter++; + return strbuf_detach(&out, len); +} + +/* + * Our strategy here is to anonymize the names and email addresses, + * but keep timestamps intact, as they influence things like traversal + * order (and by themselves should not be too revealing). + */ +static void anonymize_ident_line(const char **beg, const char **end) +{ + static struct strbuf buffers[] = { STRBUF_INIT, STRBUF_INIT }; + static unsigned which_buffer; + + struct strbuf *out; + struct ident_split split; + const char *end_of_header; + + out = &buffers[which_buffer++]; + which_buffer %= ARRAY_SIZE(buffers); + strbuf_reset(out); + + /* skip "committer", "author", "tagger", etc */ + end_of_header = strchr(*beg, ' '); + if (!end_of_header) + die("BUG: malformed line fed to anonymize_ident_line: %.*s", + (int)(*end - *beg), *beg); + end_of_header++; + strbuf_add(out, *beg, end_of_header - *beg); + + if (!split_ident_line(&split, end_of_header, *end - end_of_header) && + split.date_begin) { + const char *ident; + size_t len; + + len = split.mail_end - split.name_begin; + ident = anonymize_mem(&idents, anonymize_ident, + split.name_begin, &len); + strbuf_add(out, ident, len); + strbuf_addch(out, ' '); + strbuf_add(out, split.date_begin, split.tz_end - split.date_begin); + } else { + strbuf_addstr(out, "Malformed Ident <malformed@example.com> 0 -0000"); + } + + *beg = out->buf; + *end = out->buf + out->len; +} + static void handle_commit(struct commit *commit, struct rev_info *rev) { int saved_output_format = rev->diffopt.output_format; @@ -287,6 +533,7 @@ static void handle_commit(struct commit *commit, struct rev_info *rev) const char *encoding, *message; char *reencoded = NULL; struct commit_list *p; + const char *refname; int i; rev->diffopt.output_format = DIFF_FORMAT_CALLBACK; @@ -326,13 +573,22 @@ static void handle_commit(struct commit *commit, struct rev_info *rev) if (!S_ISGITLINK(diff_queued_diff.queue[i]->two->mode)) export_blob(diff_queued_diff.queue[i]->two->sha1); + refname = commit->util; + if (anonymize) { + refname = anonymize_refname(refname); + anonymize_ident_line(&committer, &committer_end); + anonymize_ident_line(&author, &author_end); + } + mark_next_object(&commit->object); - if (!is_encoding_utf8(encoding)) + if (anonymize) + reencoded = anonymize_commit_message(message); + else if (!is_encoding_utf8(encoding)) reencoded = reencode_string(message, "UTF-8", encoding); if (!commit->parents) - printf("reset %s\n", (const char*)commit->util); + printf("reset %s\n", refname); printf("commit %s\nmark :%"PRIu32"\n%.*s\n%.*s\ndata %u\n%s", - (const char *)commit->util, last_idnum, + refname, last_idnum, (int)(author_end - author), author, (int)(committer_end - committer), committer, (unsigned)(reencoded @@ -363,6 +619,14 @@ static void handle_commit(struct commit *commit, struct rev_info *rev) show_progress(); } +static void *anonymize_tag(const void *old, size_t *len) +{ + static int counter; + struct strbuf out = STRBUF_INIT; + strbuf_addf(&out, "tag message %d", counter++); + return strbuf_detach(&out, len); +} + static void handle_tail(struct object_array *commits, struct rev_info *revs) { struct commit *commit; @@ -419,6 +683,17 @@ static void handle_tag(const char *name, struct tag *tag) } else { tagger++; tagger_end = strchrnul(tagger, '\n'); + if (anonymize) + anonymize_ident_line(&tagger, &tagger_end); + } + + if (anonymize) { + name = anonymize_refname(name); + if (message) { + static struct hashmap tags; + message = anonymize_mem(&tags, anonymize_tag, + message, &message_size); + } } /* handle signed tags */ @@ -584,6 +859,8 @@ static void handle_tags_and_duplicates(void) handle_tag(name, (struct tag *)object); break; case OBJ_COMMIT: + if (anonymize) + name = anonymize_refname(name); /* create refs pointing to already seen commits */ commit = (struct commit *)object; printf("reset %s\nfrom :%d\n\n", name, @@ -719,6 +996,7 @@ int cmd_fast_export(int argc, const char **argv, const char *prefix) OPT_BOOL(0, "no-data", &no_data, N_("Skip output of blob data")), OPT_STRING_LIST(0, "refspec", &refspecs_list, N_("refspec"), N_("Apply refspec to exported refs")), + OPT_BOOL(0, "anonymize", &anonymize, N_("anonymize output")), OPT_END() }; diff --git a/builtin/fetch.c b/builtin/fetch.c index e8d0cca3e4..159fb7e916 100644 --- a/builtin/fetch.c +++ b/builtin/fetch.c @@ -1110,9 +1110,7 @@ int cmd_fetch(int argc, const char **argv, const char *prefix) struct string_list list = STRING_LIST_INIT_NODUP; struct remote *remote; int result = 0; - static const char *argv_gc_auto[] = { - "gc", "--auto", NULL, - }; + struct argv_array argv_gc_auto = ARGV_ARRAY_INIT; packet_trace_identity("fetch"); @@ -1198,7 +1196,11 @@ int cmd_fetch(int argc, const char **argv, const char *prefix) list.strdup_strings = 1; string_list_clear(&list, 0); - run_command_v_opt(argv_gc_auto, RUN_GIT_CMD); + argv_array_pushl(&argv_gc_auto, "gc", "--auto", NULL); + if (verbosity < 0) + argv_array_push(&argv_gc_auto, "--quiet"); + run_command_v_opt(argv_gc_auto.argv, RUN_GIT_CMD); + argv_array_clear(&argv_gc_auto); return result; } diff --git a/builtin/for-each-ref.c b/builtin/for-each-ref.c index 47bd624696..fda0f04712 100644 --- a/builtin/for-each-ref.c +++ b/builtin/for-each-ref.c @@ -138,10 +138,8 @@ static int parse_atom(const char *atom, const char *ep) /* Add it in, including the deref prefix */ at = used_atom_cnt; used_atom_cnt++; - used_atom = xrealloc(used_atom, - (sizeof *used_atom) * used_atom_cnt); - used_atom_type = xrealloc(used_atom_type, - (sizeof(*used_atom_type) * 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; if (*atom == '*') @@ -633,7 +631,7 @@ static void populate_value(struct refinfo *ref) unsigned long size; const unsigned char *tagged; - ref->value = xcalloc(sizeof(struct atom_value), used_atom_cnt); + ref->value = xcalloc(used_atom_cnt, sizeof(struct atom_value)); if (need_symref && (ref->flag & REF_ISSYMREF) && !ref->symref) { unsigned char unused1[20]; @@ -870,8 +868,7 @@ static int grab_single_ref(const char *refname, const unsigned char *sha1, int f ref->flag = flag; cnt = cb->grab_cnt; - cb->grab_array = xrealloc(cb->grab_array, - sizeof(*cb->grab_array) * (cnt + 1)); + REALLOC_ARRAY(cb->grab_array, cnt + 1); cb->grab_array[cnt++] = ref; cb->grab_cnt = cnt; return 0; diff --git a/builtin/fsck.c b/builtin/fsck.c index d42a27da89..e9ba576c1f 100644 --- a/builtin/fsck.c +++ b/builtin/fsck.c @@ -298,7 +298,7 @@ static int fsck_obj(struct object *obj) if (fsck_walk(obj, mark_used, NULL)) objerror(obj, "broken links"); - if (fsck_object(obj, check_strict, fsck_error_func)) + if (fsck_object(obj, NULL, 0, check_strict, fsck_error_func)) return -1; if (obj->type == OBJ_TREE) { @@ -388,7 +388,8 @@ static void fsck_sha1_list(void) unsigned char *sha1 = entry->sha1; sha1_list.entry[i] = NULL; - fsck_sha1(sha1); + if (fsck_sha1(sha1)) + errors_found |= ERROR_OBJECT; free(entry); } sha1_list.nr = 0; @@ -488,6 +489,7 @@ static int fsck_handle_ref(const char *refname, const unsigned char *sha1, int f obj = parse_object(sha1); if (!obj) { error("%s: invalid sha1 pointer %s", refname, sha1_to_hex(sha1)); + errors_found |= ERROR_REACHABLE; /* We'll continue with the rest despite the error.. */ return 0; } @@ -504,7 +506,7 @@ static void get_default_heads(void) { if (head_points_at && !is_null_sha1(head_sha1)) fsck_handle_ref("HEAD", head_sha1, 0, NULL); - for_each_ref(fsck_handle_ref, NULL); + for_each_rawref(fsck_handle_ref, NULL); if (include_reflogs) for_each_reflog(fsck_handle_reflog, NULL); diff --git a/builtin/gc.c b/builtin/gc.c index 8d219d8c42..ced1456e1e 100644 --- a/builtin/gc.c +++ b/builtin/gc.c @@ -55,44 +55,33 @@ static void remove_pidfile_on_signal(int signo) raise(signo); } -static int gc_config(const char *var, const char *value, void *cb) +static void gc_config(void) { - if (!strcmp(var, "gc.packrefs")) { + const char *value; + + if (!git_config_get_value("gc.packrefs", &value)) { if (value && !strcmp(value, "notbare")) pack_refs = -1; else - pack_refs = git_config_bool(var, value); - return 0; - } - if (!strcmp(var, "gc.aggressivewindow")) { - aggressive_window = git_config_int(var, value); - return 0; - } - if (!strcmp(var, "gc.aggressivedepth")) { - aggressive_depth = git_config_int(var, value); - return 0; - } - if (!strcmp(var, "gc.auto")) { - gc_auto_threshold = git_config_int(var, value); - return 0; - } - if (!strcmp(var, "gc.autopacklimit")) { - gc_auto_pack_limit = git_config_int(var, value); - return 0; + pack_refs = git_config_bool("gc.packrefs", value); } - if (!strcmp(var, "gc.autodetach")) { - detach_auto = git_config_bool(var, value); - return 0; - } - if (!strcmp(var, "gc.pruneexpire")) { - if (value && strcmp(value, "now")) { + + git_config_get_int("gc.aggressivewindow", &aggressive_window); + git_config_get_int("gc.aggressivedepth", &aggressive_depth); + git_config_get_int("gc.auto", &gc_auto_threshold); + git_config_get_int("gc.autopacklimit", &gc_auto_pack_limit); + git_config_get_bool("gc.autodetach", &detach_auto); + + if (!git_config_get_string_const("gc.pruneexpire", &prune_expire)) { + if (strcmp(prune_expire, "now")) { unsigned long now = approxidate("now"); - if (approxidate(value) >= now) - return error(_("Invalid %s: '%s'"), var, value); + if (approxidate(prune_expire) >= now) { + git_die_config("gc.pruneexpire", _("Invalid gc.pruneexpire: '%s'"), + prune_expire); + } } - return git_config_string(&prune_expire, var, value); } - return git_default_config(var, value, cb); + git_config(git_default_config, NULL); } static int too_many_loose_objects(void) @@ -301,7 +290,7 @@ int cmd_gc(int argc, const char **argv, const char *prefix) argv_array_pushl(&prune, "prune", "--expire", NULL ); argv_array_pushl(&rerere, "rerere", "gc", NULL); - git_config(gc_config, NULL); + gc_config(); if (pack_refs < 0) pack_refs = !is_bare_repository(); diff --git a/builtin/hash-object.c b/builtin/hash-object.c index d7fcf4c13c..6158363318 100644 --- a/builtin/hash-object.c +++ b/builtin/hash-object.c @@ -10,35 +10,55 @@ #include "parse-options.h" #include "exec_cmd.h" -static void hash_fd(int fd, const char *type, int write_object, const char *path) +/* + * This is to create corrupt objects for debugging and as such it + * needs to bypass the data conversion performed by, and the type + * limitation imposed by, index_fd() and its callees. + */ +static int hash_literally(unsigned char *sha1, int fd, const char *type, unsigned flags) +{ + struct strbuf buf = STRBUF_INIT; + int ret; + + if (strbuf_read(&buf, fd, 4096) < 0) + ret = -1; + else if (flags & HASH_WRITE_OBJECT) + ret = write_sha1_file(buf.buf, buf.len, type, sha1); + else + ret = hash_sha1_file(buf.buf, buf.len, type, sha1); + strbuf_release(&buf); + return ret; +} + +static void hash_fd(int fd, const char *type, const char *path, unsigned flags, + int literally) { struct stat st; unsigned char sha1[20]; - unsigned flags = (HASH_FORMAT_CHECK | - (write_object ? HASH_WRITE_OBJECT : 0)); if (fstat(fd, &st) < 0 || - index_fd(sha1, fd, &st, type_from_string(type), path, flags)) - die(write_object + (literally + ? hash_literally(sha1, fd, type, flags) + : index_fd(sha1, fd, &st, type_from_string(type), path, flags))) + die((flags & HASH_WRITE_OBJECT) ? "Unable to add %s to database" : "Unable to hash %s", path); printf("%s\n", sha1_to_hex(sha1)); maybe_flush_or_die(stdout, "hash to stdout"); } -static void hash_object(const char *path, const char *type, int write_object, - const char *vpath) +static void hash_object(const char *path, const char *type, const char *vpath, + unsigned flags, int literally) { int fd; fd = open(path, O_RDONLY); if (fd < 0) die_errno("Cannot open '%s'", path); - hash_fd(fd, type, write_object, vpath); + hash_fd(fd, type, vpath, flags, literally); } -static int no_filters; - -static void hash_stdin_paths(const char *type, int write_objects) +static void hash_stdin_paths(const char *type, int no_filters, unsigned flags, + int literally) { struct strbuf buf = STRBUF_INIT, nbuf = STRBUF_INIT; @@ -49,47 +69,46 @@ static void hash_stdin_paths(const char *type, int write_objects) die("line is badly quoted"); strbuf_swap(&buf, &nbuf); } - hash_object(buf.buf, type, write_objects, - no_filters ? NULL : buf.buf); + hash_object(buf.buf, type, no_filters ? NULL : buf.buf, flags, + literally); } strbuf_release(&buf); strbuf_release(&nbuf); } -static const char * const hash_object_usage[] = { - N_("git hash-object [-t <type>] [-w] [--path=<file>|--no-filters] [--stdin] [--] <file>..."), - N_("git hash-object --stdin-paths < <list-of-paths>"), - NULL -}; - -static const char *type; -static int write_object; -static int hashstdin; -static int stdin_paths; -static const char *vpath; - -static const struct option hash_object_options[] = { - OPT_STRING('t', NULL, &type, N_("type"), N_("object type")), - OPT_BOOL('w', NULL, &write_object, N_("write the object into the object database")), - OPT_COUNTUP( 0 , "stdin", &hashstdin, N_("read the object from stdin")), - OPT_BOOL( 0 , "stdin-paths", &stdin_paths, N_("read file names from stdin")), - OPT_BOOL( 0 , "no-filters", &no_filters, N_("store file as is without filters")), - OPT_STRING( 0 , "path", &vpath, N_("file"), N_("process file as it were from this path")), - OPT_END() -}; - int cmd_hash_object(int argc, const char **argv, const char *prefix) { + static const char * const hash_object_usage[] = { + N_("git hash-object [-t <type>] [-w] [--path=<file>|--no-filters] [--stdin] [--] <file>..."), + N_("git hash-object --stdin-paths < <list-of-paths>"), + NULL + }; + const char *type = blob_type; + int hashstdin = 0; + int stdin_paths = 0; + int no_filters = 0; + int literally = 0; + unsigned flags = HASH_FORMAT_CHECK; + const char *vpath = NULL; + const struct option hash_object_options[] = { + OPT_STRING('t', NULL, &type, N_("type"), N_("object type")), + OPT_BIT('w', NULL, &flags, N_("write the object into the object database"), + HASH_WRITE_OBJECT), + OPT_COUNTUP( 0 , "stdin", &hashstdin, N_("read the object from stdin")), + OPT_BOOL( 0 , "stdin-paths", &stdin_paths, N_("read file names from stdin")), + OPT_BOOL( 0 , "no-filters", &no_filters, N_("store file as is without filters")), + OPT_BOOL( 0, "literally", &literally, N_("just hash any random garbage to create corrupt objects for debugging Git")), + OPT_STRING( 0 , "path", &vpath, N_("file"), N_("process file as it were from this path")), + OPT_END() + }; int i; int prefix_length = -1; const char *errstr = NULL; - type = blob_type; - argc = parse_options(argc, argv, NULL, hash_object_options, hash_object_usage, 0); - if (write_object) { + if (flags & HASH_WRITE_OBJECT) { prefix = setup_git_directory(); prefix_length = prefix ? strlen(prefix) : 0; if (vpath && prefix) @@ -119,19 +138,19 @@ int cmd_hash_object(int argc, const char **argv, const char *prefix) } if (hashstdin) - hash_fd(0, type, write_object, vpath); + hash_fd(0, type, vpath, flags, literally); for (i = 0 ; i < argc; i++) { const char *arg = argv[i]; if (0 <= prefix_length) arg = prefix_filename(prefix, prefix_length, arg); - hash_object(arg, type, write_object, - no_filters ? NULL : vpath ? vpath : arg); + hash_object(arg, type, no_filters ? NULL : vpath ? vpath : arg, + flags, literally); } if (stdin_paths) - hash_stdin_paths(type, write_object); + hash_stdin_paths(type, no_filters, flags, literally); return 0; } diff --git a/builtin/help.c b/builtin/help.c index 1fdefeb686..8343b4027d 100644 --- a/builtin/help.c +++ b/builtin/help.c @@ -79,12 +79,11 @@ static const char *get_man_viewer_info(const char *name) static int check_emacsclient_version(void) { struct strbuf buffer = STRBUF_INIT; - struct child_process ec_process; + struct child_process ec_process = CHILD_PROCESS_INIT; const char *argv_ec[] = { "emacsclient", "--version", NULL }; int version; /* emacsclient prints its version number on stderr */ - memset(&ec_process, 0, sizeof(ec_process)); ec_process.argv = argv_ec; ec_process.err = -1; ec_process.stdout_to_stderr = 1; diff --git a/builtin/index-pack.c b/builtin/index-pack.c index 5568a5bc3b..792c66ca59 100644 --- a/builtin/index-pack.c +++ b/builtin/index-pack.c @@ -112,6 +112,10 @@ static pthread_mutex_t deepest_delta_mutex; #define deepest_delta_lock() lock_mutex(&deepest_delta_mutex) #define deepest_delta_unlock() unlock_mutex(&deepest_delta_mutex) +static pthread_mutex_t type_cas_mutex; +#define type_cas_lock() lock_mutex(&type_cas_mutex) +#define type_cas_unlock() unlock_mutex(&type_cas_mutex) + static pthread_key_t key; static inline void lock_mutex(pthread_mutex_t *mutex) @@ -135,6 +139,7 @@ static void init_thread(void) init_recursive_mutex(&read_mutex); pthread_mutex_init(&counter_mutex, NULL); pthread_mutex_init(&work_mutex, NULL); + pthread_mutex_init(&type_cas_mutex, NULL); if (show_stat) pthread_mutex_init(&deepest_delta_mutex, NULL); pthread_key_create(&key, NULL); @@ -157,6 +162,7 @@ static void cleanup_thread(void) pthread_mutex_destroy(&read_mutex); pthread_mutex_destroy(&counter_mutex); pthread_mutex_destroy(&work_mutex); + pthread_mutex_destroy(&type_cas_mutex); if (show_stat) pthread_mutex_destroy(&deepest_delta_mutex); for (i = 0; i < nr_threads; i++) @@ -773,7 +779,8 @@ static void sha1_object(const void *data, struct object_entry *obj_entry, if (!obj) die(_("invalid %s"), typename(type)); if (do_fsck_object && - fsck_object(obj, 1, fsck_error_function)) + fsck_object(obj, buf, size, 1, + fsck_error_function)) die(_("Error in object")); if (fsck_walk(obj, mark_link, NULL)) die(_("Not all child objects of %s are reachable"), sha1_to_hex(obj->sha1)); @@ -862,7 +869,6 @@ static void resolve_delta(struct object_entry *delta_obj, { void *base_data, *delta_data; - delta_obj->real_type = base->obj->real_type; if (show_stat) { delta_obj->delta_depth = base->obj->delta_depth + 1; deepest_delta_lock(); @@ -888,6 +894,26 @@ static void resolve_delta(struct object_entry *delta_obj, counter_unlock(); } +/* + * Standard boolean compare-and-swap: atomically check whether "*type" is + * "want"; if so, swap in "set" and return true. Otherwise, leave it untouched + * and return false. + */ +static int compare_and_swap_type(enum object_type *type, + enum object_type want, + enum object_type set) +{ + enum object_type old; + + type_cas_lock(); + old = *type; + if (old == want) + *type = set; + type_cas_unlock(); + + return old == want; +} + static struct base_data *find_unresolved_deltas_1(struct base_data *base, struct base_data *prev_base) { @@ -915,7 +941,10 @@ static struct base_data *find_unresolved_deltas_1(struct base_data *base, struct object_entry *child = objects + deltas[base->ref_first].obj_no; struct base_data *result = alloc_base_data(); - assert(child->real_type == OBJ_REF_DELTA); + if (!compare_and_swap_type(&child->real_type, OBJ_REF_DELTA, + base->obj->real_type)) + die("BUG: child->real_type != OBJ_REF_DELTA"); + resolve_delta(child, base, result); if (base->ref_first == base->ref_last && base->ofs_last == -1) free_base_data(base); @@ -929,6 +958,7 @@ static struct base_data *find_unresolved_deltas_1(struct base_data *base, struct base_data *result = alloc_base_data(); assert(child->real_type == OBJ_OFS_DELTA); + child->real_type = base->obj->real_type; resolve_delta(child, base, result); if (base->ofs_first == base->ofs_last) free_base_data(base); @@ -1140,9 +1170,7 @@ static void conclude_pack(int fix_thin_pack, const char *curr_pack, unsigned cha int nr_objects_initial = nr_objects; if (nr_unresolved <= 0) die(_("confusion beyond insanity")); - objects = xrealloc(objects, - (nr_objects + nr_unresolved + 1) - * sizeof(*objects)); + REALLOC_ARRAY(objects, nr_objects + nr_unresolved + 1); memset(objects + nr_objects + 1, 0, nr_unresolved * sizeof(*objects)); f = sha1fd(output_fd, curr_pack); diff --git a/builtin/init-db.c b/builtin/init-db.c index 56f85e239a..587a5055ed 100644 --- a/builtin/init-db.c +++ b/builtin/init-db.c @@ -330,12 +330,12 @@ int set_git_dir_init(const char *git_dir, const char *real_git_dir, * moving the target repo later on in separate_git_dir() */ git_link = xstrdup(real_path(git_dir)); + set_git_dir(real_path(real_git_dir)); } else { - real_git_dir = real_path(git_dir); + set_git_dir(real_path(git_dir)); git_link = NULL; } - set_git_dir(real_path(real_git_dir)); return 0; } @@ -426,8 +426,9 @@ int init_db(const char *template_dir, unsigned int flags) static int guess_repository_type(const char *git_dir) { - char cwd[PATH_MAX]; const char *slash; + char *cwd; + int cwd_is_git_dir; /* * "GIT_DIR=. git init" is always bare. @@ -435,9 +436,10 @@ static int guess_repository_type(const char *git_dir) */ if (!strcmp(".", git_dir)) return 1; - if (!getcwd(cwd, sizeof(cwd))) - die_errno(_("cannot tell cwd")); - if (!strcmp(git_dir, cwd)) + cwd = xgetcwd(); + cwd_is_git_dir = !strcmp(git_dir, cwd); + free(cwd); + if (cwd_is_git_dir) return 1; /* * "GIT_DIR=.git or GIT_DIR=something/.git is usually not. @@ -535,10 +537,9 @@ int cmd_init_db(int argc, const char **argv, const char *prefix) usage(init_db_usage[0]); } if (is_bare_repository_cfg == 1) { - static char git_dir[PATH_MAX+1]; - - setenv(GIT_DIR_ENVIRONMENT, - getcwd(git_dir, sizeof(git_dir)), argc > 0); + char *cwd = xgetcwd(); + setenv(GIT_DIR_ENVIRONMENT, cwd, argc > 0); + free(cwd); } if (init_shared_repository != -1) @@ -572,13 +573,10 @@ int cmd_init_db(int argc, const char **argv, const char *prefix) git_work_tree_cfg = xstrdup(real_path(rel)); free(rel); } - if (!git_work_tree_cfg) { - git_work_tree_cfg = xcalloc(PATH_MAX, 1); - if (!getcwd(git_work_tree_cfg, PATH_MAX)) - die_errno (_("Cannot access current working directory")); - } + if (!git_work_tree_cfg) + git_work_tree_cfg = xgetcwd(); if (work_tree) - set_git_work_tree(real_path(work_tree)); + set_git_work_tree(work_tree); else set_git_work_tree(git_work_tree_cfg); if (access(get_git_work_tree(), X_OK)) @@ -587,7 +585,7 @@ int cmd_init_db(int argc, const char **argv, const char *prefix) } else { if (work_tree) - set_git_work_tree(real_path(work_tree)); + set_git_work_tree(work_tree); } set_git_dir_init(git_dir, real_git_dir, 1); diff --git a/builtin/log.c b/builtin/log.c index 4389722b4b..2fb34c7de9 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -78,7 +78,7 @@ static int decorate_callback(const struct option *opt, const char *arg, int unse decoration_style = DECORATE_SHORT_REFS; if (decoration_style < 0) - die("invalid --decorate option: %s", arg); + die(_("invalid --decorate option: %s"), arg); decoration_given = 1; @@ -130,7 +130,7 @@ static void cmd_log_init_finish(int argc, const char **argv, const char *prefix, { OPTION_CALLBACK, 0, "decorate", NULL, NULL, N_("decorate options"), PARSE_OPT_OPTARG, decorate_callback}, OPT_CALLBACK('L', NULL, &line_cb, "n,m:file", - "Process line range n,m in file, counting from 1", + N_("Process line range n,m in file, counting from 1"), log_line_range_callback), OPT_END() }; @@ -150,7 +150,7 @@ static void cmd_log_init_finish(int argc, const char **argv, const char *prefix, /* Any arguments at this point are not recognized */ if (argc > 1) - die("unrecognized argument: %s", argv[1]); + die(_("unrecognized argument: %s"), argv[1]); memset(&w, 0, sizeof(w)); userformat_find_requirements(NULL, &w); @@ -447,13 +447,13 @@ static int show_blob_object(const unsigned char *sha1, struct rev_info *rev, con return stream_blob_to_fd(1, sha1, NULL, 0); if (get_sha1_with_context(obj_name, 0, sha1c, &obj_context)) - die("Not a valid object name %s", obj_name); + die(_("Not a valid object name %s"), obj_name); if (!obj_context.path[0] || !textconv_object(obj_context.path, obj_context.mode, sha1c, 1, &buf, &size)) return stream_blob_to_fd(1, sha1, NULL, 0); if (!buf) - die("git show %s: bad file", obj_name); + die(_("git show %s: bad file"), obj_name); write_or_die(1, buf, size); return 0; @@ -864,6 +864,7 @@ static void add_branch_description(struct strbuf *buf, const char *branch_name) strbuf_addbuf(buf, &desc); strbuf_addch(buf, '\n'); } + strbuf_release(&desc); } static char *find_branch_name(struct rev_info *rev) @@ -1439,7 +1440,7 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix) continue; nr++; - list = xrealloc(list, nr * sizeof(list[0])); + REALLOC_ARRAY(list, nr); list[nr - 1] = commit; } if (nr == 0) diff --git a/builtin/ls-files.c b/builtin/ls-files.c index 47c38808a2..99cee20fb0 100644 --- a/builtin/ls-files.c +++ b/builtin/ls-files.c @@ -474,7 +474,7 @@ int cmd_ls_files(int argc, const char **argv, const char *cmd_prefix) OPT_BOOL('k', "killed", &show_killed, N_("show files on the filesystem that need to be removed")), OPT_BIT(0, "directory", &dir.flags, - N_("show 'other' directories' name only"), + N_("show 'other' directories' names only"), DIR_SHOW_OTHER_DIRECTORIES), OPT_NEGBIT(0, "empty-directory", &dir.flags, N_("don't show empty directories"), diff --git a/builtin/mailinfo.c b/builtin/mailinfo.c index cf11c8d607..6a14d2985d 100644 --- a/builtin/mailinfo.c +++ b/builtin/mailinfo.c @@ -288,6 +288,22 @@ static inline int cmp_header(const struct strbuf *line, const char *hdr) line->buf[len] == ':' && isspace(line->buf[len + 1]); } +static int is_format_patch_separator(const char *line, int len) +{ + static const char SAMPLE[] = + "From e6807f3efca28b30decfecb1732a56c7db1137ee Mon Sep 17 00:00:00 2001\n"; + const char *cp; + + if (len != strlen(SAMPLE)) + return 0; + if (!skip_prefix(line, "From ", &cp)) + return 0; + if (strspn(cp, "0123456789abcdef") != 40) + return 0; + cp += 40; + return !memcmp(SAMPLE + (cp - line), cp, strlen(SAMPLE) - (cp - line)); +} + static int check_header(const struct strbuf *line, struct strbuf *hdr_data[], int overwrite) { @@ -329,7 +345,7 @@ static int check_header(const struct strbuf *line, /* for inbody stuff */ if (starts_with(line->buf, ">From") && isspace(line->buf[5])) { - ret = 1; /* Should this return 0? */ + ret = is_format_patch_separator(line->buf + 1, line->len - 1); goto check_header_out; } if (starts_with(line->buf, "[PATCH]") && isspace(line->buf[7])) { diff --git a/builtin/mailsplit.c b/builtin/mailsplit.c index 06296d4bdf..763cda098c 100644 --- a/builtin/mailsplit.c +++ b/builtin/mailsplit.c @@ -53,14 +53,16 @@ static int keep_cr; */ static int split_one(FILE *mbox, const char *name, int allow_bare) { - FILE *output = NULL; + FILE *output; int fd; int status = 0; int is_bare = !is_from_line(buf.buf, buf.len); - if (is_bare && !allow_bare) - goto corrupt; - + if (is_bare && !allow_bare) { + unlink(name); + fprintf(stderr, "corrupt mailbox\n"); + exit(1); + } fd = open(name, O_WRONLY | O_CREAT | O_EXCL, 0666); if (fd < 0) die_errno("cannot open output file '%s'", name); @@ -91,13 +93,6 @@ static int split_one(FILE *mbox, const char *name, int allow_bare) } fclose(output); return status; - - corrupt: - if (output) - fclose(output); - unlink(name); - fprintf(stderr, "corrupt mailbox\n"); - exit(1); } static int populate_maildir_list(struct string_list *list, const char *path) diff --git a/builtin/merge-tree.c b/builtin/merge-tree.c index 61cbde4094..f9ab48597e 100644 --- a/builtin/merge-tree.c +++ b/builtin/merge-tree.c @@ -25,7 +25,7 @@ static void add_merge_entry(struct merge_list *entry) merge_result_end = &entry->next; } -static void merge_trees_recursive(struct tree_desc t[3], const char *base, int df_conflict); +static void merge_trees(struct tree_desc t[3], const char *base); static const char *explanation(struct merge_list *entry) { @@ -195,8 +195,8 @@ static void resolve(const struct traverse_info *info, struct name_entry *ours, s add_merge_entry(final); } -static void unresolved_directory(const struct traverse_info *info, struct name_entry n[3], - int df_conflict) +static void unresolved_directory(const struct traverse_info *info, + struct name_entry n[3]) { char *newbase; struct name_entry *p; @@ -218,7 +218,7 @@ static void unresolved_directory(const struct traverse_info *info, struct name_e buf2 = fill_tree_descriptor(t+2, ENTRY_SHA1(n + 2)); #undef ENTRY_SHA1 - merge_trees_recursive(t, newbase, df_conflict); + merge_trees(t, newbase); free(buf0); free(buf1); @@ -259,7 +259,7 @@ static void unresolved(const struct traverse_info *info, struct name_entry n[3]) dirmask |= (1 << i); } - unresolved_directory(info, n, dirmask && (dirmask != mask)); + unresolved_directory(info, n); if (dirmask == mask) return; @@ -335,21 +335,15 @@ static int threeway_callback(int n, unsigned long mask, unsigned long dirmask, s return mask; } -static void merge_trees_recursive(struct tree_desc t[3], const char *base, int df_conflict) +static void merge_trees(struct tree_desc t[3], const char *base) { struct traverse_info info; setup_traverse_info(&info, base); - info.data = &df_conflict; info.fn = threeway_callback; traverse_trees(3, t, &info); } -static void merge_trees(struct tree_desc t[3], const char *base) -{ - merge_trees_recursive(t, base, 0); -} - static void *get_tree_descriptor(struct tree_desc *desc, const char *rev) { unsigned char sha1[20]; diff --git a/builtin/merge.c b/builtin/merge.c index ce82eb297d..dff043dac3 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -237,11 +237,10 @@ static void drop_save(void) static int save_state(unsigned char *stash) { int len; - struct child_process cp; + struct child_process cp = CHILD_PROCESS_INIT; struct strbuf buffer = STRBUF_INIT; const char *argv[] = {"stash", "create", NULL}; - memset(&cp, 0, sizeof(cp)); cp.argv = argv; cp.out = -1; cp.git_cmd = 1; @@ -557,7 +556,7 @@ static void parse_branch_merge_options(char *bmo) if (argc < 0) die(_("Bad branch.%s.mergeoptions string: %s"), branch, split_cmdline_strerror(argc)); - argv = xrealloc(argv, sizeof(*argv) * (argc + 2)); + REALLOC_ARRAY(argv, argc + 2); memmove(argv + 1, argv, sizeof(*argv) * (argc + 1)); argc++; argv[0] = "branch.*.mergeoptions"; @@ -1144,14 +1143,14 @@ int cmd_merge(int argc, const char **argv, const char *prefix) */ if (advice_resolve_conflict) die(_("You have not concluded your merge (MERGE_HEAD exists).\n" - "Please, commit your changes before you can merge.")); + "Please, commit your changes before you merge.")); else die(_("You have not concluded your merge (MERGE_HEAD exists).")); } if (file_exists(git_path("CHERRY_PICK_HEAD"))) { if (advice_resolve_conflict) die(_("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.")); else die(_("You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).")); } diff --git a/builtin/mv.c b/builtin/mv.c index 6ffe540c20..8883baa903 100644 --- a/builtin/mv.c +++ b/builtin/mv.c @@ -61,6 +61,46 @@ static const char *add_slash(const char *path) static struct lock_file lock_file; #define SUBMODULE_WITH_GITDIR ((const char *)1) +static void prepare_move_submodule(const char *src, int first, + const char **submodule_gitfile) +{ + struct strbuf submodule_dotgit = STRBUF_INIT; + if (!S_ISGITLINK(active_cache[first]->ce_mode)) + die(_("Directory %s is in index and no submodule?"), src); + if (!is_staging_gitmodules_ok()) + die(_("Please stage your changes to .gitmodules or stash them to proceed")); + strbuf_addf(&submodule_dotgit, "%s/.git", src); + *submodule_gitfile = read_gitfile(submodule_dotgit.buf); + if (*submodule_gitfile) + *submodule_gitfile = xstrdup(*submodule_gitfile); + else + *submodule_gitfile = SUBMODULE_WITH_GITDIR; + strbuf_release(&submodule_dotgit); +} + +static int index_range_of_same_dir(const char *src, int length, + int *first_p, int *last_p) +{ + const char *src_w_slash = add_slash(src); + int first, last, len_w_slash = length + 1; + + first = cache_name_pos(src_w_slash, len_w_slash); + if (first >= 0) + die(_("%.*s is in index"), len_w_slash, src_w_slash); + + first = -1 - first; + for (last = first; last < active_nr; last++) { + const char *path = active_cache[last]->name; + if (strncmp(path, src_w_slash, len_w_slash)) + break; + } + if (src_w_slash != src) + free((char *)src_w_slash); + *first_p = first; + *last_p = last; + return last - first; +} + int cmd_mv(int argc, const char **argv, const char *prefix) { int i, gitmodules_modified = 0; @@ -108,7 +148,7 @@ int cmd_mv(int argc, const char **argv, const char *prefix) destination = internal_copy_pathspec(dest_path[0], argv, argc, DUP_BASENAME); } else { if (argc != 1) - die("destination '%s' is not a directory", dest_path[0]); + die(_("destination '%s' is not a directory"), dest_path[0]); destination = dest_path; } @@ -131,75 +171,36 @@ int cmd_mv(int argc, const char **argv, const char *prefix) && lstat(dst, &st) == 0) bad = _("cannot move directory over file"); else if (src_is_dir) { - int first = cache_name_pos(src, length); - if (first >= 0) { - struct strbuf submodule_dotgit = STRBUF_INIT; - if (!S_ISGITLINK(active_cache[first]->ce_mode)) - die (_("Huh? Directory %s is in index and no submodule?"), src); - if (!is_staging_gitmodules_ok()) - die (_("Please, stage your changes to .gitmodules or stash them to proceed")); - strbuf_addf(&submodule_dotgit, "%s/.git", src); - submodule_gitfile[i] = read_gitfile(submodule_dotgit.buf); - if (submodule_gitfile[i]) - submodule_gitfile[i] = xstrdup(submodule_gitfile[i]); - else - submodule_gitfile[i] = SUBMODULE_WITH_GITDIR; - strbuf_release(&submodule_dotgit); - } else { - const char *src_w_slash = add_slash(src); - int last, len_w_slash = length + 1; + int first = cache_name_pos(src, length), last; - modes[i] = WORKING_DIRECTORY; + if (first >= 0) + prepare_move_submodule(src, first, + submodule_gitfile + i); + else if (index_range_of_same_dir(src, length, + &first, &last) < 1) + bad = _("source directory is empty"); + else { /* last - first >= 1 */ + int j, dst_len, n; - first = cache_name_pos(src_w_slash, len_w_slash); - if (first >= 0) - die (_("Huh? %.*s is in index?"), - len_w_slash, src_w_slash); - - first = -1 - first; - for (last = first; last < active_nr; last++) { - const char *path = active_cache[last]->name; - if (strncmp(path, src_w_slash, len_w_slash)) - break; - } - if (src_w_slash != src) - free((char *)src_w_slash); - - if (last - first < 1) - bad = _("source directory is empty"); - else { - int j, dst_len; - - if (last - first > 0) { - source = xrealloc(source, - (argc + last - first) - * sizeof(char *)); - destination = xrealloc(destination, - (argc + last - first) - * sizeof(char *)); - modes = xrealloc(modes, - (argc + last - first) - * sizeof(enum update_mode)); - submodule_gitfile = xrealloc(submodule_gitfile, - (argc + last - first) - * sizeof(char *)); - } + modes[i] = WORKING_DIRECTORY; + n = argc + last - first; + REALLOC_ARRAY(source, n); + REALLOC_ARRAY(destination, n); + REALLOC_ARRAY(modes, n); + REALLOC_ARRAY(submodule_gitfile, n); - dst = add_slash(dst); - dst_len = strlen(dst); + dst = add_slash(dst); + dst_len = strlen(dst); - for (j = 0; j < last - first; j++) { - const char *path = - active_cache[first + j]->name; - source[argc + j] = path; - destination[argc + j] = - prefix_path(dst, dst_len, - path + length + 1); - modes[argc + j] = INDEX; - submodule_gitfile[argc + j] = NULL; - } - argc += last - first; + for (j = 0; j < last - first; j++) { + const char *path = active_cache[first + j]->name; + source[argc + j] = path; + destination[argc + j] = + prefix_path(dst, dst_len, path + length + 1); + modes[argc + j] = INDEX; + submodule_gitfile[argc + j] = NULL; } + argc += last - first; } } else if (cache_name_pos(src, length) < 0) bad = _("not under version control"); @@ -225,24 +226,22 @@ int cmd_mv(int argc, const char **argv, const char *prefix) else string_list_insert(&src_for_dst, dst); - if (bad) { - if (ignore_errors) { - if (--argc > 0) { - memmove(source + i, source + i + 1, - (argc - i) * sizeof(char *)); - memmove(destination + i, - destination + i + 1, - (argc - i) * sizeof(char *)); - memmove(modes + i, modes + i + 1, - (argc - i) * sizeof(enum update_mode)); - memmove(submodule_gitfile + i, - submodule_gitfile + i + 1, - (argc - i) * sizeof(char *)); - i--; - } - } else - die (_("%s, source=%s, destination=%s"), - bad, src, dst); + if (!bad) + continue; + if (!ignore_errors) + die(_("%s, source=%s, destination=%s"), + bad, src, dst); + if (--argc > 0) { + int n = argc - i; + memmove(source + i, source + i + 1, + n * sizeof(char *)); + memmove(destination + i, destination + i + 1, + n * sizeof(char *)); + memmove(modes + i, modes + i + 1, + n * sizeof(enum update_mode)); + memmove(submodule_gitfile + i, submodule_gitfile + i + 1, + n * sizeof(char *)); + i--; } } @@ -254,7 +253,7 @@ int cmd_mv(int argc, const char **argv, const char *prefix) 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); + 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]); @@ -275,10 +274,9 @@ int cmd_mv(int argc, const char **argv, const char *prefix) if (gitmodules_modified) stage_updated_gitmodules(); - if (active_cache_changed) { - if (write_locked_index(&the_index, &lock_file, COMMIT_LOCK)) - die(_("Unable to write new index file")); - } + if (active_cache_changed && + write_locked_index(&the_index, &lock_file, COMMIT_LOCK)) + die(_("Unable to write new index file")); return 0; } diff --git a/builtin/notes.c b/builtin/notes.c index 820c34135c..67d0bb14f8 100644 --- a/builtin/notes.c +++ b/builtin/notes.c @@ -122,12 +122,11 @@ static void write_commented_object(int fd, const unsigned char *object) { const char *show_args[5] = {"show", "--stat", "--no-notes", sha1_to_hex(object), NULL}; - struct child_process show; + struct child_process show = CHILD_PROCESS_INIT; struct strbuf buf = STRBUF_INIT; struct strbuf cbuf = STRBUF_INIT; /* Invoke "git show --stat --no-notes $object" */ - memset(&show, 0, sizeof(show)); show.argv = show_args; show.no_stdin = 1; show.out = -1; @@ -211,7 +210,7 @@ static void create_note(const unsigned char *object, struct msg_arg *msg, if (write_sha1_file(msg->buf.buf, msg->buf.len, blob_type, result)) { error(_("unable to write note object")); if (path) - error(_("The note contents has been left in %s"), + error(_("The note contents have been left in %s"), path); exit(128); } diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c index 238b5021eb..d39193453a 100644 --- a/builtin/pack-objects.c +++ b/builtin/pack-objects.c @@ -89,8 +89,7 @@ static void index_commit_for_bitmap(struct commit *commit) { if (indexed_commits_nr >= indexed_commits_alloc) { indexed_commits_alloc = (indexed_commits_alloc + 32) * 2; - indexed_commits = xrealloc(indexed_commits, - indexed_commits_alloc * sizeof(struct commit *)); + REALLOC_ARRAY(indexed_commits, indexed_commits_alloc); } indexed_commits[indexed_commits_nr++] = commit; @@ -2494,6 +2493,7 @@ static void get_object_list(int ac, const char **av) if (get_sha1_hex(line + 10, sha1)) die("not an SHA-1 '%s'", line + 10); register_shallow(sha1); + use_bitmap_index = 0; continue; } die("not a rev '%s'", line); diff --git a/builtin/prune-packed.c b/builtin/prune-packed.c index 6879468c46..d430731d70 100644 --- a/builtin/prune-packed.c +++ b/builtin/prune-packed.c @@ -68,6 +68,7 @@ void prune_packed_objects(int opts) rmdir(pathname.buf); } stop_progress(&progress); + strbuf_release(&pathname); } int cmd_prune_packed(int argc, const char **argv, const char *prefix) diff --git a/builtin/push.c b/builtin/push.c index f50e3d5e77..ae56f73a66 100644 --- a/builtin/push.c +++ b/builtin/push.c @@ -506,6 +506,7 @@ int cmd_push(int argc, const char **argv, const char *prefix) OPT_BIT(0, "no-verify", &flags, N_("bypass pre-push hook"), TRANSPORT_PUSH_NO_HOOK), OPT_BIT(0, "follow-tags", &flags, N_("push missing but relevant tags"), TRANSPORT_PUSH_FOLLOW_TAGS), + OPT_BIT(0, "signed", &flags, N_("GPG sign the push"), TRANSPORT_PUSH_CERT), OPT_END() }; diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c index f93ac454b4..a01ac2096a 100644 --- a/builtin/receive-pack.c +++ b/builtin/receive-pack.c @@ -15,6 +15,9 @@ #include "connected.h" #include "argv-array.h" #include "version.h" +#include "tag.h" +#include "gpg-interface.h" +#include "sigchain.h" static const char receive_pack_usage[] = "git receive-pack <git-dir>"; @@ -41,11 +44,27 @@ static int prefer_ofs_delta = 1; static int auto_update_server_info; static int auto_gc = 1; static int fix_thin = 1; +static int stateless_rpc; +static const char *service_dir; static const char *head_name; static void *head_name_to_free; static int sent_capabilities; static int shallow_update; static const char *alt_shallow_file; +static struct strbuf push_cert = STRBUF_INIT; +static unsigned char push_cert_sha1[20]; +static struct signature_check sigcheck; +static const char *push_cert_nonce; +static const char *cert_nonce_seed; + +static const char *NONCE_UNSOLICITED = "UNSOLICITED"; +static const char *NONCE_BAD = "BAD"; +static const char *NONCE_MISSING = "MISSING"; +static const char *NONCE_OK = "OK"; +static const char *NONCE_SLOP = "SLOP"; +static const char *nonce_status; +static long nonce_stamp_slop; +static unsigned long nonce_stamp_slop_limit; static enum deny_action parse_deny_action(const char *var, const char *value) { @@ -129,6 +148,14 @@ static int receive_pack_config(const char *var, const char *value, void *cb) return 0; } + if (strcmp(var, "receive.certnonceseed") == 0) + return git_config_string(&cert_nonce_seed, var, value); + + if (strcmp(var, "receive.certnonceslop") == 0) { + nonce_stamp_slop_limit = git_config_ulong(var, value); + return 0; + } + return git_default_config(var, value, cb); } @@ -137,15 +164,23 @@ static void show_ref(const char *path, const unsigned char *sha1) if (ref_is_hidden(path)) return; - if (sent_capabilities) + if (sent_capabilities) { packet_write(1, "%s %s\n", sha1_to_hex(sha1), path); - else - packet_write(1, "%s %s%c%s%s agent=%s\n", - sha1_to_hex(sha1), path, 0, - " report-status delete-refs side-band-64k quiet", - prefer_ofs_delta ? " ofs-delta" : "", - git_user_agent_sanitized()); - sent_capabilities = 1; + } else { + struct strbuf cap = STRBUF_INIT; + + strbuf_addstr(&cap, + "report-status delete-refs side-band-64k quiet"); + if (prefer_ofs_delta) + strbuf_addstr(&cap, " ofs-delta"); + if (push_cert_nonce) + strbuf_addf(&cap, " push-cert=%s", push_cert_nonce); + strbuf_addf(&cap, " agent=%s", git_user_agent_sanitized()); + packet_write(1, "%s %s%c%s\n", + sha1_to_hex(sha1), path, 0, cap.buf); + strbuf_release(&cap); + sent_capabilities = 1; + } } static int show_ref_cb(const char *path, const unsigned char *sha1, int flag, void *unused) @@ -252,10 +287,226 @@ static int copy_to_sideband(int in, int out, void *arg) return 0; } +#define HMAC_BLOCK_SIZE 64 + +static void hmac_sha1(unsigned char *out, + const char *key_in, size_t key_len, + const char *text, size_t text_len) +{ + unsigned char key[HMAC_BLOCK_SIZE]; + unsigned char k_ipad[HMAC_BLOCK_SIZE]; + unsigned char k_opad[HMAC_BLOCK_SIZE]; + int i; + git_SHA_CTX ctx; + + /* RFC 2104 2. (1) */ + memset(key, '\0', HMAC_BLOCK_SIZE); + if (HMAC_BLOCK_SIZE < key_len) { + git_SHA1_Init(&ctx); + git_SHA1_Update(&ctx, key_in, key_len); + git_SHA1_Final(key, &ctx); + } else { + memcpy(key, key_in, key_len); + } + + /* RFC 2104 2. (2) & (5) */ + for (i = 0; i < sizeof(key); i++) { + k_ipad[i] = key[i] ^ 0x36; + k_opad[i] = key[i] ^ 0x5c; + } + + /* RFC 2104 2. (3) & (4) */ + git_SHA1_Init(&ctx); + git_SHA1_Update(&ctx, k_ipad, sizeof(k_ipad)); + git_SHA1_Update(&ctx, text, text_len); + git_SHA1_Final(out, &ctx); + + /* RFC 2104 2. (6) & (7) */ + git_SHA1_Init(&ctx); + git_SHA1_Update(&ctx, k_opad, sizeof(k_opad)); + git_SHA1_Update(&ctx, out, 20); + git_SHA1_Final(out, &ctx); +} + +static char *prepare_push_cert_nonce(const char *path, unsigned long stamp) +{ + struct strbuf buf = STRBUF_INIT; + unsigned char sha1[20]; + + strbuf_addf(&buf, "%s:%lu", path, stamp); + hmac_sha1(sha1, buf.buf, buf.len, cert_nonce_seed, strlen(cert_nonce_seed));; + strbuf_release(&buf); + + /* RFC 2104 5. HMAC-SHA1-80 */ + strbuf_addf(&buf, "%lu-%.*s", stamp, 20, sha1_to_hex(sha1)); + return strbuf_detach(&buf, NULL); +} + +/* + * NEEDSWORK: reuse find_commit_header() from jk/commit-author-parsing + * after dropping "_commit" from its name and possibly moving it out + * of commit.c + */ +static char *find_header(const char *msg, size_t len, const char *key) +{ + int key_len = strlen(key); + const char *line = msg; + + while (line && line < msg + len) { + const char *eol = strchrnul(line, '\n'); + + if ((msg + len <= eol) || line == eol) + return NULL; + if (line + key_len < eol && + !memcmp(line, key, key_len) && line[key_len] == ' ') { + int offset = key_len + 1; + return xmemdupz(line + offset, (eol - line) - offset); + } + line = *eol ? eol + 1 : NULL; + } + return NULL; +} + +static const char *check_nonce(const char *buf, size_t len) +{ + char *nonce = find_header(buf, len, "nonce"); + unsigned long stamp, ostamp; + char *bohmac, *expect = NULL; + const char *retval = NONCE_BAD; + + if (!nonce) { + retval = NONCE_MISSING; + goto leave; + } else if (!push_cert_nonce) { + retval = NONCE_UNSOLICITED; + goto leave; + } else if (!strcmp(push_cert_nonce, nonce)) { + retval = NONCE_OK; + goto leave; + } + + if (!stateless_rpc) { + /* returned nonce MUST match what we gave out earlier */ + retval = NONCE_BAD; + goto leave; + } + + /* + * In stateless mode, we may be receiving a nonce issued by + * another instance of the server that serving the same + * repository, and the timestamps may not match, but the + * nonce-seed and dir should match, so we can recompute and + * report the time slop. + * + * In addition, when a nonce issued by another instance has + * timestamp within receive.certnonceslop seconds, we pretend + * as if we issued that nonce when reporting to the hook. + */ + + /* nonce is concat(<seconds-since-epoch>, "-", <hmac>) */ + if (*nonce <= '0' || '9' < *nonce) { + retval = NONCE_BAD; + goto leave; + } + stamp = strtoul(nonce, &bohmac, 10); + if (bohmac == nonce || bohmac[0] != '-') { + retval = NONCE_BAD; + goto leave; + } + + expect = prepare_push_cert_nonce(service_dir, stamp); + if (strcmp(expect, nonce)) { + /* Not what we would have signed earlier */ + retval = NONCE_BAD; + goto leave; + } + + /* + * By how many seconds is this nonce stale? Negative value + * would mean it was issued by another server with its clock + * skewed in the future. + */ + ostamp = strtoul(push_cert_nonce, NULL, 10); + nonce_stamp_slop = (long)ostamp - (long)stamp; + + if (nonce_stamp_slop_limit && + abs(nonce_stamp_slop) <= nonce_stamp_slop_limit) { + /* + * Pretend as if the received nonce (which passes the + * HMAC check, so it is not a forged by third-party) + * is what we issued. + */ + free((void *)push_cert_nonce); + push_cert_nonce = xstrdup(nonce); + retval = NONCE_OK; + } else { + retval = NONCE_SLOP; + } + +leave: + free(nonce); + free(expect); + return retval; +} + +static void prepare_push_cert_sha1(struct child_process *proc) +{ + static int already_done; + struct argv_array env = ARGV_ARRAY_INIT; + + if (!push_cert.len) + return; + + if (!already_done) { + struct strbuf gpg_output = STRBUF_INIT; + struct strbuf gpg_status = STRBUF_INIT; + int bogs /* beginning_of_gpg_sig */; + + already_done = 1; + if (write_sha1_file(push_cert.buf, push_cert.len, "blob", push_cert_sha1)) + hashclr(push_cert_sha1); + + memset(&sigcheck, '\0', sizeof(sigcheck)); + sigcheck.result = 'N'; + + bogs = parse_signature(push_cert.buf, push_cert.len); + if (verify_signed_buffer(push_cert.buf, bogs, + push_cert.buf + bogs, push_cert.len - bogs, + &gpg_output, &gpg_status) < 0) { + ; /* error running gpg */ + } else { + sigcheck.payload = push_cert.buf; + sigcheck.gpg_output = gpg_output.buf; + sigcheck.gpg_status = gpg_status.buf; + parse_gpg_output(&sigcheck); + } + + strbuf_release(&gpg_output); + strbuf_release(&gpg_status); + nonce_status = check_nonce(push_cert.buf, bogs); + } + if (!is_null_sha1(push_cert_sha1)) { + argv_array_pushf(&env, "GIT_PUSH_CERT=%s", sha1_to_hex(push_cert_sha1)); + argv_array_pushf(&env, "GIT_PUSH_CERT_SIGNER=%s", + sigcheck.signer ? sigcheck.signer : ""); + argv_array_pushf(&env, "GIT_PUSH_CERT_KEY=%s", + sigcheck.key ? sigcheck.key : ""); + argv_array_pushf(&env, "GIT_PUSH_CERT_STATUS=%c", sigcheck.result); + if (push_cert_nonce) { + argv_array_pushf(&env, "GIT_PUSH_CERT_NONCE=%s", push_cert_nonce); + argv_array_pushf(&env, "GIT_PUSH_CERT_NONCE_STATUS=%s", nonce_status); + if (nonce_status == NONCE_SLOP) + argv_array_pushf(&env, "GIT_PUSH_CERT_NONCE_SLOP=%ld", + nonce_stamp_slop); + } + proc->env = env.argv; + } +} + typedef int (*feed_fn)(void *, const char **, size_t *); static int run_and_feed_hook(const char *hook_name, feed_fn feed, void *feed_state) { - struct child_process proc; + struct child_process proc = CHILD_PROCESS_INIT; struct async muxer; const char *argv[2]; int code; @@ -266,11 +517,12 @@ static int run_and_feed_hook(const char *hook_name, feed_fn feed, void *feed_sta argv[1] = NULL; - memset(&proc, 0, sizeof(proc)); proc.argv = argv; proc.in = -1; proc.stdout_to_stderr = 1; + prepare_push_cert_sha1(&proc); + if (use_sideband) { memset(&muxer, 0, sizeof(muxer)); muxer.proc = copy_to_sideband; @@ -288,6 +540,8 @@ static int run_and_feed_hook(const char *hook_name, feed_fn feed, void *feed_sta return code; } + sigchain_push(SIGPIPE, SIG_IGN); + while (1) { const char *buf; size_t n; @@ -299,6 +553,9 @@ static int run_and_feed_hook(const char *hook_name, feed_fn feed, void *feed_sta close(proc.in); if (use_sideband) finish_async(&muxer); + + sigchain_pop(SIGPIPE); + return finish_command(&proc); } @@ -350,7 +607,7 @@ static int run_receive_hook(struct command *commands, const char *hook_name, static int run_update_hook(struct command *cmd) { const char *argv[5]; - struct child_process proc; + struct child_process proc = CHILD_PROCESS_INIT; int code; argv[0] = find_hook("update"); @@ -362,7 +619,6 @@ static int run_update_hook(struct command *cmd) argv[3] = sha1_to_hex(cmd->new_sha1); argv[4] = NULL; - memset(&proc, 0, sizeof(proc)); proc.no_stdin = 1; proc.stdout_to_stderr = 1; proc.err = use_sideband ? -1 : 0; @@ -475,7 +731,6 @@ static const char *update(struct command *cmd, struct shallow_info *si) const char *namespaced_name; unsigned char *old_sha1 = cmd->old_sha1; unsigned char *new_sha1 = cmd->new_sha1; - struct ref_lock *lock; /* only refs/... are allowed */ if (!starts_with(name, "refs/") || check_refname_format(name + 5, 0)) { @@ -576,19 +831,27 @@ static const char *update(struct command *cmd, struct shallow_info *si) return NULL; /* good */ } else { + struct strbuf err = STRBUF_INIT; + struct ref_transaction *transaction; + if (shallow_update && si->shallow_ref[cmd->index] && update_shallow_ref(cmd, si)) return "shallow error"; - lock = lock_any_ref_for_update(namespaced_name, old_sha1, - 0, NULL); - if (!lock) { - rp_error("failed to lock %s", name); - return "failed to lock"; - } - if (write_ref_sha1(lock, new_sha1, "push")) { - return "failed to write"; /* error() already called */ + transaction = ref_transaction_begin(&err); + if (!transaction || + ref_transaction_update(transaction, namespaced_name, + new_sha1, old_sha1, 0, 1, &err) || + ref_transaction_commit(transaction, "push", &err)) { + ref_transaction_free(transaction); + + rp_error("%s", err.buf); + strbuf_release(&err); + return "failed to update ref"; } + + ref_transaction_free(transaction); + strbuf_release(&err); return NULL; /* good */ } } @@ -598,7 +861,7 @@ static void run_update_post_hook(struct command *commands) struct command *cmd; int argc; const char **argv; - struct child_process proc; + struct child_process proc = CHILD_PROCESS_INIT; char *hook; hook = find_hook("post-update"); @@ -621,7 +884,6 @@ static void run_update_post_hook(struct command *commands) } argv[argc] = NULL; - memset(&proc, 0, sizeof(proc)); proc.no_stdin = 1; proc.stdout_to_stderr = 1; proc.err = use_sideband ? -1 : 0; @@ -831,40 +1093,79 @@ static void execute_commands(struct command *commands, "the reported refs above"); } +static struct command **queue_command(struct command **tail, + const char *line, + int linelen) +{ + unsigned char old_sha1[20], new_sha1[20]; + struct command *cmd; + const char *refname; + int reflen; + + if (linelen < 83 || + line[40] != ' ' || + line[81] != ' ' || + get_sha1_hex(line, old_sha1) || + get_sha1_hex(line + 41, new_sha1)) + die("protocol error: expected old/new/ref, got '%s'", line); + + refname = line + 82; + reflen = linelen - 82; + cmd = xcalloc(1, sizeof(struct command) + reflen + 1); + hashcpy(cmd->old_sha1, old_sha1); + hashcpy(cmd->new_sha1, new_sha1); + memcpy(cmd->ref_name, refname, reflen); + cmd->ref_name[reflen] = '\0'; + *tail = cmd; + return &cmd->next; +} + +static void queue_commands_from_cert(struct command **tail, + struct strbuf *push_cert) +{ + const char *boc, *eoc; + + if (*tail) + die("protocol error: got both push certificate and unsigned commands"); + + boc = strstr(push_cert->buf, "\n\n"); + if (!boc) + die("malformed push certificate %.*s", 100, push_cert->buf); + else + boc += 2; + eoc = push_cert->buf + parse_signature(push_cert->buf, push_cert->len); + + while (boc < eoc) { + const char *eol = memchr(boc, '\n', eoc - boc); + tail = queue_command(tail, boc, eol ? eol - boc : eoc - eol); + boc = eol ? eol + 1 : eoc; + } +} + static struct command *read_head_info(struct sha1_array *shallow) { struct command *commands = NULL; struct command **p = &commands; for (;;) { char *line; - unsigned char old_sha1[20], new_sha1[20]; - struct command *cmd; - char *refname; - int len, reflen; + int len, linelen; line = packet_read_line(0, &len); if (!line) break; if (len == 48 && starts_with(line, "shallow ")) { - if (get_sha1_hex(line + 8, old_sha1)) - die("protocol error: expected shallow sha, got '%s'", line + 8); - sha1_array_append(shallow, old_sha1); + unsigned char sha1[20]; + if (get_sha1_hex(line + 8, sha1)) + die("protocol error: expected shallow sha, got '%s'", + line + 8); + sha1_array_append(shallow, sha1); continue; } - if (len < 83 || - line[40] != ' ' || - line[81] != ' ' || - get_sha1_hex(line, old_sha1) || - get_sha1_hex(line + 41, new_sha1)) - die("protocol error: expected old/new/ref, got '%s'", - line); - - refname = line + 82; - reflen = strlen(refname); - if (reflen + 82 < len) { - const char *feature_list = refname + reflen + 1; + linelen = strlen(line); + if (linelen < len) { + const char *feature_list = line + linelen + 1; if (parse_feature_request(feature_list, "report-status")) report_status = 1; if (parse_feature_request(feature_list, "side-band-64k")) @@ -872,13 +1173,34 @@ static struct command *read_head_info(struct sha1_array *shallow) if (parse_feature_request(feature_list, "quiet")) quiet = 1; } - cmd = xcalloc(1, sizeof(struct command) + len - 80); - hashcpy(cmd->old_sha1, old_sha1); - hashcpy(cmd->new_sha1, new_sha1); - memcpy(cmd->ref_name, line + 82, len - 81); - *p = cmd; - p = &cmd->next; + + if (!strcmp(line, "push-cert")) { + int true_flush = 0; + char certbuf[1024]; + + for (;;) { + len = packet_read(0, NULL, NULL, + certbuf, sizeof(certbuf), 0); + if (!len) { + true_flush = 1; + break; + } + if (!strcmp(certbuf, "push-cert-end\n")) + break; /* end of cert */ + strbuf_addstr(&push_cert, certbuf); + } + + if (true_flush) + break; + continue; + } + + p = queue_command(p, line, linelen); } + + if (push_cert.len) + queue_commands_from_cert(p, &push_cert); + return commands; } @@ -911,7 +1233,7 @@ static const char *unpack(int err_fd, struct shallow_info *si) const char *hdr_err; int status; char hdr_arg[38]; - struct child_process child; + struct child_process child = CHILD_PROCESS_INIT; int fsck_objects = (receive_fsck_objects >= 0 ? receive_fsck_objects : transfer_fsck_objects >= 0 @@ -933,7 +1255,6 @@ static const char *unpack(int err_fd, struct shallow_info *si) argv_array_pushl(&av, "--shallow-file", alt_shallow_file, NULL); } - memset(&child, 0, sizeof(child)); if (ntohl(hdr.hdr_entries) < unpack_limit) { argv_array_pushl(&av, "unpack-objects", hdr_arg, NULL); if (quiet) @@ -1120,9 +1441,7 @@ static int delete_only(struct command *commands) int cmd_receive_pack(int argc, const char **argv, const char *prefix) { int advertise_refs = 0; - int stateless_rpc = 0; int i; - const char *dir = NULL; struct command *commands; struct sha1_array shallow = SHA1_ARRAY_INIT; struct sha1_array ref = SHA1_ARRAY_INIT; @@ -1155,19 +1474,21 @@ int cmd_receive_pack(int argc, const char **argv, const char *prefix) usage(receive_pack_usage); } - if (dir) + if (service_dir) usage(receive_pack_usage); - dir = arg; + service_dir = arg; } - if (!dir) + if (!service_dir) usage(receive_pack_usage); setup_path(); - if (!enter_repo(dir, 0)) - die("'%s' does not appear to be a git repository", dir); + if (!enter_repo(service_dir, 0)) + die("'%s' does not appear to be a git repository", service_dir); git_config(receive_pack_config, NULL); + if (cert_nonce_seed) + push_cert_nonce = prepare_push_cert_nonce(service_dir, time(NULL)); if (0 <= transfer_unpack_limit) unpack_limit = transfer_unpack_limit; @@ -1212,5 +1533,6 @@ int cmd_receive_pack(int argc, const char **argv, const char *prefix) packet_flush(1); sha1_array_clear(&shallow); sha1_array_clear(&ref); + free((void *)push_cert_nonce); return 0; } diff --git a/builtin/remote-ext.c b/builtin/remote-ext.c index 692c834d9d..d699d28e98 100644 --- a/builtin/remote-ext.c +++ b/builtin/remote-ext.c @@ -179,9 +179,8 @@ static void send_git_request(int stdin_fd, const char *serv, const char *repo, static int run_child(const char *arg, const char *service) { int r; - struct child_process child; + struct child_process child = CHILD_PROCESS_INIT; - memset(&child, 0, sizeof(child)); child.in = -1; child.out = -1; child.err = 0; diff --git a/builtin/repack.c b/builtin/repack.c index a77e743b94..2aae05d364 100644 --- a/builtin/repack.c +++ b/builtin/repack.c @@ -133,7 +133,7 @@ int cmd_repack(int argc, const char **argv, const char *prefix) {".idx"}, {".bitmap", 1}, }; - struct child_process cmd; + struct child_process cmd = CHILD_PROCESS_INIT; struct string_list_item *item; struct argv_array cmd_args = ARGV_ARRAY_INIT; struct string_list names = STRING_LIST_INIT_DUP; @@ -250,7 +250,6 @@ int cmd_repack(int argc, const char **argv, const char *prefix) argv_array_push(&cmd_args, packtmp); - memset(&cmd, 0, sizeof(cmd)); cmd.argv = cmd_args.argv; cmd.git_cmd = 1; cmd.out = -1; @@ -378,6 +377,7 @@ int cmd_repack(int argc, const char **argv, const char *prefix) /* End of pack replacement. */ if (delete_redundant) { + int opts = 0; sort_string_list(&names); for_each_string_list_item(item, &existing_packs) { char *sha1; @@ -388,25 +388,13 @@ int cmd_repack(int argc, const char **argv, const char *prefix) if (!string_list_has_string(&names, sha1)) remove_redundant_pack(packdir, item->string); } - argv_array_push(&cmd_args, "prune-packed"); - if (quiet) - argv_array_push(&cmd_args, "--quiet"); - - memset(&cmd, 0, sizeof(cmd)); - cmd.argv = cmd_args.argv; - cmd.git_cmd = 1; - run_command(&cmd); - argv_array_clear(&cmd_args); + if (!quiet && isatty(2)) + opts |= PRUNE_PACKED_VERBOSE; + prune_packed_objects(opts); } - if (!no_update_server_info) { - argv_array_push(&cmd_args, "update-server-info"); - memset(&cmd, 0, sizeof(cmd)); - cmd.argv = cmd_args.argv; - cmd.git_cmd = 1; - run_command(&cmd); - argv_array_clear(&cmd_args); - } + if (!no_update_server_info) + update_server_info(0); remove_temporary_files(); string_list_clear(&names, 0); string_list_clear(&rollback, 0); diff --git a/builtin/replace.c b/builtin/replace.c index 294b61b97e..8020db8500 100644 --- a/builtin/replace.c +++ b/builtin/replace.c @@ -155,7 +155,8 @@ static int replace_object_sha1(const char *object_ref, unsigned char prev[20]; enum object_type obj_type, repl_type; char ref[PATH_MAX]; - struct ref_lock *lock; + struct ref_transaction *transaction; + struct strbuf err = STRBUF_INIT; obj_type = sha1_object_info(object, NULL); repl_type = sha1_object_info(repl, NULL); @@ -168,12 +169,13 @@ static int replace_object_sha1(const char *object_ref, check_ref_valid(object, prev, ref, sizeof(ref), force); - lock = lock_any_ref_for_update(ref, prev, 0, NULL); - if (!lock) - die("%s: cannot lock the ref", ref); - if (write_ref_sha1(lock, repl, NULL) < 0) - die("%s: cannot update the ref", ref); + transaction = ref_transaction_begin(&err); + if (!transaction || + ref_transaction_update(transaction, ref, repl, prev, 0, 1, &err) || + ref_transaction_commit(transaction, NULL, &err)) + die("%s", err.buf); + ref_transaction_free(transaction); return 0; } @@ -197,7 +199,7 @@ static int replace_object(const char *object_ref, const char *replace_ref, int f static void export_object(const unsigned char *sha1, enum object_type type, int raw, const char *filename) { - struct child_process cmd = { NULL }; + struct child_process cmd = CHILD_PROCESS_INIT; int fd; fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0666); @@ -234,7 +236,7 @@ static void import_object(unsigned char *sha1, enum object_type type, if (!raw && type == OBJ_TREE) { const char *argv[] = { "mktree", NULL }; - struct child_process cmd = { argv }; + struct child_process cmd = CHILD_PROCESS_INIT; struct strbuf result = STRBUF_INIT; cmd.argv = argv; diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c index d85e08cc9c..35d3c43ed6 100644 --- a/builtin/rev-parse.c +++ b/builtin/rev-parse.c @@ -508,7 +508,9 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) int has_dashdash = 0; int output_prefix = 0; unsigned char sha1[20]; + unsigned int flags = 0; const char *name = NULL; + struct object_context unused; if (argc > 1 && !strcmp("--parseopt", argv[1])) return cmd_parseopt(argc - 1, argv + 1, prefix); @@ -596,6 +598,7 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) } if (!strcmp(arg, "--quiet") || !strcmp(arg, "-q")) { quiet = 1; + flags |= GET_SHA1_QUIETLY; continue; } if (!strcmp(arg, "--short") || @@ -736,7 +739,7 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) } if (!strcmp(arg, "--git-dir")) { const char *gitdir = getenv(GIT_DIR_ENVIRONMENT); - static char cwd[PATH_MAX]; + char *cwd; int len; if (gitdir) { puts(gitdir); @@ -746,10 +749,10 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) puts(".git"); continue; } - if (!getcwd(cwd, PATH_MAX)) - die_errno("unable to get current working directory"); + cwd = xgetcwd(); len = strlen(cwd); printf("%s%s.git\n", cwd, len && cwd[len-1] != '/' ? "/" : ""); + free(cwd); continue; } if (!strcmp(arg, "--resolve-git-dir")) { @@ -818,7 +821,7 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) name++; type = REVERSED; } - if (!get_sha1(name, sha1)) { + if (!get_sha1_with_context(name, flags, sha1, &unused)) { if (verify) revs_count++; else diff --git a/builtin/rm.c b/builtin/rm.c index bc6490b8bc..2b61d3bd41 100644 --- a/builtin/rm.c +++ b/builtin/rm.c @@ -65,7 +65,7 @@ static void error_removing_concrete_submodules(struct string_list *files, int *e Q_("the following submodule (or one of its nested " "submodules)\n" "uses a .git directory:", - "the following submodules (or one of its nested " + "the following submodules (or one of their nested " "submodules)\n" "use a .git directory:", files->nr), _("\n(use 'rm -rf' if you really want to remove " diff --git a/builtin/send-pack.c b/builtin/send-pack.c index f420b74665..b564a77845 100644 --- a/builtin/send-pack.c +++ b/builtin/send-pack.c @@ -110,6 +110,7 @@ int cmd_send_pack(int argc, const char **argv, const char *prefix) int flags; unsigned int reject_reasons; int progress = -1; + int from_stdin = 0; struct push_cas_option cas = {0}; argv++; @@ -153,6 +154,10 @@ int cmd_send_pack(int argc, const char **argv, const char *prefix) args.verbose = 1; continue; } + if (!strcmp(arg, "--signed")) { + args.push_cert = 1; + continue; + } if (!strcmp(arg, "--progress")) { progress = 1; continue; @@ -169,6 +174,10 @@ int cmd_send_pack(int argc, const char **argv, const char *prefix) args.stateless_rpc = 1; continue; } + if (!strcmp(arg, "--stdin")) { + from_stdin = 1; + continue; + } if (!strcmp(arg, "--helper-status")) { helper_status = 1; continue; @@ -201,6 +210,28 @@ int cmd_send_pack(int argc, const char **argv, const char *prefix) } if (!dest) usage(send_pack_usage); + + if (from_stdin) { + struct argv_array all_refspecs = ARGV_ARRAY_INIT; + + for (i = 0; i < nr_refspecs; i++) + argv_array_push(&all_refspecs, refspecs[i]); + + if (args.stateless_rpc) { + const char *buf; + while ((buf = packet_read_line(0, NULL))) + argv_array_push(&all_refspecs, buf); + } else { + struct strbuf line = STRBUF_INIT; + while (strbuf_getline(&line, stdin, '\n') != EOF) + argv_array_push(&all_refspecs, line.buf); + strbuf_release(&line); + } + + refspecs = all_refspecs.argv; + nr_refspecs = all_refspecs.argc; + } + /* * --all and --mirror are incompatible; neither makes sense * with any refspecs. diff --git a/builtin/show-branch.c b/builtin/show-branch.c index 298c95e3f8..199b081e9b 100644 --- a/builtin/show-branch.c +++ b/builtin/show-branch.c @@ -563,7 +563,7 @@ static int git_show_branch_config(const char *var, const char *value, void *cb) default_arg[default_num++] = "show-branch"; } else if (default_alloc <= default_num + 1) { default_alloc = default_alloc * 3 / 2 + 20; - default_arg = xrealloc(default_arg, sizeof *default_arg * default_alloc); + REALLOC_ARRAY(default_arg, default_alloc); } default_arg[default_num++] = xstrdup(value); default_arg[default_num] = NULL; @@ -723,6 +723,7 @@ int cmd_show_branch(int ac, const char **av, const char *prefix) char nth_desc[256]; char *ref; int base = 0; + unsigned int flags = 0; if (ac == 0) { static const char *fake_av[2]; @@ -749,7 +750,7 @@ int cmd_show_branch(int ac, const char **av, const char *prefix) /* Ah, that is a date spec... */ unsigned long at; at = approxidate(reflog_base); - read_ref_at(ref, at, -1, sha1, NULL, + read_ref_at(ref, flags, at, -1, sha1, NULL, NULL, NULL, &base); } } @@ -760,7 +761,7 @@ int cmd_show_branch(int ac, const char **av, const char *prefix) unsigned long timestamp; int tz; - if (read_ref_at(ref, 0, base+i, sha1, &logmsg, + if (read_ref_at(ref, flags, 0, base+i, sha1, &logmsg, ×tamp, &tz, NULL)) { reflog = i; break; diff --git a/builtin/tag.c b/builtin/tag.c index 19eb747820..a81b9e4174 100644 --- a/builtin/tag.c +++ b/builtin/tag.c @@ -576,7 +576,6 @@ int cmd_tag(int argc, const char **argv, const char *prefix) struct strbuf ref = STRBUF_INIT; unsigned char object[20], prev[20]; const char *object_ref, *tag; - struct ref_lock *lock; struct create_tag_options opt; char *cleanup_arg = NULL; int annotate = 0, force = 0, lines = -1; @@ -584,6 +583,8 @@ int cmd_tag(int argc, const char **argv, const char *prefix) const char *msgfile = NULL, *keyid = NULL; struct msg_arg msg = { 0, STRBUF_INIT }; struct commit_list *with_commit = NULL; + struct ref_transaction *transaction; + struct strbuf err = STRBUF_INIT; struct option options[] = { OPT_CMDMODE('l', "list", &cmdmode, N_("list tag names"), 'l'), { OPTION_INTEGER, 'n', NULL, &lines, N_("n"), @@ -729,14 +730,17 @@ int cmd_tag(int argc, const char **argv, const char *prefix) if (annotate) create_tag(object, tag, &buf, &opt, prev, object); - lock = lock_any_ref_for_update(ref.buf, prev, 0, NULL); - if (!lock) - die(_("%s: cannot lock the ref"), ref.buf); - if (write_ref_sha1(lock, object, NULL) < 0) - die(_("%s: cannot update the ref"), ref.buf); + transaction = ref_transaction_begin(&err); + if (!transaction || + ref_transaction_update(transaction, ref.buf, object, prev, + 0, 1, &err) || + ref_transaction_commit(transaction, NULL, &err)) + die("%s", err.buf); + ref_transaction_free(transaction); if (force && !is_null_sha1(prev) && hashcmp(prev, object)) printf(_("Updated tag '%s' (was %s)\n"), tag, find_unique_abbrev(prev, DEFAULT_ABBREV)); + strbuf_release(&err); strbuf_release(&buf); strbuf_release(&ref); return 0; diff --git a/builtin/unpack-objects.c b/builtin/unpack-objects.c index 99cde45879..855d94b90b 100644 --- a/builtin/unpack-objects.c +++ b/builtin/unpack-objects.c @@ -164,10 +164,10 @@ static unsigned nr_objects; * Called only from check_object() after it verified this object * is Ok. */ -static void write_cached_object(struct object *obj) +static void write_cached_object(struct object *obj, struct obj_buffer *obj_buf) { unsigned char sha1[20]; - struct obj_buffer *obj_buf = lookup_object_buffer(obj); + if (write_sha1_file(obj_buf->buffer, obj_buf->size, typename(obj->type), sha1) < 0) die("failed to write object %s", sha1_to_hex(obj->sha1)); obj->flags |= FLAG_WRITTEN; @@ -180,6 +180,8 @@ static void write_cached_object(struct object *obj) */ static int check_object(struct object *obj, int type, void *data) { + struct obj_buffer *obj_buf; + if (!obj) return 1; @@ -198,11 +200,15 @@ static int check_object(struct object *obj, int type, void *data) return 0; } - if (fsck_object(obj, 1, fsck_error_function)) + obj_buf = lookup_object_buffer(obj); + if (!obj_buf) + die("Whoops! Cannot find object '%s'", sha1_to_hex(obj->sha1)); + if (fsck_object(obj, obj_buf->buffer, obj_buf->size, 1, + fsck_error_function)) die("Error in object"); if (fsck_walk(obj, check_object, NULL)) die("Error on reachable objects of %s", sha1_to_hex(obj->sha1)); - write_cached_object(obj); + write_cached_object(obj, obj_buf); return 0; } diff --git a/builtin/update-ref.c b/builtin/update-ref.c index 3067b11310..54a48c0cfa 100644 --- a/builtin/update-ref.c +++ b/builtin/update-ref.c @@ -12,11 +12,8 @@ static const char * const git_update_ref_usage[] = { NULL }; -static struct ref_transaction *transaction; - static char line_termination = '\n'; static int update_flags; -static struct strbuf err = STRBUF_INIT; /* * Parse one whitespace- or NUL-terminated, possibly C-quoted argument @@ -177,8 +174,10 @@ static int parse_next_sha1(struct strbuf *input, const char **next, * depending on how line_termination is set. */ -static const char *parse_cmd_update(struct strbuf *input, const char *next) +static const char *parse_cmd_update(struct ref_transaction *transaction, + struct strbuf *input, const char *next) { + struct strbuf err = STRBUF_INIT; char *refname; unsigned char new_sha1[20]; unsigned char old_sha1[20]; @@ -204,12 +203,15 @@ static const char *parse_cmd_update(struct strbuf *input, const char *next) update_flags = 0; free(refname); + strbuf_release(&err); return next; } -static const char *parse_cmd_create(struct strbuf *input, const char *next) +static const char *parse_cmd_create(struct ref_transaction *transaction, + struct strbuf *input, const char *next) { + struct strbuf err = STRBUF_INIT; char *refname; unsigned char new_sha1[20]; @@ -226,16 +228,21 @@ static const char *parse_cmd_create(struct strbuf *input, const char *next) if (*next != line_termination) die("create %s: extra input: %s", refname, next); - ref_transaction_create(transaction, refname, new_sha1, update_flags); + if (ref_transaction_create(transaction, refname, new_sha1, + update_flags, &err)) + die("%s", err.buf); update_flags = 0; free(refname); + strbuf_release(&err); return next; } -static const char *parse_cmd_delete(struct strbuf *input, const char *next) +static const char *parse_cmd_delete(struct ref_transaction *transaction, + struct strbuf *input, const char *next) { + struct strbuf err = STRBUF_INIT; char *refname; unsigned char old_sha1[20]; int have_old; @@ -256,17 +263,21 @@ static const char *parse_cmd_delete(struct strbuf *input, const char *next) if (*next != line_termination) die("delete %s: extra input: %s", refname, next); - ref_transaction_delete(transaction, refname, old_sha1, - update_flags, have_old); + if (ref_transaction_delete(transaction, refname, old_sha1, + update_flags, have_old, &err)) + die("%s", err.buf); update_flags = 0; free(refname); + strbuf_release(&err); return next; } -static const char *parse_cmd_verify(struct strbuf *input, const char *next) +static const char *parse_cmd_verify(struct ref_transaction *transaction, + struct strbuf *input, const char *next) { + struct strbuf err = STRBUF_INIT; char *refname; unsigned char new_sha1[20]; unsigned char old_sha1[20]; @@ -294,6 +305,7 @@ static const char *parse_cmd_verify(struct strbuf *input, const char *next) update_flags = 0; free(refname); + strbuf_release(&err); return next; } @@ -307,7 +319,7 @@ static const char *parse_cmd_option(struct strbuf *input, const char *next) return next + 8; } -static void update_refs_stdin(void) +static void update_refs_stdin(struct ref_transaction *transaction) { struct strbuf input = STRBUF_INIT; const char *next; @@ -322,13 +334,13 @@ static void update_refs_stdin(void) else if (isspace(*next)) die("whitespace before command: %s", next); else if (starts_with(next, "update ")) - next = parse_cmd_update(&input, next + 7); + next = parse_cmd_update(transaction, &input, next + 7); else if (starts_with(next, "create ")) - next = parse_cmd_create(&input, next + 7); + next = parse_cmd_create(transaction, &input, next + 7); else if (starts_with(next, "delete ")) - next = parse_cmd_delete(&input, next + 7); + next = parse_cmd_delete(transaction, &input, next + 7); else if (starts_with(next, "verify ")) - next = parse_cmd_verify(&input, next + 7); + next = parse_cmd_verify(transaction, &input, next + 7); else if (starts_with(next, "option ")) next = parse_cmd_option(&input, next + 7); else @@ -362,15 +374,21 @@ int cmd_update_ref(int argc, const char **argv, const char *prefix) die("Refusing to perform update with empty message."); if (read_stdin) { - transaction = ref_transaction_begin(); + struct strbuf err = STRBUF_INIT; + struct ref_transaction *transaction; + + transaction = ref_transaction_begin(&err); + if (!transaction) + die("%s", err.buf); if (delete || no_deref || argc > 0) usage_with_options(git_update_ref_usage, options); if (end_null) line_termination = '\0'; - update_refs_stdin(); + update_refs_stdin(transaction); if (ref_transaction_commit(transaction, msg, &err)) die("%s", err.buf); ref_transaction_free(transaction); + strbuf_release(&err); return 0; } diff --git a/builtin/verify-pack.c b/builtin/verify-pack.c index 972579f33c..7747537beb 100644 --- a/builtin/verify-pack.c +++ b/builtin/verify-pack.c @@ -8,7 +8,7 @@ static int verify_one_pack(const char *path, unsigned int flags) { - struct child_process index_pack; + struct child_process index_pack = CHILD_PROCESS_INIT; const char *argv[] = {"index-pack", NULL, NULL, NULL }; struct strbuf arg = STRBUF_INIT; int verbose = flags & VERIFY_PACK_VERBOSE; @@ -32,7 +32,6 @@ static int verify_one_pack(const char *path, unsigned int flags) strbuf_addstr(&arg, ".pack"); argv[2] = arg.buf; - memset(&index_pack, 0, sizeof(index_pack)); index_pack.argv = argv; index_pack.git_cmd = 1; @@ -221,8 +221,8 @@ static int is_tag_in_date_range(struct object *tag, struct rev_info *revs) line = memmem(buf, size, "\ntagger ", 8); if (!line++) return 1; - lineend = memchr(line, buf + size - line, '\n'); - line = memchr(line, lineend ? lineend - line : buf + size - line, '>'); + lineend = memchr(line, '\n', buf + size - line); + line = memchr(line, '>', lineend ? lineend - line : buf + size - line); if (!line++) return 1; date = strtoul(line, NULL, 10); @@ -240,7 +240,7 @@ int create_bundle(struct bundle_header *header, const char *path, int i, ref_count = 0; struct strbuf buf = STRBUF_INIT; struct rev_info revs; - struct child_process rls; + struct child_process rls = CHILD_PROCESS_INIT; FILE *rls_fout; bundle_to_stdout = !strcmp(path, "-"); @@ -258,7 +258,6 @@ int create_bundle(struct bundle_header *header, const char *path, init_revisions(&revs, NULL); /* write prerequisites */ - memset(&rls, 0, sizeof(rls)); argv_array_pushl(&rls.args, "rev-list", "--boundary", "--pretty=oneline", NULL); @@ -417,14 +416,13 @@ int unbundle(struct bundle_header *header, int bundle_fd, int flags) { const char *argv_index_pack[] = {"index-pack", "--fix-thin", "--stdin", NULL, NULL}; - struct child_process ip; + struct child_process ip = CHILD_PROCESS_INIT; if (flags & BUNDLE_VERBOSE) argv_index_pack[3] = "-v"; if (verify_bundle(header, 0)) return -1; - memset(&ip, 0, sizeof(ip)); ip.argv = argv_index_pack; ip.in = bundle_fd; ip.no_stdout = 1; diff --git a/cache-tree.c b/cache-tree.c index c53f7de2b1..75a54fdc72 100644 --- a/cache-tree.c +++ b/cache-tree.c @@ -246,9 +246,12 @@ static int update_one(struct cache_tree *it, struct strbuf buffer; int missing_ok = flags & WRITE_TREE_MISSING_OK; int dryrun = flags & WRITE_TREE_DRY_RUN; + int repair = flags & WRITE_TREE_REPAIR; int to_invalidate = 0; int i; + assert(!(dryrun && repair)); + *skip_count = 0; if (0 <= it->entry_count && has_sha1_file(it->sha1)) @@ -320,6 +323,7 @@ static int update_one(struct cache_tree *it, int pathlen, entlen; const unsigned char *sha1; unsigned mode; + int expected_missing = 0; path = ce->name; pathlen = ce_namelen(ce); @@ -336,8 +340,10 @@ static int update_one(struct cache_tree *it, i += sub->count; sha1 = sub->cache_tree->sha1; mode = S_IFDIR; - if (sub->cache_tree->entry_count < 0) + if (sub->cache_tree->entry_count < 0) { to_invalidate = 1; + expected_missing = 1; + } } else { sha1 = ce->sha1; @@ -347,6 +353,8 @@ static int update_one(struct cache_tree *it, } if (mode != S_IFGITLINK && !missing_ok && !has_sha1_file(sha1)) { strbuf_release(&buffer); + if (expected_missing) + return -1; return error("invalid object %06o %s for '%.*s'", mode, sha1_to_hex(sha1), entlen+baselen, path); } @@ -381,7 +389,14 @@ static int update_one(struct cache_tree *it, #endif } - if (dryrun) + if (repair) { + unsigned char sha1[20]; + hash_sha1_file(buffer.buf, buffer.len, tree_type, sha1); + if (has_sha1_file(sha1)) + hashcpy(it->sha1, sha1); + else + to_invalidate = 1; + } else if (dryrun) hash_sha1_file(buffer.buf, buffer.len, tree_type, it->sha1); else if (write_sha1_file(buffer.buf, buffer.len, tree_type, it->sha1)) { strbuf_release(&buffer); diff --git a/cache-tree.h b/cache-tree.h index b47ccec7f6..aa7b3e4a0a 100644 --- a/cache-tree.h +++ b/cache-tree.h @@ -39,6 +39,7 @@ int update_main_cache_tree(int); #define WRITE_TREE_IGNORE_CACHE_TREE 2 #define WRITE_TREE_DRY_RUN 4 #define WRITE_TREE_SILENT 8 +#define WRITE_TREE_REPAIR 16 /* error return codes */ #define WRITE_TREE_UNREADABLE_INDEX (-1) @@ -8,6 +8,7 @@ #include "gettext.h" #include "convert.h" #include "trace.h" +#include "string-list.h" #include SHA1_HEADER #ifndef git_SHA_CTX @@ -481,7 +482,7 @@ extern int daemonize(void); alloc = (nr); \ else \ alloc = alloc_nr(alloc); \ - x = xrealloc((x), alloc * sizeof(*(x))); \ + REALLOC_ARRAY(x, alloc); \ } \ } while (0) @@ -585,6 +586,7 @@ extern NORETURN void unable_to_lock_index_die(const char *path, int err); extern int hold_lock_file_for_update(struct lock_file *, const char *path, int); extern int hold_lock_file_for_append(struct lock_file *, const char *path, int); extern int commit_lock_file(struct lock_file *); +extern int reopen_lock_file(struct lock_file *); extern void update_index_if_able(struct index_state *, struct lock_file *); extern int hold_locked_index(struct lock_file *, int); @@ -1037,6 +1039,7 @@ enum date_mode { DATE_SHORT, DATE_LOCAL, DATE_ISO8601, + DATE_ISO8601_STRICT, DATE_RFC2822, DATE_RAW }; @@ -1044,10 +1047,10 @@ enum date_mode { const char *show_date(unsigned long time, int timezone, enum date_mode mode); void show_date_relative(unsigned long time, int tz, const struct timeval *now, struct strbuf *timebuf); -int parse_date(const char *date, char *buf, int bufsize); +int parse_date(const char *date, struct strbuf *out); int parse_date_basic(const char *date, unsigned long *timestamp, int *offset); int parse_expiry_date(const char *date, unsigned long *timestamp); -void datestamp(char *buf, int bufsize); +void datestamp(struct strbuf *out); #define approxidate(s) approxidate_careful((s), NULL) unsigned long approxidate_careful(const char *, int *); unsigned long approxidate_relative(const char *date, const struct timeval *now); @@ -1061,6 +1064,7 @@ extern const char *git_author_info(int); extern const char *git_committer_info(int); extern const char *fmt_ident(const char *name, const char *email, const char *date_str, int); extern const char *fmt_name(const char *name, const char *email); +extern const char *ident_default_name(void); extern const char *ident_default_email(void); extern const char *git_editor(void); extern const char *git_pager(int stdout_is_tty); @@ -1281,6 +1285,8 @@ extern int update_server_info(int); #define CONFIG_INVALID_PATTERN 6 #define CONFIG_GENERIC_ERROR 7 +#define CONFIG_REGEX_NONE ((void *)1) + struct git_config_source { unsigned int use_stdin:1; const char *file; @@ -1294,7 +1300,7 @@ extern int git_config_from_buf(config_fn_t fn, 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 int git_config(config_fn_t fn, void *); +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); @@ -1352,6 +1358,69 @@ extern int parse_config_key(const char *var, const char **subsection, int *subsection_len, const char **key); +struct config_set_element { + struct hashmap_entry ent; + char *key; + struct string_list value_list; +}; + +struct configset_list_item { + struct config_set_element *e; + int value_index; +}; + +/* + * the contents of the list are ordered according to their + * position in the config files and order of parsing the files. + * (i.e. key-value pair at the last position of .git/config will + * be at the last item of the list) + */ +struct configset_list { + struct configset_list_item *items; + unsigned int nr, alloc; +}; + +struct config_set { + struct hashmap config_hash; + int hash_initialized; + struct configset_list list; +}; + +extern void git_configset_init(struct config_set *cs); +extern int git_configset_add_file(struct config_set *cs, const char *filename); +extern int git_configset_get_value(struct config_set *cs, const char *key, const char **value); +extern const struct string_list *git_configset_get_value_multi(struct config_set *cs, const char *key); +extern void git_configset_clear(struct config_set *cs); +extern int git_configset_get_string_const(struct config_set *cs, const char *key, const char **dest); +extern int git_configset_get_string(struct config_set *cs, const char *key, char **dest); +extern int git_configset_get_int(struct config_set *cs, const char *key, int *dest); +extern int git_configset_get_ulong(struct config_set *cs, const char *key, unsigned long *dest); +extern int git_configset_get_bool(struct config_set *cs, const char *key, int *dest); +extern int git_configset_get_bool_or_int(struct config_set *cs, const char *key, int *is_bool, int *dest); +extern int git_configset_get_maybe_bool(struct config_set *cs, const char *key, int *dest); +extern int git_configset_get_pathname(struct config_set *cs, const char *key, const char **dest); + +extern int git_config_get_value(const char *key, const char **value); +extern const struct string_list *git_config_get_value_multi(const char *key); +extern void git_config_clear(void); +extern void git_config_iter(config_fn_t fn, void *data); +extern int git_config_get_string_const(const char *key, const char **dest); +extern int git_config_get_string(const char *key, char **dest); +extern int git_config_get_int(const char *key, int *dest); +extern int git_config_get_ulong(const char *key, unsigned long *dest); +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); + +struct key_value_info { + const char *filename; + int linenr; +}; + +extern NORETURN void git_die_config(const char *key, const char *err, ...) __attribute__((format(printf, 2, 3))); +extern NORETURN void git_die_config_linenr(const char *key, const char *filename, int linenr); + extern int committer_ident_sufficiently_given(void); extern int author_ident_sufficiently_given(void); @@ -1362,6 +1431,8 @@ extern const char *git_mailmap_blob; /* IO helper functions */ extern void maybe_flush_or_die(FILE *, const char *); +__attribute__((format (printf, 2, 3))) +extern void fprintf_or_die(FILE *, const char *fmt, ...); extern int copy_fd(int ifd, int ofd); extern int copy_file(const char *dst, const char *src, int mode); extern int copy_file_with_time(const char *dst, const char *src, int mode); @@ -81,8 +81,7 @@ static void compute_column_width(struct column_data *data) */ static void shrink_columns(struct column_data *data) { - data->width = xrealloc(data->width, - sizeof(*data->width) * data->cols); + REALLOC_ARRAY(data->width, data->cols); while (data->rows > 1) { int x, total_width, cols, rows; rows = data->rows; @@ -91,8 +90,7 @@ static void shrink_columns(struct column_data *data) data->rows--; data->cols = DIV_ROUND_UP(data->list->nr, data->rows); if (data->cols != cols) - data->width = xrealloc(data->width, - sizeof(*data->width) * data->cols); + REALLOC_ARRAY(data->width, data->cols); compute_column_width(data); total_width = strlen(data->opts.indent); @@ -367,7 +365,7 @@ int parseopt_column_callback(const struct option *opt, } static int fd_out = -1; -static struct child_process column_process; +static struct child_process column_process = CHILD_PROCESS_INIT; int run_column_filter(int colopts, const struct column_options *opts) { diff --git a/combine-diff.c b/combine-diff.c index f9975d2c2e..91edce58e1 100644 --- a/combine-diff.c +++ b/combine-diff.c @@ -12,6 +12,16 @@ #include "sha1-array.h" #include "revision.h" +static int compare_paths(const struct combine_diff_path *one, + const struct diff_filespec *two) +{ + if (!S_ISDIR(one->mode) && !S_ISDIR(two->mode)) + return strcmp(one->path, two->path); + + return base_name_compare(one->path, strlen(one->path), one->mode, + two->path, strlen(two->path), two->mode); +} + static struct combine_diff_path *intersect_paths(struct combine_diff_path *curr, int n, int num_parent) { struct diff_queue_struct *q = &diff_queued_diff; @@ -52,7 +62,7 @@ static struct combine_diff_path *intersect_paths(struct combine_diff_path *curr, i = 0; while ((p = *tail) != NULL) { cmp = ((i >= q->nr) - ? -1 : strcmp(p->path, q->queue[i]->two->path)); + ? -1 : compare_paths(p, q->queue[i]->two)); if (cmp < 0) { /* p->path not in q->queue[]; drop it */ @@ -1397,7 +1407,8 @@ void diff_tree_combined(const unsigned char *sha1, show_log(rev); if (rev->verbose_header && opt->output_format && - opt->output_format != DIFF_FORMAT_NO_OUTPUT) + opt->output_format != DIFF_FORMAT_NO_OUTPUT && + !commit_format_is_empty(rev->commit_format)) printf("%s%c", diff_line_prefix(opt), opt->line_termination); } diff --git a/commit-slab.h b/commit-slab.h index 375c9c751a..f37ec3831f 100644 --- a/commit-slab.h +++ b/commit-slab.h @@ -90,8 +90,7 @@ static MAYBE_UNUSED elemtype *slabname## _at(struct slabname *s, \ \ if (s->slab_count <= nth_slab) { \ int i; \ - s->slab = xrealloc(s->slab, \ - (nth_slab + 1) * sizeof(*s->slab)); \ + REALLOC_ARRAY(s->slab, nth_slab + 1); \ stat_ ##slabname## realloc++; \ for (i = s->slab_count; i <= nth_slab; i++) \ s->slab[i] = NULL; \ @@ -584,25 +584,19 @@ define_commit_slab(author_date_slab, unsigned long); static void record_author_date(struct author_date_slab *author_date, struct commit *commit) { - const char *buf, *line_end, *ident_line; const char *buffer = get_commit_buffer(commit, NULL); struct ident_split ident; + const char *ident_line; + size_t ident_len; char *date_end; unsigned long date; - for (buf = buffer; buf; buf = line_end + 1) { - line_end = strchrnul(buf, '\n'); - if (!skip_prefix(buf, "author ", &ident_line)) { - if (!line_end[0] || line_end[1] == '\n') - return; /* end of header */ - continue; - } - if (split_ident_line(&ident, - ident_line, line_end - ident_line) || - !ident.date_begin || !ident.date_end) - goto fail_exit; /* malformed "author" line */ - break; - } + ident_line = find_commit_header(buffer, "author", &ident_len); + if (!ident_line) + goto fail_exit; /* no author line */ + if (split_ident_line(&ident, ident_line, ident_len) || + !ident.date_begin || !ident.date_end) + goto fail_exit; /* malformed "author" line */ date = strtoul(ident.date_begin, &date_end, 10); if (date_end != ident.date_end) @@ -1220,43 +1214,7 @@ free_return: free(buf); } -static struct { - char result; - const char *check; -} sigcheck_gpg_status[] = { - { 'G', "\n[GNUPG:] GOODSIG " }, - { 'B', "\n[GNUPG:] BADSIG " }, - { 'U', "\n[GNUPG:] TRUST_NEVER" }, - { 'U', "\n[GNUPG:] TRUST_UNDEFINED" }, -}; - -static void parse_gpg_output(struct signature_check *sigc) -{ - const char *buf = sigc->gpg_status; - int i; - - /* Iterate over all search strings */ - for (i = 0; i < ARRAY_SIZE(sigcheck_gpg_status); i++) { - const char *found, *next; - - if (!skip_prefix(buf, sigcheck_gpg_status[i].check + 1, &found)) { - found = strstr(buf, sigcheck_gpg_status[i].check); - if (!found) - continue; - found += strlen(sigcheck_gpg_status[i].check); - } - sigc->result = sigcheck_gpg_status[i].result; - /* The trust messages are not followed by key/signer information */ - if (sigc->result != 'U') { - sigc->key = xmemdupz(found, 16); - found += 17; - next = strchrnul(found, '\n'); - sigc->signer = xmemdupz(found, next - found); - } - } -} - -void check_commit_signature(const struct commit* commit, struct signature_check *sigc) +void check_commit_signature(const struct commit *commit, struct signature_check *sigc) { struct strbuf payload = STRBUF_INIT; struct strbuf signature = STRBUF_INIT; @@ -1660,3 +1618,25 @@ void print_commit_list(struct commit_list *list, printf(format, sha1_to_hex(list->item->object.sha1)); } } + +const char *find_commit_header(const char *msg, const char *key, size_t *out_len) +{ + int key_len = strlen(key); + const char *line = msg; + + while (line) { + const char *eol = strchrnul(line, '\n'); + + if (line == eol) + return NULL; + + if (eol - line > key_len && + !strncmp(line, key, key_len) && + line[key_len] == ' ') { + *out_len = eol - line - key_len - 1; + return line + key_len + 1; + } + line = *eol ? eol + 1 : NULL; + } + return NULL; +} @@ -26,13 +26,25 @@ extern int save_commit_buffer; extern const char *commit_type; /* While we can decorate any object with a name, it's only used for commits.. */ -extern struct decoration name_decoration; struct name_decoration { struct name_decoration *next; int type; - char name[1]; + char name[FLEX_ARRAY]; }; +enum decoration_type { + DECORATION_NONE = 0, + DECORATION_REF_LOCAL, + DECORATION_REF_REMOTE, + DECORATION_REF_TAG, + DECORATION_REF_STASH, + DECORATION_REF_HEAD, + DECORATION_GRAFTED, +}; + +void add_name_decoration(enum decoration_type type, const char *name, struct object *obj); +const struct name_decoration *get_name_decoration(const struct object *obj); + struct commit *lookup_commit(const unsigned char *sha1); struct commit *lookup_commit_reference(const unsigned char *sha1); struct commit *lookup_commit_reference_gently(const unsigned char *sha1, @@ -159,6 +171,7 @@ extern void get_commit_format(const char *arg, struct rev_info *); extern const char *format_subject(struct strbuf *sb, const char *msg, const char *line_separator); extern void userformat_find_requirements(const char *fmt, struct userformat_want *w); +extern int commit_format_is_empty(enum cmit_fmt); extern void format_commit_message(const struct commit *commit, const char *format, struct strbuf *sb, const struct pretty_print_context *context); @@ -313,6 +326,17 @@ extern struct commit_extra_header *read_commit_extra_headers(struct commit *, co extern void free_commit_extra_headers(struct commit_extra_header *extra); +/* + * Search the commit object contents given by "msg" for the header "key". + * Returns a pointer to the start of the header contents, or NULL. The length + * of the header, up to the first newline, is returned via out_len. + * + * Note that some headers (like mergetag) may be multi-line. It is the caller's + * responsibility to parse further in this case! + */ +extern const char *find_commit_header(const char *msg, const char *key, + size_t *out_len); + typedef void (*each_mergetag_fn)(struct commit *commit, struct commit_extra_header *extra, void *cb_data); @@ -346,7 +370,7 @@ extern void print_commit_list(struct commit_list *list, * at all. This may allocate memory for sig->gpg_output, sig->gpg_status, * sig->signer and sig->key. */ -extern void check_commit_signature(const struct commit* commit, struct signature_check *sigc); +extern void check_commit_signature(const struct commit *commit, struct signature_check *sigc); int compare_commits_by_commit_date(const void *a_, const void *b_, void *unused); diff --git a/compat/mingw.h b/compat/mingw.h index df0e3203ab..5e499cfb71 100644 --- a/compat/mingw.h +++ b/compat/mingw.h @@ -69,7 +69,6 @@ struct sigaction { sig_handler_t sa_handler; unsigned sa_flags; }; -#define sigemptyset(x) (void)0 #define SA_RESTART 0 struct itimerval { @@ -116,6 +115,12 @@ static inline int fcntl(int fd, int cmd, ...) } /* bash cannot reliably detect negative return codes as failure */ #define exit(code) exit((code) & 0xff) +#define sigemptyset(x) (void)0 +static inline int sigaddset(sigset_t *set, int signum) +{ return 0; } +#define SIG_UNBLOCK 0 +static inline int sigprocmask(int how, const sigset_t *set, sigset_t *oldset) +{ return 0; } /* * simple adaptors @@ -9,6 +9,8 @@ #include "exec_cmd.h" #include "strbuf.h" #include "quote.h" +#include "hashmap.h" +#include "string-list.h" struct config_source { struct config_source *prev; @@ -37,6 +39,13 @@ static struct config_source *cf; static int zlib_compression_seen; +/* + * Default config_set that contains key-value pairs from the usual set of config + * config files (i.e repo specific .git/config, user wide ~/.gitconfig, XDG + * config file and the global /etc/gitconfig) + */ +static struct config_set the_config_set; + static int config_file_fgetc(struct config_source *conf) { return fgetc(conf->u.file); @@ -127,7 +136,6 @@ static int handle_path_include(const char *path, struct config_include_data *inc int git_config_include(const char *var, const char *value, void *data) { struct config_include_data *inc = data; - const char *type; int ret; /* @@ -138,10 +146,7 @@ int git_config_include(const char *var, const char *value, void *data) if (ret < 0) return ret; - if (!skip_prefix(var, "include.", &type)) - return ret; - - if (!strcmp(type, "path")) + if (!strcmp(var, "include.path")) ret = handle_path_include(value, inc); return ret; } @@ -162,19 +167,27 @@ void git_config_push_parameter(const char *text) int git_config_parse_parameter(const char *text, config_fn_t fn, void *data) { + const char *value; struct strbuf **pair; + pair = strbuf_split_str(text, '=', 2); if (!pair[0]) return error("bogus config parameter: %s", text); - if (pair[0]->len && pair[0]->buf[pair[0]->len - 1] == '=') + + if (pair[0]->len && pair[0]->buf[pair[0]->len - 1] == '=') { strbuf_setlen(pair[0], pair[0]->len - 1); + value = pair[1] ? pair[1]->buf : ""; + } else { + value = NULL; + } + strbuf_trim(pair[0]); if (!pair[0]->len) { strbuf_list_free(pair); return error("bogus config parameter: %s", text); } strbuf_tolower(pair[0]); - if (fn(pair[0]->buf, pair[1] ? pair[1]->buf : NULL, data) < 0) { + if (fn(pair[0]->buf, value, data) < 0) { strbuf_list_free(pair); return -1; } @@ -229,6 +242,7 @@ static int get_next_char(void) cf->linenr++; if (c == EOF) { cf->eof = 1; + cf->linenr++; c = '\n'; } return c; @@ -304,6 +318,7 @@ static int get_value(config_fn_t fn, void *data, struct strbuf *name) { int c; char *value; + int ret; /* Get the full name */ for (;;) { @@ -326,7 +341,15 @@ static int get_value(config_fn_t fn, void *data, struct strbuf *name) if (!value) return -1; } - return fn(name->buf, value, data); + /* + * We already consumed the \n, but we need linenr to point to + * the line we just parsed during the call to fn to get + * accurate line number in error messages. + */ + cf->linenr--; + ret = fn(name->buf, value, data); + cf->linenr++; + return ret; } static int get_extended_base_var(struct strbuf *name, int c) @@ -442,9 +465,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 file line %d in %s"), cf->linenr, cf->name); else - return error("bad config file line %d in %s", cf->linenr, cf->name); + return error(_("bad config file line %d in %s"), cf->linenr, cf->name); } static int parse_unit_factor(const char *end, uintmax_t *val) @@ -560,9 +583,9 @@ static void die_bad_number(const char *name, const char *value) value = ""; if (cf && cf->name) - die("bad numeric config value '%s' for '%s' in %s: %s", + die(_("bad numeric config value '%s' for '%s' in %s: %s"), value, name, cf->name, reason); - die("bad numeric config value '%s' for '%s': %s", value, name, reason); + die(_("bad numeric config value '%s' for '%s': %s"), value, name, reason); } int git_config_int(const char *name, const char *value) @@ -647,7 +670,7 @@ int git_config_pathname(const char **dest, const char *var, const char *value) return config_error_nonbool(var); *dest = expand_user_path(value); if (!*dest) - die("Failed to expand user dir in: '%s'", value); + die(_("failed to expand user dir in: '%s'"), value); return 0; } @@ -725,7 +748,7 @@ static int git_default_core_config(const char *var, const char *value) if (level == -1) level = Z_DEFAULT_COMPRESSION; else if (level < 0 || level > Z_BEST_COMPRESSION) - die("bad zlib compression level %d", level); + die(_("bad zlib compression level %d"), level); zlib_compression_level = level; zlib_compression_seen = 1; return 0; @@ -736,7 +759,7 @@ static int git_default_core_config(const char *var, const char *value) if (level == -1) level = Z_DEFAULT_COMPRESSION; else if (level < 0 || level > Z_BEST_COMPRESSION) - die("bad zlib compression level %d", level); + die(_("bad zlib compression level %d"), level); core_compression_level = level; core_compression_seen = 1; if (!zlib_compression_seen) @@ -858,7 +881,7 @@ static int git_default_core_config(const char *var, const char *value) else if (!strcmp(value, "link")) object_creation_mode = OBJECT_CREATION_USES_HARDLINKS; else - die("Invalid mode for object creation: %s", value); + die(_("invalid mode for object creation: %s"), value); return 0; } @@ -1174,7 +1197,7 @@ int git_config_early(config_fn_t fn, void *data, const char *repo_config) switch (git_config_from_parameters(fn, data)) { case -1: /* error */ - die("unable to parse command-line config"); + die(_("unable to parse command-line config")); break; case 0: /* found nothing */ break; @@ -1221,9 +1244,365 @@ int git_config_with_options(config_fn_t fn, void *data, return ret; } -int git_config(config_fn_t fn, void *data) +static void git_config_raw(config_fn_t fn, void *data) +{ + if (git_config_with_options(fn, data, NULL, 1) < 0) + /* + * git_config_with_options() normally returns only + * positive values, as most errors are fatal, and + * non-fatal potential errors are guarded by "if" + * statements that are entered only when no error is + * possible. + * + * If we ever encounter a non-fatal error, it means + * something went really wrong and we should stop + * immediately. + */ + die(_("unknown error occured while reading the configuration files")); +} + +static void configset_iter(struct config_set *cs, config_fn_t fn, void *data) +{ + int i, value_index; + struct string_list *values; + struct config_set_element *entry; + struct configset_list *list = &cs->list; + struct key_value_info *kv_info; + + for (i = 0; i < list->nr; i++) { + entry = list->items[i].e; + value_index = list->items[i].value_index; + values = &entry->value_list; + if (fn(entry->key, values->items[value_index].string, data) < 0) { + kv_info = values->items[value_index].util; + git_die_config_linenr(entry->key, kv_info->filename, kv_info->linenr); + } + } +} + +static void git_config_check_init(void); + +void git_config(config_fn_t fn, void *data) +{ + git_config_check_init(); + configset_iter(&the_config_set, fn, data); +} + +static struct config_set_element *configset_find_element(struct config_set *cs, const char *key) +{ + 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) + return NULL; + + hashmap_entry_init(&k, strhash(normalized_key)); + k.key = normalized_key; + found_entry = hashmap_get(&cs->config_hash, &k, NULL); + free(normalized_key); + return found_entry; +} + +static int configset_add_value(struct config_set *cs, const char *key, const char *value) +{ + struct config_set_element *e; + struct string_list_item *si; + struct configset_list_item *l_item; + struct key_value_info *kv_info = xmalloc(sizeof(*kv_info)); + + e = configset_find_element(cs, key); + /* + * Since the keys are being fed by git_config*() callback mechanism, they + * are already normalized. So simply add them without any further munging. + */ + if (!e) { + e = xmalloc(sizeof(*e)); + hashmap_entry_init(e, strhash(key)); + e->key = xstrdup(key); + string_list_init(&e->value_list, 1); + hashmap_add(&cs->config_hash, e); + } + si = string_list_append_nodup(&e->value_list, value ? xstrdup(value) : NULL); + + ALLOC_GROW(cs->list.items, cs->list.nr + 1, cs->list.alloc); + l_item = &cs->list.items[cs->list.nr++]; + l_item->e = e; + l_item->value_index = e->value_list.nr - 1; + + if (cf) { + kv_info->filename = strintern(cf->name); + kv_info->linenr = cf->linenr; + } else { + /* for values read from `git_config_from_parameters()` */ + kv_info->filename = NULL; + kv_info->linenr = -1; + } + si->util = kv_info; + + return 0; +} + +static int config_set_element_cmp(const struct config_set_element *e1, + const struct config_set_element *e2, const void *unused) +{ + return strcmp(e1->key, e2->key); +} + +void git_configset_init(struct config_set *cs) +{ + hashmap_init(&cs->config_hash, (hashmap_cmp_fn)config_set_element_cmp, 0); + cs->hash_initialized = 1; + cs->list.nr = 0; + cs->list.alloc = 0; + cs->list.items = NULL; +} + +void git_configset_clear(struct config_set *cs) +{ + struct config_set_element *entry; + struct hashmap_iter iter; + if (!cs->hash_initialized) + return; + + hashmap_iter_init(&cs->config_hash, &iter); + while ((entry = hashmap_iter_next(&iter))) { + free(entry->key); + string_list_clear(&entry->value_list, 1); + } + hashmap_free(&cs->config_hash, 1); + cs->hash_initialized = 0; + free(cs->list.items); + cs->list.nr = 0; + cs->list.alloc = 0; + cs->list.items = NULL; +} + +static int config_set_callback(const char *key, const char *value, void *cb) +{ + struct config_set *cs = cb; + configset_add_value(cs, key, value); + return 0; +} + +int git_configset_add_file(struct config_set *cs, const char *filename) +{ + return git_config_from_file(config_set_callback, filename, cs); +} + +int git_configset_get_value(struct config_set *cs, const char *key, const char **value) +{ + const struct string_list *values = NULL; + /* + * Follows "last one wins" semantic, i.e., if there are multiple matches for the + * queried key in the files of the configset, the value returned will be the last + * value in the value list for that key. + */ + values = git_configset_get_value_multi(cs, key); + + if (!values) + return 1; + assert(values->nr > 0); + *value = values->items[values->nr - 1].string; + return 0; +} + +const struct string_list *git_configset_get_value_multi(struct config_set *cs, const char *key) +{ + struct config_set_element *e = configset_find_element(cs, key); + return e ? &e->value_list : NULL; +} + +int git_configset_get_string_const(struct config_set *cs, const char *key, const char **dest) +{ + const char *value; + if (!git_configset_get_value(cs, key, &value)) + return git_config_string(dest, key, value); + else + return 1; +} + +int git_configset_get_string(struct config_set *cs, const char *key, char **dest) +{ + return git_configset_get_string_const(cs, key, (const char **)dest); +} + +int git_configset_get_int(struct config_set *cs, const char *key, int *dest) +{ + const char *value; + if (!git_configset_get_value(cs, key, &value)) { + *dest = git_config_int(key, value); + return 0; + } else + return 1; +} + +int git_configset_get_ulong(struct config_set *cs, const char *key, unsigned long *dest) +{ + const char *value; + if (!git_configset_get_value(cs, key, &value)) { + *dest = git_config_ulong(key, value); + return 0; + } else + return 1; +} + +int git_configset_get_bool(struct config_set *cs, const char *key, int *dest) +{ + const char *value; + if (!git_configset_get_value(cs, key, &value)) { + *dest = git_config_bool(key, value); + return 0; + } else + return 1; +} + +int git_configset_get_bool_or_int(struct config_set *cs, const char *key, + int *is_bool, int *dest) +{ + const char *value; + if (!git_configset_get_value(cs, key, &value)) { + *dest = git_config_bool_or_int(key, value, is_bool); + return 0; + } else + return 1; +} + +int git_configset_get_maybe_bool(struct config_set *cs, const char *key, int *dest) +{ + const char *value; + if (!git_configset_get_value(cs, key, &value)) { + *dest = git_config_maybe_bool(key, value); + if (*dest == -1) + return -1; + return 0; + } else + return 1; +} + +int git_configset_get_pathname(struct config_set *cs, const char *key, const char **dest) +{ + const char *value; + if (!git_configset_get_value(cs, key, &value)) + return git_config_pathname(dest, key, value); + else + return 1; +} + +static void git_config_check_init(void) +{ + if (the_config_set.hash_initialized) + return; + git_configset_init(&the_config_set); + git_config_raw(config_set_callback, &the_config_set); +} + +void git_config_clear(void) +{ + if (!the_config_set.hash_initialized) + return; + git_configset_clear(&the_config_set); +} + +int git_config_get_value(const char *key, const char **value) +{ + git_config_check_init(); + return git_configset_get_value(&the_config_set, key, value); +} + +const struct string_list *git_config_get_value_multi(const char *key) +{ + git_config_check_init(); + return git_configset_get_value_multi(&the_config_set, key); +} + +int git_config_get_string_const(const char *key, const char **dest) +{ + int ret; + git_config_check_init(); + ret = git_configset_get_string_const(&the_config_set, key, dest); + if (ret < 0) + git_die_config(key, NULL); + return ret; +} + +int git_config_get_string(const char *key, char **dest) +{ + git_config_check_init(); + return git_config_get_string_const(key, (const char **)dest); +} + +int git_config_get_int(const char *key, int *dest) +{ + git_config_check_init(); + return git_configset_get_int(&the_config_set, key, dest); +} + +int git_config_get_ulong(const char *key, unsigned long *dest) +{ + git_config_check_init(); + return git_configset_get_ulong(&the_config_set, key, dest); +} + +int git_config_get_bool(const char *key, int *dest) +{ + git_config_check_init(); + return git_configset_get_bool(&the_config_set, key, dest); +} + +int git_config_get_bool_or_int(const char *key, int *is_bool, int *dest) { - return git_config_with_options(fn, data, NULL, 1); + git_config_check_init(); + return git_configset_get_bool_or_int(&the_config_set, key, is_bool, dest); +} + +int git_config_get_maybe_bool(const char *key, int *dest) +{ + git_config_check_init(); + return git_configset_get_maybe_bool(&the_config_set, key, dest); +} + +int git_config_get_pathname(const char *key, const char **dest) +{ + int ret; + git_config_check_init(); + ret = git_configset_get_pathname(&the_config_set, key, dest); + if (ret < 0) + git_die_config(key, NULL); + return ret; +} + +NORETURN +void git_die_config_linenr(const char *key, const char *filename, int linenr) +{ + if (!filename) + die(_("unable to parse '%s' from command-line config"), key); + else + die(_("bad config variable '%s' in file '%s' at line %d"), + key, filename, linenr); +} + +NORETURN __attribute__((format(printf, 2, 3))) +void git_die_config(const char *key, const char *err, ...) +{ + const struct string_list *values; + struct key_value_info *kv_info; + + if (err) { + va_list params; + va_start(params, err); + vreportf("error: ", err, params); + va_end(params); + } + values = git_config_get_value_multi(key); + kv_info = values->items[values->nr - 1].util; + git_die_config_linenr(key, kv_info->filename, kv_info->linenr); } /* @@ -1244,10 +1623,15 @@ static struct { static int matches(const char *key, const char *value) { - return !strcmp(key, store.key) && - (store.value_regex == NULL || - (store.do_not_match ^ - !regexec(store.value_regex, value, 0, NULL, 0))); + if (strcmp(key, store.key)) + return 0; /* not ours */ + if (!store.value_regex) + return 1; /* always matches */ + if (store.value_regex == CONFIG_REGEX_NONE) + return 0; /* never matches */ + + return store.do_not_match ^ + (value && !regexec(store.value_regex, value, 0, NULL, 0)); } static int store_aux(const char *key, const char *value, void *cb) @@ -1259,7 +1643,7 @@ static int store_aux(const char *key, const char *value, void *cb) case KEY_SEEN: if (matches(key, value)) { if (store.seen == 1 && store.multi_replace == 0) { - warning("%s has multiple values", key); + warning(_("%s has multiple values"), key); } ALLOC_GROW(store.offset, store.seen + 1, @@ -1509,6 +1893,8 @@ out_free_ret_1: /* * If value==NULL, unset in (remove from) config, * if value_regex!=NULL, disregard key/value pairs where value does not match. + * if value_regex==CONFIG_REGEX_NONE, do not match any existing values + * (only add a new one) * if multi_replace==0, nothing, or only one matching key/value is replaced, * else all matching key/values (regardless how many) are removed, * before the new pair is written. @@ -1592,6 +1978,8 @@ int git_config_set_multivar_in_file(const char *config_filename, if (value_regex == NULL) store.value_regex = NULL; + else if (value_regex == CONFIG_REGEX_NONE) + store.value_regex = CONFIG_REGEX_NONE; else { if (value_regex[0] == '!') { store.do_not_match = 1; @@ -1623,7 +2011,8 @@ int git_config_set_multivar_in_file(const char *config_filename, if (git_config_from_file(store_aux, config_filename, NULL)) { error("invalid config file %s", config_filename); free(store.key); - if (store.value_regex != NULL) { + if (store.value_regex != NULL && + store.value_regex != CONFIG_REGEX_NONE) { regfree(store.value_regex); free(store.value_regex); } @@ -1632,7 +2021,8 @@ int git_config_set_multivar_in_file(const char *config_filename, } free(store.key); - if (store.value_regex != NULL) { + if (store.value_regex != NULL && + store.value_regex != CONFIG_REGEX_NONE) { regfree(store.value_regex); free(store.value_regex); } @@ -1721,6 +2111,9 @@ int git_config_set_multivar_in_file(const char *config_filename, lock = NULL; ret = 0; + /* Invalidate the config cache */ + git_config_clear(); + out_free: if (lock) rollback_lock_file(lock); diff --git a/config.mak.uname b/config.mak.uname index 15ee15e98c..a2f380fd8d 100644 --- a/config.mak.uname +++ b/config.mak.uname @@ -89,8 +89,13 @@ ifeq ($(uname_S),Darwin) NEEDS_CRYPTO_WITH_SSL = YesPlease NEEDS_SSL_WITH_CRYPTO = YesPlease NEEDS_LIBICONV = YesPlease + # Note: $(uname_R) gives us the underlying Darwin version. + # - MacOS 10.0.* and MacOS 10.1.0 = Darwin 1.* + # - MacOS 10.x.* = Darwin (x+4).* for (1 <= x) + # i.e. "begins with [15678] and a dot" means "10.4.* or older". ifeq ($(shell expr "$(uname_R)" : '[15678]\.'),2) OLD_ICONV = UnfortunatelyYes + NO_APPLE_COMMON_CRYPTO = YesPlease endif ifeq ($(shell expr "$(uname_R)" : '[15]\.'),2) NO_STRLCPY = YesPlease diff --git a/configure.ac b/configure.ac index 4b1ae7c3c9..6af964797f 100644 --- a/configure.ac +++ b/configure.ac @@ -746,6 +746,14 @@ case $ac_cv_type_socklen_t in esac GIT_CONF_SUBST([SOCKLEN_T]) +# +# Define NO_STRUCT_ITIMERVAL if you don't have struct itimerval. +AC_CHECK_TYPES([struct itimerval], +[NO_STRUCT_ITIMERVAL=], +[NO_STRUCT_ITIMERVAL=UnfortunatelyYes], +[#include <sys/time.h>]) +GIT_CONF_SUBST([NO_STRUCT_ITIMERVAL]) +# # Define NO_D_INO_IN_DIRENT if you don't have d_ino in your struct dirent. AC_CHECK_MEMBER(struct dirent.d_ino, [NO_D_INO_IN_DIRENT=], @@ -903,6 +911,12 @@ AC_CHECK_LIB([iconv], [locale_charset], [CHARSET_LIB=-lcharset])]) GIT_CONF_SUBST([CHARSET_LIB]) # +# Define NO_SETITIMER if you don't have setitimer. +GIT_CHECK_FUNC(setitimer, +[NO_SETITIMER=], +[NO_SETITIMER=YesPlease]) +GIT_CONF_SUBST([NO_SETITIMER]) +# # Define NO_STRCASESTR if you don't have strcasestr. GIT_CHECK_FUNC(strcasestr, [NO_STRCASESTR=], @@ -13,28 +13,24 @@ static char *server_capabilities; static const char *parse_feature_value(const char *, const char *, int *); -static int check_ref(const char *name, int len, unsigned int flags) +static int check_ref(const char *name, unsigned int flags) { if (!flags) return 1; - if (len < 5 || memcmp(name, "refs/", 5)) + if (!skip_prefix(name, "refs/", &name)) return 0; - /* Skip the "refs/" part */ - name += 5; - len -= 5; - /* REF_NORMAL means that we don't want the magic fake tag refs */ if ((flags & REF_NORMAL) && check_refname_format(name, 0)) return 0; /* REF_HEADS means that we want regular branch heads */ - if ((flags & REF_HEADS) && !memcmp(name, "heads/", 6)) + if ((flags & REF_HEADS) && starts_with(name, "heads/")) return 1; /* REF_TAGS means that we want tags */ - if ((flags & REF_TAGS) && !memcmp(name, "tags/", 5)) + if ((flags & REF_TAGS) && starts_with(name, "tags/")) return 1; /* All type bits clear means that we are ok with anything */ @@ -43,7 +39,7 @@ static int check_ref(const char *name, int len, unsigned int flags) int check_ref_type(const struct ref *ref, int flags) { - return check_ref(ref->name, strlen(ref->name), flags); + return check_ref(ref->name, flags); } static void die_initial_contact(int got_at_least_one_head) @@ -167,7 +163,7 @@ struct ref **get_remote_heads(int in, char *src_buf, size_t src_len, continue; } - if (!check_ref(name, name_len, flags)) + if (!check_ref(name, flags)) continue; ref = alloc_ref(buffer + 41); hashcpy(ref->old_sha1, old_sha1); @@ -537,7 +533,8 @@ static struct child_process *git_proxy_connect(int fd[2], char *host) get_host_and_port(&host, &port); - proxy = xcalloc(1, sizeof(*proxy)); + proxy = xmalloc(sizeof(*proxy)); + child_process_init(proxy); argv_array_push(&proxy->args, git_proxy_command); argv_array_push(&proxy->args, host); argv_array_push(&proxy->args, port); @@ -639,7 +636,7 @@ static enum protocol parse_connect_url(const char *url_orig, char **ret_host, return protocol; } -static struct child_process no_fork; +static struct child_process no_fork = CHILD_PROCESS_INIT; /* * This returns a dummy child_process if the transport protocol does not @@ -694,7 +691,8 @@ struct child_process *git_connect(int fd[2], const char *url, target_host, 0); free(target_host); } else { - conn = xcalloc(1, sizeof(*conn)); + conn = xmalloc(sizeof(*conn)); + child_process_init(conn); strbuf_addstr(&cmd, prog); strbuf_addch(&cmd, ' '); diff --git a/connected.c b/connected.c index dae9c9972e..299c56090b 100644 --- a/connected.c +++ b/connected.c @@ -25,7 +25,7 @@ static int check_everything_connected_real(sha1_iterate_fn fn, struct transport *transport, const char *shallow_file) { - struct child_process rev_list; + struct child_process rev_list = CHILD_PROCESS_INIT; const char *argv[9]; char commit[41]; unsigned char sha1[20]; @@ -60,7 +60,6 @@ static int check_everything_connected_real(sha1_iterate_fn fn, argv[ac++] = "--quiet"; argv[ac] = NULL; - memset(&rev_list, 0, sizeof(rev_list)); rev_list.argv = argv; rev_list.git_cmd = 1; rev_list.in = -1; diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 06bf262087..5ea5b82d2b 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -1175,8 +1175,8 @@ __git_diff_common_options="--stat --numstat --shortstat --summary --full-index --binary --abbrev --diff-filter= --find-copies-harder --text --ignore-space-at-eol --ignore-space-change - --ignore-all-space --exit-code --quiet --ext-diff - --no-ext-diff + --ignore-all-space --ignore-blank-lines --exit-code + --quiet --ext-diff --no-ext-diff --no-prefix --src-prefix= --dst-prefix= --inter-hunk-context= --patience --histogram --minimal diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh index 9d684b10a6..c5473dc8db 100644 --- a/contrib/completion/git-prompt.sh +++ b/contrib/completion/git-prompt.sh @@ -468,7 +468,8 @@ __git_ps1 () fi fi if [ -n "${GIT_PS1_SHOWSTASHSTATE-}" ] && - [ -r "$g/refs/stash" ]; then + git rev-parse --verify --quiet refs/stash >/dev/null + then s="$" fi diff --git a/contrib/subtree/Makefile b/contrib/subtree/Makefile index d9a0ce2c63..c2bd703ee3 100644 --- a/contrib/subtree/Makefile +++ b/contrib/subtree/Makefile @@ -1,3 +1,6 @@ +# The default target of this Makefile is... +all:: + -include ../../config.mak.autogen -include ../../config.mak @@ -34,7 +37,7 @@ GIT_SUBTREE_XML := git-subtree.xml GIT_SUBTREE_TXT := git-subtree.txt GIT_SUBTREE_HTML := git-subtree.html -all: $(GIT_SUBTREE) +all:: $(GIT_SUBTREE) $(GIT_SUBTREE): $(GIT_SUBTREE_SH) sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' $< >$@ diff --git a/contrib/svn-fe/Makefile b/contrib/svn-fe/Makefile index 360d8da417..e8651aaf4b 100644 --- a/contrib/svn-fe/Makefile +++ b/contrib/svn-fe/Makefile @@ -1,18 +1,58 @@ all:: svn-fe$X -CC = gcc +CC = cc RM = rm -f MV = mv CFLAGS = -g -O2 -Wall LDFLAGS = -ALL_CFLAGS = $(CFLAGS) -ALL_LDFLAGS = $(LDFLAGS) -EXTLIBS = +EXTLIBS = -lz + +include ../../config.mak.uname +-include ../../config.mak.autogen +-include ../../config.mak + +ifeq ($(uname_S),Darwin) + ifndef NO_FINK + ifeq ($(shell test -d /sw/lib && echo y),y) + CFLAGS += -I/sw/include + LDFLAGS += -L/sw/lib + endif + endif + ifndef NO_DARWIN_PORTS + ifeq ($(shell test -d /opt/local/lib && echo y),y) + CFLAGS += -I/opt/local/include + LDFLAGS += -L/opt/local/lib + endif + endif +endif + +ifndef NO_OPENSSL + EXTLIBS += -lssl + ifdef NEEDS_CRYPTO_WITH_SSL + EXTLIBS += -lcrypto + endif +endif + +ifndef NO_PTHREADS + CFLAGS += $(PTHREADS_CFLAGS) + EXTLIBS += $(PTHREAD_LIBS) +endif + +ifdef HAVE_CLOCK_GETTIME + CFLAGS += -DHAVE_CLOCK_GETTIME + EXTLIBS += -lrt +endif + +ifdef NEEDS_LIBICONV + EXTLIBS += -liconv +endif GIT_LIB = ../../libgit.a VCSSVN_LIB = ../../vcs-svn/lib.a -LIBS = $(VCSSVN_LIB) $(GIT_LIB) $(EXTLIBS) +XDIFF_LIB = ../../xdiff/lib.a + +LIBS = $(VCSSVN_LIB) $(GIT_LIB) $(XDIFF_LIB) QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir QUIET_SUBDIR1 = @@ -33,12 +73,11 @@ ifndef V endif endif -svn-fe$X: svn-fe.o $(VCSSVN_LIB) $(GIT_LIB) - $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ svn-fe.o \ - $(ALL_LDFLAGS) $(LIBS) +svn-fe$X: svn-fe.o $(VCSSVN_LIB) $(XDIFF_LIB) $(GIT_LIB) + $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $(EXTLIBS) -o $@ svn-fe.o $(LIBS) svn-fe.o: svn-fe.c ../../vcs-svn/svndump.h - $(QUIET_CC)$(CC) -I../../vcs-svn -o $*.o -c $(ALL_CFLAGS) $< + $(QUIET_CC)$(CC) $(CFLAGS) -I../../vcs-svn -o $*.o -c $< svn-fe.html: svn-fe.txt $(QUIET_SUBDIR0)../../Documentation $(QUIET_SUBDIR1) \ @@ -54,6 +93,9 @@ svn-fe.1: svn-fe.txt ../../vcs-svn/lib.a: FORCE $(QUIET_SUBDIR0)../.. $(QUIET_SUBDIR1) vcs-svn/lib.a +../../xdiff/lib.a: FORCE + $(QUIET_SUBDIR0)../.. $(QUIET_SUBDIR1) xdiff/lib.a + ../../libgit.a: FORCE $(QUIET_SUBDIR0)../.. $(QUIET_SUBDIR1) libgit.a @@ -322,7 +322,7 @@ static int filter_buffer_or_fd(int in, int out, void *data) /* * Spawn cmd and feed the buffer contents through its stdin. */ - struct child_process child_process; + struct child_process child_process = CHILD_PROCESS_INIT; struct filter_params *params = (struct filter_params *)data; int write_err, status; const char *argv[] = { NULL, NULL }; @@ -345,7 +345,6 @@ static int filter_buffer_or_fd(int in, int out, void *data) argv[0] = cmd.buf; - memset(&child_process, 0, sizeof(child_process)); child_process.argv = argv; child_process.use_shell = 1; child_process.in = -1; diff --git a/credential-cache--daemon.c b/credential-cache--daemon.c index 3b370ca5e5..c2f00498f6 100644 --- a/credential-cache--daemon.c +++ b/credential-cache--daemon.c @@ -2,6 +2,7 @@ #include "credential.h" #include "unix-socket.h" #include "sigchain.h" +#include "parse-options.h" static const char *socket_path; @@ -201,7 +202,7 @@ static int serve_cache_loop(int fd) return 1; } -static void serve_cache(const char *socket_path) +static void serve_cache(const char *socket_path, int debug) { int fd; @@ -211,6 +212,10 @@ static void serve_cache(const char *socket_path) printf("ok\n"); fclose(stdout); + if (!debug) { + if (!freopen("/dev/null", "w", stderr)) + die_errno("unable to point stderr to /dev/null"); + } while (serve_cache_loop(fd)) ; /* nothing */ @@ -252,16 +257,28 @@ static void check_socket_directory(const char *path) int main(int argc, const char **argv) { - socket_path = argv[1]; + static const char *usage[] = { + "git-credential-cache--daemon [opts] <socket_path>", + NULL + }; + int debug = 0; + const struct option options[] = { + OPT_BOOL(0, "debug", &debug, + N_("print debugging messages to stderr")), + OPT_END() + }; + + argc = parse_options(argc, argv, NULL, options, usage, 0); + socket_path = argv[0]; if (!socket_path) - die("usage: git-credential-cache--daemon <socket_path>"); + usage_with_options(usage, options); check_socket_directory(socket_path); atexit(cleanup_socket); sigchain_push_common(cleanup_socket_on_signal); - serve_cache(socket_path); + serve_cache(socket_path, debug); return 0; } diff --git a/credential-cache.c b/credential-cache.c index 9a03792c7d..8689a1519a 100644 --- a/credential-cache.c +++ b/credential-cache.c @@ -37,12 +37,11 @@ static int send_request(const char *socket, const struct strbuf *out) static void spawn_daemon(const char *socket) { - struct child_process daemon; + struct child_process daemon = CHILD_PROCESS_INIT; const char *argv[] = { NULL, NULL, NULL }; char buf[128]; int r; - memset(&daemon, 0, sizeof(daemon)); argv[0] = "git-credential-cache--daemon"; argv[1] = socket; daemon.argv = argv; diff --git a/credential.c b/credential.c index 4d79d320f8..1886ea50b3 100644 --- a/credential.c +++ b/credential.c @@ -205,11 +205,10 @@ static int run_credential_helper(struct credential *c, const char *cmd, int want_output) { - struct child_process helper; + struct child_process helper = CHILD_PROCESS_INIT; const char *argv[] = { NULL, NULL }; FILE *fp; - memset(&helper, 0, sizeof(helper)); argv[0] = cmd; helper.argv = argv; helper.use_shell = 1; @@ -230,23 +230,6 @@ struct daemon_service { int overridable; }; -static struct daemon_service *service_looking_at; -static int service_enabled; - -static int git_daemon_config(const char *var, const char *value, void *cb) -{ - const char *service; - - if (skip_prefix(var, "daemon.", &service) && - !strcmp(service, service_looking_at->config_name)) { - service_enabled = git_config_bool(var, value); - return 0; - } - - /* we are not interested in parsing any other configuration here */ - return 0; -} - static int daemon_error(const char *dir, const char *msg) { if (!informative_errors) @@ -259,7 +242,7 @@ static const char *access_hook; static int run_access_hook(struct daemon_service *service, const char *dir, const char *path) { - struct child_process child; + struct child_process child = CHILD_PROCESS_INIT; struct strbuf buf = STRBUF_INIT; const char *argv[8]; const char **arg = argv; @@ -277,7 +260,6 @@ static int run_access_hook(struct daemon_service *service, const char *dir, cons *arg = NULL; #undef STRARG - memset(&child, 0, sizeof(child)); child.use_shell = 1; child.argv = argv; child.no_stdin = 1; @@ -324,6 +306,7 @@ static int run_service(const char *dir, struct daemon_service *service) { const char *path; int enabled = service->enabled; + struct strbuf var = STRBUF_INIT; loginfo("Request %s for '%s'", service->name, dir); @@ -354,11 +337,9 @@ static int run_service(const char *dir, struct daemon_service *service) } if (service->overridable) { - service_looking_at = service; - service_enabled = -1; - git_config(git_daemon_config, NULL); - if (0 <= service_enabled) - enabled = service_enabled; + strbuf_addf(&var, "daemon.%s", service->config_name); + git_config_get_bool(var.buf, &enabled); + strbuf_release(&var); } if (!enabled) { logerror("'%s': service not enabled for '%s'", @@ -406,9 +387,8 @@ static void copy_to_log(int fd) static int run_service_command(const char **argv) { - struct child_process cld; + struct child_process cld = CHILD_PROCESS_INIT; - memset(&cld, 0, sizeof(cld)); cld.argv = argv; cld.git_cmd = 1; cld.err = -1; @@ -733,7 +713,7 @@ static void check_dead_children(void) static char **cld_argv; static void handle(int incoming, struct sockaddr *addr, socklen_t addrlen) { - struct child_process cld = { NULL }; + struct child_process cld = CHILD_PROCESS_INIT; char addrbuf[300] = "REMOTE_ADDR=", portbuf[300]; char *env[] = { addrbuf, portbuf, NULL }; @@ -200,7 +200,16 @@ const char *show_date(unsigned long time, int tz, enum date_mode mode) tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, tz); - else if (mode == DATE_RFC2822) + else if (mode == DATE_ISO8601_STRICT) { + char sign = (tz >= 0) ? '+' : '-'; + tz = abs(tz); + strbuf_addf(&timebuf, "%04d-%02d-%02dT%02d:%02d:%02d%c%02d:%02d", + tm->tm_year + 1900, + tm->tm_mon + 1, + tm->tm_mday, + tm->tm_hour, tm->tm_min, tm->tm_sec, + sign, tz / 100, tz % 100); + } else if (mode == DATE_RFC2822) strbuf_addf(&timebuf, "%.3s, %d %.3s %d %02d:%02d:%02d %+05d", weekday_names[tm->tm_wday], tm->tm_mday, month_names[tm->tm_mon], tm->tm_year + 1900, @@ -605,7 +614,7 @@ static int match_tz(const char *date, int *offp) return end - date; } -static int date_string(unsigned long date, int offset, char *buf, int len) +static void date_string(unsigned long date, int offset, struct strbuf *buf) { int sign = '+'; @@ -613,7 +622,7 @@ static int date_string(unsigned long date, int offset, char *buf, int len) offset = -offset; sign = '-'; } - return snprintf(buf, len, "%lu %c%02d%02d", date, sign, offset / 60, offset % 60); + strbuf_addf(buf, "%lu %c%02d%02d", date, sign, offset / 60, offset % 60); } /* @@ -735,13 +744,14 @@ int parse_expiry_date(const char *date, unsigned long *timestamp) return errors; } -int parse_date(const char *date, char *result, int maxlen) +int parse_date(const char *date, struct strbuf *result) { unsigned long timestamp; int offset; if (parse_date_basic(date, ×tamp, &offset)) return -1; - return date_string(timestamp, offset, result, maxlen); + date_string(timestamp, offset, result); + return 0; } enum date_mode parse_date_format(const char *format) @@ -751,6 +761,9 @@ enum date_mode parse_date_format(const char *format) else if (!strcmp(format, "iso8601") || !strcmp(format, "iso")) return DATE_ISO8601; + else if (!strcmp(format, "iso8601-strict") || + !strcmp(format, "iso-strict")) + return DATE_ISO8601_STRICT; else if (!strcmp(format, "rfc2822") || !strcmp(format, "rfc")) return DATE_RFC2822; @@ -766,7 +779,7 @@ enum date_mode parse_date_format(const char *format) die("unknown date format %s", format); } -void datestamp(char *buf, int bufsize) +void datestamp(struct strbuf *out) { time_t now; int offset; @@ -776,7 +789,7 @@ void datestamp(char *buf, int bufsize) offset = tm_to_time_t(localtime(&now)) - now; offset /= 60; - date_string(now, offset, buf, bufsize); + date_string(now, offset, out); } /* @@ -376,7 +376,7 @@ static unsigned long diff_filespec_size(struct diff_filespec *one) { if (!DIFF_FILE_VALID(one)) return 0; - diff_populate_filespec(one, 1); + diff_populate_filespec(one, CHECK_SIZE_ONLY); return one->size; } @@ -1910,11 +1910,11 @@ static void show_dirstat(struct diff_options *options) diff_free_filespec_data(p->one); diff_free_filespec_data(p->two); } else if (DIFF_FILE_VALID(p->one)) { - diff_populate_filespec(p->one, 1); + diff_populate_filespec(p->one, CHECK_SIZE_ONLY); copied = added = 0; diff_free_filespec_data(p->one); } else if (DIFF_FILE_VALID(p->two)) { - diff_populate_filespec(p->two, 1); + diff_populate_filespec(p->two, CHECK_SIZE_ONLY); copied = 0; added = p->two->size; diff_free_filespec_data(p->two); @@ -2188,8 +2188,8 @@ int diff_filespec_is_binary(struct diff_filespec *one) one->is_binary = one->driver->binary; else { if (!one->data && DIFF_FILE_VALID(one)) - diff_populate_filespec(one, 0); - if (one->data) + diff_populate_filespec(one, CHECK_BINARY); + if (one->is_binary == -1 && one->data) one->is_binary = buffer_is_binary(one->data, one->size); if (one->is_binary == -1) @@ -2324,6 +2324,19 @@ static void builtin_diff(const char *name_a, } else if (!DIFF_OPT_TST(o, TEXT) && ( (!textconv_one && diff_filespec_is_binary(one)) || (!textconv_two && diff_filespec_is_binary(two)) )) { + if (!one->data && !two->data && + S_ISREG(one->mode) && S_ISREG(two->mode) && + !DIFF_OPT_TST(o, BINARY)) { + if (!hashcmp(one->sha1, two->sha1)) { + if (must_show_header) + fprintf(o->file, "%s", header.buf); + goto free_ab_and_return; + } + fprintf(o->file, "%s", header.buf); + fprintf(o->file, "%sBinary files %s and %s differ\n", + line_prefix, lbl[0], lbl[1]); + goto free_ab_and_return; + } if (fill_mmfile(&mf1, one) < 0 || fill_mmfile(&mf2, two) < 0) die("unable to read files to diff"); /* Quite common confusing case */ @@ -2668,8 +2681,9 @@ static int diff_populate_gitlink(struct diff_filespec *s, int size_only) * grab the data for the blob (or file) for our own in-core comparison. * diff_filespec has data and size fields for this purpose. */ -int diff_populate_filespec(struct diff_filespec *s, int size_only) +int diff_populate_filespec(struct diff_filespec *s, unsigned int flags) { + int size_only = flags & CHECK_SIZE_ONLY; int err = 0; /* * demote FAIL to WARN to allow inspecting the situation @@ -2724,6 +2738,11 @@ int diff_populate_filespec(struct diff_filespec *s, int size_only) } if (size_only) return 0; + if ((flags & CHECK_BINARY) && + s->size > big_file_threshold && s->is_binary == -1) { + s->is_binary = 1; + return 0; + } fd = open(s->path, O_RDONLY); if (fd < 0) goto err_empty; @@ -2745,16 +2764,21 @@ int diff_populate_filespec(struct diff_filespec *s, int size_only) } else { enum object_type type; - if (size_only) { + if (size_only || (flags & CHECK_BINARY)) { type = sha1_object_info(s->sha1, &s->size); if (type < 0) die("unable to read %s", sha1_to_hex(s->sha1)); - } else { - s->data = read_sha1_file(s->sha1, &type, &s->size); - if (!s->data) - die("unable to read %s", sha1_to_hex(s->sha1)); - s->should_free = 1; + if (size_only) + return 0; + if (s->size > big_file_threshold && s->is_binary == -1) { + s->is_binary = 1; + return 0; + } } + s->data = read_sha1_file(s->sha1, &type, &s->size); + if (!s->data) + die("unable to read %s", sha1_to_hex(s->sha1)); + s->should_free = 1; } return 0; } @@ -4688,8 +4712,8 @@ static int diff_filespec_check_stat_unmatch(struct diff_filepair *p) !DIFF_FILE_VALID(p->two) || (p->one->sha1_valid && p->two->sha1_valid) || (p->one->mode != p->two->mode) || - diff_populate_filespec(p->one, 1) || - diff_populate_filespec(p->two, 1) || + diff_populate_filespec(p->one, CHECK_SIZE_ONLY) || + diff_populate_filespec(p->two, CHECK_SIZE_ONLY) || (p->one->size != p->two->size) || !diff_filespec_is_identical(p->one, p->two)) /* (2) */ p->skip_stat_unmatch_result = 1; @@ -4931,7 +4955,7 @@ static char *run_textconv(const char *pgm, struct diff_filespec *spec, struct diff_tempfile *temp; const char *argv[3]; const char **arg = argv; - struct child_process child; + struct child_process child = CHILD_PROCESS_INIT; struct strbuf buf = STRBUF_INIT; int err = 0; @@ -4940,7 +4964,6 @@ static char *run_textconv(const char *pgm, struct diff_filespec *spec, *arg++ = temp->name; *arg = NULL; - memset(&child, 0, sizeof(child)); child.use_shell = 1; child.argv = argv; child.out = -1; diff --git a/diffcore-rename.c b/diffcore-rename.c index 2e44a37459..4e132f1fdb 100644 --- a/diffcore-rename.c +++ b/diffcore-rename.c @@ -147,9 +147,11 @@ static int estimate_similarity(struct diff_filespec *src, * is a possible size - we really should have a flag to * say whether the size is valid or not!) */ - if (!src->cnt_data && diff_populate_filespec(src, 1)) + if (!src->cnt_data && + diff_populate_filespec(src, CHECK_SIZE_ONLY)) return 0; - if (!dst->cnt_data && diff_populate_filespec(dst, 1)) + if (!dst->cnt_data && + diff_populate_filespec(dst, CHECK_SIZE_ONLY)) return 0; max_size = ((src->size > dst->size) ? src->size : dst->size); diff --git a/diffcore.h b/diffcore.h index c876dac71a..33ea2de348 100644 --- a/diffcore.h +++ b/diffcore.h @@ -55,7 +55,9 @@ extern void free_filespec(struct diff_filespec *); extern void fill_filespec(struct diff_filespec *, const unsigned char *, int, unsigned short); -extern int diff_populate_filespec(struct diff_filespec *, int); +#define CHECK_SIZE_ONLY 1 +#define CHECK_BINARY 2 +extern int diff_populate_filespec(struct diff_filespec *, unsigned int); extern void diff_free_filespec_data(struct diff_filespec *); extern void diff_free_filespec_blob(struct diff_filespec *); extern int diff_filespec_is_binary(struct diff_filespec *); @@ -1507,12 +1507,16 @@ int dir_inside_of(const char *subdir, const char *dir) int is_inside_dir(const char *dir) { - char cwd[PATH_MAX]; + char *cwd; + int rc; + if (!dir) return 0; - if (!getcwd(cwd, sizeof(cwd))) - die_errno("can't find the current directory"); - return dir_inside_of(cwd, dir) >= 0; + + cwd = xgetcwd(); + rc = (dir_inside_of(cwd, dir) >= 0); + free(cwd); + return rc; } int is_empty_dir(const char *path) @@ -38,10 +38,9 @@ int launch_editor(const char *path, struct strbuf *buffer, const char *const *en if (strcmp(editor, ":")) { const char *args[] = { editor, real_path(path), NULL }; - struct child_process p; + struct child_process p = CHILD_PROCESS_INIT; int ret, sig; - memset(&p, 0, sizeof(p)); p.argv = args; p.env = env; p.use_shell = 1; diff --git a/exec_cmd.c b/exec_cmd.c index 125fa6fabf..698e7526c4 100644 --- a/exec_cmd.c +++ b/exec_cmd.c @@ -86,11 +86,7 @@ const char *git_exec_path(void) static void add_path(struct strbuf *out, const char *path) { if (path && *path) { - if (is_absolute_path(path)) - strbuf_addstr(out, path); - else - strbuf_addstr(out, absolute_path(path)); - + strbuf_add_absolute_path(out, path); strbuf_addch(out, PATH_SEP); } } diff --git a/fast-import.c b/fast-import.c index d73f58cbe3..96b0f4236a 100644 --- a/fast-import.c +++ b/fast-import.c @@ -878,7 +878,7 @@ static void start_packfile(void) pack_size = sizeof(hdr); object_count = 0; - all_packs = xrealloc(all_packs, sizeof(*all_packs) * (pack_id + 1)); + REALLOC_ARRAY(all_packs, pack_id + 1); all_packs[pack_id] = p; } @@ -946,10 +946,12 @@ static void unkeep_all_packs(void) static void end_packfile(void) { - struct packed_git *old_p = pack_data, *new_p; + if (!pack_data) + return; clear_delta_base_cache(); if (object_count) { + struct packed_git *new_p; unsigned char cur_pack_sha1[20]; char *idx_name; int i; @@ -991,10 +993,11 @@ static void end_packfile(void) pack_id++; } else { - close(old_p->pack_fd); - unlink_or_warn(old_p->pack_name); + close(pack_data->pack_fd); + unlink_or_warn(pack_data->pack_name); } - free(old_p); + free(pack_data); + pack_data = NULL; /* We can't carry a delta across packfiles. */ strbuf_release(&last_blob.data); @@ -1419,7 +1422,7 @@ static void mktree(struct tree_content *t, int v, struct strbuf *b) static void store_tree(struct tree_entry *root) { - struct tree_content *t = root->tree; + struct tree_content *t; unsigned int i, j, del; struct last_object lo = { STRBUF_INIT, 0, 0, /* no_swap */ 1 }; struct object_entry *le = NULL; @@ -1427,6 +1430,10 @@ static void store_tree(struct tree_entry *root) if (!is_null_sha1(root->versions[1].sha1)) return; + if (!root->tree) + load_tree(root); + t = root->tree; + for (i = 0; i < t->entry_count; i++) { if (t->entries[i]->tree) store_tree(t->entries[i]); @@ -1679,8 +1686,9 @@ found_entry: static int update_branch(struct branch *b) { static const char *msg = "fast-import"; - struct ref_lock *lock; + struct ref_transaction *transaction; unsigned char old_sha1[20]; + struct strbuf err = STRBUF_INIT; if (read_ref(b->name, old_sha1)) hashclr(old_sha1); @@ -1689,29 +1697,33 @@ static int update_branch(struct branch *b) delete_ref(b->name, old_sha1, 0); return 0; } - lock = lock_any_ref_for_update(b->name, old_sha1, 0, NULL); - if (!lock) - return error("Unable to lock %s", b->name); if (!force_update && !is_null_sha1(old_sha1)) { struct commit *old_cmit, *new_cmit; old_cmit = lookup_commit_reference_gently(old_sha1, 0); new_cmit = lookup_commit_reference_gently(b->sha1, 0); - if (!old_cmit || !new_cmit) { - unlock_ref(lock); + if (!old_cmit || !new_cmit) return error("Branch %s is missing commits.", b->name); - } if (!in_merge_bases(old_cmit, new_cmit)) { - unlock_ref(lock); warning("Not updating %s" " (new tip %s does not contain %s)", b->name, sha1_to_hex(b->sha1), sha1_to_hex(old_sha1)); return -1; } } - if (write_ref_sha1(lock, b->sha1, msg) < 0) - return error("Unable to update %s", b->name); + transaction = ref_transaction_begin(&err); + if (!transaction || + ref_transaction_update(transaction, b->name, b->sha1, old_sha1, + 0, 1, &err) || + ref_transaction_commit(transaction, msg, &err)) { + ref_transaction_free(transaction); + error("%s", err.buf); + strbuf_release(&err); + return -1; + } + ref_transaction_free(transaction); + strbuf_release(&err); return 0; } @@ -1730,15 +1742,32 @@ static void dump_tags(void) { static const char *msg = "fast-import"; struct tag *t; - struct ref_lock *lock; - char ref_name[PATH_MAX]; + struct strbuf ref_name = STRBUF_INIT; + struct strbuf err = STRBUF_INIT; + struct ref_transaction *transaction; + transaction = ref_transaction_begin(&err); + if (!transaction) { + failure |= error("%s", err.buf); + goto cleanup; + } for (t = first_tag; t; t = t->next_tag) { - sprintf(ref_name, "tags/%s", t->name); - lock = lock_ref_sha1(ref_name, NULL); - if (!lock || write_ref_sha1(lock, t->sha1, msg) < 0) - failure |= error("Unable to update %s", ref_name); + strbuf_reset(&ref_name); + strbuf_addf(&ref_name, "refs/tags/%s", t->name); + + if (ref_transaction_update(transaction, ref_name.buf, t->sha1, + NULL, 0, 0, &err)) { + failure |= error("%s", err.buf); + goto cleanup; + } } + if (ref_transaction_commit(transaction, msg, &err)) + failure |= error("%s", err.buf); + + cleanup: + ref_transaction_free(transaction); + strbuf_release(&ref_name); + strbuf_release(&err); } static void dump_marks_helper(FILE *f, @@ -1971,7 +2000,7 @@ static int parse_data(struct strbuf *sb, uintmax_t limit, uintmax_t *len_res) return 1; } -static int validate_raw_date(const char *src, char *result, int maxlen) +static int validate_raw_date(const char *src, struct strbuf *result) { const char *orig_src = src; char *endp; @@ -1989,11 +2018,10 @@ static int validate_raw_date(const char *src, char *result, int maxlen) return -1; num = strtoul(src + 1, &endp, 10); - if (errno || endp == src + 1 || *endp || (endp - orig_src) >= maxlen || - 1400 < num) + if (errno || endp == src + 1 || *endp || 1400 < num) return -1; - strcpy(result, orig_src); + strbuf_addstr(result, orig_src); return 0; } @@ -2001,7 +2029,7 @@ static char *parse_ident(const char *buf) { const char *ltgt; size_t name_len; - char *ident; + struct strbuf ident = STRBUF_INIT; /* ensure there is a space delimiter even if there is no name */ if (*buf == '<') @@ -2020,26 +2048,25 @@ static char *parse_ident(const char *buf) die("Missing space after > in ident string: %s", buf); ltgt++; name_len = ltgt - buf; - ident = xmalloc(name_len + 24); - strncpy(ident, buf, name_len); + strbuf_add(&ident, buf, name_len); switch (whenspec) { case WHENSPEC_RAW: - if (validate_raw_date(ltgt, ident + name_len, 24) < 0) + if (validate_raw_date(ltgt, &ident) < 0) die("Invalid raw date \"%s\" in ident: %s", ltgt, buf); break; case WHENSPEC_RFC2822: - if (parse_date(ltgt, ident + name_len, 24) < 0) + if (parse_date(ltgt, &ident) < 0) die("Invalid rfc2822 date \"%s\" in ident: %s", ltgt, buf); break; case WHENSPEC_NOW: if (strcmp("now", ltgt)) die("Date in ident must be 'now': %s", buf); - datestamp(ident + name_len, 24); + datestamp(&ident); break; } - return ident; + return strbuf_detach(&ident, NULL); } static void parse_and_store_blob( @@ -3274,36 +3301,34 @@ static void parse_option(const char *option) die("This version of fast-import does not support option: %s", option); } -static int git_pack_config(const char *k, const char *v, void *cb) +static void git_pack_config(void) { - if (!strcmp(k, "pack.depth")) { - max_depth = git_config_int(k, v); + int indexversion_value; + unsigned long packsizelimit_value; + + if (!git_config_get_ulong("pack.depth", &max_depth)) { if (max_depth > MAX_DEPTH) max_depth = MAX_DEPTH; - return 0; } - if (!strcmp(k, "pack.compression")) { - int level = git_config_int(k, v); - if (level == -1) - level = Z_DEFAULT_COMPRESSION; - else if (level < 0 || level > Z_BEST_COMPRESSION) - die("bad pack compression level %d", level); - pack_compression_level = level; + if (!git_config_get_int("pack.compression", &pack_compression_level)) { + if (pack_compression_level == -1) + pack_compression_level = Z_DEFAULT_COMPRESSION; + else if (pack_compression_level < 0 || + pack_compression_level > Z_BEST_COMPRESSION) + git_die_config("pack.compression", + "bad pack compression level %d", pack_compression_level); pack_compression_seen = 1; - return 0; } - if (!strcmp(k, "pack.indexversion")) { - pack_idx_opts.version = git_config_int(k, v); + if (!git_config_get_int("pack.indexversion", &indexversion_value)) { + pack_idx_opts.version = indexversion_value; if (pack_idx_opts.version > 2) - die("bad pack.indexversion=%"PRIu32, - pack_idx_opts.version); - return 0; + git_die_config("pack.indexversion", + "bad pack.indexversion=%"PRIu32, pack_idx_opts.version); } - if (!strcmp(k, "pack.packsizelimit")) { - max_packsize = git_config_ulong(k, v); - return 0; - } - return git_default_config(k, v, cb); + if (!git_config_get_ulong("pack.packsizelimit", &packsizelimit_value)) + max_packsize = packsizelimit_value; + + git_config(git_default_config, NULL); } static const char fast_import_usage[] = @@ -3356,7 +3381,7 @@ int main(int argc, char **argv) setup_git_directory(); reset_pack_idx_option(&pack_idx_opts); - git_config(git_pack_config, NULL); + git_pack_config(); if (!pack_compression_seen && core_compression_seen) pack_compression_level = core_compression_level; diff --git a/fetch-pack.c b/fetch-pack.c index b8a58fa7a5..7487aa7306 100644 --- a/fetch-pack.c +++ b/fetch-pack.c @@ -666,7 +666,7 @@ static int get_pack(struct fetch_pack_args *args, char hdr_arg[256]; const char **av, *cmd_name; int do_keep = args->keep_pack; - struct child_process cmd; + struct child_process cmd = CHILD_PROCESS_INIT; int ret; memset(&demux, 0, sizeof(demux)); @@ -685,7 +685,6 @@ static int get_pack(struct fetch_pack_args *args, else demux.out = xd[0]; - memset(&cmd, 0, sizeof(cmd)); cmd.argv = argv; av = argv; *hdr_arg = 0; @@ -869,34 +868,15 @@ static struct ref *do_fetch_pack(struct fetch_pack_args *args, return ref; } -static int fetch_pack_config(const char *var, const char *value, void *cb) +static void fetch_pack_config(void) { - if (strcmp(var, "fetch.unpacklimit") == 0) { - fetch_unpack_limit = git_config_int(var, value); - return 0; - } - - if (strcmp(var, "transfer.unpacklimit") == 0) { - transfer_unpack_limit = git_config_int(var, value); - return 0; - } - - if (strcmp(var, "repack.usedeltabaseoffset") == 0) { - prefer_ofs_delta = git_config_bool(var, value); - return 0; - } - - if (!strcmp(var, "fetch.fsckobjects")) { - fetch_fsck_objects = git_config_bool(var, value); - return 0; - } - - if (!strcmp(var, "transfer.fsckobjects")) { - transfer_fsck_objects = git_config_bool(var, value); - return 0; - } + git_config_get_int("fetch.unpacklimit", &fetch_unpack_limit); + git_config_get_int("transfer.unpacklimit", &transfer_unpack_limit); + git_config_get_bool("repack.usedeltabaseoffset", &prefer_ofs_delta); + git_config_get_bool("fetch.fsckobjects", &fetch_fsck_objects); + git_config_get_bool("transfer.fsckobjects", &transfer_fsck_objects); - return git_default_config(var, value, cb); + git_config(git_default_config, NULL); } static void fetch_pack_setup(void) @@ -904,7 +884,7 @@ static void fetch_pack_setup(void) static int did_setup; if (did_setup) return; - git_config(fetch_pack_config, NULL); + fetch_pack_config(); if (0 <= transfer_unpack_limit) unpack_limit = transfer_unpack_limit; else if (0 <= fetch_unpack_limit) @@ -6,6 +6,7 @@ #include "commit.h" #include "tag.h" #include "fsck.h" +#include "refs.h" static int fsck_walk_tree(struct tree *tree, fsck_walk_func walk, void *data) { @@ -237,6 +238,26 @@ static int fsck_tree(struct tree *item, int strict, fsck_error error_func) return retval; } +static int require_end_of_header(const void *data, unsigned long size, + struct object *obj, fsck_error error_func) +{ + const char *buffer = (const char *)data; + unsigned long i; + + for (i = 0; i < size; i++) { + switch (buffer[i]) { + case '\0': + return error_func(obj, FSCK_ERROR, + "unterminated header: NUL at offset %d", i); + case '\n': + if (i + 1 < size && buffer[i + 1] == '\n') + return 0; + } + } + + return error_func(obj, FSCK_ERROR, "unterminated header"); +} + static int fsck_ident(const char **ident, struct object *obj, fsck_error error_func) { char *end; @@ -277,13 +298,16 @@ static int fsck_ident(const char **ident, struct object *obj, fsck_error error_f } static int fsck_commit_buffer(struct commit *commit, const char *buffer, - fsck_error error_func) + unsigned long size, fsck_error error_func) { unsigned char tree_sha1[20], sha1[20]; struct commit_graft *graft; unsigned parent_count, parent_line_count = 0; int err; + if (require_end_of_header(buffer, size, &commit->object, error_func)) + return -1; + if (!skip_prefix(buffer, "tree ", &buffer)) return error_func(&commit->object, FSCK_ERROR, "invalid format - expected 'tree' line"); if (get_sha1_hex(buffer, tree_sha1) || buffer[40] != '\n') @@ -322,24 +346,111 @@ static int fsck_commit_buffer(struct commit *commit, const char *buffer, return 0; } -static int fsck_commit(struct commit *commit, fsck_error error_func) +static int fsck_commit(struct commit *commit, const char *data, + unsigned long size, fsck_error error_func) { - const char *buffer = get_commit_buffer(commit, NULL); - int ret = fsck_commit_buffer(commit, buffer, error_func); - unuse_commit_buffer(commit, buffer); + const char *buffer = data ? data : get_commit_buffer(commit, &size); + int ret = fsck_commit_buffer(commit, buffer, size, error_func); + if (!data) + unuse_commit_buffer(commit, buffer); return ret; } -static int fsck_tag(struct tag *tag, fsck_error error_func) +static int fsck_tag_buffer(struct tag *tag, const char *data, + unsigned long size, fsck_error error_func) +{ + unsigned char sha1[20]; + int ret = 0; + const char *buffer; + char *to_free = NULL, *eol; + struct strbuf sb = STRBUF_INIT; + + if (data) + buffer = data; + else { + enum object_type type; + + buffer = to_free = + read_sha1_file(tag->object.sha1, &type, &size); + if (!buffer) + return error_func(&tag->object, FSCK_ERROR, + "cannot read tag object"); + + if (type != OBJ_TAG) { + ret = error_func(&tag->object, FSCK_ERROR, + "expected tag got %s", + typename(type)); + goto done; + } + } + + if (require_end_of_header(buffer, size, &tag->object, error_func)) + goto done; + + if (!skip_prefix(buffer, "object ", &buffer)) { + ret = error_func(&tag->object, FSCK_ERROR, "invalid format - expected 'object' line"); + goto done; + } + if (get_sha1_hex(buffer, sha1) || buffer[40] != '\n') { + ret = error_func(&tag->object, FSCK_ERROR, "invalid 'object' line format - bad sha1"); + goto done; + } + buffer += 41; + + if (!skip_prefix(buffer, "type ", &buffer)) { + ret = error_func(&tag->object, FSCK_ERROR, "invalid format - expected 'type' line"); + goto done; + } + eol = strchr(buffer, '\n'); + if (!eol) { + ret = error_func(&tag->object, FSCK_ERROR, "invalid format - unexpected end after 'type' line"); + goto done; + } + if (type_from_string_gently(buffer, eol - buffer, 1) < 0) + ret = error_func(&tag->object, FSCK_ERROR, "invalid 'type' value"); + if (ret) + goto done; + buffer = eol + 1; + + if (!skip_prefix(buffer, "tag ", &buffer)) { + ret = error_func(&tag->object, FSCK_ERROR, "invalid format - expected 'tag' line"); + goto done; + } + eol = strchr(buffer, '\n'); + if (!eol) { + ret = error_func(&tag->object, FSCK_ERROR, "invalid format - unexpected end after 'type' line"); + goto done; + } + strbuf_addf(&sb, "refs/tags/%.*s", (int)(eol - buffer), buffer); + if (check_refname_format(sb.buf, 0)) + error_func(&tag->object, FSCK_WARN, "invalid 'tag' name: %s", buffer); + buffer = eol + 1; + + if (!skip_prefix(buffer, "tagger ", &buffer)) + /* early tags do not contain 'tagger' lines; warn only */ + error_func(&tag->object, FSCK_WARN, "invalid format - expected 'tagger' line"); + else + ret = fsck_ident(&buffer, &tag->object, error_func); + +done: + strbuf_release(&sb); + free(to_free); + return ret; +} + +static int fsck_tag(struct tag *tag, const char *data, + unsigned long size, fsck_error error_func) { struct object *tagged = tag->tagged; if (!tagged) return error_func(&tag->object, FSCK_ERROR, "could not load tagged object"); - return 0; + + return fsck_tag_buffer(tag, data, size, error_func); } -int fsck_object(struct object *obj, int strict, fsck_error error_func) +int fsck_object(struct object *obj, void *data, unsigned long size, + int strict, fsck_error error_func) { if (!obj) return error_func(obj, FSCK_ERROR, "no valid object to fsck"); @@ -349,9 +460,11 @@ int fsck_object(struct object *obj, int strict, fsck_error error_func) if (obj->type == OBJ_TREE) return fsck_tree((struct tree *) obj, strict, error_func); if (obj->type == OBJ_COMMIT) - return fsck_commit((struct commit *) obj, error_func); + return fsck_commit((struct commit *) obj, (const char *) data, + size, error_func); if (obj->type == OBJ_TAG) - return fsck_tag((struct tag *) obj, error_func); + return fsck_tag((struct tag *) obj, (const char *) data, + size, error_func); return error_func(obj, FSCK_ERROR, "unknown type '%d' (internal fsck error)", obj->type); @@ -28,6 +28,8 @@ int fsck_error_function(struct object *obj, int type, const char *fmt, ...); * 0 everything OK */ int fsck_walk(struct object *obj, fsck_walk_func walk, void *data); -int fsck_object(struct object *obj, int strict, fsck_error error_func); +/* If NULL is passed for data, we assume the object is local and read it. */ +int fsck_object(struct object *obj, void *data, unsigned long size, + int strict, fsck_error error_func); #endif diff --git a/git-bisect.sh b/git-bisect.sh index 1e0d602f4b..6cda2b5a60 100755 --- a/git-bisect.sh +++ b/git-bisect.sh @@ -286,11 +286,11 @@ bisect_next_check() { if test -s "$GIT_DIR/BISECT_START" then - gettextln "You need to give me at least one good and one bad revisions. + gettextln "You need to give me at least one good and one bad revision. (You can use \"git bisect bad\" and \"git bisect good\" for that.)" >&2 else gettextln "You need to start by \"git bisect start\". -You then need to give me at least one good and one bad revisions. +You then need to give me at least one good and one bad revision. (You can use \"git bisect bad\" and \"git bisect good\" for that.)" >&2 fi exit 1 ;; diff --git a/git-compat-util.h b/git-compat-util.h index f587749b7c..fb41118c07 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -82,6 +82,7 @@ #define _ALL_SOURCE 1 #define _GNU_SOURCE 1 #define _BSD_SOURCE 1 +#define _DEFAULT_SOURCE 1 #define _NETBSD_SOURCE 1 #define _SGI_SOURCE 1 @@ -191,7 +192,7 @@ extern int compat_mkdir_wo_trailing_slash(const char*, mode_t); struct itimerval { struct timeval it_interval; struct timeval it_value; -} +}; #endif #ifdef NO_SETITIMER @@ -264,19 +265,35 @@ extern char *gitbasename(char *); #endif #ifndef has_dos_drive_prefix -#define has_dos_drive_prefix(path) 0 +static inline int git_has_dos_drive_prefix(const char *path) +{ + return 0; +} +#define has_dos_drive_prefix git_has_dos_drive_prefix #endif -#ifndef offset_1st_component -#define offset_1st_component(path) (is_dir_sep((path)[0])) +#ifndef is_dir_sep +static inline int git_is_dir_sep(int c) +{ + return c == '/'; +} +#define is_dir_sep git_is_dir_sep #endif -#ifndef is_dir_sep -#define is_dir_sep(c) ((c) == '/') +#ifndef offset_1st_component +static inline int git_offset_1st_component(const char *path) +{ + return is_dir_sep(path[0]); +} +#define offset_1st_component git_offset_1st_component #endif #ifndef find_last_dir_sep -#define find_last_dir_sep(path) strrchr(path, '/') +static inline char *git_find_last_dir_sep(const char *path) +{ + return strrchr(path, '/'); +} +#define find_last_dir_sep git_find_last_dir_sep #endif #if defined(__HP_cc) && (__HP_cc >= 61000) @@ -593,6 +610,7 @@ extern try_to_free_t set_try_to_free_routine(try_to_free_t); extern char *xstrdup(const char *str); extern void *xmalloc(size_t size); extern void *xmallocz(size_t size); +extern void *xmallocz_gently(size_t size); extern void *xmemdupz(const void *data, size_t len); extern char *xstrndup(const char *str, size_t len); extern void *xrealloc(void *ptr, size_t size); @@ -607,6 +625,9 @@ extern int xmkstemp(char *template); extern int xmkstemp_mode(char *template, int mode); extern int odb_mkstemp(char *template, size_t limit, const char *pattern); extern int odb_pack_keep(char *name, size_t namesz, const unsigned char *sha1); +extern char *xgetcwd(void); + +#define REALLOC_ARRAY(x, alloc) (x) = xrealloc((x), (alloc) * sizeof(*(x))) static inline size_t xsize_t(off_t len) { diff --git a/git-pull.sh b/git-pull.sh index 18a394fcc4..4d4fc77b05 100755 --- a/git-pull.sh +++ b/git-pull.sh @@ -20,7 +20,7 @@ die_conflict () { if [ $(git config --bool --get advice.resolveConflict || echo true) = "true" ]; then die "$(gettext "Pull is not possible because you have unmerged files. Please, fix them up in the work tree, and then use 'git add/rm <file>' -as appropriate to mark resolution, or use 'git commit -a'.")" +as appropriate to mark resolution and make a commit.")" else die "$(gettext "Pull is not possible because you have unmerged files.")" fi diff --git a/git-stash.sh b/git-stash.sh index bcc757b390..d4cf818be9 100755 --- a/git-stash.sh +++ b/git-stash.sh @@ -50,7 +50,7 @@ clear_stash () { then die "$(gettext "git stash clear with parameters is unimplemented")" fi - if current=$(git rev-parse --verify $ref_stash 2>/dev/null) + if current=$(git rev-parse --verify --quiet $ref_stash) then git update-ref -d $ref_stash $current fi @@ -292,12 +292,12 @@ save_stash () { } have_stash () { - git rev-parse --verify $ref_stash >/dev/null 2>&1 + git rev-parse --verify --quiet $ref_stash >/dev/null } list_stash () { have_stash || return 0 - git log --format="%gd: %gs" -g "$@" $ref_stash -- + git log --format="%gd: %gs" -g --first-parent -m "$@" $ref_stash -- } show_stash () { @@ -392,12 +392,12 @@ parse_flags_and_rev() ;; esac - REV=$(git rev-parse --quiet --symbolic --verify "$1" 2>/dev/null) || { + REV=$(git rev-parse --symbolic --verify --quiet "$1") || { reference="$1" - die "$(eval_gettext "\$reference is not valid reference")" + die "$(eval_gettext "\$reference is not a valid reference")" } - i_commit=$(git rev-parse --quiet --verify "$REV^2" 2>/dev/null) && + i_commit=$(git rev-parse --verify --quiet "$REV^2") && set -- $(git rev-parse "$REV" "$REV^1" "$REV:" "$REV^1:" "$REV^2:" 2>/dev/null) && s=$1 && w_commit=$1 && @@ -409,7 +409,7 @@ parse_flags_and_rev() test "$ref_stash" = "$(git rev-parse --symbolic-full-name "${REV%@*}")" && IS_STASH_REF=t - u_commit=$(git rev-parse --quiet --verify "$REV^3" 2>/dev/null) && + u_commit=$(git rev-parse --verify --quiet "$REV^3") && u_tree=$(git rev-parse "$REV^3:" 2>/dev/null) } @@ -531,7 +531,8 @@ drop_stash () { die "$(eval_gettext "\${REV}: Could not drop stash entry")" # clear_stash if we just dropped the last stash entry - git rev-parse --verify "$ref_stash@{0}" >/dev/null 2>&1 || clear_stash + git rev-parse --verify --quiet "$ref_stash@{0}" >/dev/null || + clear_stash } apply_to_branch () { diff --git a/git-svn.perl b/git-svn.perl index 0a323722a6..b6e2186cef 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -260,8 +260,8 @@ my %cmd = ( } ], 'find-rev' => [ \&cmd_find_rev, "Translate between SVN revision numbers and tree-ish", - { 'before' => \$_before, - 'after' => \$_after } ], + { 'B|before' => \$_before, + 'A|after' => \$_after } ], 'rebase' => [ \&cmd_rebase, "Fetch and rebase your working directory", { 'merge|m|M' => \$_merge, 'verbose|v' => \$_verbose, @@ -306,13 +306,16 @@ sub readline { } package main; -my $term = eval { - $ENV{"GIT_SVN_NOTTY"} - ? new Term::ReadLine 'git-svn', \*STDIN, \*STDOUT - : new Term::ReadLine 'git-svn'; -}; -if ($@) { - $term = new FakeTerm "$@: going non-interactive"; +my $term; +sub term_init { + $term = eval { + $ENV{"GIT_SVN_NOTTY"} + ? new Term::ReadLine 'git-svn', \*STDIN, \*STDOUT + : new Term::ReadLine 'git-svn'; + }; + if ($@) { + $term = new FakeTerm "$@: going non-interactive"; + } } my $cmd; @@ -424,6 +427,7 @@ sub ask { my $default = $arg{default}; my $resp; my $i = 0; + term_init() unless $term; if ( !( defined($term->IN) && defined( fileno($term->IN) ) @@ -1161,7 +1165,9 @@ sub cmd_branch { ::_req_svn(); my $ctx = SVN::Client->new( - auth => Git::SVN::Ra::_auth_providers(), + config => SVN::Core::config_get_config( + $Git::SVN::Ra::config_dir + ), log_msg => sub { ${ $_[0] } = defined $_message ? $_message @@ -1475,10 +1481,37 @@ sub cmd_commit_diff { } } - sub cmd_info { - my $path = canonicalize_path(defined($_[0]) ? $_[0] : "."); - my $fullpath = canonicalize_path($cmd_dir_prefix . $path); + my $path_arg = defined($_[0]) ? $_[0] : '.'; + my $path = $path_arg; + if (File::Spec->file_name_is_absolute($path)) { + $path = canonicalize_path($path); + + my $toplevel = eval { + my @cmd = qw/rev-parse --show-toplevel/; + command_oneline(\@cmd, STDERR => 0); + }; + + # remove $toplevel from the absolute path: + my ($vol, $dirs, $file) = File::Spec->splitpath($path); + my (undef, $tdirs, $tfile) = File::Spec->splitpath($toplevel); + my @dirs = File::Spec->splitdir($dirs); + my @tdirs = File::Spec->splitdir($tdirs); + pop @dirs if $dirs[-1] eq ''; + pop @tdirs if $tdirs[-1] eq ''; + push @dirs, $file; + push @tdirs, $tfile; + while (@tdirs && @dirs && $tdirs[0] eq $dirs[0]) { + shift @dirs; + shift @tdirs; + } + $dirs = File::Spec->catdir(@dirs); + $path = File::Spec->catpath($vol, $dirs); + + $path = canonicalize_path($path); + } else { + $path = canonicalize_path($cmd_dir_prefix . $path); + } if (exists $_[1]) { die "Too many arguments specified\n"; } @@ -1499,14 +1532,14 @@ sub cmd_info { # canonicalize_path() will return "" to make libsvn 1.5.x happy, $path = "." if $path eq ""; - my $full_url = canonicalize_url( add_path_to_url( $url, $fullpath ) ); + my $full_url = canonicalize_url( add_path_to_url( $url, $path ) ); if ($_url) { print "$full_url\n"; return; } - my $result = "Path: $path\n"; + my $result = "Path: $path_arg\n"; $result .= "Name: " . basename($path) . "\n" if $file_type ne "dir"; $result .= "URL: $full_url\n"; @@ -1537,7 +1570,7 @@ sub cmd_info { } my ($lc_author, $lc_rev, $lc_date_utc); - my @args = Git::SVN::Log::git_svn_log_cmd($rev, $rev, "--", $fullpath); + my @args = Git::SVN::Log::git_svn_log_cmd($rev, $rev, "--", $path); my $log = command_output_pipe(@args); my $esc_color = qr/(?:\033\[(?:(?:\d+;)*\d*)?m)*/; while (<$log>) { @@ -14,13 +14,13 @@ const char git_usage_string[] = " <command> [<args>]"; const char git_more_info_string[] = - N_("'git help -a' and 'git help -g' lists available subcommands and some\n" + N_("'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."); static struct startup_info git_startup_info; static int use_pager = -1; -static char orig_cwd[PATH_MAX]; +static char *orig_cwd; static const char *env_names[] = { GIT_DIR_ENVIRONMENT, GIT_WORK_TREE_ENVIRONMENT, @@ -36,8 +36,7 @@ static void save_env(void) if (saved_environment) return; saved_environment = 1; - if (!getcwd(orig_cwd, sizeof(orig_cwd))) - die_errno("cannot getcwd"); + orig_cwd = xgetcwd(); for (i = 0; i < ARRAY_SIZE(env_names); i++) { orig_env[i] = getenv(env_names[i]); if (orig_env[i]) @@ -48,8 +47,9 @@ static void save_env(void) static void restore_env(void) { int i; - if (*orig_cwd && chdir(orig_cwd)) + if (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]) setenv(env_names[i], orig_env[i], 1); @@ -161,9 +161,10 @@ static int handle_options(const char ***argv, int *argc, int *envchanged) if (envchanged) *envchanged = 1; } else if (!strcmp(cmd, "--bare")) { - static char git_dir[PATH_MAX+1]; + char *cwd = xgetcwd(); is_bare_repository_cfg = 1; - setenv(GIT_DIR_ENVIRONMENT, getcwd(git_dir, sizeof(git_dir)), 0); + setenv(GIT_DIR_ENVIRONMENT, cwd, 0); + free(cwd); setenv(GIT_IMPLICIT_WORK_TREE_ENVIRONMENT, "0", 1); if (envchanged) *envchanged = 1; @@ -281,8 +282,7 @@ static int handle_alias(int *argcp, const char ***argv) "trace: alias expansion: %s =>", alias_command); - new_argv = xrealloc(new_argv, sizeof(char *) * - (count + *argcp)); + REALLOC_ARRAY(new_argv, count + *argcp); /* insert after command name */ memcpy(new_argv + count, *argv + 1, sizeof(char *) * *argcp); @@ -592,6 +592,26 @@ static int run_argv(int *argcp, const char ***argv) return done_alias; } +/* + * Many parts of Git have subprograms communicate via pipe, expect the + * upstream of a pipe to die with SIGPIPE when the downstream of a + * pipe does not need to read all that is written. Some third-party + * programs that ignore or block SIGPIPE for their own reason forget + * to restore SIGPIPE handling to the default before spawning Git and + * break this carefully orchestrated machinery. + * + * Restore the way SIGPIPE is handled to default, which is what we + * expect. + */ +static void restore_sigpipe_to_default(void) +{ + sigset_t unblock; + + sigemptyset(&unblock); + sigaddset(&unblock, SIGPIPE); + sigprocmask(SIG_UNBLOCK, &unblock, NULL); + signal(SIGPIPE, SIG_DFL); +} int main(int argc, char **av) { @@ -611,6 +631,8 @@ int main(int argc, char **av) */ sanitize_stdfds(); + restore_sigpipe_to_default(); + git_setup_gettext(); trace_command_performance(argv); diff --git a/gpg-interface.c b/gpg-interface.c index ff07012726..68b0c814f7 100644 --- a/gpg-interface.c +++ b/gpg-interface.c @@ -7,6 +7,9 @@ static char *configured_signing_key; static const char *gpg_program = "gpg"; +#define PGP_SIGNATURE "-----BEGIN PGP SIGNATURE-----" +#define PGP_MESSAGE "-----BEGIN PGP MESSAGE-----" + void signature_check_clear(struct signature_check *sigc) { free(sigc->payload); @@ -21,6 +24,60 @@ void signature_check_clear(struct signature_check *sigc) sigc->key = NULL; } +static struct { + char result; + const char *check; +} sigcheck_gpg_status[] = { + { 'G', "\n[GNUPG:] GOODSIG " }, + { 'B', "\n[GNUPG:] BADSIG " }, + { 'U', "\n[GNUPG:] TRUST_NEVER" }, + { 'U', "\n[GNUPG:] TRUST_UNDEFINED" }, +}; + +void parse_gpg_output(struct signature_check *sigc) +{ + const char *buf = sigc->gpg_status; + int i; + + /* Iterate over all search strings */ + for (i = 0; i < ARRAY_SIZE(sigcheck_gpg_status); i++) { + const char *found, *next; + + if (!skip_prefix(buf, sigcheck_gpg_status[i].check + 1, &found)) { + found = strstr(buf, sigcheck_gpg_status[i].check); + if (!found) + continue; + found += strlen(sigcheck_gpg_status[i].check); + } + sigc->result = sigcheck_gpg_status[i].result; + /* The trust messages are not followed by key/signer information */ + if (sigc->result != 'U') { + sigc->key = xmemdupz(found, 16); + found += 17; + next = strchrnul(found, '\n'); + sigc->signer = xmemdupz(found, next - found); + } + } +} + +/* + * Look at GPG signed content (e.g. a signed tag object), whose + * payload is followed by a detached signature on it. Return the + * offset where the embedded detached signature begins, or the end of + * the data when there is no such signature. + */ +size_t parse_signature(const char *buf, unsigned long size) +{ + char *eol; + size_t len = 0; + while (len < size && !starts_with(buf + len, PGP_SIGNATURE) && + !starts_with(buf + len, PGP_MESSAGE)) { + eol = memchr(buf + len, '\n', size - len); + len += eol ? eol - (buf + len) + 1 : size - len; + } + return len; +} + void set_signing_key(const char *key) { free(configured_signing_key); @@ -55,12 +112,11 @@ const char *get_signing_key(void) */ int sign_buffer(struct strbuf *buffer, struct strbuf *signature, const char *signing_key) { - struct child_process gpg; + struct child_process gpg = CHILD_PROCESS_INIT; const char *args[4]; ssize_t len; size_t i, j, bottom; - memset(&gpg, 0, sizeof(gpg)); gpg.argv = args; gpg.in = -1; gpg.out = -1; @@ -116,7 +172,7 @@ int verify_signed_buffer(const char *payload, size_t payload_size, const char *signature, size_t signature_size, struct strbuf *gpg_output, struct strbuf *gpg_status) { - struct child_process gpg; + struct child_process gpg = CHILD_PROCESS_INIT; const char *args_gpg[] = {NULL, "--status-fd=1", "--verify", "FILE", "-", NULL}; char path[PATH_MAX]; int fd, ret; @@ -133,7 +189,6 @@ int verify_signed_buffer(const char *payload, size_t payload_size, path, strerror(errno)); close(fd); - memset(&gpg, 0, sizeof(gpg)); gpg.argv = args_gpg; gpg.in = -1; gpg.out = -1; diff --git a/gpg-interface.h b/gpg-interface.h index 37c23daff0..87a4f2e3fa 100644 --- a/gpg-interface.h +++ b/gpg-interface.h @@ -5,16 +5,23 @@ struct signature_check { char *payload; char *gpg_output; char *gpg_status; - char result; /* 0 (not checked), - * N (checked but no further result), - * U (untrusted good), - * G (good) - * B (bad) */ + + /* + * possible "result": + * 0 (not checked) + * N (checked but no further result) + * U (untrusted good) + * G (good) + * B (bad) + */ + char result; char *signer; char *key; }; extern void signature_check_clear(struct signature_check *sigc); +extern size_t parse_signature(const char *buf, unsigned long size); +extern void parse_gpg_output(struct signature_check *); extern int sign_buffer(struct strbuf *buffer, struct strbuf *signature, const char *signing_key); extern int verify_signed_buffer(const char *payload, size_t payload_size, const char *signature, size_t signature_size, struct strbuf *gpg_output, struct strbuf *gpg_status); extern int git_gpg_config(const char *, const char *, void *); @@ -267,16 +267,10 @@ static void graph_ensure_capacity(struct git_graph *graph, int num_columns) graph->column_capacity *= 2; } while (graph->column_capacity < num_columns); - graph->columns = xrealloc(graph->columns, - sizeof(struct column) * - graph->column_capacity); - graph->new_columns = xrealloc(graph->new_columns, - sizeof(struct column) * - graph->column_capacity); - graph->mapping = xrealloc(graph->mapping, - sizeof(int) * 2 * graph->column_capacity); - graph->new_mapping = xrealloc(graph->new_mapping, - sizeof(int) * 2 * graph->column_capacity); + REALLOC_ARRAY(graph->columns, graph->column_capacity); + REALLOC_ARRAY(graph->new_columns, graph->column_capacity); + REALLOC_ARRAY(graph->mapping, graph->column_capacity * 2); + REALLOC_ARRAY(graph->new_mapping, graph->column_capacity * 2); } /* @@ -1145,7 +1139,7 @@ int graph_next_line(struct git_graph *graph, struct strbuf *sb) static void graph_padding_line(struct git_graph *graph, struct strbuf *sb) { - int i, j; + int i; if (graph->state != GRAPH_COMMIT) { graph_next_line(graph, sb); @@ -1161,21 +1155,11 @@ static void graph_padding_line(struct git_graph *graph, struct strbuf *sb) */ for (i = 0; i < graph->num_columns; i++) { struct column *col = &graph->columns[i]; - struct commit *col_commit = col->commit; - if (col_commit == graph->commit) { - strbuf_write_column(sb, col, '|'); - - if (graph->num_parents < 3) - strbuf_addch(sb, ' '); - else { - int num_spaces = ((graph->num_parents - 2) * 2); - for (j = 0; j < num_spaces; j++) - strbuf_addch(sb, ' '); - } - } else { - strbuf_write_column(sb, col, '|'); + strbuf_write_column(sb, col, '|'); + if (col->commit == graph->commit && graph->num_parents > 2) + strbuf_addchars(sb, ' ', (graph->num_parents - 2) * 2); + else strbuf_addch(sb, ' '); - } } graph_pad_horizontally(graph, sb, graph->num_columns); @@ -305,7 +305,7 @@ const char *help_unknown_cmd(const char *cmd) add_cmd_list(&main_cmds, &aliases); add_cmd_list(&main_cmds, &other_cmds); qsort(main_cmds.names, main_cmds.cnt, - sizeof(main_cmds.names), cmdname_compare); + sizeof(*main_cmds.names), cmdname_compare); uniq(&main_cmds); /* This abuses cmdname->len for levenshtein distance */ diff --git a/http-backend.c b/http-backend.c index 80790bbaef..404e682593 100644 --- a/http-backend.c +++ b/http-backend.c @@ -219,29 +219,22 @@ static void get_idx_file(char *name) send_local_file("application/x-git-packed-objects-toc", name); } -static int http_config(const char *var, const char *value, void *cb) +static void http_config(void) { - const char *p; + int i, value = 0; + struct strbuf var = STRBUF_INIT; - if (!strcmp(var, "http.getanyfile")) { - getanyfile = git_config_bool(var, value); - return 0; - } + git_config_get_bool("http.getanyfile", &getanyfile); - if (skip_prefix(var, "http.", &p)) { - int i; - - for (i = 0; i < ARRAY_SIZE(rpc_service); i++) { - struct rpc_service *svc = &rpc_service[i]; - if (!strcmp(p, svc->config_name)) { - svc->enabled = git_config_bool(var, value); - return 0; - } - } + for (i = 0; i < ARRAY_SIZE(rpc_service); i++) { + struct rpc_service *svc = &rpc_service[i]; + strbuf_addf(&var, "http.%s", svc->config_name); + if (!git_config_get_bool(var.buf, &value)) + svc->enabled = value; + strbuf_reset(&var); } - /* we are not interested in parsing any other configuration here */ - return 0; + strbuf_release(&var); } static struct rpc_service *select_service(const char *name) @@ -323,7 +316,7 @@ static void run_service(const char **argv) const char *host = getenv("REMOTE_ADDR"); struct argv_array env = ARGV_ARRAY_INIT; int gzipped_request = 0; - struct child_process cld; + struct child_process cld = CHILD_PROCESS_INIT; if (encoding && !strcmp(encoding, "gzip")) gzipped_request = 1; @@ -341,7 +334,6 @@ static void run_service(const char **argv) argv_array_pushf(&env, "GIT_COMMITTER_EMAIL=%s@http.%s", user, host); - memset(&cld, 0, sizeof(cld)); cld.argv = argv; cld.env = env.argv; if (gzipped_request) @@ -627,7 +619,7 @@ int main(int argc, char **argv) access("git-daemon-export-ok", F_OK) ) not_found("Repository not exported: '%s'", dir); - git_config(http_config, NULL); + http_config(); cmd->imp(cmd_arg); return 0; } diff --git a/http-walker.c b/http-walker.c index dbddfaa177..88da5468e7 100644 --- a/http-walker.c +++ b/http-walker.c @@ -230,7 +230,6 @@ static void process_alternates_response(void *callback_data) int okay = 0; int serverlen = 0; struct alt_base *newalt; - char *target = NULL; if (data[i] == '/') { /* * This counts @@ -287,17 +286,15 @@ static void process_alternates_response(void *callback_data) } /* skip "objects\n" at end */ if (okay) { - target = xmalloc(serverlen + posn - i - 6); - memcpy(target, base, serverlen); - memcpy(target + serverlen, data + i, - posn - i - 7); - target[serverlen + posn - i - 7] = 0; + struct strbuf target = STRBUF_INIT; + strbuf_add(&target, base, serverlen); + strbuf_add(&target, data + i, posn - i - 7); if (walker->get_verbosely) - fprintf(stderr, - "Also look at %s\n", target); + fprintf(stderr, "Also look at %s\n", + target.buf); newalt = xmalloc(sizeof(*newalt)); newalt->next = NULL; - newalt->base = target; + newalt->base = strbuf_detach(&target, NULL); newalt->got_indices = 0; newalt->packs = NULL; @@ -300,6 +300,9 @@ static CURL *get_curl_handle(void) { CURL *result = curl_easy_init(); + if (!result) + die("curl_easy_init failed"); + if (!curl_ssl_verify) { curl_easy_setopt(result, CURLOPT_SSL_VERIFYPEER, 0); curl_easy_setopt(result, CURLOPT_SSL_VERIFYHOST, 0); @@ -399,7 +402,8 @@ void http_init(struct remote *remote, const char *url, int proactive_auth) git_config(urlmatch_config_entry, &config); free(normalized_url); - curl_global_init(CURL_GLOBAL_ALL); + if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) + die("curl_global_init failed"); http_proactive_auth = proactive_auth; @@ -417,10 +421,8 @@ void http_init(struct remote *remote, const char *url, int proactive_auth) } curlm = curl_multi_init(); - if (curlm == NULL) { - fprintf(stderr, "Error creating curl multi handle.\n"); - exit(1); - } + if (!curlm) + die("curl_multi_init failed"); #endif if (getenv("GIT_SSL_NO_VERIFY")) @@ -1332,7 +1334,7 @@ int finish_http_pack_request(struct http_pack_request *preq) struct packed_git **lst; struct packed_git *p = preq->target; char *tmp_idx; - struct child_process ip; + struct child_process ip = CHILD_PROCESS_INIT; const char *ip_argv[8]; close_pack_index(p); @@ -1355,7 +1357,6 @@ int finish_http_pack_request(struct http_pack_request *preq) ip_argv[3] = preq->tmpfile; ip_argv[4] = NULL; - memset(&ip, 0, sizeof(ip)); ip.argv = ip_argv; ip.git_cmd = 1; ip.no_stdin = 1; @@ -9,7 +9,7 @@ static struct strbuf git_default_name = STRBUF_INIT; static struct strbuf git_default_email = STRBUF_INIT; -static char git_default_date[50]; +static struct strbuf git_default_date = STRBUF_INIT; #define IDENT_NAME_GIVEN 01 #define IDENT_MAIL_GIVEN 02 @@ -102,7 +102,7 @@ static void copy_email(const struct passwd *pw, struct strbuf *email) add_domainname(email); } -static const char *ident_default_name(void) +const char *ident_default_name(void) { if (!git_default_name.len) { copy_gecos(xgetpwuid_self(), &git_default_name); @@ -129,9 +129,9 @@ const char *ident_default_email(void) static const char *ident_default_date(void) { - if (!git_default_date[0]) - datestamp(git_default_date, sizeof(git_default_date)); - return git_default_date; + if (!git_default_date.len) + datestamp(&git_default_date); + return git_default_date.buf; } static int crud(unsigned char c) @@ -292,7 +292,6 @@ const char *fmt_ident(const char *name, const char *email, const char *date_str, int flag) { static struct strbuf ident = STRBUF_INIT; - char date[50]; int strict = (flag & IDENT_STRICT); int want_date = !(flag & IDENT_NO_DATE); int want_name = !(flag & IDENT_NO_NAME); @@ -320,15 +319,6 @@ const char *fmt_ident(const char *name, const char *email, die("unable to auto-detect email address (got '%s')", email); } - if (want_date) { - if (date_str && date_str[0]) { - if (parse_date(date_str, date, sizeof(date)) < 0) - die("invalid date format: %s", date_str); - } - else - strcpy(date, ident_default_date()); - } - strbuf_reset(&ident); if (want_name) { strbuf_addstr_without_crud(&ident, name); @@ -339,8 +329,14 @@ const char *fmt_ident(const char *name, const char *email, strbuf_addch(&ident, '>'); if (want_date) { strbuf_addch(&ident, ' '); - strbuf_addstr_without_crud(&ident, date); + if (date_str && date_str[0]) { + if (parse_date(date_str, &ident) < 0) + die("invalid date format: %s", date_str); + } + else + strbuf_addstr(&ident, ident_default_date()); } + return ident.buf; } diff --git a/imap-send.c b/imap-send.c index 524fbabc96..70bcc7a4e5 100644 --- a/imap-send.c +++ b/imap-send.c @@ -69,6 +69,7 @@ struct imap_server_conf { char *tunnel; char *host; int port; + char *folder; char *user; char *pass; int use_ssl; @@ -82,6 +83,7 @@ static struct imap_server_conf server = { NULL, /* tunnel */ NULL, /* host */ 0, /* port */ + NULL, /* folder */ NULL, /* user */ NULL, /* pass */ 0, /* use_ssl */ @@ -128,7 +130,6 @@ struct imap_cmd_cb { char *data; int dlen; int uid; - unsigned create:1, trycreate:1; }; struct imap_cmd { @@ -493,9 +494,9 @@ static int nfsnprintf(char *buf, int blen, const char *fmt, ...) return ret; } -static struct imap_cmd *v_issue_imap_cmd(struct imap_store *ctx, - struct imap_cmd_cb *cb, - const char *fmt, va_list ap) +static struct imap_cmd *issue_imap_cmd(struct imap_store *ctx, + struct imap_cmd_cb *cb, + const char *fmt, va_list ap) { struct imap *imap = ctx->imap; struct imap_cmd *cmd; @@ -524,7 +525,7 @@ static struct imap_cmd *v_issue_imap_cmd(struct imap_store *ctx, if (Verbose) { if (imap->num_in_progress) printf("(%d in progress) ", imap->num_in_progress); - if (memcmp(cmd->cmd, "LOGIN", 5)) + if (!starts_with(cmd->cmd, "LOGIN")) printf(">>> %s", buf); else printf(">>> %d LOGIN <user> <pass>\n", cmd->tag); @@ -559,20 +560,6 @@ static struct imap_cmd *v_issue_imap_cmd(struct imap_store *ctx, } __attribute__((format (printf, 3, 4))) -static struct imap_cmd *issue_imap_cmd(struct imap_store *ctx, - struct imap_cmd_cb *cb, - const char *fmt, ...) -{ - struct imap_cmd *ret; - va_list ap; - - va_start(ap, fmt); - ret = v_issue_imap_cmd(ctx, cb, fmt, ap); - va_end(ap); - return ret; -} - -__attribute__((format (printf, 3, 4))) static int imap_exec(struct imap_store *ctx, struct imap_cmd_cb *cb, const char *fmt, ...) { @@ -580,7 +567,7 @@ static int imap_exec(struct imap_store *ctx, struct imap_cmd_cb *cb, struct imap_cmd *cmdp; va_start(ap, fmt); - cmdp = v_issue_imap_cmd(ctx, cb, fmt, ap); + cmdp = issue_imap_cmd(ctx, cb, fmt, ap); va_end(ap); if (!cmdp) return RESP_BAD; @@ -596,7 +583,7 @@ static int imap_exec_m(struct imap_store *ctx, struct imap_cmd_cb *cb, struct imap_cmd *cmdp; va_start(ap, fmt); - cmdp = v_issue_imap_cmd(ctx, cb, fmt, ap); + cmdp = issue_imap_cmd(ctx, cb, fmt, ap); va_end(ap); if (!cmdp) return DRV_STORE_BAD; @@ -714,8 +701,8 @@ static int parse_response_code(struct imap_store *ctx, struct imap_cmd_cb *cb, static int get_cmd_result(struct imap_store *ctx, struct imap_cmd *tcmd) { struct imap *imap = ctx->imap; - struct imap_cmd *cmdp, **pcmdp, *ncmdp; - char *cmd, *arg, *arg1, *p; + struct imap_cmd *cmdp, **pcmdp; + char *cmd, *arg, *arg1; int n, resp, resp2, tag; for (;;) { @@ -801,39 +788,17 @@ static int get_cmd_result(struct imap_store *ctx, struct imap_cmd *tcmd) if (!strcmp("OK", arg)) resp = DRV_OK; else { - if (!strcmp("NO", arg)) { - if (cmdp->cb.create && cmd && (cmdp->cb.trycreate || !memcmp(cmd, "[TRYCREATE]", 11))) { /* SELECT, APPEND or UID COPY */ - p = strchr(cmdp->cmd, '"'); - if (!issue_imap_cmd(ctx, NULL, "CREATE \"%.*s\"", (int)(strchr(p + 1, '"') - p + 1), p)) { - resp = RESP_BAD; - goto normal; - } - /* not waiting here violates the spec, but a server that does not - grok this nonetheless violates it too. */ - cmdp->cb.create = 0; - if (!(ncmdp = issue_imap_cmd(ctx, &cmdp->cb, "%s", cmdp->cmd))) { - resp = RESP_BAD; - goto normal; - } - free(cmdp->cmd); - free(cmdp); - if (!tcmd) - return 0; /* ignored */ - if (cmdp == tcmd) - tcmd = ncmdp; - continue; - } + if (!strcmp("NO", arg)) resp = RESP_NO; - } else /*if (!strcmp("BAD", arg))*/ + else /*if (!strcmp("BAD", arg))*/ resp = RESP_BAD; fprintf(stderr, "IMAP command '%s' returned response (%s) - %s\n", - memcmp(cmdp->cmd, "LOGIN", 5) ? + !starts_with(cmdp->cmd, "LOGIN") ? cmdp->cmd : "LOGIN <user> <pass>", arg, cmd ? cmd : ""); } if ((resp2 = parse_response_code(ctx, &cmdp->cb, cmd)) > resp) resp = resp2; - normal: if (cmdp->cb.done) cmdp->cb.done(ctx, cmdp, resp); free(cmdp->cb.data); @@ -944,7 +909,7 @@ static int auth_cram_md5(struct imap_store *ctx, struct imap_cmd *cmd, const cha return 0; } -static struct imap_store *imap_open_store(struct imap_server_conf *srvc) +static struct imap_store *imap_open_store(struct imap_server_conf *srvc, char *folder) { struct credential cred = CREDENTIAL_INIT; struct imap_store *ctx; @@ -954,24 +919,23 @@ static struct imap_store *imap_open_store(struct imap_server_conf *srvc) ctx = xcalloc(1, sizeof(*ctx)); - ctx->imap = imap = xcalloc(sizeof(*imap), 1); + ctx->imap = imap = xcalloc(1, sizeof(*imap)); imap->buf.sock.fd[0] = imap->buf.sock.fd[1] = -1; imap->in_progress_append = &imap->in_progress; /* open connection to IMAP server */ if (srvc->tunnel) { - const char *argv[] = { srvc->tunnel, NULL }; - struct child_process tunnel = {NULL}; + struct child_process tunnel = CHILD_PROCESS_INIT; imap_info("Starting tunnel '%s'... ", srvc->tunnel); - tunnel.argv = argv; + argv_array_push(&tunnel.args, srvc->tunnel); tunnel.use_shell = 1; tunnel.in = -1; tunnel.out = -1; if (start_command(&tunnel)) - die("cannot start proxy %s", argv[0]); + die("cannot start proxy %s", srvc->tunnel); imap->buf.sock.fd[0] = tunnel.out; imap->buf.sock.fd[1] = tunnel.in; @@ -1156,6 +1120,25 @@ static struct imap_store *imap_open_store(struct imap_server_conf *srvc) credential_approve(&cred); credential_clear(&cred); + /* check the target mailbox exists */ + ctx->name = folder; + switch (imap_exec(ctx, NULL, "EXAMINE \"%s\"", ctx->name)) { + case RESP_OK: + /* ok */ + break; + case RESP_BAD: + fprintf(stderr, "IMAP error: could not check mailbox\n"); + goto out; + case RESP_NO: + if (imap_exec(ctx, NULL, "CREATE \"%s\"", ctx->name) == RESP_OK) { + imap_info("Created missing mailbox\n"); + } else { + fprintf(stderr, "IMAP error: could not create missing mailbox\n"); + goto out; + } + break; + } + ctx->prefix = ""; return ctx; @@ -1164,6 +1147,7 @@ bail: credential_reject(&cred); credential_clear(&cred); + out: imap_close_store(ctx); return NULL; } @@ -1219,7 +1203,6 @@ static int imap_store_msg(struct imap_store *ctx, struct strbuf *msg) box = ctx->name; prefix = !strcmp(box, "INBOX") ? "" : ctx->prefix; - cb.create = 0; ret = imap_exec_m(ctx, &cb, "APPEND \"%s%s\" ", prefix, box); imap->caps = imap->rcaps; if (ret != DRV_OK) @@ -1324,45 +1307,35 @@ static int split_msg(struct strbuf *all_msgs, struct strbuf *msg, int *ofs) return 1; } -static char *imap_folder; - -static int git_imap_config(const char *key, const char *val, void *cb) +static void git_imap_config(void) { - if (!skip_prefix(key, "imap.", &key)) - return 0; + const char *val = NULL; + + git_config_get_bool("imap.sslverify", &server.ssl_verify); + git_config_get_bool("imap.preformattedhtml", &server.use_html); + git_config_get_string("imap.folder", &server.folder); - /* check booleans first, and barf on others */ - if (!strcmp("sslverify", key)) - server.ssl_verify = git_config_bool(key, val); - else if (!strcmp("preformattedhtml", key)) - server.use_html = git_config_bool(key, val); - else if (!val) - return config_error_nonbool(key); - - if (!strcmp("folder", key)) { - imap_folder = xstrdup(val); - } else if (!strcmp("host", key)) { - if (starts_with(val, "imap:")) - val += 5; - else if (starts_with(val, "imaps:")) { - val += 6; - server.use_ssl = 1; + if (!git_config_get_value("imap.host", &val)) { + if (!val) { + git_die_config("imap.host", "Missing value for 'imap.host'"); + } else { + if (starts_with(val, "imap:")) + val += 5; + else if (starts_with(val, "imaps:")) { + val += 6; + server.use_ssl = 1; + } + if (starts_with(val, "//")) + val += 2; + server.host = xstrdup(val); } - if (starts_with(val, "//")) - val += 2; - server.host = xstrdup(val); - } else if (!strcmp("user", key)) - server.user = xstrdup(val); - else if (!strcmp("pass", key)) - server.pass = xstrdup(val); - else if (!strcmp("port", key)) - server.port = git_config_int(key, val); - else if (!strcmp("tunnel", key)) - server.tunnel = xstrdup(val); - else if (!strcmp("authmethod", key)) - server.auth_method = xstrdup(val); + } - return 0; + git_config_get_string("imap.user", &server.user); + git_config_get_string("imap.pass", &server.pass); + git_config_get_int("imap.port", &server.port); + git_config_get_string("imap.tunnel", &server.tunnel); + git_config_get_string("imap.authmethod", &server.auth_method); } int main(int argc, char **argv) @@ -1383,12 +1356,12 @@ int main(int argc, char **argv) usage(imap_send_usage); setup_git_directory_gently(&nongit_ok); - git_config(git_imap_config, NULL); + git_imap_config(); if (!server.port) server.port = server.use_ssl ? 993 : 143; - if (!imap_folder) { + if (!server.folder) { fprintf(stderr, "no imap store specified\n"); return 1; } @@ -1418,14 +1391,13 @@ int main(int argc, char **argv) } /* write it to the imap server */ - ctx = imap_open_store(&server); + ctx = imap_open_store(&server, server.folder); if (!ctx) { fprintf(stderr, "failed to open store\n"); return 1; } fprintf(stderr, "sending %d message%s\n", total, (total != 1) ? "s" : ""); - ctx->name = imap_folder; while (1) { unsigned percent = n * 100 / total; @@ -121,13 +121,9 @@ static const double __ac_HASH_UPPER = 0.77; if (!new_flags) return -1; \ memset(new_flags, 0xaa, __ac_fsize(new_n_buckets) * sizeof(khint32_t)); \ if (h->n_buckets < new_n_buckets) { /* expand */ \ - khkey_t *new_keys = (khkey_t*)xrealloc((void *)h->keys, new_n_buckets * sizeof(khkey_t)); \ - if (!new_keys) return -1; \ - h->keys = new_keys; \ + REALLOC_ARRAY(h->keys, new_n_buckets); \ if (kh_is_map) { \ - khval_t *new_vals = (khval_t*)xrealloc((void *)h->vals, new_n_buckets * sizeof(khval_t)); \ - if (!new_vals) return -1; \ - h->vals = new_vals; \ + REALLOC_ARRAY(h->vals, new_n_buckets); \ } \ } /* otherwise shrink */ \ } \ @@ -160,8 +156,8 @@ static const double __ac_HASH_UPPER = 0.77; } \ } \ if (h->n_buckets > new_n_buckets) { /* shrink the hash table */ \ - h->keys = (khkey_t*)xrealloc((void *)h->keys, new_n_buckets * sizeof(khkey_t)); \ - if (kh_is_map) h->vals = (khval_t*)xrealloc((void *)h->vals, new_n_buckets * sizeof(khval_t)); \ + REALLOC_ARRAY(h->keys, new_n_buckets); \ + if (kh_is_map) REALLOC_ARRAY(h->vals, new_n_buckets); \ } \ free(h->flags); /* free the working space */ \ h->flags = new_flags; \ diff --git a/line-log.c b/line-log.c index 1008e72258..038c58a395 100644 --- a/line-log.c +++ b/line-log.c @@ -533,7 +533,7 @@ static void fill_line_ends(struct diff_filespec *spec, long *lines, } /* shrink the array to fit the elements */ - ends = xrealloc(ends, cur * sizeof(*ends)); + REALLOC_ARRAY(ends, cur); *lines = cur-1; *line_ends = ends; } diff --git a/ll-merge.c b/ll-merge.c index fb61ea66a1..8ea03e536a 100644 --- a/ll-merge.c +++ b/ll-merge.c @@ -225,11 +225,8 @@ static int read_merge_config(const char *var, const char *value, void *cb) const char *key, *name; int namelen; - if (!strcmp(var, "merge.default")) { - if (value) - default_ll_merge = xstrdup(value); - return 0; - } + if (!strcmp(var, "merge.default")) + return git_config_string(&default_ll_merge, var, value); /* * We are not interested in anything but "merge.<name>.variable"; @@ -254,12 +251,8 @@ static int read_merge_config(const char *var, const char *value, void *cb) ll_user_merge_tail = &(fn->next); } - if (!strcmp("name", key)) { - if (!value) - return error("%s: lacks value", var); - fn->description = xstrdup(value); - return 0; - } + if (!strcmp("name", key)) + return git_config_string(&fn->description, var, value); if (!strcmp("driver", key)) { if (!value) @@ -285,12 +278,8 @@ static int read_merge_config(const char *var, const char *value, void *cb) return 0; } - if (!strcmp("recursive", key)) { - if (!value) - return error("%s: lacks value", var); - fn->recursive = xstrdup(value); - return 0; - } + if (!strcmp("recursive", key)) + return git_config_string(&fn->recursive, var, value); return 0; } diff --git a/lockfile.c b/lockfile.c index 2448d30cd0..d34a96df4f 100644 --- a/lockfile.c +++ b/lockfile.c @@ -240,6 +240,16 @@ int close_lock_file(struct lock_file *lk) return close(fd); } +int reopen_lock_file(struct lock_file *lk) +{ + if (0 <= lk->fd) + die(_("BUG: reopen a lockfile that is still open")); + if (!lk->filename[0]) + die(_("BUG: reopen a lockfile that has been committed")); + lk->fd = open(lk->filename, O_WRONLY); + return lk->fd; +} + int commit_lock_file(struct lock_file *lk) { char result_file[PATH_MAX]; diff --git a/log-tree.c b/log-tree.c index 0c53dc11ab..cff7ac1dbd 100644 --- a/log-tree.c +++ b/log-tree.c @@ -12,17 +12,7 @@ #include "sequencer.h" #include "line-log.h" -struct decoration name_decoration = { "object names" }; - -enum decoration_type { - DECORATION_NONE = 0, - DECORATION_REF_LOCAL, - DECORATION_REF_REMOTE, - DECORATION_REF_TAG, - DECORATION_REF_STASH, - DECORATION_REF_HEAD, - DECORATION_GRAFTED, -}; +static struct decoration name_decoration = { "object names" }; static char decoration_colors[][COLOR_MAXLEN] = { GIT_COLOR_RESET, @@ -84,15 +74,20 @@ int parse_decorate_color_config(const char *var, const int ofs, const char *valu #define decorate_get_color_opt(o, ix) \ decorate_get_color((o)->use_color, ix) -static void add_name_decoration(enum decoration_type type, const char *name, struct object *obj) +void add_name_decoration(enum decoration_type type, const char *name, struct object *obj) { int nlen = strlen(name); - struct name_decoration *res = xmalloc(sizeof(struct name_decoration) + nlen); + struct name_decoration *res = xmalloc(sizeof(*res) + nlen + 1); memcpy(res->name, name, nlen + 1); res->type = type; res->next = add_decoration(&name_decoration, obj, res); } +const struct name_decoration *get_name_decoration(const struct object *obj) +{ + return lookup_decoration(&name_decoration, obj); +} + static int add_ref_decoration(const char *refname, const unsigned char *sha1, int flags, void *cb_data) { struct object *obj; @@ -179,24 +174,25 @@ static void show_children(struct rev_info *opt, struct commit *commit, int abbre } /* - * The caller makes sure there is no funny color before - * calling. format_decorations makes sure the same after return. + * The caller makes sure there is no funny color before calling. + * format_decorations_extended makes sure the same after return. */ -void format_decorations(struct strbuf *sb, +void format_decorations_extended(struct strbuf *sb, const struct commit *commit, - int use_color) + int use_color, + const char *prefix, + const char *separator, + const char *suffix) { - const char *prefix; - struct name_decoration *decoration; + const struct name_decoration *decoration; const char *color_commit = diff_get_color(use_color, DIFF_COMMIT); const char *color_reset = decorate_get_color(use_color, DECORATION_NONE); - decoration = lookup_decoration(&name_decoration, &commit->object); + decoration = get_name_decoration(&commit->object); if (!decoration) return; - prefix = " ("; while (decoration) { strbuf_addstr(sb, color_commit); strbuf_addstr(sb, prefix); @@ -205,11 +201,11 @@ void format_decorations(struct strbuf *sb, strbuf_addstr(sb, "tag: "); strbuf_addstr(sb, decoration->name); strbuf_addstr(sb, color_reset); - prefix = ", "; + prefix = separator; decoration = decoration->next; } strbuf_addstr(sb, color_commit); - strbuf_addch(sb, ')'); + strbuf_addstr(sb, suffix); strbuf_addstr(sb, color_reset); } @@ -649,7 +645,7 @@ void show_log(struct rev_info *opt) graph_show_commit_msg(opt->graph, &msgbuf); else fwrite(msgbuf.buf, sizeof(char), msgbuf.len, stdout); - if (opt->use_terminator) { + if (opt->use_terminator && !commit_format_is_empty(opt->commit_format)) { if (!opt->missing_newline) graph_show_padding(opt->graph); putchar(opt->diffopt.line_termination); @@ -676,7 +672,8 @@ int log_tree_diff_flush(struct rev_info *opt) show_log(opt); if ((opt->diffopt.output_format & ~DIFF_FORMAT_NO_OUTPUT) && opt->verbose_header && - opt->commit_format != CMIT_FMT_ONELINE) { + opt->commit_format != CMIT_FMT_ONELINE && + !commit_format_is_empty(opt->commit_format)) { /* * When showing a verbose header (i.e. log message), * and not in --pretty=oneline format, we would want diff --git a/log-tree.h b/log-tree.h index d6ecd4dc46..b26160c4d6 100644 --- a/log-tree.h +++ b/log-tree.h @@ -13,7 +13,13 @@ int log_tree_diff_flush(struct rev_info *); int log_tree_commit(struct rev_info *, struct commit *); int log_tree_opt_parse(struct rev_info *, const char **, int); void show_log(struct rev_info *opt); -void format_decorations(struct strbuf *sb, const struct commit *commit, int use_color); +void format_decorations_extended(struct strbuf *sb, const struct commit *commit, + int use_color, + const char *prefix, + const char *separator, + const char *suffix); +#define format_decorations(strbuf, commit, color) \ + format_decorations_extended((strbuf), (commit), (color), " (", ", ", ")") void show_decorations(struct rev_info *opt, struct commit *commit); void log_write_email_headers(struct rev_info *opt, struct commit *commit, const char **subject_p, diff --git a/merge-recursive.c b/merge-recursive.c index 1d332b8bbb..8ad4be897d 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -163,9 +163,7 @@ static void output(struct merge_options *o, int v, const char *fmt, ...) if (!show(o, v)) return; - strbuf_grow(&o->obuf, o->call_depth * 2 + 2); - memset(o->obuf.buf + o->obuf.len, ' ', o->call_depth * 2); - strbuf_setlen(&o->obuf, o->obuf.len + o->call_depth * 2); + strbuf_addchars(&o->obuf, ' ', o->call_depth * 2); va_start(ap, fmt); strbuf_vaddf(&o->obuf, fmt, ap); @@ -1557,7 +1555,7 @@ static int blob_unchanged(const unsigned char *o_sha, * unchanged since their sha1s have already been compared. */ if (renormalize_buffer(path, o.buf, o.len, &o) | - renormalize_buffer(path, a.buf, o.len, &a)) + renormalize_buffer(path, a.buf, a.len, &a)) ret = (o.len == a.len && !memcmp(o.buf, a.buf, o.len)); error_return: @@ -1688,10 +1686,6 @@ static int merge_content(struct merge_options *o, static int process_entry(struct merge_options *o, const char *path, struct stage_data *entry) { - /* - printf("processing entry, clean cache: %s\n", index_only ? "yes": "no"); - print_index_entry("\tpath: ", entry); - */ int clean_merge = 1; int normalize = o->renormalize; unsigned o_mode = entry->stages[1].mode; @@ -2026,22 +2020,12 @@ int merge_recursive_generic(struct merge_options *o, return clean ? 0 : 1; } -static int merge_recursive_config(const char *var, const char *value, void *cb) +static void merge_recursive_config(struct merge_options *o) { - struct merge_options *o = cb; - if (!strcmp(var, "merge.verbosity")) { - o->verbosity = git_config_int(var, value); - return 0; - } - if (!strcmp(var, "diff.renamelimit")) { - o->diff_rename_limit = git_config_int(var, value); - return 0; - } - if (!strcmp(var, "merge.renamelimit")) { - o->merge_rename_limit = git_config_int(var, value); - return 0; - } - return git_xmerge_config(var, value, cb); + git_config_get_int("merge.verbosity", &o->verbosity); + git_config_get_int("diff.renamelimit", &o->diff_rename_limit); + git_config_get_int("merge.renamelimit", &o->merge_rename_limit); + git_config(git_xmerge_config, NULL); } void init_merge_options(struct merge_options *o) @@ -2052,7 +2036,7 @@ void init_merge_options(struct merge_options *o) o->diff_rename_limit = -1; o->merge_rename_limit = -1; o->renormalize = 0; - git_config(merge_recursive_config, o); + merge_recursive_config(o); if (getenv("GIT_MERGE_VERBOSITY")) o->verbosity = strtol(getenv("GIT_MERGE_VERBOSITY"), NULL, 10); @@ -33,13 +33,20 @@ const char *typename(unsigned int type) return object_type_strings[type]; } -int type_from_string(const char *str) +int type_from_string_gently(const char *str, ssize_t len, int gentle) { int i; + if (len < 0) + len = strlen(str); + for (i = 1; i < ARRAY_SIZE(object_type_strings); i++) - if (!strcmp(str, object_type_strings[i])) + if (!strncmp(str, object_type_strings[i], len)) return i; + + if (gentle) + return -1; + die("invalid object type \"%s\"", str); } @@ -312,7 +319,7 @@ static void add_object_array_with_mode_context(struct object *obj, const char *n if (nr >= alloc) { alloc = (alloc + 32) * 2; - objects = xrealloc(objects, alloc * sizeof(*objects)); + REALLOC_ARRAY(objects, alloc); array->alloc = alloc; array->objects = objects; } @@ -53,7 +53,8 @@ struct object { }; extern const char *typename(unsigned int type); -extern int type_from_string(const char *str); +extern int type_from_string_gently(const char *str, ssize_t, int gentle); +#define type_from_string(str) type_from_string_gently(str, -1, 0) /* * Return the current number of buckets in the object hashmap. diff --git a/pack-bitmap-write.c b/pack-bitmap-write.c index 5f1791a59c..8029ae3561 100644 --- a/pack-bitmap-write.c +++ b/pack-bitmap-write.c @@ -111,8 +111,7 @@ static inline void push_bitmapped_commit(struct commit *commit, struct ewah_bitm { if (writer.selected_nr >= writer.selected_alloc) { writer.selected_alloc = (writer.selected_alloc + 32) * 2; - writer.selected = xrealloc(writer.selected, - writer.selected_alloc * sizeof(struct bitmapped_commit)); + REALLOC_ARRAY(writer.selected, writer.selected_alloc); } writer.selected[writer.selected_nr].commit = commit; diff --git a/pack-bitmap.c b/pack-bitmap.c index 91e4101531..a1f3c0d34f 100644 --- a/pack-bitmap.c +++ b/pack-bitmap.c @@ -400,10 +400,8 @@ static int ext_index_add_object(struct object *object, const char *name) if (hash_ret > 0) { if (eindex->count >= eindex->alloc) { eindex->alloc = (eindex->alloc + 16) * 3 / 2; - eindex->objects = xrealloc(eindex->objects, - eindex->alloc * sizeof(struct object *)); - eindex->hashes = xrealloc(eindex->hashes, - eindex->alloc * sizeof(uint32_t)); + REALLOC_ARRAY(eindex->objects, eindex->alloc); + REALLOC_ARRAY(eindex->hashes, eindex->alloc); } bitmap_pos = eindex->count; diff --git a/pack-objects.c b/pack-objects.c index 9992f3ecf2..6398a8aa96 100644 --- a/pack-objects.c +++ b/pack-objects.c @@ -92,8 +92,7 @@ struct object_entry *packlist_alloc(struct packing_data *pdata, if (pdata->nr_objects >= pdata->nr_alloc) { pdata->nr_alloc = (pdata->nr_alloc + 1024) * 3 / 2; - pdata->objects = xrealloc(pdata->objects, - pdata->nr_alloc * sizeof(*new_entry)); + REALLOC_ARRAY(pdata->objects, pdata->nr_alloc); } new_entry = pdata->objects + pdata->nr_objects++; diff --git a/pack-write.c b/pack-write.c index 9ccf80419b..33293ce2a6 100644 --- a/pack-write.c +++ b/pack-write.c @@ -288,13 +288,12 @@ char *index_pack_lockfile(int ip_out) * case, we need it to remove the corresponding .keep file * later on. If we don't get that then tough luck with it. */ - if (read_in_full(ip_out, packname, 46) == 46 && packname[45] == '\n' && - memcmp(packname, "keep\t", 5) == 0) { - char path[PATH_MAX]; + if (read_in_full(ip_out, packname, 46) == 46 && packname[45] == '\n') { + const char *name; packname[45] = 0; - snprintf(path, sizeof(path), "%s/pack/pack-%s.keep", - get_object_directory(), packname + 5); - return xstrdup(path); + if (skip_prefix(packname, "keep\t", &name)) + return xstrfmt("%s/pack/pack-%s.keep", + get_object_directory(), name); } return NULL; } @@ -6,19 +6,13 @@ #define DEFAULT_PAGER "less" #endif -struct pager_config { - const char *cmd; - int want; - char *value; -}; - /* * This is split up from the rest of git so that we can do * something different on Windows. */ static const char *pager_argv[] = { NULL, NULL }; -static struct child_process pager_process; +static struct child_process pager_process = CHILD_PROCESS_INIT; static void wait_for_pager(void) { @@ -155,30 +149,22 @@ int decimal_width(int number) return width; } -static int pager_command_config(const char *var, const char *value, void *data) +/* returns 0 for "no pager", 1 for "use pager", and -1 for "not specified" */ +int check_pager_config(const char *cmd) { - struct pager_config *c = data; - if (starts_with(var, "pager.") && !strcmp(var + 6, c->cmd)) { - int b = git_config_maybe_bool(var, value); + int want = -1; + struct strbuf key = STRBUF_INIT; + const char *value = NULL; + strbuf_addf(&key, "pager.%s", cmd); + if (!git_config_get_value(key.buf, &value)) { + int b = git_config_maybe_bool(key.buf, value); if (b >= 0) - c->want = b; + want = b; else { - c->want = 1; - c->value = xstrdup(value); + want = 1; + pager_program = xstrdup(value); } } - return 0; -} - -/* returns 0 for "no pager", 1 for "use pager", and -1 for "not specified" */ -int check_pager_config(const char *cmd) -{ - struct pager_config c; - c.cmd = cmd; - c.want = -1; - c.value = NULL; - git_config(pager_command_config, &c); - if (c.value) - pager_program = c.value; - return c.want; + strbuf_release(&key); + return want; } diff --git a/parse-options.c b/parse-options.c index e7dafa80d5..80106c06bc 100644 --- a/parse-options.c +++ b/parse-options.c @@ -14,8 +14,12 @@ static int parse_options_usage(struct parse_opt_ctx_t *ctx, int optbug(const struct option *opt, const char *reason) { - if (opt->long_name) + if (opt->long_name) { + if (opt->short_name) + return error("BUG: switch '%c' (--%s) %s", + opt->short_name, opt->long_name, reason); return error("BUG: option '%s' %s", opt->long_name, reason); + } return error("BUG: switch '%c' %s", opt->short_name, reason); } @@ -347,12 +351,20 @@ static void check_typos(const char *arg, const struct option *options) static void parse_options_check(const struct option *opts) { int err = 0; + char short_opts[128]; + memset(short_opts, '\0', sizeof(short_opts)); for (; opts->type != OPTION_END; opts++) { if ((opts->flags & PARSE_OPT_LASTARG_DEFAULT) && (opts->flags & PARSE_OPT_OPTARG)) err |= optbug(opts, "uses incompatible flags " "LASTARG_DEFAULT and OPTARG"); + if (opts->short_name) { + if (0x7F <= opts->short_name) + err |= optbug(opts, "invalid short name"); + else if (short_opts[opts->short_name]++) + err |= optbug(opts, "short name already used"); + } if (opts->flags & PARSE_OPT_NODASH && ((opts->flags & PARSE_OPT_OPTARG) || !(opts->flags & PARSE_OPT_NOARG) || @@ -148,10 +148,12 @@ void home_config_paths(char **global, char **xdg, char *file) *global = mkpathdup("%s/.gitconfig", home); } - if (!xdg_home) - *xdg = NULL; - else - *xdg = mkpathdup("%s/git/%s", xdg_home, file); + if (xdg) { + if (!xdg_home) + *xdg = NULL; + else + *xdg = mkpathdup("%s/git/%s", xdg_home, file); + } free(to_free); } @@ -5,12 +5,19 @@ Language: bg (Bulgarian) Repository: https://github.com/git-l10n/git-po Leader: Alexander Shopov <ash@kambanaria.org> +Language: ca (Catalan) +Repository: https://github.com/alexhenrie/git-po +Leader: Alex Henrie <alexhenrie24@gmail.com> + Language: de (German) Repository: https://github.com/ralfth/git-po-de Leader: Ralf Thielow <ralf.thielow@googlemail.com> Members: Thomas Rast <tr@thomasrast.ch> Jan Krüger <jk@jk.gs> Christian Stimming <stimming@tuhh.de> + Phillip Szelat <phillip.szelat@gmail.com> + Matthias Rüster <matthias.ruester@gmail.com> + Magnus Görlitz <magnus.goerlitz@googlemail.com> Language: fr (French) Repository: https://github.com/jnavila/git @@ -18,7 +18,7 @@ # root commit начално подаване # fixup вкарвам подаване в предното без Ñледа # remote-tracking branch ÑледÑщ клон -# git bundle архив на git +# git bundle пратка на git # bisect двоично Ñ‚ÑŠÑ€Ñене # am прилагам поредица от кръпки # working directory/tree — винаги работно дърво, git Ñледи цÑлото дърво, а не директории @@ -39,16 +39,41 @@ # sequence поÑледователноÑÑ‚/поредица # whitespace symbol знаци за интервали # shortlog ÑÑŠÐºÑ€Ð°Ñ‚ÐµÐ½Ð¸Ñ Ð¶ÑƒÑ€Ð½Ð°Ð» +# backing store мÑÑтото за Ñъхранение +# reject отхвърлено парче +# topic branch тематичен клон +# empty head връх без иÑÑ‚Ð¾Ñ€Ð¸Ñ +# tree-ish указател към дърво +# three-way merge тройно Ñливане +# dirty нечиÑÑ‚, мръÑен (файл, индекÑ) +# fallback резервен вариант +# pathspec magic Ð¾Ð¿Ñ†Ð¸Ñ Ð·Ð° магичеÑки пътища +# bitmap index Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð° база битови маÑки +# mark маркер +# plumbing команди от ÑиÑтемно ниво +# porcelain команди от потребителÑко ниво +# pack [noun] пакетен файл - fixme in glossary +# mainline базово подаване - при cherry-pick на merge - към ÐºÐ¾Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð´Ð° Ñе изчиÑлÑва разликата +# # ---- # FAILED to parse неуÑпешен анализ на... -> неразпозната ÑтойноÑÑ‚ на -# +# blob обект BLOB # ======================== -# „“…— +# „“…— â—≫Ñ→ +# +# stressed a +# форма̀та +# delta - разлика или делта +# consistency between stdout - standard output/ stdin - standard input/ stderr - standard error +# mergetag етикет при Ñливане +# # ======================== # RECHECK # ------------------------ +# FIXME # HEAD as a reference vs head of a branch -# +# git update-index -h извежда Ñамо един ред, а не цÑлата помощ за опциите +# git fetch --al работи подобно на --all # ======================== # GENERATE STATS # ------------------------ @@ -67,7 +92,7 @@ # ======================== # STRINGS statistics # ------------------------ -# 1307t,0f,921u +# 2228t # # ======================== # MOST IMPORTANT name asc ordering @@ -75,40 +100,37 @@ # add, blame, branch, checkout, clone, commit, common-cmds, config, diff, fetch, fsck, gc, git-rebase, git-stash, grep, log, mv, parse-options, push, reflog, remote, reset, revert, rm, wt-status # # ======================== -# IMPORTANT strings desc, name asc ordering +# IMPORTANT strings, name asc ordering # ------------------------ -# 111 apply 54 git-submodule 30 git-am 13 check-ignore 10 merge-file -# 97 merge 39 init-db 30 describe 12 pathspec 10 merge-base -# 64 tag 35 archive 29 git-bisect 12 name-rev 10 ls-tree -# 55 merge-recursive 32 clean 14 show-ref 11 date 10 hash-object +# apply, archive, check-ignore, clean, date, describe, git-am, git-bisect, git-submodule, hash-object, init-db, ls-tree, merge, merge-base, merge-file, merge-recursive, name-rev, pathspec, show-ref, tag # # ======================== # WHOLE STATISTICS strings desc, name asc ordering # ------------------------ -# 144 [remote] 47 [push] 26 [revert] 12 checkout-index 6 [prune] 2 [verify-tag] -# 137 [commit] 46 pack-objects 24 [mv] 11 date 6 [gpg-interface] 2 [update-server-info] -# 114 [branch] 41 [help] 23 repack 11 column 6 [check-attr] 2 [run-command] -# 111 apply 39 init-db 21 [rm] 10 urlmatch 5 [write-tree] 2 [rerere] -# 101 notes 36 [add] 21 [common-cmds] 10 shortlog 5 [sha1_name] 2 [read-cache] -# 100 [wt-status] 35 [reset] 19 [show-branch] 10 merge-file 5 [rev-parse] 2 [obstack] -# 97 merge 35 archive 19 read-tree 10 merge-base 4 [wrapper] 2 [advice] -# 78 [checkout] 34 [config] 19 bundle 10 ls-tree 4 [prune-packed] 1 [unpack-trees] -# 77 [log] 32 clean 16 [parse-options] 10 hash-object 4 [notes-utils] 1 [unpack-objects] -# 69 [clone] 30 git-am 15 [fsck] 10 for-each-ref 4 [mktree] 1 [progress] -# 68 index-pack 30 describe 14 show-ref 10 cat-file 4 [check-mailmap] 1 [precompose_utf8] +# 144 [remote] 47 [push] 26 [revert] 12 [checkout-index] 6 [prune] 2 [verify-tag] +# 137 [commit] 46 [pack-objects] 24 [mv] 11 [date] 6 [gpg-interface] 2 [update-server-info] +# 114 [branch] 41 [help] 23 [repack] 11 [column] 6 [check-attr] 2 [run-command] +# 111 [apply] 39 [init-db] 21 [rm] 10 [urlmatch] 5 [write-tree] 2 [rerere] +# 101 [notes] 36 [add] 21 [common-cmds] 10 [shortlog] 5 [sha1_name] 2 [read-cache] +# 100 [wt-status] 35 [reset] 19 [show-branch] 10 [merge-file] 5 [rev-parse] 2 [obstack] +# 97 [merge] 35 [archive] 19 [read-tree] 10 [merge-base] 4 [wrapper] 2 [advice] +# 78 [checkout] 34 [config] 19 [bundle] 10 [ls-tree] 4 [prune-packed] 1 [unpack-trees] +# 77 [log] 32 [clean] 16 [parse-options] 10 [hash-object] 4 [notes-utils] 1 [unpack-objects] +# 69 [clone] 30 [git-am] 15 [fsck] 10 [for-each-ref] 4 [mktree] 1 [progress] +# 68 [index-pack] 30 [describe] 14 [show-ref] 10 [cat-file] 4 [check-mailmap] 1 [precompose_utf8] # 68 [fetch] 29 [git-stash] 14 [gc] 9 [update-ref] 3 [verify-pack] 1 [object] -# 64 tag 29 git-bisect 14 fast-export 9 [submodule] 3 [reflog] 1 [git] -# 64 [grep] 28 update-index 13 [diff] 8 [replace] 3 [pack-refs] 1 [diffcore-rename] -# 56 sequencer 28 [blame] 13 check-ignore 8 [git-pull] 3 [count-objects] 1 [diffcore-order] -# 55 merge-recursive 27 ls-files 12 pathspec 8 [fmt-merge-msg] 3 [connected] 1 [attr] -# 54 git-submodule 27 [git-rebase] 12 name-rev 7 [symbolic-ref] 3 [bisect--helper] +# 64 [tag] 29 [git-bisect] 14 [fast-export] 9 [submodule] 3 [reflog] 1 [git] +# 64 [grep] 28 [update-index] 13 [diff] 8 [replace] 3 [pack-refs] 1 [diffcore-rename] +# 56 [sequencer] 28 [blame] 13 [check-ignore] 8 [git-pull] 3 [count-objects] 1 [diffcore-order] +# 55 [merge-recursive] 27 [ls-files] 12 [pathspec] 8 [fmt-merge-msg] 3 [connected] 1 [attr] +# 54 [git-submodule] 27 [git-rebase] 12 [name-rev] 7 [symbolic-ref] 3 [bisect--helper] # msgid "" msgstr "" "Project-Id-Version: git master\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2014-04-19 12:50+0800\n" -"PO-Revision-Date: 2014-05-11 17:06+0300\n" +"POT-Creation-Date: 2014-08-04 14:48+0800\n" +"PO-Revision-Date: 2014-08-03 13:01+0300\n" "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n" "Language-Team: Bulgarian <dict@fsa-bg.org>\n" "Language: bg\n" @@ -122,59 +144,60 @@ msgstr "" msgid "hint: %.*s\n" msgstr "ПодÑказка: %.*s\n" -#: advice.c:85 +# TRANSFER +#: advice.c:88 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'." +"Fix them up in the work tree, and then use 'git add/rm <file>'\n" +"as appropriate to mark resolution and make a commit, or use\n" +"'git commit -a'." msgstr "" -"Редактирайте ги в работното дърво,\n" -"и тогава ползвайте „git add/rm <file>“,\n" -"за да отбележите коригирането им и ги\n" -"подадете или проÑто ползвайте „git commit -a“." +"Редактирайте ги в работното дърво, и тогава ползвайте „git add/rm ФÐЙЛ“\n" +"за да отбележите коригирането им и ги подадете или проÑто ползвайте:\n" +"„git commit -a“" #: archive.c:10 msgid "git archive [options] <tree-ish> [<path>...]" -msgstr "" +msgstr "git archive [ОПЦИЯ…] УКÐЗÐТЕЛ_КЪМ_ДЪРВО [ПЪТ…]" #: archive.c:11 msgid "git archive --list" -msgstr "" +msgstr "git archive --list" #: archive.c:12 msgid "" "git archive --remote <repo> [--exec <cmd>] [options] <tree-ish> [<path>...]" msgstr "" +"git archive --remote ХРÐÐИЛИЩЕ [--exec КОМÐÐДÐ] [ОПЦИЯ…] УКÐЗÐТЕЛ_КЪМ_ДЪРВО " +"[ПЪТ…]" #: archive.c:13 msgid "git archive --remote <repo> [--exec <cmd>] --list" -msgstr "" +msgstr "git archive --remote ХРÐÐИЛИЩЕ [--exec КОМÐÐДÐ] --list" -#: archive.c:243 builtin/add.c:136 builtin/add.c:428 builtin/rm.c:328 +#: archive.c:243 builtin/add.c:136 builtin/add.c:427 builtin/rm.c:328 #, c-format msgid "pathspec '%s' did not match any files" msgstr "пътÑÑ‚ „%s“ не Ñъвпада Ñ Ð½Ð¸ÐºÐ¾Ð¹ файл" #: archive.c:328 msgid "fmt" -msgstr "" +msgstr "ФОРМÐТ" #: archive.c:328 msgid "archive format" -msgstr "" +msgstr "ФОРМÐТ на архива" -#: archive.c:329 builtin/log.c:1193 +#: archive.c:329 builtin/log.c:1201 msgid "prefix" msgstr "префикÑ" #: archive.c:330 msgid "prepend prefix to each pathname in the archive" -msgstr "" +msgstr "добавÑне на този Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ ÐºÑŠÐ¼ вÑеки път в архива" -#: archive.c:331 builtin/archive.c:88 builtin/blame.c:2258 -#: builtin/blame.c:2259 builtin/config.c:57 builtin/fast-export.c:680 -#: builtin/fast-export.c:682 builtin/grep.c:714 builtin/hash-object.c:77 +#: archive.c:331 builtin/archive.c:88 builtin/blame.c:2517 +#: builtin/blame.c:2518 builtin/config.c:57 builtin/fast-export.c:709 +#: builtin/fast-export.c:711 builtin/grep.c:712 builtin/hash-object.c:77 #: builtin/ls-files.c:489 builtin/ls-files.c:492 builtin/notes.c:412 #: builtin/notes.c:569 builtin/read-tree.c:108 parse-options.h:151 msgid "file" @@ -182,31 +205,31 @@ msgstr "файл" #: archive.c:332 builtin/archive.c:89 msgid "write the archive to this file" -msgstr "" +msgstr "запазване на архива в този файл" #: archive.c:334 msgid "read .gitattributes in working directory" -msgstr "" +msgstr "изчитане на „.gitattributes“ в работната директориÑ" #: archive.c:335 msgid "report archived files on stderr" -msgstr "" +msgstr "извеждане на архивираните файлове на Ñтандартната грешка" #: archive.c:336 msgid "store only" -msgstr "" +msgstr "Ñамо Ñъхранение без компреÑиране" #: archive.c:337 msgid "compress faster" -msgstr "" +msgstr "бързо компреÑиране" #: archive.c:345 msgid "compress better" -msgstr "" +msgstr "добро компреÑиране" #: archive.c:348 msgid "list supported archive formats" -msgstr "" +msgstr "извеждане на ÑпиÑъка Ñ Ð¿Ð¾Ð´Ð´ÑŠÑ€Ð¶Ð°Ð½Ð¸Ñ‚Ðµ формати" #: archive.c:350 builtin/archive.c:90 builtin/clone.c:84 msgid "repo" @@ -214,15 +237,15 @@ msgstr "хранилище" #: archive.c:351 builtin/archive.c:91 msgid "retrieve the archive from remote repository <repo>" -msgstr "" +msgstr "изтеглÑне на архива от отдалеченото ХРÐÐИЛИЩЕ" #: archive.c:352 builtin/archive.c:92 builtin/notes.c:491 msgid "command" -msgstr "" +msgstr "команда" #: archive.c:353 builtin/archive.c:93 msgid "path to the remote git-upload-archive command" -msgstr "" +msgstr "път към отдалечената команда „git-upload-archive“" #: attr.c:259 msgid "" @@ -355,24 +378,24 @@ msgstr "УказателÑÑ‚ не може да бъде запиÑан" #: bundle.c:33 #, c-format msgid "'%s' does not look like a v2 bundle file" -msgstr "Файлът „%s“ не изглежда да е архив на git верÑÐ¸Ñ 2" +msgstr "Файлът „%s“ не изглежда да е пратка на git верÑÐ¸Ñ 2" #: bundle.c:60 #, c-format msgid "unrecognized header: %s%s (%d)" -msgstr "" +msgstr "непозната заглавна чаÑÑ‚: %s%s (%d)" -#: bundle.c:86 builtin/commit.c:706 +#: bundle.c:86 builtin/commit.c:755 #, c-format msgid "could not open '%s'" msgstr "„%s“ не може да Ñе отвори" #: bundle.c:138 msgid "Repository lacks these prerequisite commits:" -msgstr "" +msgstr "Ð’ хранилището липÑват Ñледните необходими подаваниÑ:" -#: bundle.c:162 sequencer.c:669 sequencer.c:1123 builtin/log.c:332 -#: builtin/log.c:821 builtin/log.c:1418 builtin/log.c:1644 builtin/merge.c:357 +#: bundle.c:162 sequencer.c:630 sequencer.c:1085 builtin/log.c:330 +#: builtin/log.c:821 builtin/log.c:1428 builtin/log.c:1665 builtin/merge.c:357 #: builtin/shortlog.c:158 msgid "revision walk setup failed" msgstr "неуÑпешно наÑтройване на обхождането на верÑиите" @@ -381,61 +404,65 @@ msgstr "неуÑпешно наÑтройване на обхождането н #, c-format msgid "The bundle contains this ref:" msgid_plural "The bundle contains these %d refs:" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Пратката Ñъдържа ÑÐ»ÐµÐ´Ð½Ð¸Ñ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»:" +msgstr[1] "Пратката Ñъдържа Ñледните %d указатели:" #: bundle.c:191 msgid "The bundle records a complete history." -msgstr "" +msgstr "Пратката Ñъдържа пълна иÑториÑ." #: bundle.c:193 #, c-format msgid "The bundle requires this ref:" msgid_plural "The bundle requires these %d refs:" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Пратката изиÑква ÑÐ»ÐµÐ´Ð½Ð¸Ñ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»:" +msgstr[1] "Пратката изиÑква Ñледните %d указатели:" -#: bundle.c:293 +# FIXME better message +#: bundle.c:289 msgid "rev-list died" -msgstr "" +msgstr "Командата „git rev-list“ не завърши уÑпешно" -#: bundle.c:299 builtin/log.c:1329 builtin/shortlog.c:261 +#: bundle.c:295 builtin/log.c:1339 builtin/shortlog.c:261 #, c-format msgid "unrecognized argument: %s" msgstr "непознат аргумент: %s" -#: bundle.c:334 +#: bundle.c:330 #, c-format msgid "ref '%s' is excluded by the rev-list options" msgstr "" +"указателÑÑ‚ „%s“ не е бил включен поради опциите зададени на „git rev-list“" -#: bundle.c:379 +#: bundle.c:375 msgid "Refusing to create empty bundle." -msgstr "" +msgstr "Създаването на празна пратка е невъзможно." -#: bundle.c:395 +#: bundle.c:390 msgid "Could not spawn pack-objects" -msgstr "" +msgstr "Командата „git pack-objects“ не може да бъде Ñтартирана" -#: bundle.c:413 +# FIXME better message +#: bundle.c:408 msgid "pack-objects died" -msgstr "" +msgstr "Командата „git pack-objects“ не завърши уÑпешно" -#: bundle.c:416 +#: bundle.c:411 #, c-format msgid "cannot create '%s'" -msgstr "" +msgstr "Файлът „%s“ не може да бъде Ñъздаден" -#: bundle.c:438 +# FIXME better message +#: bundle.c:433 msgid "index-pack died" -msgstr "" +msgstr "Командата „git index-pack“ не завърши уÑпешно" -#: commit.c:54 +#: commit.c:40 #, c-format msgid "could not parse %s" msgstr "„%s“ не може да Ñе анализира" -#: commit.c:56 +#: commit.c:42 #, c-format msgid "%s %s is not a commit!" msgstr "%s %s не е подаване!" @@ -451,7 +478,7 @@ msgstr "Командата „git rev-list“ не може да бъде изп #: connected.c:90 #, c-format msgid "failed write to rev-list: %s" -msgstr "неуÑпешен Ð·Ð°Ð¿Ð¸Ñ Ð² ÑпиÑъка Ñ Ð²ÐµÑ€Ñиите: %s" +msgstr "неуÑпешен Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° ÑпиÑъка Ñ Ð²ÐµÑ€Ñиите: %s" #: connected.c:98 #, c-format @@ -460,99 +487,99 @@ msgstr "ÑтандартниÑÑ‚ вход на ÑпиÑъка Ñ Ð²ÐµÑ€ÑиитР#: date.c:95 msgid "in the future" -msgstr "" +msgstr "в бъдещето" #: date.c:101 #, c-format msgid "%lu second ago" msgid_plural "%lu seconds ago" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "преди %lu Ñекунда" +msgstr[1] "преди %lu Ñекунди" #: date.c:108 #, c-format msgid "%lu minute ago" msgid_plural "%lu minutes ago" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "преди %lu минута" +msgstr[1] "преди %lu минути" #: date.c:115 #, c-format msgid "%lu hour ago" msgid_plural "%lu hours ago" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "преди %lu чаÑ" +msgstr[1] "преди %lu чаÑа" #: date.c:122 #, c-format msgid "%lu day ago" msgid_plural "%lu days ago" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "преди %lu ден" +msgstr[1] "преди %lu дена" #: date.c:128 #, c-format msgid "%lu week ago" msgid_plural "%lu weeks ago" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "преди %lu Ñедмица" +msgstr[1] "преди %lu Ñедмици" #: date.c:135 #, c-format msgid "%lu month ago" msgid_plural "%lu months ago" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "преди %lu меÑец" +msgstr[1] "преди %lu меÑеца" #: date.c:146 #, c-format msgid "%lu year" msgid_plural "%lu years" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%lu година" +msgstr[1] "%lu години" #. 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] "преди %s и %lu меÑец" +msgstr[1] "преди %s и %lu меÑеца" #: date.c:154 date.c:159 #, c-format msgid "%lu year ago" msgid_plural "%lu years ago" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "преди %lu година" +msgstr[1] "преди %lu години" #: diffcore-order.c:24 #, c-format msgid "failed to read orderfile '%s'" msgstr "файлът Ñ Ð¿Ð¾Ð´Ñ€ÐµÐ´Ð±Ð°Ñ‚Ð° на ÑъответÑтвиÑта „%s“ не може да бъде прочетен" -#: diffcore-rename.c:517 +#: diffcore-rename.c:514 msgid "Performing inexact rename detection" msgstr "ТърÑене на Ð¿Ñ€ÐµÐ¸Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð¸Ñ Ð½Ð° обекти Ñъчетани Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð¸" -#: diff.c:113 +#: diff.c:114 #, c-format msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr "" " ÐеуÑпешно разпознаване на „%s“ като процент-праг за ÑтатиÑтиката по " "директории\n" -#: diff.c:118 +#: diff.c:119 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr " Ðепознат параметър „%s“ за ÑтатиÑтиката по директории'\n" -#: diff.c:213 +#: diff.c:214 #, c-format msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "Ðепозната ÑтойноÑÑ‚ „%s“ за наÑтройката „diff.submodule“" -#: diff.c:263 +#: diff.c:267 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" @@ -561,7 +588,17 @@ msgstr "" "Грешки в наÑтройката „diff.dirstat“:\n" "%s" -#: diff.c:3495 +#: diff.c:2934 +#, c-format +msgid "external diff died, stopping at %s" +msgstr "" +"външната програма за разлики завърши неуÑпешно. Спиране на работата при „%s“" + +#: diff.c:3329 +msgid "--follow requires exactly one pathspec" +msgstr "ОпциÑта „--follow“ изиÑква точно един път" + +#: diff.c:3492 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -570,58 +607,58 @@ msgstr "" "Ðеразпознат параметър към опциÑта „--dirstat/-X“:\n" "%s" -#: diff.c:3509 +#: diff.c:3506 #, c-format msgid "Failed to parse --submodule option parameter: '%s'" msgstr "Ðеразпознат параметър към опциÑта „--submodule“: „%s“" -#: gpg-interface.c:59 gpg-interface.c:131 +#: gpg-interface.c:73 gpg-interface.c:145 msgid "could not run gpg." msgstr "Програмата „gpg“ не може да бъде Ñтартирана." -#: gpg-interface.c:71 +#: gpg-interface.c:85 msgid "gpg did not accept the data" msgstr "Програмата „gpg“ не прие подадените данни." -#: gpg-interface.c:82 +#: gpg-interface.c:96 msgid "gpg failed to sign the data" msgstr "Програмата „gpg“ не подпиÑа данните." -#: gpg-interface.c:115 +#: gpg-interface.c:129 #, c-format msgid "could not create temporary file '%s': %s" msgstr "Програмата „gpg“ не уÑÐ¿Ñ Ð´Ð° Ñъздаде Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» „%s“: %s" -#: gpg-interface.c:118 +#: gpg-interface.c:132 #, c-format msgid "failed writing detached signature to '%s': %s" msgstr "Програмата „gpg“ не уÑÐ¿Ñ Ð´Ð° запише ÑамоÑтоÑÑ‚ÐµÐ»Ð½Ð¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñ ÐºÑŠÐ¼ „%s“: %s" -#: grep.c:1698 +#: grep.c:1703 #, c-format msgid "'%s': unable to read %s" msgstr "„%s“: файлът Ñочен от „%s“ не може да бъде прочетен" -#: grep.c:1715 +#: grep.c:1720 #, c-format msgid "'%s': %s" msgstr "„%s“: „%s“" -#: grep.c:1726 +#: grep.c:1731 #, c-format msgid "'%s': short read %s" msgstr "„%s“: изчитането на „%s“ върна по-малко байтове от заÑвените" -#: help.c:209 +#: help.c:207 #, c-format msgid "available git commands in '%s'" msgstr "налични команди на git от „%s“" -#: help.c:216 +#: help.c:214 msgid "git commands available from elsewhere on your $PATH" -msgstr "команди на git от други директории от Ð¿ÑŠÑ‚Ñ â€ž$PATH“" +msgstr "команди на git от други директории от „$PATH“" -#: help.c:232 +#: help.c:230 msgid "The most commonly used git commands are:" msgstr "Ðай-чеÑто употребÑваните команди на git Ñа:" @@ -660,7 +697,7 @@ msgstr "Ñлед %0.1f Ñекунди…" msgid "git: '%s' is not a git command. See 'git --help'." msgstr "git: „%s“ не е команда на git. Вижте изхода от „git --help“." -#: help.c:384 help.c:443 +#: help.c:384 help.c:444 msgid "" "\n" "Did you mean this?" @@ -674,16 +711,16 @@ msgstr[1] "" "\n" "Команди Ñ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð¾ име Ñа:" -#: help.c:439 +#: help.c:440 #, c-format msgid "%s: %s - %s" msgstr "%s: %s — %s" -#: merge.c:56 +#: merge.c:40 msgid "failed to read the cache" -msgstr "" +msgstr "кешът не може да бъде прочетен" -#: merge.c:110 builtin/checkout.c:357 builtin/checkout.c:558 +#: merge.c:93 builtin/checkout.c:356 builtin/checkout.c:556 #: builtin/clone.c:661 msgid "unable to write new index file" msgstr "неуÑпешно запиÑване на Ð½Ð¾Ð²Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑ" @@ -691,258 +728,274 @@ msgstr "неуÑпешно запиÑване на Ð½Ð¾Ð²Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑ" #: merge-recursive.c:190 #, c-format msgid "(bad commit)\n" -msgstr "" +msgstr "(лошо подаване)\n" -#: merge-recursive.c:208 +#: merge-recursive.c:210 #, c-format msgid "addinfo_cache failed for path '%s'" -msgstr "" +msgstr "неуÑпешно изпълнение на „addinfo_cache“ за Ð¿ÑŠÑ‚Ñ â€ž%s“" #: merge-recursive.c:271 msgid "error building trees" -msgstr "" +msgstr "грешка при изграждане на дърветата" -#: merge-recursive.c:675 +#: merge-recursive.c:692 #, c-format msgid "failed to create path '%s'%s" -msgstr "" +msgstr "грешка при Ñъздаването на Ð¿ÑŠÑ‚Ñ â€ž%s“%s" -#: merge-recursive.c:686 +#: merge-recursive.c:703 #, c-format msgid "Removing %s to make room for subdirectory\n" -msgstr "" +msgstr "Изтриване на „%s“, за да Ñе оÑвободи мÑÑто за поддиректориÑ\n" -#: merge-recursive.c:700 merge-recursive.c:721 +# FIXME better message +#: merge-recursive.c:717 merge-recursive.c:738 msgid ": perhaps a D/F conflict?" -msgstr "" +msgstr ": възможно е да има конфликт директориÑ/файл." -#: merge-recursive.c:711 +#: merge-recursive.c:728 #, c-format msgid "refusing to lose untracked file at '%s'" msgstr "" +"преуÑтановÑване на дейÑтвието, за да не Ñе изтрие неÑледениÑÑ‚ файл „%s“" -#: merge-recursive.c:751 +#: merge-recursive.c:768 #, c-format msgid "cannot read object %s '%s'" -msgstr "" +msgstr "обектът „%s“ (%s) не може да бъде прочетен" -#: merge-recursive.c:753 +#: merge-recursive.c:770 #, c-format msgid "blob expected for %s '%s'" -msgstr "" +msgstr "обектът „%s“ (%s) Ñе очакваше да е BLOB, а не е" -#: merge-recursive.c:776 builtin/clone.c:317 +#: merge-recursive.c:793 builtin/clone.c:317 #, c-format msgid "failed to open '%s'" msgstr "директориÑта „%s“ не може да бъде отворена" -#: merge-recursive.c:784 +#: merge-recursive.c:801 #, c-format msgid "failed to symlink '%s'" -msgstr "" +msgstr "неуÑпешно Ñъздаване на Ñимволната връзка „%s“" -#: merge-recursive.c:787 +#: merge-recursive.c:804 #, c-format msgid "do not know what to do with %06o %s '%s'" msgstr "" +"не е ÑÑно какво да Ñе прави Ñ Ð¾Ð±ÐµÐºÑ‚Ð° „%2$s“ (%3$s) Ñ Ð¿Ñ€Ð°Ð²Ð° за доÑтъп „%1$06o“" -#: merge-recursive.c:925 +#: merge-recursive.c:942 msgid "Failed to execute internal merge" -msgstr "" +msgstr "ÐеуÑпешно вътрешно Ñливане" -#: merge-recursive.c:929 +#: merge-recursive.c:946 #, c-format msgid "Unable to add %s to database" -msgstr "" +msgstr "„%s“ не може да Ñе добави в базата Ñ Ð´Ð°Ð½Ð½Ð¸" -#: merge-recursive.c:945 +#: merge-recursive.c:962 msgid "unsupported object type in the tree" -msgstr "" +msgstr "в дървото има неподдържан вид обект" -#: merge-recursive.c:1024 merge-recursive.c:1038 +#: merge-recursive.c:1037 merge-recursive.c:1051 #, 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:1030 merge-recursive.c:1043 +#: merge-recursive.c:1043 merge-recursive.c:1056 #, 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:1084 +#: merge-recursive.c:1097 msgid "rename" -msgstr "" +msgstr "преименуване" -#: merge-recursive.c:1084 +#: merge-recursive.c:1097 msgid "renamed" msgstr "преименуван" -#: merge-recursive.c:1140 +#: merge-recursive.c:1153 #, c-format msgid "%s is a directory in %s adding as %s instead" -msgstr "" +msgstr "„%s“ е Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð² „%s“, затова Ñе Ð´Ð¾Ð±Ð°Ð²Ñ ÐºÐ°Ñ‚Ð¾ „%s“" -#: merge-recursive.c:1162 +#: merge-recursive.c:1175 #, 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:1167 +#: merge-recursive.c:1180 msgid " (left unresolved)" -msgstr "" +msgstr " (некоригиран конфликт)" -#: merge-recursive.c:1221 +#: merge-recursive.c:1234 #, 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:1251 +#: merge-recursive.c:1264 #, c-format msgid "Renaming %s to %s and %s to %s instead" -msgstr "" +msgstr "Преименуване на „%s“ на „%s“, а „%s“ на „%s“" -#: merge-recursive.c:1450 +#: merge-recursive.c:1463 #, c-format msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s" msgstr "" +"КОÐФЛИКТ (преименуване/добавÑне): „%s“ е преименуван на „%s“ в клон „%s“, а " +"„%s“ е добавен в „%s“" -#: merge-recursive.c:1460 +#: merge-recursive.c:1473 #, c-format msgid "Adding merged %s" -msgstr "" +msgstr "ДобавÑне на ÑÐ»ÐµÑ‚Ð¸Ñ â€ž%s“" -#: merge-recursive.c:1465 merge-recursive.c:1663 +#: merge-recursive.c:1478 merge-recursive.c:1676 #, c-format msgid "Adding as %s instead" -msgstr "" +msgstr "ДобавÑне като „%s“" -#: merge-recursive.c:1516 +#: merge-recursive.c:1529 #, c-format msgid "cannot read object %s" -msgstr "" +msgstr "обектът „%s“ не може да Ñе прочете" -#: merge-recursive.c:1519 +#: merge-recursive.c:1532 #, c-format msgid "object %s is not a blob" -msgstr "" +msgstr "обектът „%s“ не е BLOB" -#: merge-recursive.c:1567 +#: merge-recursive.c:1580 msgid "modify" -msgstr "" +msgstr "промÑна" -#: merge-recursive.c:1567 +#: merge-recursive.c:1580 msgid "modified" msgstr "променен" -#: merge-recursive.c:1577 +#: merge-recursive.c:1590 msgid "content" -msgstr "" +msgstr "Ñъдържание" -#: merge-recursive.c:1584 +#: merge-recursive.c:1597 msgid "add/add" -msgstr "" +msgstr "добавÑне/добавÑне" -#: merge-recursive.c:1618 +#: merge-recursive.c:1631 #, c-format msgid "Skipped %s (merged same as existing)" -msgstr "" +msgstr "ПреÑкачане на „%s“ (ÑлетиÑÑ‚ резултат е идентичен ÑÑŠÑ ÑегашниÑ)" -#: merge-recursive.c:1632 +#: merge-recursive.c:1645 #, c-format msgid "Auto-merging %s" -msgstr "" +msgstr "Ðвтоматично Ñливане на „%s“" -#: merge-recursive.c:1636 git-submodule.sh:1149 +#: merge-recursive.c:1649 git-submodule.sh:1150 msgid "submodule" msgstr "ПОДМОДУЛ" -#: merge-recursive.c:1637 +#: merge-recursive.c:1650 #, c-format msgid "CONFLICT (%s): Merge conflict in %s" -msgstr "" +msgstr "КОÐФЛИКТ (%s): Конфликт при Ñливане на „%s“" -#: merge-recursive.c:1727 +#: merge-recursive.c:1740 #, c-format msgid "Removing %s" msgstr "Изтриване на „%s“" -#: merge-recursive.c:1752 +#: merge-recursive.c:1765 msgid "file/directory" -msgstr "" +msgstr "файл/директориÑ" -#: merge-recursive.c:1758 +#: merge-recursive.c:1771 msgid "directory/file" -msgstr "" +msgstr "директориÑ/файл" -#: merge-recursive.c:1763 +#: merge-recursive.c:1776 #, 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:1773 +#: merge-recursive.c:1786 #, c-format msgid "Adding %s" -msgstr "" +msgstr "ДобавÑне на „%s“" -#: merge-recursive.c:1790 +#: merge-recursive.c:1803 msgid "Fatal merge failure, shouldn't happen." -msgstr "" +msgstr "Фатална грешка при Ñливане, а такава не Ñ‚Ñ€Ñбва да възниква!" -#: merge-recursive.c:1809 +#: merge-recursive.c:1822 msgid "Already up-to-date!" -msgstr "" +msgstr "Вече е обновено!" -#: merge-recursive.c:1818 +#: merge-recursive.c:1831 #, c-format msgid "merging of trees %s and %s failed" -msgstr "" +msgstr "неуÑпешно Ñливане на дърветата „%s“ и „%s“" -#: merge-recursive.c:1848 +# FIXME message +#: merge-recursive.c:1861 #, c-format msgid "Unprocessed path??? %s" -msgstr "" +msgstr "ПътÑÑ‚ „%s“ не е обработен, това е грешка в Git." -#: merge-recursive.c:1893 +#: merge-recursive.c:1906 msgid "Merging:" -msgstr "" +msgstr "Сливане:" -#: merge-recursive.c:1906 +#: merge-recursive.c:1919 #, c-format msgid "found %u common ancestor:" msgid_plural "found %u common ancestors:" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "открит е %u общ предшеÑтвеник:" +msgstr[1] "открити Ñа %u общи предшеÑтвеници:" -#: merge-recursive.c:1943 +#: merge-recursive.c:1956 msgid "merge returned no commit" -msgstr "" +msgstr "Ñливането не върна подаване" -#: merge-recursive.c:2000 +#: merge-recursive.c:2013 #, c-format msgid "Could not parse object '%s'" -msgstr "" +msgstr "ÐеуÑпешен анализ на обекта „%s“" -#: merge-recursive.c:2012 builtin/merge.c:668 +#: merge-recursive.c:2024 builtin/merge.c:666 msgid "Unable to write index." -msgstr "" +msgstr "ИндекÑÑŠÑ‚ не може да бъде прочетен" -#: notes-utils.c:40 +#: notes-utils.c:41 msgid "Cannot commit uninitialized/unreferenced notes tree" msgstr "" "Ðеинициализирано или нереферирано дърво за бележки не може да бъде подадено" -#: notes-utils.c:81 +#: notes-utils.c:83 #, c-format msgid "Bad notes.rewriteMode value: '%s'" -msgstr "Лоша ÑтойноÑÑ‚ за „notes.rewriteMode“: „%s“" +msgstr "Ðеправилна ÑтойноÑÑ‚ за „notes.rewriteMode“: „%s“" -#: notes-utils.c:91 +#: notes-utils.c:93 #, c-format msgid "Refusing to rewrite notes in %s (outside of refs/notes/)" msgstr "" @@ -950,106 +1003,110 @@ msgstr "" #. TRANSLATORS: The first %s is the name of the #. environment variable, the second %s is its value -#: notes-utils.c:118 +#: notes-utils.c:120 #, c-format msgid "Bad %s value: '%s'" msgstr "Зададена е лоша ÑтойноÑÑ‚ на променливата „%s“: „%s“" -#: object.c:229 +#: object.c:234 #, c-format msgid "unable to parse object: %s" msgstr "обектът „%s“ не може да бъде анализиран" -#: parse-options.c:532 +#: parse-options.c:534 msgid "..." msgstr "…" -#: parse-options.c:550 +#: parse-options.c:552 #, c-format msgid "usage: %s" msgstr "употреба: %s" #. TRANSLATORS: the colon here should align with the #. one in "usage: %s" translation -#: parse-options.c:554 +#: parse-options.c:556 #, c-format msgid " or: %s" msgstr " или: %s" -#: parse-options.c:557 +#: parse-options.c:559 #, c-format msgid " %s" msgstr " %s" -#: parse-options.c:591 +#: parse-options.c:593 msgid "-NUM" msgstr "-ЧИСЛО" #: pathspec.c:133 msgid "global 'glob' and 'noglob' pathspec settings are incompatible" -msgstr "" +msgstr "глобалните наÑтройки за пътища „glob“ и „noglob“ Ñа неÑъвмеÑтими" #: pathspec.c:143 msgid "" "global 'literal' pathspec setting is incompatible with all other global " "pathspec settings" msgstr "" +"глобалната наÑтройка за доÑловни пътища „literal“ е неÑъвмеÑтима Ñ Ð²Ñички " +"други глобални наÑтройки за пътища" #: pathspec.c:177 msgid "invalid parameter for pathspec magic 'prefix'" -msgstr "" +msgstr "неправилен параметър за опциÑта за магичеÑки пътища „prefix“" #: pathspec.c:183 #, c-format msgid "Invalid pathspec magic '%.*s' in '%s'" -msgstr "" +msgstr "Ðеправилна ÑтойноÑÑ‚ за опциÑта за магичеÑки пътища „%.*s“ в „%s“" #: pathspec.c:187 #, c-format msgid "Missing ')' at the end of pathspec magic in '%s'" -msgstr "" +msgstr "Знакът „)“ липÑва в опциÑта за магичеÑки пътища в „%s“" #: pathspec.c:205 #, c-format msgid "Unimplemented pathspec magic '%c' in '%s'" -msgstr "" +msgstr "МагичеÑките пътища „%c“ Ñа без Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð·Ð° „%s“" #: pathspec.c:230 #, c-format msgid "%s: 'literal' and 'glob' are incompatible" -msgstr "" +msgstr "%s: опциите „literal“ и „glob“ Ñа неÑъвмеÑтими" #: pathspec.c:241 #, c-format msgid "%s: '%s' is outside repository" -msgstr "" +msgstr "%s: „%s“ е извън хранилището" #: pathspec.c:291 #, c-format msgid "Pathspec '%s' is in submodule '%.*s'" -msgstr "" +msgstr "ПътÑÑ‚ „%s“ е в подмодула „%.*s“" #: pathspec.c:353 #, c-format msgid "%s: pathspec magic not supported by this command: %s" -msgstr "" +msgstr "%s: магичеÑките пътища не Ñе поддържат от командата „%s“" -#: pathspec.c:433 +#: pathspec.c:432 #, c-format msgid "pathspec '%s' is beyond a symbolic link" -msgstr "" +msgstr "пътÑÑ‚ „%s“ е Ñлед Ñимволна връзка" -#: pathspec.c:442 +#: pathspec.c:441 msgid "" "There is nothing to exclude from by :(exclude) patterns.\n" "Perhaps you forgot to add either ':/' or '.' ?" msgstr "" +"Ðищо не Ñе изключва от шаблоните за изключване.\n" +"Това чеÑто Ñе Ñлучва, ако Ñте забравили да добавите „:/“ или „.“." -#: progress.c:224 +#: progress.c:225 msgid "done" msgstr "дейÑтвието завърши" -#: read-cache.c:1238 +#: read-cache.c:1260 #, c-format msgid "" "index.version set, but the value is invalid.\n" @@ -1058,7 +1115,7 @@ msgstr "" "Зададена е неправилна ÑтойноÑÑ‚ на наÑтройката „index.version“.\n" "Ще Ñе ползва верÑÐ¸Ñ %i" -#: read-cache.c:1248 +#: read-cache.c:1270 #, c-format msgid "" "GIT_INDEX_VERSION set, but the value is invalid.\n" @@ -1068,51 +1125,51 @@ msgstr "" "„GIT_INDEX_VERSION“.\n" "Ще Ñе ползва верÑÐ¸Ñ %i" -#: remote.c:758 +#: remote.c:753 #, c-format msgid "Cannot fetch both %s and %s to %s" msgstr "Ðевъзможно е да Ñе доÑтавÑÑ‚ едновременно и „%s“, и „%s“ към „%s“" -#: remote.c:762 +#: remote.c:757 #, c-format msgid "%s usually tracks %s, not %s" msgstr "„%s“ обикновено Ñледи „%s“, а не „%s“" -#: remote.c:766 +#: remote.c:761 #, c-format msgid "%s tracks both %s and %s" msgstr "„%s“ Ñледи както „%s“, така и „%s“" -#: remote.c:774 +#: remote.c:769 msgid "Internal error" msgstr "Вътрешна грешка" -#: remote.c:1948 +#: remote.c:1943 #, c-format msgid "Your branch is based on '%s', but the upstream is gone.\n" msgstr "Този клон Ñледи „%s“, но ÑледениÑÑ‚ клон е изтрит.\n" -#: remote.c:1952 +#: remote.c:1947 msgid " (use \"git branch --unset-upstream\" to fixup)\n" msgstr " (за да коригирате това, използвайте „git branch --unset-upstream“)\n" -#: remote.c:1955 +#: remote.c:1950 #, c-format msgid "Your branch is up-to-date with '%s'.\n" -msgstr "Клонът е актуализиран както „%s“.\n" +msgstr "Клонът е актуализиран към „%s“.\n" -#: remote.c:1959 +#: remote.c:1954 #, c-format msgid "Your branch is ahead of '%s' by %d commit.\n" msgid_plural "Your branch is ahead of '%s' by %d commits.\n" msgstr[0] "Клонът ви е Ñ %2$d подаване пред „%1$s“.\n" msgstr[1] "Клонът ви е Ñ %2$d Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€ÐµÐ´ „%1$s“.\n" -#: remote.c:1965 +#: remote.c:1960 msgid " (use \"git push\" to publish your local commits)\n" msgstr " (публикувайте локалните Ñи промени чрез „git push“)\n" -#: remote.c:1968 +#: remote.c:1963 #, c-format msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n" msgid_plural "" @@ -1122,11 +1179,11 @@ msgstr[0] "" msgstr[1] "" "Клонът ви е Ñ %2$d Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ñлед „%1$s“ и може да бъде тривиално ÑлÑÑ‚.\n" -#: remote.c:1976 +#: remote.c:1971 msgid " (use \"git pull\" to update your local branch)\n" msgstr " (обновете Ð»Ð¾ÐºÐ°Ð»Ð½Ð¸Ñ Ñи клон чрез „git pull“)\n" -#: remote.c:1979 +#: remote.c:1974 #, c-format msgid "" "Your branch and '%s' have diverged,\n" @@ -1141,7 +1198,7 @@ msgstr[1] "" "ТекущиÑÑ‚ клон Ñе е отделил от „%s“,\n" "двата имат Ñъответно по %d и %d неÑъвпадащи подаваниÑ.\n" -#: remote.c:1989 +#: remote.c:1984 msgid " (use \"git pull\" to merge the remote branch into yours)\n" msgstr " (Ñлейте Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ ÐºÐ»Ð¾Ð½ в Ð»Ð¾ÐºÐ°Ð»Ð½Ð¸Ñ Ñ‡Ñ€ÐµÐ· „git pull“)\n" @@ -1154,247 +1211,266 @@ msgstr "неуÑпешно отварÑне на „/dev/null“" msgid "dup2(%d,%d) failed" msgstr "неуÑпешно изпълнение на dup2(%d,%d)" -#: sequencer.c:206 builtin/merge.c:786 builtin/merge.c:899 -#: builtin/merge.c:1009 builtin/merge.c:1019 +#: sequencer.c:171 builtin/merge.c:782 builtin/merge.c:893 +#: builtin/merge.c:1003 builtin/merge.c:1013 #, c-format msgid "Could not open '%s' for writing" -msgstr "" +msgstr "„%s“ не може да бъде отворен за запиÑ" -#: sequencer.c:208 builtin/merge.c:343 builtin/merge.c:789 -#: builtin/merge.c:1011 builtin/merge.c:1024 +#: sequencer.c:173 builtin/merge.c:343 builtin/merge.c:785 +#: builtin/merge.c:1005 builtin/merge.c:1018 #, c-format msgid "Could not write to '%s'" -msgstr "" +msgstr "„%s“ не може да бъде запиÑан" -#: sequencer.c:229 +# FIXME git add <path…> for consistence +#: sequencer.c:194 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:232 +#: sequencer.c:197 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:245 sequencer.c:879 sequencer.c:962 +# FIXME - must be the same as Could not write to '%s' above +#: sequencer.c:210 sequencer.c:841 sequencer.c:924 #, c-format msgid "Could not write to %s" -msgstr "" +msgstr "„%s“ не може да бъде запиÑан" -#: sequencer.c:248 +# FIXME wrap up as ffinishing the work on, in fact, full stop at end for consistency with below +#: sequencer.c:213 #, c-format msgid "Error wrapping up %s" -msgstr "" +msgstr "Обработката на „%s“ не завърши уÑпешно." -#: sequencer.c:263 +#: sequencer.c:228 msgid "Your local changes would be overwritten by cherry-pick." -msgstr "" +msgstr "Локалните ви промени ще бъдат презапиÑани при отбирането на подаваниÑ." -#: sequencer.c:265 +#: sequencer.c:230 msgid "Your local changes would be overwritten by revert." -msgstr "" +msgstr "Локалните ви промени ще бъдат презапиÑани при отмÑната на подаваниÑ." -#: sequencer.c:268 +#: sequencer.c:233 msgid "Commit your changes or stash them to proceed." -msgstr "" +msgstr "Подайте или Ñкатайте промените, за да продължите" + +#: sequencer.c:250 +msgid "Failed to lock HEAD during fast_forward_to" +msgstr "УказателÑÑ‚ „HEAD“ не може да бъде заключен при тривиално Ñливане" #. TRANSLATORS: %s will be "revert" or "cherry-pick" -#: sequencer.c:325 +#: sequencer.c:293 #, c-format msgid "%s: Unable to write new index file" msgstr "%s: новиÑÑ‚ Ð¸Ð½Ð´ÐµÐºÑ Ð½Ðµ може да бъде запазен" -#: sequencer.c:356 +#: sequencer.c:324 msgid "Could not resolve HEAD commit\n" -msgstr "" +msgstr "Подаването Ñочено от ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€žHEAD“ не може да бъде открито\n" -#: sequencer.c:378 +#: sequencer.c:344 msgid "Unable to update cache tree\n" -msgstr "" +msgstr "Дървото на кеша не може да бъде обновено\n" -#: sequencer.c:430 +#: sequencer.c:391 #, c-format msgid "Could not parse commit %s\n" -msgstr "" +msgstr "Подаването „%s“ не може да бъде анализирано\n" -#: sequencer.c:435 +#: sequencer.c:396 #, c-format msgid "Could not parse parent commit %s\n" -msgstr "" +msgstr "РодителÑкото подаване „%s“ не може да бъде анализирано\n" -#: sequencer.c:501 +#: sequencer.c:462 msgid "Your index file is unmerged." msgstr "ИндекÑÑŠÑ‚ не е ÑлÑÑ‚." -#: sequencer.c:520 +#: sequencer.c:481 #, c-format msgid "Commit %s is a merge but no -m option was given." -msgstr "" +msgstr "Подаването „%s“ е Ñливане, но не е дадена опциÑта „-m“" -#: sequencer.c:528 +#: sequencer.c:489 #, c-format msgid "Commit %s does not have parent %d" -msgstr "" +msgstr "Подаването „%s“ нÑма родител %d" -#: sequencer.c:532 +#: sequencer.c:493 #, c-format msgid "Mainline was specified but commit %s is not a merge." -msgstr "" +msgstr "Указано е базово подаване, но подаването „%s“ не е Ñливане." #. TRANSLATORS: The first %s will be "revert" or #. "cherry-pick", the second %s a SHA1 -#: sequencer.c:545 +#: sequencer.c:506 #, c-format msgid "%s: cannot parse parent commit %s" -msgstr "" +msgstr "%s: неразпозната ÑтойноÑÑ‚ за родителÑкото подаване „%s“" -#: sequencer.c:549 +#: sequencer.c:510 #, c-format msgid "Cannot get commit message for %s" -msgstr "" +msgstr "ÐеуÑпешно извличане на Ñъобщението за подаване на „%s“" -#: sequencer.c:635 +#: sequencer.c:596 #, c-format msgid "could not revert %s... %s" -msgstr "" +msgstr "подаването „%s“… не може да бъде отменено: „%s“" -#: sequencer.c:636 +#: sequencer.c:597 #, c-format msgid "could not apply %s... %s" -msgstr "" +msgstr "подаването „%s“… не може да бъде приложено: „%s“" -#: sequencer.c:672 +#: sequencer.c:633 msgid "empty commit set passed" -msgstr "" +msgstr "зададено е празно множеÑтво от подаваниÑ" -#: sequencer.c:680 +#: sequencer.c:641 #, c-format msgid "git %s: failed to read the index" -msgstr "" +msgstr "git %s: неуÑпешно изчитане на индекÑа" -#: sequencer.c:685 +#: sequencer.c:645 #, c-format msgid "git %s: failed to refresh the index" -msgstr "" +msgstr "git %s: неуÑпешно обновÑване на индекÑа" -#: sequencer.c:743 +#: sequencer.c:705 #, c-format msgid "Cannot %s during a %s" -msgstr "" +msgstr "По време на „%1$s“ не може да Ñе извърши „%2$s“" -#: sequencer.c:765 +#: sequencer.c:727 #, c-format msgid "Could not parse line %d." -msgstr "" +msgstr "%d-ÑÑ‚ ред не може да Ñе анализира." -#: sequencer.c:770 +#: sequencer.c:732 msgid "No commits parsed." -msgstr "" +msgstr "Ðикое от подаваниÑта не може да Ñе разпознае." -#: sequencer.c:783 +# FIXME Could not open %s. - full stop for consistence with next message +#: sequencer.c:745 #, c-format msgid "Could not open %s" -msgstr "" +msgstr "„%s“ не може да Ñе прочете." -#: sequencer.c:787 +#: sequencer.c:749 #, c-format msgid "Could not read %s." -msgstr "" +msgstr "„%s“ не може да Ñе отвори." -#: sequencer.c:794 +#: sequencer.c:756 #, c-format msgid "Unusable instruction sheet: %s" -msgstr "" +msgstr "Файлът Ñ Ð¾Ð¿Ð¸Ñание на предÑтоÑщите дейÑÑ‚Ð²Ð¸Ñ â€” „%s“ не може да Ñе ползва" -#: sequencer.c:824 +#: sequencer.c:786 #, c-format msgid "Invalid key: %s" -msgstr "" +msgstr "Ðеправилен ключ: „%s“" -#: sequencer.c:827 +#: sequencer.c:789 #, c-format msgid "Invalid value for %s: %s" -msgstr "" +msgstr "Ðеправилна ÑтойноÑÑ‚ за „%s“: „%s“" -#: sequencer.c:839 +#: sequencer.c:801 #, c-format msgid "Malformed options sheet: %s" -msgstr "" +msgstr "Ðеправилно Ñъдържание на файла Ñ Ð¾Ð¿Ñ†Ð¸Ð¸: „%s“" -#: sequencer.c:860 +#: sequencer.c:822 msgid "a cherry-pick or revert is already in progress" msgstr "" +"в момента вече Ñе извършва отбиране на Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ пребазиране на клона" -#: sequencer.c:861 +#: sequencer.c:823 msgid "try \"git cherry-pick (--continue | --quit | --abort)\"" -msgstr "" +msgstr "използвайте „git cherry-pick (--continue | --quit | --abort)“" -#: sequencer.c:865 +#: sequencer.c:827 #, c-format msgid "Could not create sequencer directory %s" -msgstr "" +msgstr "ДиректориÑта за ÑеквенÑора „%s“ не може да бъде Ñъздадена" -#: sequencer.c:881 sequencer.c:966 +#: sequencer.c:843 sequencer.c:928 #, c-format msgid "Error wrapping up %s." -msgstr "" +msgstr "Обработката на „%s“ не завърши уÑпешно." -#: sequencer.c:900 sequencer.c:1036 +#: sequencer.c:862 sequencer.c:998 msgid "no cherry-pick or revert in progress" msgstr "" +"в момента не Ñе извършва отбиране на Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ пребазиране на клона" -#: sequencer.c:902 +#: sequencer.c:864 msgid "cannot resolve HEAD" -msgstr "" +msgstr "Подаването Ñочено от ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€žHEAD“ не може да бъде открито" -#: sequencer.c:904 +#: sequencer.c:866 msgid "cannot abort from a branch yet to be born" msgstr "" +"дейÑтвието не може да бъде преуÑтановено, когато Ñте на клон, който тепърва " +"предÑтои да бъде Ñъздаден" -#: sequencer.c:926 builtin/apply.c:4061 +#: sequencer.c:888 builtin/apply.c:4062 #, c-format msgid "cannot open %s: %s" -msgstr "" +msgstr "файлът „%s“ не може да бъде отворен: %s" -#: sequencer.c:929 +#: sequencer.c:891 #, c-format msgid "cannot read %s: %s" -msgstr "" +msgstr "файлът „%s“ не може да бъде прочетен: %s" -#: sequencer.c:930 +#: sequencer.c:892 msgid "unexpected end of file" -msgstr "" +msgstr "неочакван край на файл" -#: sequencer.c:936 +#: sequencer.c:898 #, c-format msgid "stored pre-cherry-pick HEAD file '%s' is corrupt" msgstr "" +"запазениÑÑ‚ преди започването на отбирането файл за ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€žHEAD“ — „%s“ е " +"повреден" -#: sequencer.c:959 +#: sequencer.c:921 #, c-format msgid "Could not format %s." -msgstr "" +msgstr "Файлът „%s“ не може да Ñе форматира по подходÑÑ‰Ð¸Ñ Ð½Ð°Ñ‡Ð¸Ð½." -#: sequencer.c:1104 +#: sequencer.c:1066 #, c-format msgid "%s: can't cherry-pick a %s" -msgstr "" +msgstr "%s: не може да Ñе отбере „%s“" -#: sequencer.c:1107 +#: sequencer.c:1069 #, c-format msgid "%s: bad revision" -msgstr "" +msgstr "%s: неправилна верÑиÑ" -#: sequencer.c:1141 +#: sequencer.c:1103 msgid "Can't revert as initial commit" -msgstr "" +msgstr "Първоначалното подаване не може да бъде отменено" -#: sequencer.c:1142 +#: sequencer.c:1104 msgid "Can't cherry-pick into empty head" -msgstr "" +msgstr "При празен връх не могат да Ñе отбират подаваниÑ" #: sha1_name.c:439 msgid "" @@ -1408,34 +1484,33 @@ msgid "" "examine these refs and maybe delete them. Turn this message off by\n" "running \"git config advice.objectNameWarning false\"" msgstr "" -"При нормална работа git никога не Ñъздава указатели, които завършват Ñ 40\n" -"шеÑтнаÑетични знаци, защото те ще бъдат преÑкачани, когато указвате \n" -"шеÑтнайÑетични знаци. Една възможноÑÑ‚ е такива указатели да Ñа Ñъздадени\n" -"по погрешка. Ðапример:\n" +"При нормална работа Git никога не Ñъздава указатели, които завършват Ñ 40\n" +"шеÑтнадеÑетични знака, защото Ñтандартно те ще бъдат преÑкачани.\n" +"Възможно е такива указатели да Ñа Ñъздадени Ñлучайно. Ðапример:\n" "\n" " git checkout -b $BRANCH $(git rev-parse…)\n" "\n" "където ÑтойноÑтта на променливата на Ñредата BRANCH е празна, при което Ñе\n" "Ñъздава подобен указател. Прегледайте тези указатели и ги изтрийте. Можете " "да\n" -"Ñпрете това Ñъобщение като изпълнете „git config advice.objectNameWarning " -"false“" +"Ñпрете това Ñъобщение като изпълните командата:\n" +"„git config advice.objectNameWarning false“" -#: sha1_name.c:1072 +#: sha1_name.c:1060 msgid "HEAD does not point to a branch" msgstr "УказателÑÑ‚ „HEAD“ не Ñочи към клон" -#: sha1_name.c:1075 +#: sha1_name.c:1063 #, c-format msgid "No such branch: '%s'" msgstr "Ðе ÑъщеÑтвува клон на име „%s“" -#: sha1_name.c:1077 +#: sha1_name.c:1065 #, c-format msgid "No upstream configured for branch '%s'" msgstr "Ðе е зададен клон-източник за клона „%s“" -#: sha1_name.c:1081 +#: sha1_name.c:1069 #, c-format msgid "Upstream branch '%s' not stored as a remote-tracking branch" msgstr "Клонът-източник „%s“ не е Ñъхранен като ÑледÑщ клон" @@ -1463,67 +1538,67 @@ msgstr "ЗапиÑÑŠÑ‚ „%s“ във файла „.gitmodules“ не можР#: submodule.c:120 msgid "staging updated .gitmodules failed" -msgstr "неуÑпешно добавÑне в индекÑа на Ð¿Ñ€Ð¾Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð» „.gitmodules“" +msgstr "неуÑпешно добавÑне на Ð¿Ñ€Ð¾Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð» „.gitmodules“ в индекÑа" -#: submodule.c:1121 builtin/init-db.c:363 +#: submodule.c:1118 builtin/init-db.c:363 #, c-format msgid "Could not create git link %s" msgstr "Връзката в Git „%s“ не може да бъде Ñъздадена" -#: submodule.c:1132 +#: submodule.c:1129 #, c-format msgid "Could not set core.worktree in %s" -msgstr "Ð’ „%s“ не може да Ñе зададе наÑтройката „core.worktree“" +msgstr "ÐаÑтройката „core.worktree“ не може да Ñе зададе в „%s“" -#: unpack-trees.c:206 +#: unpack-trees.c:202 msgid "Checking out files" msgstr "ИзтеглÑне на файлове" #: urlmatch.c:120 msgid "invalid URL scheme name or missing '://' suffix" -msgstr "" +msgstr "неправилна Ñхема за Ð°Ð´Ñ€ÐµÑ Ð¸Ð»Ð¸ ÑуфикÑÑŠÑ‚ „://“ липÑва" #: urlmatch.c:144 urlmatch.c:297 urlmatch.c:356 #, c-format msgid "invalid %XX escape sequence" -msgstr "" +msgstr "неправилна екранираща поÑледователноÑÑ‚ „%XX“" #: urlmatch.c:172 msgid "missing host and scheme is not 'file:'" -msgstr "" +msgstr "не е указана машина, а Ñхемата не е „file:“" #: urlmatch.c:189 msgid "a 'file:' URL may not have a port number" -msgstr "" +msgstr "при Ñхема „file:“ не можете да указвате номер на порт" #: urlmatch.c:199 msgid "invalid characters in host name" -msgstr "" +msgstr "неправилни знаци в името на машина" #: urlmatch.c:244 urlmatch.c:255 msgid "invalid port number" -msgstr "" +msgstr "неправилен номер на порт" #: urlmatch.c:322 msgid "invalid '..' path segment" -msgstr "" +msgstr "неправилна чаÑÑ‚ от Ð¿ÑŠÑ‚Ñ â€ž..“" -#: wrapper.c:422 +#: wrapper.c:460 #, c-format msgid "unable to access '%s': %s" msgstr "нÑма доÑтъп до „%s“: %s" -#: wrapper.c:443 +#: wrapper.c:481 #, c-format msgid "unable to access '%s'" msgstr "нÑма доÑтъп до „%s“" -#: wrapper.c:454 +#: wrapper.c:492 #, c-format msgid "unable to look up current user in the passwd file: %s" msgstr "текущиÑÑ‚ потребител не може да бъде открит във файла „/etc/passwd“: %s" -#: wrapper.c:455 +#: wrapper.c:493 msgid "no such user" msgstr "такъв потребител не ÑъщеÑтвува" @@ -1612,7 +1687,7 @@ msgstr "добавени от Ñ‚ÑÑ…:" #: wt-status.c:260 msgid "deleted by us:" -msgstr "изтрити от наÑ:" +msgstr "изтрити от ваÑ:" #: wt-status.c:262 msgid "both added:" @@ -1676,15 +1751,15 @@ msgstr "неÑледено Ñъдържание, " msgid "bug: unhandled diff status %c" msgstr "грешка: ÑÑŠÑтоÑнието на промÑната „%c“ не може да бъде обработено" -#: wt-status.c:765 +#: wt-status.c:764 msgid "Submodules changed but not updated:" msgstr "Подмодулите Ñа променени, но не Ñа обновени:" -#: wt-status.c:767 +#: wt-status.c:766 msgid "Submodule changes to be committed:" msgstr "Промени в подмодулите за подаване:" -#: wt-status.c:846 +#: wt-status.c:845 msgid "" "Do not touch the line above.\n" "Everything below will be removed." @@ -1692,193 +1767,193 @@ msgstr "" "Ðе променÑйте Ð³Ð¾Ñ€Ð½Ð¸Ñ Ñ€ÐµÐ´.\n" "Ð’Ñичко отдолу ще бъде изтрито." -#: wt-status.c:937 +#: wt-status.c:936 msgid "You have unmerged paths." msgstr "ÐÑкои пътища не Ñа Ñлети." -#: wt-status.c:940 +#: wt-status.c:939 msgid " (fix conflicts and run \"git commit\")" msgstr " (коригирайте конфликтите и изпълнете „git commit“)" -#: wt-status.c:943 +#: wt-status.c:942 msgid "All conflicts fixed but you are still merging." msgstr "Ð’Ñички конфликти Ñа решени, но продължавате Ñливането." -#: wt-status.c:946 +#: wt-status.c:945 msgid " (use \"git commit\" to conclude merge)" msgstr " (използвайте „git commit“, за да завършите Ñливането)" -#: wt-status.c:956 +#: wt-status.c:955 msgid "You are in the middle of an am session." msgstr "Ð’ момента прилагате поредица от кръпки чрез „git am“." -#: wt-status.c:959 +#: wt-status.c:958 msgid "The current patch is empty." msgstr "Текущата кръпка е празна." -#: wt-status.c:963 +#: wt-status.c:962 msgid " (fix conflicts and then run \"git am --continue\")" msgstr " (коригирайте конфликтите и изпълнете „git am --continue“)" -#: wt-status.c:965 +#: wt-status.c:964 msgid " (use \"git am --skip\" to skip this patch)" msgstr " (използвайте „git am --skip“, за да пропуÑнете тази кръпка)" -#: wt-status.c:967 +#: wt-status.c:966 msgid " (use \"git am --abort\" to restore the original branch)" msgstr "" " (използвайте „git am --abort“, за да възÑтановите Ð¿ÑŠÑ€Ð²Ð¾Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ ÐºÐ»Ð¾Ð½)" -#: wt-status.c:1027 wt-status.c:1044 +#: wt-status.c:1026 wt-status.c:1043 #, c-format msgid "You are currently rebasing branch '%s' on '%s'." msgstr "Ð’ момента пребазирате клона „%s“ върху „%s“." -#: wt-status.c:1032 wt-status.c:1049 +#: wt-status.c:1031 wt-status.c:1048 msgid "You are currently rebasing." msgstr "Ð’ момента пребазирате." -#: wt-status.c:1035 +#: wt-status.c:1034 msgid " (fix conflicts and then run \"git rebase --continue\")" msgstr " (коригирайте конфликтите и използвайте „git rebase --continue“)" -#: wt-status.c:1037 +#: wt-status.c:1036 msgid " (use \"git rebase --skip\" to skip this patch)" msgstr " (използвайте „git rebase --skip“, за да пропуÑнете тази кръпка)" -#: wt-status.c:1039 +#: wt-status.c:1038 msgid " (use \"git rebase --abort\" to check out the original branch)" msgstr "" " (използвайте „git rebase --abort“, за да възÑтановите Ð¿ÑŠÑ€Ð²Ð¾Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ ÐºÐ»Ð¾Ð½)" -#: wt-status.c:1052 +#: wt-status.c:1051 msgid " (all conflicts fixed: run \"git rebase --continue\")" msgstr " (вÑички конфликти Ñа коригирани: изпълнете „git rebase --continue“)" -#: wt-status.c:1056 +#: wt-status.c:1055 #, c-format msgid "" "You are currently splitting a commit while rebasing branch '%s' on '%s'." msgstr "Ð’ момента разделÑте подаване докато пребазирате клона „%s“ върху „%s“." -#: wt-status.c:1061 +#: wt-status.c:1060 msgid "You are currently splitting a commit during a rebase." msgstr "Ð’ момента разделÑте подаване докато пребазирате." -#: wt-status.c:1064 +#: wt-status.c:1063 msgid " (Once your working directory is clean, run \"git rebase --continue\")" msgstr "" " (След като работното ви дърво Ñтане чиÑто, използвайте „git rebase --" "continue“)" -#: wt-status.c:1068 +#: wt-status.c:1067 #, c-format msgid "You are currently editing a commit while rebasing branch '%s' on '%s'." msgstr "" "Ð’ момента редактирате подаване докато пребазирате клона „%s“ върху „%s“." -#: wt-status.c:1073 +#: wt-status.c:1072 msgid "You are currently editing a commit during a rebase." msgstr "Ð’ момента редактирате подаване докато пребазирате." -#: wt-status.c:1076 +#: wt-status.c:1075 msgid " (use \"git commit --amend\" to amend the current commit)" msgstr "" " (използвайте „git commit --amend“, за да редактирате текущото подаване)" -#: wt-status.c:1078 +#: wt-status.c:1077 msgid "" " (use \"git rebase --continue\" once you are satisfied with your changes)" msgstr "" " (използвайте „git rebase --continue“, Ñлед като завършите промените Ñи)" -#: wt-status.c:1088 +#: wt-status.c:1087 #, c-format msgid "You are currently cherry-picking commit %s." msgstr "Ð’ момента отбирате подаването „%s“." -#: wt-status.c:1093 +#: wt-status.c:1092 msgid " (fix conflicts and run \"git cherry-pick --continue\")" msgstr " (коригирайте конфликтите и изпълнете „git cherry-pick --continue“)" -#: wt-status.c:1096 +#: wt-status.c:1095 msgid " (all conflicts fixed: run \"git cherry-pick --continue\")" msgstr "" " (вÑички конфликти Ñа коригирани, изпълнете „git cherry-pick --continue“)" -#: wt-status.c:1098 +#: wt-status.c:1097 msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)" msgstr "" " (използвайте „git cherry-pick --abort“, за да отмените вÑички дейÑÑ‚Ð²Ð¸Ñ Ñ " "отбиране)" -#: wt-status.c:1107 +#: wt-status.c:1106 #, c-format msgid "You are currently reverting commit %s." msgstr "Ð’ момента отменÑте подаване „%s“." -#: wt-status.c:1112 +#: wt-status.c:1111 msgid " (fix conflicts and run \"git revert --continue\")" msgstr " (коригирайте конфликтите и изпълнете „git revert --continue“)" -#: wt-status.c:1115 +#: wt-status.c:1114 msgid " (all conflicts fixed: run \"git revert --continue\")" msgstr " (вÑички конфликти Ñа коригирани, изпълнете „git revert --continue“)" -#: wt-status.c:1117 +#: wt-status.c:1116 msgid " (use \"git revert --abort\" to cancel the revert operation)" msgstr "" " (използвайте „git revert --abort“, за да преуÑтановите отмÑната на " "подаване)" -#: wt-status.c:1128 +#: wt-status.c:1127 #, c-format msgid "You are currently bisecting, started from branch '%s'." msgstr "Ð’ момента Ñ‚ÑŠÑ€Ñите двоично, като Ñте Ñтартирали от клон „%s“." -#: wt-status.c:1132 +#: wt-status.c:1131 msgid "You are currently bisecting." msgstr "Ð’ момента Ñ‚ÑŠÑ€Ñите двоично." -#: wt-status.c:1135 +#: wt-status.c:1134 msgid " (use \"git bisect reset\" to get back to the original branch)" msgstr "" " (използвайте „git bisect reset“, за да Ñе върнете към първоначалното " "ÑÑŠÑтоÑние и клон)" -#: wt-status.c:1310 +#: wt-status.c:1309 msgid "On branch " msgstr "Ðа клон " -#: wt-status.c:1317 +#: wt-status.c:1316 msgid "rebase in progress; onto " msgstr "извършвате пребазиране върху " -#: wt-status.c:1324 +#: wt-status.c:1323 msgid "HEAD detached at " -msgstr "УказателÑÑ‚ „HEAD“ не е Ñвързан и е на подаване " +msgstr "УказателÑÑ‚ „HEAD“ не е Ñвързан и е при подаване " -#: wt-status.c:1326 +#: wt-status.c:1325 msgid "HEAD detached from " msgstr "УказателÑÑ‚ „HEAD“ не е Ñвързан и е отделѐн от " -#: wt-status.c:1329 +#: wt-status.c:1328 msgid "Not currently on any branch." -msgstr "Извън вÑички клони" +msgstr "Извън вÑички клони." -#: wt-status.c:1346 +#: wt-status.c:1345 msgid "Initial commit" msgstr "Първоначално подаване" -#: wt-status.c:1360 +#: wt-status.c:1359 msgid "Untracked files" msgstr "ÐеÑледени файлове" -#: wt-status.c:1362 +#: wt-status.c:1361 msgid "Ignored files" msgstr "Игнорирани файлове" -#: wt-status.c:1366 +#: wt-status.c:1365 #, c-format msgid "" "It took %.2f seconds to enumerate untracked files. 'status -uno'\n" @@ -1887,35 +1962,35 @@ msgid "" msgstr "" "БÑха необходими %.2f Ñекунди за изброÑването на неÑледените файлове.\n" "ДобавÑнето на опциÑта „-uno“ към командата „git status“, ще уÑкори\n" -"нещата, но не Ñ‚Ñ€Ñбва да забравÑте ръчно да добавÑте новите файлове.\n" +"изпълнението, но не Ñ‚Ñ€Ñбва да забравÑте ръчно да добавÑте новите файлове.\n" "За повече подробноÑти погледнете „git status help“." -#: wt-status.c:1372 +#: wt-status.c:1371 #, c-format msgid "Untracked files not listed%s" msgstr "ÐеÑледените файлове не Ñа изведени%s" -#: wt-status.c:1374 +#: wt-status.c:1373 msgid " (use -u option to show untracked files)" msgstr " (използвайте опциÑта „-u“, за да изведете неÑледените файлове)" -#: wt-status.c:1380 +#: wt-status.c:1379 msgid "No changes" msgstr "ÐÑма промени" -#: wt-status.c:1385 +#: wt-status.c:1384 #, c-format msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n" msgstr "" "към индекÑа за подаване не Ñа добавени промени (използвайте „git add“ и/или " "„git commit -a“)\n" -#: wt-status.c:1388 +#: wt-status.c:1387 #, c-format msgid "no changes added to commit\n" msgstr "към индекÑа за подаване не Ñа добавени промени\n" -#: wt-status.c:1391 +#: wt-status.c:1390 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " @@ -1924,48 +1999,48 @@ msgstr "" "към индекÑа за подаване не Ñа добавени промени, но има нови файлове " "(използвайте „git add“, за да започне Ñ‚Ñхното Ñледене)\n" -#: wt-status.c:1394 +#: wt-status.c:1393 #, c-format msgid "nothing added to commit but untracked files present\n" msgstr "към индекÑа за подаване не Ñа добавени промени, но има нови файлове\n" -#: wt-status.c:1397 +#: wt-status.c:1396 #, c-format msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "" "липÑват каквито и да е промени (Ñъздайте или копирайте файлове и използвайте " "„git add“, за да започне Ñ‚Ñхното Ñледене)\n" -#: wt-status.c:1400 wt-status.c:1405 +#: wt-status.c:1399 wt-status.c:1404 #, c-format msgid "nothing to commit\n" msgstr "липÑват каквито и да е промени\n" -#: wt-status.c:1403 +#: wt-status.c:1402 #, c-format msgid "nothing to commit (use -u to show untracked files)\n" msgstr "" "липÑват каквито и да е промени (използвайте опциÑта „-u“, за да Ñе изведат и " "неÑледените файлове)\n" -#: wt-status.c:1407 +#: wt-status.c:1406 #, c-format msgid "nothing to commit, working directory clean\n" msgstr "липÑват каквито и да е промени, работното дърво е чиÑто\n" -#: wt-status.c:1516 +#: wt-status.c:1515 msgid "HEAD (no branch)" msgstr "HEAD (извън клон)" -#: wt-status.c:1522 +#: wt-status.c:1521 msgid "Initial commit on " -msgstr "Първоначално подаване на " +msgstr "Първоначално подаване на клон" -#: wt-status.c:1554 +#: wt-status.c:1553 msgid "gone" msgstr "изтрит" -#: wt-status.c:1556 wt-status.c:1564 +#: wt-status.c:1555 wt-status.c:1563 msgid "behind " msgstr "назад Ñ " @@ -1976,7 +2051,7 @@ msgstr "неуÑпешно изтриване на „%s“" #: builtin/add.c:21 msgid "git add [options] [--] <pathspec>..." -msgstr "git add [ОПЦИИ] [--] ПЪТ…" +msgstr "git add [ОПЦИЯ…] [--] ПЪТ…" #: builtin/add.c:64 #, c-format @@ -1996,7 +2071,7 @@ msgstr "изтриване на „%s“\n" msgid "Unstaged changes after refreshing the index:" msgstr "Промени, които и Ñлед обновÑването на индекÑа не Ñа добавени към него:" -#: builtin/add.c:193 +#: builtin/add.c:193 builtin/rev-parse.c:781 msgid "Could not read the index" msgstr "ИндекÑÑŠÑ‚ не може да бъде прочетен" @@ -2028,15 +2103,15 @@ msgid "The following paths are ignored by one of your .gitignore files:\n" msgstr "" "Следните пътища ще бъдат игнорирани Ñпоред нÑкой от файловете „.gitignore“:\n" -#: builtin/add.c:248 builtin/clean.c:876 builtin/fetch.c:93 builtin/mv.c:70 -#: builtin/prune-packed.c:77 builtin/push.c:489 builtin/remote.c:1344 +#: builtin/add.c:248 builtin/clean.c:875 builtin/fetch.c:108 builtin/mv.c:70 +#: builtin/prune-packed.c:77 builtin/push.c:488 builtin/remote.c:1367 #: builtin/rm.c:269 msgid "dry run" msgstr "пробно изпълнeние" -#: builtin/add.c:249 builtin/apply.c:4410 builtin/check-ignore.c:19 -#: builtin/commit.c:1256 builtin/count-objects.c:95 builtin/fsck.c:612 -#: builtin/log.c:1592 builtin/mv.c:69 builtin/read-tree.c:113 +#: builtin/add.c:249 builtin/apply.c:4411 builtin/check-ignore.c:19 +#: builtin/commit.c:1328 builtin/count-objects.c:95 builtin/fsck.c:606 +#: builtin/log.c:1613 builtin/mv.c:69 builtin/read-tree.c:113 msgid "be verbose" msgstr "повече подробноÑти" @@ -2044,7 +2119,7 @@ msgstr "повече подробноÑти" msgid "interactive picking" msgstr "интерактивно отбиране на промени" -#: builtin/add.c:252 builtin/checkout.c:1108 builtin/reset.c:283 +#: builtin/add.c:252 builtin/checkout.c:1102 builtin/reset.c:285 msgid "select hunks interactively" msgstr "интерактивен избор на парчета код" @@ -2092,7 +2167,7 @@ msgstr "" #: builtin/add.c:286 #, c-format msgid "Use -f if you really want to add them.\n" -msgstr "Използвайте опциÑта „-f“, ако наиÑтина иÑкате да ги добавите.\n" +msgstr "Използвайте опциÑта „-f“, за да ги добавите наиÑтина.\n" #: builtin/add.c:287 msgid "no files added" @@ -2102,91 +2177,99 @@ msgstr "не Ñа добавени файлове" msgid "adding files failed" msgstr "неуÑпешно добавÑне на файлове" -#: builtin/add.c:330 +#: builtin/add.c:329 msgid "-A and -u are mutually incompatible" msgstr "опциите „-A“ и „-u“ Ñа неÑъвмеÑтими" -#: builtin/add.c:337 +#: builtin/add.c:336 msgid "Option --ignore-missing can only be used together with --dry-run" msgstr "ОпциÑта „--ignore-missing“ е ÑъвмеÑтима Ñамо Ñ â€ž--dry-run“" -#: builtin/add.c:358 +#: builtin/add.c:357 #, c-format msgid "Nothing specified, nothing added.\n" msgstr "Ðищо не е зададено и нищо не е добавено.\n" -#: builtin/add.c:359 +#: builtin/add.c:358 #, c-format msgid "Maybe you wanted to say 'git add .'?\n" msgstr "ВероÑтно иÑкахте да използвате „git add .“?\n" -#: builtin/add.c:364 builtin/check-ignore.c:172 builtin/clean.c:920 -#: builtin/commit.c:320 builtin/mv.c:90 builtin/reset.c:234 builtin/rm.c:299 +#: builtin/add.c:363 builtin/check-ignore.c:172 builtin/clean.c:919 +#: builtin/commit.c:319 builtin/mv.c:90 builtin/reset.c:234 builtin/rm.c:299 msgid "index file corrupt" msgstr "файлът Ñ Ð¸Ð½Ð´ÐµÐºÑа е повреден" -#: builtin/add.c:448 builtin/apply.c:4506 builtin/mv.c:280 builtin/rm.c:432 +#: builtin/add.c:446 builtin/apply.c:4506 builtin/mv.c:280 builtin/rm.c:431 msgid "Unable to write new index file" msgstr "ÐовиÑÑ‚ Ð¸Ð½Ð´ÐµÐºÑ Ð½Ðµ може да бъде запиÑан" #: builtin/apply.c:57 msgid "git apply [options] [<patch>...]" -msgstr "" +msgstr "git apply [ОПЦИЯ…] [КРЪПКÐ…]" #: builtin/apply.c:110 #, c-format msgid "unrecognized whitespace option '%s'" -msgstr "" +msgstr "непозната Ð¾Ð¿Ñ†Ð¸Ñ Ð·Ð° знаците за интервали „%s“" #: builtin/apply.c:125 #, c-format msgid "unrecognized whitespace ignore option '%s'" -msgstr "" +msgstr "непозната Ð¾Ð¿Ñ†Ð¸Ñ Ð·Ð° игнориране на знаците за интервали „%s“" -#: builtin/apply.c:823 +#: builtin/apply.c:825 #, c-format msgid "Cannot prepare timestamp regexp %s" -msgstr "" +msgstr "РегулÑрниÑÑ‚ израз за времето „%s“ не може за бъде компилиран" -#: builtin/apply.c:832 +#: builtin/apply.c:834 #, c-format msgid "regexec returned %d for input: %s" -msgstr "" +msgstr "РегулÑрниÑÑ‚ израз върна %d при подадена поÑледователноÑÑ‚ „%s“ на входа" -#: builtin/apply.c:913 +#: builtin/apply.c:915 #, c-format msgid "unable to find filename in patch at line %d" -msgstr "" +msgstr "ЛипÑва име на файл на ред %d от кръпката" -#: builtin/apply.c:945 +#: builtin/apply.c:947 #, 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“" -#: builtin/apply.c:949 +#: builtin/apply.c:951 #, c-format msgid "git apply: bad git-diff - inconsistent new filename on line %d" msgstr "" +"git apply: лош изход от командата „git-diff“ — на ред %d бе получено " +"неправилно име на нов файл" -#: builtin/apply.c:950 +#: builtin/apply.c:952 #, c-format msgid "git apply: bad git-diff - inconsistent old filename on line %d" msgstr "" +"git apply: лош изход от командата „git-diff“ — на ред %d бе получено " +"неправилно име на Ñтар файл" -#: builtin/apply.c:957 +#: builtin/apply.c:959 #, c-format msgid "git apply: bad git-diff - expected /dev/null on line %d" msgstr "" +"git apply: лош изход от командата „git-diff“ — на ред %d Ñе очакваше „/dev/" +"null“" #: builtin/apply.c:1422 #, c-format msgid "recount: unexpected line: %.*s" -msgstr "" +msgstr "при повторното преброÑване бе получен неочакван ред: „%.*s“" #: builtin/apply.c:1479 #, c-format msgid "patch fragment without header at line %d: %.*s" -msgstr "" +msgstr "чаÑÑ‚ от кръпка без заглавна чаÑÑ‚ на ред %d: %.*s" #: builtin/apply.c:1496 #, c-format @@ -2197,30 +2280,34 @@ msgid_plural "" "git diff header lacks filename information when removing %d leading pathname " "components (line %d)" msgstr[0] "" +"След Ñъкращаването на %d-та чаÑÑ‚ от компонентите на пътÑ, в заглавната чаÑÑ‚ " +"на „git diff“ липÑва Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° име на файл (ред: %d)" msgstr[1] "" +"След Ñъкращаването на първите %d чаÑти от компонентите на пътÑ, в заглавната " +"чаÑÑ‚ на „git diff“ липÑва Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° име на файл (ред: %d)" #: builtin/apply.c:1656 msgid "new file depends on old contents" -msgstr "" +msgstr "новиÑÑ‚ файл завиÑи от Ñтарото Ñъдържание на файла" #: builtin/apply.c:1658 msgid "deleted file still has contents" -msgstr "" +msgstr "изтритиÑÑ‚ файл не е празен" #: builtin/apply.c:1684 #, c-format msgid "corrupt patch at line %d" -msgstr "" +msgstr "грешка в кръпката на ред %d" #: builtin/apply.c:1720 #, c-format msgid "new file %s depends on old contents" -msgstr "" +msgstr "новиÑÑ‚ файл „%s“ завиÑи от Ñтарото Ñъдържание на файла" #: builtin/apply.c:1722 #, c-format msgid "deleted file %s still has contents" -msgstr "" +msgstr "изтритиÑÑ‚ файл „%s“ не е празен" # FIXME - double **?? #: builtin/apply.c:1725 @@ -2231,44 +2318,47 @@ msgstr "â—◠предупреждение: файлът „%s“ вече е Ð #: builtin/apply.c:1871 #, c-format msgid "corrupt binary patch at line %d: %.*s" -msgstr "" +msgstr "грешка в двоичната кръпка на ред %d: %.*s" #: builtin/apply.c:1900 #, c-format msgid "unrecognized binary patch at line %d" -msgstr "" +msgstr "неразпозната двоичната кръпка на ред %d" #: builtin/apply.c:1986 #, c-format msgid "patch with only garbage at line %d" -msgstr "" +msgstr "кръпката е Ñ Ð¸Ð·Ñ†Ñло повредени данни на ред %d" #: builtin/apply.c:2076 #, c-format msgid "unable to read symlink %s" -msgstr "" +msgstr "Ñимволната връзка „%s“ не може да бъде прочетена" #: builtin/apply.c:2080 #, c-format msgid "unable to open or read %s" -msgstr "" +msgstr "файлът „%s“ не може да бъде отворен или прочетен" #: builtin/apply.c:2688 #, c-format msgid "invalid start of line: '%c'" -msgstr "" +msgstr "неправилно начало на ред: „%c“" #: builtin/apply.c:2806 #, c-format msgid "Hunk #%d succeeded at %d (offset %d line)." msgid_plural "Hunk #%d succeeded at %d (offset %d lines)." msgstr[0] "" +"%d-то парче код бе уÑпешно приложено на ред %d (отмеÑтване от %d ред)." msgstr[1] "" +"%d-то парче код бе уÑпешно приложено на ред %d (отмеÑтване от %d реда)." #: builtin/apply.c:2818 #, c-format msgid "Context reduced to (%ld/%ld) to apply fragment at %d" msgstr "" +"КонтекÑÑ‚ÑŠÑ‚ е намален на (%ld/%ld) за прилагането на парчето код на ред %d" #: builtin/apply.c:2824 #, c-format @@ -2276,100 +2366,105 @@ msgid "" "while searching for:\n" "%.*s" msgstr "" +"при Ñ‚ÑŠÑ€Ñене за:\n" +"%.*s" #: builtin/apply.c:2843 #, c-format msgid "missing binary patch data for '%s'" -msgstr "" +msgstr "липÑват данните за двоичната кръпка за „%s“" -#: builtin/apply.c:2946 +#: builtin/apply.c:2944 #, c-format msgid "binary patch does not apply to '%s'" -msgstr "" +msgstr "двоичната кръпка не може да бъде приложена върху „%s“" -#: builtin/apply.c:2952 +#: builtin/apply.c:2950 #, c-format msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)" msgstr "" +"двоичната кръпка за „%s“ води до неправилни резултати (очакваше Ñе SHA1: " +"„%s“, а бе получено: „%s“)" -#: builtin/apply.c:2973 +#: builtin/apply.c:2971 #, c-format msgid "patch failed: %s:%ld" -msgstr "" +msgstr "неуÑпешно прилагане на кръпка: „%s:%ld“" #: builtin/apply.c:3095 #, c-format msgid "cannot checkout %s" -msgstr "" +msgstr "„%s“ не може да Ñе изтегли" #: builtin/apply.c:3140 builtin/apply.c:3149 builtin/apply.c:3194 #, c-format msgid "read of %s failed" -msgstr "" +msgstr "неуÑпешно прочитане на „%s“" #: builtin/apply.c:3174 builtin/apply.c:3396 #, c-format msgid "path %s has been renamed/deleted" -msgstr "" +msgstr "обектът Ñ Ð¿ÑŠÑ‚ „%s“ е преименуван или изтрит" #: builtin/apply.c:3255 builtin/apply.c:3410 #, c-format msgid "%s: does not exist in index" -msgstr "" +msgstr "„%s“ не ÑъщеÑтвува в индекÑа" #: builtin/apply.c:3259 builtin/apply.c:3402 builtin/apply.c:3424 #, c-format msgid "%s: %s" -msgstr "" +msgstr "„%s“: %s" #: builtin/apply.c:3264 builtin/apply.c:3418 #, c-format msgid "%s: does not match index" -msgstr "" +msgstr "„%s“ не ÑъответÑтва на индекÑа" #: builtin/apply.c:3366 msgid "removal patch leaves file contents" -msgstr "" +msgstr "изтриващата кръпка оÑÑ‚Ð°Ð²Ñ Ñ„Ð°Ð¹Ð»Ð° непразен" #: builtin/apply.c:3435 #, c-format msgid "%s: wrong type" -msgstr "" +msgstr "„%s“: неправилен вид" #: builtin/apply.c:3437 #, c-format msgid "%s has type %o, expected %o" -msgstr "" +msgstr "„%s“ е от вид „%o“, а Ñе очакваше „%o“" #: builtin/apply.c:3538 #, c-format msgid "%s: already exists in index" -msgstr "" +msgstr "„%s“: вече ÑъщеÑтвува в индекÑа" #: builtin/apply.c:3541 #, c-format msgid "%s: already exists in working directory" -msgstr "" +msgstr "„%s“: вече ÑъщеÑтвува в работната директориÑ" #: builtin/apply.c:3561 #, c-format msgid "new mode (%o) of %s does not match old mode (%o)" -msgstr "" +msgstr "новите права за доÑтъп (%o) на „%s“ не Ñъвпадат ÑÑŠÑ Ñтарите (%o)" #: builtin/apply.c:3566 #, c-format msgid "new mode (%o) of %s does not match old mode (%o) of %s" msgstr "" +"новите права за доÑтъп (%o) на „%s“ не Ñъвпадат ÑÑŠÑ Ñтарите (%o) на „%s“" #: builtin/apply.c:3574 #, c-format msgid "%s: patch does not apply" -msgstr "" +msgstr "Кръпката „%s“ не може да бъде приложена" #: builtin/apply.c:3587 #, c-format msgid "Checking patch %s..." -msgstr "" +msgstr "ПроверÑване на кръпката „%s“…" #: builtin/apply.c:3680 builtin/checkout.c:213 builtin/reset.c:134 #, c-format @@ -2379,255 +2474,261 @@ msgstr "неуÑпешно Ñъздаване на Ð·Ð°Ð¿Ð¸Ñ Ð² кеша чре #: builtin/apply.c:3823 #, c-format msgid "unable to remove %s from index" -msgstr "" +msgstr "„%s“ не може да Ñе извади от индекÑа" -#: builtin/apply.c:3851 +#: builtin/apply.c:3852 #, c-format msgid "corrupt patch for submodule %s" -msgstr "" +msgstr "повредена кръпка за модула „%s“" -#: builtin/apply.c:3855 +#: builtin/apply.c:3856 #, c-format msgid "unable to stat newly created file '%s'" msgstr "" +"не може да Ñе получи Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ñ‡Ñ€ÐµÐ· „stat“ за новоÑÑŠÐ·Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð» „%s“" -#: builtin/apply.c:3860 +#: builtin/apply.c:3861 #, c-format msgid "unable to create backing store for newly created file %s" msgstr "" +"не може да Ñе за Ñъздаде мÑÑтото за Ñъхранение на новоÑÑŠÐ·Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð» „%s“" -#: builtin/apply.c:3863 builtin/apply.c:3971 +#: builtin/apply.c:3864 builtin/apply.c:3972 #, c-format msgid "unable to add cache entry for %s" -msgstr "" +msgstr "не може да Ñе добави Ð·Ð°Ð¿Ð¸Ñ Ð² кеша за „%s“" -#: builtin/apply.c:3896 +#: builtin/apply.c:3897 #, c-format msgid "closing file '%s'" -msgstr "" +msgstr "затварÑне на файла „%s“" -#: builtin/apply.c:3945 +#: builtin/apply.c:3946 #, c-format msgid "unable to write file '%s' mode %o" -msgstr "" +msgstr "файлът „%s“ не може да Ñе запише Ñ Ñ€ÐµÐ¶Ð¸Ð¼ на доÑтъп „%o“" -#: builtin/apply.c:4032 +#: builtin/apply.c:4033 #, c-format msgid "Applied patch %s cleanly." -msgstr "" +msgstr "Кръпката „%s“ бе приложена чиÑто." -#: builtin/apply.c:4040 +#: builtin/apply.c:4041 msgid "internal error" -msgstr "" +msgstr "вътрешна грешка" -#: builtin/apply.c:4043 +#: builtin/apply.c:4044 #, c-format msgid "Applying patch %%s with %d reject..." msgid_plural "Applying patch %%s with %d rejects..." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Прилагане на кръпката „%%s“ Ñ %d отхвърлено парче…" +msgstr[1] "Прилагане на кръпката „%%s“ Ñ %d отхвърлени парчета…" -#: builtin/apply.c:4053 +#: builtin/apply.c:4054 #, c-format msgid "truncating .rej filename to %.*s.rej" -msgstr "" +msgstr "Ñъкращаване на името на файла Ñ Ð¾Ñ‚Ñ…Ð²ÑŠÑ€Ð»ÐµÐ½Ð¸Ñ‚Ðµ парчета на „ %.*s.rej“" -#: builtin/apply.c:4074 +#: builtin/apply.c:4075 #, c-format msgid "Hunk #%d applied cleanly." -msgstr "" +msgstr "%d-то парче бе уÑпешно приложено." -#: builtin/apply.c:4077 +#: builtin/apply.c:4078 #, c-format msgid "Rejected hunk #%d." -msgstr "" +msgstr "%d-то парче бе отхвърлено." -#: builtin/apply.c:4227 +#: builtin/apply.c:4228 msgid "unrecognized input" -msgstr "" +msgstr "непознат вход" -#: builtin/apply.c:4238 +#: builtin/apply.c:4239 msgid "unable to read index file" msgstr "индекÑÑŠÑ‚ не може да бъде запиÑан" -#: builtin/apply.c:4357 builtin/apply.c:4360 builtin/clone.c:90 -#: builtin/fetch.c:78 +#: builtin/apply.c:4358 builtin/apply.c:4361 builtin/clone.c:90 +#: builtin/fetch.c:93 msgid "path" msgstr "път" -#: builtin/apply.c:4358 +#: builtin/apply.c:4359 msgid "don't apply changes matching the given path" -msgstr "" +msgstr "без прилагане на промените напаÑващи на Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ð¿ÑŠÑ‚" -#: builtin/apply.c:4361 +#: builtin/apply.c:4362 msgid "apply changes matching the given path" -msgstr "" +msgstr "прилагане на промените напаÑващи на Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ð¿ÑŠÑ‚" -#: builtin/apply.c:4363 +#: builtin/apply.c:4364 msgid "num" -msgstr "" +msgstr "БРОЙ" -#: builtin/apply.c:4364 +#: builtin/apply.c:4365 msgid "remove <num> leading slashes from traditional diff paths" -msgstr "" +msgstr "премахване на този БРОЙ водещи елементи от пътищата в разликата" -#: builtin/apply.c:4367 +#: builtin/apply.c:4368 msgid "ignore additions made by the patch" -msgstr "" +msgstr "игнориране на редовете добавени от тази кръпка" -#: builtin/apply.c:4369 +#: builtin/apply.c:4370 msgid "instead of applying the patch, output diffstat for the input" -msgstr "" +msgstr "извеждане на ÑтатиÑтика на промените без прилагане на кръпката" -#: builtin/apply.c:4373 +#: builtin/apply.c:4374 msgid "show number of added and deleted lines in decimal notation" -msgstr "" +msgstr "извеждане на Ð±Ñ€Ð¾Ñ Ð½Ð° добавените и изтритите редове" -#: builtin/apply.c:4375 +#: builtin/apply.c:4376 msgid "instead of applying the patch, output a summary for the input" -msgstr "" +msgstr "извеждане на ÑтатиÑтика на входните данни без прилагане на кръпката" -#: builtin/apply.c:4377 +#: builtin/apply.c:4378 msgid "instead of applying the patch, see if the patch is applicable" -msgstr "" +msgstr "проверка дали кръпката може да Ñе приложи, без дейÑтвително прилагане" -#: builtin/apply.c:4379 +#: builtin/apply.c:4380 msgid "make sure the patch is applicable to the current index" -msgstr "" +msgstr "проверка дали кръпката може да бъде приложена към Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑ" -#: builtin/apply.c:4381 +#: builtin/apply.c:4382 msgid "apply a patch without touching the working tree" -msgstr "" +msgstr "прилагане на кръпката без промÑна на работното дърво" -#: builtin/apply.c:4383 +#: builtin/apply.c:4384 msgid "also apply the patch (use with --stat/--summary/--check)" msgstr "" +"кръпката да бъде приложена. ОпциÑта Ñе комбинира Ñ â€ž--check“/„--stat“/„--" +"summary“" -#: builtin/apply.c:4385 +#: builtin/apply.c:4386 msgid "attempt three-way merge if a patch does not apply" -msgstr "" +msgstr "пробване Ñ Ñ‚Ñ€Ð¾Ð¹Ð½Ð¾ Ñливане, ако кръпката не може да Ñе приложи директно" -#: builtin/apply.c:4387 +#: builtin/apply.c:4388 msgid "build a temporary index based on embedded index information" msgstr "" +"Ñъздаване на временен Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð° база на включената Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° индекÑа" -#: builtin/apply.c:4389 builtin/checkout-index.c:197 builtin/ls-files.c:455 +#: builtin/apply.c:4390 builtin/checkout-index.c:198 builtin/ls-files.c:455 msgid "paths are separated with NUL character" msgstr "разделÑне на пътищата Ñ Ð½ÑƒÐ»ÐµÐ²Ð¸Ñ Ð·Ð½Ð°Ðº „NUL“" -#: builtin/apply.c:4392 +#: builtin/apply.c:4393 msgid "ensure at least <n> lines of context match" msgstr "да Ñе оÑигури контекÑÑ‚ от поне такъв БРОЙ Ñъвпадащи редове" -#: builtin/apply.c:4393 +#: builtin/apply.c:4394 msgid "action" -msgstr "" +msgstr "дейÑтвие" -#: builtin/apply.c:4394 +#: builtin/apply.c:4395 msgid "detect new or modified lines that have whitespace errors" -msgstr "" +msgstr "заÑичане на нови или променени редове Ñ Ð³Ñ€ÐµÑˆÐºÐ¸ в знаците за интервали" -#: builtin/apply.c:4397 builtin/apply.c:4400 +#: builtin/apply.c:4398 builtin/apply.c:4401 msgid "ignore changes in whitespace when finding context" msgstr "" +"игнориране на промените в знаците за интервали при откриване на контекÑта" -#: builtin/apply.c:4403 +#: builtin/apply.c:4404 msgid "apply the patch in reverse" -msgstr "" +msgstr "прилагане на кръпката в обратна поÑока" -#: builtin/apply.c:4405 +#: builtin/apply.c:4406 msgid "don't expect at least one line of context" -msgstr "" +msgstr "без изиÑкване на дори и един ред контекÑÑ‚" -#: builtin/apply.c:4407 +#: builtin/apply.c:4408 msgid "leave the rejected hunks in corresponding *.rej files" -msgstr "" +msgstr "оÑтавÑне на отхвърлените парчета във файлове Ñ Ñ€Ð°Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¸Ðµ „.rej“" -#: builtin/apply.c:4409 +#: builtin/apply.c:4410 msgid "allow overlapping hunks" -msgstr "" +msgstr "позволÑване на заÑтъпващи Ñе парчета" -#: builtin/apply.c:4412 +#: builtin/apply.c:4413 msgid "tolerate incorrectly detected missing new-line at the end of file" -msgstr "" +msgstr "пренебрегване на неправилно липÑващ знак за нов ред в ÐºÑ€Ð°Ñ Ð½Ð° файл" -#: builtin/apply.c:4415 +#: builtin/apply.c:4416 msgid "do not trust the line counts in the hunk headers" -msgstr "" +msgstr "без доверÑване на номерата на редовете в заглавните чаÑти на парчетата" -#: builtin/apply.c:4417 +#: builtin/apply.c:4418 msgid "root" -msgstr "" +msgstr "ÐÐЧÐЛÐÐ_ДИРЕКТОРИЯ" -#: builtin/apply.c:4418 +#: builtin/apply.c:4419 msgid "prepend <root> to all filenames" -msgstr "" +msgstr "добавÑне на тази ÐÐЧÐЛÐÐ_ДИРЕКТОРИЯ към имената на вÑички файлове" -#: builtin/apply.c:4440 +#: builtin/apply.c:4441 msgid "--3way outside a repository" -msgstr "" +msgstr "като „--3way“, но извън хранилище" -#: builtin/apply.c:4448 +#: builtin/apply.c:4449 msgid "--index outside a repository" -msgstr "" +msgstr "като „--index“, но извън хранилище" -#: builtin/apply.c:4451 +#: builtin/apply.c:4452 msgid "--cached outside a repository" -msgstr "" +msgstr "като „--cached“, но извън хранилище" -#: builtin/apply.c:4467 +#: builtin/apply.c:4468 #, c-format msgid "can't open patch '%s'" -msgstr "" +msgstr "кръпката „%s“ не може да бъде отворена" -#: builtin/apply.c:4481 +#: builtin/apply.c:4482 #, c-format msgid "squelched %d whitespace error" msgid_plural "squelched %d whitespace errors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "пренебрегната е %d грешка в знаците за интервали" +msgstr[1] "пренебрегнати Ñа %d грешки в знаците за интервали" -#: builtin/apply.c:4487 builtin/apply.c:4497 +#: builtin/apply.c:4488 builtin/apply.c:4498 #, c-format msgid "%d line adds whitespace errors." msgid_plural "%d lines add whitespace errors." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%d ред Ð´Ð¾Ð±Ð°Ð²Ñ Ð³Ñ€ÐµÑˆÐºÐ¸ в знаците за интервали." +msgstr[1] "%d реда добавÑÑ‚ грешки в знаците за интервали." #: builtin/archive.c:17 #, c-format msgid "could not create archive file '%s'" -msgstr "" +msgstr "архивниÑÑ‚ файл „%s“ не може да бъде Ñъздаден" #: builtin/archive.c:20 msgid "could not redirect output" -msgstr "" +msgstr "изходът не може да бъде пренаÑочен" #: builtin/archive.c:37 msgid "git archive: Remote with no URL" -msgstr "" +msgstr "git archive: ЛипÑва Ð°Ð´Ñ€ÐµÑ Ð·Ð° отдалеченото хранилище" #: builtin/archive.c:58 msgid "git archive: expected ACK/NAK, got EOF" -msgstr "" +msgstr "git archive: очакваше Ñе „ACK“/„NAK“, а бе получен „EOF“" #: builtin/archive.c:61 #, c-format msgid "git archive: NACK %s" -msgstr "" +msgstr "git archive: получен е „NACK“ — %s" #: builtin/archive.c:63 #, c-format msgid "remote error: %s" -msgstr "" +msgstr "отдалечена грешка: %s" #: builtin/archive.c:64 msgid "git archive: protocol error" -msgstr "" +msgstr "git archive: протоколна грешка" #: builtin/archive.c:68 msgid "git archive: expected a flush" -msgstr "" +msgstr "git archive: очакваше Ñе изчиÑтване на буферите чрез „flush“" #: builtin/bisect--helper.c:7 msgid "git bisect--helper --next-all [--no-checkout]" @@ -2642,139 +2743,150 @@ msgid "update BISECT_HEAD instead of checking out the current commit" msgstr "" "обновÑване на ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€žBISECT_HEAD“ вмеÑто да Ñе използва текущото подаване" -#: builtin/blame.c:27 +#: builtin/blame.c:30 msgid "git blame [options] [rev-opts] [rev] [--] file" -msgstr "git blame [ОПЦИИ] [ОПЦИИ_ЗÐ_ВЕРСИЯТÐ] [ВЕРСИЯ] [--] ФÐЙЛ" +msgstr "git blame [ОПЦИЯ…] [ОПЦИИ_ЗÐ_ВЕРСИЯТÐ] [ВЕРСИЯ] [--] ФÐЙЛ" -#: builtin/blame.c:32 +#: builtin/blame.c:35 msgid "[rev-opts] are documented in git-rev-list(1)" msgstr "ОПЦИИте_ЗÐ_ВЕРСИЯТРÑа документирани в ръководÑтвото git-rev-list(1)" -#: builtin/blame.c:2242 +#: builtin/blame.c:2501 msgid "Show blame entries as we find them, incrementally" msgstr "Извеждане на анотациите Ñ Ð½Ð°Ð¼Ð¸Ñ€Ð°Ð½ÐµÑ‚Ð¾ им, поÑледователно" # FIXME SHA-1 -> SHA1 -#: builtin/blame.c:2243 +#: builtin/blame.c:2502 msgid "Show blank SHA-1 for boundary commits (Default: off)" msgstr "" "Извеждане на празни Ñуми по SHA1 за граничните Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ (Ñтандартно опциÑта " "е изключена)" -#: builtin/blame.c:2244 +#: builtin/blame.c:2503 msgid "Do not treat root commits as boundaries (Default: off)" msgstr "" "Ðачалните Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ð´Ð° не Ñе Ñчитат за гранични (Ñтандартно опциÑта е " "изключена)" -#: builtin/blame.c:2245 +#: builtin/blame.c:2504 msgid "Show work cost statistics" msgstr "Извеждане на ÑтатиÑтика за извършените дейÑтвиÑ" -#: builtin/blame.c:2246 +#: builtin/blame.c:2505 msgid "Show output score for blame entries" msgstr "Извеждане на допълнителна Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° определÑнето на анотациите" -#: builtin/blame.c:2247 +#: builtin/blame.c:2506 msgid "Show original filename (Default: auto)" msgstr "" "Извеждане на първоначалното име на файл (Ñтандартно това е автоматично)" -#: builtin/blame.c:2248 +#: builtin/blame.c:2507 msgid "Show original linenumber (Default: off)" msgstr "" "Извеждане на първоначалниÑÑ‚ номер на ред (Ñтандартно опциÑта е изключена)" -#: builtin/blame.c:2249 +#: builtin/blame.c:2508 msgid "Show in a format designed for machine consumption" msgstr "Извеждане във формат за по-нататъшна обработка" -#: builtin/blame.c:2250 +#: builtin/blame.c:2509 msgid "Show porcelain format with per-line commit information" msgstr "" -"Извеждане във формат за по-нататъшна обработка Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð° вÑеки ред" +"Извеждане във формат за команди от потребителÑко ниво Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð° вÑеки " +"ред" -#: builtin/blame.c:2251 +#: builtin/blame.c:2510 msgid "Use the same output mode as git-annotate (Default: off)" msgstr "" "Използване на ÑÑŠÑ‰Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ като „git-annotate“ (Ñтандартно опциÑта е " "изключена)" -#: builtin/blame.c:2252 +#: builtin/blame.c:2511 msgid "Show raw timestamp (Default: off)" msgstr "Извеждане на неформатирани времена (Ñтандартно опциÑта е изключена)" -#: builtin/blame.c:2253 +#: builtin/blame.c:2512 msgid "Show long commit SHA1 (Default: off)" msgstr "Извеждане на пълните Ñуми по SHA1 (Ñтандартно опциÑта е изключена)" -#: builtin/blame.c:2254 +#: builtin/blame.c:2513 msgid "Suppress author name and timestamp (Default: off)" -msgstr "Без име на автор и време на промÑна(Ñтандартно опциÑта е изключена)" +msgstr "Без име на автор и време на промÑна (Ñтандартно опциÑта е изключена)" -#: builtin/blame.c:2255 +#: builtin/blame.c:2514 msgid "Show author email instead of name (Default: off)" msgstr "" "Извеждане на е-пощата на автора, а не името му (Ñтандартно опциÑта е " "изключена)" -#: builtin/blame.c:2256 +#: builtin/blame.c:2515 msgid "Ignore whitespace differences" msgstr "Без разлики в знаците за интервали" -#: builtin/blame.c:2257 +#: builtin/blame.c:2516 msgid "Spend extra cycles to find better match" msgstr "Допълнителни изчиÑÐ»ÐµÐ½Ð¸Ñ Ð·Ð° по-добри резултати" -#: builtin/blame.c:2258 +#: builtin/blame.c:2517 msgid "Use revisions from <file> instead of calling git-rev-list" msgstr "Изчитане на верÑиите от ФÐЙЛ, а не чрез изпълнение на „git-rev-list“" -#: builtin/blame.c:2259 +#: builtin/blame.c:2518 msgid "Use <file>'s contents as the final image" msgstr "Използване на Ñъдържанието на ФÐЙЛа като крайно положение" -#: builtin/blame.c:2260 builtin/blame.c:2261 +#: builtin/blame.c:2519 builtin/blame.c:2520 msgid "score" msgstr "напаÑване на редовете" -#: builtin/blame.c:2260 +#: builtin/blame.c:2519 msgid "Find line copies within and across files" msgstr "" "ТърÑене на копирани редове както в рамките на един файл, така и от един файл " "към друг" -#: builtin/blame.c:2261 +#: builtin/blame.c:2520 msgid "Find line movements within and across files" msgstr "" "ТърÑене на премеÑтени редове както в рамките на един файл, така и от един " "файл към друг" -#: builtin/blame.c:2262 +#: builtin/blame.c:2521 msgid "n,m" msgstr "n,m" -#: builtin/blame.c:2262 +#: builtin/blame.c:2521 msgid "Process only line range n,m, counting from 1" msgstr "" "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ñамо за редовете в интервала от n до m включително. Броенето " "започва от 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:2599 +msgid "4 years, 11 months ago" +msgstr "преди 4 години и 11 меÑеца" + #: builtin/branch.c:24 msgid "git branch [options] [-r | -a] [--merged | --no-merged]" -msgstr "git branch [ОПЦИИ] [-r | -a] [--merged | --no-merged]" +msgstr "git branch [ОПЦИЯ…] [-r | -a] [--merged | --no-merged]" #: builtin/branch.c:25 msgid "git branch [options] [-l] [-f] <branchname> [<start-point>]" -msgstr "git branch [ОПЦИИ] [-l] [-f] ИМЕ_ÐÐ_КЛОР[ÐÐЧÐЛО]" +msgstr "git branch [ОПЦИЯ…] [-l] [-f] ИМЕ_ÐÐ_КЛОР[ÐÐЧÐЛО]" #: builtin/branch.c:26 msgid "git branch [options] [-r] (-d | -D) <branchname>..." -msgstr "git branch [ОПЦИИ] [-r] (-d | -D) ИМЕ_ÐÐ_КЛОÐ…" +msgstr "git branch [ОПЦИЯ…] [-r] (-d | -D) ИМЕ_ÐÐ_КЛОÐ…" #: builtin/branch.c:27 msgid "git branch [options] (-m | -M) [<oldbranch>] <newbranch>" -msgstr "git branch [ОПЦИИ] (-m | -M) [СТÐÐ _КЛОÐ] ÐОВ_КЛОÐ" +msgstr "git branch [ОПЦИЯ…] (-m | -M) [СТÐÐ _КЛОÐ] ÐОВ_КЛОÐ" #: builtin/branch.c:150 #, c-format @@ -2955,11 +3067,11 @@ msgstr "Ðа клона Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»Ð½Ð¾ име „%s“ е дадено #: builtin/branch.c:727 #, c-format msgid "Branch renamed to %s, but HEAD is not updated!" -msgstr "Клонът е преименуван на „%s“, но указателÑÑ‚ „HEAD“ не е преименуван" +msgstr "Клонът е преименуван на „%s“, но указателÑÑ‚ „HEAD“ не е обновен" #: builtin/branch.c:734 msgid "Branch is renamed, but update of config-file failed" -msgstr "Клонът е преименуван, но конфигурационниÑÑ‚ файл не бе обновен" +msgstr "Клонът е преименуван, но конфигурационниÑÑ‚ файл не е обновен" #: builtin/branch.c:749 #, c-format @@ -3001,9 +3113,9 @@ msgid "act on remote-tracking branches" msgstr "дейÑтвие върху ÑледÑщите клони" #: builtin/branch.c:817 builtin/branch.c:823 builtin/branch.c:844 -#: builtin/branch.c:850 builtin/commit.c:1494 builtin/commit.c:1495 -#: builtin/commit.c:1496 builtin/commit.c:1497 builtin/tag.c:527 -#: builtin/tag.c:533 +#: builtin/branch.c:850 builtin/commit.c:1573 builtin/commit.c:1574 +#: builtin/commit.c:1575 builtin/commit.c:1576 builtin/tag.c:615 +#: builtin/tag.c:621 msgid "commit" msgstr "подаване" @@ -3068,7 +3180,7 @@ msgstr "извеждане по колони" msgid "Failed to resolve HEAD as a valid ref." msgstr "Ðе може да Ñе открие към какво Ñочи указателÑÑ‚ „HEAD“" -#: builtin/branch.c:872 builtin/clone.c:635 +#: builtin/branch.c:872 builtin/clone.c:636 msgid "HEAD not found below refs/heads!" msgstr "Ð’ директориÑта „refs/heads“ липÑва файл „HEAD“" @@ -3179,55 +3291,60 @@ msgstr " git branch --set-upstream-to %s\n" #: builtin/bundle.c:47 #, c-format msgid "%s is okay\n" -msgstr "" +msgstr "Пратката „%s“ е наред\n" #: builtin/bundle.c:56 msgid "Need a repository to create a bundle." -msgstr "" +msgstr "За Ñъздаването на пратка е необходимо хранилище." #: builtin/bundle.c:60 msgid "Need a repository to unbundle." -msgstr "" +msgstr "За приемането на пратка е необходимо хранилище." #: builtin/cat-file.c:331 msgid "git cat-file (-t|-s|-e|-p|<type>|--textconv) <object>" -msgstr "" +msgstr "git cat-file (-t|-s|-e|-p|ВИД|--textconv) ОБЕКТ" #: builtin/cat-file.c:332 msgid "git cat-file (--batch|--batch-check) < <list_of_objects>" -msgstr "" +msgstr "git cat-file (--batch|--batch-check) < СПИСЪК_С_ОБЕКТИ" #: builtin/cat-file.c:369 msgid "<type> can be one of: blob, tree, commit, tag" msgstr "" +"ВИДът може да е: „blob“ (обект BLOB), „tree“ (дърво), „commit“ (подаване), " +"„tag“ (етикет)" #: builtin/cat-file.c:370 msgid "show object type" -msgstr "" +msgstr "извеждане на вида на обект" #: builtin/cat-file.c:371 msgid "show object size" -msgstr "" +msgstr "извеждане на размера на обект" #: builtin/cat-file.c:373 msgid "exit with zero when there's no error" -msgstr "" +msgstr "изход Ñ 0, когато нÑма грешка" #: builtin/cat-file.c:374 msgid "pretty-print object's content" -msgstr "" +msgstr "форматирано извеждане на Ñъдържанието на обекта" #: builtin/cat-file.c:376 msgid "for blob objects, run textconv on object's content" msgstr "" +"да Ñе Ñтартира програмата зададена в наÑтройката „textconv“ за преобразуване " +"на Ñъдържанието на обекта" #: builtin/cat-file.c:378 msgid "show info and content of objects fed from the standard input" msgstr "" +"извеждане на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¸ Ñъдържание на обектите подадени на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´" #: builtin/cat-file.c:381 msgid "show info about objects fed from the standard input" -msgstr "" +msgstr "извеждане на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° обектите подадени на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´" #: builtin/check-attr.c:11 msgid "git check-attr [-a | --all | attr...] [--] pathname..." @@ -3253,45 +3370,48 @@ msgstr "изчитане на имената на файловете от Ñта msgid "terminate input and output records by a NUL character" msgstr "разделÑне на входните и изходните запиÑи Ñ Ð½ÑƒÐ»ÐµÐ²Ð¸Ñ Ð·Ð½Ð°Ðº „NUL“" -#: builtin/check-ignore.c:18 builtin/checkout.c:1089 builtin/gc.c:271 +#: builtin/check-ignore.c:18 builtin/checkout.c:1083 builtin/gc.c:285 msgid "suppress progress reporting" msgstr "без показване на напредъка" #: builtin/check-ignore.c:26 msgid "show non-matching input paths" -msgstr "" +msgstr "извеждане на неÑъвпадащите пътища" #: builtin/check-ignore.c:28 msgid "ignore index when checking" -msgstr "" +msgstr "преÑкачане на индекÑа при проверката" #: builtin/check-ignore.c:154 msgid "cannot specify pathnames with --stdin" -msgstr "" +msgstr "опциÑта „--stdin“ е неÑъвмеÑтима Ñ Ð¸Ð¼ÐµÐ½Ð° на пътища" +# FIXME options #: builtin/check-ignore.c:157 msgid "-z only makes sense with --stdin" -msgstr "" +msgstr "опциÑта „-z“ изиÑква „--stdin“" #: builtin/check-ignore.c:159 msgid "no path specified" -msgstr "" +msgstr "не е зададен път" #: builtin/check-ignore.c:163 msgid "--quiet is only valid with a single pathname" -msgstr "" +msgstr "опциÑта „--quiet“ изиÑква да е подаден точно един път" +# FIXME options #: builtin/check-ignore.c:165 msgid "cannot have both --quiet and --verbose" -msgstr "" +msgstr "опциите „--quiet“ и „--verbose“ Ñа неÑъвмеÑтими" +# FIXME options #: builtin/check-ignore.c:168 msgid "--non-matching is only valid with --verbose" -msgstr "" +msgstr "опциÑта „--non-matching“ изиÑква „--verbose“" #: builtin/check-mailmap.c:8 msgid "git check-mailmap [options] <contact>..." -msgstr "git check-mailmap [ОПЦИИ] КОÐТÐКТ…" +msgstr "git check-mailmap [ОПЦИЯ…] КОÐТÐКТ…" #: builtin/check-mailmap.c:13 msgid "also read contacts from stdin" @@ -3308,55 +3428,55 @@ msgstr "не Ñа указани контакти" #: builtin/checkout-index.c:126 msgid "git checkout-index [options] [--] [<file>...]" -msgstr "" +msgstr "git checkout-index [ОПЦИЯ…] [--] [ФÐЙЛ…]" -#: builtin/checkout-index.c:187 +#: builtin/checkout-index.c:188 msgid "check out all files in the index" -msgstr "" +msgstr "изтеглÑне на вÑички файлове в индекÑа" -#: builtin/checkout-index.c:188 +#: builtin/checkout-index.c:189 msgid "force overwrite of existing files" -msgstr "" +msgstr "презапиÑване на файловете, дори и да ÑъщеÑтвуват" -#: builtin/checkout-index.c:190 +#: builtin/checkout-index.c:191 msgid "no warning for existing files and files not in index" -msgstr "" +msgstr "без Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ липÑващи файлове и файлове не в индекÑа" -#: builtin/checkout-index.c:192 +#: builtin/checkout-index.c:193 msgid "don't checkout new files" -msgstr "" +msgstr "без изтеглÑне на нови файлове" -#: builtin/checkout-index.c:194 +#: builtin/checkout-index.c:195 msgid "update stat information in the index file" msgstr "обновÑване на информациÑта получена чрез „stat“ за файловете в индекÑа" -#: builtin/checkout-index.c:200 +#: builtin/checkout-index.c:201 msgid "read list of paths from the standard input" -msgstr "" +msgstr "изчитане на пътищата от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´" -#: builtin/checkout-index.c:202 +#: builtin/checkout-index.c:203 msgid "write the content to temporary files" -msgstr "" +msgstr "запиÑване на Ñъдържанието във временни файлове" -#: builtin/checkout-index.c:203 builtin/column.c:30 +#: builtin/checkout-index.c:204 builtin/column.c:30 msgid "string" -msgstr "" +msgstr "ÐИЗ" -#: builtin/checkout-index.c:204 +#: builtin/checkout-index.c:205 msgid "when creating files, prepend <string>" -msgstr "" +msgstr "при Ñъздаването на нови файлове да Ñе Ð´Ð¾Ð±Ð°Ð²Ñ Ð¿Ñ€ÐµÑ„Ð¸ÐºÑа ÐИЗ" -#: builtin/checkout-index.c:207 +#: builtin/checkout-index.c:208 msgid "copy out the files from named stage" -msgstr "" +msgstr "копиране на файловете от това ÑÑŠÑтоÑние на Ñливане" #: builtin/checkout.c:25 msgid "git checkout [options] <branch>" -msgstr "git checkout [ОПЦИИ] КЛОÐ" +msgstr "git checkout [ОПЦИЯ…] КЛОÐ" #: builtin/checkout.c:26 msgid "git checkout [options] [<branch>] -- <file>..." -msgstr "git checkout [ОПЦИИ] [КЛОÐ] -- ФÐЙЛ…" +msgstr "git checkout [ОПЦИЯ…] [КЛОÐ] -- ФÐЙЛ…" #: builtin/checkout.c:114 builtin/checkout.c:147 #, c-format @@ -3390,77 +3510,77 @@ msgstr "пътÑÑ‚ „%s“ не може да бъде ÑлÑн" msgid "Unable to add merge result for '%s'" msgstr "Резултатът за „%s“ не може да бъде ÑлÑн" -#: builtin/checkout.c:232 builtin/checkout.c:235 builtin/checkout.c:238 -#: builtin/checkout.c:241 +#: builtin/checkout.c:231 builtin/checkout.c:234 builtin/checkout.c:237 +#: builtin/checkout.c:240 #, c-format msgid "'%s' cannot be used with updating paths" msgstr "ОпциÑта „%s“ е неÑъвмеÑтима Ñ Ð¾Ð±Ð½Ð¾Ð²Ñването на пътища" -#: builtin/checkout.c:244 builtin/checkout.c:247 +#: builtin/checkout.c:243 builtin/checkout.c:246 #, c-format msgid "'%s' cannot be used with %s" msgstr "ОпциÑта „%s“ е неÑъвмеÑтима Ñ â€ž%s“" -#: builtin/checkout.c:250 +#: builtin/checkout.c:249 #, c-format msgid "Cannot update paths and switch to branch '%s' at the same time." msgstr "" "Ðевъзможно е едновременно да обновÑвате пътища и да Ñе прехвърлите към клона " "„%s“." -#: builtin/checkout.c:261 builtin/checkout.c:450 +#: builtin/checkout.c:260 builtin/checkout.c:449 msgid "corrupt index file" msgstr "повреден файл на индекÑа" -#: builtin/checkout.c:321 builtin/checkout.c:328 +#: builtin/checkout.c:320 builtin/checkout.c:327 #, c-format msgid "path '%s' is unmerged" msgstr "пътÑÑ‚ „%s“ не е ÑлÑÑ‚" -#: builtin/checkout.c:472 +#: builtin/checkout.c:471 msgid "you need to resolve your current index first" msgstr "първо Ñ‚Ñ€Ñбва да коригирате индекÑа Ñи" -#: builtin/checkout.c:593 +#: builtin/checkout.c:591 #, c-format msgid "Can not do reflog for '%s'\n" msgstr "Журналът на указателите за „%s“ не може да бъде Ñъздаден\n" -#: builtin/checkout.c:631 +#: builtin/checkout.c:629 msgid "HEAD is now at" msgstr "УказателÑÑ‚ „HEAD“ в момента Ñочи към" -#: builtin/checkout.c:638 +#: builtin/checkout.c:636 #, c-format msgid "Reset branch '%s'\n" msgstr "ЗанулÑване на клона „%s“\n" -#: builtin/checkout.c:641 +#: builtin/checkout.c:639 #, c-format msgid "Already on '%s'\n" msgstr "Вече Ñте на „%s“\n" -#: builtin/checkout.c:645 +#: builtin/checkout.c:643 #, c-format msgid "Switched to and reset branch '%s'\n" msgstr "Преминаване към клона „%s“ и занулÑване на промените\n" -#: builtin/checkout.c:647 builtin/checkout.c:1032 +#: builtin/checkout.c:645 builtin/checkout.c:1026 #, c-format msgid "Switched to a new branch '%s'\n" msgstr "Преминахте към Ð½Ð¾Ð²Ð¸Ñ ÐºÐ»Ð¾Ð½ „%s“\n" -#: builtin/checkout.c:649 +#: builtin/checkout.c:647 #, c-format msgid "Switched to branch '%s'\n" msgstr "Преминахте към клона „%s“\n" -#: builtin/checkout.c:705 +#: builtin/checkout.c:699 #, c-format msgid " ... and %d more.\n" msgstr "… и още %d.\n" -#: builtin/checkout.c:711 +#: builtin/checkout.c:705 #, c-format msgid "" "Warning: you are leaving %d commit behind, not connected to\n" @@ -3482,7 +3602,7 @@ msgstr[1] "" "\n" "%s\n" -#: builtin/checkout.c:729 +#: builtin/checkout.c:723 #, c-format msgid "" "If you want to keep them by creating a new branch, this may be a good time\n" @@ -3491,150 +3611,149 @@ msgid "" " git branch new_branch_name %s\n" "\n" msgstr "" -"Ðко вÑе пак иÑкате да ги запазите, Ñега вероÑтно е най-подходÑщиÑÑ‚ момент " -"да\n" -"Ñъздадете нов клон Ñ Ñ‚ÑÑ… чрез командата:\n" +"Ðко вÑе пак иÑкате да запазите тези промени, Ñега е най-подходÑщиÑÑ‚\n" +"момент да Ñъздадете нов клон за Ñ‚ÑÑ… чрез командата:\n" "\n" " git branch ИМЕ_ÐÐ_ÐОВИЯ_КЛОР%s\n" "\n" -#: builtin/checkout.c:759 +#: builtin/checkout.c:753 msgid "internal error in revision walk" msgstr "вътрешна грешка при обхождането на верÑиите" -#: builtin/checkout.c:763 +#: builtin/checkout.c:757 msgid "Previous HEAD position was" msgstr "Преди това „HEAD“ Ñочеше към" -#: builtin/checkout.c:790 builtin/checkout.c:1027 +#: builtin/checkout.c:784 builtin/checkout.c:1021 msgid "You are on a branch yet to be born" msgstr "Ð’ момента Ñте на клон, който предÑтои да бъде Ñъздаден" -#: builtin/checkout.c:934 +#: builtin/checkout.c:928 #, c-format msgid "only one reference expected, %d given." msgstr "очакваше Ñе един указател, а Ñте подали %d." -#: builtin/checkout.c:973 +#: builtin/checkout.c:967 #, c-format msgid "invalid reference: %s" msgstr "неправилен указател: %s" -#: builtin/checkout.c:1002 +#: builtin/checkout.c:996 #, c-format msgid "reference is not a tree: %s" msgstr "указателÑÑ‚ не Ñочи към обект-дърво: %s" -#: builtin/checkout.c:1041 +#: builtin/checkout.c:1035 msgid "paths cannot be used with switching branches" msgstr "задаването на път е неÑъвмеÑтимо Ñ Ð¿Ñ€ÐµÐ¼Ð¸Ð½Ð°Ð²Ð°Ð½ÐµÑ‚Ð¾ от един клон към друг" -#: builtin/checkout.c:1044 builtin/checkout.c:1048 +#: builtin/checkout.c:1038 builtin/checkout.c:1042 #, c-format msgid "'%s' cannot be used with switching branches" msgstr "опциÑта „%s“ е неÑъвмеÑтима Ñ Ð¿Ñ€ÐµÐ¼Ð¸Ð½Ð°Ð²Ð°Ð½ÐµÑ‚Ð¾ от един клон към друг" -#: builtin/checkout.c:1052 builtin/checkout.c:1055 builtin/checkout.c:1060 -#: builtin/checkout.c:1063 +#: builtin/checkout.c:1046 builtin/checkout.c:1049 builtin/checkout.c:1054 +#: builtin/checkout.c:1057 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "опциÑта „%s“ е неÑъвмеÑтима Ñ â€ž%s“" -#: builtin/checkout.c:1068 +#: builtin/checkout.c:1062 #, c-format msgid "Cannot switch branch to a non-commit '%s'" msgstr "" "За да преминете към клон, подайте указател, който Ñочи към подаване. „%s“ не " "е такъв" -#: builtin/checkout.c:1090 builtin/checkout.c:1092 builtin/clone.c:88 +#: builtin/checkout.c:1084 builtin/checkout.c:1086 builtin/clone.c:88 #: builtin/remote.c:159 builtin/remote.c:161 msgid "branch" msgstr "клон" -#: builtin/checkout.c:1091 +#: builtin/checkout.c:1085 msgid "create and checkout a new branch" msgstr "Ñъздаване и преминаване към нов клон" -#: builtin/checkout.c:1093 +#: builtin/checkout.c:1087 msgid "create/reset and checkout a branch" msgstr "Ñъздаване/занулÑване на клон и преминаване към него" -#: builtin/checkout.c:1094 +#: builtin/checkout.c:1088 msgid "create reflog for new branch" msgstr "Ñъздаване на журнал на указателите за нов клон" -#: builtin/checkout.c:1095 +#: builtin/checkout.c:1089 msgid "detach the HEAD at named commit" msgstr "отделÑне на ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€žHEAD“ към указаното подаване" -#: builtin/checkout.c:1096 +#: builtin/checkout.c:1090 msgid "set upstream info for new branch" msgstr "задаване на кой клон бива Ñледен при Ñъздаването на Ð½Ð¾Ð²Ð¸Ñ ÐºÐ»Ð¾Ð½" -#: builtin/checkout.c:1098 +#: builtin/checkout.c:1092 msgid "new-branch" msgstr "ÐОВ_КЛОÐ" -#: builtin/checkout.c:1098 +#: builtin/checkout.c:1092 msgid "new unparented branch" msgstr "нов клон без родител" -#: builtin/checkout.c:1099 +#: builtin/checkout.c:1093 msgid "checkout our version for unmerged files" msgstr "изтеглÑне на вашата верÑÐ¸Ñ Ð½Ð° неÑлетите файлове" -#: builtin/checkout.c:1101 +#: builtin/checkout.c:1095 msgid "checkout their version for unmerged files" msgstr "изтеглÑне на чуждата верÑÐ¸Ñ Ð½Ð° неÑлетите файлове" -#: builtin/checkout.c:1103 +#: builtin/checkout.c:1097 msgid "force checkout (throw away local modifications)" msgstr "принудително изтеглÑне (вашите промени ще бъдат занулени)" -#: builtin/checkout.c:1104 +#: builtin/checkout.c:1098 msgid "perform a 3-way merge with the new branch" msgstr "извършване на тройно Ñливане Ñ Ð½Ð¾Ð²Ð¸Ñ ÐºÐ»Ð¾Ð½" -#: builtin/checkout.c:1105 builtin/merge.c:225 +#: builtin/checkout.c:1099 builtin/merge.c:225 msgid "update ignored files (default)" msgstr "обновÑване на игнорираните файлове (Ñтандартно)" -#: builtin/checkout.c:1106 builtin/log.c:1228 parse-options.h:245 +#: builtin/checkout.c:1100 builtin/log.c:1236 parse-options.h:245 msgid "style" msgstr "Ñтил" -#: builtin/checkout.c:1107 +#: builtin/checkout.c:1101 msgid "conflict style (merge or diff3)" msgstr "дейÑтвие при конфликт (Ñливане или тройна разлика)" -#: builtin/checkout.c:1110 +#: builtin/checkout.c:1104 msgid "do not limit pathspecs to sparse entries only" msgstr "без ограничаване на изброените пътища Ñамо до чаÑтично изтеглените" -#: builtin/checkout.c:1112 +#: builtin/checkout.c:1106 msgid "second guess 'git checkout no-such-branch'" msgstr "" "поÑледващ опит за отгатване Ñлед неуÑпешен опит Ñ â€žgit checkout no-such-" "branch“" -#: builtin/checkout.c:1135 +#: builtin/checkout.c:1129 msgid "-b, -B and --orphan are mutually exclusive" msgstr "Опциите „-b“, „-B“ и „--orphan“ Ñа неÑъвмеÑтими една Ñ Ð´Ñ€ÑƒÐ³Ð°" -#: builtin/checkout.c:1152 +#: builtin/checkout.c:1146 msgid "--track needs a branch name" msgstr "опциÑта „--track“ изиÑква име на клон" -#: builtin/checkout.c:1159 +#: builtin/checkout.c:1153 msgid "Missing branch name; try -b" msgstr "ЛипÑва име на клон, използвайте опциÑта „-b“" -#: builtin/checkout.c:1196 +#: builtin/checkout.c:1190 msgid "invalid path specification" msgstr "указан е неправилен път" -#: builtin/checkout.c:1203 +#: builtin/checkout.c:1197 #, c-format msgid "" "Cannot update paths and switch to branch '%s' at the same time.\n" @@ -3643,49 +3762,48 @@ msgstr "" "Ðе можете едновременно да обновÑвате пътища и да преминете към клона „%s“.\n" "Дали не иÑкате да изтеглите „%s“, който не Ñочи към подаване?" -#: builtin/checkout.c:1208 +#: builtin/checkout.c:1202 #, c-format msgid "git checkout: --detach does not take a path argument '%s'" msgstr "git checkout: опциÑта „--detach“ не приема аргумент-път „%s“" -#: builtin/checkout.c:1212 +#: builtin/checkout.c:1206 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." msgstr "" -"git checkout: опциите „--ours“/„--theirs“, „--force“ и „--merge“ Ñа " -"неÑъвмеÑтими\n" -"Ñ Ð¸Ð·Ñ‚ÐµÐ³Ð»Ñне от индекÑа." +"git checkout: опциите „--ours“/„--theirs“, „--force“ и „--merge“\n" +"Ñа неÑъвмеÑтими Ñ Ð¸Ð·Ñ‚ÐµÐ³Ð»Ñне от индекÑа." #: builtin/clean.c:26 msgid "" "git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <paths>..." -msgstr "" +msgstr "git clean [-d] [-f] [-i] [-n] [-q] [-e ШÐБЛОÐ] [-x | -X] [--] ПЪТ…" #: builtin/clean.c:30 #, c-format msgid "Removing %s\n" -msgstr "" +msgstr "Изтриване на „%s“\n" #: builtin/clean.c:31 #, c-format msgid "Would remove %s\n" -msgstr "" +msgstr "Файлът „%s“ ще бъде изтрит\n" #: builtin/clean.c:32 #, c-format msgid "Skipping repository %s\n" -msgstr "" +msgstr "ПреÑкачане на хранилището „%s“\n" #: builtin/clean.c:33 #, c-format msgid "Would skip repository %s\n" -msgstr "" +msgstr "Хранилището „%s“ ще бъде преÑкочено\n" #: builtin/clean.c:34 #, c-format msgid "failed to remove %s" -msgstr "" +msgstr "файлът „%s“ не може да бъде изтрит" #: builtin/clean.c:295 msgid "" @@ -3694,6 +3812,10 @@ msgid "" "foo - select item based on unique prefix\n" " - (empty) select nothing" msgstr "" +"ПодÑказка:\n" +"1 — избор на обект Ñпоред реда\n" +"ПРЕФИКС — избор на единÑтвен обект по този уникален префикÑ\n" +" — (празно) нищо да не Ñе избира" #: builtin/clean.c:299 msgid "" @@ -3706,36 +3828,47 @@ msgid "" "* - choose all items\n" " - (empty) finish selecting" msgstr "" +"ПодÑказка:\n" +"1 — избор на един обект\n" +"3-5 — интервал за избор на обекти\n" +"2-3,6-9 — множеÑтво интервали за избор на обекти\n" +"ПРЕФИКС — избор на единÑтвен обект по този уникален префикÑ\n" +"-… — отмÑна на избора на обекти\n" +"* — избиране на вÑички обекти\n" +" — (празно) завършване на избирането" +# FIXME WTF does this mean #: builtin/clean.c:517 #, c-format msgid "Huh (%s)?" -msgstr "" +msgstr "Ðеправилен избор (%s)" -#: builtin/clean.c:660 +# FIXME - should we use >> or sth else +#: builtin/clean.c:659 #, c-format msgid "Input ignore patterns>> " -msgstr "" +msgstr "Шаблони за игнорирани елементи≫ " -#: builtin/clean.c:697 +#: builtin/clean.c:696 #, c-format msgid "WARNING: Cannot find items matched by: %s" -msgstr "" +msgstr "ПРЕДУПРЕЖДЕÐИЕ: Ðикой обект не напаÑва на „%s“" -#: builtin/clean.c:718 +#: builtin/clean.c:717 msgid "Select items to delete" -msgstr "" +msgstr "Избиране на обекти за изтриване" -#: builtin/clean.c:758 +#: builtin/clean.c:757 #, c-format msgid "remove %s? " -msgstr "" +msgstr "Да Ñе изтрие ли „%s“? " -#: builtin/clean.c:783 +# FIXME improve message +#: builtin/clean.c:782 msgid "Bye." -msgstr "" +msgstr "Изход." -#: builtin/clean.c:791 +#: builtin/clean.c:790 msgid "" "clean - start cleaning\n" "filter by pattern - exclude items from deletion\n" @@ -3745,81 +3878,94 @@ msgid "" "help - this screen\n" "? - help for prompt selection" msgstr "" +"clean — начало на изчиÑтването\n" +"filter by pattern — шаблон за обекти, които да не Ñе триÑÑ‚\n" +"select by numbers — номера на обекти, които да Ñе триÑÑ‚\n" +"ask each — потвърждаване на вÑÑко изтриване (подобно на „rm -i“)\n" +"quit — край на изчиÑтването\n" +"help — този край\n" +"? — подÑказка за шаблоните" # FIXME how many *** -#: builtin/clean.c:818 +#: builtin/clean.c:817 msgid "*** Commands ***" msgstr "â—â—◠Команди â—â—â—" -#: builtin/clean.c:819 +# FIXME improve message +#: builtin/clean.c:818 msgid "What now" -msgstr "" +msgstr "Избор на Ñледващо дейÑтвие" -#: builtin/clean.c:827 +#: builtin/clean.c:826 msgid "Would remove the following item:" msgid_plural "Would remove the following items:" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "СледниÑÑ‚ обект ще бъде изтрит:" +msgstr[1] "Следните обекти ще бъдат изтрити:" -#: builtin/clean.c:844 +#: builtin/clean.c:843 msgid "No more files to clean, exiting." -msgstr "" +msgstr "Файловете за изчиÑтване Ñвършиха. Изход от програмата." -#: builtin/clean.c:875 +#: builtin/clean.c:874 msgid "do not print names of files removed" -msgstr "" +msgstr "без извеждане на имената на файловете, които ще бъдат изтрити" -#: builtin/clean.c:877 +#: builtin/clean.c:876 msgid "force" -msgstr "" +msgstr "принудително изтриване" -#: builtin/clean.c:878 +#: builtin/clean.c:877 msgid "interactive cleaning" -msgstr "" +msgstr "интерактивно изтриване" -#: builtin/clean.c:880 +#: builtin/clean.c:879 msgid "remove whole directories" -msgstr "" +msgstr "изтриване на цели директории" -#: builtin/clean.c:881 builtin/describe.c:415 builtin/grep.c:716 -#: builtin/ls-files.c:486 builtin/name-rev.c:314 builtin/show-ref.c:185 +#: builtin/clean.c:880 builtin/describe.c:406 builtin/grep.c:714 +#: builtin/ls-files.c:486 builtin/name-rev.c:311 builtin/show-ref.c:185 msgid "pattern" msgstr "шаблон" -#: builtin/clean.c:882 +#: builtin/clean.c:881 msgid "add <pattern> to ignore rules" -msgstr "" +msgstr "добавÑне на ШÐБЛОРот файлове, които да не Ñе триÑÑ‚" -#: builtin/clean.c:883 +#: builtin/clean.c:882 msgid "remove ignored files, too" -msgstr "" +msgstr "изтриване и на игнорираните файлове" -#: builtin/clean.c:885 +#: builtin/clean.c:884 msgid "remove only ignored files" -msgstr "" +msgstr "изтриване Ñамо на игнорирани файлове" -#: builtin/clean.c:903 +#: builtin/clean.c:902 msgid "-x and -X cannot be used together" -msgstr "" +msgstr "опциите „-x“ и „-X“ Ñа неÑъвмеÑтими" -#: builtin/clean.c:907 +#: builtin/clean.c:906 msgid "" "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to " "clean" msgstr "" +"ÐаÑтройката „clean.requireForce“ е зададена като иÑтина, което изиÑква нÑÐºÐ¾Ñ " +"от опциите „-i“, „-n“ или „-f“. ÐÑма да Ñе извърши изчиÑтване" -#: builtin/clean.c:910 +#: builtin/clean.c:909 msgid "" "clean.requireForce defaults to true and neither -i, -n, nor -f given; " "refusing to clean" msgstr "" +"ÐаÑтройката „clean.requireForce“ не е зададена, но Ñтандартно е иÑтина, " +"което изиÑква нÑÐºÐ¾Ñ Ð¾Ñ‚ опциите „-i“, „-n“ или „-f“. ÐÑма да Ñе извърши " +"изчиÑтване" #: builtin/clone.c:36 msgid "git clone [options] [--] <repo> [<dir>]" -msgstr "git clone [ОПЦИИ] [--] ХРÐÐИЛИЩЕ [ДИРЕКТОРИЯ]" +msgstr "git clone [ОПЦИЯ…] [--] ХРÐÐИЛИЩЕ [ДИРЕКТОРИЯ]" -#: builtin/clone.c:64 builtin/fetch.c:97 builtin/merge.c:222 -#: builtin/push.c:504 +#: builtin/clone.c:64 builtin/fetch.c:112 builtin/merge.c:222 +#: builtin/push.c:503 msgid "force progress reporting" msgstr "извеждане на напредъка" @@ -3833,7 +3979,8 @@ msgstr "Ñъздаване на голо хранилище" #: builtin/clone.c:71 msgid "create a mirror repository (implies bare)" -msgstr "Ñъздаване на хранилище-огледало (това включва хранилището да е голо)" +msgstr "" +"Ñъздаване на хранилище-огледало (включва опциÑта „--bare“ за голо хранилище)" #: builtin/clone.c:73 msgid "to clone from a local repository" @@ -3879,7 +4026,7 @@ msgstr "изтеглÑне на този КЛОÐ, а не ÑочениÑÑ‚ от msgid "path to git-upload-pack on the remote" msgstr "път към командата „git-upload-pack“ на отдалеченото хранилище" -#: builtin/clone.c:92 builtin/fetch.c:98 builtin/grep.c:661 +#: builtin/clone.c:92 builtin/fetch.c:113 builtin/grep.c:659 msgid "depth" msgstr "ДЪЛБОЧИÐÐ" @@ -3952,7 +4099,7 @@ msgstr "връзката „%s“ не може да бъде Ñъздадена #: builtin/clone.c:365 #, c-format msgid "failed to copy file to '%s'" -msgstr "файлът не можа да бъде копиран като „%s“" +msgstr "файлът не може да бъде копиран като „%s“" #: builtin/clone.c:388 builtin/clone.c:565 #, c-format @@ -3974,152 +4121,153 @@ msgstr "" #, c-format msgid "Could not find remote branch %s to clone." msgstr "" -"Клонът „%s“ от отдалеченото хранилище което клонирате,\n" -"който Ñледва да бъде изтеглен, не ÑъщеÑтвува." +"Клонът „%s“ от отдалеченото хранилище, което клонирате,\n" +"и който Ñледва да бъде изтеглен, не ÑъщеÑтвува." +# FIXME translator note that the space at end is necesssary #: builtin/clone.c:560 #, c-format msgid "Checking connectivity... " -msgstr "Проверка на връзката…" +msgstr "Проверка на връзката… " #: builtin/clone.c:563 msgid "remote did not send all necessary objects" msgstr "отдалеченото хранилище не изпрати вÑички необходими обекти." -#: builtin/clone.c:626 +#: builtin/clone.c:627 msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n" msgstr "" "указателÑÑ‚ „HEAD“ от отдалеченото хранилище Ñочи към нещо,\n" "което не ÑъщеÑтвува. Ðе може да Ñе изтегли определен клон.\n" -#: builtin/clone.c:657 +#: builtin/clone.c:658 msgid "unable to checkout working tree" msgstr "работното дърво не може да бъде подготвено" -#: builtin/clone.c:765 +#: builtin/clone.c:768 msgid "Too many arguments." msgstr "Прекалено много аргументи." -#: builtin/clone.c:769 +#: builtin/clone.c:772 msgid "You must specify a repository to clone." msgstr "ТрÑбва да укажете кое хранилище иÑкате да клонирате." -#: builtin/clone.c:780 +#: builtin/clone.c:783 #, c-format msgid "--bare and --origin %s options are incompatible." msgstr "опциите „--bare“ и „--origin %s“ Ñа неÑъвмеÑтими." -#: builtin/clone.c:783 +#: builtin/clone.c:786 msgid "--bare and --separate-git-dir are incompatible." msgstr "опциите „--bare“ и „--separate-git-dir“ Ñа неÑъвмеÑтими." -#: builtin/clone.c:796 +#: builtin/clone.c:799 #, c-format msgid "repository '%s' does not exist" msgstr "не ÑъщеÑтвува хранилище „%s“" -#: builtin/clone.c:802 -msgid "--depth is ignored in local clones; use file:// instead." -msgstr "" -"При локално клониране опциÑта „--depth“ Ñе игнорира. Ползвайте Ñхемата " -"„file://“." - -#: builtin/clone.c:805 -msgid "source repository is shallow, ignoring --local" -msgstr "клонираното хранилище е плитко, затова опциÑта „--local“ Ñе игнорира" - -#: builtin/clone.c:810 -msgid "--local is ignored" -msgstr "опциÑта „--local“ Ñе игнорира" - -#: builtin/clone.c:814 builtin/fetch.c:1119 +#: builtin/clone.c:805 builtin/fetch.c:1143 #, c-format msgid "depth %s is not a positive number" msgstr "дълбочината Ñ‚Ñ€Ñбва да е положително цÑло чиÑло, а не „%s“" -#: builtin/clone.c:824 +#: builtin/clone.c:815 #, c-format msgid "destination path '%s' already exists and is not an empty directory." msgstr "целевиÑÑ‚ път „%s“ ÑъщеÑтвува и не е празна директориÑ." -#: builtin/clone.c:834 +#: builtin/clone.c:825 #, c-format msgid "working tree '%s' already exists." msgstr "в „%s“ вече ÑъщеÑтвува работно дърво." -#: builtin/clone.c:847 builtin/clone.c:859 +#: builtin/clone.c:838 builtin/clone.c:850 #, c-format msgid "could not create leading directories of '%s'" msgstr "родителÑките директории на „%s“ не могат да бъдат Ñъздадени" -#: builtin/clone.c:850 +#: builtin/clone.c:841 #, c-format msgid "could not create work tree dir '%s'." msgstr "работното дърво в „%s“ не може да бъде Ñъздадено." -#: builtin/clone.c:869 +#: builtin/clone.c:860 #, c-format msgid "Cloning into bare repository '%s'...\n" msgstr "Клониране и Ñъздаване на голо хранилище в „%s“…\n" -#: builtin/clone.c:871 +#: builtin/clone.c:862 #, c-format msgid "Cloning into '%s'...\n" msgstr "Клониране и Ñъздаване на хранилище в „%s“…\n" +#: builtin/clone.c:898 +msgid "--depth is ignored in local clones; use file:// instead." +msgstr "" +"При локално клониране опциÑта „--depth“ Ñе игнорира. Ползвайте Ñхемата " +"„file://“." + +#: builtin/clone.c:901 +msgid "source repository is shallow, ignoring --local" +msgstr "клонираното хранилище е плитко, затова опциÑта „--local“ Ñе игнорира" + #: builtin/clone.c:906 +msgid "--local is ignored" +msgstr "опциÑта „--local“ Ñе игнорира" + +#: builtin/clone.c:910 #, c-format msgid "Don't know how to clone %s" msgstr "Ðе Ñе поддържа клониране на връзки от вида „%s“ " -#: builtin/clone.c:957 builtin/clone.c:965 +#: builtin/clone.c:961 builtin/clone.c:969 #, c-format msgid "Remote branch %s not found in upstream %s" msgstr "ОтдалечениÑÑ‚ клон „%s“ липÑва в клонираното хранилище „%s“" -#: builtin/clone.c:968 +#: builtin/clone.c:972 msgid "You appear to have cloned an empty repository." msgstr "Изглежда клонирахте празно хранилище." #: builtin/column.c:9 msgid "git column [options]" -msgstr "" +msgstr "git column [ОПЦИЯ…]" #: builtin/column.c:26 msgid "lookup config vars" -msgstr "" +msgstr "извеждане на наÑтройките" #: builtin/column.c:27 builtin/column.c:28 msgid "layout to use" -msgstr "" +msgstr "как да Ñе подреди резултата" #: builtin/column.c:29 msgid "Maximum width" -msgstr "" +msgstr "МакÑимална широчина" #: builtin/column.c:30 msgid "Padding space on left border" -msgstr "" +msgstr "Поле в знаци отлÑво" #: builtin/column.c:31 msgid "Padding space on right border" -msgstr "" +msgstr "Поле в знаци отдÑÑно" #: builtin/column.c:32 msgid "Padding space between columns" -msgstr "" +msgstr "Поле в знаци между колоните" #: builtin/column.c:51 msgid "--command must be the first argument" -msgstr "" +msgstr "опциÑта „--command“ Ñ‚Ñ€Ñбва да е първиÑÑ‚ аргумент" #: builtin/commit.c:36 msgid "git commit [options] [--] <pathspec>..." -msgstr "git commit [ОПЦИИ] [--] ПЪТ…" +msgstr "git commit [ОПЦИЯ…] [--] ПЪТ…" #: builtin/commit.c:41 msgid "git status [options] [--] <pathspec>..." -msgstr "git status [ОПЦИИ] [--] ПЪТ…" +msgstr "git status [ОПЦИЯ…] [--] ПЪТ…" #: builtin/commit.c:46 msgid "" @@ -4197,90 +4345,99 @@ msgstr "" msgid "failed to unpack HEAD tree object" msgstr "неуÑпешно изваждана на върховото дърво (HEAD tree object) от пакет" -#: builtin/commit.c:330 +#: builtin/commit.c:328 msgid "unable to create temporary index" msgstr "неуÑпешно Ñъздаване на временен индекÑ" -#: builtin/commit.c:336 +#: builtin/commit.c:334 msgid "interactive add failed" msgstr "неуÑпешно интерактивно добавÑне" -#: builtin/commit.c:369 builtin/commit.c:390 builtin/commit.c:440 +#: builtin/commit.c:366 builtin/commit.c:387 builtin/commit.c:435 msgid "unable to write new_index file" msgstr "неуÑпешен Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° Ð½Ð¾Ð²Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑ" -#: builtin/commit.c:421 +#: builtin/commit.c:418 msgid "cannot do a partial commit during a merge." msgstr "по време на Ñливане не може да Ñе извърши чаÑтично подаване." -#: builtin/commit.c:423 +#: builtin/commit.c:420 msgid "cannot do a partial commit during a cherry-pick." msgstr "по време на отбиране не може да Ñе извърши чаÑтично подаване." -#: builtin/commit.c:433 +#: builtin/commit.c:429 msgid "cannot read the index" msgstr "индекÑÑŠÑ‚ не може да бъде прочетен" -#: builtin/commit.c:453 +#: builtin/commit.c:447 msgid "unable to write temporary index file" msgstr "временниÑÑ‚ Ð¸Ð½Ð´ÐµÐºÑ Ð½Ðµ може да бъде запиÑан" -#: builtin/commit.c:544 builtin/commit.c:550 +#: builtin/commit.c:557 builtin/commit.c:563 #, c-format msgid "invalid commit: %s" msgstr "неправилно подаване: %s" -#: builtin/commit.c:572 +#: builtin/commit.c:585 msgid "malformed --author parameter" msgstr "неправилен параметър към опциÑта „--author“" #: builtin/commit.c:592 #, c-format +msgid "invalid date format: %s" +msgstr "неправилен формат на дата: %s" + +#: builtin/commit.c:609 +#, c-format msgid "Malformed ident string: '%s'" msgstr "Ðеправилен низ за идентичноÑÑ‚: „%s“" -#: builtin/commit.c:629 builtin/commit.c:663 builtin/commit.c:1014 +#: builtin/commit.c:642 +msgid "" +"unable to select a comment character that is not used\n" +"in the current commit message" +msgstr "" +"не може да Ñе избере знак за коментар — в текущото Ñъобщение за подаване Ñа " +"използвани вÑички подобни знаци" + +#: builtin/commit.c:679 builtin/commit.c:712 builtin/commit.c:1086 #, c-format msgid "could not lookup commit %s" msgstr "Ñледното подаване не може да бъде открито: %s" -#: builtin/commit.c:641 builtin/shortlog.c:273 +#: builtin/commit.c:691 builtin/shortlog.c:273 #, c-format msgid "(reading log message from standard input)\n" msgstr "(изчитане на Ñъобщението за подаване от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´)\n" -#: builtin/commit.c:643 +#: builtin/commit.c:693 msgid "could not read log from standard input" msgstr "Ñъобщението за подаване не бе прочетено ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´" -#: builtin/commit.c:647 +#: builtin/commit.c:697 #, c-format msgid "could not read log file '%s'" msgstr "файлът ÑÑŠÑ Ñъобщението за подаване „%s“ не може да бъде прочетен" -#: builtin/commit.c:654 -msgid "commit has empty message" -msgstr "подаване Ñ Ð¿Ñ€Ð°Ð·Ð½Ð¾ Ñъобщение" - -#: builtin/commit.c:670 +#: builtin/commit.c:719 msgid "could not read MERGE_MSG" msgstr "Ñъобщението за Ñливане MERGE_MSG не може да бъде прочетено" -#: builtin/commit.c:674 +#: builtin/commit.c:723 msgid "could not read SQUASH_MSG" msgstr "Ñъобщението за Ñмачкване SQUASH_MSG не може да бъде прочетено" -#: builtin/commit.c:678 +#: builtin/commit.c:727 #, c-format msgid "could not read '%s'" msgstr "файлът „%s“ не може да бъде прочетен" -#: builtin/commit.c:749 +#: builtin/commit.c:798 msgid "could not write commit template" msgstr "шаблонът за подаване не може да бъде запазен" # FIXME -#: builtin/commit.c:764 +#: builtin/commit.c:816 #, c-format msgid "" "\n" @@ -4296,7 +4453,7 @@ msgstr "" "и опитайте отново.\n" # FIXME -#: builtin/commit.c:769 +#: builtin/commit.c:821 #, c-format msgid "" "\n" @@ -4312,16 +4469,16 @@ msgstr "" " %s\n" "и опитайте отново.\n" -#: builtin/commit.c:782 +#: builtin/commit.c:834 #, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" "with '%c' will be ignored, and an empty message aborts the commit.\n" msgstr "" "Въведете Ñъобщението за подаване на промените. Редовете, които започват\n" -"Ñ â€ž%c“ ще бъдат филтрирани, а празно Ñъобщение Ð¾Ñ‚Ð¼ÐµÐ½Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½ÐµÑ‚Ð¾.\n" +"Ñ â€ž%c“, ще бъдат пропуÑнати, а празно Ñъобщение преуÑтановÑва подаването.\n" -#: builtin/commit.c:789 +#: builtin/commit.c:841 #, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" @@ -4329,154 +4486,158 @@ msgid "" "An empty message aborts the commit.\n" msgstr "" "Въведете Ñъобщението за подаване на промените. Редовете, които започват\n" -"Ñ â€ž%c“ ÐЯМРда бъдат филтрирани, може да ги изтриете вие. Празно \n" -"Ñъобщение Ð¾Ñ‚Ð¼ÐµÐ½Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½ÐµÑ‚Ð¾.\n" +"Ñ â€ž%c“, Ñъщо ще бъдат включени — може да ги изтриете вие. Празно \n" +"Ñъобщение преуÑтановÑва подаването.\n" -#: builtin/commit.c:802 +#: builtin/commit.c:855 #, c-format -msgid "%sAuthor: %s" -msgstr "%sÐвтор: %s" +msgid "%sAuthor: %.*s <%.*s>" +msgstr "%sÐвтор: %.*s <%.*s>" -#: builtin/commit.c:809 +#: builtin/commit.c:863 #, c-format -msgid "%sCommitter: %s" -msgstr "%sПодаващ: %s" +msgid "%sDate: %s" +msgstr "%sДата: %s" -#: builtin/commit.c:829 +#: builtin/commit.c:870 +#, c-format +msgid "%sCommitter: %.*s <%.*s>" +msgstr "%sПодаващ: %.*s <%.*s>" + +#: builtin/commit.c:888 msgid "Cannot read index" msgstr "ИндекÑÑŠÑ‚ не може да бъде прочетен" -#: builtin/commit.c:872 +#: builtin/commit.c:945 msgid "Error building trees" msgstr "Грешка при изграждане на дърветата" -#: builtin/commit.c:887 builtin/tag.c:391 +#: builtin/commit.c:960 builtin/tag.c:495 #, c-format msgid "Please supply the message using either -m or -F option.\n" msgstr "Подайте Ñъобщението Ñ Ð½ÑÐºÐ¾Ñ Ð¾Ñ‚ опциите „-m“ или „-F“.\n" -#: builtin/commit.c:989 +#: builtin/commit.c:1061 #, c-format msgid "No existing author found with '%s'" msgstr "Ðе е открит автор Ñ Ð¸Ð¼Ðµ „%s“." -#: builtin/commit.c:1004 builtin/commit.c:1244 +#: builtin/commit.c:1076 builtin/commit.c:1316 #, c-format msgid "Invalid untracked files mode '%s'" msgstr "Ðеправилна ÑтойноÑÑ‚ за неÑледените файлове: „%s“" -#: builtin/commit.c:1041 +#: builtin/commit.c:1113 msgid "--long and -z are incompatible" msgstr "Опциите „--long“ и „-z“ Ñа неÑъвмеÑтими." -#: builtin/commit.c:1071 +#: builtin/commit.c:1143 msgid "Using both --reset-author and --author does not make sense" msgstr "Опциите „--reset-author“ и „--author“ Ñа неÑъвмеÑтими." -#: builtin/commit.c:1080 +#: builtin/commit.c:1152 msgid "You have nothing to amend." msgstr "ÐÑма какво да бъде поправено." -#: builtin/commit.c:1083 +#: builtin/commit.c:1155 msgid "You are in the middle of a merge -- cannot amend." msgstr "Ð’ момента Ñе извършва Ñливане, не можете да поправÑте." -#: builtin/commit.c:1085 +#: builtin/commit.c:1157 msgid "You are in the middle of a cherry-pick -- cannot amend." msgstr "Ð’ момента Ñе извършва отбиране на подаване, не можете да поправÑте." -#: builtin/commit.c:1088 +#: builtin/commit.c:1160 msgid "Options --squash and --fixup cannot be used together" msgstr "Опциите „--squash“ и „--fixup“ Ñа неÑъвмеÑтими." -#: builtin/commit.c:1098 +#: builtin/commit.c:1170 msgid "Only one of -c/-C/-F/--fixup can be used." -msgstr "" -"Можете да използвате Ñамо една от опциите „-c“, „-C“, „-F“ и „--fixup“." +msgstr "Опциите „-c“, „-C“, „-F“ и „--fixup““ Ñа неÑъвмеÑтими." -#: builtin/commit.c:1100 +#: builtin/commit.c:1172 msgid "Option -m cannot be combined with -c/-C/-F/--fixup." msgstr "ОпциÑта „-m“ е неÑъвмеÑтима Ñ â€ž-c“, „-C“, „-F“ и „--fixup“." -#: builtin/commit.c:1108 +#: builtin/commit.c:1180 msgid "--reset-author can be used only with -C, -c or --amend." msgstr "" "ОпциÑта „--reset-author“ може да Ñе използва Ñамо заедно Ñ â€ž-C“, „-c“ или\n" "„--amend“." -#: builtin/commit.c:1125 +#: builtin/commit.c:1197 msgid "Only one of --include/--only/--all/--interactive/--patch can be used." msgstr "" "Опциите „--include“, „--only“, „--all“, „--interactive“ и „--patch“ Ñа\n" "неÑъвмеÑтими." -#: builtin/commit.c:1127 +#: builtin/commit.c:1199 msgid "No paths with --include/--only does not make sense." msgstr "Опциите „--include“ и „--only“ изиÑкват аргументи." # FIXME bad message -#: builtin/commit.c:1129 +#: builtin/commit.c:1201 msgid "Clever... amending the last one with dirty index." msgstr "" -"ПоправÑте поÑледното подаване докато индекÑа има проблеми. Това е лоша идеÑ." +"ПоправÑте поÑледното подаване докато индекÑÑŠÑ‚ има проблеми. Това е лоша идеÑ." -#: builtin/commit.c:1131 +#: builtin/commit.c:1203 msgid "Explicit paths specified without -i or -o; assuming --only paths..." msgstr "" "Зададени Ñа изрични пътища без опциите „-i“ или „-o“. Приема Ñе, че вÑе едно " "Ñте\n" "ползвали опциÑта „--only“ Ñ ÐŸÐªÐ¢Ð¸Ñ‰Ð°â€¦" -#: builtin/commit.c:1143 builtin/tag.c:639 +#: builtin/commit.c:1215 builtin/tag.c:727 #, c-format msgid "Invalid cleanup mode %s" msgstr "ÐеÑъщеÑтвуващ режим на изчиÑтване „%s“" -#: builtin/commit.c:1148 +#: builtin/commit.c:1220 msgid "Paths with -a does not make sense." -msgstr "Използването на пътища е неÑъвмеÑтимо ÑÑŠÑ Ð·Ð°Ð´Ð°Ð²Ð°Ð½ÐµÑ‚Ð¾ на опциÑта „-a“." +msgstr "ОпциÑта „-a“ е неÑъвмеÑтима ÑÑŠÑ Ð·Ð°Ð´Ð°Ð²Ð°Ð½ÐµÑ‚Ð¾ на пътища." -#: builtin/commit.c:1258 builtin/commit.c:1516 +#: builtin/commit.c:1330 builtin/commit.c:1595 msgid "show status concisely" msgstr "кратка Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° ÑÑŠÑтоÑнието" -#: builtin/commit.c:1260 builtin/commit.c:1518 +#: builtin/commit.c:1332 builtin/commit.c:1597 msgid "show branch information" msgstr "Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° клоните" -#: builtin/commit.c:1262 builtin/commit.c:1520 builtin/push.c:490 +#: builtin/commit.c:1334 builtin/commit.c:1599 builtin/push.c:489 msgid "machine-readable output" msgstr "формат на изхода за четене от програма" -#: builtin/commit.c:1265 builtin/commit.c:1522 +#: builtin/commit.c:1337 builtin/commit.c:1601 msgid "show status in long format (default)" msgstr "подробна Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° ÑÑŠÑтоÑнието (Ñтандартно)" -#: builtin/commit.c:1268 builtin/commit.c:1525 +#: builtin/commit.c:1340 builtin/commit.c:1604 msgid "terminate entries with NUL" msgstr "разделÑне на елементите Ñ Ð½ÑƒÐ»ÐµÐ²Ð¸Ñ Ð·Ð½Ð°Ðº „NUL“" -#: builtin/commit.c:1270 builtin/commit.c:1528 builtin/fast-export.c:674 -#: builtin/fast-export.c:677 builtin/tag.c:514 +#: builtin/commit.c:1342 builtin/commit.c:1607 builtin/fast-export.c:703 +#: builtin/fast-export.c:706 builtin/tag.c:602 msgid "mode" msgstr "режим" -#: builtin/commit.c:1271 builtin/commit.c:1528 +#: builtin/commit.c:1343 builtin/commit.c:1607 msgid "show untracked files, optional modes: all, normal, no. (Default: all)" msgstr "" "извеждане на неÑледените файлове. Възможните режими Ñа „all“ (подробна\n" "информациÑ), „normal“ (кратка информациÑ), „no“ (без неÑледените файлове).\n" "СтандартниÑÑ‚ режим е: „all“." -#: builtin/commit.c:1274 +#: builtin/commit.c:1346 msgid "show ignored files" msgstr "извеждане на игнорираните файлове" -#: builtin/commit.c:1275 parse-options.h:153 +#: builtin/commit.c:1347 parse-options.h:153 msgid "when" msgstr "кога" -#: builtin/commit.c:1276 +#: builtin/commit.c:1348 msgid "" "ignore changes to submodules, optional when: all, dirty, untracked. " "(Default: all)" @@ -4485,233 +4646,233 @@ msgstr "" "една от\n" "„all“ (вÑички), „dirty“ (тези Ñ Ð½ÐµÐ¿Ð¾Ð´Ð°Ð´ÐµÐ½Ð¸ промени), „untracked“ (неÑледени)" -#: builtin/commit.c:1278 +#: builtin/commit.c:1350 msgid "list untracked files in columns" msgstr "извеждане на неÑледените файлове в колони" -#: builtin/commit.c:1347 +#: builtin/commit.c:1419 msgid "couldn't look up newly created commit" msgstr "току що Ñъздаденото подаване не може да бъде открито" -#: builtin/commit.c:1349 +#: builtin/commit.c:1421 msgid "could not parse newly created commit" msgstr "току що Ñъздаденото подаване не може да бъде анализирано" -#: builtin/commit.c:1390 +#: builtin/commit.c:1469 msgid "detached HEAD" -msgstr "неÑвързан връх HEAD" +msgstr "неÑвързан връх „HEAD“" -#: builtin/commit.c:1392 +#: builtin/commit.c:1471 msgid " (root-commit)" msgstr " (начално подаване)" -#: builtin/commit.c:1486 +#: builtin/commit.c:1565 msgid "suppress summary after successful commit" msgstr "без Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ñлед уÑпешно подаване" -#: builtin/commit.c:1487 +#: builtin/commit.c:1566 msgid "show diff in commit message template" msgstr "добавÑне на разликата към шаблона за Ñъобщението при подаване" -#: builtin/commit.c:1489 +#: builtin/commit.c:1568 msgid "Commit message options" msgstr "Опции за Ñъобщението при подаване" -#: builtin/commit.c:1490 builtin/tag.c:512 +#: builtin/commit.c:1569 builtin/tag.c:600 msgid "read message from file" -msgstr "взимане та Ñъобщението от файл" +msgstr "взимане на Ñъобщението от файл" -#: builtin/commit.c:1491 +#: builtin/commit.c:1570 msgid "author" msgstr "автор" -#: builtin/commit.c:1491 +#: builtin/commit.c:1570 msgid "override author for commit" msgstr "задаване на автор за подаването" -#: builtin/commit.c:1492 builtin/gc.c:272 +#: builtin/commit.c:1571 builtin/gc.c:286 msgid "date" msgstr "дата" -#: builtin/commit.c:1492 +#: builtin/commit.c:1571 msgid "override date for commit" msgstr "задаване на дата за подаването" -#: builtin/commit.c:1493 builtin/merge.c:216 builtin/notes.c:409 -#: builtin/notes.c:566 builtin/tag.c:510 +#: builtin/commit.c:1572 builtin/merge.c:216 builtin/notes.c:409 +#: builtin/notes.c:566 builtin/tag.c:598 msgid "message" msgstr "Ñъобщение" -#: builtin/commit.c:1493 +#: builtin/commit.c:1572 msgid "commit message" msgstr "Ñъобщение при подаване" -#: builtin/commit.c:1494 +#: builtin/commit.c:1573 msgid "reuse and edit message from specified commit" msgstr "преизползване и редактиране на Ñъобщението от указаното подаване" -#: builtin/commit.c:1495 +#: builtin/commit.c:1574 msgid "reuse message from specified commit" msgstr "преизползване на Ñъобщението от указаното подаване" -#: builtin/commit.c:1496 +#: builtin/commit.c:1575 msgid "use autosquash formatted message to fixup specified commit" msgstr "" "използване на автоматичното Ñъобщение при Ñмачкване за вкарване на " "указаното\n" "подаване в предното без Ñледа" -#: builtin/commit.c:1497 +#: builtin/commit.c:1576 msgid "use autosquash formatted message to squash specified commit" msgstr "" "използване на автоматичното Ñъобщение при Ñмачкване за Ñмачкване на " "указаното\n" "подаване в предното" -#: builtin/commit.c:1498 +#: builtin/commit.c:1577 msgid "the commit is authored by me now (used with -C/-c/--amend)" msgstr "" "ÑмÑна на автора да Ñъвпада Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ñ‰Ð¸Ñ (използва Ñе Ñ â€ž-C“/„-c“/„--amend“)" -#: builtin/commit.c:1499 builtin/log.c:1180 builtin/revert.c:86 +#: builtin/commit.c:1578 builtin/log.c:1188 builtin/revert.c:86 msgid "add Signed-off-by:" msgstr "добавÑне на поле за Ð¿Ð¾Ð´Ð¿Ð¸Ñ â€” „Signed-off-by:“" -#: builtin/commit.c:1500 +#: builtin/commit.c:1579 msgid "use specified template file" msgstr "използване на ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½ÐµÐ½ файл" -#: builtin/commit.c:1501 +#: builtin/commit.c:1580 msgid "force edit of commit" msgstr "редактиране на подаване" -#: builtin/commit.c:1502 +#: builtin/commit.c:1581 msgid "default" msgstr "Ñтандартно" -#: builtin/commit.c:1502 builtin/tag.c:515 +#: builtin/commit.c:1581 builtin/tag.c:603 msgid "how to strip spaces and #comments from message" msgstr "кои празни знаци и #коментари да Ñе махат от ÑъобщениÑта" -#: builtin/commit.c:1503 +#: builtin/commit.c:1582 msgid "include status in commit message template" msgstr "вмъкване на ÑÑŠÑтоÑнието в шаблона за Ñъобщението при подаване" -#: builtin/commit.c:1504 builtin/merge.c:223 builtin/revert.c:92 -#: builtin/tag.c:516 +#: builtin/commit.c:1583 builtin/merge.c:223 builtin/revert.c:92 +#: builtin/tag.c:604 msgid "key-id" msgstr "ИДЕÐТИФИКÐТОР_ÐÐ_КЛЮЧ" -#: builtin/commit.c:1505 builtin/merge.c:224 builtin/revert.c:93 +#: builtin/commit.c:1584 builtin/merge.c:224 builtin/revert.c:93 msgid "GPG sign commit" msgstr "подпиÑване на подаването Ñ GPG" -#: builtin/commit.c:1508 +#: builtin/commit.c:1587 msgid "Commit contents options" msgstr "Опции за избор на файлове при подаване" -#: builtin/commit.c:1509 +#: builtin/commit.c:1588 msgid "commit all changed files" msgstr "подаване на вÑички променени файлове" -#: builtin/commit.c:1510 +#: builtin/commit.c:1589 msgid "add specified files to index for commit" msgstr "добавÑне на указаните файлове към индекÑа за подаване" -#: builtin/commit.c:1511 +#: builtin/commit.c:1590 msgid "interactively add files" msgstr "интерактивно добавÑне на файлове" -#: builtin/commit.c:1512 +#: builtin/commit.c:1591 msgid "interactively add changes" msgstr "интерактивно добавÑне на промени" -#: builtin/commit.c:1513 +#: builtin/commit.c:1592 msgid "commit only specified files" msgstr "подаване Ñамо на указаните файлове" -#: builtin/commit.c:1514 +#: builtin/commit.c:1593 msgid "bypass pre-commit hook" msgstr "без изпълнение на куката преди подаване (pre-commit)" -#: builtin/commit.c:1515 +#: builtin/commit.c:1594 msgid "show what would be committed" msgstr "отпечатване на това, което би било подадено" -#: builtin/commit.c:1526 +#: builtin/commit.c:1605 msgid "amend previous commit" msgstr "поправÑне на предишното подаване" -#: builtin/commit.c:1527 +#: builtin/commit.c:1606 msgid "bypass post-rewrite hook" msgstr "без изпълнение на куката Ñлед презапиÑване (post-rewrite)" -#: builtin/commit.c:1532 +#: builtin/commit.c:1611 msgid "ok to record an empty change" msgstr "позволÑване на празни подаваниÑ" -#: builtin/commit.c:1534 +#: builtin/commit.c:1613 msgid "ok to record a change with an empty message" msgstr "позволÑване на Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ñ€Ð°Ð·Ð½Ð¸ ÑъобщениÑ" -#: builtin/commit.c:1562 +#: builtin/commit.c:1641 msgid "could not parse HEAD commit" msgstr "върховото подаване „HEAD“ не може да бъде прочетено" -#: builtin/commit.c:1601 builtin/merge.c:518 +#: builtin/commit.c:1680 builtin/merge.c:518 #, c-format msgid "could not open '%s' for reading" msgstr "файлът не може да бъде прочетен: „%s“" -#: builtin/commit.c:1608 +#: builtin/commit.c:1687 #, c-format msgid "Corrupt MERGE_HEAD file (%s)" msgstr "Повреден файл за върха за Ñливането „MERGE_HEAD“ (%s)" -#: builtin/commit.c:1615 +#: builtin/commit.c:1694 msgid "could not read MERGE_MODE" msgstr "режимът на Ñливане „MERGE_MODE“ не може да бъде прочетен" -#: builtin/commit.c:1634 +#: builtin/commit.c:1713 #, c-format msgid "could not read commit message: %s" msgstr "Ñъобщението за подаване не може да бъде прочетено: %s" -#: builtin/commit.c:1645 +#: builtin/commit.c:1724 #, c-format msgid "Aborting commit; you did not edit the message.\n" msgstr "Ðеизвършване на подаване поради нередактирано Ñъобщение.\n" -#: builtin/commit.c:1650 +#: builtin/commit.c:1729 #, c-format msgid "Aborting commit due to empty commit message.\n" msgstr "Ðеизвършване на подаване поради празно Ñъобщение.\n" -#: builtin/commit.c:1665 builtin/merge.c:857 builtin/merge.c:882 +#: builtin/commit.c:1744 builtin/merge.c:851 builtin/merge.c:876 msgid "failed to write commit object" msgstr "обектът за подаването не може да бъде запиÑан" -#: builtin/commit.c:1686 +#: builtin/commit.c:1756 msgid "cannot lock HEAD ref" msgstr "указателÑÑ‚ към върха „HEAD“ не може да бъде заключен" -#: builtin/commit.c:1690 +#: builtin/commit.c:1769 msgid "cannot update HEAD ref" msgstr "указателÑÑ‚ към върха „HEAD“ не може да бъде обновен" -#: builtin/commit.c:1701 +#: builtin/commit.c:1780 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." msgstr "" "Хранилището е обновено, но новиÑÑ‚ файл за Ð¸Ð½Ð´ÐµÐºÑ â€žnew_index“\n" -"не е запиÑан. Проверете дали не е препълнен диÑка или не Ñте\n" +"не е запиÑан. Проверете дали диÑкът не е препълнен или не Ñте\n" "превишили диÑковата Ñи квота. След това изпълнете „git reset HEAD“." #: builtin/config.c:8 msgid "git config [options]" -msgstr "git config [ОПЦИИ]" +msgstr "git config [ОПЦИЯ…]" #: builtin/config.c:53 msgid "Config file location" @@ -4804,12 +4965,11 @@ msgstr "наÑтройка" #: builtin/config.c:72 msgid "find the color configured: [default]" -msgstr "извеждане на Ð·Ð°Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ñ†Ð²ÑÑ‚ на наÑтройката: [Ñтандартно]" +msgstr "извеждане на Ð·Ð°Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ñ†Ð²ÑÑ‚: [Ñтандартно]" #: builtin/config.c:73 msgid "find the color setting: [stdout-is-tty]" -msgstr "" -"извеждане на Ð·Ð°Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ñ†Ð²ÑÑ‚ на наÑтройката: [ÑтандартниÑÑ‚ изход е терминал]" +msgstr "извеждане на Ð·Ð°Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ñ†Ð²ÑÑ‚: [ÑтандартниÑÑ‚ изход е терминал]" #: builtin/config.c:74 msgid "Type" @@ -4855,135 +5015,144 @@ msgstr "извеждане на размерите на обектите във # FIXME ... instead of *??? #: builtin/describe.c:16 msgid "git describe [options] <commit-ish>*" -msgstr "git describe [ОПЦИИ] указател към подаване…" +msgstr "git describe [ОПЦИЯ…] УКÐЗÐТЕЛ_КЪМ_ПОДÐÐ’ÐÐЕ…" #: builtin/describe.c:17 msgid "git describe [options] --dirty" -msgstr "" +msgstr "git describe [ОПЦИЯ…] --dirty" -#: builtin/describe.c:225 +#: builtin/describe.c:216 #, c-format msgid "annotated tag %s not available" -msgstr "" +msgstr "не ÑъщеÑтвува анотиран етикет „%s“" -#: builtin/describe.c:229 +#: builtin/describe.c:220 #, c-format msgid "annotated tag %s has no embedded name" -msgstr "" +msgstr "в Ð°Ð½Ð¾Ñ‚Ð¸Ñ€Ð°Ð½Ð¸Ñ ÐµÑ‚Ð¸ÐºÐµÑ‚ „%s“ липÑва вградено име" -#: builtin/describe.c:231 +#: builtin/describe.c:222 #, c-format msgid "tag '%s' is really '%s' here" -msgstr "" +msgstr "етикетът „%s“ тук е вÑъщноÑÑ‚ „%s“" -#: builtin/describe.c:258 +#: builtin/describe.c:249 #, c-format msgid "Not a valid object name %s" -msgstr "" +msgstr "Ðеправилно име на обект „%s“" -#: builtin/describe.c:261 +#: builtin/describe.c:252 #, c-format msgid "%s is not a valid '%s' object" -msgstr "" +msgstr "„%s“ е неправилен обект „%s“" -#: builtin/describe.c:278 +#: builtin/describe.c:269 #, c-format msgid "no tag exactly matches '%s'" -msgstr "" +msgstr "никой етикет не напаÑва точно „%s“" -#: builtin/describe.c:280 +#: builtin/describe.c:271 #, c-format msgid "searching to describe %s\n" -msgstr "" +msgstr "Ñ‚ÑŠÑ€Ñене за опиÑание на „%s“\n" -#: builtin/describe.c:327 +#: builtin/describe.c:318 #, c-format msgid "finished search at %s\n" -msgstr "" +msgstr "Ñ‚ÑŠÑ€Ñенето приключи при „%s“\n" -#: builtin/describe.c:354 +#: builtin/describe.c:345 #, c-format msgid "" "No annotated tags can describe '%s'.\n" "However, there were unannotated tags: try --tags." msgstr "" +"Ðикой анотиран етикет не опиÑва „%s“.\n" +"СъщеÑтвуват и неанотирани етикети. Пробвайте Ñ Ð¾Ð¿Ñ†Ð¸Ñта „--tags“." -#: builtin/describe.c:358 +#: builtin/describe.c:349 #, c-format msgid "" "No tags can describe '%s'.\n" "Try --always, or create some tags." msgstr "" +"Ðикой етикет не опиÑва „%s“.\n" +"Пробвайте Ñ Ð¾Ð¿Ñ†Ð¸Ñта „--always“ или Ñъздайте етикети." -#: builtin/describe.c:379 +# FIXME - plural +#: builtin/describe.c:370 #, c-format msgid "traversed %lu commits\n" -msgstr "" +msgstr "претърÑени Ñа %lu подаваниÑ\n" -#: builtin/describe.c:382 +#: builtin/describe.c:373 #, c-format msgid "" "more than %i tags found; listed %i most recent\n" "gave up search at %s\n" msgstr "" +"открити Ñа над %i етикета, изведени Ñа поÑледните %i,\n" +"Ñ‚ÑŠÑ€Ñенето бе прекратено при „%s“.\n" -#: builtin/describe.c:404 +#: builtin/describe.c:395 msgid "find the tag that comes after the commit" -msgstr "" +msgstr "откриване на етикета, който Ñледва подаване" -#: builtin/describe.c:405 +#: builtin/describe.c:396 msgid "debug search strategy on stderr" msgstr "" +"извеждане на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° траÑиране на ÑтратегиÑта за Ñ‚ÑŠÑ€Ñене на " +"Ñтандартната грешка" -#: builtin/describe.c:406 +#: builtin/describe.c:397 msgid "use any ref" -msgstr "" +msgstr "използване на произволен указател" -#: builtin/describe.c:407 +#: builtin/describe.c:398 msgid "use any tag, even unannotated" -msgstr "" +msgstr "използване на вÑеки етикет — включително и неанотираните" -#: builtin/describe.c:408 +#: builtin/describe.c:399 msgid "always use long format" -msgstr "" +msgstr "винаги да Ñе ползва дългиÑÑ‚ формат" -#: builtin/describe.c:409 +#: builtin/describe.c:400 msgid "only follow first parent" -msgstr "" +msgstr "проÑледÑване Ñамо на Ð¿ÑŠÑ€Ð²Ð¸Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»" -#: builtin/describe.c:412 +#: builtin/describe.c:403 msgid "only output exact matches" -msgstr "" +msgstr "извеждане Ñамо на точните ÑъвпадениÑ" -#: builtin/describe.c:414 +#: builtin/describe.c:405 msgid "consider <n> most recent tags (default: 10)" msgstr "да Ñе Ñ‚ÑŠÑ€Ñи Ñамо в този БРОЙ поÑледни етикети (Ñтандартно: 10)" -#: builtin/describe.c:416 +#: builtin/describe.c:407 msgid "only consider tags matching <pattern>" -msgstr "" +msgstr "да Ñе Ñ‚ÑŠÑ€Ñи Ñамо измежду етикетите напаÑващи този ШÐБЛОÐ" -#: builtin/describe.c:418 builtin/name-rev.c:321 +#: builtin/describe.c:409 builtin/name-rev.c:318 msgid "show abbreviated commit object as fallback" -msgstr "" +msgstr "извеждане на Ñъкратено име на обект като резервен вариант" -#: builtin/describe.c:419 +#: builtin/describe.c:410 msgid "mark" -msgstr "" +msgstr "ÐœÐРКЕР" -#: builtin/describe.c:420 +#: builtin/describe.c:411 msgid "append <mark> on dirty working tree (default: \"-dirty\")" -msgstr "" +msgstr "добавÑне на такъв ÐœÐРКЕРна работното дърво (Ñтандартно е „-dirty“)" -#: builtin/describe.c:438 +#: builtin/describe.c:429 msgid "--long is incompatible with --abbrev=0" -msgstr "" +msgstr "Опциите „--long“ и „--abbrev=0“ Ñа неÑъвмеÑтими" -#: builtin/describe.c:464 +#: builtin/describe.c:455 msgid "No names found, cannot describe anything." -msgstr "" +msgstr "Ðе Ñа открити имена — нищо не може да бъде опиÑано." -#: builtin/describe.c:484 +#: builtin/describe.c:475 msgid "--dirty is incompatible with commit-ishes" msgstr "опциÑта „--dirty“ е неÑъвмеÑтима Ñ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ» към подаване" @@ -5016,305 +5185,320 @@ msgstr "зададени Ñа повече от 2 обекта: „%s“" msgid "unhandled object '%s' given." msgstr "зададен е неподдържан обект „%s“." -#: builtin/fast-export.c:22 +#: builtin/fast-export.c:23 msgid "git fast-export [rev-list-opts]" -msgstr "" +msgstr "git fast-export [ОПЦИИ_ЗÐ_СПИСЪКÐ_С_ВЕРСИИ]" -#: builtin/fast-export.c:673 +#: builtin/fast-export.c:702 msgid "show progress after <n> objects" -msgstr "Ñъобщение за напредъка на вÑеки такъв БРОЙ обекта" +msgstr "Съобщение за напредъка на вÑеки такъв БРОЙ обекта" -#: builtin/fast-export.c:675 +#: builtin/fast-export.c:704 msgid "select handling of signed tags" -msgstr "" +msgstr "Как да Ñе обработват подпиÑаните етикети" -#: builtin/fast-export.c:678 +#: builtin/fast-export.c:707 msgid "select handling of tags that tag filtered objects" -msgstr "" +msgstr "Как да Ñе обработват етикетите на филтрираните обекти" -#: builtin/fast-export.c:681 +#: builtin/fast-export.c:710 msgid "Dump marks to this file" -msgstr "" +msgstr "Запазване на маркерите в този файл" -#: builtin/fast-export.c:683 +#: builtin/fast-export.c:712 msgid "Import marks from this file" -msgstr "" +msgstr "ВнаÑÑне на маркерите от този файл" -#: builtin/fast-export.c:685 +#: builtin/fast-export.c:714 msgid "Fake a tagger when tags lack one" -msgstr "" +msgstr "Да Ñе използва изкуÑтвено име на човек при липÑа на задаващ етикета" -#: builtin/fast-export.c:687 +#: builtin/fast-export.c:716 msgid "Output full tree for each commit" -msgstr "" +msgstr "Извеждане на цÑлото дърво за вÑÑко подаване" -#: builtin/fast-export.c:689 +#: builtin/fast-export.c:718 msgid "Use the done feature to terminate the stream" -msgstr "" +msgstr "Използване на маркер за завършване на потока" -#: builtin/fast-export.c:690 +#: builtin/fast-export.c:719 msgid "Skip output of blob data" -msgstr "" +msgstr "Без извеждане на Ñъдържанието на обектите BLOB" + +#: builtin/fast-export.c:720 +msgid "refspec" +msgstr "указател на верÑиÑ" + +#: builtin/fast-export.c:721 +msgid "Apply refspec to exported refs" +msgstr "Прилагане на ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ Ð½Ð° верÑÐ¸Ñ ÐºÑŠÐ¼ изнеÑените указатели" #: builtin/fetch.c:20 msgid "git fetch [<options>] [<repository> [<refspec>...]]" -msgstr "git fetch [ОПЦИИ] [ХРÐÐИЛИЩЕ [УКÐЗÐТЕЛ…]]" +msgstr "git fetch [ОПЦИЯ…] [ХРÐÐИЛИЩЕ [УКÐЗÐТЕЛ…]]" #: builtin/fetch.c:21 msgid "git fetch [<options>] <group>" -msgstr "git fetch [ОПЦИИ] ГРУПÐ" +msgstr "git fetch [ОПЦИЯ…] ГРУПÐ" #: builtin/fetch.c:22 msgid "git fetch --multiple [<options>] [(<repository> | <group>)...]" -msgstr "git fetch --multiple [ОПЦИИ] [(ХРÐÐИЛИЩЕ | ГРУПÐ)…]" +msgstr "git fetch --multiple [ОПЦИЯ…] [(ХРÐÐИЛИЩЕ | ГРУПÐ)…]" #: builtin/fetch.c:23 msgid "git fetch --all [<options>]" -msgstr "git fetch --all [ОПЦИИ]" +msgstr "git fetch --all [ОПЦИЯ…]" -#: builtin/fetch.c:75 +#: builtin/fetch.c:90 msgid "fetch from all remotes" msgstr "доÑтавÑне от вÑички отдалечени хранилища" -#: builtin/fetch.c:77 +#: builtin/fetch.c:92 msgid "append to .git/FETCH_HEAD instead of overwriting" -msgstr "добавÑне към вмеÑто замÑна на „.git/FETCH_HEAD“" +msgstr "добавÑне към „.git/FETCH_HEAD“ вмеÑто замÑна" -#: builtin/fetch.c:79 +#: builtin/fetch.c:94 msgid "path to upload pack on remote end" msgstr "отдалечен път, където да Ñе качи пакетът" -#: builtin/fetch.c:80 +#: builtin/fetch.c:95 msgid "force overwrite of local branch" msgstr "принудително презапиÑване на Ð»Ð¾ÐºÐ°Ð»Ð½Ð¸Ñ ÐºÐ»Ð¾Ð½" -#: builtin/fetch.c:82 +#: builtin/fetch.c:97 msgid "fetch from multiple remotes" msgstr "доÑтавÑне от множеÑтво отдалечени хранилища" -#: builtin/fetch.c:84 +#: builtin/fetch.c:99 msgid "fetch all tags and associated objects" msgstr "доÑтавÑне на вÑички етикети и принадлежащи обекти" -#: builtin/fetch.c:86 +#: builtin/fetch.c:101 msgid "do not fetch all tags (--no-tags)" msgstr "без доÑтавÑнето на вÑички етикети „--no-tags“" -#: builtin/fetch.c:88 +#: builtin/fetch.c:103 msgid "prune remote-tracking branches no longer on remote" -msgstr "окаÑÑ‚Ñ€Ñне на клоните ÑледÑщи вече не ÑъщеÑтвуващи отдалечени клони" +msgstr "окаÑÑ‚Ñ€Ñне на клоните ÑледÑщи вече неÑъщеÑтвуващи отдалечени клони" -#: builtin/fetch.c:89 +#: builtin/fetch.c:104 msgid "on-demand" msgstr "при нужда" -#: builtin/fetch.c:90 +#: builtin/fetch.c:105 msgid "control recursive fetching of submodules" msgstr "управление на рекурÑивното доÑтавÑне на подмодулите" -#: builtin/fetch.c:94 +#: builtin/fetch.c:109 msgid "keep downloaded pack" msgstr "запазване на изтеглените пакети Ñ Ð¾Ð±ÐµÐºÑ‚Ð¸" -#: builtin/fetch.c:96 +#: builtin/fetch.c:111 msgid "allow updating of HEAD ref" msgstr "позволÑване на обновÑването на ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€žHEAD“" -#: builtin/fetch.c:99 +#: builtin/fetch.c:114 msgid "deepen history of shallow clone" msgstr "задълбочаване на иÑториÑта на плитко хранилище" -#: builtin/fetch.c:101 +#: builtin/fetch.c:116 msgid "convert to a complete repository" msgstr "превръщане в пълно хранилище" -#: builtin/fetch.c:103 builtin/log.c:1197 +#: builtin/fetch.c:118 builtin/log.c:1205 msgid "dir" msgstr "директориÑ" -#: builtin/fetch.c:104 +#: builtin/fetch.c:119 msgid "prepend this to submodule path output" msgstr "добавÑне на това пред Ð¿ÑŠÑ‚Ñ Ð½Ð° подмодула" -#: builtin/fetch.c:107 +#: builtin/fetch.c:122 msgid "default mode for recursion" msgstr "Ñтандартен режим на рекурÑиÑ" -#: builtin/fetch.c:109 +#: builtin/fetch.c:124 msgid "accept refs that update .git/shallow" msgstr "приемане на указатели, които обновÑват „.git/shallow“" -#: builtin/fetch.c:347 +#: builtin/fetch.c:125 +msgid "refmap" +msgstr "карта Ñ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ð¸" + +#: builtin/fetch.c:126 +msgid "specify fetch refmap" +msgstr "указване на картата Ñ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ð¸ за доÑтавÑне" + +#: builtin/fetch.c:376 msgid "Couldn't find remote ref HEAD" msgstr "УказателÑÑ‚ „HEAD“ в отдалеченото хранилище не може да бъде открит" -#: builtin/fetch.c:411 +#: builtin/fetch.c:440 #, c-format msgid "object %s not found" msgstr "обектът „%s“ липÑва" -#: builtin/fetch.c:416 +#: builtin/fetch.c:445 msgid "[up to date]" msgstr "[актуализиран]" -# FIXME - the signs -#: builtin/fetch.c:430 +#: builtin/fetch.c:459 #, c-format msgid "! %-*s %-*s -> %s (can't fetch in current branch)" -msgstr "! %-*s %-*s -> %s (в Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ ÐºÐ»Ð¾Ð½ не може да Ñе доÑтавÑ)" +msgstr "! %-*s %-*s → %s (в Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ ÐºÐ»Ð¾Ð½ не може да Ñе доÑтавÑ)" -#: builtin/fetch.c:431 builtin/fetch.c:517 +#: builtin/fetch.c:460 builtin/fetch.c:546 msgid "[rejected]" msgstr "[отхвърлен]" -#: builtin/fetch.c:442 +#: builtin/fetch.c:471 msgid "[tag update]" msgstr "[обновÑване на етикетите]" -#: builtin/fetch.c:444 builtin/fetch.c:479 builtin/fetch.c:497 +#: builtin/fetch.c:473 builtin/fetch.c:508 builtin/fetch.c:526 msgid " (unable to update local ref)" msgstr " (локалните указатели не могат да бъдат обновени)" -#: builtin/fetch.c:462 +#: builtin/fetch.c:491 msgid "[new tag]" msgstr "[нов етикет]" -#: builtin/fetch.c:465 +#: builtin/fetch.c:494 msgid "[new branch]" msgstr "[нов клон]" -#: builtin/fetch.c:468 +#: builtin/fetch.c:497 msgid "[new ref]" msgstr "[нов указател]" -#: builtin/fetch.c:513 +#: builtin/fetch.c:542 msgid "unable to update local ref" msgstr "локален указател не може да бъде обновен" -#: builtin/fetch.c:513 +#: builtin/fetch.c:542 msgid "forced update" msgstr "принудително обновÑване" -#: builtin/fetch.c:519 +#: builtin/fetch.c:548 msgid "(non-fast-forward)" msgstr "(Ñливането не е тривиално)" -#: builtin/fetch.c:552 builtin/fetch.c:785 +#: builtin/fetch.c:581 builtin/fetch.c:814 #, c-format msgid "cannot open %s: %s\n" msgstr "файлът „%s“ не може да бъде отворен: %s\n" -#: builtin/fetch.c:561 +#: builtin/fetch.c:590 #, c-format msgid "%s did not send all necessary objects\n" msgstr "хранилището „%s“ не изпрати вÑички необходими обекти\n" -#: builtin/fetch.c:579 +#: builtin/fetch.c:608 #, c-format msgid "reject %s because shallow roots are not allowed to be updated" msgstr "" "отхвърлÑне на върха „%s“, защото плитките хранилища не могат да бъдат " "обновÑвани" -#: builtin/fetch.c:667 builtin/fetch.c:750 +#: builtin/fetch.c:696 builtin/fetch.c:779 #, c-format msgid "From %.*s\n" msgstr "От %.*s\n" -#: builtin/fetch.c:678 +# FIXME - is the space necessary +#: builtin/fetch.c:707 #, c-format msgid "" "some local refs could not be updated; try running\n" " 'git remote prune %s' to remove any old, conflicting branches" msgstr "" "нÑкои локални указатели не могат да бъдат обновени. Изпълнете командата\n" -" „git remote prune %s“, за да премахнете оÑтарелите клони, които " +"„git remote prune %s“, за да премахнете оÑтарелите клони, които\n" "предизвикват конфликта" -#: builtin/fetch.c:730 +#: builtin/fetch.c:759 #, c-format msgid " (%s will become dangling)" msgstr " (обектът „%s“ ще Ñе окаже извън клон)" -#: builtin/fetch.c:731 +#: builtin/fetch.c:760 #, c-format msgid " (%s has become dangling)" msgstr " (обектът „%s“ вече е извън клон)" -#: builtin/fetch.c:755 +#: builtin/fetch.c:784 msgid "[deleted]" msgstr "[изтрит]" -#: builtin/fetch.c:756 builtin/remote.c:1050 +#: builtin/fetch.c:785 builtin/remote.c:1059 msgid "(none)" msgstr "(нищо)" -#: builtin/fetch.c:775 +#: builtin/fetch.c:804 #, c-format msgid "Refusing to fetch into current branch %s of non-bare repository" -msgstr "" -"Ðе може да изтеглÑте в Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ ÐºÐ»Ð¾Ð½ „%s“, на хранилище, което не е голо" +msgstr "Ðе може да изтеглÑте в Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ ÐºÐ»Ð¾Ð½ „%s“ на хранилище, което не е голо" -#: builtin/fetch.c:794 +#: builtin/fetch.c:823 #, c-format msgid "Option \"%s\" value \"%s\" is not valid for %s" msgstr "СтойноÑтта „%2$s“ за опциÑта „%1$s“ не е ÑъвмеÑтима Ñ â€ž%3$s“" -#: builtin/fetch.c:797 +#: builtin/fetch.c:826 #, c-format msgid "Option \"%s\" is ignored for %s\n" msgstr "ОпциÑта „%s“ Ñе игнорира при „%s“\n" -#: builtin/fetch.c:853 +#: builtin/fetch.c:882 #, c-format msgid "Don't know how to fetch from %s" msgstr "Ðе Ñе поддържа доÑтавÑне от „%s“" -#: builtin/fetch.c:1015 +#: builtin/fetch.c:1044 #, c-format msgid "Fetching %s\n" msgstr "ДоÑтавÑне на „%s“\n" -#: builtin/fetch.c:1017 builtin/remote.c:90 +#: builtin/fetch.c:1046 builtin/remote.c:90 #, c-format msgid "Could not fetch %s" msgstr "„%s“ не може да Ñе доÑтави" -#: builtin/fetch.c:1035 +#: builtin/fetch.c:1064 msgid "" "No remote repository specified. Please, specify either a URL or a\n" "remote name from which new revisions should be fetched." msgstr "" "Ðе Ñте указали отдалечено хранилище. Задайте или адреÑ, или име\n" -"на отдалечено хранилище, от където да Ñе доÑтавÑÑ‚ новите верÑии." +"на отдалечено хранилище, откъдето да Ñе доÑтавÑÑ‚ новите верÑии." -#: builtin/fetch.c:1059 +#: builtin/fetch.c:1087 msgid "You need to specify a tag name." msgstr "ТрÑбва да укажете име на етикет." -#: builtin/fetch.c:1107 +#: builtin/fetch.c:1131 msgid "--depth and --unshallow cannot be used together" msgstr "опциите „--depth“ и „--unshallow“ Ñа неÑъвмеÑтими" -#: builtin/fetch.c:1109 +#: builtin/fetch.c:1133 msgid "--unshallow on a complete repository does not make sense" msgstr "не можете да използвате опциÑта „--unshallow“ върху пълно хранилище" -#: builtin/fetch.c:1132 +#: builtin/fetch.c:1156 msgid "fetch --all does not take a repository argument" -msgstr "към „git fetch --all“ не можете да добавите хранилище аргумент" +msgstr "към „git fetch --all“ не можете да добавите аргумент — хранилище" -#: builtin/fetch.c:1134 +#: builtin/fetch.c:1158 msgid "fetch --all does not make sense with refspecs" msgstr "" -"към „git fetch --all“ не можете да добавите указател на верÑÐ¸Ñ Ð·Ð° аргумент" +"към „git fetch --all“ не можете да добавите аргумент — указател на верÑиÑ" -#: builtin/fetch.c:1145 +#: builtin/fetch.c:1169 #, c-format msgid "No such remote or remote group: %s" msgstr "ÐÑма нито отдалечено хранилище, нито група от хранилища на име „%s“" -#: builtin/fetch.c:1153 +#: builtin/fetch.c:1177 msgid "Fetching a group and specifying refspecs does not make sense" msgstr "Указването на група и указването на верÑÐ¸Ñ Ñа неÑъвмеÑтими" @@ -5322,9 +5506,9 @@ msgstr "Указването на група и указването на вер msgid "git fmt-merge-msg [-m <message>] [--log[=<n>]|--no-log] [--file <file>]" msgstr "git fmt-merge-msg [-m СЪОБЩЕÐИЕ] [--log[=БРОЙ]|--no-log] [--file ФÐЙЛ]" -#: builtin/fmt-merge-msg.c:663 builtin/fmt-merge-msg.c:666 builtin/grep.c:700 -#: builtin/merge.c:196 builtin/repack.c:175 builtin/repack.c:179 -#: builtin/show-branch.c:654 builtin/show-ref.c:178 builtin/tag.c:501 +#: builtin/fmt-merge-msg.c:663 builtin/fmt-merge-msg.c:666 builtin/grep.c:698 +#: builtin/merge.c:196 builtin/repack.c:179 builtin/repack.c:183 +#: builtin/show-branch.c:654 builtin/show-ref.c:178 builtin/tag.c:589 #: parse-options.h:132 parse-options.h:239 msgid "n" msgstr "БРОЙ" @@ -5351,154 +5535,155 @@ msgstr "за начало на Ñъобщението да Ñе ползва ТРmsgid "file to read from" msgstr "файл, от който да Ñе чете" -#: builtin/for-each-ref.c:1063 +#: builtin/for-each-ref.c:1051 msgid "git for-each-ref [options] [<pattern>]" -msgstr "" +msgstr "git for-each-ref [ОПЦИЯ…] [ШÐБЛОÐ]" -#: builtin/for-each-ref.c:1078 +#: builtin/for-each-ref.c:1066 msgid "quote placeholders suitably for shells" -msgstr "" +msgstr "цитиране подходÑщо за командни интерпретатори на обвивката" -#: builtin/for-each-ref.c:1080 +#: builtin/for-each-ref.c:1068 msgid "quote placeholders suitably for perl" -msgstr "" +msgstr "цитиране подходÑщо за perl" -#: builtin/for-each-ref.c:1082 +#: builtin/for-each-ref.c:1070 msgid "quote placeholders suitably for python" -msgstr "" +msgstr "цитиране подходÑщо за python" -#: builtin/for-each-ref.c:1084 +#: builtin/for-each-ref.c:1072 msgid "quote placeholders suitably for tcl" -msgstr "" +msgstr "цитиране подходÑщо за tcl" -#: builtin/for-each-ref.c:1087 +#: builtin/for-each-ref.c:1075 msgid "show only <n> matched refs" msgstr "извеждане Ñамо на този БРОЙ напаÑнати указатели" -#: builtin/for-each-ref.c:1088 builtin/replace.c:177 +#: builtin/for-each-ref.c:1076 builtin/replace.c:435 msgid "format" msgstr "ФОРМÐТ" -#: builtin/for-each-ref.c:1088 +#: builtin/for-each-ref.c:1076 msgid "format to use for the output" msgstr "ФОРМÐТ за изхода" -#: builtin/for-each-ref.c:1089 +#: builtin/for-each-ref.c:1077 msgid "key" -msgstr "" +msgstr "ключ" -#: builtin/for-each-ref.c:1090 +#: builtin/for-each-ref.c:1078 msgid "field name to sort on" -msgstr "" +msgstr "име на полето, по което да е подредбата" #: builtin/fsck.c:147 builtin/prune.c:172 msgid "Checking connectivity" msgstr "Проверка на връзката" -#: builtin/fsck.c:544 +#: builtin/fsck.c:538 msgid "Checking object directories" msgstr "Проверка на директориите Ñ Ð¾Ð±ÐµÐºÑ‚Ð¸" -#: builtin/fsck.c:607 +#: builtin/fsck.c:601 msgid "git fsck [options] [<object>...]" -msgstr "git fsck [ОПЦИИ] [ОБЕКТ…]" +msgstr "git fsck [ОПЦИЯ…] [ОБЕКТ…]" -#: builtin/fsck.c:613 +#: builtin/fsck.c:607 msgid "show unreachable objects" msgstr "показване на недоÑтижимите обекти" -#: builtin/fsck.c:614 +#: builtin/fsck.c:608 msgid "show dangling objects" msgstr "показване на обектите извън клоните" -#: builtin/fsck.c:615 +#: builtin/fsck.c:609 msgid "report tags" msgstr "показване на етикетите" -#: builtin/fsck.c:616 +#: builtin/fsck.c:610 msgid "report root nodes" msgstr "показване на кореновите възли" -#: builtin/fsck.c:617 +#: builtin/fsck.c:611 msgid "make index objects head nodes" msgstr "задаване на обекти от индекÑа да Ñа коренови" # FIXME bad message -#: builtin/fsck.c:618 +#: builtin/fsck.c:612 msgid "make reflogs head nodes (default)" msgstr "проÑледÑване на указателите от журнала като глави (Ñтандартно)" -#: builtin/fsck.c:619 +#: builtin/fsck.c:613 msgid "also consider packs and alternate objects" msgstr "допълнително да Ñе проверÑват пакетите и алтернативните обекти" -#: builtin/fsck.c:620 +#: builtin/fsck.c:614 msgid "enable more strict checking" msgstr "по-Ñтроги проверки" -#: builtin/fsck.c:622 +#: builtin/fsck.c:616 msgid "write dangling objects in .git/lost-found" msgstr "запазване на обектите извън клоните в директориÑта „.git/lost-found“" -#: builtin/fsck.c:623 builtin/prune.c:144 +#: builtin/fsck.c:617 builtin/prune.c:144 msgid "show progress" msgstr "показване на напредъка" -#: builtin/fsck.c:673 +#: builtin/fsck.c:667 msgid "Checking objects" msgstr "Проверка на обектите" +# FIXME plural with ... #: builtin/gc.c:24 msgid "git gc [options]" -msgstr "git gc [ОПЦИИ]" +msgstr "git gc [ОПЦИЯ…]" -#: builtin/gc.c:90 +#: builtin/gc.c:91 #, c-format msgid "Invalid %s: '%s'" msgstr "Ðеправилна ÑтойноÑÑ‚ за „%s“: „%s“" -#: builtin/gc.c:117 +#: builtin/gc.c:118 #, c-format msgid "insanely long object directory %.*s" msgstr "прекалено дълга Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ñ Ð¾Ð±ÐµÐºÑ‚Ð¸ „%.*s“" -#: builtin/gc.c:273 +#: builtin/gc.c:287 msgid "prune unreferenced objects" msgstr "окаÑÑ‚Ñ€Ñне на обектите, към които нищо не Ñочи" -#: builtin/gc.c:275 +#: builtin/gc.c:289 msgid "be more thorough (increased runtime)" msgstr "изчерпателно Ñ‚ÑŠÑ€Ñене на боклука (за Ñметка на повече време работа)" -#: builtin/gc.c:276 +#: builtin/gc.c:290 msgid "enable auto-gc mode" msgstr "включване на автоматичното Ñъбиране на боклука (auto-gc)" -#: builtin/gc.c:277 +#: builtin/gc.c:291 msgid "force running gc even if there may be another gc running" msgstr "" "изрично Ñтартиране на Ñъбирането на боклука, дори и ако вече работи друго " "Ñъбиране" -#: builtin/gc.c:318 +#: builtin/gc.c:332 #, c-format msgid "Auto packing the repository in background for optimum performance.\n" msgstr "" "Ðвтоматично пакетиране на заден фон на хранилището за по-добра " "производителноÑÑ‚.\n" -#: builtin/gc.c:320 +#: builtin/gc.c:334 #, c-format msgid "Auto packing the repository for optimum performance.\n" msgstr "Ðвтоматично пакетиране на хранилището за по-добра производителноÑÑ‚.\n" -#: builtin/gc.c:321 +#: builtin/gc.c:335 #, c-format msgid "See \"git help gc\" for manual housekeeping.\n" msgstr "" "Вижте ръководÑтвото за повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ ÐºÐ°Ðº да изпълните „git help gc“.\n" -#: builtin/gc.c:336 +#: builtin/gc.c:353 #, c-format msgid "" "gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)" @@ -5507,256 +5692,251 @@ msgstr "" "процеÑа: %<PRIuMAX> (ако Ñте Ñигурни, че това не е вÑрно, това използвайте\n" "опциÑта „--force“)" -#: builtin/gc.c:361 +#: builtin/gc.c:375 msgid "" "There are too many unreachable loose objects; run 'git prune' to remove them." msgstr "" -"Има прекалено много недоÑтижими, непакетирани обекти. Използвайте „git " -"prune“, за да\n" -"ги окаÑтрите." +"Има прекалено много недоÑтижими, непакетирани обекти.\n" +"Използвайте „git prune“, за да ги окаÑтрите." +# FIXME plural ... options #: builtin/grep.c:23 msgid "git grep [options] [-e] <pattern> [<rev>...] [[--] <path>...]" -msgstr "git grep [ОПЦИИ] [-e] ШÐБЛОР[ВЕРСИЯ…] [[--] ПЪТ…]" +msgstr "git grep [ОПЦИЯ…] [-e] ШÐБЛОР[ВЕРСИЯ…] [[--] ПЪТ…]" #: builtin/grep.c:218 #, c-format msgid "grep: failed to create thread: %s" msgstr "grep: неуÑпешно Ñъздаване на нишка: %s" -#: builtin/grep.c:365 -#, c-format -msgid "Failed to chdir: %s" -msgstr "ÐеуÑпешна ÑмÑна на директориÑ: %s" - -#: builtin/grep.c:443 builtin/grep.c:478 +#: builtin/grep.c:441 builtin/grep.c:476 #, c-format msgid "unable to read tree (%s)" msgstr "дървото не може да бъде прочетено (%s)" -#: builtin/grep.c:493 +#: builtin/grep.c:491 #, c-format msgid "unable to grep from object of type %s" msgstr "не може да Ñе изпълни „grep“ от обект от вида %s" -#: builtin/grep.c:549 +#: builtin/grep.c:547 #, c-format msgid "switch `%c' expects a numerical value" msgstr "опциÑта „%c“ очаква чиÑло за аргумент" -#: builtin/grep.c:566 +#: builtin/grep.c:564 #, c-format msgid "cannot open '%s'" msgstr "„%s“ не може да бъде отворен" -#: builtin/grep.c:640 +#: builtin/grep.c:638 msgid "search in index instead of in the work tree" msgstr "Ñ‚ÑŠÑ€Ñене в индекÑа, а не в работното дърво" -#: builtin/grep.c:642 +#: builtin/grep.c:640 msgid "find in contents not managed by git" msgstr "Ñ‚ÑŠÑ€Ñене и във файловете, които не Ñа под управлението на git" -#: builtin/grep.c:644 +#: builtin/grep.c:642 msgid "search in both tracked and untracked files" msgstr "Ñ‚ÑŠÑ€Ñене и в Ñледените, и в неÑледените файлове" -#: builtin/grep.c:646 +#: builtin/grep.c:644 msgid "search also in ignored files" msgstr "Ñ‚ÑŠÑ€Ñене и в игнорираните файлове" -#: builtin/grep.c:649 +#: builtin/grep.c:647 msgid "show non-matching lines" msgstr "извеждане на редовете, които не Ñъвпадат" -#: builtin/grep.c:651 +#: builtin/grep.c:649 msgid "case insensitive matching" msgstr "без значение на региÑтъра на буквите (главни/малки)" -#: builtin/grep.c:653 +#: builtin/grep.c:651 msgid "match patterns only at word boundaries" msgstr "напаÑване на шаблоните Ñамо по границите на думите" -#: builtin/grep.c:655 +#: builtin/grep.c:653 msgid "process binary files as text" msgstr "обработване на двоичните файлове като текÑтови" -#: builtin/grep.c:657 +#: builtin/grep.c:655 msgid "don't match patterns in binary files" msgstr "преÑкачане на двоичните файлове" -#: builtin/grep.c:660 +#: builtin/grep.c:658 msgid "process binary files with textconv filters" msgstr "" "обработване на двоичните файлове чрез филтри за преобразуване към текÑÑ‚" -#: builtin/grep.c:662 +#: builtin/grep.c:660 msgid "descend at most <depth> levels" msgstr "навлизане макÑимално на тази ДЪЛБОЧИÐРв дървото" -#: builtin/grep.c:666 +#: builtin/grep.c:664 msgid "use extended POSIX regular expressions" msgstr "разширени регулÑрни изрази по POSIX" -#: builtin/grep.c:669 +#: builtin/grep.c:667 msgid "use basic POSIX regular expressions (default)" msgstr "оÑновни регулÑрни изрази по POSIX (Ñтандартно)" -#: builtin/grep.c:672 +#: builtin/grep.c:670 msgid "interpret patterns as fixed strings" msgstr "шаблоните Ñа доÑловни низове" -#: builtin/grep.c:675 +#: builtin/grep.c:673 msgid "use Perl-compatible regular expressions" msgstr "регулÑрни изрази на Perl" -#: builtin/grep.c:678 +#: builtin/grep.c:676 msgid "show line numbers" msgstr "извеждане на номерата на редовете" -#: builtin/grep.c:679 +#: builtin/grep.c:677 msgid "don't show filenames" msgstr "без извеждане на имената на файловете" -#: builtin/grep.c:680 +#: builtin/grep.c:678 msgid "show filenames" msgstr "извеждане на имената на файловете" -#: builtin/grep.c:682 +#: builtin/grep.c:680 msgid "show filenames relative to top directory" msgstr "" "извеждане на отноÑителните имена на файловете ÑпрÑмо оÑновната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° " "хранилището" -#: builtin/grep.c:684 +#: builtin/grep.c:682 msgid "show only filenames instead of matching lines" msgstr "извеждане Ñамо на имената на файловете без напаÑващите редове" -#: builtin/grep.c:686 +#: builtin/grep.c:684 msgid "synonym for --files-with-matches" msgstr "Ñиноним на „--files-with-matches“" -#: builtin/grep.c:689 +#: builtin/grep.c:687 msgid "show only the names of files without match" msgstr "" "извеждане Ñамо на имената на файловете, които не Ñъдържат ред, напаÑващ на " "шаблона" -#: builtin/grep.c:691 +#: builtin/grep.c:689 msgid "print NUL after filenames" msgstr "извеждане на Ð½ÑƒÐ»ÐµÐ²Ð¸Ñ Ð·Ð½Ð°Ðº „NUL“ Ñлед вÑÑко име на файл" -#: builtin/grep.c:693 +#: builtin/grep.c:691 msgid "show the number of matches instead of matching lines" msgstr "извеждане на Ð±Ñ€Ð¾Ñ Ð½Ð° ÑъвпадениÑта вмеÑто напаÑващите редове" -#: builtin/grep.c:694 +#: builtin/grep.c:692 msgid "highlight matches" msgstr "оцветÑване на напаÑваниÑта" -#: builtin/grep.c:696 +#: builtin/grep.c:694 msgid "print empty line between matches from different files" msgstr "извеждане на празен ред между напаÑваниÑта от различни файлове" -#: builtin/grep.c:698 +#: builtin/grep.c:696 msgid "show filename only once above matches from same file" msgstr "" "извеждане на името на файла Ñамо веднъж за вÑички напаÑÐ²Ð°Ð½Ð¸Ñ Ð¾Ñ‚ този файл" -#: builtin/grep.c:701 +#: builtin/grep.c:699 msgid "show <n> context lines before and after matches" msgstr "извеждане на такъв БРОЙ редове преди и Ñлед напаÑваниÑта" -#: builtin/grep.c:704 +#: builtin/grep.c:702 msgid "show <n> context lines before matches" msgstr "извеждане на такъв БРОЙ редове преди напаÑваниÑта" -#: builtin/grep.c:706 +#: builtin/grep.c:704 msgid "show <n> context lines after matches" msgstr "извеждане на такъв БРОЙ редове Ñлед напаÑваниÑта" -#: builtin/grep.c:707 +#: builtin/grep.c:705 msgid "shortcut for -C NUM" msgstr "Ñиноним на „-C БРОЙ“" -#: builtin/grep.c:710 +#: builtin/grep.c:708 msgid "show a line with the function name before matches" msgstr "извеждане на ред Ñ Ð¸Ð¼ÐµÑ‚Ð¾ на функциÑта, в коÑто е напаÑнат шаблона" -#: builtin/grep.c:712 +#: builtin/grep.c:710 msgid "show the surrounding function" msgstr "извеждане на обхващащата функциÑ" -#: builtin/grep.c:715 +#: builtin/grep.c:713 msgid "read patterns from file" msgstr "изчитане на шаблоните от файл" -#: builtin/grep.c:717 +#: builtin/grep.c:715 msgid "match <pattern>" msgstr "напаÑване на ШÐБЛОÐ" -#: builtin/grep.c:719 +#: builtin/grep.c:717 msgid "combine patterns specified with -e" msgstr "комбиниране на шаблоните указани Ñ Ð¾Ð¿Ñ†Ð¸Ñта „-e“" -#: builtin/grep.c:731 +#: builtin/grep.c:729 msgid "indicate hit with exit status without output" msgstr "" "без извеждане на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´. ИзходниÑÑ‚ код указва наличието на " "напаÑване" -#: builtin/grep.c:733 +#: builtin/grep.c:731 msgid "show only matches from files that match all patterns" msgstr "" "извеждане на редове Ñамо от файловете, които напаÑват на вÑички шаблони" -#: builtin/grep.c:735 +#: builtin/grep.c:733 msgid "show parse tree for grep expression" msgstr "извеждане на дървото за анализ на регулÑÑ€Ð½Ð¸Ñ Ð¸Ð·Ñ€Ð°Ð·" -#: builtin/grep.c:739 +#: builtin/grep.c:737 msgid "pager" -msgstr "програма за обхождане" +msgstr "програма за преглед по Ñтраници" -#: builtin/grep.c:739 +#: builtin/grep.c:737 msgid "show matching files in the pager" -msgstr "извеждане на Ñъвпадащите файлове в програма за обхождане" +msgstr "извеждане на Ñъвпадащите файлове в програма за преглед по Ñтраници" -#: builtin/grep.c:742 +#: builtin/grep.c:740 msgid "allow calling of grep(1) (ignored by this build)" msgstr "" "позволÑване на Ñтартирането на grep(1) (текущиÑÑ‚ компилат пренебрегва тази " "опциÑ)" -#: builtin/grep.c:743 builtin/show-ref.c:187 +#: builtin/grep.c:741 builtin/show-ref.c:187 msgid "show usage" msgstr "извеждане на начина на употреба на командата" -#: builtin/grep.c:810 +#: builtin/grep.c:808 msgid "no pattern given." msgstr "липÑва шаблон." -#: builtin/grep.c:868 +#: builtin/grep.c:866 msgid "--open-files-in-pager only works on the worktree" msgstr "" "опциÑта „--open-files-in-pager“ е ÑъвмеÑтима Ñамо Ñ Ñ‚ÑŠÑ€Ñене в работното дърво" -#: builtin/grep.c:891 +#: builtin/grep.c:892 msgid "--cached or --untracked cannot be used with --no-index." msgstr "опциите „--cached“ и „--untracked“ Ñа неÑъвмеÑтими Ñ â€ž--no-index“." -#: builtin/grep.c:896 +#: builtin/grep.c:897 msgid "--no-index or --untracked cannot be used with revs." msgstr "" "опциите „--cached“ и „--untracked“ Ñа неÑъвмеÑтими Ñ Ñ‚ÑŠÑ€Ñене във верÑии." -#: builtin/grep.c:899 +#: builtin/grep.c:900 msgid "--[no-]exclude-standard cannot be used for tracked contents." msgstr "" "опциите „--(no-)exclude-standard“ Ñа неÑъвмеÑтими Ñ Ñ‚ÑŠÑ€Ñене по Ñледени " "файлове." -#: builtin/grep.c:907 +#: builtin/grep.c:908 msgid "both --cached and trees are given." msgstr "опциÑта „--cached“ е неÑъвмеÑтима ÑÑŠÑ Ð·Ð°Ð´Ð°Ð²Ð°Ð½Ðµ на дърво." @@ -5765,34 +5945,36 @@ msgid "" "git hash-object [-t <type>] [-w] [--path=<file>|--no-filters] [--stdin] [--] " "<file>..." msgstr "" +"git hash-object [-t ВИД] [-w] [--path=ФÐЙЛ|--no-filters] [--stdin] [--] ФÐЙЛ…" +# FIXME - list of paths or path... #: builtin/hash-object.c:61 msgid "git hash-object --stdin-paths < <list-of-paths>" -msgstr "" +msgstr "git hash-object --stdin-paths < ПЪТ…" -#: builtin/hash-object.c:72 builtin/tag.c:521 +#: builtin/hash-object.c:72 builtin/tag.c:609 msgid "type" -msgstr "" +msgstr "ВИД" #: builtin/hash-object.c:72 msgid "object type" -msgstr "" +msgstr "вид на обекта" #: builtin/hash-object.c:73 msgid "write the object into the object database" -msgstr "" +msgstr "запиÑване на обекта в базата от данни за обектите" #: builtin/hash-object.c:74 msgid "read the object from stdin" -msgstr "" +msgstr "изчитане на обекта от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´" #: builtin/hash-object.c:76 msgid "store file as is without filters" -msgstr "" +msgstr "запазване на файла както е — без филтри" #: builtin/hash-object.c:77 msgid "process file as it were from this path" -msgstr "" +msgstr "обработване на файла вÑе едно е Ñ Ñ‚Ð¾Ð·Ð¸ път" #: builtin/help.c:41 msgid "print all available commands" @@ -5847,7 +6029,7 @@ msgid "" "'%s': path for unsupported man viewer.\n" "Please consider using 'man.<tool>.cmd' instead." msgstr "" -"„%s“: път към неподдържана програма за разглеждане на\n" +"„%s“: път към неподдържана програма за преглед на\n" " ръководÑтвото. ВмеÑто Ð½ÐµÑ Ð¿Ñ€Ð¾Ð±Ð²Ð°Ð¹Ñ‚Ðµ „man.<tool>.cmd“." #: builtin/help.c:228 @@ -5856,7 +6038,7 @@ msgid "" "'%s': cmd for supported man viewer.\n" "Please consider using 'man.<tool>.path' instead." msgstr "" -"„%s“: команда за поддържана програма за разглеждане на\n" +"„%s“: команда за поддържана програма за преглед на\n" " ръководÑтвото. ВмеÑто Ð½ÐµÑ Ð¿Ñ€Ð¾Ð±Ð²Ð°Ð¹Ñ‚Ðµ „man.<tool>.path“." #: builtin/help.c:353 @@ -5866,11 +6048,13 @@ msgstr "„%s“: непозната програма за преглед на Ñ #: builtin/help.c:370 msgid "no man viewer handled the request" -msgstr "Ð½Ð¸ÐºÐ¾Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° за ръководÑтво не уÑÐ¿Ñ Ð´Ð° обработи заÑвката" +msgstr "Ð½Ð¸ÐºÐ¾Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° за преглед на ръководÑтво не уÑÐ¿Ñ Ð´Ð° обработи заÑвката" #: builtin/help.c:378 msgid "no info viewer handled the request" -msgstr "Ð½Ð¸ÐºÐ¾Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° за информационни Ñтраници не уÑÐ¿Ñ Ð´Ð° обработи заÑвката" +msgstr "" +"Ð½Ð¸ÐºÐ¾Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° за преглед на информационните Ñтраници не уÑÐ¿Ñ Ð´Ð° обработи " +"заÑвката" #: builtin/help.c:424 msgid "Defining attributes per path" @@ -5914,367 +6098,394 @@ msgstr "употреба: %s%s" msgid "`git %s' is aliased to `%s'" msgstr "„git %s“ е Ñиноним на „%s“" -#: builtin/index-pack.c:184 +# FIXME merge with next? +#: builtin/index-pack.c:145 +#, c-format +msgid "unable to open %s" +msgstr "обектът „%s“ не може да бъде отворен" + +#: builtin/index-pack.c:191 #, c-format msgid "object type mismatch at %s" -msgstr "" +msgstr "неправилен вид на обекта „%s“" -#: builtin/index-pack.c:204 -msgid "object of unexpected type" -msgstr "" +#: builtin/index-pack.c:211 +#, c-format +msgid "did not receive expected object %s" +msgstr "очакваниÑÑ‚ обект „%s“ не бе получен" -#: builtin/index-pack.c:244 +#: builtin/index-pack.c:214 +#, c-format +msgid "object %s: expected type %s, found %s" +msgstr "неправилен вид на обекта „%s“: очакваше Ñе „%s“, а бе получен „%s“" + +#: builtin/index-pack.c:256 #, c-format msgid "cannot fill %d byte" msgid_plural "cannot fill %d bytes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "не може да Ñе запълни %d байт" +msgstr[1] "не може да Ñе запълнÑÑ‚ %d байта" -#: builtin/index-pack.c:254 +#: builtin/index-pack.c:266 msgid "early EOF" -msgstr "" +msgstr "неочакван край на файл" -#: builtin/index-pack.c:255 +#: builtin/index-pack.c:267 msgid "read error on input" -msgstr "" +msgstr "грешка при четене на входните данни" -#: builtin/index-pack.c:267 +#: builtin/index-pack.c:279 msgid "used more bytes than were available" -msgstr "" +msgstr "използвани Ñа повече от наличните байтове" -#: builtin/index-pack.c:274 +#: builtin/index-pack.c:286 msgid "pack too large for current definition of off_t" -msgstr "" +msgstr "пакетниÑÑ‚ файл е прекалено голÑм за текущата ÑтойноÑÑ‚ на типа „off_t“" -#: builtin/index-pack.c:290 +#: builtin/index-pack.c:302 #, c-format msgid "unable to create '%s'" -msgstr "" +msgstr "пакетниÑÑ‚ файл „%s“ не може да бъде Ñъздаден" -#: builtin/index-pack.c:295 +#: builtin/index-pack.c:307 #, c-format msgid "cannot open packfile '%s'" -msgstr "" +msgstr "пакетниÑÑ‚ файл „%s“ не може да бъде отворен" -#: builtin/index-pack.c:309 +#: builtin/index-pack.c:321 msgid "pack signature mismatch" -msgstr "" +msgstr "неÑъответÑтвие в подпиÑа към Ð¿Ð°ÐºÐµÑ‚Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»" -#: builtin/index-pack.c:311 +#: builtin/index-pack.c:323 #, c-format msgid "pack version %<PRIu32> unsupported" -msgstr "" +msgstr "не Ñе поддържа пакетиране вeÑ€ÑÐ¸Ñ â€ž%<PRIu32>“" -#: builtin/index-pack.c:329 +#: builtin/index-pack.c:341 #, c-format msgid "pack has bad object at offset %lu: %s" -msgstr "" +msgstr "повреден обект в Ð¿Ð°ÐºÐµÑ‚Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» при отмеÑтване %lu: %s" -#: builtin/index-pack.c:451 +#: builtin/index-pack.c:462 #, c-format msgid "inflate returned %d" -msgstr "" +msgstr "декомпреÑирането Ñ â€žinflate“ върна %d" -#: builtin/index-pack.c:500 +#: builtin/index-pack.c:511 msgid "offset value overflow for delta base object" -msgstr "" +msgstr "ÑтойноÑтта на отмеÑтването за обекта-разлика води до препълване" -#: builtin/index-pack.c:508 +#: builtin/index-pack.c:519 msgid "delta base offset is out of bound" -msgstr "" +msgstr "ÑтойноÑтта на отмеÑтването за обекта-разлика е извън диапазона" -#: builtin/index-pack.c:516 +#: builtin/index-pack.c:527 #, c-format msgid "unknown object type %d" -msgstr "" +msgstr "непознат вид обект %d" -#: builtin/index-pack.c:547 +#: builtin/index-pack.c:558 msgid "cannot pread pack file" -msgstr "" +msgstr "пакетниÑÑ‚ файл не може да бъде прочетен" -#: builtin/index-pack.c:549 +#: builtin/index-pack.c:560 #, 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] "неочакван край на файл, липÑва %lu байт" +msgstr[1] "неочакван край на файл, липÑват %lu байта" -#: builtin/index-pack.c:575 +#: builtin/index-pack.c:586 msgid "serious inflate inconsistency" -msgstr "" +msgstr "Ñериозна грешка при декомпреÑиране Ñ â€žinflate“" -#: builtin/index-pack.c:666 builtin/index-pack.c:672 builtin/index-pack.c:695 -#: builtin/index-pack.c:729 builtin/index-pack.c:738 +#: builtin/index-pack.c:677 builtin/index-pack.c:683 builtin/index-pack.c:706 +#: builtin/index-pack.c:740 builtin/index-pack.c:749 #, c-format msgid "SHA1 COLLISION FOUND WITH %s !" msgstr "" +"СЪВПÐДЕÐИЕ ÐРСТОЙÐОСТИТЕ ЗРСУМИТЕ ЗРSHA1: „%s“ ÐРДВРРÐЗЛИЧÐИ ОБЕКТÐ!" -#: builtin/index-pack.c:669 builtin/pack-objects.c:162 +# FIXME merge with next? +#: builtin/index-pack.c:680 builtin/pack-objects.c:162 #: builtin/pack-objects.c:254 #, c-format msgid "unable to read %s" -msgstr "" +msgstr "обектът „%s“ не може да бъде прочетен" -#: builtin/index-pack.c:735 +#: builtin/index-pack.c:746 #, c-format msgid "cannot read existing object %s" -msgstr "" +msgstr "ÑъщеÑтвуващиÑÑ‚ обект „%s“ не може да бъде прочетен" -#: builtin/index-pack.c:749 +#: builtin/index-pack.c:760 #, c-format msgid "invalid blob object %s" -msgstr "" +msgstr "неправилен обект BLOB „%s“" -#: builtin/index-pack.c:763 +# FIXME perhaps invalid object +#: builtin/index-pack.c:774 #, c-format msgid "invalid %s" -msgstr "" +msgstr "неправилен обект „%s“" -#: builtin/index-pack.c:766 +#: builtin/index-pack.c:777 msgid "Error in object" -msgstr "" +msgstr "Грешка в обекта" -#: builtin/index-pack.c:768 +#: builtin/index-pack.c:779 #, c-format msgid "Not all child objects of %s are reachable" -msgstr "" +msgstr "ÐÑкои обекти, наÑледници на „%s“, не могат да бъдат доÑтигнати" -#: builtin/index-pack.c:839 builtin/index-pack.c:869 +#: builtin/index-pack.c:851 builtin/index-pack.c:881 msgid "failed to apply delta" -msgstr "" +msgstr "разликата не може да бъде приложена" -#: builtin/index-pack.c:1010 +#: builtin/index-pack.c:1022 msgid "Receiving objects" -msgstr "" +msgstr "Получаване на обекти" -#: builtin/index-pack.c:1010 +#: builtin/index-pack.c:1022 msgid "Indexing objects" -msgstr "" +msgstr "ИндекÑиране на обекти" -#: builtin/index-pack.c:1036 +#: builtin/index-pack.c:1048 msgid "pack is corrupted (SHA1 mismatch)" -msgstr "" +msgstr "пакетниÑÑ‚ файл е повреден (нееднакви Ñуми по SHA1)" -#: builtin/index-pack.c:1041 +#: builtin/index-pack.c:1053 msgid "cannot fstat packfile" -msgstr "" +msgstr "не може да Ñе получи Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° Ð¿Ð°ÐºÐµÑ‚Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» Ñ â€žfstat“" -#: builtin/index-pack.c:1044 +#: builtin/index-pack.c:1056 msgid "pack has junk at the end" -msgstr "" +msgstr "в ÐºÑ€Ð°Ñ Ð½Ð° Ð¿Ð°ÐºÐµÑ‚Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» има повредени данни" -#: builtin/index-pack.c:1055 +# FIXME WTF message +#: builtin/index-pack.c:1067 msgid "confusion beyond insanity in parse_pack_objects()" -msgstr "" +msgstr "катаÑтрофална грешка във функциÑта „parse_pack_objects“" -#: builtin/index-pack.c:1078 +#: builtin/index-pack.c:1090 msgid "Resolving deltas" -msgstr "" +msgstr "Откриване на Ñъответните разлики" -#: builtin/index-pack.c:1088 +#: builtin/index-pack.c:1100 #, c-format msgid "unable to create thread: %s" -msgstr "" +msgstr "не може да Ñе Ñъздаде нишка: %s" -#: builtin/index-pack.c:1130 +# FIXME WTF message +#: builtin/index-pack.c:1142 msgid "confusion beyond insanity" -msgstr "" +msgstr "катаÑтрофална грешка" -#: builtin/index-pack.c:1138 +#: builtin/index-pack.c:1150 #, c-format msgid "completed with %d local objects" -msgstr "" +msgstr "дейÑтвието завърши Ñ %d локални обекта" -#: builtin/index-pack.c:1148 +#: builtin/index-pack.c:1160 #, c-format msgid "Unexpected tail checksum for %s (disk corruption?)" msgstr "" +"Ðеочаквана поÑледваща Ñума за грешки за „%s“ (причината може да е грешка в " +"диÑка)" -#: builtin/index-pack.c:1152 +#: builtin/index-pack.c:1164 #, c-format msgid "pack has %d unresolved delta" msgid_plural "pack has %d unresolved deltas" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "в пакета има %d ненапаÑваща разлика" +msgstr[1] "в пакета има %d ненапаÑващи разлики" -#: builtin/index-pack.c:1177 +#: builtin/index-pack.c:1189 #, c-format msgid "unable to deflate appended object (%d)" -msgstr "" +msgstr "добавениÑÑ‚ обект не може да Ñе компреÑира Ñ â€ždeflate“: %d" -#: builtin/index-pack.c:1256 +#: builtin/index-pack.c:1268 #, c-format msgid "local object %s is corrupt" -msgstr "" +msgstr "локалниÑÑ‚ обект „%s“ е повреден" -#: builtin/index-pack.c:1280 +#: builtin/index-pack.c:1292 msgid "error while closing pack file" -msgstr "" +msgstr "грешка при затварÑнето на Ð¿Ð°ÐºÐµÑ‚Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»" -#: builtin/index-pack.c:1293 +#: builtin/index-pack.c:1305 #, c-format msgid "cannot write keep file '%s'" msgstr "" +"грешка при запиÑването на файла „%s“, оÑигурÑващ запазване на директориÑ" -#: builtin/index-pack.c:1301 +#: builtin/index-pack.c:1313 #, c-format msgid "cannot close written keep file '%s'" msgstr "" +"грешка при затварÑнето на запиÑÐ°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» „%s“, оÑигурÑващ запазване на " +"директориÑ" -#: builtin/index-pack.c:1314 +#: builtin/index-pack.c:1326 msgid "cannot store pack file" -msgstr "" +msgstr "пакетниÑÑ‚ файл не може да бъде запазен" -#: builtin/index-pack.c:1325 +#: builtin/index-pack.c:1337 msgid "cannot store index file" msgstr "файлът за индекÑа не може да бъде Ñъхранен" -#: builtin/index-pack.c:1358 +#: builtin/index-pack.c:1370 #, c-format msgid "bad pack.indexversion=%<PRIu32>" -msgstr "" +msgstr "зададена е неправилна верÑÐ¸Ñ Ð¿Ð°ÐºÐµÑ‚Ð¸Ñ€Ð°Ð½Ðµ: „pack.indexversion=%<PRIu32>“" -#: builtin/index-pack.c:1364 +#: builtin/index-pack.c:1376 #, c-format msgid "invalid number of threads specified (%d)" -msgstr "" +msgstr "зададен е неправилен брой нишки: %d" -#: builtin/index-pack.c:1368 builtin/index-pack.c:1546 +#: builtin/index-pack.c:1380 builtin/index-pack.c:1559 #, c-format msgid "no threads support, ignoring %s" -msgstr "" +msgstr "липÑва поддръжка за нишки. „%s“ ще Ñе пренебрегне" -#: builtin/index-pack.c:1426 +#: builtin/index-pack.c:1438 #, c-format msgid "Cannot open existing pack file '%s'" -msgstr "" +msgstr "СъщеÑтвуващиÑÑ‚ пакетен файл „%s“ не може да бъде отворен" -#: builtin/index-pack.c:1428 +#: builtin/index-pack.c:1440 #, c-format msgid "Cannot open existing pack idx file for '%s'" -msgstr "" +msgstr "СъщеÑтвуващиÑÑ‚ Ð¸Ð½Ð´ÐµÐºÑ Ð·Ð° Ð¿Ð°ÐºÐµÑ‚Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» „%s“ не може да бъде отворен" -#: builtin/index-pack.c:1475 +#: builtin/index-pack.c:1487 #, c-format msgid "non delta: %d object" msgid_plural "non delta: %d objects" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%d обект не е разлика" +msgstr[1] "%d обекта не Ñа разлика" -#: builtin/index-pack.c:1482 +#: builtin/index-pack.c:1494 #, c-format msgid "chain length = %d: %lu object" msgid_plural "chain length = %d: %lu objects" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "дължината на веригата е %d: %lu обект" +msgstr[1] "дължината на веригата е %d: %lu обекта" -#: builtin/index-pack.c:1510 +# FIXME it is not the cwd it is the previous cwd +#: builtin/index-pack.c:1523 msgid "Cannot come back to cwd" -msgstr "" +msgstr "ПроцеÑÑŠÑ‚ не може да Ñе върне към предишната работна директориÑ" -#: builtin/index-pack.c:1558 builtin/index-pack.c:1561 -#: builtin/index-pack.c:1573 builtin/index-pack.c:1577 +#: builtin/index-pack.c:1571 builtin/index-pack.c:1574 +#: builtin/index-pack.c:1586 builtin/index-pack.c:1590 #, c-format msgid "bad %s" -msgstr "" +msgstr "неправилна ÑтойноÑÑ‚ „%s“" -#: builtin/index-pack.c:1591 +#: builtin/index-pack.c:1604 msgid "--fix-thin cannot be used without --stdin" -msgstr "" +msgstr "опциÑта „--fix-thin“ изиÑква „--stdin“" -#: builtin/index-pack.c:1595 builtin/index-pack.c:1605 +#: builtin/index-pack.c:1608 builtin/index-pack.c:1617 #, c-format msgid "packfile name '%s' does not end with '.pack'" -msgstr "" +msgstr "името на Ð¿Ð°ÐºÐµÑ‚Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» „%s“ не завършва на „.pack“" -#: builtin/index-pack.c:1614 +#: builtin/index-pack.c:1625 msgid "--verify with no packfile name given" -msgstr "" +msgstr "опциÑта „--verify“ изиÑква име на пакетен файл" #: builtin/init-db.c:35 #, c-format msgid "Could not make %s writable by group" -msgstr "" +msgstr "Ðе могат да Ñе дадат права за Ð·Ð°Ð¿Ð¸Ñ Ð² директориÑта „%s“ на групата" +# FIXME - bad wording insanely #: builtin/init-db.c:62 #, c-format msgid "insanely long template name %s" -msgstr "" +msgstr "твърде дълго име на шаблон: „%s“" #: builtin/init-db.c:67 #, c-format msgid "cannot stat '%s'" -msgstr "" +msgstr "не може да Ñе получи Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ñ‡Ñ€ÐµÐ· „stat“ за директориÑта „%s“" #: builtin/init-db.c:73 #, c-format msgid "cannot stat template '%s'" -msgstr "" +msgstr "не може да Ñе получи Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ñ‡Ñ€ÐµÐ· „stat“ за шаблона „%s“" #: builtin/init-db.c:80 #, c-format msgid "cannot opendir '%s'" -msgstr "" +msgstr "директориÑта „%s“ не може да бъде отворена" #: builtin/init-db.c:97 #, c-format msgid "cannot readlink '%s'" -msgstr "" +msgstr "връзката „%s“ не може да бъде прочетена" +# FIXME - bad wording insanely #: builtin/init-db.c:99 #, c-format msgid "insanely long symlink %s" -msgstr "" +msgstr "твърде дълго име на Ñимволна връзка: „%s“" #: builtin/init-db.c:102 #, c-format msgid "cannot symlink '%s' '%s'" -msgstr "" +msgstr "не може да Ñе Ñъздаде Ñимволна връзка „%s“ в „%s“" #: builtin/init-db.c:106 #, c-format msgid "cannot copy '%s' to '%s'" -msgstr "" +msgstr "„%s“ не може да Ñе копира в „%s“" #: builtin/init-db.c:110 #, c-format msgid "ignoring template %s" -msgstr "" +msgstr "игнориране на шаблона „%s“" +# FIXME bad word insanely #: builtin/init-db.c:133 #, c-format msgid "insanely long template path %s" -msgstr "" +msgstr "твърде дълъг път към шаблон: „%s“" #: builtin/init-db.c:141 #, c-format msgid "templates not found %s" -msgstr "" +msgstr "директориÑта Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¸Ñ‚Ðµ не е открита: „%s“" #: builtin/init-db.c:154 #, c-format msgid "not copying templates of a wrong format version %d from '%s'" msgstr "" +"шаблоните Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÐµÐ½ номер на формата %d нÑма да бъдат копирани от „%s“" #: builtin/init-db.c:192 #, c-format msgid "insane git directory %s" -msgstr "" +msgstr "твърде дълго име на Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° Git: „%s“" #: builtin/init-db.c:323 builtin/init-db.c:326 #, c-format msgid "%s already exists" -msgstr "" +msgstr "ДиректориÑта „%s“ вече ÑъщеÑтвува" #: builtin/init-db.c:355 #, c-format msgid "unable to handle file type %d" -msgstr "" +msgstr "файлове от вид %d не Ñе поддържат" #: builtin/init-db.c:358 #, c-format msgid "unable to move %s to %s" -msgstr "" +msgstr "„%s“ не може да Ñе премеÑти в „%s“" #. TRANSLATORS: The first '%s' is either "Reinitialized #. existing" or "Initialized empty", the second " shared" or @@ -6282,51 +6493,55 @@ msgstr "" #: builtin/init-db.c:418 #, c-format msgid "%s%s Git repository in %s%s\n" -msgstr "" +msgstr "%s%s хранилище на Git в „%s%s“\n" #: builtin/init-db.c:419 msgid "Reinitialized existing" -msgstr "" +msgstr "Ðаново инициализирано, ÑъщеÑтвуващо" #: builtin/init-db.c:419 msgid "Initialized empty" -msgstr "" +msgstr "Инициализирано празно" #: builtin/init-db.c:420 msgid " shared" -msgstr "" +msgstr ", Ñподелено" #: builtin/init-db.c:439 msgid "cannot tell cwd" -msgstr "" +msgstr "текущата Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ðµ може да бъде определена" #: builtin/init-db.c:465 msgid "" "git init [-q | --quiet] [--bare] [--template=<template-directory>] [--" "shared[=<permissions>]] [directory]" msgstr "" +"git init [-q | --quiet] [--bare] [--template=ДИРЕКТОРИЯ_С_ШÐБЛОÐИ] [--" +"shared[=ПРÐÐ’Ð]] [ДИРЕКТОРИЯ]" #: builtin/init-db.c:488 msgid "permissions" -msgstr "" +msgstr "права" #: builtin/init-db.c:489 msgid "specify that the git repository is to be shared amongst several users" msgstr "" +"указване, че хранилището на Git ще бъде Ñподелено от повече от един " +"потребител" -#: builtin/init-db.c:491 builtin/prune-packed.c:79 builtin/repack.c:168 +#: builtin/init-db.c:491 builtin/prune-packed.c:79 builtin/repack.c:172 msgid "be quiet" msgstr "без извеждане на информациÑ" #: builtin/init-db.c:523 builtin/init-db.c:528 #, c-format msgid "cannot mkdir %s" -msgstr "" +msgstr "директориÑта „%s“ не може да бъде Ñъздадена" #: builtin/init-db.c:532 #, c-format msgid "cannot chdir to %s" -msgstr "" +msgstr "не може да Ñе влезе в директориÑта „%s“" #: builtin/init-db.c:554 #, c-format @@ -6334,58 +6549,60 @@ msgid "" "%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-" "dir=<directory>)" msgstr "" +"%s (или --work-tree=ДИРЕКТОРИЯ) изиÑква указването на %s (или --git-" +"dir=ДИРЕКТОРИЯ)" #: builtin/init-db.c:578 msgid "Cannot access current working directory" -msgstr "" +msgstr "Текущата работна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ðµ недоÑтъпна" #: builtin/init-db.c:585 #, c-format msgid "Cannot access work tree '%s'" -msgstr "" +msgstr "Работното дърво в „%s“ е недоÑтъпно" #: builtin/log.c:41 msgid "git log [<options>] [<revision range>] [[--] <path>...]\n" -msgstr "git log [ОПЦИИ] [ДИÐПÐЗОÐ_ÐÐ_ВЕРСИИТЕ] [[--] ПЪТ…]\n" +msgstr "git log [ОПЦИЯ…] [ДИÐПÐЗОÐ_ÐÐ_ВЕРСИИТЕ] [[--] ПЪТ…]\n" #: builtin/log.c:42 msgid " or: git show [options] <object>..." -msgstr " или: git show [ОПЦИИ] ОБЕКТ…" +msgstr " или: git show [ОПЦИЯ…] ОБЕКТ…" -#: builtin/log.c:125 +#: builtin/log.c:127 msgid "suppress diff output" msgstr "без извеждане на разликите" -#: builtin/log.c:126 +#: builtin/log.c:128 msgid "show source" msgstr "извеждане на Ð¸Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ ÐºÐ¾Ð´" -#: builtin/log.c:127 +#: builtin/log.c:129 msgid "Use mail map file" msgstr "" "Използване на файл за ÑъответÑтвиÑта на имената и адреÑите на е-поща („." "mailmap“)" -#: builtin/log.c:128 +#: builtin/log.c:130 msgid "decorate options" msgstr "наÑтройки на форма̀та на извежданата информациÑ" -#: builtin/log.c:231 +#: builtin/log.c:229 #, c-format msgid "Final output: %d %s\n" msgstr "Резултат: %d %s\n" -#: builtin/log.c:473 builtin/log.c:565 +#: builtin/log.c:470 builtin/log.c:562 #, c-format msgid "Could not read object %s" msgstr "Обектът не може да бъде прочетен: %s" -#: builtin/log.c:589 +#: builtin/log.c:586 #, c-format msgid "Unknown type: %d" msgstr "ÐеизвеÑтен вид: %d" -#: builtin/log.c:689 +#: builtin/log.c:687 msgid "format.headers without value" msgstr "не е зададена ÑтойноÑÑ‚ на „format.headers“" @@ -6406,204 +6623,214 @@ msgstr "ТрÑбва да зададете точно един диапазон. msgid "Not a range." msgstr "Ðе е диапазон." -#: builtin/log.c:911 +#: builtin/log.c:916 msgid "Cover letter needs email format" msgstr "Придружаващото пиÑмо Ñ‚Ñ€Ñбва да е форматирано като е-пиÑмо" -#: builtin/log.c:987 +# FIXME bad wording insanely +#: builtin/log.c:995 #, c-format msgid "insane in-reply-to: %s" msgstr "неправилен формат на заглавната чаÑÑ‚ за отговор „in-reply-to“: %s" -#: builtin/log.c:1015 +#: builtin/log.c:1023 msgid "git format-patch [options] [<since> | <revision range>]" -msgstr "git format-patch [ОПЦИИ] [ОТ | ДИÐПÐЗОÐ_ÐÐ_ВЕРСИИТЕ]" +msgstr "git format-patch [ОПЦИЯ…] [ОТ | ДИÐПÐЗОÐ_ÐÐ_ВЕРСИИТЕ]" -# FIXME message -#: builtin/log.c:1060 +# FIXME message WTF why ask it +#: builtin/log.c:1068 msgid "Two output directories?" msgstr "" "Можете да укажете макÑимум една Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° изход, а Ñте задали поне две." -#: builtin/log.c:1175 +#: builtin/log.c:1183 msgid "use [PATCH n/m] even with a single patch" msgstr "Ð½Ð¾Ð¼ÐµÑ€Ð°Ñ†Ð¸Ñ â€ž[PATCH n/m]“ дори и при единÑтвена кръпка" -#: builtin/log.c:1178 +#: builtin/log.c:1186 msgid "use [PATCH] even with multiple patches" msgstr "Ð½Ð¾Ð¼ÐµÑ€Ð°Ñ†Ð¸Ñ â€ž[PATCH]“ дори и при множеÑтво кръпки" -#: builtin/log.c:1182 +#: builtin/log.c:1190 msgid "print patches to standard out" msgstr "извеждане на кръпките на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´" -#: builtin/log.c:1184 +#: builtin/log.c:1192 msgid "generate a cover letter" msgstr "Ñъздаване на придружаващо пиÑмо" -#: builtin/log.c:1186 +#: builtin/log.c:1194 msgid "use simple number sequence for output file names" msgstr "проÑта чиÑлова поÑледователноÑÑ‚ за имената на файловете-кръпки" -#: builtin/log.c:1187 +#: builtin/log.c:1195 msgid "sfx" msgstr "ЗÐÐЦИ" -#: builtin/log.c:1188 +#: builtin/log.c:1196 msgid "use <sfx> instead of '.patch'" msgstr "използване на тези ЗÐÐЦИ за ÑÑƒÑ„Ð¸ÐºÑ Ð²Ð¼ÐµÑто „.patch“" -#: builtin/log.c:1190 +#: builtin/log.c:1198 msgid "start numbering patches at <n> instead of 1" msgstr "номерирането на кръпките да започва от този БРОЙ, а не Ñ 1" -#: builtin/log.c:1192 +#: builtin/log.c:1200 msgid "mark the series as Nth re-roll" msgstr "отбелÑзване, че това е N-тата поредна Ñ€ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° поредицата от кръпки" -#: builtin/log.c:1194 +#: builtin/log.c:1202 msgid "Use [<prefix>] instead of [PATCH]" msgstr "Използване на този „[ПРЕФИКС]“ вмеÑто „[PATCH]“" -#: builtin/log.c:1197 +#: builtin/log.c:1205 msgid "store resulting files in <dir>" msgstr "запазване на изходните файлове в тази ДИРЕКТОРИЯ" -#: builtin/log.c:1200 +#: builtin/log.c:1208 msgid "don't strip/add [PATCH]" msgstr "без добавÑне/махане на префикÑа „[PATCH]“" -#: builtin/log.c:1203 +#: builtin/log.c:1211 msgid "don't output binary diffs" msgstr "без извеждане на разлики между двоични файлове" -#: builtin/log.c:1205 +#: builtin/log.c:1213 msgid "don't include a patch matching a commit upstream" msgstr "да не Ñе включват кръпки, които приÑÑŠÑтват в ÑÐ»ÐµÐ´ÐµÐ½Ð¸Ñ ÐºÐ»Ð¾Ð½" -#: builtin/log.c:1207 +#: builtin/log.c:1215 msgid "show patch format instead of default (patch + stat)" msgstr "" "извеждане във формат за кръпки, а на в ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ (кръпка и ÑтатиÑтика)" -#: builtin/log.c:1209 +#: builtin/log.c:1217 msgid "Messaging" msgstr "Опции при изпращане" -#: builtin/log.c:1210 +#: builtin/log.c:1218 msgid "header" msgstr "ЗÐГЛÐÐ’ÐÐ_ЧÐСТ" -#: builtin/log.c:1211 +#: builtin/log.c:1219 msgid "add email header" msgstr "добавÑне на тази ЗÐГЛÐÐ’ÐÐ_ЧÐСТ" -#: builtin/log.c:1212 builtin/log.c:1214 +#: builtin/log.c:1220 builtin/log.c:1222 msgid "email" msgstr "Е-ПОЩÐ" -#: builtin/log.c:1212 +#: builtin/log.c:1220 msgid "add To: header" msgstr "добавÑне на заглавна чаÑÑ‚ „To:“ (до)" -#: builtin/log.c:1214 +#: builtin/log.c:1222 msgid "add Cc: header" msgstr "добавÑне на заглавна чаÑÑ‚ „Cc:“ (и до)" -#: builtin/log.c:1216 +#: builtin/log.c:1224 msgid "ident" msgstr "ИДЕÐТИЧÐОСТ" -#: builtin/log.c:1217 +#: builtin/log.c:1225 msgid "set From address to <ident> (or committer ident if absent)" msgstr "" "задаване на адреÑа в заглавната чаÑÑ‚ „From“ да е тази ИДЕÐТИЧÐОСТ. Ðко не е " "зададена такава, Ñе взима адреÑа на подаващиÑ" -#: builtin/log.c:1219 +#: builtin/log.c:1227 msgid "message-id" msgstr "ИДЕÐТИФИКÐТОР_ÐÐ_СЪОБЩЕÐИЕ" -#: builtin/log.c:1220 +#: builtin/log.c:1228 msgid "make first mail a reply to <message-id>" msgstr "" "първото Ñъобщение да е в отговор на е-пиÑмото Ñ Ñ‚Ð¾Ð·Ð¸ " "ИДЕÐТИФИКÐТОР_ÐÐ_СЪОБЩЕÐИЕ" -#: builtin/log.c:1221 builtin/log.c:1224 +#: builtin/log.c:1229 builtin/log.c:1232 msgid "boundary" msgstr "граница" -#: builtin/log.c:1222 +#: builtin/log.c:1230 msgid "attach the patch" msgstr "прикрепÑне на кръпката" -#: builtin/log.c:1225 +#: builtin/log.c:1233 msgid "inline the patch" msgstr "включване на кръпката в текÑта на пиÑмата" -#: builtin/log.c:1229 +#: builtin/log.c:1237 msgid "enable message threading, styles: shallow, deep" msgstr "" "използване на нишки за ÑъобщениÑта. Стилът е „shallow“ (плитък) или " "„deep“ (дълбок)" -#: builtin/log.c:1231 +#: builtin/log.c:1239 msgid "signature" msgstr "подпиÑ" -#: builtin/log.c:1232 +#: builtin/log.c:1240 msgid "add a signature" msgstr "добавÑне на поле за подпиÑ" -#: builtin/log.c:1233 +#: builtin/log.c:1242 +msgid "add a signature from a file" +msgstr "добавÑне на Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð¾Ñ‚ файл" + +#: builtin/log.c:1243 msgid "don't print the patch filenames" msgstr "без извеждане на имената на кръпките" -#: builtin/log.c:1307 +#: builtin/log.c:1317 #, c-format msgid "invalid ident line: %s" msgstr "грешна идентичноÑÑ‚: %s" -#: builtin/log.c:1322 +#: builtin/log.c:1332 msgid "-n and -k are mutually exclusive." msgstr "опциите „-n“ и „-k“ Ñа неÑъвмеÑтими." -#: builtin/log.c:1324 +#: builtin/log.c:1334 msgid "--subject-prefix and -k are mutually exclusive." msgstr "опциите „--subject-prefix“ и „-k“ Ñа неÑъвмеÑтими." -#: builtin/log.c:1332 +#: builtin/log.c:1342 msgid "--name-only does not make sense" msgstr "опциÑта „--name-only“ е неÑъвмеÑтима Ñ Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð°Ð½ÐµÑ‚Ð¾ на кръпки" -#: builtin/log.c:1334 +#: builtin/log.c:1344 msgid "--name-status does not make sense" msgstr "опциÑта „--name-status“ е неÑъвмеÑтима Ñ Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð°Ð½ÐµÑ‚Ð¾ на кръпки" -#: builtin/log.c:1336 +#: builtin/log.c:1346 msgid "--check does not make sense" msgstr "опциÑта „--check“ е неÑъвмеÑтима Ñ Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð°Ð½ÐµÑ‚Ð¾ на кръпки" -#: builtin/log.c:1359 +#: builtin/log.c:1369 msgid "standard output, or directory, which one?" msgstr "" "изходът може да или ÑтандартниÑÑ‚, или да е в директориÑ, но не и двете." -#: builtin/log.c:1361 +#: builtin/log.c:1371 #, c-format msgid "Could not create directory '%s'" -msgstr "Папката „%s“ не може да бъде Ñъздадена" +msgstr "ДиректориÑта „%s“ не може да бъде Ñъздадена" -#: builtin/log.c:1509 +#: builtin/log.c:1468 +#, c-format +msgid "unable to read signature file '%s'" +msgstr "файлът „%s“ Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð½Ðµ може да бъде прочетен" + +#: builtin/log.c:1531 msgid "Failed to create output files" msgstr "Изходните файлове не могат да бъдат Ñъздадени" -#: builtin/log.c:1558 +#: builtin/log.c:1579 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]" msgstr "git cherry [-v] [ОТДÐЛЕЧЕÐ_КЛОР[ВРЪХ [ПРЕДЕЛ]]]" -#: builtin/log.c:1613 +#: builtin/log.c:1634 #, c-format msgid "" "Could not find a tracked remote branch, please specify <upstream> manually.\n" @@ -6611,118 +6838,121 @@ msgstr "" "СледениÑÑ‚ отдалечен клон не бе открит, затова изрично задайте " "ОТДÐЛЕЧЕÐ_КЛОÐ.\n" -#: builtin/log.c:1626 builtin/log.c:1628 builtin/log.c:1640 +#: builtin/log.c:1647 builtin/log.c:1649 builtin/log.c:1661 #, c-format msgid "Unknown commit %s" msgstr "Ðепознато подаване „%s“" #: builtin/ls-files.c:401 msgid "git ls-files [options] [<file>...]" -msgstr "" +msgstr "git ls-files [ОПЦИЯ…] [ФÐЙЛ…]" #: builtin/ls-files.c:458 msgid "identify the file status with tags" -msgstr "" +msgstr "извеждане на ÑÑŠÑтоÑнието на файловете Ñ ÐµÐ´Ð½Ð¾Ð±ÑƒÐºÐ²ÐµÐ½Ð¸ флагове" #: builtin/ls-files.c:460 msgid "use lowercase letters for 'assume unchanged' files" -msgstr "" +msgstr "малки букви за файловете, които да Ñе Ñчетат за непроменени" #: builtin/ls-files.c:462 msgid "show cached files in the output (default)" -msgstr "" +msgstr "извеждане на кешираните файлове (Ñтандартно)" #: builtin/ls-files.c:464 msgid "show deleted files in the output" -msgstr "" +msgstr "извеждане на изтритите файлове" #: builtin/ls-files.c:466 msgid "show modified files in the output" -msgstr "" +msgstr "извеждане на променените файлове" #: builtin/ls-files.c:468 msgid "show other files in the output" -msgstr "" +msgstr "извеждане на другите файлове" #: builtin/ls-files.c:470 msgid "show ignored files in the output" -msgstr "" +msgstr "извеждане на игнорираните файлове" #: builtin/ls-files.c:473 msgid "show staged contents' object name in the output" -msgstr "" +msgstr "извеждане на името на обекта за Ñъдържанието на индекÑа" #: builtin/ls-files.c:475 msgid "show files on the filesystem that need to be removed" -msgstr "" +msgstr "извеждане на файловете, които Ñ‚Ñ€Ñбва да бъдат изтрити" #: builtin/ls-files.c:477 msgid "show 'other' directories' name only" -msgstr "" +msgstr "извеждане Ñамо на името на другите директории" #: builtin/ls-files.c:480 msgid "don't show empty directories" -msgstr "" +msgstr "без извеждане на празните директории" #: builtin/ls-files.c:483 msgid "show unmerged files in the output" -msgstr "" +msgstr "извеждане на неÑлетите файлове" +# FIXME not clear about what this option does #: builtin/ls-files.c:485 msgid "show resolve-undo information" -msgstr "" +msgstr "извеждане на информациÑта за отмÑна на разрешените подаваниÑ" #: builtin/ls-files.c:487 msgid "skip files matching pattern" -msgstr "" +msgstr "преÑкачане на файловете напаÑващи ШÐБЛОÐа" #: builtin/ls-files.c:490 msgid "exclude patterns are read from <file>" -msgstr "" +msgstr "шаблоните за игнориране да Ñе прочетат от този ФÐЙЛ" #: builtin/ls-files.c:493 msgid "read additional per-directory exclude patterns in <file>" msgstr "" +"изчитане на допълнителните шаблони за игнориране по Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð¾Ñ‚ този ФÐЙЛ" #: builtin/ls-files.c:495 msgid "add the standard git exclusions" -msgstr "" +msgstr "добавÑне на Ñтандартно игнорираните от Git файлове" #: builtin/ls-files.c:498 msgid "make the output relative to the project top directory" -msgstr "" +msgstr "пътищата да Ñа отноÑителни ÑпрÑмо оÑновната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° проекта" #: builtin/ls-files.c:501 msgid "if any <file> is not in the index, treat this as an error" -msgstr "" +msgstr "грешка, ако нÑкой от тези ФÐЙЛове не е в индекÑа" #: builtin/ls-files.c:502 msgid "tree-ish" -msgstr "" +msgstr "УКÐЗÐТЕЛ_КЪМ_ДЪРВО" #: builtin/ls-files.c:503 msgid "pretend that paths removed since <tree-ish> are still present" msgstr "" +"Ñчитане, че пътищата изтрити Ñлед УКÐЗÐТЕЛÑ_КЪМ_ДЪРВО вÑе още ÑъщеÑтвуват" #: builtin/ls-files.c:505 msgid "show debugging data" -msgstr "" +msgstr "извеждане на информациÑта за изчиÑтване на грешки" #: builtin/ls-tree.c:28 msgid "git ls-tree [<options>] <tree-ish> [<path>...]" -msgstr "" +msgstr "git ls-tree [ОПЦИЯ…] УКÐЗÐТЕЛ_КЪМ_ДЪРВО [ПЪТ…]" #: builtin/ls-tree.c:126 msgid "only show trees" -msgstr "" +msgstr "извеждане Ñамо на дървета" #: builtin/ls-tree.c:128 msgid "recurse into subtrees" -msgstr "" +msgstr "рекурÑивно обхождане поддърветата" #: builtin/ls-tree.c:130 msgid "show trees when recursing" -msgstr "" +msgstr "извеждане на дърветата при рекурÑивното обхождане" #: builtin/ls-tree.c:133 msgid "terminate entries with NUL byte" @@ -6730,62 +6960,65 @@ msgstr "разделÑне на обектите Ñ Ð½ÑƒÐ»ÐµÐ²Ð¸Ñ Ð·Ð½Ð°Ðº „N #: builtin/ls-tree.c:134 msgid "include object size" -msgstr "" +msgstr "извеждане на размера на обекта" #: builtin/ls-tree.c:136 builtin/ls-tree.c:138 msgid "list only filenames" -msgstr "" +msgstr "извеждане Ñамо имената на файловете" #: builtin/ls-tree.c:141 msgid "use full path names" -msgstr "" +msgstr "използване на пълните имена на пътищата" #: builtin/ls-tree.c:143 msgid "list entire tree; not just current directory (implies --full-name)" msgstr "" +"извеждане на цÑлото дърво, не Ñамо на текущата Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ (включва опциÑта " +"„--full-name“)" #: builtin/merge.c:43 msgid "git merge [options] [<commit>...]" -msgstr "" +msgstr "git merge [ОПЦИЯ…] [ПОДÐÐ’ÐÐЕ…]" #: builtin/merge.c:44 msgid "git merge [options] <msg> HEAD <commit>" -msgstr "" +msgstr "git merge [ОПЦИЯ…] СЪОБЩЕÐИЕ HEAD ПОДÐÐ’ÐÐЕ" #: builtin/merge.c:45 msgid "git merge --abort" -msgstr "" +msgstr "git merge --abort" +# FIXME -m rather than just m #: builtin/merge.c:98 msgid "switch `m' requires a value" -msgstr "" +msgstr "опциÑта „-m“ изиÑква ÑтойноÑÑ‚" #: builtin/merge.c:135 #, c-format msgid "Could not find merge strategy '%s'.\n" -msgstr "" +msgstr "ÐÑма такава ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ Ð·Ð° Ñливане: „%s“.\n" #: builtin/merge.c:136 #, c-format msgid "Available strategies are:" -msgstr "" +msgstr "Ðаличните Ñтратегии Ñа:" #: builtin/merge.c:141 #, c-format msgid "Available custom strategies are:" -msgstr "" +msgstr "Допълнителните Ñтратегии Ñа:" #: builtin/merge.c:191 msgid "do not show a diffstat at the end of the merge" -msgstr "" +msgstr "без извеждане на ÑтатиÑтиката Ñлед завършване на Ñливане" #: builtin/merge.c:194 msgid "show a diffstat at the end of the merge" -msgstr "" +msgstr "извеждане на ÑтатиÑтиката Ñлед завършване на Ñливане" #: builtin/merge.c:195 msgid "(synonym to --stat)" -msgstr "" +msgstr "(Ñиноним на „--stat“)" #: builtin/merge.c:197 msgid "add (at most <n>) entries from shortlog to merge commit message" @@ -6795,27 +7028,27 @@ msgstr "" #: builtin/merge.c:200 msgid "create a single commit instead of doing a merge" -msgstr "" +msgstr "Ñъздаване на едно подаване вмеÑто извършване на Ñливане" #: builtin/merge.c:202 msgid "perform a commit if the merge succeeds (default)" -msgstr "" +msgstr "извършване на подаване при уÑпешно Ñливане (Ñтандартно дейÑтвие)" #: builtin/merge.c:204 msgid "edit message before committing" -msgstr "" +msgstr "редактиране на Ñъобщението преди подаване" #: builtin/merge.c:205 msgid "allow fast-forward (default)" -msgstr "" +msgstr "позволÑване на тривиално Ñливане (Ñтандартно дейÑтвие)" #: builtin/merge.c:207 msgid "abort if fast-forward is not possible" -msgstr "" +msgstr "преуÑтановÑване, ако Ñливането не е тривиално" #: builtin/merge.c:211 msgid "Verify that the named commit has a valid GPG signature" -msgstr "" +msgstr "Проверка, че именуваното подаване е Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÐµÐ½ Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð½Ð° GPG" #: builtin/merge.c:212 builtin/notes.c:742 builtin/revert.c:89 msgid "strategy" @@ -6823,102 +7056,105 @@ msgstr "ÑтратегиÑ" #: builtin/merge.c:213 msgid "merge strategy to use" -msgstr "" +msgstr "ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ Ð·Ð° Ñливане, коÑто да Ñе ползва" #: builtin/merge.c:214 msgid "option=value" -msgstr "" +msgstr "опциÑ=ÑтойноÑÑ‚" #: builtin/merge.c:215 msgid "option for selected merge strategy" -msgstr "" +msgstr "Ð¾Ð¿Ñ†Ð¸Ñ Ð·Ð° избраната ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ Ð·Ð° Ñливане" #: builtin/merge.c:217 msgid "merge commit message (for a non-fast-forward merge)" -msgstr "" +msgstr "Ñъобщение при подаването ÑÑŠÑ Ñливане (при нетривиални ÑливаниÑ)" #: builtin/merge.c:221 msgid "abort the current in-progress merge" -msgstr "" +msgstr "преуÑтановÑване на текущото Ñливане" #: builtin/merge.c:250 msgid "could not run stash." -msgstr "" +msgstr "не може да Ñе извърши Ñкатаване" #: builtin/merge.c:255 msgid "stash failed" -msgstr "" +msgstr "неуÑпешно Ñкатаване" #: builtin/merge.c:260 #, c-format msgid "not a valid object: %s" -msgstr "" +msgstr "неправилен обект: „%s“" #: builtin/merge.c:279 builtin/merge.c:296 msgid "read-tree failed" -msgstr "" +msgstr "неуÑпешно прочитане на обект-дърво" #: builtin/merge.c:326 msgid " (nothing to squash)" -msgstr "" +msgstr " (нÑма какво да Ñе Ñмачка)" #: builtin/merge.c:339 #, c-format msgid "Squash commit -- not updating HEAD\n" -msgstr "" +msgstr "Подаване ÑÑŠÑ Ñмачкване — указателÑÑ‚ „HEAD“ нÑма да бъде обновен\n" #: builtin/merge.c:371 msgid "Writing SQUASH_MSG" -msgstr "" +msgstr "ЗапиÑване на Ñъобщението за Ñмачкване SQUASH_MSG" #: builtin/merge.c:373 msgid "Finishing SQUASH_MSG" -msgstr "" +msgstr "Завършване на Ñъобщението за Ñмачкване SQUASH_MSG" #: builtin/merge.c:396 #, c-format msgid "No merge message -- not updating HEAD\n" msgstr "" +"ЛипÑва Ñъобщение при подаване — указателÑÑ‚ „HEAD“ нÑма да бъде обновен\n" #: builtin/merge.c:446 #, c-format msgid "'%s' does not point to a commit" -msgstr "" +msgstr "„%s“ не Ñочи към подаване" #: builtin/merge.c:558 #, c-format msgid "Bad branch.%s.mergeoptions string: %s" -msgstr "" +msgstr "Ðеправилен низ за наÑтройката „branch.%s.mergeoptions“: „%s“" #: builtin/merge.c:653 msgid "git write-tree failed to write a tree" msgstr "Командата „git write-tree“ не уÑÐ¿Ñ Ð´Ð° запише обект-дърво" -#: builtin/merge.c:681 +#: builtin/merge.c:678 msgid "Not handling anything other than two heads merge." -msgstr "" +msgstr "Поддържа Ñе Ñамо Ñливане на точно две иÑтории." -#: builtin/merge.c:695 +#: builtin/merge.c:692 #, c-format msgid "Unknown option for merge-recursive: -X%s" -msgstr "" +msgstr "Ðепозната Ð¾Ð¿Ñ†Ð¸Ñ Ð·Ð° рекурÑивното Ñливане „merge-recursive“: „-X%s“" -#: builtin/merge.c:709 +#: builtin/merge.c:705 #, c-format msgid "unable to write %s" -msgstr "" +msgstr "„%s“ не може да бъде запиÑан" -#: builtin/merge.c:798 +#: builtin/merge.c:794 #, c-format msgid "Could not read from '%s'" -msgstr "" +msgstr "От „%s“ не може да Ñе чете" -#: builtin/merge.c:807 +#: builtin/merge.c:803 #, c-format msgid "Not committing merge; use 'git commit' to complete the merge.\n" msgstr "" +"Сливането нÑма да бъде подадено. За завършването му и подаването му " +"използвайте командата „git commit“.\n" -#: builtin/merge.c:813 +#: builtin/merge.c:809 #, c-format msgid "" "Please enter a commit message to explain why this merge is necessary,\n" @@ -6927,48 +7163,56 @@ msgid "" "Lines starting with '%c' will be ignored, and an empty message aborts\n" "the commit.\n" msgstr "" +"Ð’ Ñъобщението при подаване добавете Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° причината за\n" +"Ñливането, оÑобено ако Ñливате обновен отдалечен клон в тематичен клон.\n" +"\n" +"Редовете, които започват Ñ â€ž%c“ ще бъдат пропуÑнати, а празно Ñъобщение\n" +"преуÑтановÑва подаването.\n" -#: builtin/merge.c:837 +#: builtin/merge.c:833 msgid "Empty commit message." -msgstr "" +msgstr "Празно Ñъобщение при подаване." -#: builtin/merge.c:849 +# FIXME - WTF is wonderful. +#: builtin/merge.c:845 #, c-format msgid "Wonderful.\n" -msgstr "" +msgstr "ЧудеÑно.\n" -#: builtin/merge.c:914 +#: builtin/merge.c:908 #, c-format msgid "Automatic merge failed; fix conflicts and then commit the result.\n" -msgstr "" +msgstr "ÐеуÑпешно Ñливане — коригирайте конфликтите и подайте резултата.\n" -#: builtin/merge.c:930 +#: builtin/merge.c:924 #, c-format msgid "'%s' is not a commit" -msgstr "" +msgstr "„%s“ не е подаване" -#: builtin/merge.c:971 +#: builtin/merge.c:965 msgid "No current branch." -msgstr "" +msgstr "ÐÑма текущ клон." -#: builtin/merge.c:973 +#: builtin/merge.c:967 msgid "No remote for the current branch." -msgstr "" +msgstr "ТекущиÑÑ‚ клон не Ñледи никой." -#: builtin/merge.c:975 +#: builtin/merge.c:969 msgid "No default upstream defined for the current branch." -msgstr "" +msgstr "ТекущиÑÑ‚ клон не Ñледи никой клон." -#: builtin/merge.c:980 +#: builtin/merge.c:974 #, c-format msgid "No remote-tracking branch for %s from %s" -msgstr "" +msgstr "Ðикой клон не Ñледи клона „%s“ от хранилището „%s“" -#: builtin/merge.c:1136 +#: builtin/merge.c:1130 msgid "There is no merge to abort (MERGE_HEAD missing)." msgstr "" +"Ðе може да преуÑтановите Ñливане, защото в момента не Ñе извършва такова " +"(липÑва указател „MERGE_HEAD“)." -#: builtin/merge.c:1152 git-pull.sh:31 +#: builtin/merge.c:1146 git-pull.sh:31 msgid "" "You have not concluded your merge (MERGE_HEAD exists).\n" "Please, commit your changes before you can merge." @@ -6976,11 +7220,11 @@ msgstr "" "Ðе Ñте завършили Ñливане. (УказателÑÑ‚ „MERGE_HEAD“ ÑъщеÑтвува).\n" "Подайте промените Ñи, преди да започнете ново Ñливане." -#: builtin/merge.c:1155 git-pull.sh:34 +#: builtin/merge.c:1149 git-pull.sh:34 msgid "You have not concluded your merge (MERGE_HEAD exists)." msgstr "Ðе Ñте завършили Ñливане. (УказателÑÑ‚ „MERGE_HEAD“ ÑъщеÑтвува)." -#: builtin/merge.c:1159 +#: builtin/merge.c:1153 msgid "" "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n" "Please, commit your changes before you can merge." @@ -6988,183 +7232,197 @@ msgstr "" "Ðе Ñте завършили отбиране на подаване (указателÑÑ‚ „CHERRY_PICK_HEAD“\n" "ÑъщеÑтвува). Подайте промените Ñи, преди да започнете ново Ñливане." -#: builtin/merge.c:1162 +#: builtin/merge.c:1156 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)." msgstr "" "Ðе Ñте завършили отбиране на подаване (указателÑÑ‚ „CHERRY_PICK_HEAD“\n" "ÑъщеÑтвува)." -#: builtin/merge.c:1171 +#: builtin/merge.c:1165 msgid "You cannot combine --squash with --no-ff." -msgstr "" +msgstr "ОпциÑта „--squash“ е неÑъвмеÑтима Ñ â€ž--no-ff“." -#: builtin/merge.c:1180 +#: builtin/merge.c:1174 msgid "No commit specified and merge.defaultToUpstream not set." msgstr "" +"Ðе е указано подаване и наÑтройката „merge.defaultToUpstream“ не е зададена." -#: builtin/merge.c:1212 +#: builtin/merge.c:1206 msgid "Can merge only exactly one commit into empty head" -msgstr "" +msgstr "Можете да Ñлеете точно едно подаване във връх без иÑториÑ" -#: builtin/merge.c:1215 +#: builtin/merge.c:1209 msgid "Squash commit into empty head not supported yet" -msgstr "" +msgstr "Подаване ÑÑŠÑ Ñмачкване във връх без иÑÑ‚Ð¾Ñ€Ð¸Ñ Ð²Ñе още не Ñе поддържа" -#: builtin/merge.c:1217 +#: builtin/merge.c:1211 msgid "Non-fast-forward commit does not make sense into an empty head" msgstr "" +"Понеже върхът е без иÑториÑ, вÑички ÑÐ»Ð¸Ð²Ð°Ð½Ð¸Ñ Ñа тривиални, не може да Ñе " +"извърши нетривиално Ñливане изиÑквано от опциÑта „--no-ff“" -#: builtin/merge.c:1222 +#: builtin/merge.c:1216 #, c-format msgid "%s - not something we can merge" -msgstr "" +msgstr "„%s“ — не е нещо, което може да Ñе Ñлее" -#: builtin/merge.c:1273 +#: builtin/merge.c:1267 #, c-format msgid "Commit %s has an untrusted GPG signature, allegedly by %s." msgstr "" +"Подаването „%s“ е Ñ Ð½ÐµÐ´Ð¾Ð²ÐµÑ€ÐµÐ½ Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð¾Ñ‚ GPG, който твърди, че е на „%s“." -#: builtin/merge.c:1276 +#: builtin/merge.c:1270 #, c-format msgid "Commit %s has a bad GPG signature allegedly by %s." msgstr "" +"Подаването „%s“ е Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÐµÐ½ Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð¾Ñ‚ GPG, който твърди, че е на „%s“." -#: builtin/merge.c:1279 +#: builtin/merge.c:1273 #, c-format msgid "Commit %s does not have a GPG signature." -msgstr "" +msgstr "Подаването „%s“ е без Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð¾Ñ‚ GPG." -#: builtin/merge.c:1282 +#: builtin/merge.c:1276 #, c-format msgid "Commit %s has a good GPG signature by %s\n" -msgstr "" +msgstr "Подаването „%s“ е Ñ ÐºÐ¾Ñ€ÐµÐºÑ‚ÐµÐ½ Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð¾Ñ‚ GPG на „%s“.\n" -#: builtin/merge.c:1366 +#: builtin/merge.c:1357 #, c-format msgid "Updating %s..%s\n" -msgstr "" +msgstr "ОбновÑване „%s..%s“\n" -#: builtin/merge.c:1405 +#: builtin/merge.c:1396 #, c-format msgid "Trying really trivial in-index merge...\n" -msgstr "" +msgstr "Проба Ñ Ð½Ð°Ð¹-тривиалното Ñливане в рамките на индекÑа…\n" -#: builtin/merge.c:1412 +# FIXME WTF message +#: builtin/merge.c:1403 #, c-format msgid "Nope.\n" -msgstr "" +msgstr "ÐеуÑпех.\n" -#: builtin/merge.c:1444 +#: builtin/merge.c:1435 msgid "Not possible to fast-forward, aborting." msgstr "" +"Ðе може да Ñе извърши тривиално Ñливане, преуÑтановÑване на дейÑтвието." -#: builtin/merge.c:1467 builtin/merge.c:1546 +#: builtin/merge.c:1458 builtin/merge.c:1537 #, c-format msgid "Rewinding the tree to pristine...\n" -msgstr "" +msgstr "Привеждане на дървото към първоначалното…\n" -#: builtin/merge.c:1471 +#: builtin/merge.c:1462 #, c-format msgid "Trying merge strategy %s...\n" -msgstr "" +msgstr "Пробване ÑÑŠÑ ÑтратегиÑта за Ñливане „%s“…\n" -#: builtin/merge.c:1537 +#: builtin/merge.c:1528 #, c-format msgid "No merge strategy handled the merge.\n" -msgstr "" +msgstr "ÐÐ¸ÐºÐ¾Ñ ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ Ð·Ð° Ñливане не може да извърши Ñливането.\n" -#: builtin/merge.c:1539 +#: builtin/merge.c:1530 #, c-format msgid "Merge with strategy %s failed.\n" -msgstr "" +msgstr "ÐеуÑпешно Ñливане ÑÑŠÑ ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ â€ž%s“.\n" -#: builtin/merge.c:1548 +#: builtin/merge.c:1539 #, c-format msgid "Using the %s to prepare resolving by hand.\n" msgstr "" +"Ползва Ñе ÑтратегиÑта „%s“, коÑто ще подготви дървото за коригиране на " +"ръка.\n" -#: builtin/merge.c:1560 +#: builtin/merge.c:1551 #, c-format msgid "Automatic merge went well; stopped before committing as requested\n" msgstr "" +"Ðвтоматичното Ñливане завърши уÑпешно. Самото подаване не е извършено, " +"защото бе зададена опциÑта „--no-commit“.\n" #: builtin/merge-base.c:29 msgid "git merge-base [-a|--all] <commit> <commit>..." -msgstr "" +msgstr "git merge-base [-a|--all] ПОДÐÐ’ÐÐЕ ПОДÐÐ’ÐÐЕ…" #: builtin/merge-base.c:30 msgid "git merge-base [-a|--all] --octopus <commit>..." -msgstr "" +msgstr "git merge-base [-a|--all] --octopus ПОДÐÐ’ÐÐЕ…" #: builtin/merge-base.c:31 msgid "git merge-base --independent <commit>..." -msgstr "" +msgstr "git merge-base --independent ПОДÐÐ’ÐÐЕ…" #: builtin/merge-base.c:32 msgid "git merge-base --is-ancestor <commit> <commit>" -msgstr "" +msgstr "git merge-base --is-ancestor ПОДÐÐ’ÐÐЕ_1 ПОДÐÐ’ÐÐЕ_2" #: builtin/merge-base.c:33 msgid "git merge-base --fork-point <ref> [<commit>]" -msgstr "" +msgstr "git merge-base --fork-point УКÐЗÐТЕЛ [ПОДÐÐ’ÐÐЕ]" #: builtin/merge-base.c:214 msgid "output all common ancestors" -msgstr "" +msgstr "извеждане на вÑички общи предшеÑтвеници" #: builtin/merge-base.c:216 msgid "find ancestors for a single n-way merge" msgstr "" +"откриване на предшеÑтвениците за еднократно Ñливане на множеÑтво иÑтории" #: builtin/merge-base.c:218 msgid "list revs not reachable from others" -msgstr "" +msgstr "извеждане на недоÑтижимите от другите указатели" #: builtin/merge-base.c:220 msgid "is the first one ancestor of the other?" -msgstr "" +msgstr "ПОДÐÐ’ÐÐЕ_1 предшеÑтвеник ли е на ПОДÐÐ’ÐÐЕ_2?" #: builtin/merge-base.c:222 msgid "find where <commit> forked from reflog of <ref>" -msgstr "" +msgstr "откриване къде ПОДÐÐ’ÐÐЕто Ñе е отклонило от иÑториÑта на УКÐЗÐТЕЛÑ" #: builtin/merge-file.c:8 msgid "" "git merge-file [options] [-L name1 [-L orig [-L name2]]] file1 orig_file " "file2" msgstr "" +"git merge-file [ОПЦИЯ…] [-L ИМЕ_1 [-L ОРИГИÐÐЛ [-L ИМЕ_2]]] ФÐЙЛ_1 ОРИГ_ФÐЙЛ " +"ФÐЙЛ_2" #: builtin/merge-file.c:33 msgid "send results to standard output" -msgstr "" +msgstr "извеждане на резултатите на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´" #: builtin/merge-file.c:34 msgid "use a diff3 based merge" -msgstr "" +msgstr "Ñливане на базата на „diff3“" #: builtin/merge-file.c:35 msgid "for conflicts, use our version" -msgstr "" +msgstr "при конфликти да Ñе ползва локалната верÑиÑ" #: builtin/merge-file.c:37 msgid "for conflicts, use their version" -msgstr "" +msgstr "при конфликти да Ñе ползва чуждата верÑиÑ" #: builtin/merge-file.c:39 msgid "for conflicts, use a union version" -msgstr "" +msgstr "при конфликти да Ñе ползва обединена верÑиÑ" #: builtin/merge-file.c:42 msgid "for conflicts, use this marker size" -msgstr "" +msgstr "при конфликти да Ñе ползва маркер Ñ Ñ‚Ð°ÐºÑŠÐ² БРОЙ знаци" #: builtin/merge-file.c:43 msgid "do not warn about conflicts" -msgstr "" +msgstr "без Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ конфликти" #: builtin/merge-file.c:45 msgid "set labels for file1/orig_file/file2" -msgstr "" +msgstr "задаване на етикети за ФÐЙЛ_1/ОРИГИÐÐЛ/ФÐЙЛ_2" #: builtin/mktree.c:64 msgid "git mktree [-z] [--missing] [--batch]" @@ -7172,7 +7430,7 @@ msgstr "git mktree [-z] [--missing] [--batch]" #: builtin/mktree.c:150 msgid "input is NUL terminated" -msgstr "входните запиÑа Ñа разделени Ñ Ð½ÑƒÐ»ÐµÐ²Ð¸Ñ Ð·Ð½Ð°Ðº „NUL“" +msgstr "входните запиÑи Ñа разделени Ñ Ð½ÑƒÐ»ÐµÐ²Ð¸Ñ Ð·Ð½Ð°Ðº „NUL“" #: builtin/mktree.c:151 builtin/write-tree.c:24 msgid "allow missing objects" @@ -7184,7 +7442,7 @@ msgstr "разрешаване на Ñъздаването на повече Ð¾Ñ #: builtin/mv.c:15 msgid "git mv [options] <source>... <destination>" -msgstr "git mv [ОПЦИИ] ОБЕКТ… ЦЕЛ" +msgstr "git mv [ОПЦИЯ…] ОБЕКТ… ЦЕЛ" #: builtin/mv.c:71 msgid "force move/rename even if target exists" @@ -7220,7 +7478,7 @@ msgstr "ДиректориÑта „%s“ е в индекÑа, но не е пР#: builtin/mv.c:140 builtin/rm.c:318 msgid "Please, stage your changes to .gitmodules or stash them to proceed" msgstr "" -"За да продължите или вкарайте промените по файла „.gitmodules“ в индекÑа,\n" +"За да продължите, или вкарайте промените по файла „.gitmodules“ в индекÑа,\n" "или ги Ñкатайте" # FIXME message @@ -7237,298 +7495,308 @@ msgstr "първоначалната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ðµ празна" msgid "not under version control" msgstr "не е под контрола на Git" -#: builtin/mv.c:207 +#: builtin/mv.c:208 msgid "destination exists" msgstr "целта ÑъщеÑтвува" -#: builtin/mv.c:215 +#: builtin/mv.c:216 #, c-format msgid "overwriting '%s'" msgstr "презапиÑване на „%s“" -#: builtin/mv.c:218 +#: builtin/mv.c:219 msgid "Cannot overwrite" msgstr "ПрезапиÑването е невъзможно" -#: builtin/mv.c:221 +#: builtin/mv.c:222 msgid "multiple sources for the same target" msgstr "множеÑтво източници за една цел" -#: builtin/mv.c:223 +#: builtin/mv.c:224 msgid "destination directory does not exist" msgstr "целевата Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ðµ ÑъщеÑтвува" -#: builtin/mv.c:243 +#: builtin/mv.c:244 #, 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:726 builtin/repack.c:355 +#: builtin/mv.c:257 builtin/remote.c:725 builtin/repack.c:358 #, c-format msgid "renaming '%s' failed" msgstr "неуÑпешно преименуване на „%s“" -#: builtin/name-rev.c:258 +#: builtin/name-rev.c:255 msgid "git name-rev [options] <commit>..." -msgstr "" +msgstr "git name-rev [ОПЦИЯ…] ПОДÐÐ’ÐÐЕ…" -#: builtin/name-rev.c:259 +#: builtin/name-rev.c:256 msgid "git name-rev [options] --all" -msgstr "" +msgstr "git name-rev [ОПЦИЯ…] --all" -#: builtin/name-rev.c:260 +#: builtin/name-rev.c:257 msgid "git name-rev [options] --stdin" -msgstr "" +msgstr "git name-rev [ОПЦИЯ…] --stdin" -# FIXME -#: builtin/name-rev.c:312 +# FIXME sha +#: builtin/name-rev.c:309 msgid "print only names (no SHA-1)" -msgstr "" +msgstr "извеждане Ñамо на имената (без Ñумите по SHA1)" -#: builtin/name-rev.c:313 +#: builtin/name-rev.c:310 msgid "only use tags to name the commits" -msgstr "" +msgstr "използване Ñамо на етикетите за именуване на подаваниÑта" -#: builtin/name-rev.c:315 +#: builtin/name-rev.c:312 msgid "only use refs matching <pattern>" -msgstr "" +msgstr "използване Ñамо на шаблоните напаÑващи на ШÐБЛОÐа" -#: builtin/name-rev.c:317 +#: builtin/name-rev.c:314 msgid "list all commits reachable from all refs" msgstr "" +"извеждане на вÑички подаваниÑ, които могат да бъдат доÑтигнати от вÑички " +"указатели" -#: builtin/name-rev.c:318 +#: builtin/name-rev.c:315 msgid "read from stdin" -msgstr "" +msgstr "четене от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´" -#: builtin/name-rev.c:319 +#: builtin/name-rev.c:316 msgid "allow to print `undefined` names (default)" -msgstr "" +msgstr "да Ñе извеждат и недефинираните имена (Ñтандартна ÑтойноÑÑ‚ на опциÑта)" -#: builtin/name-rev.c:325 +#: builtin/name-rev.c:322 msgid "dereference tags in the input (internal use)" -msgstr "" +msgstr "извеждане на идентификаторите на обекти-етикети (за вътрешни нужди)" #: builtin/notes.c:24 msgid "git notes [--ref <notes_ref>] [list [<object>]]" -msgstr "" +msgstr "git notes [--ref УКÐЗÐТЕЛ_ЗÐ_БЕЛЕЖКÐ] [list [ОБЕКТ]]" #: builtin/notes.c:25 msgid "" "git notes [--ref <notes_ref>] add [-f] [-m <msg> | -F <file> | (-c | -C) " "<object>] [<object>]" msgstr "" +"git notes [--ref УКÐЗÐТЕЛ_ЗÐ_БЕЛЕЖКÐ] add [-f] [-m СЪОБЩЕÐИЕ | -F ФÐЙЛ | (-c " +"| -C) ОБЕКТ] [ОБЕКТ]" #: builtin/notes.c:26 msgid "git notes [--ref <notes_ref>] copy [-f] <from-object> <to-object>" msgstr "" +"git notes [--ref УКÐЗÐТЕЛ_ЗÐ_БЕЛЕЖКÐ] copy [-f] ОБЕКТ_ИЗТОЧÐИК ОБЕКТ_ЦЕЛ" #: builtin/notes.c:27 msgid "" "git notes [--ref <notes_ref>] append [-m <msg> | -F <file> | (-c | -C) " "<object>] [<object>]" msgstr "" +"git notes [--ref УКÐЗÐТЕЛ_ЗÐ_БЕЛЕЖКÐ] append [-m СЪОБЩЕÐИЕ | -F ФÐЙЛ | (-c | " +"-C) ОБЕКТ] [ОБЕКТ]" #: builtin/notes.c:28 msgid "git notes [--ref <notes_ref>] edit [<object>]" -msgstr "" +msgstr "git notes [--ref УКÐЗÐТЕЛ_ЗÐ_БЕЛЕЖКÐ] edit [ОБЕКТ]" #: builtin/notes.c:29 msgid "git notes [--ref <notes_ref>] show [<object>]" -msgstr "" +msgstr "git notes [--ref УКÐЗÐТЕЛ_ЗÐ_БЕЛЕЖКÐ] show [ОБЕКТ]" #: builtin/notes.c:30 msgid "" "git notes [--ref <notes_ref>] merge [-v | -q] [-s <strategy> ] <notes_ref>" msgstr "" +"git notes [--ref УКÐЗÐТЕЛ_ЗÐ_БЕЛЕЖКÐ] merge [-v | -q] [-s СТРÐТЕГИЯ] " +"УКÐЗÐТЕЛ_ЗÐ_БЕЛЕЖКÐ" #: builtin/notes.c:31 msgid "git notes merge --commit [-v | -q]" -msgstr "" +msgstr "git notes merge --commit [-v | -q]" #: builtin/notes.c:32 msgid "git notes merge --abort [-v | -q]" -msgstr "" +msgstr "git notes merge --abort [-v | -q]" #: builtin/notes.c:33 msgid "git notes [--ref <notes_ref>] remove [<object>...]" -msgstr "" +msgstr "git notes [--ref УКÐЗÐТЕЛ_ЗÐ_БЕЛЕЖКÐ] remove [ОБЕКТ…]" #: builtin/notes.c:34 msgid "git notes [--ref <notes_ref>] prune [-n | -v]" -msgstr "" +msgstr "git notes [--ref УКÐЗÐТЕЛ_ЗÐ_БЕЛЕЖКÐ] prune [-n | -v]" #: builtin/notes.c:35 msgid "git notes [--ref <notes_ref>] get-ref" -msgstr "" +msgstr "git notes [--ref УКÐЗÐТЕЛ_ЗÐ_БЕЛЕЖКÐ] get-ref" #: builtin/notes.c:40 msgid "git notes [list [<object>]]" -msgstr "" +msgstr "git notes [list [ОБЕКТ]]" #: builtin/notes.c:45 msgid "git notes add [<options>] [<object>]" -msgstr "" +msgstr "git notes add [ОПЦИЯ…] [ОБЕКТ]" #: builtin/notes.c:50 msgid "git notes copy [<options>] <from-object> <to-object>" -msgstr "" +msgstr "git notes copy [ОПЦИЯ…] ОБЕКТ_ИЗТОЧÐИК ОБЕКТ_ЦЕЛ" #: builtin/notes.c:51 msgid "git notes copy --stdin [<from-object> <to-object>]..." -msgstr "" +msgstr "git notes copy --stdin [ОБЕКТ_ИЗТОЧÐИК ОБЕКТ_ЦЕЛ]…" #: builtin/notes.c:56 msgid "git notes append [<options>] [<object>]" -msgstr "" +msgstr "git notes append [ОПЦИЯ…] [ОБЕКТ]" #: builtin/notes.c:61 msgid "git notes edit [<object>]" -msgstr "" +msgstr "git notes edit [ОБЕКТ]" #: builtin/notes.c:66 msgid "git notes show [<object>]" -msgstr "" +msgstr "git notes show [ОБЕКТ]" #: builtin/notes.c:71 msgid "git notes merge [<options>] <notes_ref>" -msgstr "" +msgstr "git notes merge [ОПЦИЯ…] УКÐЗÐТЕЛ_ЗÐ_БЕЛЕЖКÐ" #: builtin/notes.c:72 msgid "git notes merge --commit [<options>]" -msgstr "" +msgstr "git notes merge --commit [ОПЦИЯ…]" #: builtin/notes.c:73 msgid "git notes merge --abort [<options>]" -msgstr "" +msgstr "git notes merge --abort [ОПЦИЯ…]" #: builtin/notes.c:78 msgid "git notes remove [<object>]" -msgstr "" +msgstr "git notes remove [ОБЕКТ]" #: builtin/notes.c:83 msgid "git notes prune [<options>]" -msgstr "" +msgstr "git notes prune [ОПЦИЯ…]" #: builtin/notes.c:88 msgid "git notes get-ref" -msgstr "" +msgstr "git notes get-ref" #: builtin/notes.c:137 #, c-format msgid "unable to start 'show' for object '%s'" -msgstr "" +msgstr "дейÑтвието „show“ не може да Ñе изпълни за обект „%s“" #: builtin/notes.c:141 msgid "could not read 'show' output" -msgstr "" +msgstr "изведената Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ñ‚ дейÑтвието „show“ не може да Ñе прочете" #: builtin/notes.c:149 #, c-format msgid "failed to finish 'show' for object '%s'" -msgstr "" +msgstr "дейÑтвието „show“ не може да Ñе завърши за обект „%s“" -#: builtin/notes.c:167 builtin/tag.c:373 +#: builtin/notes.c:167 builtin/tag.c:477 #, c-format msgid "could not create file '%s'" -msgstr "" +msgstr "файлът „%s“ не може да бъде Ñъздаден" #: builtin/notes.c:186 msgid "Please supply the note contents using either -m or -F option" -msgstr "" +msgstr "Задайте Ñъдържанието на бележката Ñ Ð½ÑÐºÐ¾Ñ Ð¾Ñ‚ опциите „-m“ или „-F“" #: builtin/notes.c:207 builtin/notes.c:848 #, c-format msgid "Removing note for object %s\n" -msgstr "" +msgstr "Изтриване на бележката за обекта „%s“\n" #: builtin/notes.c:212 msgid "unable to write note object" -msgstr "" +msgstr "обектът-бележка не може да бъде запиÑан" #: builtin/notes.c:214 #, c-format msgid "The note contents has been left in %s" -msgstr "" +msgstr "Съдържанието на бележката е във файла „%s“" -#: builtin/notes.c:248 builtin/tag.c:604 +#: builtin/notes.c:248 builtin/tag.c:692 #, c-format msgid "cannot read '%s'" -msgstr "" +msgstr "файлът „%s“ не може да бъде прочетен" -#: builtin/notes.c:250 builtin/tag.c:607 +#: builtin/notes.c:250 builtin/tag.c:695 #, c-format msgid "could not open or read '%s'" -msgstr "" +msgstr "файлът „%s“ не може да бъде отворен или прочетен" #: builtin/notes.c:269 builtin/notes.c:320 builtin/notes.c:322 #: builtin/notes.c:382 builtin/notes.c:436 builtin/notes.c:519 #: builtin/notes.c:524 builtin/notes.c:599 builtin/notes.c:641 -#: builtin/notes.c:843 builtin/tag.c:620 +#: builtin/notes.c:843 builtin/tag.c:708 #, c-format msgid "Failed to resolve '%s' as a valid ref." -msgstr "" +msgstr "Ðе може да Ñе открие към какво Ñочи „%s“." #: builtin/notes.c:272 #, c-format msgid "Failed to read object '%s'." -msgstr "" +msgstr "Обектът „%s“ не може да бъде прочетен." #: builtin/notes.c:276 #, c-format msgid "Cannot read note data from non-blob object '%s'." msgstr "" +"Съдържанието на бележка не може да Ñе вземе от обект, който не е BLOB: „%s“." #: builtin/notes.c:316 #, c-format msgid "Malformed input line: '%s'." -msgstr "" +msgstr "ДадениÑÑ‚ входен ред е Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÐµÐ½ формат: „%s“." #: builtin/notes.c:331 #, c-format msgid "Failed to copy notes from '%s' to '%s'" -msgstr "" +msgstr "Бележката не може да Ñе копира от „%s“ към „%s“" #: builtin/notes.c:375 builtin/notes.c:429 builtin/notes.c:502 #: builtin/notes.c:514 builtin/notes.c:587 builtin/notes.c:634 #: builtin/notes.c:908 msgid "too many parameters" -msgstr "" +msgstr "прекалено много параметри" #: builtin/notes.c:388 builtin/notes.c:647 #, c-format msgid "No note found for object %s." -msgstr "" +msgstr "ÐÑма бележки за обекта „%s“." #: builtin/notes.c:410 builtin/notes.c:567 msgid "note contents as a string" -msgstr "" +msgstr "низ, който е Ñъдържанието на бележката" #: builtin/notes.c:413 builtin/notes.c:570 msgid "note contents in a file" -msgstr "" +msgstr "файл ÑÑŠÑ Ñъдържанието на бележката" #: builtin/notes.c:415 builtin/notes.c:418 builtin/notes.c:572 -#: builtin/notes.c:575 builtin/tag.c:539 +#: builtin/notes.c:575 builtin/tag.c:627 msgid "object" -msgstr "" +msgstr "обект" #: builtin/notes.c:416 builtin/notes.c:573 msgid "reuse and edit specified note object" -msgstr "" +msgstr "преизползване и редактиране на ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¾Ð±ÐµÐºÑ‚-бележка" #: builtin/notes.c:419 builtin/notes.c:576 msgid "reuse specified note object" -msgstr "" +msgstr "преизползване на ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¾Ð±ÐµÐºÑ‚-бележка" #: builtin/notes.c:421 builtin/notes.c:489 msgid "replace existing notes" -msgstr "" +msgstr "замÑна на ÑъщеÑтвуващите бележки" #: builtin/notes.c:455 #, c-format @@ -7536,23 +7804,28 @@ msgid "" "Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite " "existing notes" msgstr "" +"Ðе може да Ñе добави бележка, защото такава вече ÑъщеÑтвува за обекта „%s“. " +"Използвайте опциÑта „-f“, за да презапишете ÑъщеÑтвуващи бележки." #: builtin/notes.c:460 builtin/notes.c:537 #, c-format msgid "Overwriting existing notes for object %s\n" -msgstr "" +msgstr "ПрезапиÑване на ÑъщеÑтвуващите бележки за обекта „%s“\n" #: builtin/notes.c:490 msgid "read objects from stdin" -msgstr "" +msgstr "изчитане на обектите от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´" +# FIXME imporve message #: builtin/notes.c:492 msgid "load rewriting config for <command> (implies --stdin)" msgstr "" +"зареждане на наÑтройките за КОМÐÐДÐта, коÑто презапиÑва Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ (включва " +"опциÑта „--stdin“)" #: builtin/notes.c:510 msgid "too few parameters" -msgstr "" +msgstr "прекалено малко параметри" #: builtin/notes.c:531 #, c-format @@ -7560,11 +7833,15 @@ msgid "" "Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite " "existing notes" msgstr "" +"Ðе може да Ñе копира бележка, защото такава вече ÑъщеÑтвува за обекта „%s“. " +"Използвайте опциÑта „-f“, за да презапишете ÑъщеÑтвуващи бележки." #: builtin/notes.c:543 #, c-format msgid "Missing notes on source object %s. Cannot copy." msgstr "" +"Ðе може да Ñе копира бележка, коÑто не ÑъщеÑтвува — нÑма бележки за обекта-" +"източник „%s“." #: builtin/notes.c:592 #, c-format @@ -7572,59 +7849,67 @@ 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" +"ВмеÑто това ги използвайте Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ‚Ð° „add“: „git notes add -f -m/-F/-c/-" +"C“.\n" #: builtin/notes.c:739 msgid "General options" -msgstr "" +msgstr "Общи опции" #: builtin/notes.c:741 msgid "Merge options" -msgstr "" +msgstr "Опции при Ñливане" #: builtin/notes.c:743 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:745 msgid "Committing unmerged notes" -msgstr "" +msgstr "Подаване на неÑлети бележки" #: builtin/notes.c:747 msgid "finalize notes merge by committing unmerged notes" -msgstr "" +msgstr "завършване на Ñливането чрез подаване на неÑлети бележки" #: builtin/notes.c:749 msgid "Aborting notes merge resolution" -msgstr "" +msgstr "ПреуÑтановÑване на корекциÑта при Ñливането на бележки" #: builtin/notes.c:751 msgid "abort notes merge" -msgstr "" +msgstr "преуÑтановÑване на Ñливането на бележки" #: builtin/notes.c:846 #, c-format msgid "Object %s has no note\n" -msgstr "" +msgstr "ÐÑма бележки за обекта „%s“\n" #: builtin/notes.c:858 msgid "attempt to remove non-existent note is not an error" -msgstr "" +msgstr "опитът за изтриването на неÑъщеÑтвуваща бележка не Ñе Ñчита за грешка" #: builtin/notes.c:861 msgid "read object names from the standard input" -msgstr "" +msgstr "изчитане на имената на обектите от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´" #: builtin/notes.c:942 msgid "notes-ref" -msgstr "" +msgstr "УКÐЗÐТЕЛ_ЗÐ_БЕЛЕЖКÐ" #: builtin/notes.c:943 msgid "use notes from <notes_ref>" -msgstr "" +msgstr "да Ñе използва бележката Ñочена от този УКÐЗÐТЕЛ_ЗÐ_БЕЛЕЖКÐ" -#: builtin/notes.c:978 builtin/remote.c:1593 +#: builtin/notes.c:978 builtin/remote.c:1616 #, c-format msgid "Unknown subcommand: %s" msgstr "Ðепозната подкоманда: %s" @@ -7632,15 +7917,19 @@ msgstr "Ðепозната подкоманда: %s" #: builtin/pack-objects.c:25 msgid "git pack-objects --stdout [options...] [< ref-list | < object-list]" msgstr "" +"git pack-objects --stdout [ОПЦИЯ…] [< СПИСЪК_С_ВЕРСИИ | < СПИСЪК_С_ОБЕКТИ]" +# FIXME [options] vs [options...] #: builtin/pack-objects.c:26 msgid "git pack-objects [options...] base-name [< ref-list | < object-list]" msgstr "" +"git pack-objects [ОПЦИЯ…] ПРЕФИКС_ÐÐ_ИМЕТО [< СПИСЪК_С_ВЕРСИИ | < " +"СПИСЪК_С_ОБЕКТИ]" #: builtin/pack-objects.c:175 builtin/pack-objects.c:178 #, c-format msgid "deflate error (%d)" -msgstr "" +msgstr "грешка при декомпреÑиране Ñ â€ždeflate“ (%d)" #: builtin/pack-objects.c:771 msgid "Writing objects" @@ -7649,166 +7938,182 @@ msgstr "ЗапиÑване на обектите" #: builtin/pack-objects.c:1012 msgid "disabling bitmap writing, as some objects are not being packed" msgstr "" +"изключване на запиÑването на битовата маÑка, защото нÑкои обекти нÑма да Ñе " +"пакетират" #: builtin/pack-objects.c:2174 msgid "Compressing objects" msgstr "КомпреÑиране на обектите" -#: builtin/pack-objects.c:2530 +#: builtin/pack-objects.c:2526 #, c-format msgid "unsupported index version %s" -msgstr "" +msgstr "неподдържана верÑÐ¸Ñ Ð½Ð° индекÑа „%s“" -#: builtin/pack-objects.c:2534 +#: builtin/pack-objects.c:2530 #, c-format msgid "bad index version '%s'" -msgstr "" +msgstr "неправилна верÑÐ¸Ñ Ð½Ð° индекÑа „%s“" -#: builtin/pack-objects.c:2557 +#: builtin/pack-objects.c:2553 #, c-format msgid "option %s does not accept negative form" -msgstr "" +msgstr "опциÑта „%s“ не притежава отрицателна верÑиÑ" -#: builtin/pack-objects.c:2561 +#: builtin/pack-objects.c:2557 #, c-format msgid "unable to parse value '%s' for option %s" -msgstr "" +msgstr "неразпозната ÑтойноÑÑ‚ „%s“ за опциÑта „%s“" -#: builtin/pack-objects.c:2580 +#: builtin/pack-objects.c:2576 msgid "do not show progress meter" -msgstr "" +msgstr "без извеждане на напредъка" -#: builtin/pack-objects.c:2582 +#: builtin/pack-objects.c:2578 msgid "show progress meter" -msgstr "" +msgstr "извеждане на напредъка" -#: builtin/pack-objects.c:2584 +#: builtin/pack-objects.c:2580 msgid "show progress meter during object writing phase" -msgstr "" +msgstr "извеждане на напредъка във фазата на запазване на обектите" -#: builtin/pack-objects.c:2587 +#: builtin/pack-objects.c:2583 msgid "similar to --all-progress when progress meter is shown" msgstr "" +"Ñъщото дейÑтвие като опциÑта „--all-progress“ при извеждането на напредъка" -#: builtin/pack-objects.c:2588 +#: builtin/pack-objects.c:2584 msgid "version[,offset]" -msgstr "" +msgstr "ВЕРСИЯ[,ОТМЕСТВÐÐЕ]" -#: builtin/pack-objects.c:2589 +#: builtin/pack-objects.c:2585 msgid "write the pack index file in the specified idx format version" msgstr "" +"запазване на индекÑа на пакетните файлове във форма̀та Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð°Ñ‚Ð° верÑиÑ" -#: builtin/pack-objects.c:2592 +#: builtin/pack-objects.c:2588 msgid "maximum size of each output pack file" -msgstr "" +msgstr "макÑимален размер на вÑеки пакетен файл" -#: builtin/pack-objects.c:2594 +#: builtin/pack-objects.c:2590 msgid "ignore borrowed objects from alternate object store" -msgstr "" +msgstr "игнориране на обектите заети от други хранилища на обекти" -#: builtin/pack-objects.c:2596 +#: builtin/pack-objects.c:2592 msgid "ignore packed objects" -msgstr "" +msgstr "игнориране на пакетираните обекти" -#: builtin/pack-objects.c:2598 +#: builtin/pack-objects.c:2594 msgid "limit pack window by objects" -msgstr "" +msgstr "ограничаване на прозореца за пакетиране по брой обекти" -#: builtin/pack-objects.c:2600 +#: builtin/pack-objects.c:2596 msgid "limit pack window by memory in addition to object limit" msgstr "" +"ограничаване на прозореца за пакетиране и по памет оÑвен по брой обекти" -#: builtin/pack-objects.c:2602 +#: builtin/pack-objects.c:2598 msgid "maximum length of delta chain allowed in the resulting pack" msgstr "" +"макÑимална дължина на веригата от разлики, коÑто е позволена в Ð¿Ð°ÐºÐµÑ‚Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»" -#: builtin/pack-objects.c:2604 +#: builtin/pack-objects.c:2600 msgid "reuse existing deltas" -msgstr "" +msgstr "преизползване на ÑъщеÑтвуващите разлики" -#: builtin/pack-objects.c:2606 +#: builtin/pack-objects.c:2602 msgid "reuse existing objects" -msgstr "" +msgstr "преизползване на ÑъщеÑтвуващите обекти" -#: builtin/pack-objects.c:2608 +#: builtin/pack-objects.c:2604 msgid "use OFS_DELTA objects" -msgstr "" +msgstr "използване на обекти „OFS_DELTA“" -#: builtin/pack-objects.c:2610 +#: builtin/pack-objects.c:2606 msgid "use threads when searching for best delta matches" msgstr "" +"Ñтартиране на нишки за претърÑване на най-добрите ÑÑŠÐ²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Ð½Ð° разликите" -#: builtin/pack-objects.c:2612 +#: builtin/pack-objects.c:2608 msgid "do not create an empty pack output" -msgstr "" +msgstr "без Ñъздаване на празен пакетен файл" -#: builtin/pack-objects.c:2614 +#: builtin/pack-objects.c:2610 msgid "read revision arguments from standard input" -msgstr "" +msgstr "изчитане на верÑиите от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´" -#: builtin/pack-objects.c:2616 +#: builtin/pack-objects.c:2612 msgid "limit the objects to those that are not yet packed" -msgstr "" +msgstr "ограничаване до вÑе още непакетираните обекти" -#: builtin/pack-objects.c:2619 +#: builtin/pack-objects.c:2615 msgid "include objects reachable from any reference" msgstr "" +"включване на вÑички обекти, които могат да Ñе доÑтигнат от произволен " +"указател" -#: builtin/pack-objects.c:2622 +#: builtin/pack-objects.c:2618 msgid "include objects referred by reflog entries" -msgstr "" +msgstr "включване и на обектите Ñочени от запиÑите в журнала на указателите" -#: builtin/pack-objects.c:2625 +#: builtin/pack-objects.c:2621 msgid "output pack to stdout" -msgstr "" +msgstr "извеждане на пакета на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´" -#: builtin/pack-objects.c:2627 +#: builtin/pack-objects.c:2623 msgid "include tag objects that refer to objects to be packed" msgstr "" +"включване и на обектите-етикети, които Ñочат към обектите, които ще бъдат " +"пакетирани" -#: builtin/pack-objects.c:2629 +#: builtin/pack-objects.c:2625 msgid "keep unreachable objects" -msgstr "" +msgstr "запазване на недоÑтижимите обекти" -#: builtin/pack-objects.c:2630 parse-options.h:140 +#: builtin/pack-objects.c:2626 parse-options.h:140 msgid "time" -msgstr "време" +msgstr "ВРЕМЕ" -#: builtin/pack-objects.c:2631 +#: builtin/pack-objects.c:2627 msgid "unpack unreachable objects newer than <time>" -msgstr "" +msgstr "разпакетиране на недоÑтижимите обекти, които Ñа по-нови от това ВРЕМЕ" -#: builtin/pack-objects.c:2634 +#: builtin/pack-objects.c:2630 msgid "create thin packs" -msgstr "" +msgstr "Ñъздаване на Ñъкратени пакети" -#: builtin/pack-objects.c:2636 +#: builtin/pack-objects.c:2632 msgid "ignore packs that have companion .keep file" -msgstr "" +msgstr "игнориране на пакетите, които Ñа придружени от файл „.keep“" -#: builtin/pack-objects.c:2638 +#: builtin/pack-objects.c:2634 msgid "pack compression level" -msgstr "" +msgstr "ниво на компреÑиране при пакетиране" -#: builtin/pack-objects.c:2640 +#: builtin/pack-objects.c:2636 msgid "do not hide commits by grafts" msgstr "" +"извеждане на вÑички родители — дори и тези, които нормално Ñа Ñкрити при " +"приÑажданиÑта" -#: builtin/pack-objects.c:2642 +#: builtin/pack-objects.c:2638 msgid "use a bitmap index if available to speed up counting objects" msgstr "" +"използване на ÑъщеÑтвуващи индекÑи на база битови маÑки за уÑкорÑване на " +"преброÑването на обектите" -#: builtin/pack-objects.c:2644 +#: builtin/pack-objects.c:2640 msgid "write a bitmap index together with the pack index" msgstr "" +"запазване и на Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð° база побитова маÑка, заедно Ñ Ð¸Ð½Ð´ÐµÐºÑа за пакета" -#: builtin/pack-objects.c:2723 +#: builtin/pack-objects.c:2719 msgid "Counting objects" msgstr "ПреброÑване на обектите" #: builtin/pack-refs.c:6 msgid "git pack-refs [options]" -msgstr "git pack-refs [ОПЦИИ]" +msgstr "git pack-refs [ОПЦИЯ…]" #: builtin/pack-refs.c:14 msgid "pack everything" @@ -7844,7 +8149,7 @@ msgstr "окаÑÑ‚Ñ€Ñне на обектите по-Ñтари от това Ð #: builtin/push.c:14 msgid "git push [<options>] [<repository> [<refspec>...]]" -msgstr "git push [ОПЦИИ] [ХРÐÐИЛИЩЕ [УКÐЗÐТЕЛ_ÐÐ_ВЕРСИЯ…]]" +msgstr "git push [ОПЦИЯ…] [ХРÐÐИЛИЩЕ [УКÐЗÐТЕЛ_ÐÐ_ВЕРСИЯ…]]" #: builtin/push.c:85 msgid "tag shorthand without <tag>" @@ -7854,16 +8159,16 @@ msgstr "Ñъкращение за етикет без ЕТИКЕТ" msgid "--delete only accepts plain target ref names" msgstr "опциÑта „--delete“ приема за цел Ñамо проÑти имена на указатели" -#: builtin/push.c:140 +#: builtin/push.c:139 msgid "" "\n" "To choose either option permanently, see push.default in 'git help config'." msgstr "" "\n" -"За да включите тази Ð¾Ð¿Ñ†Ð¸Ñ Ð·Ð° поÑтоÑнно вижте документациÑта за наÑтройката " +"За да включите тази Ð¾Ð¿Ñ†Ð¸Ñ Ð·Ð° поÑтоÑнно, вижте документациÑта за наÑтройката " "„push.default“ в „git help config“." -#: builtin/push.c:143 +#: builtin/push.c:142 #, c-format msgid "" "The upstream branch of your current branch does not match\n" @@ -7888,7 +8193,7 @@ msgstr "" " git push %s %s\n" "%s" -#: builtin/push.c:158 +#: builtin/push.c:157 #, c-format msgid "" "You are not currently on a branch.\n" @@ -7902,7 +8207,7 @@ msgstr "" "\n" " git push %s HEAD:ИМЕ_ÐÐ_ОТДÐЛЕЧЕÐИЯ_КЛОÐ\n" -#: builtin/push.c:172 +#: builtin/push.c:171 #, c-format msgid "" "The current branch %s has no upstream branch.\n" @@ -7916,14 +8221,14 @@ msgstr "" "\n" " git push --set-upstream %s %s\n" -#: builtin/push.c:180 +#: builtin/push.c:179 #, c-format msgid "The current branch %s has multiple upstream branches, refusing to push." msgstr "" "ТекущиÑÑ‚ клон „%s“ Ñледи нÑколко отдалечени клона, не можете проÑто да " "изтлаÑкате." -#: builtin/push.c:183 +#: builtin/push.c:182 #, c-format msgid "" "You are pushing to remote '%s', which is not the upstream of\n" @@ -7935,7 +8240,7 @@ msgstr "" "ТрÑбва да укажете ÐºÐ¾Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð´Ð° Ñе изтлаÑка, за обновÑване на Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ " "клон." -#: builtin/push.c:206 +#: builtin/push.c:205 msgid "" "push.default is unset; its implicit value has changed in\n" "Git 2.0 from 'matching' to 'simple'. To squelch this message\n" @@ -7988,14 +8293,14 @@ msgstr "" "Ðовата ÑтойноÑÑ‚ „simple“ бе въведена Ñ Ð²ÐµÑ€ÑÐ¸Ñ 1.7.11 на Git. Ðко понÑкога\n" "ползвате Ñтари верÑии на Git, задайте ÑтойноÑÑ‚ „current“ вмеÑто „simple“." -#: builtin/push.c:273 +#: builtin/push.c:272 msgid "" "You didn't specify any refspecs to push, and push.default is \"nothing\"." msgstr "" -"Ðе Ñте указали верÑÐ¸Ñ Ð·Ð° подаване, а наÑтройката „push.default“ не е " -"зададена." +"Ðе Ñте указали верÑÐ¸Ñ Ð·Ð° подаване, а наÑтройката „push.default“ е " +"„nothing“ (нищо без изрично указана верÑÐ¸Ñ Ð´Ð° не Ñе изтлаÑква)" -#: builtin/push.c:280 +#: builtin/push.c:279 msgid "" "Updates were rejected because the tip of your current branch is behind\n" "its remote counterpart. Integrate the remote changes (e.g.\n" @@ -8009,21 +8314,20 @@ msgstr "" "преди отново да изтлаÑкате промените. За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð²Ð¸Ð¶Ñ‚Ðµ раздела\n" "„Note about fast-forwards“ в Ñтраницата от ръководÑтвото „git push --help“." -#: builtin/push.c:286 +#: builtin/push.c:285 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" +"на Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ ÐºÐ»Ð¾Ð½. Проверете клона и внеÑете отдалечените промени (напр.\n" +"Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ‚Ð° „git pull…“), преди отново да изтлаÑкате промените. За повече\n" "Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð²Ð¸Ð¶Ñ‚Ðµ раздела „Note about fast-forwards“ в Ñтраницата от\n" "ръководÑтвото „git push --help“." -#: builtin/push.c:292 +#: builtin/push.c:291 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" @@ -8042,40 +8346,39 @@ msgstr "" "от\n" "ръководÑтвото „git push --help“." -#: builtin/push.c:299 +#: builtin/push.c:298 msgid "Updates were rejected because the tag already exists in the remote." msgstr "" "ИзтлаÑкването е отхвърлено, защото в отдалеченото хранилище ÑъщеÑтвува " "етикет,\n" "който ще припокриете Ñ ÐµÑ‚Ð¸ÐºÐµÑ‚ от вашето хранилище." -#: builtin/push.c:302 +#: builtin/push.c:301 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" -"подаване, както и тепърва да го промените да Ñочи към подобен обект, без да\n" -"укажете опциÑта опциÑта „--force“.\n" +"Без да укажете опциÑта опциÑта „--force“, не може да обновите отдалечен\n" +"указател, който вече Ñочи към обект, който не е подаване, както и тепърва\n" +"да го промените да Ñочи към подобен обект.\n" -#: builtin/push.c:361 +#: builtin/push.c:360 #, c-format msgid "Pushing to %s\n" msgstr "ИзтлаÑкване към „%s“\n" -#: builtin/push.c:365 +#: builtin/push.c:364 #, c-format msgid "failed to push some refs to '%s'" msgstr "чаÑÑ‚ от указателите не бÑха изтлаÑкани към „%s“" -#: builtin/push.c:395 +#: builtin/push.c:394 #, c-format msgid "bad repository '%s'" msgstr "неправилно указано хранилище „%s“" -#: builtin/push.c:396 +#: builtin/push.c:395 msgid "" "No configured push destination.\n" "Either specify the URL from the command-line or configure a remote " @@ -8097,99 +8400,99 @@ msgstr "" "\n" " git push ИМЕ\n" -#: builtin/push.c:411 +#: builtin/push.c:410 msgid "--all and --tags are incompatible" msgstr "опциите „--all“ и „--tags“ Ñа неÑъвмеÑтими" -#: builtin/push.c:412 +#: builtin/push.c:411 msgid "--all can't be combined with refspecs" msgstr "опциÑта „--all“ е неÑъвмеÑтима Ñ ÑƒÐºÐ°Ð·Ð²Ð°Ð½ÐµÑ‚Ð¾ на верÑиÑ" -#: builtin/push.c:417 +#: builtin/push.c:416 msgid "--mirror and --tags are incompatible" msgstr "опциите „--mirror“ и „--tags“ Ñа неÑъвмеÑтими" -#: builtin/push.c:418 +#: builtin/push.c:417 msgid "--mirror can't be combined with refspecs" msgstr "опциÑта „--mirror“ е неÑъвмеÑтима Ñ ÑƒÐºÐ°Ð·Ð²Ð°Ð½ÐµÑ‚Ð¾ на верÑиÑ" -#: builtin/push.c:423 +#: builtin/push.c:422 msgid "--all and --mirror are incompatible" msgstr "опциите „--all“ и „--mirror“ Ñа неÑъвмеÑтими" -#: builtin/push.c:483 +#: builtin/push.c:482 msgid "repository" msgstr "хранилище" -#: builtin/push.c:484 +#: builtin/push.c:483 msgid "push all refs" msgstr "изтлаÑкване на вÑички указатели" -#: builtin/push.c:485 +#: builtin/push.c:484 msgid "mirror all refs" msgstr "огледално копие на вÑички указатели" -#: builtin/push.c:487 +#: builtin/push.c:486 msgid "delete refs" msgstr "изтриване на указателите" -#: builtin/push.c:488 +#: builtin/push.c:487 msgid "push tags (can't be used with --all or --mirror)" msgstr "изтлаÑкване на етикетите (неÑъвмеÑтимо Ñ Ð¾Ð¿Ñ†Ð¸Ð¸Ñ‚Ðµ „--all“ и „--mirror“)" -#: builtin/push.c:491 +#: builtin/push.c:490 msgid "force updates" msgstr "принудително обновÑване" -# # FIXME double check this -#: builtin/push.c:493 +# FIXME double check this +#: builtin/push.c:492 msgid "refname>:<expect" msgstr "УКÐЗÐТЕЛ>:<ОЧÐКВÐÐÐ_СТОЙÐОСТ" -#: builtin/push.c:494 +#: builtin/push.c:493 msgid "require old value of ref to be at this value" msgstr "УКÐЗÐТЕЛÑÑ‚ Ñ‚Ñ€Ñбва първоначално да е Ñ Ñ‚Ð°Ð·Ð¸ ОЧÐКВÐÐÐ_СТОЙÐОСТ" -#: builtin/push.c:496 +#: builtin/push.c:495 msgid "check" msgstr "проверка" -#: builtin/push.c:497 +#: builtin/push.c:496 msgid "control recursive pushing of submodules" msgstr "управление на рекурÑивното изтлаÑкване на подмодулите" -#: builtin/push.c:499 +#: builtin/push.c:498 msgid "use thin pack" msgstr "използване на Ñъкратени пакети" -#: builtin/push.c:500 builtin/push.c:501 +#: builtin/push.c:499 builtin/push.c:500 msgid "receive pack program" msgstr "програма за получаването на пакети" -#: builtin/push.c:502 +#: builtin/push.c:501 msgid "set upstream for git pull/status" msgstr "задаване на отдалеченото хранилище за командите „git pull/status“" -#: builtin/push.c:505 +#: builtin/push.c:504 msgid "prune locally removed refs" msgstr "окаÑÑ‚Ñ€Ñне на указателите, които Ñа премахнати от локалното хранилище" -#: builtin/push.c:507 +#: builtin/push.c:506 msgid "bypass pre-push hook" msgstr "без изпълнение на куката преди изтлаÑкване (pre-push)" -#: builtin/push.c:508 +#: builtin/push.c:507 msgid "push missing but relevant tags" msgstr "" "изтлаÑкване на липÑващите в отдалеченото хранилище, но Ñвързани Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¾Ñ‚Ð¾ " "изтлаÑкване, етикети" -#: builtin/push.c:518 +#: builtin/push.c:517 msgid "--delete is incompatible with --all, --mirror and --tags" msgstr "" "опциÑта „--delete“ е неÑъвмеÑтима Ñ Ð¾Ð¿Ñ†Ð¸Ð¸Ñ‚Ðµ „--all“, „--mirror“ и „--tags“" -#: builtin/push.c:520 +#: builtin/push.c:519 msgid "--delete doesn't make sense without any refs" msgstr "опциÑта „--delete“ изиÑква поне един указател на верÑиÑ" @@ -8199,70 +8502,74 @@ msgid "" "[-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=ФÐЙЛ_С_ИЗКЛЮЧЕÐИЯ] | -i]] [--no-sparse-" +"checkout] [--index-output=ФÐЙЛ] (--empty | УКÐЗÐТЕЛ_КЪМ_ДЪРВО_1 " +"[УКÐЗÐТЕЛ_КЪМ_ДЪРВО_2 [УКÐЗÐТЕЛ_КЪМ_ДЪРВО_3]])" #: builtin/read-tree.c:109 msgid "write resulting index to <file>" -msgstr "" +msgstr "запазване на индекÑа в този ФÐЙЛ" #: builtin/read-tree.c:112 msgid "only empty the index" -msgstr "" +msgstr "Ñамо занулÑване на индекÑа" #: builtin/read-tree.c:114 msgid "Merging" -msgstr "" +msgstr "Сливане" #: builtin/read-tree.c:116 msgid "perform a merge in addition to a read" -msgstr "" +msgstr "да Ñе извърши и Ñливане Ñлед оÑвен изчитането" #: builtin/read-tree.c:118 msgid "3-way merge if no file level merging required" -msgstr "" +msgstr "тройно Ñливане, ако не Ñе налага пофайлово Ñливане" #: builtin/read-tree.c:120 msgid "3-way merge in presence of adds and removes" -msgstr "" +msgstr "тройно Ñливане при добавÑне на добавÑне и изтриване на файлове" #: builtin/read-tree.c:122 msgid "same as -m, but discard unmerged entries" -msgstr "" +msgstr "Ñъщото като опциÑта „-m“, но неÑлетите обекти Ñе пренебрегват" #: builtin/read-tree.c:123 msgid "<subdirectory>/" -msgstr "" +msgstr "ПОДДИРЕКТОРИЯ/" #: builtin/read-tree.c:124 msgid "read the tree into the index under <subdirectory>/" -msgstr "" +msgstr "изчитане на дървото към индекÑа като да е в тази ПОДДИРЕКТОРИЯ/" #: builtin/read-tree.c:127 msgid "update working tree with merge result" -msgstr "" +msgstr "обновÑване на работното дърво Ñ Ñ€ÐµÐ·ÑƒÐ»Ñ‚Ð°Ñ‚Ð° от Ñливането" #: builtin/read-tree.c:129 msgid "gitignore" -msgstr "" +msgstr "ФÐЙЛ_С_ИЗКЛЮЧЕÐИЯ" #: builtin/read-tree.c:130 msgid "allow explicitly ignored files to be overwritten" -msgstr "" +msgstr "позволÑване на презапиÑването на изрично пренебрегваните файлове" #: builtin/read-tree.c:133 msgid "don't check the working tree after merging" -msgstr "" +msgstr "без проверка на работното дърво Ñлед Ñливането" #: builtin/read-tree.c:134 msgid "don't update the index or the work tree" -msgstr "" +msgstr "без обновÑване и на индекÑа, и на работното дърво" #: builtin/read-tree.c:136 msgid "skip applying sparse checkout filter" -msgstr "" +msgstr "без прилагане на филтъра за чаÑтично изтеглÑне" #: builtin/read-tree.c:138 msgid "debug unpack-trees" -msgstr "" +msgstr "изчиÑтване на грешки в командата „unpack-trees“" # FIXME #: builtin/reflog.c:499 @@ -8332,7 +8639,7 @@ msgstr "git remote set-url --delete ИМЕ ÐДРЕС" #: builtin/remote.c:28 msgid "git remote add [<options>] <name> <url>" -msgstr "git remote add [ОПЦИИ] ИМЕ ÐДРЕС" +msgstr "git remote add [ОПЦИЯ…] ИМЕ ÐДРЕС" #: builtin/remote.c:43 msgid "git remote set-head <name> (-a | --auto | -d | --delete | <branch>)" @@ -8348,15 +8655,15 @@ msgstr "git remote set-branches --add ИМЕ КЛОÐ…" #: builtin/remote.c:54 msgid "git remote show [<options>] <name>" -msgstr "git remote show [ОПЦИИ] ИМЕ" +msgstr "git remote show [ОПЦИЯ…] ИМЕ" #: builtin/remote.c:59 msgid "git remote prune [<options>] <name>" -msgstr "git remote prune [ОПЦИИ] ИМЕ" +msgstr "git remote prune [ОПЦИЯ…] ИМЕ" #: builtin/remote.c:64 msgid "git remote update [<options>] [<group> | <remote>]..." -msgstr "git remote update [ОПЦИИ] [ГРУПР| ОТДÐЛЕЧЕÐО_ХРÐÐИЛИЩЕ]…" +msgstr "git remote update [ОПЦИЯ…] [ГРУПР| ОТДÐЛЕЧЕÐО_ХРÐÐИЛИЩЕ]…" #: builtin/remote.c:88 #, c-format @@ -8417,12 +8724,12 @@ msgstr "" "указването на Ñледени клони е ÑмиÑлено Ñамо за отдалечени хранилища, от " "които Ñе доÑтавÑ" -#: builtin/remote.c:185 builtin/remote.c:641 +#: builtin/remote.c:185 builtin/remote.c:640 #, c-format msgid "remote %s already exists." msgstr "вече ÑъщеÑтвува отдалечено хранилище Ñ Ð¸Ð¼Ðµ „%s“." -#: builtin/remote.c:189 builtin/remote.c:645 +#: builtin/remote.c:189 builtin/remote.c:644 #, c-format msgid "'%s' is not a valid remote name" msgstr "„%s“ е неправилно име за отдалечено хранилище" @@ -8432,46 +8739,46 @@ msgstr "„%s“ е неправилно име за отдалечено хра msgid "Could not setup master '%s'" msgstr "ОÑновниÑÑ‚ клон „%s“ не може да бъде наÑтроен" -#: builtin/remote.c:289 +#: builtin/remote.c:288 #, c-format msgid "more than one %s" msgstr "повече от едно отдалечено хранилище на име „%s“" -#: builtin/remote.c:334 +#: builtin/remote.c:333 #, c-format msgid "Could not get fetch map for refspec %s" msgstr "Обектите за доÑтавÑне за ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€ž%s“ не могат да бъдат получени" -#: builtin/remote.c:435 builtin/remote.c:443 +#: builtin/remote.c:434 builtin/remote.c:442 msgid "(matching)" msgstr "(Ñъвпадащи)" -#: builtin/remote.c:447 +#: builtin/remote.c:446 msgid "(delete)" msgstr "(за изтриване)" -#: builtin/remote.c:590 builtin/remote.c:596 builtin/remote.c:602 +#: builtin/remote.c:589 builtin/remote.c:595 builtin/remote.c:601 #, c-format msgid "Could not append '%s' to '%s'" msgstr "„%s“ не може да Ñе добави към „%s“" -#: builtin/remote.c:634 builtin/remote.c:787 builtin/remote.c:885 +#: builtin/remote.c:633 builtin/remote.c:794 builtin/remote.c:894 #, c-format msgid "No such remote: %s" msgstr "Такова отдалечено хранилище нÑма: %s" -#: builtin/remote.c:651 +#: builtin/remote.c:650 #, c-format msgid "Could not rename config section '%s' to '%s'" msgstr "Разделът „%s“ в наÑтройките не може да бъде преименуван на „%s“" -#: builtin/remote.c:657 builtin/remote.c:794 +#: builtin/remote.c:656 builtin/remote.c:846 #, c-format msgid "Could not remove config section '%s'" msgstr "Разделът „%s“ в наÑтройките не може да бъде изтрит" # FIXME tabulator -#: builtin/remote.c:672 +#: builtin/remote.c:671 #, c-format msgid "" "Not updating non-default fetch refspec\n" @@ -8482,32 +8789,32 @@ msgstr "" " %s\n" " Променете наÑтройките ръчно, ако е необходимо." -#: builtin/remote.c:678 +#: builtin/remote.c:677 #, c-format msgid "Could not append '%s'" msgstr "Разделът „%s“ не може да бъде добавен в наÑтройките" -#: builtin/remote.c:689 +#: builtin/remote.c:688 #, c-format msgid "Could not set '%s'" msgstr "Разделът „%s“ не може да бъде зададен в наÑтройките" -#: builtin/remote.c:711 +#: builtin/remote.c:710 #, c-format msgid "deleting '%s' failed" msgstr "неуÑпешно изтриване на „%s“" -#: builtin/remote.c:745 +#: builtin/remote.c:744 #, c-format msgid "creating '%s' failed" msgstr "неуÑпешно Ñъздаване на „%s“" -#: builtin/remote.c:759 +#: builtin/remote.c:765 #, c-format msgid "Could not remove branch %s" msgstr "Клонът „%s“ не може да бъде изтрит" -#: builtin/remote.c:829 +#: builtin/remote.c:832 msgid "" "Note: A branch outside the refs/remotes/ hierarchy was not removed;\n" "to delete it, use:" @@ -8521,371 +8828,441 @@ msgstr[1] "" "Бележка: ÐÑколко клона извън йерархиÑта „refs/remotes/“ не бÑха изтрити.\n" "Изтрийте ги чрез командата:" -#: builtin/remote.c:938 +#: builtin/remote.c:947 #, c-format msgid " new (next fetch will store in remotes/%s)" msgstr " нов (Ñледващото доÑтавÑне ще го разположи в „remotes/%s“)" -#: builtin/remote.c:941 +#: builtin/remote.c:950 msgid " tracked" msgstr " Ñледен" -#: builtin/remote.c:943 +#: builtin/remote.c:952 msgid " stale (use 'git remote prune' to remove)" msgstr " Ñтар (изтрийте чрез „git remote prune“)" # FIXME -#: builtin/remote.c:945 +#: builtin/remote.c:954 msgid " ???" msgstr " неÑÑно" # CHECK -#: builtin/remote.c:986 +#: builtin/remote.c:995 #, c-format msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch" msgstr "" "неправилен клон за Ñливане „%s“. Ðевъзможно е да пребазирате върху повече от " "1 клон" -#: builtin/remote.c:993 +#: builtin/remote.c:1002 #, c-format msgid "rebases onto remote %s" msgstr "пребазиране върху Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ ÐºÐ»Ð¾Ð½ „%s“" -#: builtin/remote.c:996 +#: builtin/remote.c:1005 #, c-format msgid " merges with remote %s" msgstr " Ñливане Ñ Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ ÐºÐ»Ð¾Ð½ „%s“" -#: builtin/remote.c:997 +#: builtin/remote.c:1006 msgid " and with remote" msgstr " и Ñ Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ ÐºÐ»Ð¾Ð½" -#: builtin/remote.c:999 +#: builtin/remote.c:1008 #, c-format msgid "merges with remote %s" msgstr "Ñливане Ñ Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ ÐºÐ»Ð¾Ð½ „%s“" -#: builtin/remote.c:1000 +#: builtin/remote.c:1009 msgid " and with remote" msgstr " и Ñ Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ ÐºÐ»Ð¾Ð½" -#: builtin/remote.c:1046 +#: builtin/remote.c:1055 msgid "create" msgstr "Ñъздаден" -#: builtin/remote.c:1049 +#: builtin/remote.c:1058 msgid "delete" msgstr "изтрит" -#: builtin/remote.c:1053 +#: builtin/remote.c:1062 msgid "up to date" msgstr "актуален" -#: builtin/remote.c:1056 +#: builtin/remote.c:1065 msgid "fast-forwardable" msgstr "може да Ñе Ñлее тривиално" -#: builtin/remote.c:1059 +#: builtin/remote.c:1068 msgid "local out of date" -msgstr "локалниÑÑ‚ е оÑтарÑл" +msgstr "локалниÑÑ‚ е изоÑтанал" -#: builtin/remote.c:1066 +#: builtin/remote.c:1075 #, c-format msgid " %-*s forces to %-*s (%s)" msgstr " %-*s принудително изтлаÑква към %-*s (%s)" -#: builtin/remote.c:1069 +#: builtin/remote.c:1078 #, c-format msgid " %-*s pushes to %-*s (%s)" msgstr " %-*s изтлаÑква към %-*s (%s)" -#: builtin/remote.c:1073 +#: builtin/remote.c:1082 #, c-format msgid " %-*s forces to %s" msgstr " %-*s принудително изтлаÑква към %s" -#: builtin/remote.c:1076 +#: builtin/remote.c:1085 #, c-format msgid " %-*s pushes to %s" msgstr " %-*s изтлаÑква към %s" -#: builtin/remote.c:1144 +#: builtin/remote.c:1153 msgid "do not query remotes" msgstr "без заÑвки към отдалечените хранилища" -#: builtin/remote.c:1171 +#: builtin/remote.c:1180 #, c-format msgid "* remote %s" msgstr "◠отдалечено хранилище „%s“" -#: builtin/remote.c:1172 +#: builtin/remote.c:1181 #, c-format msgid " Fetch URL: %s" msgstr " ÐÐ´Ñ€ÐµÑ Ð·Ð° доÑтавÑне: %s" -#: builtin/remote.c:1173 builtin/remote.c:1318 +#: builtin/remote.c:1182 builtin/remote.c:1329 msgid "(no URL)" msgstr "(без адреÑ)" -#: builtin/remote.c:1182 builtin/remote.c:1184 +# FIXME spaces betwen Push and URL +#: builtin/remote.c:1191 builtin/remote.c:1193 #, c-format msgid " Push URL: %s" msgstr " ÐÐ´Ñ€ÐµÑ Ð·Ð° изтлаÑкване: %s" -#: builtin/remote.c:1186 builtin/remote.c:1188 builtin/remote.c:1190 +#: builtin/remote.c:1195 builtin/remote.c:1197 builtin/remote.c:1199 #, c-format msgid " HEAD branch: %s" -msgstr " клон в HEAD: %s" +msgstr " клон Ñочен от HEAD: %s" -#: builtin/remote.c:1192 +#: builtin/remote.c:1201 #, c-format msgid "" " HEAD branch (remote HEAD is ambiguous, may be one of the following):\n" msgstr "" -" клон в HEAD (клонът указан във файла HEAD от отдалеченото хранилище е\n" +" клонът Ñочен от HEAD (клонът указан във файла HEAD от отдалеченото " +"хранилище е\n" " нееднозначен и е нÑкой от Ñледните):\n" -#: builtin/remote.c:1204 +#: builtin/remote.c:1213 #, c-format msgid " Remote branch:%s" msgid_plural " Remote branches:%s" -msgstr[0] " Отдалечен клон: %s" -msgstr[1] " Отдалечени клони: %s" +msgstr[0] " Отдалечен клон:%s" +msgstr[1] " Отдалечени клони:%s" -#: builtin/remote.c:1207 builtin/remote.c:1234 +#: builtin/remote.c:1216 builtin/remote.c:1243 msgid " (status not queried)" msgstr " (ÑÑŠÑтоÑнието не бе проверено)" -#: builtin/remote.c:1216 +#: builtin/remote.c:1225 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:1224 +#: builtin/remote.c:1233 msgid " Local refs will be mirrored by 'git push'" msgstr " Локалните указатели ще бъдат пренеÑени чрез „ push“" -#: builtin/remote.c:1231 +#: builtin/remote.c:1240 #, 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:1252 +#: builtin/remote.c:1261 msgid "set refs/remotes/<name>/HEAD according to remote" msgstr "задаване на refs/remotes/ИМЕ/HEAD Ñпоред отдалеченото хранилище" -#: builtin/remote.c:1254 +#: builtin/remote.c:1263 msgid "delete refs/remotes/<name>/HEAD" msgstr "изтриване на refs/remotes/ИМЕ/HEAD" -#: builtin/remote.c:1269 +#: builtin/remote.c:1278 msgid "Cannot determine remote HEAD" msgstr "Ðе може да Ñе уÑтанови отдалечениÑÑ‚ връх" -#: builtin/remote.c:1271 +#: builtin/remote.c:1280 msgid "Multiple remote HEAD branches. Please choose one explicitly with:" msgstr "" "МножеÑтво клони Ñ Ð²ÑŠÑ€Ñ…Ð¾Ð²Ðµ. Изберете изрично нÑкой от Ñ‚ÑÑ… чрез командата:" -#: builtin/remote.c:1281 +#: builtin/remote.c:1290 #, c-format msgid "Could not delete %s" msgstr "„%s“ не може да бъде изтрит" -#: builtin/remote.c:1289 +#: builtin/remote.c:1298 #, c-format msgid "Not a valid ref: %s" msgstr "Ðеправилен указател: %s" -#: builtin/remote.c:1291 +#: builtin/remote.c:1300 #, c-format msgid "Could not setup %s" msgstr "„%s“ не може да Ñе наÑтрои" -#: builtin/remote.c:1307 +#: builtin/remote.c:1318 #, c-format msgid " %s will become dangling!" msgstr "„%s“ ще Ñе превърне в обект извън клоните!" -#: builtin/remote.c:1308 +#: builtin/remote.c:1319 #, c-format msgid " %s has become dangling!" msgstr "„%s“ Ñе превърна в обект извън клоните!" -#: builtin/remote.c:1314 +#: builtin/remote.c:1325 #, c-format msgid "Pruning %s" msgstr "ОкаÑÑ‚Ñ€Ñне на „%s“" -#: builtin/remote.c:1315 +#: builtin/remote.c:1326 #, c-format msgid "URL: %s" msgstr "адреÑ: %s" -#: builtin/remote.c:1328 +#: builtin/remote.c:1349 #, c-format msgid " * [would prune] %s" msgstr " â— [ще бъде окаÑтрено] %s" -#: builtin/remote.c:1331 +#: builtin/remote.c:1352 #, c-format msgid " * [pruned] %s" msgstr " â— [окаÑтрено] %s" -#: builtin/remote.c:1374 +#: builtin/remote.c:1397 msgid "prune remotes after fetching" msgstr "окаÑÑ‚Ñ€Ñне на огледалата на отдалечените хранилища Ñлед доÑтавÑне" -#: builtin/remote.c:1440 builtin/remote.c:1514 +#: builtin/remote.c:1463 builtin/remote.c:1537 #, c-format msgid "No such remote '%s'" msgstr "ÐÑма отдалечено хранилище на име „%s“" -#: builtin/remote.c:1460 +#: builtin/remote.c:1483 msgid "add branch" msgstr "добавÑне на клон" -#: builtin/remote.c:1467 +#: builtin/remote.c:1490 msgid "no remote specified" msgstr "не е указано отдалечено хранилище" -#: builtin/remote.c:1489 +#: builtin/remote.c:1512 msgid "manipulate push URLs" msgstr "промÑна на адреÑите за изтлаÑкване" -#: builtin/remote.c:1491 +#: builtin/remote.c:1514 msgid "add URL" msgstr "добавÑне на адреÑи" -#: builtin/remote.c:1493 +#: builtin/remote.c:1516 msgid "delete URLs" msgstr "изтриване на адреÑи" -#: builtin/remote.c:1500 +# FIXME message - incompatible +#: builtin/remote.c:1523 msgid "--add --delete doesn't make sense" -msgstr "опциите „--add“ и „--delete“ не могат да Ñе използват заедно" +msgstr "опциите „--add“ и „--delete“ Ñа неÑъвмеÑтими" -#: builtin/remote.c:1540 +#: builtin/remote.c:1563 #, c-format msgid "Invalid old URL pattern: %s" msgstr "Ðеправилен (Ñтар) формат за адреÑ: %s" -#: builtin/remote.c:1548 +#: builtin/remote.c:1571 #, c-format msgid "No such URL found: %s" msgstr "Такъв Ð°Ð´Ñ€ÐµÑ Ð½Ðµ е открит: %s" # FIXME CHECK MEANING -#: builtin/remote.c:1550 +#: builtin/remote.c:1573 msgid "Will not delete all non-push URLs" msgstr "Ðикой от адреÑите, които не Ñа за изтлаÑкване, нÑма да Ñе изтрие" -#: builtin/remote.c:1564 +#: builtin/remote.c:1587 msgid "be verbose; must be placed before a subcommand" msgstr "повече подробноÑти. ПоÑÑ‚Ð°Ð²Ñ Ñе пред подкоманда" -#: builtin/repack.c:16 +#: builtin/repack.c:17 msgid "git repack [options]" -msgstr "" +msgstr "git repack [ОПЦИЯ…]" -#: builtin/repack.c:156 +#: builtin/repack.c:160 msgid "pack everything in a single pack" -msgstr "" +msgstr "пакетиране на вÑичко в пакет" -#: builtin/repack.c:158 +#: builtin/repack.c:162 msgid "same as -a, and turn unreachable objects loose" msgstr "" +"Ñъщото като опциÑта „-a“. Допълнително — недоÑтижимите обекти да Ñтанат " +"непакетирани" -#: builtin/repack.c:161 +#: builtin/repack.c:165 msgid "remove redundant packs, and run git-prune-packed" msgstr "" +"премахване на ненужните пакетирани файлове и изпълнение на командата „git-" +"prune-packed“" -#: builtin/repack.c:163 +#: builtin/repack.c:167 msgid "pass --no-reuse-delta to git-pack-objects" -msgstr "" +msgstr "подаване на опциÑта „--no-reuse-delta“ на командата „git-pack-objects“" -#: builtin/repack.c:165 +#: builtin/repack.c:169 msgid "pass --no-reuse-object to git-pack-objects" msgstr "" +"подаване на опциÑта „--no-reuse-object“ на командата „git-pack-objects“" -#: builtin/repack.c:167 +#: builtin/repack.c:171 msgid "do not run git-update-server-info" -msgstr "" +msgstr "без изпълнение на командата „git-update-server-info“" -#: builtin/repack.c:170 +#: builtin/repack.c:174 msgid "pass --local to git-pack-objects" -msgstr "" +msgstr "подаване на опциÑта „--local“ на командата „git-pack-objects“" -#: builtin/repack.c:172 +#: builtin/repack.c:176 msgid "write bitmap index" -msgstr "" +msgstr "Ñъздаване и запиÑване на индекÑи на база битови маÑки" -#: builtin/repack.c:173 +#: builtin/repack.c:177 msgid "approxidate" -msgstr "" +msgstr "евриÑтична дата" -#: builtin/repack.c:174 +#: builtin/repack.c:178 msgid "with -A, do not loosen objects older than this" msgstr "" +"при комбинирането Ñ Ð¾Ð¿Ñ†Ð¸Ñта „-A“ — без разпакетиране на обектите по Ñтари от " +"това" -#: builtin/repack.c:176 +#: builtin/repack.c:180 msgid "size of the window used for delta compression" -msgstr "" +msgstr "размер на прозореца за делта компреÑиÑта" -#: builtin/repack.c:177 builtin/repack.c:181 +#: builtin/repack.c:181 builtin/repack.c:185 msgid "bytes" -msgstr "" +msgstr "байтове" -#: builtin/repack.c:178 +#: builtin/repack.c:182 msgid "same as the above, but limit memory size instead of entries count" msgstr "" +"Ñъщото като горната опциÑ, но ограничението да е по размер на паметта, а не " +"по Ð±Ñ€Ð¾Ñ Ð½Ð° обектите" -#: builtin/repack.c:180 +#: builtin/repack.c:184 msgid "limits the maximum delta depth" -msgstr "" +msgstr "ограничаване на макÑималната дълбочина на делтата" -#: builtin/repack.c:182 +#: builtin/repack.c:186 msgid "maximum size of each packfile" -msgstr "" +msgstr "макÑимален размер на вÑеки пакет" -#: builtin/repack.c:184 +#: builtin/repack.c:188 msgid "repack objects in packs marked with .keep" -msgstr "" +msgstr "препакетиране на обектите в пакети белÑзани Ñ â€ž.keep“" -#: builtin/repack.c:371 +#: builtin/repack.c:374 #, c-format msgid "removing '%s' failed" -msgstr "" +msgstr "неуÑпешно изтриване на „%s“" -#: builtin/replace.c:17 +#: builtin/replace.c:19 msgid "git replace [-f] <object> <replacement>" msgstr "git replace [-f] ОБЕКТ ЗÐМЯÐÐ" -#: builtin/replace.c:18 +#: builtin/replace.c:20 +msgid "git replace [-f] --edit <object>" +msgstr "git replace [-f] --edit ОБЕКТ" + +#: builtin/replace.c:21 +msgid "git replace [-f] --graft <commit> [<parent>...]" +msgstr "git replace [-f] --graft ПОДÐÐ’ÐÐЕ [РОДИТЕЛ…]" + +#: builtin/replace.c:22 msgid "git replace -d <object>..." msgstr "git replace -d ОБЕКТ…" -#: builtin/replace.c:19 +#: builtin/replace.c:23 msgid "git replace [--format=<format>] [-l [<pattern>]]" msgstr "git replace [--format=ФОРМÐТ] [-l [ШÐБЛОÐ]]" -#: builtin/replace.c:174 +#: builtin/replace.c:322 builtin/replace.c:360 builtin/replace.c:388 +#, c-format +msgid "Not a valid object name: '%s'" +msgstr "Ðеправилно име на обект: „%s“" + +#: builtin/replace.c:352 +#, c-format +msgid "bad mergetag in commit '%s'" +msgstr "етикетът при Ñливане в подаването „%s“ e неправилен" + +#: builtin/replace.c:354 +#, c-format +msgid "malformed mergetag in commit '%s'" +msgstr "етикетът при Ñливане в подаването „%s“ e неправилен" + +#: builtin/replace.c:365 +#, c-format +msgid "" +"original commit '%s' contains mergetag '%s' that is discarded; use --edit " +"instead of --graft" +msgstr "" +"Първоначалното подаване „%s“ Ñъдържа етикета при Ñливане „%s“, който е " +"изхвърлен, затова използвайте опциÑта „--edit“, а не „--graft“." + +#: builtin/replace.c:398 +#, c-format +msgid "the original commit '%s' has a gpg signature." +msgstr "Първоначалното подаване „%s“ е Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð½Ð° GPG." + +#: builtin/replace.c:399 +msgid "the signature will be removed in the replacement commit!" +msgstr "ПодпиÑÑŠÑ‚ ще бъде премахнат в заменÑщото подаване!" + +#: builtin/replace.c:405 +#, c-format +msgid "could not write replacement commit for: '%s'" +msgstr "заменÑщото подаване за „%s“ не може да бъде запиÑано" + +#: builtin/replace.c:429 msgid "list replace refs" msgstr "извеждане на ÑпиÑъка Ñ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ð¸Ñ‚Ðµ за замÑна" -#: builtin/replace.c:175 +#: builtin/replace.c:430 msgid "delete replace refs" msgstr "изтриване на указателите за замÑна" -#: builtin/replace.c:176 +#: builtin/replace.c:431 +msgid "edit existing object" +msgstr "редактиране на ÑъщеÑтвуващ обект" + +#: builtin/replace.c:432 +msgid "change a commit's parents" +msgstr "ÑмÑна на родителите на подаване" + +#: builtin/replace.c:433 msgid "replace the ref if it exists" -msgstr "замÑна на указателите, ако ÑъщеÑтвуват" +msgstr "замÑна на указателÑ, ако ÑъщеÑтвува" + +#: builtin/replace.c:434 +msgid "do not pretty-print contents for --edit" +msgstr "без форматирано извеждане на Ñъдържанието — за опциÑта „--edit“" -#: builtin/replace.c:177 +#: builtin/replace.c:435 msgid "use this format" msgstr "използване на този ФОРМÐТ" @@ -8905,11 +9282,11 @@ msgstr "" #: builtin/reset.c:26 msgid "git reset [-q] <tree-ish> [--] <paths>..." -msgstr "git reset [-q] ДЪРВО [--] ПЪТИЩÐ…" +msgstr "git reset [-q] УКÐЗÐТЕЛ_КЪМ_ДЪРВО [--] ПЪТИЩÐ…" #: builtin/reset.c:27 msgid "git reset --patch [<tree-ish>] [--] [<paths>...]" -msgstr "git reset --patch [ДЪРВО] [--] [ПЪТИЩÐ…]" +msgstr "git reset --patch [УКÐЗÐТЕЛ_КЪМ_ДЪРВО] [--] [ПЪТИЩÐ…]" #: builtin/reset.c:33 msgid "mixed" @@ -8954,103 +9331,103 @@ msgstr "УказателÑÑ‚ „HEAD“ Ñочи към „%s“" msgid "Cannot do a %s reset in the middle of a merge." msgstr "Ðе може да Ñе извърши %s занулÑване по време на Ñливане." -#: builtin/reset.c:273 +#: builtin/reset.c:275 msgid "be quiet, only report errors" msgstr "по-малко подробноÑти, да Ñе извеждат Ñамо грешките" -#: builtin/reset.c:275 +#: builtin/reset.c:277 msgid "reset HEAD and index" msgstr "индекÑа и ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€žHEAD“, без работното дърво" -#: builtin/reset.c:276 +#: builtin/reset.c:278 msgid "reset only HEAD" msgstr "Ñамо ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€žHEAD“, без индекÑа и работното дърво" # FIXME vs man page -#: builtin/reset.c:278 builtin/reset.c:280 +#: builtin/reset.c:280 builtin/reset.c:282 msgid "reset HEAD, index and working tree" msgstr "ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€žHEAD“, индекÑа и работното дърво" # FIXME vs man page -#: builtin/reset.c:282 +#: builtin/reset.c:284 msgid "reset HEAD but keep local changes" msgstr "занулÑване на ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€žHEAD“, но запазване на локалните промени" -#: builtin/reset.c:285 +#: builtin/reset.c:287 msgid "record only the fact that removed paths will be added later" msgstr "" "отбелÑзване Ñамо на факта, че изтритите пътища ще бъдат добавени по-къÑно" -#: builtin/reset.c:302 +#: builtin/reset.c:304 #, c-format msgid "Failed to resolve '%s' as a valid revision." msgstr "СтойноÑтта „%s“ не е разпозната като ÑъщеÑтвуваща верÑиÑ." -#: builtin/reset.c:305 builtin/reset.c:313 +#: builtin/reset.c:307 builtin/reset.c:315 #, c-format msgid "Could not parse object '%s'." msgstr "„%s“ не е разпознат като обект." -#: builtin/reset.c:310 +#: builtin/reset.c:312 #, c-format msgid "Failed to resolve '%s' as a valid tree." msgstr "„%s“ не е разпознат като дърво." -#: builtin/reset.c:319 +#: builtin/reset.c:321 msgid "--patch is incompatible with --{hard,mixed,soft}" msgstr "" "опциÑта „--patch“ е неÑъвмеÑтима Ñ Ð²ÑÑка от опциите „--hard/--mixed/--soft“" -#: builtin/reset.c:328 +#: builtin/reset.c:330 msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead." msgstr "" "опциÑта „--mixed“ не бива да Ñе използва заедно Ñ Ð¿ÑŠÑ‚Ð¸Ñ‰Ð°. ВмеÑто това " "изпълнете „git reset -- ПЪТ…“." -#: builtin/reset.c:330 +#: builtin/reset.c:332 #, c-format msgid "Cannot do %s reset with paths." msgstr "Ðе може да извършите %s занулÑване, когато Ñте задали ПЪТ." -#: builtin/reset.c:340 +#: builtin/reset.c:342 #, c-format msgid "%s reset is not allowed in a bare repository" msgstr "Ð’ голо хранилище не може да извършите %s занулÑване" -#: builtin/reset.c:344 +#: builtin/reset.c:346 msgid "-N can only be used with --mixed" msgstr "ОпциÑта „-N“ е ÑъвмеÑтима Ñамо Ñ â€ž--mixed“" -#: builtin/reset.c:361 +#: builtin/reset.c:363 msgid "Unstaged changes after reset:" msgstr "Промени извън индекÑа Ñлед занулÑването:" -#: builtin/reset.c:367 +#: builtin/reset.c:369 #, c-format msgid "Could not reset index file to revision '%s'." msgstr "ИндекÑÑŠÑ‚ не може да бъде занулен към верÑÐ¸Ñ â€ž%s“." -#: builtin/reset.c:372 +#: builtin/reset.c:373 msgid "Could not write new index file." msgstr "ÐовиÑÑ‚ Ð¸Ð½Ð´ÐµÐºÑ Ð½Ðµ може да бъде запиÑан." -#: builtin/rev-parse.c:359 +#: builtin/rev-parse.c:360 msgid "git rev-parse --parseopt [options] -- [<args>...]" -msgstr "git rev-parse --parseopt [ОПЦИИ] -- [ÐРГУМЕÐТИ…]" +msgstr "git rev-parse --parseopt [ОПЦИЯ…] -- [ÐРГУМЕÐТИ…]" -#: builtin/rev-parse.c:364 +#: builtin/rev-parse.c:365 msgid "keep the `--` passed as an arg" msgstr "зададениÑÑ‚ низ „--“ да Ñе тълкува като аргумент" -#: builtin/rev-parse.c:366 +#: builtin/rev-parse.c:367 msgid "stop parsing after the first non-option argument" msgstr "Ñпиране на анализа Ñлед Ð¿ÑŠÑ€Ð²Ð¸Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚, който не е опциÑ" -#: builtin/rev-parse.c:369 +#: builtin/rev-parse.c:370 msgid "output in stuck long form" msgstr "изход в Ð´ÑŠÐ»Ð³Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚" -#: builtin/rev-parse.c:497 +#: builtin/rev-parse.c:498 msgid "" "git rev-parse --parseopt [options] -- [<args>...]\n" " or: git rev-parse --sq-quote [<arg>...]\n" @@ -9058,16 +9435,16 @@ msgid "" "\n" "Run \"git rev-parse --parseopt -h\" for more information on the first usage." msgstr "" -"git rev-parse --parseopt [ОПЦИИ] -- [ÐРГУМЕÐТИ…]\n" +"git rev-parse --parseopt [ОПЦИЯ…] -- [ÐРГУМЕÐТИ…]\n" " или: git rev-parse --sq-quote [ÐРГУМЕÐТИ…]\n" -" или: git rev-parse [ОПЦИИ] [ÐРГУМЕÐТИ…]\n" +" или: git rev-parse [ОПЦИЯ…] [ÐРГУМЕÐТИ…]\n" "\n" "За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° Ð¿ÑŠÑ€Ð²Ð¸Ñ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚ изпълнете „git rev-parse --parseopt -" "h“" #: builtin/revert.c:22 msgid "git revert [options] <commit-ish>..." -msgstr "git revert [ОПЦИИ] УКÐЗÐТЕЛ_КЪМ_ПОДÐÐ’ÐÐЕ…" +msgstr "git revert [ОПЦИЯ…] УКÐЗÐТЕЛ_КЪМ_ПОДÐÐ’ÐÐЕ…" #: builtin/revert.c:23 msgid "git revert <subcommand>" @@ -9075,7 +9452,7 @@ msgstr "git revert ПОДКОМÐÐДÐ" #: builtin/revert.c:28 msgid "git cherry-pick [options] <commit-ish>..." -msgstr "git cherry-pick [ОПЦИИ] УКÐЗÐТЕЛ_КЪМ_ПОДÐÐ’ÐÐЕ…" +msgstr "git cherry-pick [ОПЦИЯ…] УКÐЗÐТЕЛ_КЪМ_ПОДÐÐ’ÐÐЕ…" #: builtin/revert.c:29 msgid "git cherry-pick <subcommand>" @@ -9088,15 +9465,15 @@ msgstr "%s: опциÑта „%s“ е неÑъвмеÑтима Ñ â€ž%s“" #: builtin/revert.c:80 msgid "end revert or cherry-pick sequence" -msgstr "завършване на поредица от отбиране или отмÑна на подаваниÑ" +msgstr "завършване на поредица от Ð¾Ñ‚Ð±Ð¸Ñ€Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ отмени на подаваниÑ" #: builtin/revert.c:81 msgid "resume revert or cherry-pick sequence" -msgstr "завършване на поредица от отбиране или отмÑна на подаваниÑ" +msgstr "завършване на поредица от Ð¾Ñ‚Ð±Ð¸Ñ€Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ отмени на подаваниÑ" #: builtin/revert.c:82 msgid "cancel revert or cherry-pick sequence" -msgstr "отмÑна на поредица от отбиране или отмÑна на подаваниÑ" +msgstr "отмÑна на поредица от Ð¾Ñ‚Ð±Ð¸Ñ€Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ отмени на подаваниÑ" #: builtin/revert.c:83 msgid "don't automatically commit" @@ -9156,7 +9533,7 @@ msgstr "неуÑпешно отбиране" #: builtin/rm.c:17 msgid "git rm [options] [--] <file>..." -msgstr "git rm [ОПЦИИ] [--] ФÐЙЛ…" +msgstr "git rm [ОПЦИЯ…] [--] ФÐЙЛ…" #: builtin/rm.c:65 msgid "" @@ -9261,32 +9638,35 @@ msgstr "git rm: „%s“ не може да Ñе изтрие" #: builtin/shortlog.c:13 msgid "git shortlog [<options>] [<revision range>] [[--] [<path>...]]" -msgstr "" +msgstr "git shortlog [ОПЦИЯ…] [ДИÐПÐЗОÐ_ÐÐ_ВЕРСИИТЕ] [[--] [ПЪТ…]]" #: builtin/shortlog.c:131 #, c-format msgid "Missing author: %s" -msgstr "" +msgstr "Ðвторът липÑва: %s" #: builtin/shortlog.c:230 msgid "sort output according to the number of commits per author" -msgstr "" +msgstr "подредба на подаваниÑта по Ð±Ñ€Ð¾Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ð¾Ñ‚ автор" #: builtin/shortlog.c:232 msgid "Suppress commit descriptions, only provides commit count" -msgstr "" +msgstr "Без опиÑÐ°Ð½Ð¸Ñ Ð½Ð° подаваниÑта — да Ñе показва Ñамо Ð±Ñ€Ð¾Ñ Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ" #: builtin/shortlog.c:234 msgid "Show the email address of each author" -msgstr "" +msgstr "Извеждане на адреÑа на е-поща за вÑеки автор" +# FIXME why is this so short #: builtin/shortlog.c:235 msgid "w[,i1[,i2]]" -msgstr "" +msgstr "ШИРОЧИÐÐ[,ОТСТЪП_1[,ОТСТЪП_2]]" #: builtin/shortlog.c:236 msgid "Linewrap output" msgstr "" +"ПренаÑÑне на редовете до тази обща ШИРОЧИÐÐ (76), Ñ ÐžÐ¢Ð¡Ð¢ÐªÐŸ_1 (6) за Ð¿ÑŠÑ€Ð²Ð¸Ñ " +"ред и ОТСТЪП_2 (9) за оÑтаналите" #: builtin/show-branch.c:9 msgid "" @@ -9334,7 +9714,7 @@ msgstr "включване и на Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ ÐºÐ»Ð¾Ð½" #: builtin/show-branch.c:662 msgid "name commits with their object names" -msgstr "именоване на подаваниÑта Ñ Ð¸Ð¼ÐµÐ½Ð°Ñ‚Ð° им на обекти" +msgstr "именуване на подаваниÑта Ñ Ð¸Ð¼ÐµÐ½Ð°Ñ‚Ð° им на обекти" #: builtin/show-branch.c:664 msgid "show possible merge bases" @@ -9379,29 +9759,30 @@ msgstr "" "git show-ref [-q|--quiet] [--verify] [--head] [-d|--dereference] [-s|--" "hash[=ЧИСЛО]] [--abbrev[=ЧИСЛО]] [--tags] [--heads] [--] [ШÐБЛОÐ…]" +# FIXME pattern & ref-list must be in <> #: builtin/show-ref.c:11 msgid "git show-ref --exclude-existing[=pattern] < ref-list" -msgstr "" +msgstr "git show-ref --exclude-existing[=ШÐБЛОÐ] < СПИСЪК_С_УКÐЗÐТЕЛИ" #: builtin/show-ref.c:168 msgid "only show tags (can be combined with heads)" -msgstr "" +msgstr "извеждане на етикетите (може да Ñе комбинира Ñ Ð²ÑŠÑ€Ñ…Ð¾Ð²ÐµÑ‚Ðµ)" #: builtin/show-ref.c:169 msgid "only show heads (can be combined with tags)" -msgstr "" +msgstr "извеждане на върховете (може да Ñе комбинира Ñ ÐµÑ‚Ð¸ÐºÐµÑ‚Ð¸Ñ‚Ðµ)" #: builtin/show-ref.c:170 msgid "stricter reference checking, requires exact ref path" -msgstr "" +msgstr "Ñтрога проверка на указателите, изиÑква Ñе указател Ñ Ð¿ÑŠÐ»ÐµÐ½ път" #: builtin/show-ref.c:173 builtin/show-ref.c:175 msgid "show the HEAD reference, even if it would be filtered out" -msgstr "" +msgstr "задължително извеждане и на ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ HEAD" #: builtin/show-ref.c:177 msgid "dereference tags into object IDs" -msgstr "" +msgstr "да Ñе извеждат идентификаторите на обектите-етикети" #: builtin/show-ref.c:179 msgid "only show SHA1 hash using <n> digits" @@ -9410,14 +9791,18 @@ msgstr "извеждане Ñамо на този БРОЙ цифри от вÑÑ #: builtin/show-ref.c:183 msgid "do not print results to stdout (useful with --verify)" msgstr "" +"без извеждане на резултатите на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´ (полезно Ñ Ð¾Ð¿Ñ†Ð¸Ñта „--" +"verify“)" #: builtin/show-ref.c:185 msgid "show refs from stdin that aren't in local repository" msgstr "" +"извеждане на указателите приети от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´, които липÑват в " +"локалното хранилище" #: builtin/symbolic-ref.c:7 msgid "git symbolic-ref [options] name [ref]" -msgstr "git symbolic-ref [ОПЦИИ] ИМЕ [УКÐЗÐТЕЛ]" +msgstr "git symbolic-ref [ОПЦИЯ…] ИМЕ [УКÐЗÐТЕЛ]" #: builtin/symbolic-ref.c:8 msgid "git symbolic-ref -d [-q] name" @@ -9435,11 +9820,11 @@ msgstr "изтриване на Ñимволен указател" msgid "shorten ref output" msgstr "кратка Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° указателÑ" -#: builtin/symbolic-ref.c:43 builtin/update-ref.c:255 +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:349 msgid "reason" msgstr "причина" -#: builtin/symbolic-ref.c:43 builtin/update-ref.c:255 +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:349 msgid "reason of the update" msgstr "причина за обновÑването" @@ -9452,7 +9837,7 @@ msgstr "" #: builtin/tag.c:23 msgid "git tag -d <tagname>..." -msgstr "" +msgstr "git tag -d ЕТИКЕТ…" # FIXME tabulator #: builtin/tag.c:24 @@ -9460,349 +9845,383 @@ msgid "" "git tag -l [-n[<num>]] [--contains <commit>] [--points-at <object>] \n" "\t\t[<pattern>...]" msgstr "" +"git tag -l [-nБРОЙ] [--contains ПОДÐÐ’ÐÐЕ] [--points-at ОБЕКТ] \n" +" [ШÐБЛОÐ…]" #: builtin/tag.c:26 msgid "git tag -v <tagname>..." -msgstr "" +msgstr "git tag -v ЕТИКЕТ…" -#: builtin/tag.c:67 +#: builtin/tag.c:69 #, c-format msgid "malformed object at '%s'" -msgstr "" +msgstr "обект ÑÑŠÑ Ñгрешен формат при „%s“" -#: builtin/tag.c:239 +#: builtin/tag.c:301 #, c-format msgid "tag name too long: %.*s..." -msgstr "" +msgstr "името на етикета е твърде дълго: „%.*s“…" -#: builtin/tag.c:244 +#: builtin/tag.c:306 #, c-format msgid "tag '%s' not found." -msgstr "" +msgstr "етикетът „%s“ не е открит." -#: builtin/tag.c:259 +#: builtin/tag.c:321 #, c-format msgid "Deleted tag '%s' (was %s)\n" -msgstr "" +msgstr "Изтрит е етикетът „%s“ (бе „%s“)\n" -#: builtin/tag.c:271 +#: builtin/tag.c:333 #, c-format msgid "could not verify the tag '%s'" -msgstr "" +msgstr "етикетът „%s“ не може да бъде проверен" -#: builtin/tag.c:281 +#: builtin/tag.c:343 #, c-format msgid "" "\n" -"Write a tag message\n" +"Write a message for tag:\n" +" %s\n" "Lines starting with '%c' will be ignored.\n" msgstr "" +"\n" +"Въведете Ñъобщение за етикета.\n" +" %s\n" +"Редовете, които започват Ñ â€ž%c“, ще бъдат пропуÑнати.\n" -#: builtin/tag.c:285 +#: builtin/tag.c:347 #, c-format msgid "" "\n" -"Write a tag message\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" +"Въведете Ñъобщение за етикет.\n" +" %s\n" +"Редовете, които започват Ñ â€ž%c“, Ñъщо ще бъдат включени — може да ги " +"изтриете вие.\n" -#: builtin/tag.c:324 +#: builtin/tag.c:371 +#, c-format +msgid "unsupported sort specification '%s'" +msgstr "зададена е неподдържана подредба „%s“" + +#: builtin/tag.c:373 +#, c-format +msgid "unsupported sort specification '%s' in variable '%s'" +msgstr "зададена е неподдържана подредба „%s“ в променливата „%s“" + +#: builtin/tag.c:428 msgid "unable to sign the tag" -msgstr "" +msgstr "етикетът не може да бъде подпиÑан" -#: builtin/tag.c:326 +#: builtin/tag.c:430 msgid "unable to write tag file" -msgstr "" +msgstr "файлът за етикета не може да бъде запазен" -#: builtin/tag.c:351 +#: builtin/tag.c:455 msgid "bad object type." -msgstr "" +msgstr "неправилен вид обект." -#: builtin/tag.c:364 +#: builtin/tag.c:468 msgid "tag header too big." -msgstr "" +msgstr "заглавната чаÑÑ‚ на етикета е прекалено дълга." -#: builtin/tag.c:400 +# FIXME - why the ? - either we need to specify or not or it is good to specify +#: builtin/tag.c:504 msgid "no tag message?" -msgstr "" +msgstr "липÑва Ñъобщение за етикета" -#: builtin/tag.c:406 +#: builtin/tag.c:510 #, c-format msgid "The tag message has been left in %s\n" -msgstr "" +msgstr "Съобщението за етикета е запазено във файла „%s“\n" -#: builtin/tag.c:455 +# FIXME - the name of the option '--points-at' +#: builtin/tag.c:559 msgid "switch 'points-at' requires an object" -msgstr "" +msgstr "опциÑта „--points-at“ изиÑква аргумент-обект" -#: builtin/tag.c:457 +#: builtin/tag.c:561 #, c-format msgid "malformed object name '%s'" -msgstr "" - -#: builtin/tag.c:480 -#, c-format -msgid "unsupported sort specification %s" -msgstr "зададена е неподдържана подредба: „%s“" +msgstr "неправилно име на обект „%s“" -#: builtin/tag.c:500 +#: builtin/tag.c:588 msgid "list tag names" -msgstr "" +msgstr "извеждане на имената на етикетите" -#: builtin/tag.c:502 +#: builtin/tag.c:590 msgid "print <n> lines of each tag message" msgstr "извеждане на този БРОЙ редове от вÑÑко Ñъобщение за етикет" -#: builtin/tag.c:504 +#: builtin/tag.c:592 msgid "delete tags" -msgstr "" +msgstr "изтриване на етикети" -#: builtin/tag.c:505 +#: builtin/tag.c:593 msgid "verify tags" -msgstr "" +msgstr "проверка на етикети" -#: builtin/tag.c:507 +#: builtin/tag.c:595 msgid "Tag creation options" -msgstr "" +msgstr "Опции при Ñъздаването на етикети" -#: builtin/tag.c:509 +#: builtin/tag.c:597 msgid "annotated tag, needs a message" -msgstr "" +msgstr "анотирането на етикети изиÑква Ñъобщение" -#: builtin/tag.c:511 +#: builtin/tag.c:599 msgid "tag message" -msgstr "" +msgstr "Ñъобщение за етикет" -#: builtin/tag.c:513 +#: builtin/tag.c:601 msgid "annotated and GPG-signed tag" -msgstr "" +msgstr "анотиран етикет Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð¿Ð¾ GPG" -#: builtin/tag.c:517 +#: builtin/tag.c:605 msgid "use another key to sign the tag" -msgstr "" +msgstr "използване на друг ключ за подпиÑването на етикет" -#: builtin/tag.c:518 +#: builtin/tag.c:606 msgid "replace the tag if exists" -msgstr "" +msgstr "замÑна на етикета, ако ÑъщеÑтвува" -#: builtin/tag.c:519 +#: builtin/tag.c:607 msgid "show tag list in columns" -msgstr "" +msgstr "извеждане на ÑпиÑъка на етикетите по колони" -#: builtin/tag.c:521 +#: builtin/tag.c:609 msgid "sort tags" msgstr "подреждане на етикетите" -#: builtin/tag.c:525 +#: builtin/tag.c:613 msgid "Tag listing options" -msgstr "" +msgstr "Опции за извеждането на етикети" -#: builtin/tag.c:528 builtin/tag.c:534 +#: builtin/tag.c:616 builtin/tag.c:622 msgid "print only tags that contain the commit" -msgstr "" +msgstr "извеждане Ñамо на етикетите, които Ñъдържат подаването" -#: builtin/tag.c:540 +#: builtin/tag.c:628 msgid "print only tags of the object" -msgstr "" +msgstr "извеждане Ñамо на етикетите на обекта" -#: builtin/tag.c:566 +#: builtin/tag.c:654 msgid "--column and -n are incompatible" -msgstr "" +msgstr "Опциите „--column“ и „-n“ Ñа неÑъвмеÑтими" -#: builtin/tag.c:578 +#: builtin/tag.c:666 msgid "--sort and -n are incompatible" msgstr "Опциите „--long“ и „-n“ Ñа неÑъвмеÑтими" -#: builtin/tag.c:585 +#: builtin/tag.c:673 msgid "-n option is only allowed with -l." -msgstr "" +msgstr "ОпциÑта „-n“ изиÑква опциÑта „-l“." -#: builtin/tag.c:587 +#: builtin/tag.c:675 msgid "--contains option is only allowed with -l." -msgstr "" +msgstr "ОпциÑта „-contains“ изиÑква опциÑта „-l“." -#: builtin/tag.c:589 +#: builtin/tag.c:677 msgid "--points-at option is only allowed with -l." -msgstr "" +msgstr "ОпциÑта „-points-at“ изиÑква опциÑта „-l“." -#: builtin/tag.c:597 +# FIXME message pattern +#: builtin/tag.c:685 msgid "only one -F or -m option is allowed." -msgstr "" +msgstr "Опциите „-F“ и „-m“ Ñа неÑъвмеÑтими." -#: builtin/tag.c:617 +#: builtin/tag.c:705 msgid "too many params" -msgstr "" +msgstr "Прекалено много аргументи" -#: builtin/tag.c:623 +#: builtin/tag.c:711 #, c-format msgid "'%s' is not a valid tag name." -msgstr "" +msgstr "„%s“ е неправилно име за етикет." -#: builtin/tag.c:628 +#: builtin/tag.c:716 #, c-format msgid "tag '%s' already exists" -msgstr "" +msgstr "етикетът „%s“ вече ÑъщеÑтвува" -#: builtin/tag.c:646 +#: builtin/tag.c:734 #, c-format msgid "%s: cannot lock the ref" -msgstr "" +msgstr "указателÑÑ‚ „%s“ не може да бъде заключен" -#: builtin/tag.c:648 +#: builtin/tag.c:736 #, c-format msgid "%s: cannot update the ref" -msgstr "" +msgstr "указателÑÑ‚ „%s“ не може да бъде обновен" -#: builtin/tag.c:650 +#: builtin/tag.c:738 #, c-format msgid "Updated tag '%s' (was %s)\n" -msgstr "" +msgstr "Обновен етикет „%s“ (бе „%s“)\n" #: builtin/unpack-objects.c:483 msgid "Unpacking objects" msgstr "Разпакетиране на обектите" -#: builtin/update-index.c:399 +#: builtin/update-index.c:402 msgid "git update-index [options] [--] [<file>...]" -msgstr "" +msgstr "git update-index [ОПЦИЯ…] [--] [ФÐЙЛ…]" -#: builtin/update-index.c:748 +#: builtin/update-index.c:755 msgid "continue refresh even when index needs update" msgstr "" +"продължаване Ñ Ð¾Ð±Ð½Ð¾Ð²Ñването, дори когато индекÑÑŠÑ‚ Ñ‚Ñ€Ñбва да бъде обновен" -#: builtin/update-index.c:751 +#: builtin/update-index.c:758 msgid "refresh: ignore submodules" -msgstr "" +msgstr "подмодулите да Ñе игнорират при обновÑването" -#: builtin/update-index.c:754 +#: builtin/update-index.c:761 msgid "do not ignore new files" -msgstr "" +msgstr "новите файлове да не Ñе игнорират" -#: builtin/update-index.c:756 +#: builtin/update-index.c:763 msgid "let files replace directories and vice-versa" -msgstr "" +msgstr "файлове да могат да заменÑÑ‚ директории и обратно" -#: builtin/update-index.c:758 +#: builtin/update-index.c:765 msgid "notice files missing from worktree" -msgstr "" +msgstr "предупреждаване при липÑващи в работното дърво файлове" -#: builtin/update-index.c:760 +#: builtin/update-index.c:767 msgid "refresh even if index contains unmerged entries" -msgstr "" +msgstr "обновÑване дори и индекÑÑŠÑ‚ да Ñъдържа неÑлети обекти" -#: builtin/update-index.c:763 +#: builtin/update-index.c:770 msgid "refresh stat information" -msgstr "" +msgstr "обновÑване на информациÑта от функциÑта „stat“" -#: builtin/update-index.c:767 +#: builtin/update-index.c:774 msgid "like --refresh, but ignore assume-unchanged setting" msgstr "" +"като опциÑта „--refresh“, но да Ñе проверÑÑ‚ и обектите, които Ñа били приети " +"за непроменени" -#: builtin/update-index.c:771 +#: builtin/update-index.c:778 msgid "<mode>,<object>,<path>" -msgstr "" +msgstr "РЕЖИМ,ОБЕКТ,ПЪТ" -#: builtin/update-index.c:772 +#: builtin/update-index.c:779 msgid "add the specified entry to the index" -msgstr "" +msgstr "добавÑне на изброените обекти към индекÑа" -#: builtin/update-index.c:776 +#: builtin/update-index.c:783 msgid "(+/-)x" -msgstr "" +msgstr "(+/-)x" -#: builtin/update-index.c:777 +#: builtin/update-index.c:784 msgid "override the executable bit of the listed files" -msgstr "" +msgstr "изрично задаване на ÑтойноÑтта на флага дали файлът е изпълним" -#: builtin/update-index.c:781 +#: builtin/update-index.c:788 msgid "mark files as \"not changing\"" -msgstr "" +msgstr "задаване на флаг, че файлът не Ñе променÑ" -#: builtin/update-index.c:784 +#: builtin/update-index.c:791 msgid "clear assumed-unchanged bit" -msgstr "" +msgstr "изчиÑтване на флага, че файлът не Ñе променÑ" -#: builtin/update-index.c:787 +#: builtin/update-index.c:794 msgid "mark files as \"index-only\"" -msgstr "" +msgstr "задаване на флаг, че файловете Ñа Ñамо за индекÑа" -#: builtin/update-index.c:790 +#: builtin/update-index.c:797 msgid "clear skip-worktree bit" -msgstr "" +msgstr "изчиÑтване на флага, че файловете Ñа Ñамо за индекÑа" -#: builtin/update-index.c:793 +#: builtin/update-index.c:800 msgid "add to index only; do not add content to object database" -msgstr "" +msgstr "добавÑне Ñамо към индекÑа без добавÑне към базата от данни за обектите" -#: builtin/update-index.c:795 +#: builtin/update-index.c:802 msgid "remove named paths even if present in worktree" -msgstr "" +msgstr "изтриване на указаните пътища, дори и да ÑъщеÑтвуват в работното дърво" -#: builtin/update-index.c:797 +#: builtin/update-index.c:804 msgid "with --stdin: input lines are terminated by null bytes" msgstr "" +"при комбиниране Ñ Ð¾Ð¿Ñ†Ð¸Ñта „--stdin“ — входните редове Ñа разделени Ñ Ð½ÑƒÐ»ÐµÐ²Ð¸Ñ " +"байт" -#: builtin/update-index.c:799 +#: builtin/update-index.c:806 msgid "read list of paths to be updated from standard input" -msgstr "" +msgstr "изчитане на ÑпиÑъка Ñ Ð¿ÑŠÑ‚Ð¸Ñ‰Ð° за обновÑване от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´" -#: builtin/update-index.c:803 +#: builtin/update-index.c:810 msgid "add entries from standard input to the index" -msgstr "" +msgstr "добавÑне на елементите от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´ към индекÑа" -#: builtin/update-index.c:807 +#: builtin/update-index.c:814 msgid "repopulate stages #2 and #3 for the listed paths" msgstr "" +"възÑтановÑване на ÑÑŠÑтоÑнието преди Ñливане или нужда от обновÑване за " +"изброените пътища" -#: builtin/update-index.c:811 +#: builtin/update-index.c:818 msgid "only update entries that differ from HEAD" -msgstr "" +msgstr "добавÑне Ñамо на Ñъдържанието, което Ñе различава от това в „HEAD“" -#: builtin/update-index.c:815 +#: builtin/update-index.c:822 msgid "ignore files missing from worktree" -msgstr "" +msgstr "игнориране на файловете, които липÑват в работното дърво" -#: builtin/update-index.c:818 +#: builtin/update-index.c:825 msgid "report actions to standard output" -msgstr "" +msgstr "извеждане на дейÑтвиÑта на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´" -#: builtin/update-index.c:820 +#: builtin/update-index.c:827 msgid "(for porcelains) forget saved unresolved conflicts" msgstr "" +"забравÑне на запиÑаната Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° неразрешени конфликти — за командите " +"от потребителÑко ниво" -#: builtin/update-index.c:824 +#: builtin/update-index.c:831 msgid "write index in this format" -msgstr "" +msgstr "запиÑване на индекÑа в този формат" + +#: builtin/update-index.c:833 +msgid "enable or disable split index" +msgstr "включване или изключване на разделÑнето на индекÑа" #: builtin/update-ref.c:9 msgid "git update-ref [options] -d <refname> [<oldval>]" -msgstr "git update-ref [ОПЦИИ] -d ИМЕ_ÐÐ_УКÐЗÐТЕЛ [СТÐÐ Ð_СТОЙÐОСТ]" +msgstr "git update-ref [ОПЦИЯ…] -d ИМЕ_ÐÐ_УКÐЗÐТЕЛ [СТÐÐ Ð_СТОЙÐОСТ]" +# FIXME spaces - not needed in original #: builtin/update-ref.c:10 msgid "git update-ref [options] <refname> <newval> [<oldval>]" -msgstr "" -"git update-ref [ОПЦИИ] ИМЕ_ÐÐ_УКÐЗÐТЕЛ ÐОВÐ_СТОЙÐОСТ [СТÐÐ Ð_СТОЙÐОСТ]" +msgstr "git update-ref [ОПЦИЯ…] ИМЕ_ÐÐ_УКÐЗÐТЕЛ ÐОВÐ_СТОЙÐОСТ [СТÐÐ Ð_СТОЙÐОСТ]" #: builtin/update-ref.c:11 msgid "git update-ref [options] --stdin [-z]" -msgstr "git update-ref [ОПЦИИ] --stdin [-z]" +msgstr "git update-ref [ОПЦИЯ…] --stdin [-z]" -#: builtin/update-ref.c:256 +#: builtin/update-ref.c:350 msgid "delete the reference" msgstr "изтриване на указателÑ" -#: builtin/update-ref.c:258 +#: builtin/update-ref.c:352 msgid "update <refname> not the one it points to" msgstr "обновÑване на ИМЕто_ÐÐ_УКÐЗÐТЕЛÑ, а не това, към което Ñочи" -#: builtin/update-ref.c:259 +#: builtin/update-ref.c:353 msgid "stdin has NUL-terminated arguments" msgstr "" "нÑкои от елементите подадени на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´ завършват Ñ Ð½ÑƒÐ»ÐµÐ²Ð¸Ñ Ð·Ð½Ð°Ðº " "„NUL“" -#: builtin/update-ref.c:260 +#: builtin/update-ref.c:354 msgid "read updates from stdin" msgstr "изчитане на указателите от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´" @@ -9814,15 +10233,23 @@ msgstr "git update-server-info [--force]" msgid "update the info files from scratch" msgstr "обновÑване на информационните файлове от нулата" -#: builtin/verify-pack.c:56 +#: builtin/verify-commit.c:17 +msgid "git verify-commit [-v|--verbose] <commit>..." +msgstr "git verify-tag [-v|--verbose] ПОДÐÐ’ÐÐЕ…" + +#: builtin/verify-commit.c:75 +msgid "print commit contents" +msgstr "извеждане на Ñъдържанието на подаването" + +#: builtin/verify-pack.c:55 msgid "git verify-pack [-v|--verbose] [-s|--stat-only] <pack>..." msgstr "git verify-pack [-v|--verbose] [-s|--stat-only] ПÐКЕТ…" -#: builtin/verify-pack.c:66 +#: builtin/verify-pack.c:65 msgid "verbose" msgstr "извеждане на подробна информациÑ" -#: builtin/verify-pack.c:68 +#: builtin/verify-pack.c:67 msgid "show statistics only" msgstr "извеждане Ñамо на ÑтатиÑтиката" @@ -9836,15 +10263,15 @@ msgstr "извеждане на Ñъдържанието на ЕТИКЕТи" #: builtin/write-tree.c:13 msgid "git write-tree [--missing-ok] [--prefix=<prefix>/]" -msgstr "git write-tree [--missing-ok] [--prefix=ПРЕДСТÐВКÐ/]" +msgstr "git write-tree [--missing-ok] [--prefix=ПРЕФИКС/]" #: builtin/write-tree.c:26 msgid "<prefix>/" -msgstr "ПРЕДСТÐВКÐ/" +msgstr "ПРЕФИКС/" #: builtin/write-tree.c:27 msgid "write tree object for a subdirectory <prefix>" -msgstr "Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° обект-дърво за поддиректориÑта започваща Ñ Ñ‚Ð°Ð·Ð¸ ПРЕДСТÐВКÐ" +msgstr "Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° обект-дърво за поддиректориÑта започваща Ñ Ñ‚Ð°Ð·Ð¸ ПРЕФИКС" #: builtin/write-tree.c:30 msgid "only useful for debugging" @@ -9971,13 +10398,18 @@ msgstr "Извеждане, Ñъздаване, изтриване, провер #: git-am.sh:52 msgid "You need to set your committer info first" -msgstr "" +msgstr "Първо Ñ‚Ñ€Ñбва да зададете Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° Ñебе Ñи" #: git-am.sh:97 msgid "" "You seem to have moved HEAD since the last 'am' failure.\n" "Not rewinding to ORIG_HEAD" msgstr "" +"Изглежда указателÑÑ‚ „HEAD“ е променен и не Ñочи към ÑÑŠÑ‰Ð¸Ñ Ð¾Ð±ÐµÐºÑ‚ както по " +"времето\n" +"на поÑледното неуÑпешно изпълнение на „git am“. УказателÑÑ‚ Ñе задава да Ñочи " +"към\n" +"„ORIG_HEAD“" #: git-am.sh:107 #, sh-format @@ -9986,60 +10418,76 @@ msgid "" "If you prefer to skip this patch, run \"$cmdline --skip\" instead.\n" "To restore the original branch and stop patching, run \"$cmdline --abort\"." msgstr "" +"След коригирането на този проблем изпълнете командата „$cmdline --" +"continue“.\n" +"За да преÑкочите тази кръпка, изпълнете командата „$cmdline --skip“.\n" +"За да възÑтановите първоначалното ÑÑŠÑтоÑние и да преуÑтановите прилагането " +"на \n" +"кръпки, изпълнете командата „$cmdline --abort“." #: git-am.sh:123 msgid "Cannot fall back to three-way merge." -msgstr "" +msgstr "Ðе може да Ñе премине към тройно Ñливане." #: git-am.sh:139 msgid "Repository lacks necessary blobs to fall back on 3-way merge." msgstr "" +"Ð’ хранилището липÑват необходимите обекти BLOB, за да Ñе премине към тройно " +"Ñливане." #: git-am.sh:141 msgid "Using index info to reconstruct a base tree..." -msgstr "" +msgstr "Базовото дърво Ñе реконÑтруира от информациÑта в индекÑа…" #: git-am.sh:156 msgid "" "Did you hand edit your patch?\n" "It does not apply to blobs recorded in its index." msgstr "" +"Кръпката не може да Ñе приложи към обектите BLOB в индекÑа.\n" +"Да не би да Ñте Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð°Ð»Ð¸ на ръка?" #: git-am.sh:165 msgid "Falling back to patching base and 3-way merge..." -msgstr "" +msgstr "Преминаване към прилагане на кръпка към базата и тройно Ñливане…" #: git-am.sh:181 msgid "Failed to merge in the changes." -msgstr "" +msgstr "ÐеуÑпешно Ñливане на промените." #: git-am.sh:276 msgid "Only one StGIT patch series can be applied at once" msgstr "" +"Само една ÑÐµÑ€Ð¸Ñ ÐºÑ€ÑŠÐ¿ÐºÐ¸ от „StGIT“ може да бъде прилагана в даден момент" #: git-am.sh:363 #, sh-format msgid "Patch format $patch_format is not supported." -msgstr "" +msgstr "Ðеподдържан формат на кръпки: „$patch_format“." #: git-am.sh:365 msgid "Patch format detection failed." -msgstr "" +msgstr "Форматът на кръпката не може да бъде определен." #: git-am.sh:392 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“ отдавна не правÑÑ‚ нищо и\n" +"ще бъдат премахнати в бъдеще. Ðе ги ползвайте." #: git-am.sh:486 #, sh-format msgid "previous rebase directory $dotest still exists but mbox given." msgstr "" +"предишната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° пребазиране „$dotest“ вÑе още ÑъщеÑтвува, а е " +"зададен файл „mbox“." +# FIXME better message #: git-am.sh:491 msgid "Please make up your mind. --skip or --abort?" -msgstr "" +msgstr "Опциите „--skip“ и „--abort“ Ñа неÑъвмеÑтими." #: git-am.sh:527 #, sh-format @@ -10047,16 +10495,21 @@ msgid "" "Stray $dotest directory found.\n" "Use \"git am --abort\" to remove it." msgstr "" +"Открита е излишна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ â€ž$dotest“.\n" +"Можете да Ñ Ð¸Ð·Ñ‚Ñ€Ð¸ÐµÑ‚Ðµ Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ‚Ð° „git am --abort“." #: git-am.sh:535 msgid "Resolve operation not in progress, we are not resuming." -msgstr "" +msgstr "Ð’ момента не тече Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¿Ð¾ коригиране и нÑма как да Ñе продължи." #: git-am.sh:601 #, sh-format msgid "Dirty index: cannot apply patches (dirty: $files)" msgstr "" +"ИндекÑÑŠÑ‚ не е чиÑÑ‚: кръпките не могат да бъдат приложени (замърÑени Ñа: " +"$files)" +# FIXME spaces #: git-am.sh:705 #, sh-format msgid "" @@ -10064,18 +10517,25 @@ msgid "" "If you would prefer to skip this patch, instead run \"$cmdline --skip\".\n" "To restore the original branch and stop patching run \"$cmdline --abort\"." msgstr "" +"Кръпката е празна. ЧеÑта причина за това е неправилно разделÑне на кръпки.\n" +"За да преÑкочите тази кръпка, изпълнете командата „$cmdline --skip“.\n" +"За да възÑтановите първоначалното ÑÑŠÑтоÑние и да преуÑтановите прилагането " +"на \n" +"кръпки, изпълнете командата „$cmdline --abort“." #: git-am.sh:732 msgid "Patch does not have a valid e-mail address." -msgstr "" +msgstr "Кръпката не Ñъдържа валиден Ð°Ð´Ñ€ÐµÑ Ð·Ð° е-поща." #: git-am.sh:779 msgid "cannot be interactive without stdin connected to a terminal." msgstr "" +"За интерактивно изпълнение е необходимо ÑтандартниÑÑ‚\n" +"изход да е Ñвързан Ñ Ñ‚ÐµÑ€Ð¼Ð¸Ð½Ð°Ð», а в момента не е." #: git-am.sh:783 msgid "Commit Body is:" -msgstr "" +msgstr "ТÑлото на кръпката за прилагане е:" #. TRANSLATORS: Make sure to include [y], [n], [e], [v] and [a] #. in your translation. The program will only accept English @@ -10083,11 +10543,13 @@ msgstr "" #: git-am.sh:790 msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all " msgstr "" +"Прилагане? „y“ — да/„n“ — не/„e“ — редактиране/„v“ — преглед/„a“ — приемане " +"на вÑичко" #: git-am.sh:826 #, sh-format msgid "Applying: $FIRSTLINE" -msgstr "" +msgstr "Прилагане: $FIRSTLINE" #: git-am.sh:847 msgid "" @@ -10095,21 +10557,26 @@ msgid "" "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" +"Ðко нÑма друга промÑна за включване в индекÑа, най-вероÑтно нÑÐºÐ¾Ñ Ð´Ñ€ÑƒÐ³Ð°\n" +"кръпка е довела до Ñъщите промени и в такъв Ñлучай проÑто пропуÑнете тази." #: git-am.sh:855 msgid "" "You still have unmerged paths in your index\n" "did you forget to use 'git add'?" msgstr "" +"ИндекÑÑŠÑ‚ вÑе още Ñъдържа неÑлети промени — възможно е да не Ñте изпълнили " +"„git add“." #: git-am.sh:871 msgid "No changes -- Patch already applied." -msgstr "" +msgstr "Без промени — кръпката вече е приложена." #: git-am.sh:881 #, sh-format msgid "Patch failed at $msgnum $FIRSTLINE" -msgstr "" +msgstr "ÐеуÑпешно прилагане на кръпката „$msgnum“: „$FIRSTLINE“" #: git-am.sh:884 #, sh-format @@ -10117,105 +10584,119 @@ msgid "" "The copy of the patch that failed is found in:\n" " $dotest/patch" msgstr "" +"Дубликат на проблемната кръпка Ñе намира в:\n" +" $dotest/patch" #: git-am.sh:902 msgid "applying to an empty history" -msgstr "" +msgstr "прилагане върху празна иÑториÑ" #: git-bisect.sh:48 msgid "You need to start by \"git bisect start\"" -msgstr "" +msgstr "Започнете като изпълните командата „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 msgid "Do you want me to do it for you [Y/n]? " -msgstr "" +msgstr "Да Ñе извърши ли автоматично? „Y“ — ДÐ, „n“ — не" #: git-bisect.sh:95 #, sh-format msgid "unrecognised option: '$arg'" -msgstr "" +msgstr "непозната Ð¾Ð¿Ñ†Ð¸Ñ â€ž$arg“" #: git-bisect.sh:99 #, sh-format msgid "'$arg' does not appear to be a valid revision" -msgstr "" +msgstr "„$arg“ не изглежда като указател към верÑиÑ" +# FIXME - I ??? the message does not convey what is actually wrong - that the "HEAD" points to sth that is unparsable #: git-bisect.sh:117 msgid "Bad HEAD - I need a HEAD" -msgstr "" +msgstr "ТекущиÑÑ‚ указател „HEAD“ е неправилен." #: git-bisect.sh:130 #, sh-format msgid "" "Checking out '$start_head' failed. Try 'git bisect reset <validbranch>'." msgstr "" +"ÐеуÑпешно преминаване към „$start_head“. Изпълнете командата „git bisect " +"reset СЪОТВЕТÐИЯ_КЛОГ." #: git-bisect.sh:140 msgid "won't bisect on cg-seek'ed tree" msgstr "" +"не може да Ñе Ñ‚ÑŠÑ€Ñи двоично, когато е изпълнена командата „cg-seek“ от " +"„cogito“" #: git-bisect.sh:144 msgid "Bad HEAD - strange symbolic ref" -msgstr "" +msgstr "Ðеправилен указател „HEAD“" #: git-bisect.sh:189 #, sh-format msgid "Bad bisect_write argument: $state" -msgstr "" +msgstr "Ðеправилен аргумент на функциÑта „bisect_write“: „$state“" #: git-bisect.sh:218 #, sh-format msgid "Bad rev input: $arg" -msgstr "" +msgstr "Ðеправилна верÑиÑ: „$arg“" #: git-bisect.sh:232 msgid "Please call 'bisect_state' with at least one argument." -msgstr "" +msgstr "ФункциÑта „bisect_state“ изиÑква поне един аргумент." #: git-bisect.sh:244 #, sh-format msgid "Bad rev input: $rev" -msgstr "" +msgstr "Ðеправилна верÑиÑ: „$rev“" #: git-bisect.sh:250 msgid "'git bisect bad' can take only one argument." -msgstr "" +msgstr "Командата „git bisect bad“ приема Ñамо един аргумент." #: git-bisect.sh:273 msgid "Warning: bisecting only with a bad commit." -msgstr "" +msgstr "ПРЕДУПРЕЖДЕÐИЕ: двоично Ñ‚ÑŠÑ€Ñене Ñамо по лошо подаване." #. 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 msgid "Are you sure [Y/n]? " -msgstr "" +msgstr "Да Ñе продължи ли? „Y“ — ДÐ, „n“ — не" +# FIXME me? #: git-bisect.sh:289 msgid "" "You need to give me at least one good and one bad revisions.\n" "(You can use \"git bisect bad\" and \"git bisect good\" for that.)" msgstr "" +"ТрÑбва да зададете поне една добра и една лоша верÑиÑ. Това може да Ñе\n" +"направи Ñъответно и чрез командите „git bisect bad“ и „git bisect good“." +# FIXME me #: git-bisect.sh:292 msgid "" "You need to start by \"git bisect start\".\n" "You then need to give me at least one good and one bad revisions.\n" "(You can use \"git bisect bad\" and \"git bisect good\" for that.)" msgstr "" +"ТрÑбва да започнете двоичното Ñ‚ÑŠÑ€Ñене чрез командата „git bisect start“.\n" +"Ñ‚Ñ€Ñбва да зададете поне една добра и една лоша верÑиÑ. Това може да Ñе\n" +"направи Ñъответно и чрез командите „git bisect bad“ и „git bisect good“." #: git-bisect.sh:363 git-bisect.sh:490 msgid "We are not bisecting." -msgstr "" +msgstr "Ð’ момента не Ñе извършва двоично Ñ‚ÑŠÑ€Ñене." #: git-bisect.sh:370 #, sh-format msgid "'$invalid' is not a valid commit" -msgstr "" +msgstr "„$invalid“ е неправилно подаване" #: git-bisect.sh:379 #, sh-format @@ -10223,24 +10704,30 @@ msgid "" "Could not check out original HEAD '$branch'.\n" "Try 'git bisect reset <commit>'." msgstr "" +"Първоначално указаниÑÑ‚ клон „$branch“ в ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ â€žHEAD“ не може да бъде\n" +"изтеглен. Пробвайте да изпълните командата „git bisect reset ПОДÐÐ’ÐÐЕ“." #: git-bisect.sh:406 msgid "No logfile given" -msgstr "" +msgstr "Ðе е зададен журнален файл" #: git-bisect.sh:407 #, sh-format msgid "cannot read $file for replaying" msgstr "" +"ЖурналниÑÑ‚ файл „$file“ не може да бъде прочетен, за да Ñе изпълнÑÑ‚ " +"командите от него наново" +# FIXME WTF #: git-bisect.sh:424 msgid "?? what are you talking about?" msgstr "" +"Ðепозната команда. Възможните варианти Ñа: „start“, „good“, „bad“, „skip“" #: git-bisect.sh:436 #, sh-format msgid "running $command" -msgstr "" +msgstr "изпълнение на командата „$command“" #: git-bisect.sh:443 #, sh-format @@ -10248,21 +10735,27 @@ msgid "" "bisect run failed:\n" "exit code $res from '$command' is < 0 or >= 128" msgstr "" +"неуÑпешно двоично Ñ‚ÑŠÑ€Ñене:\n" +"изходниÑÑ‚ код от командата „$command“ е $res — това е извън интервала [0, " +"128)" #: git-bisect.sh:469 msgid "bisect run cannot continue any more" -msgstr "" +msgstr "двоичното Ñ‚ÑŠÑ€Ñене не може да продължи" +# FIXME initial space #: git-bisect.sh:475 #, sh-format msgid "" "bisect run failed:\n" "'bisect_state $state' exited with error code $res" msgstr "" +"неуÑпешно двоично Ñ‚ÑŠÑ€Ñене:\n" +"функциÑта „bisect_state $state“ завърши Ñ ÐºÐ¾Ð´ за грешка $res" #: git-bisect.sh:482 msgid "bisect run success" -msgstr "" +msgstr "уÑпешно двоично Ñ‚ÑŠÑ€Ñене" #: git-pull.sh:21 msgid "" @@ -10283,25 +10776,25 @@ msgid "Pull is not possible because you have unmerged files." msgstr "" "Ðевъзможно е да издърпвате в момента, защото нÑкои файлове не Ñа Ñлети." -#: git-pull.sh:247 +#: git-pull.sh:245 msgid "updating an unborn branch with changes added to the index" -msgstr "обновÑване на още неÑъздаден клон Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð¸Ñ‚Ðµ от индекÑа" +msgstr "обновÑване на вÑе още неÑъздаден клон Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð¸Ñ‚Ðµ от индекÑа" -#: git-pull.sh:271 +#: git-pull.sh:269 #, sh-format msgid "" "Warning: fetch updated the current branch head.\n" "Warning: fast-forwarding your working tree from\n" "Warning: commit $orig_head." msgstr "" -"ПРЕДУПРЕЖДЕÐИЕ: доÑтавÑнето обнови върха на Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ ÐºÐ»Ð¾Ð½.Работното ви копие\n" -"ПРЕДУПРЕЖДЕÐИЕ: бе тривиално ÑлÑто от подаване „$orig_head“." +"ПРЕДУПРЕЖДЕÐИЕ: доÑтавÑнето обнови върха на Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ ÐºÐ»Ð¾Ð½. Работното ви\n" +"ПРЕДУПРЕЖДЕÐИЕ: копие бе тривиално ÑлÑто от подаване „$orig_head“." -#: git-pull.sh:296 +#: git-pull.sh:294 msgid "Cannot merge multiple branches into empty head" msgstr "Ðе може да Ñливате множеÑтво клони в празен върхов указател" -#: git-pull.sh:300 +#: git-pull.sh:298 msgid "Cannot rebase onto multiple branches" msgstr "Ðе може да пребазирате върху повече от един клон" @@ -10317,16 +10810,16 @@ msgstr "" "За да откажете пребазирането и да Ñе върнете към първоначалното ÑÑŠÑтоÑние,\n" "изпълнете „git rebase --abort“." -#: git-rebase.sh:164 +#: git-rebase.sh:165 msgid "Applied autostash." msgstr "Ðвтоматично Ñкатаното е приложено." -#: git-rebase.sh:167 +#: git-rebase.sh:168 #, sh-format msgid "Cannot store $stash_sha1" msgstr "„$stash_sha1“ не може да бъде запазен" -#: git-rebase.sh:168 +#: git-rebase.sh:169 msgid "" "Applying autostash resulted in conflicts.\n" "Your changes are safe in the stash.\n" @@ -10336,35 +10829,35 @@ msgstr "" "надеждно Ñкатани. Можете да пробвате да ги приложите чрез „git stash pop“\n" "или да ги изхвърлите чрез „git stash drop“, когато поиÑкате.\n" -#: git-rebase.sh:207 +#: git-rebase.sh:208 msgid "The pre-rebase hook refused to rebase." msgstr "Куката за изпълнение преди пребазиране отхвърли пребазирането." -#: git-rebase.sh:212 +#: git-rebase.sh:213 msgid "It looks like git-am is in progress. Cannot rebase." msgstr "" "Изглежда, че Ñега Ñе прилагат кръпки чрез командата „git-am“. Ðе може да " "пребазирате в момента." -#: git-rebase.sh:350 +#: git-rebase.sh:351 msgid "The --exec option must be used with the --interactive option" msgstr "ОпциÑта „--exec“ задължително изиÑква опциÑта „--interactive“" # FIXME message -#: git-rebase.sh:355 +#: git-rebase.sh:356 msgid "No rebase in progress?" msgstr "Изглежда в момента не тече пребазиране" -#: git-rebase.sh:366 +#: git-rebase.sh:367 msgid "The --edit-todo action can only be used during interactive rebase." msgstr "" "ОпциÑта „--edit-todo“ е доÑтъпна Ñамо по време на интерактивно пребазиране." -#: git-rebase.sh:373 +#: git-rebase.sh:374 msgid "Cannot read HEAD" msgstr "УказателÑÑ‚ „HEAD“ не може да бъде прочетен" -#: git-rebase.sh:376 +#: git-rebase.sh:377 msgid "" "You must edit all merge conflicts and then\n" "mark them as resolved using git add" @@ -10372,13 +10865,13 @@ msgstr "" "ТрÑбва да редактирате вÑички конфликти при Ñливането. След това\n" "отбележете коригирането им чрез командата „git add“" -#: git-rebase.sh:394 +#: git-rebase.sh:395 #, sh-format msgid "Could not move back to $head_name" msgstr "Връщането към „$head_name“ е невъзможно" # FIXME tabulators, I, double spaces -#: git-rebase.sh:413 +#: git-rebase.sh:414 #, sh-format msgid "" "It seems that there is already a $state_dir_base directory, and\n" @@ -10399,69 +10892,69 @@ msgstr "" "и отново започнете пребазирането. Текущото пребазиране Ñе преуÑтановÑва, за\n" "да не загубите Ñлучайно промени." -#: git-rebase.sh:464 +#: git-rebase.sh:465 #, sh-format msgid "invalid upstream $upstream_name" msgstr "неправилна оÑнова за Ñравнение „$upstream_name“" -#: git-rebase.sh:488 +#: git-rebase.sh:489 #, sh-format msgid "$onto_name: there are more than one merge bases" msgstr "" "указателÑÑ‚ „$onto_name“ може да Ñочи към повече от една оÑнова за " "пребазирането" -#: git-rebase.sh:491 git-rebase.sh:495 +#: git-rebase.sh:492 git-rebase.sh:496 #, sh-format msgid "$onto_name: there is no merge base" msgstr "указателÑÑ‚ „$onto_name“ не Ñочи към никаква оÑнова за пребазирането" -#: git-rebase.sh:500 +#: git-rebase.sh:501 #, sh-format msgid "Does not point to a valid commit: $onto_name" msgstr "УказателÑÑ‚ „$onto_name“ не Ñочи към подаване" -#: git-rebase.sh:523 +#: git-rebase.sh:524 #, sh-format msgid "fatal: no such branch: $branch_name" msgstr "фатална грешка: не ÑъщеÑтвува клон „$branch_name“" -#: git-rebase.sh:556 +#: git-rebase.sh:557 msgid "Cannot autostash" msgstr "Ðе може да Ñе Ñкатае автоматично" -#: git-rebase.sh:561 +#: git-rebase.sh:562 #, sh-format msgid "Created autostash: $stash_abbrev" msgstr "Ðвтоматично Ñкатано: „$stash_abbrev“" -#: git-rebase.sh:565 +#: git-rebase.sh:566 msgid "Please commit or stash them." msgstr "Промените Ñ‚Ñ€Ñбва или да Ñе подадат, или да Ñе ÑкатаÑÑ‚." -#: git-rebase.sh:585 +#: git-rebase.sh:586 #, sh-format msgid "Current branch $branch_name is up to date." msgstr "ТекущиÑÑ‚ клон „$branch_name“ е напълно актуален." -#: git-rebase.sh:589 +#: git-rebase.sh:590 #, sh-format msgid "Current branch $branch_name is up to date, rebase forced." msgstr "" "ТекущиÑÑ‚ клон „$branch_name“ е напълно актуален. Пребазирането е " "принудително." -#: git-rebase.sh:600 +#: git-rebase.sh:601 #, sh-format msgid "Changes from $mb to $onto:" msgstr "Промените от „$mb“ към „$onto“:" -#: git-rebase.sh:609 +#: git-rebase.sh:610 msgid "First, rewinding head to replay your work on top of it..." msgstr "" "Първо, указателÑÑ‚ „HEAD“ започва да Ñочи към базата, върху коÑто пребазирате…" -#: git-rebase.sh:619 +#: git-rebase.sh:620 #, sh-format msgid "Fast-forwarded $branch_name to $onto_name." msgstr "Тривиално Ñливане на „$branch_name“ върху „$onto_name“." @@ -10479,24 +10972,24 @@ msgstr "Ð’Ñе още липÑва първоначално подаване" msgid "Cannot save the current index state" msgstr "СъÑтоÑнието на Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑ Ð½Ðµ може да бъде запазено" -#: git-stash.sh:123 git-stash.sh:136 +#: git-stash.sh:124 git-stash.sh:137 msgid "Cannot save the current worktree state" msgstr "СъÑтоÑнието на работното дърво не може да бъде запазено" -#: git-stash.sh:140 +#: git-stash.sh:141 msgid "No changes selected" msgstr "Ðе Ñа избрани никакви промени" # FIXME can't happen??? може, може -#: git-stash.sh:143 +#: git-stash.sh:144 msgid "Cannot remove temporary index (can't happen)" msgstr "ВременниÑÑ‚ Ð¸Ð½Ð´ÐµÐºÑ Ð½Ðµ може да бъде изтрит" -#: git-stash.sh:156 +#: git-stash.sh:157 msgid "Cannot record working tree state" msgstr "СъÑтоÑнието на работното дърво не може да бъде запазено" -#: git-stash.sh:190 +#: git-stash.sh:191 #, sh-format msgid "Cannot update $ref_stash with $w_commit" msgstr "" @@ -10512,7 +11005,7 @@ msgstr "" #. $ 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:237 +#: git-stash.sh:238 #, sh-format msgid "" "error: unknown option for 'stash save': $option\n" @@ -10521,361 +11014,406 @@ msgstr "" "грешка: командата „git stash save“ не поддържа Ð¾Ð¿Ñ†Ð¸Ñ â€ž$option“\n" " За да зададете Ñъобщение, изпълнете „git stash save -- '$option'“" -#: git-stash.sh:258 +#: git-stash.sh:259 msgid "No local changes to save" msgstr "ÐÑма никакви локални промени за Ñкатаване" -#: git-stash.sh:262 +#: git-stash.sh:263 msgid "Cannot initialize stash" msgstr "Скатаването не може да Ñтартира" -#: git-stash.sh:266 +#: git-stash.sh:267 msgid "Cannot save the current status" msgstr "Текущото ÑÑŠÑтоÑние не може да бъде запазено" -#: git-stash.sh:284 +#: git-stash.sh:285 msgid "Cannot remove worktree changes" msgstr "Промените в работното дърво не могат да бъдат занулени" -#: git-stash.sh:383 +#: git-stash.sh:384 msgid "No stash found." msgstr "Ðе е открито нищо Ñкатано." -#: git-stash.sh:390 +#: git-stash.sh:391 #, sh-format msgid "Too many revisions specified: $REV" msgstr "Указани Ñа прекалено много верÑии: „$REV“" -#: git-stash.sh:396 +#: git-stash.sh:397 #, sh-format msgid "$reference is not valid reference" msgstr "УказателÑÑ‚ „$reference“ е грешен" -#: git-stash.sh:424 +#: git-stash.sh:425 #, sh-format msgid "'$args' is not a stash-like commit" -msgstr "„$args“ не е подаване приличащо на нещо Ñкатано" +msgstr "„$args“ не е подаване, приличащо на нещо Ñкатано" -#: git-stash.sh:435 +#: git-stash.sh:436 #, sh-format msgid "'$args' is not a stash reference" msgstr "„$args“ не е указател към нещо Ñкатано" -#: git-stash.sh:443 +#: git-stash.sh:444 msgid "unable to refresh index" msgstr "индекÑÑŠÑ‚ не може да бъде обновен" -#: git-stash.sh:447 +#: git-stash.sh:448 msgid "Cannot apply a stash in the middle of a merge" msgstr "По време на Ñливане не може да приложите нещо Ñкатано" -#: git-stash.sh:455 +#: git-stash.sh:456 msgid "Conflicts in index. Try without --index." msgstr "" "Ð’ индекÑа има конфликти. Пробвайте да изпълните командата без опциÑта „--" "index“." -#: git-stash.sh:457 +#: git-stash.sh:458 msgid "Could not save index tree" msgstr "Дървото Ñочено от индекÑа не може да бъде запазено" -#: git-stash.sh:491 +#: git-stash.sh:492 msgid "Cannot unstage modified files" msgstr "Променените файлове не могат да бъдат извадени от индекÑа" -#: git-stash.sh:506 +#: git-stash.sh:507 msgid "Index was not unstashed." msgstr "ИндекÑÑŠÑ‚ не е Ñкатан." -#: git-stash.sh:529 +#: git-stash.sh:530 #, sh-format msgid "Dropped ${REV} ($s)" msgstr "Изтрито е Ñкатаното „${REV}“ ($s)" -#: git-stash.sh:530 +#: git-stash.sh:531 #, sh-format msgid "${REV}: Could not drop stash entry" msgstr "Скатаното „${REV}“ не може да бъде изтрито" -#: git-stash.sh:537 +#: git-stash.sh:538 msgid "No branch name specified" msgstr "Ðе е указано име на клон" -#: git-stash.sh:609 +#: git-stash.sh:610 msgid "(To restore them type \"git stash apply\")" msgstr "(За да ги възÑтановите, изпълнете командата „git stash apply“)" #: git-submodule.sh:95 #, sh-format msgid "cannot strip one component off url '$remoteurl'" -msgstr "" +msgstr "не може да Ñе махне компонент от адреÑа „$remoteurl“" #: git-submodule.sh:237 #, sh-format msgid "No submodule mapping found in .gitmodules for path '$sm_path'" -msgstr "" +msgstr "Във файла „.gitmodules“ липÑва Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° Ð¿ÑŠÑ‚Ñ â€ž$sm_path“" #: git-submodule.sh:287 #, sh-format msgid "Clone of '$url' into submodule path '$sm_path' failed" -msgstr "" +msgstr "ÐеуÑпешно клониране на адреÑа „$url“ в Ð¿ÑŠÑ‚Ñ â€ž$sm_path“ като подмодул" -#: git-submodule.sh:299 +#: git-submodule.sh:296 #, sh-format msgid "Gitdir '$a' is part of the submodule path '$b' or vice versa" -msgstr "" +msgstr "ДиректориÑта в Git „$a“ е чаÑÑ‚ от Ð¿ÑŠÑ‚Ñ Ð½Ð° подмодула „$b“ или обратно" -#: git-submodule.sh:409 +#: git-submodule.sh:406 msgid "Relative path can only be used from the toplevel of the working tree" msgstr "" +"ОтноÑителен път може да Ñе ползва Ñамо от оÑновната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° работното " +"дърво" -#: git-submodule.sh:419 +# FIXME - what is this regex? +#: git-submodule.sh:416 #, sh-format msgid "repo URL: '$repo' must be absolute or begin with ./|../" msgstr "" +"Ð°Ð´Ñ€ÐµÑ Ð½Ð° хранилище: „$repo“ Ñ‚Ñ€Ñбва или да е абÑолютен, или да започва Ñ â€ž./“ " +"или „../“" -#: git-submodule.sh:436 +#: git-submodule.sh:433 #, sh-format msgid "'$sm_path' already exists in the index" -msgstr "" +msgstr "„$sm_path“ вече ÑъщеÑтвува в индекÑа" -#: git-submodule.sh:440 +#: git-submodule.sh:437 #, 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 "" +"СледниÑÑ‚ път Ñе игнорира поради нÑкой от файловете „.gitignore“:\n" +"$sm_path\n" +"Използвайте опциÑта „-f“, ако за да го добавите наиÑтина." -#: git-submodule.sh:458 +#: git-submodule.sh:455 #, sh-format msgid "Adding existing repo at '$sm_path' to the index" -msgstr "" +msgstr "ДобавÑне на ÑъщеÑтвуващото хранилище в „$sm_path“ към индекÑа" -#: git-submodule.sh:460 +#: git-submodule.sh:457 #, sh-format msgid "'$sm_path' already exists and is not a valid git repo" -msgstr "" +msgstr "„$sm_path“ ÑъщеÑтвува, а не е хранилище на Git" -#: git-submodule.sh:468 +#: git-submodule.sh:465 #, sh-format msgid "A git directory for '$sm_name' is found locally with remote(s):" msgstr "" +"Открита е локална Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° Git — „$sm_name“, коÑто Ñочи към " +"отдалечените хранилища:" -#: git-submodule.sh:470 +#: git-submodule.sh:467 #, sh-format msgid "" "If you want to reuse this local git directory instead of cloning again from" msgstr "" +"Ðко иÑкате да преизползвате тази локална Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° Git вмеÑто да отново " +"да клонирате:" -#: git-submodule.sh:472 +#: git-submodule.sh:469 #, sh-format msgid "" "use the '--force' option. If the local git directory is not the correct repo" msgstr "" +"използвайте опциÑта „--force“. Ðко локалната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ðµ Ñочи към " +"правилното отдалечено хранилище" -#: git-submodule.sh:473 +#: git-submodule.sh:470 #, sh-format msgid "" "or you are unsure what this means choose another name with the '--name' " "option." msgstr "" +"или не Ñте Ñигурни какво означава вÑичко това, проÑто задайте друго име като " +"аргумент на опциÑта „--name“." -#: git-submodule.sh:475 +# FIXME активиране - какво вÑъщноÑÑ‚ Ñтава +#: git-submodule.sh:472 #, sh-format msgid "Reactivating local git directory for submodule '$sm_name'." -msgstr "" +msgstr "Ðктивиране на локалното хранилище за подмодула „$sm_name“ наново." -#: git-submodule.sh:487 +#: git-submodule.sh:484 #, sh-format msgid "Unable to checkout submodule '$sm_path'" -msgstr "" +msgstr "Подмодулът „$sm_path“ не може да бъде изтеглен" -#: git-submodule.sh:492 +#: git-submodule.sh:489 #, sh-format msgid "Failed to add submodule '$sm_path'" -msgstr "" +msgstr "ÐеуÑпешно добавÑне на подмодула „$sm_path“" -#: git-submodule.sh:501 +#: git-submodule.sh:498 #, sh-format msgid "Failed to register submodule '$sm_path'" -msgstr "" +msgstr "ÐеуÑпешно региÑтриране на подмодула „$sm_path“" -#: git-submodule.sh:545 +#: git-submodule.sh:542 #, sh-format msgid "Entering '$prefix$displaypath'" -msgstr "" +msgstr "Влизане в „$prefix$displaypath“" -#: git-submodule.sh:565 +#: git-submodule.sh:562 #, sh-format msgid "Stopping at '$prefix$displaypath'; script returned non-zero status." msgstr "" +"Спиране при „$prefix$displaypath“ — изходниÑÑ‚ код от Ñкрипта бе различен от " +"0." -#: git-submodule.sh:611 +#: git-submodule.sh:608 #, sh-format msgid "No url found for submodule path '$displaypath' in .gitmodules" msgstr "" +"Във файла „.gitmodules“ не е открит Ð°Ð´Ñ€ÐµÑ Ð·Ð° Ð¿ÑŠÑ‚Ñ ÐºÑŠÐ¼ подмодул „$displaypath“" -#: git-submodule.sh:620 +#: git-submodule.sh:617 #, sh-format msgid "Failed to register url for submodule path '$displaypath'" -msgstr "" +msgstr "ÐеуÑпешно региÑтриране на Ð°Ð´Ñ€ÐµÑ Ð·Ð° Ð¿ÑŠÑ‚Ñ ÐºÑŠÐ¼ подмодул „$displaypath“" -#: git-submodule.sh:622 +#: git-submodule.sh:619 #, sh-format msgid "Submodule '$name' ($url) registered for path '$displaypath'" msgstr "" +"РегиÑтриран е подмодул „$name“, Ñочещ към Ð°Ð´Ñ€ÐµÑ â€ž$url“, за Ð¿ÑŠÑ‚Ñ ÐºÑŠÐ¼ подмодул " +"„$displaypath“" -#: git-submodule.sh:639 +#: git-submodule.sh:636 #, sh-format msgid "Failed to register update mode for submodule path '$displaypath'" msgstr "" +"ÐеуÑпешно региÑтриране на режима на обновÑване за Ð¿ÑŠÑ‚Ñ ÐºÑŠÐ¼ подмодул " +"„$displaypath“" -#: git-submodule.sh:677 +#: git-submodule.sh:674 #, sh-format msgid "Use '.' if you really want to deinitialize all submodules" -msgstr "" +msgstr "Използвайте „.“, за да премахнете вÑички подмодули" -#: git-submodule.sh:694 +#: git-submodule.sh:691 #, sh-format msgid "Submodule work tree '$displaypath' contains a .git directory" msgstr "" +"ПътÑÑ‚ към подмодул „$displaypath“ в работното дърво Ñъдържа Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ â€ž.git“" -#: git-submodule.sh:695 +#: git-submodule.sh:692 #, sh-format msgid "" "(use 'rm -rf' if you really want to remove it including all of its history)" msgstr "" +"(използвайте командата „rm -rf“, за да го изтриете заедно Ñ Ñ†Ñлата му " +"иÑториÑ)" -#: git-submodule.sh:701 +#: git-submodule.sh:698 #, sh-format msgid "" "Submodule work tree '$displaypath' contains local modifications; use '-f' to " "discard them" msgstr "" +"ПътÑÑ‚ към подмодул „$displaypath“ в работното дърво Ñъдържа локални промени. " +"Можете да ги пренебрегнете и отмените Ñ Ð¾Ð¿Ñ†Ð¸Ñта „-f“" -#: git-submodule.sh:704 +#: git-submodule.sh:701 #, sh-format msgid "Cleared directory '$displaypath'" -msgstr "" +msgstr "ДиректориÑта „$displaypath“ е изчиÑтена" -#: git-submodule.sh:705 +#: git-submodule.sh:702 #, sh-format msgid "Could not remove submodule work tree '$displaypath'" msgstr "" +"ДиректориÑта към работното дърво на подмодула „$displaypath“ не може да бъде " +"изтрита" -#: git-submodule.sh:708 +#: git-submodule.sh:705 #, sh-format msgid "Could not create empty submodule directory '$displaypath'" msgstr "" +"Празната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° подмодула „$displaypath“ не може да бъде Ñъздадена" -#: git-submodule.sh:717 +#: git-submodule.sh:714 #, sh-format msgid "Submodule '$name' ($url) unregistered for path '$displaypath'" msgstr "" +"Премахната е региÑтрациÑта на подмодул „$name“, Ñочещ към Ð°Ð´Ñ€ÐµÑ â€ž$url“, за " +"Ð¿ÑŠÑ‚Ñ â€ž$displaypath“" -#: git-submodule.sh:833 +#: git-submodule.sh:830 #, sh-format msgid "" "Submodule path '$displaypath' not initialized\n" "Maybe you want to use 'update --init'?" msgstr "" +"ПътÑÑ‚ към подмодул „$displaypath“ не е инициализиран.\n" +"Пробвайте Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ‚Ð° „update --init“." -#: git-submodule.sh:846 +#: git-submodule.sh:843 #, sh-format msgid "Unable to find current revision in submodule path '$displaypath'" -msgstr "" +msgstr "Текущата верÑÐ¸Ñ Ð·Ð° подмодула в „$displaypath“ липÑва" -#: git-submodule.sh:855 +#: git-submodule.sh:852 #, sh-format msgid "Unable to fetch in submodule path '$sm_path'" -msgstr "" +msgstr "ÐеуÑпешно доÑтавÑне в Ð¿ÑŠÑ‚Ñ ÐºÑŠÐ¼ подмодул „$sm_path“" -#: git-submodule.sh:879 +#: git-submodule.sh:876 #, sh-format msgid "Unable to fetch in submodule path '$displaypath'" -msgstr "" +msgstr "ÐеуÑпешно доÑтавÑне в Ð¿ÑŠÑ‚Ñ ÐºÑŠÐ¼ подмодул „$displaypath“" -#: git-submodule.sh:893 +#: git-submodule.sh:890 #, sh-format msgid "Unable to checkout '$sha1' in submodule path '$displaypath'" msgstr "" +"ÐеуÑпешно изтеглÑне на верÑÐ¸Ñ â€ž$sha1“ в Ð¿ÑŠÑ‚Ñ ÐºÑŠÐ¼ подмодул „$displaypath“'" -#: git-submodule.sh:894 +#: git-submodule.sh:891 #, sh-format msgid "Submodule path '$displaypath': checked out '$sha1'" -msgstr "" +msgstr "Път към подмодул „$displaypath“: изтеглена е верÑÐ¸Ñ â€ž$sha1“" -#: git-submodule.sh:898 +#: git-submodule.sh:895 #, sh-format msgid "Unable to rebase '$sha1' in submodule path '$displaypath'" msgstr "" +"ÐеуÑпешно пребазиране на верÑÐ¸Ñ â€ž$sha1“ в Ð¿ÑŠÑ‚Ñ ÐºÑŠÐ¼ подмодул „$displaypath“" -#: git-submodule.sh:899 +#: git-submodule.sh:896 #, sh-format msgid "Submodule path '$displaypath': rebased into '$sha1'" -msgstr "" +msgstr "Път към подмодул „$displaypath“: пребазиране върху верÑÐ¸Ñ â€ž$sha1“" -#: git-submodule.sh:904 +#: git-submodule.sh:901 #, sh-format msgid "Unable to merge '$sha1' in submodule path '$displaypath'" -msgstr "" +msgstr "ÐеуÑпешно Ñливане на верÑÐ¸Ñ â€ž$sha1“ в Ð¿ÑŠÑ‚Ñ ÐºÑŠÐ¼ подмодул „$displaypath“" -#: git-submodule.sh:905 +#: git-submodule.sh:902 #, sh-format msgid "Submodule path '$displaypath': merged in '$sha1'" -msgstr "" +msgstr "Път към подмодул „$displaypath“: Ñливане Ñ Ð²ÐµÑ€ÑÐ¸Ñ â€ž$sha1“" -#: git-submodule.sh:910 +# FIXME spaces +#: git-submodule.sh:907 #, sh-format msgid "" "Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'" msgstr "" +"ÐеуÑпешно изпълнение на командата „$command $sha1“ в Ð¿ÑŠÑ‚Ñ ÐºÑŠÐ¼ подмодул " +"„$prefix$sm_path“" -#: git-submodule.sh:911 +#: git-submodule.sh:908 #, sh-format msgid "Submodule path '$prefix$sm_path': '$command $sha1'" -msgstr "" +msgstr "Път към подмодул „$prefix$sm_path“: „$command $sha1“" -#: git-submodule.sh:941 +#: git-submodule.sh:938 #, sh-format msgid "Failed to recurse into submodule path '$displaypath'" msgstr "" +"ÐеуÑпешна обработка на поддиректориите в Ð¿ÑŠÑ‚Ñ ÐºÑŠÐ¼ подмодул „$displaypath“" -#: git-submodule.sh:1049 +# FIXME message +#: git-submodule.sh:1046 msgid "The --cached option cannot be used with the --files option" -msgstr "" +msgstr "Опциите „--cached“ и „--files“ Ñа неÑъвмеÑтими" -#: git-submodule.sh:1097 +#: git-submodule.sh:1098 #, sh-format msgid "unexpected mode $mod_dst" -msgstr "" +msgstr "неочакван режим „$mod_dst“" -#: git-submodule.sh:1117 +#: git-submodule.sh:1118 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_src" -msgstr "" +msgstr " ПРЕДУПРЕЖДЕÐИЕ: „$display_name“ не Ñъдържа подаването „$sha1_src“" -#: git-submodule.sh:1120 +#: git-submodule.sh:1121 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_dst" -msgstr "" +msgstr " ПРЕДУПРЕЖДЕÐИЕ: „$display_name“ не Ñъдържа подаването „$sha1_dst“" -#: git-submodule.sh:1123 +#: git-submodule.sh:1124 #, 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:1148 +#: git-submodule.sh:1149 msgid "blob" -msgstr "" +msgstr "обект BLOB" -#: git-submodule.sh:1262 +#: git-submodule.sh:1267 #, sh-format msgid "Failed to recurse into submodule path '$sm_path'" -msgstr "" +msgstr "ÐеуÑпешна обработка на поддиректориите в Ð¿ÑŠÑ‚Ñ ÐºÑŠÐ¼ подмодул „$sm_path“" -#: git-submodule.sh:1326 +#: git-submodule.sh:1331 #, sh-format msgid "Synchronizing submodule url for '$displaypath'" -msgstr "" +msgstr "Синхронизиране на адреÑа за Ð¿ÑŠÑ‚Ñ ÐºÑŠÐ¼ подмодул „$displaypath“" diff --git a/po/ca.po b/po/ca.po new file mode 100644 index 0000000000..ee77dca7b9 --- /dev/null +++ b/po/ca.po @@ -0,0 +1,10951 @@ +# Catalan translations for Git. +# Copyright (C) 2014 Alex Henrie <alexhenrie24@gmail.com> +# This file is distributed under the same license as the Git package. +# Alex Henrie <alexhenrie24@gmail.com>, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: Git\n" +"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" +"POT-Creation-Date: 2014-08-04 14:48+0800\n" +"PO-Revision-Date: 2014-08-22 20:10-0700\n" +"Last-Translator: Alex Henrie <alexhenrie24@gmail.com>\n" +"Language-Team: Catalan\n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: advice.c:55 +#, c-format +msgid "hint: %.*s\n" +msgstr "indirecta: %.*s\n" + +#: 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, or use\n" +"'git commit -a'." +msgstr "" +"Arregleu-los en l'arbre de treball, i després utilitzeu\n" +"'git add/rm <fitxer>' segons sigui apropiat per marcar la\n" +"resolució i feu una comissió, o utilitzeu 'git commit -a'." + +#: archive.c:10 +msgid "git archive [options] <tree-ish> [<path>...]" +msgstr "git archive [opcions] <arbre> [<ruta>...]" + +#: archive.c:11 +msgid "git archive --list" +msgstr "git archive --list" + +#: archive.c:12 +msgid "" +"git archive --remote <repo> [--exec <cmd>] [options] <tree-ish> [<path>...]" +msgstr "" +"git archive --remote <repositori> [--exec <ordre>] [opcions] <arbre> " +"[<ruta>...]" + +#: archive.c:13 +msgid "git archive --remote <repo> [--exec <cmd>] --list" +msgstr "git archive --remote <repositori> [--exec <ordre>] --list" + +#: archive.c:243 builtin/add.c:136 builtin/add.c:427 builtin/rm.c:328 +#, c-format +msgid "pathspec '%s' did not match any files" +msgstr "L'especificació de ruta '%s' no ha concordat amb cap fitxer" + +#: archive.c:328 +msgid "fmt" +msgstr "format" + +#: archive.c:328 +msgid "archive format" +msgstr "format d'arxiu" + +#: archive.c:329 builtin/log.c:1201 +msgid "prefix" +msgstr "prefix" + +#: archive.c:330 +msgid "prepend prefix to each pathname in the archive" +msgstr "anteposa el prefix a cada nom de ruta en l'arxiu" + +#: archive.c:331 builtin/archive.c:88 builtin/blame.c:2517 +#: builtin/blame.c:2518 builtin/config.c:57 builtin/fast-export.c:709 +#: builtin/fast-export.c:711 builtin/grep.c:712 builtin/hash-object.c:77 +#: builtin/ls-files.c:489 builtin/ls-files.c:492 builtin/notes.c:412 +#: builtin/notes.c:569 builtin/read-tree.c:108 parse-options.h:151 +msgid "file" +msgstr "fitxer" + +#: archive.c:332 builtin/archive.c:89 +msgid "write the archive to this file" +msgstr "escriu l'arxiu a aquest fitxer" + +#: archive.c:334 +msgid "read .gitattributes in working directory" +msgstr "llegeix .gitattributes en el directori de treball" + +#: archive.c:335 +msgid "report archived files on stderr" +msgstr "informa de fitxers arxivats en stderr" + +#: archive.c:336 +msgid "store only" +msgstr "només emmagatzemar" + +#: archive.c:337 +msgid "compress faster" +msgstr "comprimeix més rà pid" + +#: archive.c:345 +msgid "compress better" +msgstr "comprimeix millor" + +#: archive.c:348 +msgid "list supported archive formats" +msgstr "allista els formats d'arxiu suportats" + +#: archive.c:350 builtin/archive.c:90 builtin/clone.c:84 +msgid "repo" +msgstr "repositori" + +#: archive.c:351 builtin/archive.c:91 +msgid "retrieve the archive from remote repository <repo>" +msgstr "recupera l'arxiu del repositori remot <repositori>" + +#: archive.c:352 builtin/archive.c:92 builtin/notes.c:491 +msgid "command" +msgstr "ordre" + +#: archive.c:353 builtin/archive.c:93 +msgid "path to the remote git-upload-archive command" +msgstr "ruta a l'ordre git-upload-archive remot" + +#: attr.c:259 +msgid "" +"Negative patterns are ignored in git attributes\n" +"Use '\\!' for literal leading exclamation." +msgstr "" +"Els patrons negatius s'ignoren en els atributes de git\n" +"Utilitzeu '\\!' per exclamació capdavantera literal." + +#: branch.c:60 +#, c-format +msgid "Not setting branch %s as its own upstream." +msgstr "No establint la rama %s com la seva pròpia font." + +#: branch.c:83 +#, c-format +msgid "Branch %s set up to track remote branch %s from %s by rebasing." +msgstr "" +"La rama %s està configurada per seguir la rama remota %s de %s per rebasar." + +#: branch.c:84 +#, c-format +msgid "Branch %s set up to track remote branch %s from %s." +msgstr "La rama %s està configurada per seguir la rama remota %s de %s." + +#: branch.c:88 +#, c-format +msgid "Branch %s set up to track local branch %s by rebasing." +msgstr "La rama %s està configurada per seguir la rama local %s per rebasar." + +#: branch.c:89 +#, c-format +msgid "Branch %s set up to track local branch %s." +msgstr "La rama %s està configurada per seguir la rama local %s." + +#: branch.c:94 +#, c-format +msgid "Branch %s set up to track remote ref %s by rebasing." +msgstr "" +"La rama %s està configurada per seguir la referència remota %s per rebasar." + +#: branch.c:95 +#, c-format +msgid "Branch %s set up to track remote ref %s." +msgstr "La rama %s està configurada per seguir la referència remota %s." + +#: branch.c:99 +#, c-format +msgid "Branch %s set up to track local ref %s by rebasing." +msgstr "" +"La rama %s està configurada per seguir la referència local %s per rebasar." + +#: branch.c:100 +#, c-format +msgid "Branch %s set up to track local ref %s." +msgstr "La rama %s està configurada per seguir la referència local %s." + +#: branch.c:133 +#, c-format +msgid "Not tracking: ambiguous information for ref %s" +msgstr "No seguint: informació ambigua per a la referència %s" + +#: branch.c:178 +#, c-format +msgid "'%s' is not a valid branch name." +msgstr "'%s' no és un nom de rama và lid." + +#: branch.c:183 +#, c-format +msgid "A branch named '%s' already exists." +msgstr "Una rama amb nom '%s' ja existeix." + +#: branch.c:191 +msgid "Cannot force update the current branch." +msgstr "No es pot actualitzar la rama actual a la força." + +#: branch.c:211 +#, c-format +msgid "Cannot setup tracking information; starting point '%s' is not a branch." +msgstr "" +"No es pot configurar la informació de seguimiento; el punt inicial '%s' no " +"és una rama." + +#: branch.c:213 +#, c-format +msgid "the requested upstream branch '%s' does not exist" +msgstr "la rama font demanada '%s' no existeix" + +#: branch.c:215 +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" +"Si planeu basar el teu treball en una rama font que ja\n" +"existeix al remot, pot que necessiteu executar\n" +"\"git fetch\" per obtenir-la.\n" +"\n" +"Si planeu pujar una rama local nova que seguirà la seva\n" +"contrapart remota, pot que voleu utilitzar\n" +"\"git push -u\" per establir la configuració font mentre\n" +"pugeu." + +#: branch.c:260 +#, c-format +msgid "Not a valid object name: '%s'." +msgstr "No és un nom d'objecte và lid: '%s'." + +#: branch.c:280 +#, c-format +msgid "Ambiguous object name: '%s'." +msgstr "Nom d'objecte ambigu: '%s'." + +#: branch.c:285 +#, c-format +msgid "Not a valid branch point: '%s'." +msgstr "No és un punt de ramificació và lid: '%s'." + +#: branch.c:291 +msgid "Failed to lock ref for update" +msgstr "S'ha fallat al bloquejar la referència per actualització" + +#: branch.c:309 +msgid "Failed to write ref" +msgstr "S'ha fallat al escriure la referència" + +#: bundle.c:33 +#, c-format +msgid "'%s' does not look like a v2 bundle file" +msgstr "'%s' no sembla a un fitxer d'embolic v2" + +#: bundle.c:60 +#, c-format +msgid "unrecognized header: %s%s (%d)" +msgstr "capçalera no reconeguda: %s%s (%d)" + +#: bundle.c:86 builtin/commit.c:755 +#, c-format +msgid "could not open '%s'" +msgstr "no s'ha pogut obrir '%s'" + +#: bundle.c:138 +msgid "Repository lacks these prerequisite commits:" +msgstr "Al repositori manquen aquestes comissions prerequisits:" + +#: bundle.c:162 sequencer.c:630 sequencer.c:1085 builtin/log.c:330 +#: builtin/log.c:821 builtin/log.c:1428 builtin/log.c:1665 builtin/merge.c:357 +#: builtin/shortlog.c:158 +msgid "revision walk setup failed" +msgstr "la configuració del passeig per revisions ha fallat" + +#: bundle.c:184 +#, c-format +msgid "The bundle contains this ref:" +msgid_plural "The bundle contains these %d refs:" +msgstr[0] "L'embolic conté aquesta referència:" +msgstr[1] "L'embolic conté aquestes %d referències:" + +#: bundle.c:191 +msgid "The bundle records a complete history." +msgstr "L'embolic registra una història completa." + +#: bundle.c:193 +#, c-format +msgid "The bundle requires this ref:" +msgid_plural "The bundle requires these %d refs:" +msgstr[0] "L'embolic requereix aquesta referència:" +msgstr[1] "L'embolic requereix aquestes %d referències:" + +#: bundle.c:289 +msgid "rev-list died" +msgstr "El rev-list s'ha mort" + +#: bundle.c:295 builtin/log.c:1339 builtin/shortlog.c:261 +#, c-format +msgid "unrecognized argument: %s" +msgstr "parà metre no reconegut: %s" + +#: bundle.c:330 +#, c-format +msgid "ref '%s' is excluded by the rev-list options" +msgstr "la referència '%s' s'exclou per les opcions de rev-list" + +#: bundle.c:375 +msgid "Refusing to create empty bundle." +msgstr "Refusant crear un embolic buit." + +#: bundle.c:390 +msgid "Could not spawn pack-objects" +msgstr "No s'ha pogut executar el pack-objects" + +#: bundle.c:408 +msgid "pack-objects died" +msgstr "El pack-objects s'ha mort" + +#: bundle.c:411 +#, c-format +msgid "cannot create '%s'" +msgstr "no es pot crear '%s'" + +#: bundle.c:433 +msgid "index-pack died" +msgstr "L'index-pack s'ha mort" + +#: commit.c:40 +#, c-format +msgid "could not parse %s" +msgstr "no s'ha pogut analitzar %s" + +#: commit.c:42 +#, c-format +msgid "%s %s is not a commit!" +msgstr "%s %s no és una comissió!" + +#: compat/obstack.c:406 compat/obstack.c:408 +msgid "memory exhausted" +msgstr "memòria esgotada" + +#: connected.c:70 +msgid "Could not run 'git rev-list'" +msgstr "No s'ha pogut executar 'git rev-list'" + +#: connected.c:90 +#, c-format +msgid "failed write to rev-list: %s" +msgstr "escriptura fallada al rev-list: %s" + +#: connected.c:98 +#, c-format +msgid "failed to close rev-list's stdin: %s" +msgstr "s'ha fallat al tancar el stdin del rev-list: %s" + +#: date.c:95 +msgid "in the future" +msgstr "en el futur" + +#: date.c:101 +#, c-format +msgid "%lu second ago" +msgid_plural "%lu seconds ago" +msgstr[0] "fa %lu segon" +msgstr[1] "fa %lu segons" + +#: date.c:108 +#, c-format +msgid "%lu minute ago" +msgid_plural "%lu minutes ago" +msgstr[0] "fa %lu minut" +msgstr[1] "fa %lu minuts" + +#: date.c:115 +#, c-format +msgid "%lu hour ago" +msgid_plural "%lu hours ago" +msgstr[0] "fa %lu hora" +msgstr[1] "fa %lu hores" + +#: date.c:122 +#, c-format +msgid "%lu day ago" +msgid_plural "%lu days ago" +msgstr[0] "fa %lu dia" +msgstr[1] "fa %lu dies" + +#: date.c:128 +#, c-format +msgid "%lu week ago" +msgid_plural "%lu weeks ago" +msgstr[0] "fa %lu setmana" +msgstr[1] "fa %lu setmanes" + +#: date.c:135 +#, c-format +msgid "%lu month ago" +msgid_plural "%lu months ago" +msgstr[0] "fa %lu mes" +msgstr[1] "fa %lu mesos" + +#: date.c:146 +#, c-format +msgid "%lu year" +msgid_plural "%lu years" +msgstr[0] "%lu any" +msgstr[1] "%lu anys" + +#. TRANSLATORS: "%s" is "<n> years" +#: date.c:149 +#, c-format +msgid "%s, %lu month ago" +msgid_plural "%s, %lu months ago" +msgstr[0] "%s, fa %lu mes" +msgstr[1] "%s, fa %lu mesos" + +#: date.c:154 date.c:159 +#, c-format +msgid "%lu year ago" +msgid_plural "%lu years ago" +msgstr[0] "fa %lu any" +msgstr[1] "fa %lu anys" + +#: diffcore-order.c:24 +#, c-format +msgid "failed to read orderfile '%s'" +msgstr "s'ha fallat al llegir el fitxer d'ordres '%s'" + +#: diffcore-rename.c:514 +msgid "Performing inexact rename detection" +msgstr "Realitzant detecció inexacte de canvi de nom" + +#: diff.c:114 +#, c-format +msgid " Failed to parse dirstat cut-off percentage '%s'\n" +msgstr " S'ha fallat al analitzar el percentatge limitant de dirstat '%s'\n" + +#: diff.c:119 +#, c-format +msgid " Unknown dirstat parameter '%s'\n" +msgstr " Parà metre de dirstat desconegut '%s'\n" + +#: diff.c:214 +#, c-format +msgid "Unknown value for 'diff.submodule' config variable: '%s'" +msgstr "" +"Valor desconegut del variable de configuració de 'diff.submodule': '%s'" + +#: diff.c:267 +#, c-format +msgid "" +"Found errors in 'diff.dirstat' config variable:\n" +"%s" +msgstr "" +"Errors trobat en el variable de configuració 'diff.dirstat':\n" +"%s" + +#: diff.c:2934 +#, c-format +msgid "external diff died, stopping at %s" +msgstr "El diff external s'ha mort, aturant a %s" + +#: diff.c:3329 +msgid "--follow requires exactly one pathspec" +msgstr "--follow requereix exactament una especificació de ruta" + +#: diff.c:3492 +#, c-format +msgid "" +"Failed to parse --dirstat/-X option parameter:\n" +"%s" +msgstr "" +"S'ha fallat al analitzar el parà metre d'opció de --dirstat/-X:\n" +"%s" + +#: diff.c:3506 +#, c-format +msgid "Failed to parse --submodule option parameter: '%s'" +msgstr "S'ha fallat al analitzar el parà metre d'opció de --submodule: %s" + +#: gpg-interface.c:73 gpg-interface.c:145 +msgid "could not run gpg." +msgstr "no s'ha pogut executar el gpg." + +#: gpg-interface.c:85 +msgid "gpg did not accept the data" +msgstr "El gpg no ha acceptat les dades" + +#: gpg-interface.c:96 +msgid "gpg failed to sign the data" +msgstr "gpg ha fallat al firmar les dades" + +#: gpg-interface.c:129 +#, c-format +msgid "could not create temporary file '%s': %s" +msgstr "no s'ha pogut crear el fitxer temporal '%s': %s" + +#: gpg-interface.c:132 +#, c-format +msgid "failed writing detached signature to '%s': %s" +msgstr "s'ha fallat al escriure la firma separada a '%s': %s" + +#: grep.c:1703 +#, c-format +msgid "'%s': unable to read %s" +msgstr "'%s': incapaç de llegir %s" + +#: grep.c:1720 +#, c-format +msgid "'%s': %s" +msgstr "'%s': %s" + +#: grep.c:1731 +#, c-format +msgid "'%s': short read %s" +msgstr "'%s': lectura corta %s" + +#: help.c:207 +#, c-format +msgid "available git commands in '%s'" +msgstr "ordres de git disponibles en '%s'" + +#: help.c:214 +msgid "git commands available from elsewhere on your $PATH" +msgstr "ordres de git disponibles d'altres llocs en la vostra $PATH" + +#: help.c:230 +msgid "The most commonly used git commands are:" +msgstr "Els ordres de git més freqüentment utilitzats són:" + +#: help.c:289 +#, 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' sembla un ordre git, però no hem pogut\n" +"executar-lo. Pot ser que git-%s està estropejat?" + +#: help.c:346 +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:368 +#, 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 "" +"AVÃS: Heu invocat un ordre de Git amb nom '%s', el qual no existeix.\n" +"Continuant baix l'assumpció que volÃeu dir '%s'" + +#: help.c:373 +#, c-format +msgid "in %0.1f seconds automatically..." +msgstr "en %0.1f segons automà ticament..." + +#: help.c:380 +#, c-format +msgid "git: '%s' is not a git command. See 'git --help'." +msgstr "git: '%s' no és un ordre de git. Veu 'git --help'." + +#: help.c:384 help.c:444 +msgid "" +"\n" +"Did you mean this?" +msgid_plural "" +"\n" +"Did you mean one of these?" +msgstr[0] "" +"\n" +"VolÃeu dir això?" +msgstr[1] "" +"\n" +"VolÃeu dir un d'aquests?" + +#: help.c:440 +#, c-format +msgid "%s: %s - %s" +msgstr "%s: %s - %s" + +#: merge.c:40 +msgid "failed to read the cache" +msgstr "s'ha fallat al llegir la memòria cau" + +#: merge.c:93 builtin/checkout.c:356 builtin/checkout.c:556 +#: builtin/clone.c:661 +msgid "unable to write new index file" +msgstr "incapaç d'escriure un nou fitxer d'Ãndex" + +#: merge-recursive.c:190 +#, c-format +msgid "(bad commit)\n" +msgstr "(comissió dolenta)\n" + +#: merge-recursive.c:210 +#, c-format +msgid "addinfo_cache failed for path '%s'" +msgstr "addinfo_cache ha fallat per a la ruta '%s'" + +#: merge-recursive.c:271 +msgid "error building trees" +msgstr "error al construir arbres" + +#: merge-recursive.c:692 +#, c-format +msgid "failed to create path '%s'%s" +msgstr "s'ha fallat al crear la ruta '%s' %s" + +#: merge-recursive.c:703 +#, c-format +msgid "Removing %s to make room for subdirectory\n" +msgstr "Traient %s per fer espai per al subdirectori\n" + +#: merge-recursive.c:717 merge-recursive.c:738 +msgid ": perhaps a D/F conflict?" +msgstr ": potser un conflicte D/F?" + +#: merge-recursive.c:728 +#, c-format +msgid "refusing to lose untracked file at '%s'" +msgstr "refusant perdre el fitxer seguit a '%s'" + +#: merge-recursive.c:768 +#, c-format +msgid "cannot read object %s '%s'" +msgstr "no es pot llegir l'objecte %s '%s'" + +#: merge-recursive.c:770 +#, c-format +msgid "blob expected for %s '%s'" +msgstr "blob esperat per a %s '%s'" + +#: merge-recursive.c:793 builtin/clone.c:317 +#, c-format +msgid "failed to open '%s'" +msgstr "s'ha fallat al obrir '%s'" + +#: merge-recursive.c:801 +#, c-format +msgid "failed to symlink '%s'" +msgstr "s'ha fallat al fer l'enllaç simbòlic '%s'" + +#: merge-recursive.c:804 +#, c-format +msgid "do not know what to do with %06o %s '%s'" +msgstr "no es sap què fer amb %06o %s '%s'" + +#: merge-recursive.c:942 +msgid "Failed to execute internal merge" +msgstr "S'ha fallat al executar la fusió interna" + +#: merge-recursive.c:946 +#, c-format +msgid "Unable to add %s to database" +msgstr "Incapaç d'afegir %s al base de dades" + +#: merge-recursive.c:962 +msgid "unsupported object type in the tree" +msgstr "tipus d'objecte no suportat en l'arbre" + +#: merge-recursive.c:1037 merge-recursive.c:1051 +#, c-format +msgid "" +"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left " +"in tree." +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:1043 merge-recursive.c:1056 +#, c-format +msgid "" +"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left " +"in tree at %s." +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:1097 +msgid "rename" +msgstr "canvia de nom" + +#: merge-recursive.c:1097 +msgid "renamed" +msgstr "canviat de nom" + +#: merge-recursive.c:1153 +#, c-format +msgid "%s is a directory in %s adding as %s instead" +msgstr "%s és un directori en %s; afegint com %s en lloc" + +#: merge-recursive.c:1175 +#, c-format +msgid "" +"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s" +"\"->\"%s\" in \"%s\"%s" +msgstr "" +"CONFLICTE (canvi de nom/canvi de nom): Canvi de nom \"%s\"->\"%s\" en la " +"rama \"%s\" canvi de nom \"%s\"->\"%s\" en \"%s\"%s" + +#: merge-recursive.c:1180 +msgid " (left unresolved)" +msgstr " (deixat sense resolució)" + +#: merge-recursive.c:1234 +#, 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:1264 +#, 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" + +#: merge-recursive.c:1463 +#, c-format +msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s" +msgstr "" +"CONFLICTE (supressió/afegiment): Canvi de nom %s->%s en %s. %s afegit en %s" + +#: merge-recursive.c:1473 +#, c-format +msgid "Adding merged %s" +msgstr "Afegint %s fusionat" + +#: merge-recursive.c:1478 merge-recursive.c:1676 +#, c-format +msgid "Adding as %s instead" +msgstr "Afegint com %s en lloc" + +#: merge-recursive.c:1529 +#, c-format +msgid "cannot read object %s" +msgstr "no es pot llegir l'objecte %s" + +#: merge-recursive.c:1532 +#, c-format +msgid "object %s is not a blob" +msgstr "L'objecte %s no és un blob" + +#: merge-recursive.c:1580 +msgid "modify" +msgstr "modifica" + +#: merge-recursive.c:1580 +msgid "modified" +msgstr "modificat" + +#: merge-recursive.c:1590 +msgid "content" +msgstr "contingut" + +#: merge-recursive.c:1597 +msgid "add/add" +msgstr "afegeix/afegeix" + +#: merge-recursive.c:1631 +#, c-format +msgid "Skipped %s (merged same as existing)" +msgstr "%s saltat (el fusionat és igual a l'existent)" + +#: merge-recursive.c:1645 +#, c-format +msgid "Auto-merging %s" +msgstr "Autofusionant %s" + +#: merge-recursive.c:1649 git-submodule.sh:1150 +msgid "submodule" +msgstr "submòdul" + +#: merge-recursive.c:1650 +#, c-format +msgid "CONFLICT (%s): Merge conflict in %s" +msgstr "CONFLICTE (%s): Conflicte de fusió en %s" + +#: merge-recursive.c:1740 +#, c-format +msgid "Removing %s" +msgstr "Traient %s" + +#: merge-recursive.c:1765 +msgid "file/directory" +msgstr "fitxer/directori" + +#: merge-recursive.c:1771 +msgid "directory/file" +msgstr "directori/fitxer" + +#: merge-recursive.c:1776 +#, 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 %s" + +#: merge-recursive.c:1786 +#, c-format +msgid "Adding %s" +msgstr "Afegint %s" + +#: merge-recursive.c:1803 +msgid "Fatal merge failure, shouldn't happen." +msgstr "Fallat de fusió fatal; això no ha de passar." + +#: merge-recursive.c:1822 +msgid "Already up-to-date!" +msgstr "Ja actualitzat!" + +#: merge-recursive.c:1831 +#, c-format +msgid "merging of trees %s and %s failed" +msgstr "la fusió dels arbres %s i %s ha fallat" + +#: merge-recursive.c:1861 +#, c-format +msgid "Unprocessed path??? %s" +msgstr "Ruta no processat??? %s" + +#: merge-recursive.c:1906 +msgid "Merging:" +msgstr "Fusionant:" + +#: merge-recursive.c:1919 +#, c-format +msgid "found %u common ancestor:" +msgid_plural "found %u common ancestors:" +msgstr[0] "%u avantpassat trobat:" +msgstr[1] "%u avantpassats trobats:" + +#: merge-recursive.c:1956 +msgid "merge returned no commit" +msgstr "la fusió no ha retornat cap comissió" + +#: merge-recursive.c:2013 +#, c-format +msgid "Could not parse object '%s'" +msgstr "No s'ha pogut analitzar l'objecte '%s'" + +#: merge-recursive.c:2024 builtin/merge.c:666 +msgid "Unable to write index." +msgstr "Incapaç d'escriure l'Ãndex." + +#: notes-utils.c:41 +msgid "Cannot commit uninitialized/unreferenced notes tree" +msgstr "No es pot cometre un arbre de notes no inicialitzat/no referenciat" + +#: notes-utils.c:83 +#, c-format +msgid "Bad notes.rewriteMode value: '%s'" +msgstr "Valor de notes.rewriteMode dolent: '%s'" + +#: notes-utils.c:93 +#, c-format +msgid "Refusing to rewrite notes in %s (outside of refs/notes/)" +msgstr "Refusant reescriure les notes en %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:120 +#, c-format +msgid "Bad %s value: '%s'" +msgstr "Valor dolent de %s: '%s'" + +#: object.c:234 +#, c-format +msgid "unable to parse object: %s" +msgstr "incapaç d'analitzar l'objecte: %s" + +#: parse-options.c:534 +msgid "..." +msgstr "..." + +#: parse-options.c:552 +#, c-format +msgid "usage: %s" +msgstr "ús: %s" + +#. TRANSLATORS: the colon here should align with the +#. one in "usage: %s" translation +#: parse-options.c:556 +#, c-format +msgid " or: %s" +msgstr " o: %s" + +#: parse-options.c:559 +#, c-format +msgid " %s" +msgstr " %s" + +#: parse-options.c:593 +msgid "-NUM" +msgstr "-NUM" + +#: pathspec.c:133 +msgid "global 'glob' and 'noglob' pathspec settings are incompatible" +msgstr "" +"els ajusts d'especificació de ruta 'glob' i 'noglob' globals són " +"incompatibles" + +#: pathspec.c:143 +msgid "" +"global 'literal' pathspec setting is incompatible with all other global " +"pathspec settings" +msgstr "" +"l'ajust d'especificació de ruta 'literal' global és incompatible amb tots " +"els altres ajusts d'especificació de ruta globals" + +#: pathspec.c:177 +msgid "invalid parameter for pathspec magic 'prefix'" +msgstr "parà metre invà lid per a la mà gica d'especificació de ruta 'prefix'" + +#: pathspec.c:183 +#, c-format +msgid "Invalid pathspec magic '%.*s' in '%s'" +msgstr "Mà gica d'especificació de ruta invà lida '%.*s' en '%s'" + +#: pathspec.c:187 +#, c-format +msgid "Missing ')' at the end of pathspec magic in '%s'" +msgstr "')' mancant al final de la mà gica d'especificació de ruta en '%s'" + +#: pathspec.c:205 +#, c-format +msgid "Unimplemented pathspec magic '%c' in '%s'" +msgstr "Mà gica d'especificació de ruta no implementada '%c' en '%s'" + +#: pathspec.c:230 +#, c-format +msgid "%s: 'literal' and 'glob' are incompatible" +msgstr "%s: 'literal' i 'glob' són incompatibles" + +#: pathspec.c:241 +#, c-format +msgid "%s: '%s' is outside repository" +msgstr "%s: '%s' està fora del repositori" + +#: pathspec.c:291 +#, c-format +msgid "Pathspec '%s' is in submodule '%.*s'" +msgstr "L'especificació '%s' està en el submòdul '%.*s'" + +#: pathspec.c:353 +#, c-format +msgid "%s: pathspec magic not supported by this command: %s" +msgstr "%s: aquest ordre no suporta la mà gica d'especificació de ruta: %s" + +#: pathspec.c:432 +#, c-format +msgid "pathspec '%s' is beyond a symbolic link" +msgstr "l'especificació de ruta '%s' està més allà d'un enllaç simbòlic" + +#: pathspec.c:441 +msgid "" +"There is nothing to exclude from by :(exclude) patterns.\n" +"Perhaps you forgot to add either ':/' or '.' ?" +msgstr "" +"No hi ha res que excloure per patrons :(exclusió).\n" +"Potser heu oblidat afegir o ':/' o '.' ?" + +#: progress.c:225 +msgid "done" +msgstr "fet" + +#: read-cache.c:1260 +#, c-format +msgid "" +"index.version set, but the value is invalid.\n" +"Using version %i" +msgstr "" +"index.version establert, però el valor és invà lid.\n" +"Utilitzant la versió %i" + +#: read-cache.c:1270 +#, c-format +msgid "" +"GIT_INDEX_VERSION set, but the value is invalid.\n" +"Using version %i" +msgstr "" +"GIT_INDEX_VERSION establert, però el valor és invà lid.\n" +"Utilitzant la versió %i" + +#: remote.c:753 +#, c-format +msgid "Cannot fetch both %s and %s to %s" +msgstr "No és pot obtenir ambdós %s i %s a %s" + +#: remote.c:757 +#, c-format +msgid "%s usually tracks %s, not %s" +msgstr "%s generalment segueix %s, no %s" + +#: remote.c:761 +#, c-format +msgid "%s tracks both %s and %s" +msgstr "%s segueix ambdós %s i %s" + +#: remote.c:769 +msgid "Internal error" +msgstr "Error intern" + +#: remote.c:1943 +#, c-format +msgid "Your branch is based on '%s', but the upstream is gone.\n" +msgstr "La teva rama està basada en '%s', però la font no està .\n" + +#: remote.c:1947 +msgid " (use \"git branch --unset-upstream\" to fixup)\n" +msgstr " (utilitzeu \"git branch --unset-upstream\" per arreglar)\n" + +#: remote.c:1950 +#, c-format +msgid "Your branch is up-to-date with '%s'.\n" +msgstr "La vostra rama està actualitzada amb '%s'.\n" + +#: remote.c:1954 +#, 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 rama està davant de '%s' per %d comissions.\n" +msgstr[1] "La vostra rama està davant de '%s' per %d comissions.\n" + +#: remote.c:1960 +msgid " (use \"git push\" to publish your local commits)\n" +msgstr "" +" (utilitzeu \"git push\" per publicar els vostres comissions locals)\n" + +#: remote.c:1963 +#, 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] "" +"La vostra rama està darrere de '%s' per %d comissió, i pot avançar-se " +"rà pidament.\n" +msgstr[1] "" +"La vostra rama està darrere de '%s' per %d comissions, i pot avançar-se " +"rà pidament.\n" + +#: remote.c:1971 +msgid " (use \"git pull\" to update your local branch)\n" +msgstr " (utilitzeu \"git pull\" per actualitzar la vostra rama local)\n" + +#: remote.c:1974 +#, c-format +msgid "" +"Your branch and '%s' have diverged,\n" +"and have %d and %d different commit each, respectively.\n" +msgid_plural "" +"Your branch and '%s' have diverged,\n" +"and have %d and %d different commits each, respectively.\n" +msgstr[0] "" +"La vostra rama i '%s' s'han divergit,\n" +"i tenen %d i %d comissió distinta cada una, respectivament.\n" +msgstr[1] "" +"La vostra rama i '%s' s'han divergit,\n" +"i tenen %d i %d comissions distintes cada una, respectivament.\n" + +#: remote.c:1984 +msgid " (use \"git pull\" to merge the remote branch into yours)\n" +msgstr " (utilitzeu \"git pull\" per fusionar la rama remota a la vostra)\n" + +#: run-command.c:80 +msgid "open /dev/null failed" +msgstr "s'ha fallat al obrir /dev/null" + +#: run-command.c:82 +#, c-format +msgid "dup2(%d,%d) failed" +msgstr "dup2(%d,%d) s'ha fallat" + +#: sequencer.c:171 builtin/merge.c:782 builtin/merge.c:893 +#: builtin/merge.c:1003 builtin/merge.c:1013 +#, c-format +msgid "Could not open '%s' for writing" +msgstr "No s'ha pogut obrir '%s' per a escriptura" + +#: sequencer.c:173 builtin/merge.c:343 builtin/merge.c:785 +#: builtin/merge.c:1005 builtin/merge.c:1018 +#, c-format +msgid "Could not write to '%s'" +msgstr "No s'ha pogut escriure al '%s'" + +#: sequencer.c:194 +msgid "" +"after resolving the conflicts, mark the corrected paths\n" +"with 'git add <paths>' or 'git rm <paths>'" +msgstr "" +"després de resoldre els conflictes, marqueu les rutes\n" +"corregides amb 'git add <paths>' o 'git rm <paths>'" + +#: sequencer.c:197 +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 "" +"després de resoldre els conflictes, marqueu les rutes\n" +"corregides amb 'git add <paths>' o 'git rm <paths>'\n" +"i cometeu el resultat amb 'git commit'" + +#: sequencer.c:210 sequencer.c:841 sequencer.c:924 +#, c-format +msgid "Could not write to %s" +msgstr "No s'ha pogut escriure a %s" + +#: sequencer.c:213 +#, c-format +msgid "Error wrapping up %s" +msgstr "Error terminant %s" + +#: sequencer.c:228 +msgid "Your local changes would be overwritten by cherry-pick." +msgstr "Els vostres canvis locals es sobreescriurien pel recull de cireres." + +#: sequencer.c:230 +msgid "Your local changes would be overwritten by revert." +msgstr "Els vostres canvis locals es sobreescriurien per la reversió." + +#: sequencer.c:233 +msgid "Commit your changes or stash them to proceed." +msgstr "Cometeu els vostres canvis o emmagatzemeu-los per procedir." + +#: sequencer.c:250 +msgid "Failed to lock HEAD during fast_forward_to" +msgstr "S'ha fallat al bloquejar HEAD durant fast_forward_to" + +#. TRANSLATORS: %s will be "revert" or "cherry-pick" +#: sequencer.c:293 +#, c-format +msgid "%s: Unable to write new index file" +msgstr "%s: Incapaç d'escriure un nou fitxer d'Ãndex" + +#: sequencer.c:324 +msgid "Could not resolve HEAD commit\n" +msgstr "No s'ha pogut resoldre la comissió HEAD\n" + +#: sequencer.c:344 +msgid "Unable to update cache tree\n" +msgstr "Incapaç d'actualitzar l'arbre cau\n" + +#: sequencer.c:391 +#, c-format +msgid "Could not parse commit %s\n" +msgstr "No s'ha pogut analitzar la comissió %s\n" + +#: sequencer.c:396 +#, c-format +msgid "Could not parse parent commit %s\n" +msgstr "No s'ha pogut analitzar la comissió pare %s\n" + +#: sequencer.c:462 +msgid "Your index file is unmerged." +msgstr "El vostre fitxer d'Ãndex està sense fusionar." + +#: sequencer.c:481 +#, c-format +msgid "Commit %s is a merge but no -m option was given." +msgstr "La comissió %s és una fusió però cap opció -m s'ha donat." + +#: sequencer.c:489 +#, c-format +msgid "Commit %s does not have parent %d" +msgstr "La comissió %s no té pare %d" + +#: sequencer.c:493 +#, c-format +msgid "Mainline was specified but commit %s is not a merge." +msgstr "" +"S'ha especificat la lÃnia principal però la comissió %s no és una fusió." + +#. TRANSLATORS: The first %s will be "revert" or +#. "cherry-pick", the second %s a SHA1 +#: sequencer.c:506 +#, c-format +msgid "%s: cannot parse parent commit %s" +msgstr "%s: no es pot analitzar la comissió pare %s" + +#: sequencer.c:510 +#, c-format +msgid "Cannot get commit message for %s" +msgstr "No es pot obtenir el missatge de comissió de %s" + +#: sequencer.c:596 +#, c-format +msgid "could not revert %s... %s" +msgstr "no s'ha pogut revertir %s... %s" + +#: sequencer.c:597 +#, c-format +msgid "could not apply %s... %s" +msgstr "no s'ha pogut aplicar %s... %s" + +#: sequencer.c:633 +msgid "empty commit set passed" +msgstr "conjunt de comissions buit passat" + +#: sequencer.c:641 +#, c-format +msgid "git %s: failed to read the index" +msgstr "git %s: s'ha fallat al llegir l'Ãndex" + +#: sequencer.c:645 +#, c-format +msgid "git %s: failed to refresh the index" +msgstr "git %s: s'ha fallat al actualitzar l'Ãndex" + +#: sequencer.c:705 +#, c-format +msgid "Cannot %s during a %s" +msgstr "No es pot %s durant un %s" + +#: sequencer.c:727 +#, c-format +msgid "Could not parse line %d." +msgstr "No s'ha pogut analitzar la lÃnia %d." + +#: sequencer.c:732 +msgid "No commits parsed." +msgstr "Cap comissió analitzada." + +#: sequencer.c:745 +#, c-format +msgid "Could not open %s" +msgstr "No s'ha pogut obrir %s" + +#: sequencer.c:749 +#, c-format +msgid "Could not read %s." +msgstr "No s'ha pogut llegir %s." + +#: sequencer.c:756 +#, c-format +msgid "Unusable instruction sheet: %s" +msgstr "Full d'instruccions inutilitzable: %s" + +#: sequencer.c:786 +#, c-format +msgid "Invalid key: %s" +msgstr "Clau invà lid: %s" + +#: sequencer.c:789 +#, c-format +msgid "Invalid value for %s: %s" +msgstr "Valor invà lid per a %s: %s" + +#: sequencer.c:801 +#, c-format +msgid "Malformed options sheet: %s" +msgstr "Full d'opcions malformat: %s" + +#: sequencer.c:822 +msgid "a cherry-pick or revert is already in progress" +msgstr "un recull de cireres o una reversió ja està en curs" + +#: sequencer.c:823 +msgid "try \"git cherry-pick (--continue | --quit | --abort)\"" +msgstr "intenteu \"git cherry-pick (--continue | --quit | --abort)\"" + +#: sequencer.c:827 +#, c-format +msgid "Could not create sequencer directory %s" +msgstr "No s'ha pogut crear el directori de seqüenciador %s" + +#: sequencer.c:843 sequencer.c:928 +#, c-format +msgid "Error wrapping up %s." +msgstr "Error al terminar %s." + +#: sequencer.c:862 sequencer.c:998 +msgid "no cherry-pick or revert in progress" +msgstr "cap recull de cireres o reversió en curs" + +#: sequencer.c:864 +msgid "cannot resolve HEAD" +msgstr "no es pot resoldre HEAD" + +#: sequencer.c:866 +msgid "cannot abort from a branch yet to be born" +msgstr "no es pot avortar des d'una rama que encara ha de nà ixer" + +#: sequencer.c:888 builtin/apply.c:4062 +#, c-format +msgid "cannot open %s: %s" +msgstr "no es pot obrir %s: %s" + +#: sequencer.c:891 +#, c-format +msgid "cannot read %s: %s" +msgstr "no es pot llegir %s: %s" + +#: sequencer.c:892 +msgid "unexpected end of file" +msgstr "fin de fitxer inesperat" + +#: sequencer.c:898 +#, c-format +msgid "stored pre-cherry-pick HEAD file '%s' is corrupt" +msgstr "" +"el fitxer HEAD emmagatzemat abans del recull de cirers '%s' és corrupte" + +#: sequencer.c:921 +#, c-format +msgid "Could not format %s." +msgstr "No s'ha pogut formatar %s." + +#: sequencer.c:1066 +#, c-format +msgid "%s: can't cherry-pick a %s" +msgstr "%s: no es pot recollir com cirera un %s" + +#: sequencer.c:1069 +#, c-format +msgid "%s: bad revision" +msgstr "%s: revisió dolenta" + +#: sequencer.c:1103 +msgid "Can't revert as initial commit" +msgstr "No es pot revertir com comissió inicial" + +#: sequencer.c:1104 +msgid "Can't cherry-pick into empty head" +msgstr "No es pot recollir cireres en un cap buit" + +#: sha1_name.c:439 +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 "" +"Git normalment mai crea una referència que termini amb 40 carà cters\n" +"hexadecimals perquè s'ignorarà quan només especifiqueu 40 carà cters\n" +"hexadecimals. Aquestes referències es poden crear per error. Per\n" +"exemple,\n" +"\n" +" git checkout -b $br $(git rev-parse ...)\n" +"\n" +"on \"$br\" és de alguna manera buit i una referència de 40 carà cters\n" +"hexadecimals. Si us plau, examineu aquests referències i potser\n" +"suprimiu-les. Desactiva aquest missatge per executar\n" +"\"git config advice.objectNameWarning false\"" + +#: sha1_name.c:1060 +msgid "HEAD does not point to a branch" +msgstr "HEAD no assenyala cap rama" + +#: sha1_name.c:1063 +#, c-format +msgid "No such branch: '%s'" +msgstr "Cap rama aixÃ: '%s'" + +#: sha1_name.c:1065 +#, c-format +msgid "No upstream configured for branch '%s'" +msgstr "Cap font configurada per a la rama '%s'" + +#: sha1_name.c:1069 +#, c-format +msgid "Upstream branch '%s' not stored as a remote-tracking branch" +msgstr "La rama font '%s' no s'emmagatzema com rama que segueixi al remot" + +#: submodule.c:64 submodule.c:98 +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:68 submodule.c:102 +#, 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:76 +#, c-format +msgid "Could not update .gitmodules entry %s" +msgstr "No s'ha pogut actualitzar l'entrada de .gitmodules %s" + +#: submodule.c:109 +#, c-format +msgid "Could not remove .gitmodules entry for %s" +msgstr "No s'ha pogut treure l'entrada de .gitmodules per a %s" + +#: submodule.c:120 +msgid "staging updated .gitmodules failed" +msgstr "L'allistament del .gitmodules actualitzat ha fallat" + +#: submodule.c:1118 builtin/init-db.c:363 +#, c-format +msgid "Could not create git link %s" +msgstr "No s'ha pogut crear l'enllaç de git %s" + +#: submodule.c:1129 +#, c-format +msgid "Could not set core.worktree in %s" +msgstr "No s'ha pogut establir core.worktree en %s" + +#: unpack-trees.c:202 +msgid "Checking out files" +msgstr "Agafant fitxers" + +#: urlmatch.c:120 +msgid "invalid URL scheme name or missing '://' suffix" +msgstr "esquema d'URL invà lida o manca el sufix '://'" + +#: urlmatch.c:144 urlmatch.c:297 urlmatch.c:356 +#, c-format +msgid "invalid %XX escape sequence" +msgstr "seqüència d'escapament %XX invà lida" + +#: urlmatch.c:172 +msgid "missing host and scheme is not 'file:'" +msgstr "manca l'host i l'esquema no és 'file:'" + +#: urlmatch.c:189 +msgid "a 'file:' URL may not have a port number" +msgstr "un URL 'file:' no pot tenir un número de port" + +#: urlmatch.c:199 +msgid "invalid characters in host name" +msgstr "carà cters invà lids en nom de host" + +#: urlmatch.c:244 urlmatch.c:255 +msgid "invalid port number" +msgstr "número de port invà lid" + +#: urlmatch.c:322 +msgid "invalid '..' path segment" +msgstr "segment de ruta '..' invà lid" + +#: wrapper.c:460 +#, c-format +msgid "unable to access '%s': %s" +msgstr "incapaç d'accedir a '%s': %s" + +#: wrapper.c:481 +#, c-format +msgid "unable to access '%s'" +msgstr "incapaç d'accedir a '%s'" + +#: wrapper.c:492 +#, c-format +msgid "unable to look up current user in the passwd file: %s" +msgstr "incapaç de trobar l'usuari actual en el fitxer passwd: %s" + +#: wrapper.c:493 +msgid "no such user" +msgstr "cap usuari aixÃ" + +#: wt-status.c:150 +msgid "Unmerged paths:" +msgstr "Rutes sense fusionar:" + +#: wt-status.c:177 wt-status.c:204 +#, c-format +msgid " (use \"git reset %s <file>...\" to unstage)" +msgstr " (utilitzeu \"git reset %s <fitxer>...\" per desallistar)" + +#: wt-status.c:179 wt-status.c:206 +msgid " (use \"git rm --cached <file>...\" to unstage)" +msgstr " (utilitzeu \"git rm --cached <fitxer>...\" per desallistar)" + +#: wt-status.c:183 +msgid " (use \"git add <file>...\" to mark resolution)" +msgstr " (utilitzeu \"git add <file>...\" per senyalar resolució)" + +#: wt-status.c:185 wt-status.c:189 +msgid " (use \"git add/rm <file>...\" as appropriate to mark resolution)" +msgstr "" +" (utilitzeu \"git add/rm <file>...\" segons sigui apropiat per senyalar " +"resolució)" + +#: wt-status.c:187 +msgid " (use \"git rm <file>...\" to mark resolution)" +msgstr " (utilitzeu \"git rm <file>...\" per senyalar resolució)" + +#: wt-status.c:198 +msgid "Changes to be committed:" +msgstr "Canvis que cometre:" + +#: wt-status.c:216 +msgid "Changes not staged for commit:" +msgstr "Canvis no allistats per a cometre:" + +#: wt-status.c:220 +msgid " (use \"git add <file>...\" to update what will be committed)" +msgstr " (utilitzeu \"git add <file>...\" per actualitzar què es cometrà )" + +#: wt-status.c:222 +msgid " (use \"git add/rm <file>...\" to update what will be committed)" +msgstr " (utilitzeu \"git add/rm <file>...\" per actualitzar què es cometrà )" + +#: wt-status.c:223 +msgid "" +" (use \"git checkout -- <file>...\" to discard changes in working directory)" +msgstr "" +" (utilitzeu \"git checkout -- <file>...\" per descartar els canvis en el " +"directori de treball)" + +#: wt-status.c:225 +msgid " (commit or discard the untracked or modified content in submodules)" +msgstr "" +" (cometeu o descarteu el contingut modificat o no seguit en els submòduls)" + +#: wt-status.c:237 +#, c-format +msgid " (use \"git %s <file>...\" to include in what will be committed)" +msgstr " (utilitzeu \"git %s <file>...\" per incloure en què es cometrà )" + +#: wt-status.c:252 +msgid "both deleted:" +msgstr "suprimit per ambdós:" + +#: wt-status.c:254 +msgid "added by us:" +msgstr "afegit per nosaltres:" + +#: wt-status.c:256 +msgid "deleted by them:" +msgstr "suprimit per ells:" + +#: wt-status.c:258 +msgid "added by them:" +msgstr "afegit per ells:" + +#: wt-status.c:260 +msgid "deleted by us:" +msgstr "suprimit per nosaltres:" + +#: wt-status.c:262 +msgid "both added:" +msgstr "afegit per ambdós:" + +#: wt-status.c:264 +msgid "both modified:" +msgstr "modificat per ambdós:" + +#: wt-status.c:266 +#, c-format +msgid "bug: unhandled unmerged status %x" +msgstr "bug: estat no fusionat no manejat %x" + +#: wt-status.c:274 +msgid "new file:" +msgstr "fitxer nou:" + +#: wt-status.c:276 +msgid "copied:" +msgstr "copiat:" + +#: wt-status.c:278 +msgid "deleted:" +msgstr "suprimit:" + +#: wt-status.c:280 +msgid "modified:" +msgstr "modificat:" + +#: wt-status.c:282 +msgid "renamed:" +msgstr "canviat de nom:" + +#: wt-status.c:284 +msgid "typechange:" +msgstr "canviat de tipus:" + +#: wt-status.c:286 +msgid "unknown:" +msgstr "desconegut:" + +#: wt-status.c:288 +msgid "unmerged:" +msgstr "sense fusionar:" + +#: wt-status.c:370 +msgid "new commits, " +msgstr "comissions noves, " + +#: wt-status.c:372 +msgid "modified content, " +msgstr "contingut modificat, " + +#: wt-status.c:374 +msgid "untracked content, " +msgstr "contingut no seguit, " + +#: wt-status.c:391 +#, c-format +msgid "bug: unhandled diff status %c" +msgstr "bug: estat de diferència no manejat %c" + +#: wt-status.c:764 +msgid "Submodules changed but not updated:" +msgstr "Submòduls canviats però no actualitzats:" + +#: wt-status.c:766 +msgid "Submodule changes to be committed:" +msgstr "Canvis de submòdul que cometre:" + +#: wt-status.c:845 +msgid "" +"Do not touch the line above.\n" +"Everything below will be removed." +msgstr "" +"No toquis la lÃnia amunt.\n" +"Tot a baix es traurà ." + +#: wt-status.c:936 +msgid "You have unmerged paths." +msgstr "Teniu rutes sense fusionar." + +#: wt-status.c:939 +msgid " (fix conflicts and run \"git commit\")" +msgstr " (arregleu els conflictes i executeu \"git commit\")" + +#: wt-status.c:942 +msgid "All conflicts fixed but you are still merging." +msgstr "Tots els conflictes arreglats però encara esteu fusionant." + +#: wt-status.c:945 +msgid " (use \"git commit\" to conclude merge)" +msgstr " (utilitzeu \"git commit\" per concloure la fusió)" + +#: wt-status.c:955 +msgid "You are in the middle of an am session." +msgstr "Esteu en el medi d'una sessió am." + +#: wt-status.c:958 +msgid "The current patch is empty." +msgstr "El pedaç actual està buit." + +#: wt-status.c:962 +msgid " (fix conflicts and then run \"git am --continue\")" +msgstr " (arregleu els conflictes i després executeu \"git am --continue\")" + +#: wt-status.c:964 +msgid " (use \"git am --skip\" to skip this patch)" +msgstr " (utilitzeu \"git am --skip\" per saltar aquest pedaç)" + +#: wt-status.c:966 +msgid " (use \"git am --abort\" to restore the original branch)" +msgstr " (utilitzeu \"git am --abort\" per restaurar la rama original)" + +#: wt-status.c:1026 wt-status.c:1043 +#, c-format +msgid "You are currently rebasing branch '%s' on '%s'." +msgstr "Actualment esteu rebasant la rama '%s' en '%s'." + +#: wt-status.c:1031 wt-status.c:1048 +msgid "You are currently rebasing." +msgstr "Actualment esteu rebasant." + +#: wt-status.c:1034 +msgid " (fix conflicts and then run \"git rebase --continue\")" +msgstr "" +" (arregleu els conflictes i després executeu \"git rebase --continue\")" + +#: wt-status.c:1036 +msgid " (use \"git rebase --skip\" to skip this patch)" +msgstr " (utlitizeu \"git rebase --skip\" per saltar aquest pedaç)" + +#: wt-status.c:1038 +msgid " (use \"git rebase --abort\" to check out the original branch)" +msgstr " (utilitzeu \"git rebase --abort\" per agafar la rama original)" + +#: wt-status.c:1051 +msgid " (all conflicts fixed: run \"git rebase --continue\")" +msgstr " (tots els conflictes arreglats: executeu \"git rebase --continue\")" + +#: wt-status.c:1055 +#, c-format +msgid "" +"You are currently splitting a commit while rebasing branch '%s' on '%s'." +msgstr "" +"Actualment esteu dividint una comissió mentre rebasant la rama '%s' en '%s'." + +#: wt-status.c:1060 +msgid "You are currently splitting a commit during a rebase." +msgstr "Actualment esteu dividint una comissió durant un rebase." + +#: wt-status.c:1063 +msgid " (Once your working directory is clean, run \"git rebase --continue\")" +msgstr "" +" (Una vegada que el vostre directori de treball sigui net, executeu \"git " +"rebase --continue\")" + +#: wt-status.c:1067 +#, c-format +msgid "You are currently editing a commit while rebasing branch '%s' on '%s'." +msgstr "" +"Actualment esteu editant una comissió mentre rebasant la rama '%s' en '%s'." + +#: wt-status.c:1072 +msgid "You are currently editing a commit during a rebase." +msgstr "Actualment esteu editant una comissió durant un rebase." + +#: wt-status.c:1075 +msgid " (use \"git commit --amend\" to amend the current commit)" +msgstr " (utilitzeu \"git commit --amend\" per esmenar la comissió actual)" + +#: wt-status.c:1077 +msgid "" +" (use \"git rebase --continue\" once you are satisfied with your changes)" +msgstr "" +" (utilitzeu \"git rebase --continue\" una vegada que sigueu satisfet amb " +"els vostres canvis)" + +#: wt-status.c:1087 +#, c-format +msgid "You are currently cherry-picking commit %s." +msgstr "Actualment esteu recollint com cirera la comissió %s." + +#: wt-status.c:1092 +msgid " (fix conflicts and run \"git cherry-pick --continue\")" +msgstr " (arregleu els conflictes i executeu \"git cherry-pick --continue\")" + +#: wt-status.c:1095 +msgid " (all conflicts fixed: run \"git cherry-pick --continue\")" +msgstr "" +" (tots els conflictes arreglats: executeu \"git cherry-pick --continue\")" + +#: wt-status.c:1097 +msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)" +msgstr "" +" (utilitzeu \"git cherry-pick --abort\" per cancel·lar l'operació de recull " +"de cireres)" + +#: wt-status.c:1106 +#, c-format +msgid "You are currently reverting commit %s." +msgstr "Actualment esteu revertint la comissió %s." + +#: wt-status.c:1111 +msgid " (fix conflicts and run \"git revert --continue\")" +msgstr " (arregleu els conflictes i executeu \"git revert --continue\")" + +#: wt-status.c:1114 +msgid " (all conflicts fixed: run \"git revert --continue\")" +msgstr " (tots els conflictes arreglats: executeu \"git revert --continue\")" + +#: wt-status.c:1116 +msgid " (use \"git revert --abort\" to cancel the revert operation)" +msgstr "" +" (utilitzeu \"git revert --abort\" per cancel·lar l'operació de reversió)" + +#: wt-status.c:1127 +#, c-format +msgid "You are currently bisecting, started from branch '%s'." +msgstr "Actualment esteu bisecant, heu començat des de la rama '%s'." + +#: wt-status.c:1131 +msgid "You are currently bisecting." +msgstr "Actualment esteu bisecant." + +#: wt-status.c:1134 +msgid " (use \"git bisect reset\" to get back to the original branch)" +msgstr " (utilitzeu \"git bisect reset\" per tornar a la rama original)" + +#: wt-status.c:1309 +msgid "On branch " +msgstr "En la rama " + +#: wt-status.c:1316 +msgid "rebase in progress; onto " +msgstr "rebase en progrés; en " + +#: wt-status.c:1323 +msgid "HEAD detached at " +msgstr "HEAD separat a" + +#: wt-status.c:1325 +msgid "HEAD detached from " +msgstr "HEAD separat de" + +#: wt-status.c:1328 +msgid "Not currently on any branch." +msgstr "Actualment no en cap rama." + +#: wt-status.c:1345 +msgid "Initial commit" +msgstr "Comissió inicial" + +#: wt-status.c:1359 +msgid "Untracked files" +msgstr "Fitxers no seguits" + +#: wt-status.c:1361 +msgid "Ignored files" +msgstr "Fitxers ignorats" + +#: wt-status.c:1365 +#, c-format +msgid "" +"It took %.2f seconds to enumerate untracked files. 'status -uno'\n" +"may speed it up, but you have to be careful not to forget to add\n" +"new files yourself (see 'git help status')." +msgstr "" +"Ha trigat %.2f segons en enumerar fitxers no seguits.\n" +"'status -uno' pot accelerar-ho, però heu de tenir cuidat de no\n" +"oblidar afegir fitxers nous per vós mateix (veu\n" +"'git help status')." + +#: wt-status.c:1371 +#, c-format +msgid "Untracked files not listed%s" +msgstr "Fitxers no seguits no llistats%s" + +#: wt-status.c:1373 +msgid " (use -u option to show untracked files)" +msgstr " (utilitzeu l'opció -u per mostrar fitxers no seguits)" + +#: wt-status.c:1379 +msgid "No changes" +msgstr "Sense canvis" + +#: wt-status.c:1384 +#, c-format +msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n" +msgstr "" +"cap canvi afegit que cometre (afegeix \"git add\" o \"git commit -a\")\n" + +#: wt-status.c:1387 +#, c-format +msgid "no changes added to commit\n" +msgstr "cap canvi afegit que cometre\n" + +#: wt-status.c:1390 +#, c-format +msgid "" +"nothing added to commit but untracked files present (use \"git add\" to " +"track)\n" +msgstr "" +"res afegit que cometre però fitxers no seguits estan presents (utilitzeu " +"\"git add\" per seguir-los)\n" + +#: wt-status.c:1393 +#, c-format +msgid "nothing added to commit but untracked files present\n" +msgstr "res afegit que cometre però fitxers no seguits estan presents\n" + +#: wt-status.c:1396 +#, c-format +msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" +msgstr "" +"res que cometre (creeu/copieu fitxers i utilitzeu \"git add\" per seguir-" +"los)\n" + +#: wt-status.c:1399 wt-status.c:1404 +#, c-format +msgid "nothing to commit\n" +msgstr "res que cometre\n" + +#: wt-status.c:1402 +#, c-format +msgid "nothing to commit (use -u to show untracked files)\n" +msgstr "res que cometre (utilitzeu -u per mostrar fitxers no seguits)\n" + +#: wt-status.c:1406 +#, c-format +msgid "nothing to commit, working directory clean\n" +msgstr "res que cometre, directori de treball net\n" + +#: wt-status.c:1515 +msgid "HEAD (no branch)" +msgstr "HEAD (sense rama)" + +#: wt-status.c:1521 +msgid "Initial commit on " +msgstr "Comissió inicial en " + +#: wt-status.c:1553 +msgid "gone" +msgstr "no està " + +#: wt-status.c:1555 wt-status.c:1563 +msgid "behind " +msgstr "darrere " + +#: compat/precompose_utf8.c:55 builtin/clone.c:356 +#, c-format +msgid "failed to unlink '%s'" +msgstr "s'ha fallat al desenllaçar '%s'" + +#: builtin/add.c:21 +msgid "git add [options] [--] <pathspec>..." +msgstr "git add [opcions] [--] <especificació-de-ruta>..." + +#: builtin/add.c:64 +#, c-format +msgid "unexpected diff status %c" +msgstr "estat de diff inesperat %c" + +#: builtin/add.c:69 builtin/commit.c:261 +msgid "updating files failed" +msgstr "s'ha fallat al actualitzar els fitxers" + +#: builtin/add.c:79 +#, c-format +msgid "remove '%s'\n" +msgstr "treu '%s'\n" + +#: builtin/add.c:133 +msgid "Unstaged changes after refreshing the index:" +msgstr "Canvis no allistats després d'actualitzar l'Ãndex:" + +#: builtin/add.c:193 builtin/rev-parse.c:781 +msgid "Could not read the index" +msgstr "No s'ha pogut llegir l'Ãndex" + +#: builtin/add.c:204 +#, c-format +msgid "Could not open '%s' for writing." +msgstr "No s'ha pogut obrir '%s' per a escriptura." + +#: builtin/add.c:208 +msgid "Could not write patch" +msgstr "No s'ha pogut escriure el pedaç" + +#: builtin/add.c:213 +#, c-format +msgid "Could not stat '%s'" +msgstr "No s'ha pogut fer stat a '%s'" + +#: builtin/add.c:215 +msgid "Empty patch. Aborted." +msgstr "Pedaç buit. Avortat." + +#: builtin/add.c:221 +#, c-format +msgid "Could not apply '%s'" +msgstr "No s'ha pogut aplicar '%s'" + +#: builtin/add.c:231 +msgid "The following paths are ignored by one of your .gitignore files:\n" +msgstr "Les rutes següents s'ignoren per un dels vostres fitxers .gitignore:\n" + +#: builtin/add.c:248 builtin/clean.c:875 builtin/fetch.c:108 builtin/mv.c:70 +#: builtin/prune-packed.c:77 builtin/push.c:488 builtin/remote.c:1367 +#: builtin/rm.c:269 +msgid "dry run" +msgstr "marxa en sec" + +#: builtin/add.c:249 builtin/apply.c:4411 builtin/check-ignore.c:19 +#: builtin/commit.c:1328 builtin/count-objects.c:95 builtin/fsck.c:606 +#: builtin/log.c:1613 builtin/mv.c:69 builtin/read-tree.c:113 +msgid "be verbose" +msgstr "sigues verbós" + +#: builtin/add.c:251 +msgid "interactive picking" +msgstr "recull interactiu" + +#: builtin/add.c:252 builtin/checkout.c:1102 builtin/reset.c:285 +msgid "select hunks interactively" +msgstr "selecciona els trossos interactivament" + +#: builtin/add.c:253 +msgid "edit current diff and apply" +msgstr "edita la diferència actual i aplica" + +#: builtin/add.c:254 +msgid "allow adding otherwise ignored files" +msgstr "permet afegir fitxers que d'altra manera s'ignoren" + +#: builtin/add.c:255 +msgid "update tracked files" +msgstr "actualitza els fitxers seguits" + +#: builtin/add.c:256 +msgid "record only the fact that the path will be added later" +msgstr "registra només el fet que la ruta s'afegirà més tard" + +#: builtin/add.c:257 +msgid "add changes from all tracked and untracked files" +msgstr "afegeix els canvis de tots els fitxers seguits i no seguits" + +#: builtin/add.c:260 +msgid "ignore paths removed in the working tree (same as --no-all)" +msgstr "ignora les rutes tretes en l'arbre de treball (el mateix que --no-all)" + +#: builtin/add.c:262 +msgid "don't add, only refresh the index" +msgstr "no afegeixis, només actualitza l'Ãndex" + +#: builtin/add.c:263 +msgid "just skip files which cannot be added because of errors" +msgstr "només salta els fitxers que no es poden afegir a causa d'errors" + +#: builtin/add.c:264 +msgid "check if - even missing - files are ignored in dry run" +msgstr "" +"comproveu si els fitxers - encara els mancants - s'ignoran en marxa en sec" + +#: builtin/add.c:286 +#, c-format +msgid "Use -f if you really want to add them.\n" +msgstr "Utilitzeu -f si realment els voleu afegir.\n" + +#: builtin/add.c:287 +msgid "no files added" +msgstr "cap fitxer afegit" + +#: builtin/add.c:293 +msgid "adding files failed" +msgstr "l'afegiment de fitxers ha fallat" + +#: builtin/add.c:329 +msgid "-A and -u are mutually incompatible" +msgstr "-A i -u són mutualment incompatibles" + +#: builtin/add.c:336 +msgid "Option --ignore-missing can only be used together with --dry-run" +msgstr "L'opció --ignore-missing només es pot utilitzar junt amb --dry-run" + +#: builtin/add.c:357 +#, c-format +msgid "Nothing specified, nothing added.\n" +msgstr "Res especificat, res afegit.\n" + +#: builtin/add.c:358 +#, c-format +msgid "Maybe you wanted to say 'git add .'?\n" +msgstr "Potser volÃeu dir 'git add .'?\n" + +#: builtin/add.c:363 builtin/check-ignore.c:172 builtin/clean.c:919 +#: builtin/commit.c:319 builtin/mv.c:90 builtin/reset.c:234 builtin/rm.c:299 +msgid "index file corrupt" +msgstr "fitxer d'Ãndex malmès" + +#: builtin/add.c:446 builtin/apply.c:4506 builtin/mv.c:280 builtin/rm.c:431 +msgid "Unable to write new index file" +msgstr "Incapaç d'escriure un nou fitxer d'Ãndex" + +#: builtin/apply.c:57 +msgid "git apply [options] [<patch>...]" +msgstr "git apply [opcions] [<pedaç>...]" + +#: builtin/apply.c:110 +#, c-format +msgid "unrecognized whitespace option '%s'" +msgstr "opció d'espai en blanc '%s' no reconeguda" + +#: builtin/apply.c:125 +#, c-format +msgid "unrecognized whitespace ignore option '%s'" +msgstr "opció d'ignoral d'espai en blanc '%s' no reconeguda" + +#: builtin/apply.c:825 +#, c-format +msgid "Cannot prepare timestamp regexp %s" +msgstr "No es pot preparar l'expressió regular de marca de temps %s" + +#: builtin/apply.c:834 +#, c-format +msgid "regexec returned %d for input: %s" +msgstr "regexec ha retornat %d per l'entrada: %s" + +#: builtin/apply.c:915 +#, c-format +msgid "unable to find filename in patch at line %d" +msgstr "incapaç de trobar el nom de fitxer en el pedaç a la lÃnia %d" + +#: builtin/apply.c:947 +#, c-format +msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d" +msgstr "" +"git apply: git-diff dolent - /dev/null esperat, %s rebut en la lÃnia %d" + +#: builtin/apply.c:951 +#, c-format +msgid "git apply: bad git-diff - inconsistent new filename on line %d" +msgstr "" +"git apply: git-diff dolent - nom de fitxer nou inconsistent en la lÃnia %d" + +#: builtin/apply.c:952 +#, c-format +msgid "git apply: bad git-diff - inconsistent old filename on line %d" +msgstr "" +"git apply: git-diff dolent - nom de fitxer antic inconsistent en la lÃnia %d" + +#: builtin/apply.c:959 +#, c-format +msgid "git apply: bad git-diff - expected /dev/null on line %d" +msgstr "git apply: git-diff dolent - /dev/null esperat en la lÃnia %d" + +#: builtin/apply.c:1422 +#, c-format +msgid "recount: unexpected line: %.*s" +msgstr "recompte: lÃnia inesperada: %.*s" + +#: builtin/apply.c:1479 +#, c-format +msgid "patch fragment without header at line %d: %.*s" +msgstr "fragment de pedaç sense capçalera a la lÃnia %d: %.*s" + +#: builtin/apply.c:1496 +#, 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)" +msgstr[0] "" +"a la capçalera de git diff li manca informació de nom de fitxer al treure %d " +"component de nom de ruta inicial (lÃnia %d)" +msgstr[1] "" +"a la capçalera de git diff li manca informació de nom de fitxer al treure %d " +"components de nom de ruta inicial (lÃnia %d)" + +#: builtin/apply.c:1656 +msgid "new file depends on old contents" +msgstr "el fitxer nou depèn dels continguts antics" + +#: builtin/apply.c:1658 +msgid "deleted file still has contents" +msgstr "el fitxer suprimit encara té continguts" + +#: builtin/apply.c:1684 +#, c-format +msgid "corrupt patch at line %d" +msgstr "pedaç malmès a la lÃnia %d" + +#: builtin/apply.c:1720 +#, c-format +msgid "new file %s depends on old contents" +msgstr "el fitxer nou %s depèn dels continguts antics" + +#: builtin/apply.c:1722 +#, c-format +msgid "deleted file %s still has contents" +msgstr "el fitxer suprimit %s encara té continguts" + +#: builtin/apply.c:1725 +#, c-format +msgid "** warning: file %s becomes empty but is not deleted" +msgstr "** avÃs: el fitxer %s es buida però no es suprimeix" + +#: builtin/apply.c:1871 +#, c-format +msgid "corrupt binary patch at line %d: %.*s" +msgstr "pedaç binari malmès a la lÃnia %d: %.*s" + +#: builtin/apply.c:1900 +#, c-format +msgid "unrecognized binary patch at line %d" +msgstr "pedaç binari no reconegut a la lÃnia %d" + +#: builtin/apply.c:1986 +#, c-format +msgid "patch with only garbage at line %d" +msgstr "pedaç amb només escombraries a la lÃnia %d" + +#: builtin/apply.c:2076 +#, c-format +msgid "unable to read symlink %s" +msgstr "incapaç de llegir l'enllaç simbòlic %s" + +#: builtin/apply.c:2080 +#, c-format +msgid "unable to open or read %s" +msgstr "incapaç d'obrir o llegir %s" + +#: builtin/apply.c:2688 +#, c-format +msgid "invalid start of line: '%c'" +msgstr "inici de lÃnia no và lid: '%c'" + +#: builtin/apply.c:2806 +#, c-format +msgid "Hunk #%d succeeded at %d (offset %d line)." +msgid_plural "Hunk #%d succeeded at %d (offset %d lines)." +msgstr[0] "El tros #%d ha tingut éxit a %d (desplaçament %d lÃnia)." +msgstr[1] "El tros #%d ha tingut éxit a %d (desplaçament %d lÃnies)." + +#: builtin/apply.c:2818 +#, c-format +msgid "Context reduced to (%ld/%ld) to apply fragment at %d" +msgstr "Context reduït a (%ld/%ld) per a aplicar el fragment a %d" + +#: builtin/apply.c:2824 +#, c-format +msgid "" +"while searching for:\n" +"%.*s" +msgstr "" +"mentre cercant:\n" +"%.*s" + +#: builtin/apply.c:2843 +#, c-format +msgid "missing binary patch data for '%s'" +msgstr "manca els dades de pedaç binari de '%s'" + +#: builtin/apply.c:2944 +#, c-format +msgid "binary patch does not apply to '%s'" +msgstr "el pedaç binari no s'aplica a '%s'" + +#: builtin/apply.c:2950 +#, c-format +msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)" +msgstr "" +"el pedaç binari a '%s' crea un resultat incorrecte (esperant %s, %s rebut)" + +#: builtin/apply.c:2971 +#, c-format +msgid "patch failed: %s:%ld" +msgstr "el pedaç ha fallat: %s:%ld" + +#: builtin/apply.c:3095 +#, c-format +msgid "cannot checkout %s" +msgstr "no es pot agafar %s" + +#: builtin/apply.c:3140 builtin/apply.c:3149 builtin/apply.c:3194 +#, c-format +msgid "read of %s failed" +msgstr "la lectura de %s ha fallat" + +#: builtin/apply.c:3174 builtin/apply.c:3396 +#, c-format +msgid "path %s has been renamed/deleted" +msgstr "la ruta %s s'ha canviat de nom/suprimit" + +#: builtin/apply.c:3255 builtin/apply.c:3410 +#, c-format +msgid "%s: does not exist in index" +msgstr "%s: no existeix en l'Ãndex" + +#: builtin/apply.c:3259 builtin/apply.c:3402 builtin/apply.c:3424 +#, c-format +msgid "%s: %s" +msgstr "%s: %s" + +#: builtin/apply.c:3264 builtin/apply.c:3418 +#, c-format +msgid "%s: does not match index" +msgstr "%s: no coincideix amb l'Ãndex" + +#: builtin/apply.c:3366 +msgid "removal patch leaves file contents" +msgstr "el pedaç de treta deixa els continguts dels fitxers" + +#: builtin/apply.c:3435 +#, c-format +msgid "%s: wrong type" +msgstr "%s: tipus erroni" + +#: builtin/apply.c:3437 +#, c-format +msgid "%s has type %o, expected %o" +msgstr "%s és del tipus %o, %o esperat" + +#: builtin/apply.c:3538 +#, c-format +msgid "%s: already exists in index" +msgstr "%s: ja existeix en l'Ãndex" + +#: builtin/apply.c:3541 +#, c-format +msgid "%s: already exists in working directory" +msgstr "%s: ja existeix en el directori de treball" + +#: builtin/apply.c:3561 +#, c-format +msgid "new mode (%o) of %s does not match old mode (%o)" +msgstr "el mode nou (%o) de %s no coincideix amb el mode antic (%o)" + +#: builtin/apply.c:3566 +#, c-format +msgid "new mode (%o) of %s does not match old mode (%o) of %s" +msgstr "el mode nou (%o) de %s no coincideix amb el mode antic (%o) de %s" + +#: builtin/apply.c:3574 +#, c-format +msgid "%s: patch does not apply" +msgstr "%s: el pedaç no aplica" + +#: builtin/apply.c:3587 +#, c-format +msgid "Checking patch %s..." +msgstr "Comprovant el pedaç %s..." + +#: builtin/apply.c:3680 builtin/checkout.c:213 builtin/reset.c:134 +#, c-format +msgid "make_cache_entry failed for path '%s'" +msgstr "make_cache_entry ha fallat per a la ruta '%s'" + +#: builtin/apply.c:3823 +#, c-format +msgid "unable to remove %s from index" +msgstr "incapaç de treure %s de l'Ãndex" + +#: builtin/apply.c:3852 +#, c-format +msgid "corrupt patch for submodule %s" +msgstr "pedaç corrupte per al submòdul %s" + +#: builtin/apply.c:3856 +#, c-format +msgid "unable to stat newly created file '%s'" +msgstr "incapaç de fer stat al fitxer novament creat '%s'" + +#: builtin/apply.c:3861 +#, c-format +msgid "unable to create backing store for newly created file %s" +msgstr "" +"incapaç de crear un magatzem de recolzament per al fitxer novament creat %s" + +#: builtin/apply.c:3864 builtin/apply.c:3972 +#, c-format +msgid "unable to add cache entry for %s" +msgstr "incapaç d'afegir una entrada de cau per a %s" + +#: builtin/apply.c:3897 +#, c-format +msgid "closing file '%s'" +msgstr "tancant el fitxer '%s'" + +#: builtin/apply.c:3946 +#, c-format +msgid "unable to write file '%s' mode %o" +msgstr "incapaç d'escriure el fitxer '%s' mode %o" + +#: builtin/apply.c:4033 +#, c-format +msgid "Applied patch %s cleanly." +msgstr "El pedaç %s s'ha aplicat netament." + +#: builtin/apply.c:4041 +msgid "internal error" +msgstr "error intern" + +#: builtin/apply.c:4044 +#, c-format +msgid "Applying patch %%s with %d reject..." +msgid_plural "Applying patch %%s with %d rejects..." +msgstr[0] "Aplicant el pedaç %%s amb %d rebuig" +msgstr[1] "Aplicant el pedaç %%s amb %d rebuitjos" + +#: builtin/apply.c:4054 +#, c-format +msgid "truncating .rej filename to %.*s.rej" +msgstr "truncant el nom del fitxer .rej a %.*s.rej" + +#: builtin/apply.c:4075 +#, c-format +msgid "Hunk #%d applied cleanly." +msgstr "El tros #%d s'ha aplicat netament." + +#: builtin/apply.c:4078 +#, c-format +msgid "Rejected hunk #%d." +msgstr "S'ha rebutjat el tros #%d." + +#: builtin/apply.c:4228 +msgid "unrecognized input" +msgstr "entrada no reconegut" + +#: builtin/apply.c:4239 +msgid "unable to read index file" +msgstr "incapaç de llegir el fitxer d'Ãndex" + +#: builtin/apply.c:4358 builtin/apply.c:4361 builtin/clone.c:90 +#: builtin/fetch.c:93 +msgid "path" +msgstr "ruta" + +#: builtin/apply.c:4359 +msgid "don't apply changes matching the given path" +msgstr "no apliquis canvis que coincideixen amb la ruta donada" + +#: builtin/apply.c:4362 +msgid "apply changes matching the given path" +msgstr "aplica els canvis que coincideixen amb la ruta donada" + +#: builtin/apply.c:4364 +msgid "num" +msgstr "número" + +#: builtin/apply.c:4365 +msgid "remove <num> leading slashes from traditional diff paths" +msgstr "" +"treu <nombre> barres obliqües inicials de les rutes de diferència " +"tradicionals" + +#: builtin/apply.c:4368 +msgid "ignore additions made by the patch" +msgstr "ignora afegiments fets pel pedaç" + +#: builtin/apply.c:4370 +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:4374 +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:4376 +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:4378 +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:4380 +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:4382 +msgid "apply a patch without touching the working tree" +msgstr "aplica un pedaç sense tocar l'arbre de treball" + +#: builtin/apply.c:4384 +msgid "also apply the patch (use with --stat/--summary/--check)" +msgstr "aplica el pedaç també (utilitzeu amb --stat/--summary/--check)" + +#: builtin/apply.c:4386 +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:4388 +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:4390 builtin/checkout-index.c:198 builtin/ls-files.c:455 +msgid "paths are separated with NUL character" +msgstr "rutes es separen amb el carà cter NUL" + +#: builtin/apply.c:4393 +msgid "ensure at least <n> lines of context match" +msgstr "assegura que almenys <n> lÃnies de context coincideixin" + +#: builtin/apply.c:4394 +msgid "action" +msgstr "acció" + +#: builtin/apply.c:4395 +msgid "detect new or modified lines that have whitespace errors" +msgstr "detecta lÃnies noves o modificades que tenen errors d'espai en blanc" + +#: builtin/apply.c:4398 builtin/apply.c:4401 +msgid "ignore changes in whitespace when finding context" +msgstr "ignora els canvis d'espai en blanc al cercar context" + +#: builtin/apply.c:4404 +msgid "apply the patch in reverse" +msgstr "aplica el pedaç al revés" + +#: builtin/apply.c:4406 +msgid "don't expect at least one line of context" +msgstr "no esperis almenys una lÃnia de context" + +#: builtin/apply.c:4408 +msgid "leave the rejected hunks in corresponding *.rej files" +msgstr "deixa els trossos rebutjats en fitxers *.reg coresspondents" + +#: builtin/apply.c:4410 +msgid "allow overlapping hunks" +msgstr "permet trossos encavalcants" + +#: builtin/apply.c:4413 +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:4416 +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:4418 +msgid "root" +msgstr "arrel" + +#: builtin/apply.c:4419 +msgid "prepend <root> to all filenames" +msgstr "anteposa <arrel> a tots els noms de fitxer" + +#: builtin/apply.c:4441 +msgid "--3way outside a repository" +msgstr "--3way fora d'un repositori" + +#: builtin/apply.c:4449 +msgid "--index outside a repository" +msgstr "--index fora d'un repositori" + +#: builtin/apply.c:4452 +msgid "--cached outside a repository" +msgstr "--cached fora d'un repositori" + +#: builtin/apply.c:4468 +#, c-format +msgid "can't open patch '%s'" +msgstr "no es pot obrir el pedaç '%s'" + +#: builtin/apply.c:4482 +#, 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:4488 builtin/apply.c:4498 +#, c-format +msgid "%d line adds whitespace errors." +msgid_plural "%d lines add whitespace errors." +msgstr[0] "%d lÃnia afegeix errors d'espai en blanc." +msgstr[1] "%d lÃnies afegeixen errors d'espai en blanc." + +#: builtin/archive.c:17 +#, c-format +msgid "could not create archive file '%s'" +msgstr "no es pot crear el fitxer d'arxiu '%s'" + +#: builtin/archive.c:20 +msgid "could not redirect output" +msgstr "no s'ha pogut redirigir la sortida" + +#: builtin/archive.c:37 +msgid "git archive: Remote with no URL" +msgstr "git archive: Remot sense URL" + +#: builtin/archive.c:58 +msgid "git archive: expected ACK/NAK, got EOF" +msgstr "git archive: ACK/NAK esperat, EOF rebut" + +#: builtin/archive.c:61 +#, c-format +msgid "git archive: NACK %s" +msgstr "git archive: %s NACK" + +#: builtin/archive.c:63 +#, c-format +msgid "remote error: %s" +msgstr "error remot: %s" + +#: builtin/archive.c:64 +msgid "git archive: protocol error" +msgstr "git archive: error de protocol" + +#: builtin/archive.c:68 +msgid "git archive: expected a flush" +msgstr "git archive: rentada esperada" + +#: 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 "realitza 'git bisect next'" + +#: builtin/bisect--helper.c:19 +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:30 +msgid "git blame [options] [rev-opts] [rev] [--] file" +msgstr "git blame [opcions] [opcions-de-revisió] [revisió] [--] fitxer" + +#: builtin/blame.c:35 +msgid "[rev-opts] are documented in git-rev-list(1)" +msgstr "les [opcions-de-revisió] està n documentades en git-rev-list(1)" + +#: builtin/blame.c:2501 +msgid "Show blame entries as we find them, incrementally" +msgstr "Mostra les entrades de culpa mentre les trobem, incrementalment" + +#: builtin/blame.c:2502 +msgid "Show blank SHA-1 for boundary commits (Default: off)" +msgstr "Mostra SHA-1 blanc en comissions de frontera (Per defecte: desactivat)" + +#: builtin/blame.c:2503 +msgid "Do not treat root commits as boundaries (Default: off)" +msgstr "No tractis les comissions d'arrel com lÃmits (Per defecte: desactivat)" + +#: builtin/blame.c:2504 +msgid "Show work cost statistics" +msgstr "Mostra les estadÃstiques de preu de treball" + +#: builtin/blame.c:2505 +msgid "Show output score for blame entries" +msgstr "Mostra la puntuació de sortida de les entrades de culpa" + +#: builtin/blame.c:2506 +msgid "Show original filename (Default: auto)" +msgstr "Mostra el nom de fitxer original (Per defecte: automà tic)" + +#: builtin/blame.c:2507 +msgid "Show original linenumber (Default: off)" +msgstr "Mostra el número de lÃnia original (Per defecte: desactivat)" + +#: builtin/blame.c:2508 +msgid "Show in a format designed for machine consumption" +msgstr "Presenta en un format dissenyat per consumpció per mà quina" + +#: builtin/blame.c:2509 +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:2510 +msgid "Use the same output mode as git-annotate (Default: off)" +msgstr "" +"Utilitza el mateix mode de sortida que git-annotate (Per defecte: desactivat)" + +#: builtin/blame.c:2511 +msgid "Show raw timestamp (Default: off)" +msgstr "Mostra la marca de temps crua (Per defecte: desactivat)" + +#: builtin/blame.c:2512 +msgid "Show long commit SHA1 (Default: off)" +msgstr "Mostra l'SHA1 de comissió llarg (Per defecte: desactivat)" + +#: builtin/blame.c:2513 +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:2514 +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:2515 +msgid "Ignore whitespace differences" +msgstr "Ignora les diferencies d'espai en blanc" + +#: builtin/blame.c:2516 +msgid "Spend extra cycles to find better match" +msgstr "Gasta cicles extres per a trobar una coincidència millora" + +#: builtin/blame.c:2517 +msgid "Use revisions from <file> instead of calling git-rev-list" +msgstr "Utilitza les revisions de <file> en lloc d'invocar git-rev-list" + +#: builtin/blame.c:2518 +msgid "Use <file>'s contents as the final image" +msgstr "Utilitza els continguts de <file> com l'imatge final" + +#: builtin/blame.c:2519 builtin/blame.c:2520 +msgid "score" +msgstr "puntuació" + +#: builtin/blame.c:2519 +msgid "Find line copies within and across files" +msgstr "Troba còpies de lÃnia dins i a través de fitxers" + +#: builtin/blame.c:2520 +msgid "Find line movements within and across files" +msgstr "Troba moviments de lÃnia dins i a través de fitxers" + +#: builtin/blame.c:2521 +msgid "n,m" +msgstr "n,m" + +#: builtin/blame.c:2521 +msgid "Process only line range n,m, counting from 1" +msgstr "Processa només el rang de lÃnies n,m, contant des 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:2599 +msgid "4 years, 11 months ago" +msgstr "fa 4 anys, 11 mesos" + +#: builtin/branch.c:24 +msgid "git branch [options] [-r | -a] [--merged | --no-merged]" +msgstr "git branch [opcions] [-r | -a] [--merged | --no-merged]" + +#: builtin/branch.c:25 +msgid "git branch [options] [-l] [-f] <branchname> [<start-point>]" +msgstr "git branch [opcions] [-l] [-f] <nom-de-rama> [<punt-inicial>]" + +#: builtin/branch.c:26 +msgid "git branch [options] [-r] (-d | -D) <branchname>..." +msgstr "git branch [opcions] [-r] (-d | -D) <nom-de-rama>..." + +#: builtin/branch.c:27 +msgid "git branch [options] (-m | -M) [<oldbranch>] <newbranch>" +msgstr "git branch [opcions] (-m | -M) [<rama-antiga>] <rama-nova>" + +#: builtin/branch.c:150 +#, c-format +msgid "" +"deleting branch '%s' that has been merged to\n" +" '%s', but not yet merged to HEAD." +msgstr "" +"suprimint la rama '%s' que s'ha fusionat a\n" +" '%s', però encara no fusionat a\n" +" HEAD." + +#: builtin/branch.c:154 +#, c-format +msgid "" +"not deleting branch '%s' that is not yet merged to\n" +" '%s', even though it is merged to HEAD." +msgstr "" +"no suprimint la rama '%s' que encara no s'ha\n" +" fusionat a '%s', encara que està fusionat\n" +" a HEAD." + +#: builtin/branch.c:168 +#, c-format +msgid "Couldn't look up commit object for '%s'" +msgstr "No s'ha pogut trobar l'objecte de comissió de '%s'" + +#: builtin/branch.c:172 +#, 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 "" +"La rama '%s' no està totalment fusionada.\n" +"Si esteu segur que la voleu suprimir, executeu 'git branch -D %s'." + +#: builtin/branch.c:185 +msgid "Update of config-file failed" +msgstr "L'actualització del fitxer de configuració ha fallat" + +#: builtin/branch.c:213 +msgid "cannot use -a with -d" +msgstr "no es pot utilitzar -a amb -d" + +#: builtin/branch.c:219 +msgid "Couldn't look up commit object for HEAD" +msgstr "No s'ha pogut trobar l'objecte de comissió de HEAD" + +#: builtin/branch.c:227 +#, c-format +msgid "Cannot delete the branch '%s' which you are currently on." +msgstr "No es pot suprimir la rama '%s' en que esteu actualment." + +#: builtin/branch.c:240 +#, c-format +msgid "remote branch '%s' not found." +msgstr "rama remota '%s' no trobada." + +#: builtin/branch.c:241 +#, c-format +msgid "branch '%s' not found." +msgstr "rama '%s' no trobada" + +#: builtin/branch.c:255 +#, c-format +msgid "Error deleting remote branch '%s'" +msgstr "Error al suprimir la rama remota '%s'" + +#: builtin/branch.c:256 +#, c-format +msgid "Error deleting branch '%s'" +msgstr "Error al suprimir la rama '%s'" + +#: builtin/branch.c:263 +#, c-format +msgid "Deleted remote branch %s (was %s).\n" +msgstr "S'ha suprimit la rama remota %s (ha estat %s).\n" + +#: builtin/branch.c:264 +#, c-format +msgid "Deleted branch %s (was %s).\n" +msgstr "S'ha suprimit la rama %s (ha estat %s).\n" + +#: builtin/branch.c:366 +#, c-format +msgid "branch '%s' does not point at a commit" +msgstr "la rama '%s' no assenyala una comissió" + +#: builtin/branch.c:454 +#, c-format +msgid "[%s: gone]" +msgstr "[%s: no està ]" + +#: builtin/branch.c:459 +#, c-format +msgid "[%s]" +msgstr "[%s]" + +#: builtin/branch.c:464 +#, c-format +msgid "[%s: behind %d]" +msgstr "[%s: darrere per %d]" + +#: builtin/branch.c:466 +#, c-format +msgid "[behind %d]" +msgstr "[darrere de %d]" + +#: builtin/branch.c:470 +#, c-format +msgid "[%s: ahead %d]" +msgstr "[%s: davant per %d]" + +#: builtin/branch.c:472 +#, c-format +msgid "[ahead %d]" +msgstr "[davant per %d]" + +#: builtin/branch.c:475 +#, c-format +msgid "[%s: ahead %d, behind %d]" +msgstr "[%s: davant %d, darrere %d]" + +#: builtin/branch.c:478 +#, c-format +msgid "[ahead %d, behind %d]" +msgstr "[davant %d, darrere %d]" + +#: builtin/branch.c:502 +msgid " **** invalid ref ****" +msgstr " **** referència invà lida ****" + +#: builtin/branch.c:594 +#, c-format +msgid "(no branch, rebasing %s)" +msgstr "(cap rama, rebasant %s)" + +#: builtin/branch.c:597 +#, c-format +msgid "(no branch, bisect started on %s)" +msgstr "(cap rama, bisecció començada en %s)" + +#: builtin/branch.c:600 +#, c-format +msgid "(detached from %s)" +msgstr "(separat de %s)" + +#: builtin/branch.c:603 +msgid "(no branch)" +msgstr "(cap rama)" + +#: builtin/branch.c:649 +#, c-format +msgid "object '%s' does not point to a commit" +msgstr "l'objecte '%s' no assenyala cap comissió" + +#: builtin/branch.c:681 +msgid "some refs could not be read" +msgstr "algunes referències no s'han pogut llegir" + +#: builtin/branch.c:694 +msgid "cannot rename the current branch while not on any." +msgstr "no es pot canviar el nom de la rama actual mentre no estar en ninguna." + +#: builtin/branch.c:704 +#, c-format +msgid "Invalid branch name: '%s'" +msgstr "Nom de rama invà lid: '%s'" + +#: builtin/branch.c:719 +msgid "Branch rename failed" +msgstr "El canvi de nom de rama ha fallat" + +#: builtin/branch.c:723 +#, c-format +msgid "Renamed a misnamed branch '%s' away" +msgstr "S'ha canviat el nom de la rama malanomenada '%s'" + +#: builtin/branch.c:727 +#, c-format +msgid "Branch renamed to %s, but HEAD is not updated!" +msgstr "S'ha canviat el nom de la rama a %s, però HEAD no està actualitzat!" + +#: builtin/branch.c:734 +msgid "Branch is renamed, but update of config-file failed" +msgstr "" +"La ramà està canviada de nom, però l'actualització del fitxer de " +"configuració ha fallat" + +#: builtin/branch.c:749 +#, c-format +msgid "malformed object name %s" +msgstr "nom d'objecte %s malformat" + +#: builtin/branch.c:773 +#, c-format +msgid "could not write branch description template: %s" +msgstr "no s'ha pogut escriure la plantilla de descripció de rama: %s" + +#: builtin/branch.c:803 +msgid "Generic options" +msgstr "Opcions genèriques" + +#: builtin/branch.c:805 +msgid "show hash and subject, give twice for upstream branch" +msgstr "mostra el hash i el tema, doneu dos vegades per la rama font" + +#: builtin/branch.c:806 +msgid "suppress informational messages" +msgstr "omet els missatges informatius" + +#: builtin/branch.c:807 +msgid "set up tracking mode (see git-pull(1))" +msgstr "configura el mode de seguiment (veu git-pull(1))" + +#: builtin/branch.c:809 +msgid "change upstream info" +msgstr "canvia la informació de font" + +#: builtin/branch.c:813 +msgid "use colored output" +msgstr "utilitza sortida colorada" + +#: builtin/branch.c:814 +msgid "act on remote-tracking branches" +msgstr "actua en rames amb seguiment remot" + +#: builtin/branch.c:817 builtin/branch.c:823 builtin/branch.c:844 +#: builtin/branch.c:850 builtin/commit.c:1573 builtin/commit.c:1574 +#: builtin/commit.c:1575 builtin/commit.c:1576 builtin/tag.c:615 +#: builtin/tag.c:621 +msgid "commit" +msgstr "comissió" + +#: builtin/branch.c:818 builtin/branch.c:824 +msgid "print only branches that contain the commit" +msgstr "imprimeix només les rames que continguin la comissió" + +#: builtin/branch.c:830 +msgid "Specific git-branch actions:" +msgstr "Accions de git-branch especÃfiques:" + +#: builtin/branch.c:831 +msgid "list both remote-tracking and local branches" +msgstr "llista ambdós les rames amb seguiment remot i les locals" + +#: builtin/branch.c:833 +msgid "delete fully merged branch" +msgstr "suprimeix la rama si completament fusionada" + +#: builtin/branch.c:834 +msgid "delete branch (even if not merged)" +msgstr "suprimeix la rama (encara que no estigui fusionada)" + +#: builtin/branch.c:835 +msgid "move/rename a branch and its reflog" +msgstr "mou/canvia de nom una rama i el seu registre de referència" + +#: builtin/branch.c:836 +msgid "move/rename a branch, even if target exists" +msgstr "mou/canvia de nom una rama, encara que el destà existeixi" + +#: builtin/branch.c:837 +msgid "list branch names" +msgstr "llista els noms de rama" + +#: builtin/branch.c:838 +msgid "create the branch's reflog" +msgstr "crea el registre de referència de la rama" + +#: builtin/branch.c:840 +msgid "edit the description for the branch" +msgstr "edita la descripció de la rama" + +#: builtin/branch.c:841 +msgid "force creation (when already exists)" +msgstr "força creació (quan ja existeix)" + +#: builtin/branch.c:844 +msgid "print only not merged branches" +msgstr "imprimeix només les rames sense fusionar" + +#: builtin/branch.c:850 +msgid "print only merged branches" +msgstr "imprimeix només les rames fusionades" + +#: builtin/branch.c:854 +msgid "list branches in columns" +msgstr "llista les rames en columnes" + +#: builtin/branch.c:867 +msgid "Failed to resolve HEAD as a valid ref." +msgstr "S'ha fallat al resoldre HEAD com referència và lida." + +#: builtin/branch.c:872 builtin/clone.c:636 +msgid "HEAD not found below refs/heads!" +msgstr "HEAD no trobat baix refs/heads!" + +#: builtin/branch.c:896 +msgid "--column and --verbose are incompatible" +msgstr "--column i --verbose són incompatibles" + +#: builtin/branch.c:902 builtin/branch.c:941 +msgid "branch name required" +msgstr "cal el nom de rama" + +#: builtin/branch.c:917 +msgid "Cannot give description to detached HEAD" +msgstr "No es pot donar descripció a un HEAD separat" + +#: builtin/branch.c:922 +msgid "cannot edit description of more than one branch" +msgstr "no es pot editar la descripció de més d'una rama" + +#: builtin/branch.c:929 +#, c-format +msgid "No commit on branch '%s' yet." +msgstr "Encara cap comissió en la rama '%s'." + +#: builtin/branch.c:932 +#, c-format +msgid "No branch named '%s'." +msgstr "Cap rama amb nom '%s'." + +#: builtin/branch.c:947 +msgid "too many branches for a rename operation" +msgstr "massa rames per a una operació de canvi de nom" + +#: builtin/branch.c:952 +msgid "too many branches to set new upstream" +msgstr "massa rames per a establir una nova font" + +#: builtin/branch.c:956 +#, 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 %s quan no assenyala cap rama." + +#: builtin/branch.c:959 builtin/branch.c:981 builtin/branch.c:1002 +#, c-format +msgid "no such branch '%s'" +msgstr "cap rama aixà '%s'" + +#: builtin/branch.c:963 +#, c-format +msgid "branch '%s' does not exist" +msgstr "la rama '%s' no existeix" + +#: builtin/branch.c:975 +msgid "too many branches to unset upstream" +msgstr "massa rames per a desestablir la font" + +#: builtin/branch.c:979 +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 quan no assenyala cap rama." + +#: builtin/branch.c:985 +#, c-format +msgid "Branch '%s' has no upstream information" +msgstr "La rama '%s' no té informació de font" + +#: builtin/branch.c:999 +msgid "it does not make sense to create 'HEAD' manually" +msgstr "no té sentit crear 'HEAD' manualment" + +#: builtin/branch.c:1005 +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 rama" + +#: builtin/branch.c:1008 +#, c-format +msgid "" +"The --set-upstream flag is deprecated and will be removed. Consider using --" +"track or --set-upstream-to\n" +msgstr "" +"La bandera --set-upstream està desaprovada i es traurà . Considereu utilitzar " +"--track o --set-upstream-to\n" + +#: builtin/branch.c:1025 +#, c-format +msgid "" +"\n" +"If you wanted to make '%s' track '%s', do this:\n" +"\n" +msgstr "" +"\n" +"Si volÃeu fer '%s' seguir '%s', feu això:\n" +"\n" + +#: builtin/branch.c:1026 +#, c-format +msgid " git branch -d %s\n" +msgstr " git branch -d %s\n" + +#: builtin/branch.c:1027 +#, c-format +msgid " git branch --set-upstream-to %s\n" +msgstr " git branch --set-upstream-to %s\n" + +#: builtin/bundle.c:47 +#, c-format +msgid "%s is okay\n" +msgstr "%s està bé\n" + +#: builtin/bundle.c:56 +msgid "Need a repository to create a bundle." +msgstr "Cal un repositori per fer un embolic." + +#: builtin/bundle.c:60 +msgid "Need a repository to unbundle." +msgstr "Cal un repositori per desembolicar." + +#: builtin/cat-file.c:331 +msgid "git cat-file (-t|-s|-e|-p|<type>|--textconv) <object>" +msgstr "git cat-file (-t|-s|-e|-p|<tipus>|--textconv) <objecte>" + +#: builtin/cat-file.c:332 +msgid "git cat-file (--batch|--batch-check) < <list_of_objects>" +msgstr "git cat-file (--batch|--batch-check) < <llista_de_objectes>" + +#: builtin/cat-file.c:369 +msgid "<type> can be one of: blob, tree, commit, tag" +msgstr "<tipus> pot ser un de: blob, tree, commit, tag" + +#: builtin/cat-file.c:370 +msgid "show object type" +msgstr "mostra el tipus de l'objecte" + +#: builtin/cat-file.c:371 +msgid "show object size" +msgstr "mostra la mida de l'objecte" + +#: builtin/cat-file.c:373 +msgid "exit with zero when there's no error" +msgstr "surt amb zero quan no hi ha error" + +#: builtin/cat-file.c:374 +msgid "pretty-print object's content" +msgstr "imprimeix bellament el contingut de l'objecte " + +#: builtin/cat-file.c:376 +msgid "for blob objects, run textconv on object's content" +msgstr "en els objectes de blob, executa textconv en el contingut de l'objecte" + +#: builtin/cat-file.c:378 +msgid "show info and content of objects fed from the standard input" +msgstr "" +"mostra la informació i contingut dels objectes rebuts de l'entrada està ndard" + +#: builtin/cat-file.c:381 +msgid "show info about objects fed from the standard input" +msgstr "mostra informació sobre els objectes rebuts de l'entrada està ndard" + +#: builtin/check-attr.c:11 +msgid "git check-attr [-a | --all | attr...] [--] pathname..." +msgstr "git check-attr [-a | --all | atribut...] [--] nom-de-ruta..." + +#: builtin/check-attr.c:12 +msgid "git check-attr --stdin [-z] [-a | --all | attr...] < <list-of-paths>" +msgstr "" +"git check-attr --stdin [-z] [-a | --all | atribut...] < <llista-de-rutes>" + +#: builtin/check-attr.c:19 +msgid "report all attributes set on file" +msgstr "informa de tots els atributs establerts en el fitxer" + +#: builtin/check-attr.c:20 +msgid "use .gitattributes only from the index" +msgstr "utilitza .gitattributes només des de l'Ãndex" + +#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:75 +msgid "read file names from stdin" +msgstr "llegeix els noms de fitxer de stdin" + +#: builtin/check-attr.c:23 builtin/check-ignore.c:24 +msgid "terminate input and output records by a NUL character" +msgstr "termina els registres d'entrada i de salida per un carà cter NUL" + +#: builtin/check-ignore.c:18 builtin/checkout.c:1083 builtin/gc.c:285 +msgid "suppress progress reporting" +msgstr "omet el reportatge de progrés" + +#: builtin/check-ignore.c:26 +msgid "show non-matching input paths" +msgstr "mostra les rutes d'entrada que no coincideixen" + +#: builtin/check-ignore.c:28 +msgid "ignore index when checking" +msgstr "ignora l'Ãndex al comprovar" + +#: builtin/check-ignore.c:154 +msgid "cannot specify pathnames with --stdin" +msgstr "no es pot especificar noms de ruta amb --stdin" + +#: builtin/check-ignore.c:157 +msgid "-z only makes sense with --stdin" +msgstr "-z només té sentit amb --stdin" + +#: builtin/check-ignore.c:159 +msgid "no path specified" +msgstr "cap ruta especificada" + +#: builtin/check-ignore.c:163 +msgid "--quiet is only valid with a single pathname" +msgstr "--quiet només és và lid amb un nom de ruta solter" + +#: builtin/check-ignore.c:165 +msgid "cannot have both --quiet and --verbose" +msgstr "no es pot tenir ambdós --quiet i --verbose" + +#: builtin/check-ignore.c:168 +msgid "--non-matching is only valid with --verbose" +msgstr "--non-matching és và lid només amb --verbose" + +#: builtin/check-mailmap.c:8 +msgid "git check-mailmap [options] <contact>..." +msgstr "git check-mailmap [opcions] <contacte>..." + +#: builtin/check-mailmap.c:13 +msgid "also read contacts from stdin" +msgstr "també llegeix els contactes des de stdin" + +#: builtin/check-mailmap.c:24 +#, c-format +msgid "unable to parse contact: %s" +msgstr "incapaç d'analitzar el contacte: %s" + +#: builtin/check-mailmap.c:47 +msgid "no contacts specified" +msgstr "cap contacte especificat" + +#: builtin/checkout-index.c:126 +msgid "git checkout-index [options] [--] [<file>...]" +msgstr "git checkout-index [opcions] [--] [<fitxer>...]" + +#: builtin/checkout-index.c:188 +msgid "check out all files in the index" +msgstr "agafa tots els fitxers en l'Ãndex" + +#: builtin/checkout-index.c:189 +msgid "force overwrite of existing files" +msgstr "força la sobreescriptura de fitxers existents" + +#: builtin/checkout-index.c:191 +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 +msgid "don't checkout new files" +msgstr "no agafis fitxers nous" + +#: builtin/checkout-index.c:195 +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 +msgid "read list of paths from the standard input" +msgstr "llegeix la llista de rutes des de l'entrada està ndard" + +#: builtin/checkout-index.c:203 +msgid "write the content to temporary files" +msgstr "escriu el contingut a fitxers temporals" + +#: builtin/checkout-index.c:204 builtin/column.c:30 +msgid "string" +msgstr "cadena" + +#: builtin/checkout-index.c:205 +msgid "when creating files, prepend <string>" +msgstr "al crear fitxers, anteposa <cadena>" + +#: builtin/checkout-index.c:208 +msgid "copy out the files from named stage" +msgstr "copia els fitxers des de l'etapa anomenada" + +#: builtin/checkout.c:25 +msgid "git checkout [options] <branch>" +msgstr "git checkout [opcions] <rama>" + +#: builtin/checkout.c:26 +msgid "git checkout [options] [<branch>] -- <file>..." +msgstr "git checkout [opcions] [<rama>] -- <fitxer>..." + +#: builtin/checkout.c:114 builtin/checkout.c:147 +#, c-format +msgid "path '%s' does not have our version" +msgstr "la ruta '%s' no té la versió nostra" + +#: builtin/checkout.c:116 builtin/checkout.c:149 +#, c-format +msgid "path '%s' does not have their version" +msgstr "la ruta '%s' no té la versió seva" + +#: builtin/checkout.c:132 +#, c-format +msgid "path '%s' does not have all necessary versions" +msgstr "la ruta '%s' no té totes les versions necessà ries" + +#: builtin/checkout.c:176 +#, c-format +msgid "path '%s' does not have necessary versions" +msgstr "la ruta '%s' no té les versions necessà ries" + +#: builtin/checkout.c:193 +#, c-format +msgid "path '%s': cannot merge" +msgstr "ruta '%s': no es pot fusionar" + +#: builtin/checkout.c:210 +#, c-format +msgid "Unable to add merge result for '%s'" +msgstr "Incapaç d'afegir el resultat de fusió per a '%s'" + +#: builtin/checkout.c:231 builtin/checkout.c:234 builtin/checkout.c:237 +#: builtin/checkout.c:240 +#, c-format +msgid "'%s' cannot be used with updating paths" +msgstr "'%s' no es pot utilitzar al actualitzar rutes" + +#: builtin/checkout.c:243 builtin/checkout.c:246 +#, c-format +msgid "'%s' cannot be used with %s" +msgstr "'%s' no es pot utilitzar amb %s" + +#: builtin/checkout.c:249 +#, c-format +msgid "Cannot update paths and switch to branch '%s' at the same time." +msgstr "No es pot actualitzar les rutes i canviar a la rama '%s' a la vegada." + +#: builtin/checkout.c:260 builtin/checkout.c:449 +msgid "corrupt index file" +msgstr "fitxer d'Ãndex corrupte" + +#: builtin/checkout.c:320 builtin/checkout.c:327 +#, c-format +msgid "path '%s' is unmerged" +msgstr "la ruta '%s' està sense fusionar" + +#: builtin/checkout.c:471 +msgid "you need to resolve your current index first" +msgstr "heu de resoldre el vostre Ãndex actual primer" + +#: builtin/checkout.c:591 +#, c-format +msgid "Can not do reflog for '%s'\n" +msgstr "No es pot fer reflog per a '%s'\n" + +#: builtin/checkout.c:629 +msgid "HEAD is now at" +msgstr "HEAD ara està a" + +#: builtin/checkout.c:636 +#, c-format +msgid "Reset branch '%s'\n" +msgstr "Restableix la rama '%s'\n" + +#: builtin/checkout.c:639 +#, c-format +msgid "Already on '%s'\n" +msgstr "Ja en '%s'\n" + +#: builtin/checkout.c:643 +#, c-format +msgid "Switched to and reset branch '%s'\n" +msgstr "Rama '%s' agafat i restablit\n" + +#: builtin/checkout.c:645 builtin/checkout.c:1026 +#, c-format +msgid "Switched to a new branch '%s'\n" +msgstr "Rama nova '%s' agafada\n" + +#: builtin/checkout.c:647 +#, c-format +msgid "Switched to branch '%s'\n" +msgstr "Rama '%s' agafada\n" + +#: builtin/checkout.c:699 +#, c-format +msgid " ... and %d more.\n" +msgstr " ... i %d més.\n" + +#: builtin/checkout.c:705 +#, c-format +msgid "" +"Warning: you are leaving %d commit behind, not connected to\n" +"any of your branches:\n" +"\n" +"%s\n" +msgid_plural "" +"Warning: you are leaving %d commits behind, not connected to\n" +"any of your branches:\n" +"\n" +"%s\n" +msgstr[0] "" +"AvÃs: esteu deixant %d comissió darrere, no connectada a\n" +"qualsevulla de les vostres rames:\n" +"\n" +"%s\n" +msgstr[1] "" +"AvÃs: esteu deixant %d comissions darrere, no connectada a\n" +"qualsevulla de les vostres rames:\n" +"\n" +"%s\n" + +#: builtin/checkout.c:723 +#, c-format +msgid "" +"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" +"\n" +msgstr "" +"Si els voleu retenir per crear una rama nova, ara pot ser una hora bona\n" +"per fer això amb:\n" +"\n" +" git branch new_branch_name %s\n" +"\n" + +#: builtin/checkout.c:753 +msgid "internal error in revision walk" +msgstr "error intern en el passeig per revisions" + +#: builtin/checkout.c:757 +msgid "Previous HEAD position was" +msgstr "La posició de HEAD anterior ha estat" + +#: builtin/checkout.c:784 builtin/checkout.c:1021 +msgid "You are on a branch yet to be born" +msgstr "Esteu en una rama que encara ha de naixer" + +#: builtin/checkout.c:928 +#, c-format +msgid "only one reference expected, %d given." +msgstr "només una referència esperada, %d donades." + +#: builtin/checkout.c:967 +#, c-format +msgid "invalid reference: %s" +msgstr "referència invà lida: %s" + +#: builtin/checkout.c:996 +#, c-format +msgid "reference is not a tree: %s" +msgstr "la referéncia no és un arbre: %s" + +#: builtin/checkout.c:1035 +msgid "paths cannot be used with switching branches" +msgstr "les rutes no es poden utilitzar amb canvi de rama" + +#: builtin/checkout.c:1038 builtin/checkout.c:1042 +#, c-format +msgid "'%s' cannot be used with switching branches" +msgstr "'%s' no es pot utilitzar amb canvi de rama" + +#: builtin/checkout.c:1046 builtin/checkout.c:1049 builtin/checkout.c:1054 +#: builtin/checkout.c:1057 +#, c-format +msgid "'%s' cannot be used with '%s'" +msgstr "'%s' no es pot utilitzar amb '%s'" + +#: builtin/checkout.c:1062 +#, c-format +msgid "Cannot switch branch to a non-commit '%s'" +msgstr "No es pot canviar la rama a un no comissió '%s'" + +#: builtin/checkout.c:1084 builtin/checkout.c:1086 builtin/clone.c:88 +#: builtin/remote.c:159 builtin/remote.c:161 +msgid "branch" +msgstr "rama" + +#: builtin/checkout.c:1085 +msgid "create and checkout a new branch" +msgstr "crea i agafa una rama nova" + +#: builtin/checkout.c:1087 +msgid "create/reset and checkout a branch" +msgstr "crea/restableix i agafa una rama" + +#: builtin/checkout.c:1088 +msgid "create reflog for new branch" +msgstr "Crea un registre de referència per a la rama nova" + +#: builtin/checkout.c:1089 +msgid "detach the HEAD at named commit" +msgstr "separa el HEAD a la comissió anomenada" + +#: builtin/checkout.c:1090 +msgid "set upstream info for new branch" +msgstr "estableix la informació de font de la rama nova" + +#: builtin/checkout.c:1092 +msgid "new-branch" +msgstr "nova-rama" + +#: builtin/checkout.c:1092 +msgid "new unparented branch" +msgstr "nova rama sense pares" + +#: builtin/checkout.c:1093 +msgid "checkout our version for unmerged files" +msgstr "agafa la versió nostra de fitxers sense fusionar" + +#: builtin/checkout.c:1095 +msgid "checkout their version for unmerged files" +msgstr "agafa la versió seva de fitxers sense fusionar" + +#: builtin/checkout.c:1097 +msgid "force checkout (throw away local modifications)" +msgstr "agafa a la força (descarta qualsevulles modificacions locals)" + +#: builtin/checkout.c:1098 +msgid "perform a 3-way merge with the new branch" +msgstr "realitza una fusió de 3 vies amb la rama nova" + +#: builtin/checkout.c:1099 builtin/merge.c:225 +msgid "update ignored files (default)" +msgstr "actualitza els fitxers ignorats (per defecte)" + +#: builtin/checkout.c:1100 builtin/log.c:1236 parse-options.h:245 +msgid "style" +msgstr "estil" + +#: builtin/checkout.c:1101 +msgid "conflict style (merge or diff3)" +msgstr "estil de conflicte (fusió o diff3)" + +#: builtin/checkout.c:1104 +msgid "do not limit pathspecs to sparse entries only" +msgstr "no limitis les especificacions de ruta a entrades escasses només" + +#: builtin/checkout.c:1106 +msgid "second guess 'git checkout no-such-branch'" +msgstr "dubta 'git checkout cap-rama-aixÃ'" + +#: builtin/checkout.c:1129 +msgid "-b, -B and --orphan are mutually exclusive" +msgstr "-b, -B i --orphan són mutualment exclusius" + +#: builtin/checkout.c:1146 +msgid "--track needs a branch name" +msgstr "--track necessita un nom de rama" + +#: builtin/checkout.c:1153 +msgid "Missing branch name; try -b" +msgstr "Manca el nom de rama; proveu -b" + +#: builtin/checkout.c:1190 +msgid "invalid path specification" +msgstr "especificació de ruta invà lida" + +#: builtin/checkout.c:1197 +#, 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 "" +"No es pot actualitzar rames i canviar a la rama '%s' a la vegada.\n" +"VolÃeu agafar '%s' la qual no es pot resoldre com comissió?" + +#: builtin/checkout.c:1202 +#, c-format +msgid "git checkout: --detach does not take a path argument '%s'" +msgstr "git checkout: --detach no accepta un parà metre de ruta '%s'" + +#: builtin/checkout.c:1206 +msgid "" +"git checkout: --ours/--theirs, --force and --merge are incompatible when\n" +"checking out of the index." +msgstr "" +"git checkout: --ours/--theirs, --force i --merge són incompatibles al\n" +"agafar de l'Ãndex." + +#: builtin/clean.c:26 +msgid "" +"git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <paths>..." +msgstr "" +"git clean [-d] [-f] [-i] [-n] [-q] [-e <patró>] [-x | -X] [--] <rutes>..." + +#: builtin/clean.c:30 +#, c-format +msgid "Removing %s\n" +msgstr "Traient %s\n" + +#: builtin/clean.c:31 +#, c-format +msgid "Would remove %s\n" +msgstr "Trauria %s\n" + +#: builtin/clean.c:32 +#, c-format +msgid "Skipping repository %s\n" +msgstr "Saltant el repositori %s\n" + +#: builtin/clean.c:33 +#, c-format +msgid "Would skip repository %s\n" +msgstr "Saltaria el repositori %s\n" + +#: builtin/clean.c:34 +#, c-format +msgid "failed to remove %s" +msgstr "s'ha fallat al treure %s" + +#: builtin/clean.c:295 +msgid "" +"Prompt help:\n" +"1 - select a numbered item\n" +"foo - select item based on unique prefix\n" +" - (empty) select nothing" +msgstr "" +"Ajuda d'avÃs:\n" +"1 - selecciona un Ãtem numerat\n" +"foo - selecciona un Ãtem basat en un prefix únic\n" +" - (buit) selecciona res" + +#: builtin/clean.c:299 +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 d'avÃs:\n" +"1 - selecciona un Ãtem solter\n" +"3-5 - selecciona un rang d'Ãtems\n" +"2-3,6-9 - selecciona múltiples rangs\n" +"foo - selecciona un Ãtem basat en un prefix únic\n" +"-... - desselecciona els Ãtems seleccionats\n" +"* - tria tots els Ãtems\n" +" - (buit) termina la selecció" + +#: builtin/clean.c:517 +#, c-format +msgid "Huh (%s)?" +msgstr "Perdó (%s)?" + +#: builtin/clean.c:659 +#, c-format +msgid "Input ignore patterns>> " +msgstr "Introduïu patrons que ignorar>> " + +#: builtin/clean.c:696 +#, c-format +msgid "WARNING: Cannot find items matched by: %s" +msgstr "AVÃS: No es pot trobar Ãtems que coincideixen amb: %s" + +#: builtin/clean.c:717 +msgid "Select items to delete" +msgstr "Selecciona els Ãtems que suprimir" + +#: builtin/clean.c:757 +#, c-format +msgid "remove %s? " +msgstr "treure %s?" + +#: builtin/clean.c:782 +msgid "Bye." +msgstr "Adéu." + +#: builtin/clean.c:790 +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 - comença a netejar\n" +"filter by pattern - exclou Ãtems de supressió\n" +"select by numbers - selecciona Ãtems que suprimir per números\n" +"ask each - confirma cada supressió (com a \"rm -i\")\n" +"quit - deixa de netejar\n" +"help - aquesta pantalla\n" +"? - ajuda per selecció de l'avÃs" + +#: builtin/clean.c:817 +msgid "*** Commands ***" +msgstr "*** Ordres ***" + +#: builtin/clean.c:818 +msgid "What now" +msgstr "Què ara" + +#: builtin/clean.c:826 +msgid "Would remove the following item:" +msgid_plural "Would remove the following items:" +msgstr[0] "Trauria l'Ãtem següent:" +msgstr[1] "Trauria els Ãtems següents:" + +#: builtin/clean.c:843 +msgid "No more files to clean, exiting." +msgstr "No hi ha més fitxers que netejar; sortint." + +#: builtin/clean.c:874 +msgid "do not print names of files removed" +msgstr "no imprimeixis els noms dels fitxers trets" + +#: builtin/clean.c:876 +msgid "force" +msgstr "força" + +#: builtin/clean.c:877 +msgid "interactive cleaning" +msgstr "neteja interactiva" + +#: builtin/clean.c:879 +msgid "remove whole directories" +msgstr "treu directoris enters" + +#: builtin/clean.c:880 builtin/describe.c:406 builtin/grep.c:714 +#: builtin/ls-files.c:486 builtin/name-rev.c:311 builtin/show-ref.c:185 +msgid "pattern" +msgstr "patró" + +#: builtin/clean.c:881 +msgid "add <pattern> to ignore rules" +msgstr "afegiu <patró> per ignorar les regles" + +#: builtin/clean.c:882 +msgid "remove ignored files, too" +msgstr "treu els fitxers ignorats, també" + +#: builtin/clean.c:884 +msgid "remove only ignored files" +msgstr "treu només els fitxers ignorats" + +#: builtin/clean.c:902 +msgid "-x and -X cannot be used together" +msgstr "-x i -X no es poden utilitzar junts" + +#: builtin/clean.c:906 +msgid "" +"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to " +"clean" +msgstr "" +"clean.requireForce estaberta a veritat i ni -i, -n ni -f donat; refusant " +"netejar" + +#: builtin/clean.c:909 +msgid "" +"clean.requireForce defaults to true and neither -i, -n, nor -f given; " +"refusing to clean" +msgstr "" +"clean.requireForce és per defecte veritat i ni -i, -n ni -f donat; refusant " +"netejar" + +#: builtin/clone.c:36 +msgid "git clone [options] [--] <repo> [<dir>]" +msgstr "git clone [opcions] [--] <repositori> [<directori>]" + +#: builtin/clone.c:64 builtin/fetch.c:112 builtin/merge.c:222 +#: builtin/push.c:503 +msgid "force progress reporting" +msgstr "força l'informe de progrés" + +#: builtin/clone.c:66 +msgid "don't create a checkout" +msgstr "no fes una agafada" + +#: builtin/clone.c:67 builtin/clone.c:69 builtin/init-db.c:486 +msgid "create a bare repository" +msgstr "crea un repositori nu" + +#: builtin/clone.c:71 +msgid "create a mirror repository (implies bare)" +msgstr "crea un repositori reflectit (implica nu)" + +#: builtin/clone.c:73 +msgid "to clone from a local repository" +msgstr "per a clonar des d'un repositori local" + +#: builtin/clone.c:75 +msgid "don't use local hardlinks, always copy" +msgstr "no utilitzeu enllaços durs locals, sempre copia" + +#: builtin/clone.c:77 +msgid "setup as shared repository" +msgstr "configura com repositori compartit" + +#: builtin/clone.c:79 builtin/clone.c:81 +msgid "initialize submodules in the clone" +msgstr "initialitza els submòduls en el clon" + +#: builtin/clone.c:82 builtin/init-db.c:483 +msgid "template-directory" +msgstr "directori-de-plantilla" + +#: builtin/clone.c:83 builtin/init-db.c:484 +msgid "directory from which templates will be used" +msgstr "directori del qual les plantilles s'utilitzaran" + +#: builtin/clone.c:85 +msgid "reference repository" +msgstr "repositori de referència" + +#: builtin/clone.c:86 builtin/column.c:26 builtin/merge-file.c:44 +msgid "name" +msgstr "nom" + +#: builtin/clone.c:87 +msgid "use <name> instead of 'origin' to track upstream" +msgstr "utilitza <nom> en lloc de 'origin' per seguir la font" + +#: builtin/clone.c:89 +msgid "checkout <branch> instead of the remote's HEAD" +msgstr "agafa <rama> en lloc del HEAD del remot" + +#: builtin/clone.c:91 +msgid "path to git-upload-pack on the remote" +msgstr "ruta a git-upload-pack en el remot" + +#: builtin/clone.c:92 builtin/fetch.c:113 builtin/grep.c:659 +msgid "depth" +msgstr "profunditat" + +#: builtin/clone.c:93 +msgid "create a shallow clone of that depth" +msgstr "crea un clon superficial de tal profunditat" + +#: builtin/clone.c:95 +msgid "clone only one branch, HEAD or --branch" +msgstr "cona només una rama, HEAD o --branch" + +#: builtin/clone.c:96 builtin/init-db.c:492 +msgid "gitdir" +msgstr "directori de git" + +#: builtin/clone.c:97 builtin/init-db.c:493 +msgid "separate git dir from working tree" +msgstr "separa el directori de git de l'arbre de treball" + +#: builtin/clone.c:98 +msgid "key=value" +msgstr "calu=valor" + +#: builtin/clone.c:99 +msgid "set config inside the new repository" +msgstr "estableix la configuració dins del repositori nou" + +#: builtin/clone.c:252 +#, c-format +msgid "reference repository '%s' is not a local repository." +msgstr "el repositori de referència '%s' no és un repositori local." + +#: builtin/clone.c:256 +#, c-format +msgid "reference repository '%s' is shallow" +msgstr "el repositori de referència '%s' és superficial" + +#: builtin/clone.c:259 +#, c-format +msgid "reference repository '%s' is grafted" +msgstr "el repositori de referència '%s' és empeltat" + +#: builtin/clone.c:321 +#, c-format +msgid "failed to create directory '%s'" +msgstr "s'ha fallat al crear el directori '%s'" + +#: builtin/clone.c:323 builtin/diff.c:83 +#, c-format +msgid "failed to stat '%s'" +msgstr "s'ha fallat al fer stat a '%s'" + +#: builtin/clone.c:325 +#, c-format +msgid "%s exists and is not a directory" +msgstr "%s existeix i no és un directori" + +#: builtin/clone.c:339 +#, c-format +msgid "failed to stat %s\n" +msgstr "s'ha fallat al fer stat a '%s'\n" + +#: builtin/clone.c:361 +#, c-format +msgid "failed to create link '%s'" +msgstr "s'ha fallat al crear l'enllaç '%s'" + +#: builtin/clone.c:365 +#, c-format +msgid "failed to copy file to '%s'" +msgstr "s'ha fallat al copiar el fitxer a '%s'" + +#: builtin/clone.c:388 builtin/clone.c:565 +#, c-format +msgid "done.\n" +msgstr "fet.\n" + +#: builtin/clone.c:401 +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 "" +"La clonació ha tingut éxit, però l'agafada ha fallat.\n" +"Podeu inspeccionar què s'ha agafat amb 'git status' i\n" +"reintentar l'agafada amb 'git checkout -f HEAD'\n" + +#: builtin/clone.c:480 +#, c-format +msgid "Could not find remote branch %s to clone." +msgstr "No s'ha pogut trobar la rama remota %s per a clonar." + +#: builtin/clone.c:560 +#, c-format +msgid "Checking connectivity... " +msgstr "Provant connectivitat... " + +#: builtin/clone.c:563 +msgid "remote did not send all necessary objects" +msgstr "el remot no ha enviat tots els objectes necessaris" + +#: builtin/clone.c:627 +msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n" +msgstr "" +"el HEAD remot es refereix a una referència que no existeix; incapaç " +"d'agafar.\n" + +#: builtin/clone.c:658 +msgid "unable to checkout working tree" +msgstr "incapaç d'agafar l'arbre de treball" + +#: builtin/clone.c:768 +msgid "Too many arguments." +msgstr "Massa parà metres." + +#: builtin/clone.c:772 +msgid "You must specify a repository to clone." +msgstr "Heu d'especificar un repositori que clonar." + +#: builtin/clone.c:783 +#, c-format +msgid "--bare and --origin %s options are incompatible." +msgstr "les opcions --bare i --origin %s són incompatibles." + +#: builtin/clone.c:786 +msgid "--bare and --separate-git-dir are incompatible." +msgstr "--bare i --separate-git-dir són incompatibles." + +#: builtin/clone.c:799 +#, c-format +msgid "repository '%s' does not exist" +msgstr "el repositori '%s' no existeix" + +#: builtin/clone.c:805 builtin/fetch.c:1143 +#, c-format +msgid "depth %s is not a positive number" +msgstr "la profunditat %s no és nombre positiu" + +#: builtin/clone.c:815 +#, c-format +msgid "destination path '%s' already exists and is not an empty directory." +msgstr "la ruta destà '%s' ja existeix i no és un directori buit." + +#: builtin/clone.c:825 +#, c-format +msgid "working tree '%s' already exists." +msgstr "l'arbre de treball '%s' ja existeix." + +#: builtin/clone.c:838 builtin/clone.c:850 +#, c-format +msgid "could not create leading directories of '%s'" +msgstr "no s'ha pogut crear els directoris inicials de '%s'" + +#: builtin/clone.c:841 +#, 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:860 +#, c-format +msgid "Cloning into bare repository '%s'...\n" +msgstr "Clonant al repositori nu '%s'...\n" + +#: builtin/clone.c:862 +#, c-format +msgid "Cloning into '%s'...\n" +msgstr "Clonant a '%s'...\n" + +#: builtin/clone.c:898 +msgid "--depth is ignored in local clones; use file:// instead." +msgstr "--depth s'ignora en clons locals; utilitzeu file:// en lloc." + +#: builtin/clone.c:901 +msgid "source repository is shallow, ignoring --local" +msgstr "el repositori font és superficial, ignorant --local" + +#: builtin/clone.c:906 +msgid "--local is ignored" +msgstr "--local s'ignora" + +#: builtin/clone.c:910 +#, c-format +msgid "Don't know how to clone %s" +msgstr "No es sap com clonar %s" + +#: builtin/clone.c:961 builtin/clone.c:969 +#, c-format +msgid "Remote branch %s not found in upstream %s" +msgstr "La rama remota %s no es troba en la font %s" + +#: builtin/clone.c:972 +msgid "You appear to have cloned an empty repository." +msgstr "Sembla que heu clonat un repositori buit." + +#: builtin/column.c:9 +msgid "git column [options]" +msgstr "git column [opcions]" + +#: builtin/column.c:26 +msgid "lookup config vars" +msgstr "cerca els variables de configuració" + +#: builtin/column.c:27 builtin/column.c:28 +msgid "layout to use" +msgstr "pla que utilitzar" + +#: builtin/column.c:29 +msgid "Maximum width" +msgstr "Amplada mà xima" + +#: builtin/column.c:30 +msgid "Padding space on left border" +msgstr "Espai d'encoixinada en el marge esquerre" + +#: builtin/column.c:31 +msgid "Padding space on right border" +msgstr "Espai d'encoixinada en el marge dret" + +#: builtin/column.c:32 +msgid "Padding space between columns" +msgstr "Espai d'encoixinada entre columnes" + +#: builtin/column.c:51 +msgid "--command must be the first argument" +msgstr "--command ha de ser el primer parà metre" + +#: builtin/commit.c:36 +msgid "git commit [options] [--] <pathspec>..." +msgstr "git commit [opcions] [--] <especificació-de-ruta>..." + +#: builtin/commit.c:41 +msgid "git status [options] [--] <pathspec>..." +msgstr "git status [opcions] [--] <especificació-de-ruta>..." + +#: builtin/commit.c:46 +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:\n" +"\n" +" git config --global user.name \"Your Name\"\n" +" git config --global user.email you@example.com\n" +"\n" +"After doing this, you may fix the identity used for this commit with:\n" +"\n" +" git commit --amend --reset-author\n" +msgstr "" +"S'han configurat el vostre nom i adreça de correu electrònic\n" +"automà ticament basats en el vostre nom d'usuari i nom de host. Si us\n" +"plau, comproveu que siguin correctes. Podeu suprimir aquest missatge\n" +"per establir-los explÃcitament:\n" +"\n" +" git config --global user.name \"El Vostre Nom\"\n" +" git config --global user.email tu@example.com\n" +"\n" +"Després de fer això, podeu arreglar la identitat utilitzada per a\n" +"aquesta comissió amb:\n" +"\n" +" git commit --amend --reset-author\n" + +#: builtin/commit.c:58 +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 "" +"Heu demanat esmenar la comissió més recent, però fer això la feria\n" +"buida. Podeu repetir el vostre ordre amb --allow-empty, o podeu\n" +"treure la comissió per complet amb \"git reset HEAD^\".\n" + +#: builtin/commit.c:63 +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" +msgstr "" +"El recull de cireres previ ja està buit, possiblement a causa de resolució " +"de conflicte.\n" +"Si el voleu cometre de totes maneres, utilitzeu:\n" +"\n" +" git commit --allow-empty\n" +"\n" + +#: builtin/commit.c:70 +msgid "Otherwise, please use 'git reset'\n" +msgstr "D'altra manera, si us plau, utilitzeu 'git reset'\n" + +#: builtin/commit.c:73 +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 "" +"Si voleu saltar aquesta comissió, utilitzeu:\n" +"\n" +" git reset\n" +"\n" +"Llavors \"git cherry-pick --continue\" reprendrà recollint\n" +"com cireres les comissions restants.\n" + +#: builtin/commit.c:288 +msgid "failed to unpack HEAD tree object" +msgstr "s'ha fallat al desempaquetar l'objecte d'arbre HEAD" + +#: builtin/commit.c:328 +msgid "unable to create temporary index" +msgstr "incapaç de crear un Ãndex temporal" + +#: builtin/commit.c:334 +msgid "interactive add failed" +msgstr "l'afegiment interactiu ha fallat" + +#: builtin/commit.c:366 builtin/commit.c:387 builtin/commit.c:435 +msgid "unable to write new_index file" +msgstr "incapaç d'escriure el fitxer new_index" + +#: builtin/commit.c:418 +msgid "cannot do a partial commit during a merge." +msgstr "no es pot fer una comissió parcial durant una fusió." + +#: builtin/commit.c:420 +msgid "cannot do a partial commit during a cherry-pick." +msgstr "no es pot fer una comissió parcial durant un recull de cireres." + +#: builtin/commit.c:429 +msgid "cannot read the index" +msgstr "no es pot llegir l'Ãndex" + +#: builtin/commit.c:447 +msgid "unable to write temporary index file" +msgstr "incapaç d'escriure un fitxer d'Ãndex temporal" + +#: builtin/commit.c:557 builtin/commit.c:563 +#, c-format +msgid "invalid commit: %s" +msgstr "comissió invà lida: %s" + +#: builtin/commit.c:585 +msgid "malformed --author parameter" +msgstr "parà metre --author malformat" + +#: builtin/commit.c:592 +#, c-format +msgid "invalid date format: %s" +msgstr "format de data invà lid: %s" + +#: builtin/commit.c:609 +#, c-format +msgid "Malformed ident string: '%s'" +msgstr "Cadena d'identificació malformada: '%s'" + +#: builtin/commit.c:642 +msgid "" +"unable to select a comment character that is not used\n" +"in the current commit message" +msgstr "" +"incapaç de seleccionar un carà cter de comentari que\n" +"no sigui utilitzat en el missatge de comissió actual" + +#: builtin/commit.c:679 builtin/commit.c:712 builtin/commit.c:1086 +#, c-format +msgid "could not lookup commit %s" +msgstr "no s'ha pogut trobar la comissió %s" + +#: builtin/commit.c:691 builtin/shortlog.c:273 +#, c-format +msgid "(reading log message from standard input)\n" +msgstr "(llegint el missatge de registre de l'entrada està ndard)\n" + +#: builtin/commit.c:693 +msgid "could not read log from standard input" +msgstr "no s'ha pogut llegir de l'entrada està ndard" + +#: builtin/commit.c:697 +#, c-format +msgid "could not read log file '%s'" +msgstr "no s'ha pogut llegir el fitxer de registre '%s'" + +#: builtin/commit.c:719 +msgid "could not read MERGE_MSG" +msgstr "no s'ha pogut llegir MERGE_MSG" + +#: builtin/commit.c:723 +msgid "could not read SQUASH_MSG" +msgstr "no s'ha pogur llegir SQUASH_MSG" + +#: builtin/commit.c:727 +#, c-format +msgid "could not read '%s'" +msgstr "no s'ha pogut llegir '%s'" + +#: builtin/commit.c:798 +msgid "could not write commit template" +msgstr "no s'ha pogut escriure la plantilla de comissió" + +#: builtin/commit.c:816 +#, c-format +msgid "" +"\n" +"It looks like you may be committing a merge.\n" +"If this is not correct, please remove the file\n" +"\t%s\n" +"and try again.\n" +msgstr "" +"\n" +"Sembla que podeu estar cometent una fusió.\n" +"Si això no és correcte, si us plau, treu el fitxer\n" +"\t%s\n" +"i intenteu de nou.\n" + +#: builtin/commit.c:821 +#, c-format +msgid "" +"\n" +"It looks like you may be committing a cherry-pick.\n" +"If this is not correct, please remove the file\n" +"\t%s\n" +"and try again.\n" +msgstr "" +"\n" +"Sembla que podeu estar cometent un recull de cireres.\n" +"Si això no és correcte, si us plau treu el fitxer\n" +"\t%s\n" +"i intenteu de nou.\n" + +#: builtin/commit.c:834 +#, c-format +msgid "" +"Please enter the commit message for your changes. Lines starting\n" +"with '%c' will be ignored, and an empty message aborts the commit.\n" +msgstr "" +"Si us plau, introduïu el missatge de comissió dels vostres canvis.\n" +"S'ignoraran les lÃnies començant amb '%c', i un missatge de\n" +"comissió buit avorta la comissió.\n" + +#: builtin/commit.c:841 +#, c-format +msgid "" +"Please enter the commit message for your changes. Lines starting\n" +"with '%c' will be kept; you may remove them yourself if you want to.\n" +"An empty message aborts the commit.\n" +msgstr "" +"Si us plau, introduïu el missatge de comissió dels vostres canvis.\n" +"Es retindran les lÃnies començants amb '%c'; podeu treure'ls per vós\n" +"mateix si voleu. Un missatge buit avorta la comissió.\n" + +#: builtin/commit.c:855 +#, c-format +msgid "%sAuthor: %.*s <%.*s>" +msgstr "%sAutor: %.*s <%.*s>" + +#: builtin/commit.c:863 +#, c-format +msgid "%sDate: %s" +msgstr "%sData: %s" + +#: builtin/commit.c:870 +#, c-format +msgid "%sCommitter: %.*s <%.*s>" +msgstr "%sComitent: %.*s <%.*s>" + +#: builtin/commit.c:888 +msgid "Cannot read index" +msgstr "No es pot llegir l'Ãndex" + +#: builtin/commit.c:945 +msgid "Error building trees" +msgstr "Error al construir arbres" + +#: builtin/commit.c:960 builtin/tag.c:495 +#, c-format +msgid "Please supply the message using either -m or -F option.\n" +msgstr "" +"Si us plau, proveïu el missatge utilitzant l'opció o -m o l'opció -F.\n" + +#: builtin/commit.c:1061 +#, c-format +msgid "No existing author found with '%s'" +msgstr "Cap autor existent trobat amb '%s'" + +#: builtin/commit.c:1076 builtin/commit.c:1316 +#, c-format +msgid "Invalid untracked files mode '%s'" +msgstr "Mode de fitxers no seguits invà lid '%s'" + +#: builtin/commit.c:1113 +msgid "--long and -z are incompatible" +msgstr "--long i -z són incompatibles" + +#: builtin/commit.c:1143 +msgid "Using both --reset-author and --author does not make sense" +msgstr "Utilitzar ambdós --reset-author i --author no té sentit" + +#: builtin/commit.c:1152 +msgid "You have nothing to amend." +msgstr "No teniu res que esmenar." + +#: builtin/commit.c:1155 +msgid "You are in the middle of a merge -- cannot amend." +msgstr "Esteu en el medi d'una fusió -- no es pot esmenar." + +#: builtin/commit.c:1157 +msgid "You are in the middle of a cherry-pick -- cannot amend." +msgstr "Esteu en el medi d'una cherry-pick -- no es pot esmenar." + +#: builtin/commit.c:1160 +msgid "Options --squash and --fixup cannot be used together" +msgstr "Les opcions --squash i --fixup no es poden utilitzar junts" + +#: builtin/commit.c:1170 +msgid "Only one of -c/-C/-F/--fixup can be used." +msgstr "Només un de -c/-C/-F/--fixup es pot utilitzar." + +#: builtin/commit.c:1172 +msgid "Option -m cannot be combined with -c/-C/-F/--fixup." +msgstr "L'opció -m no es pot combinar amb -c/-C/-F/--fixup." + +#: builtin/commit.c:1180 +msgid "--reset-author can be used only with -C, -c or --amend." +msgstr "--reset-author només es pot utilitzar amb -C, -c o --amend." + +#: builtin/commit.c:1197 +msgid "Only one of --include/--only/--all/--interactive/--patch can be used." +msgstr "" +"Només un de --include/--only/--all/--interactive/--patch es pot utilitzar." + +#: builtin/commit.c:1199 +msgid "No paths with --include/--only does not make sense." +msgstr "--include/--only no té sentit sense ruta." + +#: builtin/commit.c:1201 +msgid "Clever... amending the last one with dirty index." +msgstr "Intel·ligent... esmenant el últim amb Ãndex brut" + +#: builtin/commit.c:1203 +msgid "Explicit paths specified without -i or -o; assuming --only paths..." +msgstr "" +"Rutes explÃcites especificades sense -i o -o; presumint rutes --only..." + +#: builtin/commit.c:1215 builtin/tag.c:727 +#, c-format +msgid "Invalid cleanup mode %s" +msgstr "Mode de neteja invà lid %s" + +#: builtin/commit.c:1220 +msgid "Paths with -a does not make sense." +msgstr "-a no té sentit amb rutes." + +#: builtin/commit.c:1330 builtin/commit.c:1595 +msgid "show status concisely" +msgstr "mostra l'estat concisament" + +#: builtin/commit.c:1332 builtin/commit.c:1597 +msgid "show branch information" +msgstr "mostra la informació de rama" + +#: builtin/commit.c:1334 builtin/commit.c:1599 builtin/push.c:489 +msgid "machine-readable output" +msgstr "sortida llegible per mà quina" + +#: builtin/commit.c:1337 builtin/commit.c:1601 +msgid "show status in long format (default)" +msgstr "mostra l'estat en format llarg (per defecte)" + +#: builtin/commit.c:1340 builtin/commit.c:1604 +msgid "terminate entries with NUL" +msgstr "termina les entrades amb NUL" + +#: builtin/commit.c:1342 builtin/commit.c:1607 builtin/fast-export.c:703 +#: builtin/fast-export.c:706 builtin/tag.c:602 +msgid "mode" +msgstr "mode" + +#: builtin/commit.c:1343 builtin/commit.c:1607 +msgid "show untracked files, optional modes: all, normal, no. (Default: all)" +msgstr "" +"mostra els fitxers no seguits, modes opcional: all, normal, no. (Per " +"defecte: all)" + +#: builtin/commit.c:1346 +msgid "show ignored files" +msgstr "mostra els fitxers ignorats" + +#: builtin/commit.c:1347 parse-options.h:153 +msgid "when" +msgstr "quan" + +#: builtin/commit.c:1348 +msgid "" +"ignore changes to submodules, optional when: all, dirty, untracked. " +"(Default: all)" +msgstr "" +"ignora els canvis als submòduls, opcional quan: all, dirty, untracked. (Per " +"defecte: all)" + +#: builtin/commit.c:1350 +msgid "list untracked files in columns" +msgstr "mostra els fitxers no seguits en columnes" + +#: builtin/commit.c:1419 +msgid "couldn't look up newly created commit" +msgstr "no s'ha pogut trobar la comissió novament creat" + +#: builtin/commit.c:1421 +msgid "could not parse newly created commit" +msgstr "no s'ha pogut analitzar la comissió novament creat" + +#: builtin/commit.c:1469 +msgid "detached HEAD" +msgstr "HEAD separat" + +#: builtin/commit.c:1471 +msgid " (root-commit)" +msgstr " (comissió d'arrel)" + +#: builtin/commit.c:1565 +msgid "suppress summary after successful commit" +msgstr "omet el resum després d'una comissió reexita" + +#: builtin/commit.c:1566 +msgid "show diff in commit message template" +msgstr "mostra la diferència en la plantilla de missatge de comissió" + +#: builtin/commit.c:1568 +msgid "Commit message options" +msgstr "Opcions de missatge de comissió" + +#: builtin/commit.c:1569 builtin/tag.c:600 +msgid "read message from file" +msgstr "llegiu el missatge des d'un fitxer" + +#: builtin/commit.c:1570 +msgid "author" +msgstr "autor" + +#: builtin/commit.c:1570 +msgid "override author for commit" +msgstr "autor corregit de la comissió" + +#: builtin/commit.c:1571 builtin/gc.c:286 +msgid "date" +msgstr "data" + +#: builtin/commit.c:1571 +msgid "override date for commit" +msgstr "data corregida de la comissió" + +#: builtin/commit.c:1572 builtin/merge.c:216 builtin/notes.c:409 +#: builtin/notes.c:566 builtin/tag.c:598 +msgid "message" +msgstr "missatge" + +#: builtin/commit.c:1572 +msgid "commit message" +msgstr "missatge de comissió" + +#: builtin/commit.c:1573 +msgid "reuse and edit message from specified commit" +msgstr "reutilitza i edit el missatge de la comissió especificada" + +#: builtin/commit.c:1574 +msgid "reuse message from specified commit" +msgstr "reutilitza el missatge de la comissió especificada" + +#: builtin/commit.c:1575 +msgid "use autosquash formatted message to fixup specified commit" +msgstr "" +"utilitza el missatge formatat d'aixafada automà tica per arreglar la comissió " +"especificada" + +#: builtin/commit.c:1576 +msgid "use autosquash formatted message to squash specified commit" +msgstr "" +"utilitza el missatge formatat d'aixafada automà tica per aixafar la comissió " +"especificada" + +#: builtin/commit.c:1577 +msgid "the commit is authored by me now (used with -C/-c/--amend)" +msgstr "l'autor de la comissió ja sóc jo (utilitzat amb -C/-c/--amend)" + +#: builtin/commit.c:1578 builtin/log.c:1188 builtin/revert.c:86 +msgid "add Signed-off-by:" +msgstr "afegeix Signed-off-by:" + +#: builtin/commit.c:1579 +msgid "use specified template file" +msgstr "utilitza el fitxer de plantilla especificat" + +#: builtin/commit.c:1580 +msgid "force edit of commit" +msgstr "edició de la comissió a la força" + +#: builtin/commit.c:1581 +msgid "default" +msgstr "per defecte" + +#: builtin/commit.c:1581 builtin/tag.c:603 +msgid "how to strip spaces and #comments from message" +msgstr "com despullar els espais i #comentaris del missatge" + +#: builtin/commit.c:1582 +msgid "include status in commit message template" +msgstr "inclou l'estat en la plantilla de missatge de comissió" + +#: builtin/commit.c:1583 builtin/merge.c:223 builtin/revert.c:92 +#: builtin/tag.c:604 +msgid "key-id" +msgstr "ID de clau" + +#: builtin/commit.c:1584 builtin/merge.c:224 builtin/revert.c:93 +msgid "GPG sign commit" +msgstr "firma la comissió amb GPG" + +#: builtin/commit.c:1587 +msgid "Commit contents options" +msgstr "Opcions dels continguts de les comissions" + +#: builtin/commit.c:1588 +msgid "commit all changed files" +msgstr "comet tots els fitxers canviats" + +#: builtin/commit.c:1589 +msgid "add specified files to index for commit" +msgstr "afegeix els fitxers especificats a l'Ãndex per a cometre" + +#: builtin/commit.c:1590 +msgid "interactively add files" +msgstr "afegeix els fitxers interactivament" + +#: builtin/commit.c:1591 +msgid "interactively add changes" +msgstr "afegeix els canvis interactivament" + +#: builtin/commit.c:1592 +msgid "commit only specified files" +msgstr "comet només els fitxers especificats" + +#: builtin/commit.c:1593 +msgid "bypass pre-commit hook" +msgstr "evita el ganxo de precomissió" + +#: builtin/commit.c:1594 +msgid "show what would be committed" +msgstr "mostra què es cometria" + +#: builtin/commit.c:1605 +msgid "amend previous commit" +msgstr "esmena la comissió anterior" + +#: builtin/commit.c:1606 +msgid "bypass post-rewrite hook" +msgstr "evita el ganxo de postreescriure" + +#: builtin/commit.c:1611 +msgid "ok to record an empty change" +msgstr "bé registrar un canvi buit" + +#: builtin/commit.c:1613 +msgid "ok to record a change with an empty message" +msgstr "bé registrar un canvi amb missatge buit" + +#: builtin/commit.c:1641 +msgid "could not parse HEAD commit" +msgstr "no s'ha pogut analitzar la comissió HEAD" + +#: builtin/commit.c:1680 builtin/merge.c:518 +#, c-format +msgid "could not open '%s' for reading" +msgstr "no s'ha pogut obrir '%s' per lectura" + +#: builtin/commit.c:1687 +#, c-format +msgid "Corrupt MERGE_HEAD file (%s)" +msgstr "Fitxer MERGE_HEAD corrupte (%s)" + +#: builtin/commit.c:1694 +msgid "could not read MERGE_MODE" +msgstr "no s'ha pogut llegir MERGE_MODE" + +#: builtin/commit.c:1713 +#, c-format +msgid "could not read commit message: %s" +msgstr "no s'ha pogut llegir el missatge de comissió: %s" + +#: builtin/commit.c:1724 +#, c-format +msgid "Aborting commit; you did not edit the message.\n" +msgstr "Avortant la comissió; no heu editat el missatge.\n" + +#: builtin/commit.c:1729 +#, c-format +msgid "Aborting commit due to empty commit message.\n" +msgstr "Avortant la comissió a causa d'un missatge de comissió buit.\n" + +#: builtin/commit.c:1744 builtin/merge.c:851 builtin/merge.c:876 +msgid "failed to write commit object" +msgstr "s'ha fallat al escriure l'objecte de comissió" + +#: builtin/commit.c:1756 +msgid "cannot lock HEAD ref" +msgstr "no es pot bloquejar la referència HEAD" + +#: builtin/commit.c:1769 +msgid "cannot update HEAD ref" +msgstr "no es pot actualitzar la referència HEAD" + +#: builtin/commit.c:1780 +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." +msgstr "" +"S'ha actualitzat el repositori, però no es pot escriure\n" +"el fitxer new_index. Comproveu que el disc no estigui\n" +"ple i la quota no estigui excedit, i després\n" +"\"git reset HEAD\" per recuperar." + +#: builtin/config.c:8 +msgid "git config [options]" +msgstr "git config [opcions]" + +#: builtin/config.c:53 +msgid "Config file location" +msgstr "Ubicació del fitxer de configuració" + +#: builtin/config.c:54 +msgid "use global config file" +msgstr "utilitza el fitxer de configuració global" + +#: builtin/config.c:55 +msgid "use system config file" +msgstr "utilitza el fitxer de configuració del sistema" + +#: builtin/config.c:56 +msgid "use repository config file" +msgstr "utilitza el fitxer de configuració del repositori" + +#: builtin/config.c:57 +msgid "use given config file" +msgstr "utilitza el fitxer de configuració donat" + +#: builtin/config.c:58 +msgid "blob-id" +msgstr "ID de blob" + +#: builtin/config.c:58 +msgid "read config from given blob object" +msgstr "llegeix la configuració de l'objecte de blob donat" + +#: builtin/config.c:59 +msgid "Action" +msgstr "Acció" + +#: builtin/config.c:60 +msgid "get value: name [value-regex]" +msgstr "obtén valor: nom [regex-de-valors]" + +#: builtin/config.c:61 +msgid "get all values: key [value-regex]" +msgstr "obtén tots els valors: clau [regex-de-valors]" + +#: builtin/config.c:62 +msgid "get values for regexp: name-regex [value-regex]" +msgstr "obtén valors de regexp: regex-de-noms [regex-de-valors]" + +#: builtin/config.c:63 +msgid "get value specific for the URL: section[.var] URL" +msgstr "obtén el valor especific al URL: secció[.variable] URL" + +#: builtin/config.c:64 +msgid "replace all matching variables: name value [value_regex]" +msgstr "" +"reemplaça tots els variables que coincideixen: nom valor [regex_de_valors]" + +#: builtin/config.c:65 +msgid "add a new variable: name value" +msgstr "afegeix un variable nou: nom valor" + +#: builtin/config.c:66 +msgid "remove a variable: name [value-regex]" +msgstr "treu un variable: nom [regex-de-valors]" + +#: builtin/config.c:67 +msgid "remove all matches: name [value-regex]" +msgstr "treu totes les coincidències: nom [regex-de-valors]" + +#: builtin/config.c:68 +msgid "rename section: old-name new-name" +msgstr "canvia el nom de secció: nom-antic nom-nou" + +#: builtin/config.c:69 +msgid "remove a section: name" +msgstr "treu una secció: nom" + +#: builtin/config.c:70 +msgid "list all" +msgstr "llista tots" + +#: builtin/config.c:71 +msgid "open an editor" +msgstr "obre un editor" + +#: builtin/config.c:72 builtin/config.c:73 +msgid "slot" +msgstr "ranura" + +#: builtin/config.c:72 +msgid "find the color configured: [default]" +msgstr "troba el color configurat: [per defecte]" + +#: builtin/config.c:73 +msgid "find the color setting: [stdout-is-tty]" +msgstr "troba l'ajust de color: [stdout-és-tty]" + +#: builtin/config.c:74 +msgid "Type" +msgstr "Tipus" + +#: builtin/config.c:75 +msgid "value is \"true\" or \"false\"" +msgstr "valor és \"true\" o \"false\"" + +#: builtin/config.c:76 +msgid "value is decimal number" +msgstr "valor és un nombre decimal" + +#: builtin/config.c:77 +msgid "value is --bool or --int" +msgstr "valor és --bool o --int" + +#: builtin/config.c:78 +msgid "value is a path (file or directory name)" +msgstr "valor és un path (nom de fitxer o directori)" + +#: builtin/config.c:79 +msgid "Other" +msgstr "Altre" + +#: builtin/config.c:80 +msgid "terminate values with NUL byte" +msgstr "termina els valors amb un octet NUL" + +#: builtin/config.c:81 +msgid "respect include directives on lookup" +msgstr "respecta les directives d'inclusió al cercar" + +#: builtin/count-objects.c:82 +msgid "git count-objects [-v] [-H | --human-readable]" +msgstr "git count-objects [-v] [-H | --human-readable]" + +#: builtin/count-objects.c:97 +msgid "print sizes in human readable format" +msgstr "imprimeix les mides en un format llegible per humans" + +#: builtin/describe.c:16 +msgid "git describe [options] <commit-ish>*" +msgstr "git describe [opcions] <comissió>*" + +#: builtin/describe.c:17 +msgid "git describe [options] --dirty" +msgstr "git describe [opcions] --dirty" + +#: builtin/describe.c:216 +#, c-format +msgid "annotated tag %s not available" +msgstr "l'etiqueta anotada %s no és disponible" + +#: builtin/describe.c:220 +#, c-format +msgid "annotated tag %s has no embedded name" +msgstr "l'etiqueta anotada %s no té nom incrustat" + +#: builtin/describe.c:222 +#, c-format +msgid "tag '%s' is really '%s' here" +msgstr "l'etiqueta '%s' realment és '%s' aquÃ" + +#: builtin/describe.c:249 +#, c-format +msgid "Not a valid object name %s" +msgstr "%s no és un nom d'objecte và lid" + +#: builtin/describe.c:252 +#, c-format +msgid "%s is not a valid '%s' object" +msgstr "%s no és un objecte de '%s' và lid" + +#: builtin/describe.c:269 +#, c-format +msgid "no tag exactly matches '%s'" +msgstr "cap etiqueta coincideix exactament amb '%s'" + +#: builtin/describe.c:271 +#, c-format +msgid "searching to describe %s\n" +msgstr "cercant per descriure %s\n" + +#: builtin/describe.c:318 +#, c-format +msgid "finished search at %s\n" +msgstr "cerca terminada a %s\n" + +#: builtin/describe.c:345 +#, c-format +msgid "" +"No annotated tags can describe '%s'.\n" +"However, there were unannotated tags: try --tags." +msgstr "" +"Cap etiqueta anotada pot descriure '%s'.\n" +"No obstant, hi havia etiquetes no anotades: proveu --tags." + +#: builtin/describe.c:349 +#, c-format +msgid "" +"No tags can describe '%s'.\n" +"Try --always, or create some tags." +msgstr "" +"Cap etiqueta pot descriure '%s'.\n" +"Proveu --always, o creeu algunes etiquetes." + +#: builtin/describe.c:370 +#, c-format +msgid "traversed %lu commits\n" +msgstr "%lu comissions travessades\n" + +#: builtin/describe.c:373 +#, c-format +msgid "" +"more than %i tags found; listed %i most recent\n" +"gave up search at %s\n" +msgstr "" +"s'ha trobat més de %i etiquetes: s'ha llistat les %i més recents\n" +"cerca renunciada a %s\n" + +#: builtin/describe.c:395 +msgid "find the tag that comes after the commit" +msgstr "troba l'etiqueta que vingui després de la comissió" + +#: builtin/describe.c:396 +msgid "debug search strategy on stderr" +msgstr "estratègia de cerca de depuració en stderr" + +#: builtin/describe.c:397 +msgid "use any ref" +msgstr "utilitza qualsevulla referència" + +#: builtin/describe.c:398 +msgid "use any tag, even unannotated" +msgstr "utilitza qualsevulla etiqueta, encara les sense anotar" + +#: builtin/describe.c:399 +msgid "always use long format" +msgstr "sempre utilitza el format llarg" + +#: builtin/describe.c:400 +msgid "only follow first parent" +msgstr "només segueix el primer pare" + +#: builtin/describe.c:403 +msgid "only output exact matches" +msgstr "emet només coincidències exactes" + +#: builtin/describe.c:405 +msgid "consider <n> most recent tags (default: 10)" +msgstr "considera les <n> etiquetes més recents (per defecte: 10)" + +#: builtin/describe.c:407 +msgid "only consider tags matching <pattern>" +msgstr "només considera les etiquetes que coincideixen amb <patró>" + +#: builtin/describe.c:409 builtin/name-rev.c:318 +msgid "show abbreviated commit object as fallback" +msgstr "mostra l'objecte de comissió abreviat com retrocediment" + +#: builtin/describe.c:410 +msgid "mark" +msgstr "marca" + +#: builtin/describe.c:411 +msgid "append <mark> on dirty working tree (default: \"-dirty\")" +msgstr "annexa <marca> en l'arbre de treball brut (per defecte: \"-dirty\")" + +#: builtin/describe.c:429 +msgid "--long is incompatible with --abbrev=0" +msgstr "--long és incompatible amb --abbrev=0" + +#: builtin/describe.c:455 +msgid "No names found, cannot describe anything." +msgstr "Cap nom trobat, no es pot descriure res." + +#: builtin/describe.c:475 +msgid "--dirty is incompatible with commit-ishes" +msgstr "--dirty és incompatible amb les comissions" + +#: builtin/diff.c:85 +#, c-format +msgid "'%s': not a regular file or symlink" +msgstr "'%s': no és un fitxer regular ni enllaç simbòlic" + +#: builtin/diff.c:236 +#, c-format +msgid "invalid option: %s" +msgstr "opció invà lida: %s" + +#: builtin/diff.c:357 +msgid "Not a git repository" +msgstr "No és un repositori de git" + +#: builtin/diff.c:400 +#, c-format +msgid "invalid object '%s' given." +msgstr "objecte invà lid '%s' donat." + +#: builtin/diff.c:409 +#, c-format +msgid "more than two blobs given: '%s'" +msgstr "més de dos blobs donats: '%s'" + +#: builtin/diff.c:416 +#, c-format +msgid "unhandled object '%s' given." +msgstr "objecte no manejat '%s' donat." + +#: builtin/fast-export.c:23 +msgid "git fast-export [rev-list-opts]" +msgstr "git fast-export [opcions-de-llista-de-revisions]" + +#: builtin/fast-export.c:702 +msgid "show progress after <n> objects" +msgstr "mostra el progrés després de <n> objectes" + +#: builtin/fast-export.c:704 +msgid "select handling of signed tags" +msgstr "selecciona el manejament de les etiquetes firmades" + +#: builtin/fast-export.c:707 +msgid "select handling of tags that tag filtered objects" +msgstr "" +"selecciona el manejament de les etiquetes que etiqueten objectes filtrats" + +#: builtin/fast-export.c:710 +msgid "Dump marks to this file" +msgstr "Bolcar les marques a aquest fitxer" + +#: builtin/fast-export.c:712 +msgid "Import marks from this file" +msgstr "Importa marques d'aquest fitxer" + +#: builtin/fast-export.c:714 +msgid "Fake a tagger when tags lack one" +msgstr "Fingeix un etiquetador quan als etiquetes lis manca un" + +#: builtin/fast-export.c:716 +msgid "Output full tree for each commit" +msgstr "Imprimeix l'arbre complet per cada comissió" + +#: builtin/fast-export.c:718 +msgid "Use the done feature to terminate the stream" +msgstr "Utilitza la caracterÃstica done per terminar el corrent" + +#: builtin/fast-export.c:719 +msgid "Skip output of blob data" +msgstr "Salta l'emissió de dades de blob" + +#: builtin/fast-export.c:720 +msgid "refspec" +msgstr "especificació de referència" + +#: builtin/fast-export.c:721 +msgid "Apply refspec to exported refs" +msgstr "Aplica l'especificació de referència a les referències exportades" + +#: builtin/fetch.c:20 +msgid "git fetch [<options>] [<repository> [<refspec>...]]" +msgstr "" +"git fetch [<opcions>] [<repositori> [<especificació-de-referència>...]]" + +#: builtin/fetch.c:21 +msgid "git fetch [<options>] <group>" +msgstr "git fetch [<opcions>] <grup>" + +#: builtin/fetch.c:22 +msgid "git fetch --multiple [<options>] [(<repository> | <group>)...]" +msgstr "git fetch --multiple [<opcions>] [(<repositori> | <grup>)...]" + +#: builtin/fetch.c:23 +msgid "git fetch --all [<options>]" +msgstr "git fetch --all [<opcions>]" + +#: builtin/fetch.c:90 +msgid "fetch from all remotes" +msgstr "obtén de tots els remots" + +#: builtin/fetch.c:92 +msgid "append to .git/FETCH_HEAD instead of overwriting" +msgstr "annexa a .git/FETCH_HEAD en lloc de sobreescriure" + +#: builtin/fetch.c:94 +msgid "path to upload pack on remote end" +msgstr "ruta a que pujar el paquet en el costat remot" + +#: builtin/fetch.c:95 +msgid "force overwrite of local branch" +msgstr "força la sobreescriptura de la rama local" + +#: builtin/fetch.c:97 +msgid "fetch from multiple remotes" +msgstr "obtén de múltiples remots" + +#: builtin/fetch.c:99 +msgid "fetch all tags and associated objects" +msgstr "obtén tots les etiquetes i objectes associats" + +#: builtin/fetch.c:101 +msgid "do not fetch all tags (--no-tags)" +msgstr "no obtingues les etiquetes (--no-tags)" + +#: builtin/fetch.c:103 +msgid "prune remote-tracking branches no longer on remote" +msgstr "poda les rames amb seguiment remot que ja no estan en el remot" + +#: builtin/fetch.c:104 +msgid "on-demand" +msgstr "sota demanda" + +#: builtin/fetch.c:105 +msgid "control recursive fetching of submodules" +msgstr "controla l'obteniment recursiu de submòduls" + +#: builtin/fetch.c:109 +msgid "keep downloaded pack" +msgstr "desa el paquet baixat" + +#: builtin/fetch.c:111 +msgid "allow updating of HEAD ref" +msgstr "permet l'actualització de la referència HEAD" + +#: builtin/fetch.c:114 +msgid "deepen history of shallow clone" +msgstr "aprofundeix la història del clon superficial" + +#: builtin/fetch.c:116 +msgid "convert to a complete repository" +msgstr "converteix en un repositori complet" + +#: builtin/fetch.c:118 builtin/log.c:1205 +msgid "dir" +msgstr "directori" + +#: builtin/fetch.c:119 +msgid "prepend this to submodule path output" +msgstr "anteposa això a la sortida de ruta del submòdul" + +#: builtin/fetch.c:122 +msgid "default mode for recursion" +msgstr "mode de recursivitat per defecte" + +#: builtin/fetch.c:124 +msgid "accept refs that update .git/shallow" +msgstr "accepta referències que actualitzin .git/shallow" + +#: builtin/fetch.c:125 +msgid "refmap" +msgstr "mapa de referències" + +#: builtin/fetch.c:126 +msgid "specify fetch refmap" +msgstr "mostra el mapa de referències d'obteniment" + +#: builtin/fetch.c:376 +msgid "Couldn't find remote ref HEAD" +msgstr "No s'ha pogut trobar la referència HEAD remota" + +#: builtin/fetch.c:440 +#, c-format +msgid "object %s not found" +msgstr "objecte %s no trobat" + +#: builtin/fetch.c:445 +msgid "[up to date]" +msgstr "[actualitzat]" + +#: builtin/fetch.c:459 +#, c-format +msgid "! %-*s %-*s -> %s (can't fetch in current branch)" +msgstr "! %-*s %-*s -> %s (no es pot obtenir en la rama actual)" + +#: builtin/fetch.c:460 builtin/fetch.c:546 +msgid "[rejected]" +msgstr "[rebutjat]" + +#: builtin/fetch.c:471 +msgid "[tag update]" +msgstr "[actualització d'etiqueta]" + +#: builtin/fetch.c:473 builtin/fetch.c:508 builtin/fetch.c:526 +msgid " (unable to update local ref)" +msgstr " (incapaç d'actualitzar la referència local)" + +#: builtin/fetch.c:491 +msgid "[new tag]" +msgstr "[etiqueta nova]" + +#: builtin/fetch.c:494 +msgid "[new branch]" +msgstr "[rama nova]" + +#: builtin/fetch.c:497 +msgid "[new ref]" +msgstr "[referència nova]" + +#: builtin/fetch.c:542 +msgid "unable to update local ref" +msgstr "incapaç d'actualitzar la referència local" + +#: builtin/fetch.c:542 +msgid "forced update" +msgstr "actualització forçada" + +#: builtin/fetch.c:548 +msgid "(non-fast-forward)" +msgstr "(sense avanç rà pid)" + +#: builtin/fetch.c:581 builtin/fetch.c:814 +#, c-format +msgid "cannot open %s: %s\n" +msgstr "no és pot obrir %s: %s\n" + +#: builtin/fetch.c:590 +#, c-format +msgid "%s did not send all necessary objects\n" +msgstr "%s no ha enviat tots els objectes necessaris\n" + +#: builtin/fetch.c:608 +#, c-format +msgid "reject %s because shallow roots are not allowed to be updated" +msgstr "" +"rebutja %s perquè no es permet que els arrels superficials s'actualitzin" + +#: builtin/fetch.c:696 builtin/fetch.c:779 +#, c-format +msgid "From %.*s\n" +msgstr "De %.*s\n" + +#: builtin/fetch.c:707 +#, c-format +msgid "" +"some local refs could not be updated; try running\n" +" 'git remote prune %s' to remove any old, conflicting branches" +msgstr "" +"algunes referències locals no s'han pogut actualitzar;\n" +" intenteu executar 'git remote prune %s' per treure\n" +" qualsevulla rama antiga o conflictiva" + +#: builtin/fetch.c:759 +#, c-format +msgid " (%s will become dangling)" +msgstr " (%s es tornarà penjant)" + +#: builtin/fetch.c:760 +#, c-format +msgid " (%s has become dangling)" +msgstr " (%s s'ha tornat penjant)" + +#: builtin/fetch.c:784 +msgid "[deleted]" +msgstr "[suprimit]" + +#: builtin/fetch.c:785 builtin/remote.c:1059 +msgid "(none)" +msgstr "(cap)" + +#: builtin/fetch.c:804 +#, c-format +msgid "Refusing to fetch into current branch %s of non-bare repository" +msgstr "Refusar obtenir a la rama actual %s d'un repositori no nu" + +#: builtin/fetch.c:823 +#, 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:826 +#, c-format +msgid "Option \"%s\" is ignored for %s\n" +msgstr "S'ignora l'opció \"%s\" per a %s\n" + +#: builtin/fetch.c:882 +#, c-format +msgid "Don't know how to fetch from %s" +msgstr "No es sap com obtenir de %s" + +#: builtin/fetch.c:1044 +#, c-format +msgid "Fetching %s\n" +msgstr "Obtenint %s\n" + +#: builtin/fetch.c:1046 builtin/remote.c:90 +#, c-format +msgid "Could not fetch %s" +msgstr "No s'ha pogut obtenir %s" + +#: builtin/fetch.c:1064 +msgid "" +"No remote repository specified. Please, specify either a URL or a\n" +"remote name from which new revisions should be fetched." +msgstr "" +"Cap repositori remot especificat. Si us plau, especifiqueu o un\n" +"URL o un nom remot del qual es deuen obtenir les revisions noves." + +#: builtin/fetch.c:1087 +msgid "You need to specify a tag name." +msgstr "Necessiteu especificar un nom d'etiqueta." + +#: builtin/fetch.c:1131 +msgid "--depth and --unshallow cannot be used together" +msgstr "--depth i --unshallow no es poden utilitzar junts" + +#: builtin/fetch.c:1133 +msgid "--unshallow on a complete repository does not make sense" +msgstr "--unshallow en un repositori complet no té sentit" + +#: builtin/fetch.c:1156 +msgid "fetch --all does not take a repository argument" +msgstr "fetch --all no accepta un parà metre de repositori" + +#: builtin/fetch.c:1158 +msgid "fetch --all does not make sense with refspecs" +msgstr "fetch --all no té sentit amb especificacions de referència" + +#: builtin/fetch.c:1169 +#, c-format +msgid "No such remote or remote group: %s" +msgstr "Cap remot o grup remot aixÃ: %s" + +#: builtin/fetch.c:1177 +msgid "Fetching a group and specifying refspecs does not make sense" +msgstr "Obtenir un grup i especificar referències no té sentit" + +#: builtin/fmt-merge-msg.c:13 +msgid "git fmt-merge-msg [-m <message>] [--log[=<n>]|--no-log] [--file <file>]" +msgstr "" +"git fmt-merge-msg [-m <missatge>] [--log[=<n>]|--no-log] [--file <fitxer>]" + +#: builtin/fmt-merge-msg.c:663 builtin/fmt-merge-msg.c:666 builtin/grep.c:698 +#: builtin/merge.c:196 builtin/repack.c:179 builtin/repack.c:183 +#: builtin/show-branch.c:654 builtin/show-ref.c:178 builtin/tag.c:589 +#: parse-options.h:132 parse-options.h:239 +msgid "n" +msgstr "n" + +#: builtin/fmt-merge-msg.c:664 +msgid "populate log with at most <n> entries from shortlog" +msgstr "emplena el registre amb al mà xim <n> entrades del registre curt" + +#: builtin/fmt-merge-msg.c:667 +msgid "alias for --log (deprecated)" +msgstr "à lies per --log (desaprovat)" + +#: builtin/fmt-merge-msg.c:670 +msgid "text" +msgstr "text" + +#: builtin/fmt-merge-msg.c:671 +msgid "use <text> as start of message" +msgstr "utilitza <text> com inici de missatge" + +#: builtin/fmt-merge-msg.c:672 +msgid "file to read from" +msgstr "fitxer del qual llegir" + +#: builtin/for-each-ref.c:1051 +msgid "git for-each-ref [options] [<pattern>]" +msgstr "git for-each-ref [opcions] [<patró>]" + +#: builtin/for-each-ref.c:1066 +msgid "quote placeholders suitably for shells" +msgstr "" +"posa els marcadors de posició entre cometes adequades per als terminals" + +#: builtin/for-each-ref.c:1068 +msgid "quote placeholders suitably for perl" +msgstr "posa els marcadors de posició entre cometes adequades per a perl" + +#: builtin/for-each-ref.c:1070 +msgid "quote placeholders suitably for python" +msgstr "posa els marcadors de posició entre cometes adequades per a python" + +#: builtin/for-each-ref.c:1072 +msgid "quote placeholders suitably for tcl" +msgstr "posa els marcadors de posició entre cometes adequades per a tcl" + +#: builtin/for-each-ref.c:1075 +msgid "show only <n> matched refs" +msgstr "mostra només <n> referències coincidents" + +#: builtin/for-each-ref.c:1076 builtin/replace.c:435 +msgid "format" +msgstr "format" + +#: builtin/for-each-ref.c:1076 +msgid "format to use for the output" +msgstr "format que utilitzar per a la sortida" + +#: builtin/for-each-ref.c:1077 +msgid "key" +msgstr "clau" + +#: builtin/for-each-ref.c:1078 +msgid "field name to sort on" +msgstr "nom de camp en el qual ordenar" + +#: builtin/fsck.c:147 builtin/prune.c:172 +msgid "Checking connectivity" +msgstr "Comprovant connectivitat" + +#: builtin/fsck.c:538 +msgid "Checking object directories" +msgstr "Comprovant els directoris d'objecte" + +#: builtin/fsck.c:601 +msgid "git fsck [options] [<object>...]" +msgstr "git fsck [opcions] [<objecte>...]" + +#: builtin/fsck.c:607 +msgid "show unreachable objects" +msgstr "mostra els objects inabastable" + +#: builtin/fsck.c:608 +msgid "show dangling objects" +msgstr "mostra els objectes penjants" + +#: builtin/fsck.c:609 +msgid "report tags" +msgstr "informa de les etiquetes" + +#: builtin/fsck.c:610 +msgid "report root nodes" +msgstr "informa dels nodes d'arrel" + +#: builtin/fsck.c:611 +msgid "make index objects head nodes" +msgstr "fes els objectes d'Ãndex nodes de cap" + +#: builtin/fsck.c:612 +msgid "make reflogs head nodes (default)" +msgstr "fes notes de cap de registres de referències (per defecte)" + +#: builtin/fsck.c:613 +msgid "also consider packs and alternate objects" +msgstr "també considera els paquets i els objectes alternatius" + +#: builtin/fsck.c:614 +msgid "enable more strict checking" +msgstr "habilita comprovació més estricta" + +#: builtin/fsck.c:616 +msgid "write dangling objects in .git/lost-found" +msgstr "escriu objectes penjants a .git/lost-found" + +#: builtin/fsck.c:617 builtin/prune.c:144 +msgid "show progress" +msgstr "mostra progrés" + +#: builtin/fsck.c:667 +msgid "Checking objects" +msgstr "Comprovant objectes" + +#: builtin/gc.c:24 +msgid "git gc [options]" +msgstr "git gc [opcions]" + +#: builtin/gc.c:91 +#, c-format +msgid "Invalid %s: '%s'" +msgstr "%s invà lid: '%s'" + +#: builtin/gc.c:118 +#, c-format +msgid "insanely long object directory %.*s" +msgstr "directori d'objectes increïblement llarga %.*s" + +#: builtin/gc.c:287 +msgid "prune unreferenced objects" +msgstr "poda objectes sense referència" + +#: builtin/gc.c:289 +msgid "be more thorough (increased runtime)" +msgstr "siguis més exhaustiu (temps d'execució augmentat)" + +#: builtin/gc.c:290 +msgid "enable auto-gc mode" +msgstr "habilita mode de recollida d'escombraries automà tica" + +#: builtin/gc.c:291 +msgid "force running gc even if there may be another gc running" +msgstr "força l'execució de gc encara que hi pugui haver altre gc executant" + +#: builtin/gc.c:332 +#, c-format +msgid "Auto packing the repository in background for optimum performance.\n" +msgstr "" +"Empaquetant automà ticament el repositori en el fons per rendiment optim.\n" + +#: builtin/gc.c:334 +#, c-format +msgid "Auto packing the repository for optimum performance.\n" +msgstr "Empaquetant automà ticament el repositori per rendiment optim.\n" + +#: builtin/gc.c:335 +#, c-format +msgid "See \"git help gc\" for manual housekeeping.\n" +msgstr "Veu \"git help gc\" per neteja manual.\n" + +#: builtin/gc.c:353 +#, c-format +msgid "" +"gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)" +msgstr "" +"gc ja està executant en la mà quina '%s' pid %<PRIuMAX> (utilitzeu --force si " +"no)" + +#: builtin/gc.c:375 +msgid "" +"There are too many unreachable loose objects; run 'git prune' to remove them." +msgstr "" +"Hi ha massa objectes solts inabastables; executeu 'git prune' per treure'ls." + +#: builtin/grep.c:23 +msgid "git grep [options] [-e] <pattern> [<rev>...] [[--] <path>...]" +msgstr "git grep [opcions] [-e] <patró> [<revisió>...] [[--] <ruta>...]" + +#: builtin/grep.c:218 +#, c-format +msgid "grep: failed to create thread: %s" +msgstr "grep: s'ha fallat al crear fil: %s" + +#: builtin/grep.c:441 builtin/grep.c:476 +#, c-format +msgid "unable to read tree (%s)" +msgstr "incapaç de llegir l'arbre (%s)" + +#: builtin/grep.c:491 +#, 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 +#, c-format +msgid "switch `%c' expects a numerical value" +msgstr "l'ópcio `%c' espera un valor numèric" + +#: builtin/grep.c:564 +#, c-format +msgid "cannot open '%s'" +msgstr "no es pot obrir '%s'" + +#: builtin/grep.c:638 +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:640 +msgid "find in contents not managed by git" +msgstr "cerca en continguts no gestionats per git" + +#: builtin/grep.c:642 +msgid "search in both tracked and untracked files" +msgstr "cerca en ambdós els fitxers seguits i no seguits" + +#: builtin/grep.c:644 +msgid "search also in ignored files" +msgstr "cerca en els fitxers ignorats també" + +#: builtin/grep.c:647 +msgid "show non-matching lines" +msgstr "mostra les lÃnies no coincidents" + +#: builtin/grep.c:649 +msgid "case insensitive matching" +msgstr "coincidència insensible a majúscula i minúscula" + +#: builtin/grep.c:651 +msgid "match patterns only at word boundaries" +msgstr "coincideix amb els patrons només als lÃmits de paraula" + +#: builtin/grep.c:653 +msgid "process binary files as text" +msgstr "processa els fitxers binaris com text" + +#: builtin/grep.c:655 +msgid "don't match patterns in binary files" +msgstr "no coincideixis amb els patrons en els fitxers binaris" + +#: builtin/grep.c:658 +msgid "process binary files with textconv filters" +msgstr "processa els fitxers binaris amb filtres de textconv" + +#: builtin/grep.c:660 +msgid "descend at most <depth> levels" +msgstr "descendeix al mà xim <profunditat> nivells" + +#: builtin/grep.c:664 +msgid "use extended POSIX regular expressions" +msgstr "utilitza expressions regulars POSIX esteses" + +#: builtin/grep.c:667 +msgid "use basic POSIX regular expressions (default)" +msgstr "utilitza expressions regulars POSIX bà siques (per defecte)" + +#: builtin/grep.c:670 +msgid "interpret patterns as fixed strings" +msgstr "interpreta els patrons com cadenes fixades" + +#: builtin/grep.c:673 +msgid "use Perl-compatible regular expressions" +msgstr "utilitza expressions regulars compatibles amb Perl" + +#: builtin/grep.c:676 +msgid "show line numbers" +msgstr "mostra els números de lÃnia" + +#: builtin/grep.c:677 +msgid "don't show filenames" +msgstr "no mostris els noms de fitxer" + +#: builtin/grep.c:678 +msgid "show filenames" +msgstr "mostra els noms de fitxer" + +#: builtin/grep.c:680 +msgid "show filenames relative to top directory" +msgstr "mostra els noms de fitxer relatiu al directori superior" + +#: builtin/grep.c:682 +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:684 +msgid "synonym for --files-with-matches" +msgstr "sinònim per --files-with-matches" + +#: builtin/grep.c:687 +msgid "show only the names of files without match" +msgstr "mostra només els noms dels fitxers sense coincidència" + +#: builtin/grep.c:689 +msgid "print NUL after filenames" +msgstr "imprimeix NUL desprès dels noms de fitxer" + +#: builtin/grep.c:691 +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:692 +msgid "highlight matches" +msgstr "ressalta les coincidències" + +#: builtin/grep.c:694 +msgid "print empty line between matches from different files" +msgstr "imprimeix una lÃnia buida entre coincidències de fitxers distintes" + +#: builtin/grep.c:696 +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:699 +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:702 +msgid "show <n> context lines before matches" +msgstr "mostra <n> lÃnies de context abans d'una coincidència" + +#: builtin/grep.c:704 +msgid "show <n> context lines after matches" +msgstr "mostra <n> lÃnies de context després d'una coincidència" + +#: builtin/grep.c:705 +msgid "shortcut for -C NUM" +msgstr "drecera per -C NUM" + +#: builtin/grep.c:708 +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:710 +msgid "show the surrounding function" +msgstr "mostra la funció alrededor" + +#: builtin/grep.c:713 +msgid "read patterns from file" +msgstr "llegeix els patrons des d'un fitxer" + +#: builtin/grep.c:715 +msgid "match <pattern>" +msgstr "coincideix amb <patró>" + +#: builtin/grep.c:717 +msgid "combine patterns specified with -e" +msgstr "combina els patrons especificats amb -e" + +#: builtin/grep.c:729 +msgid "indicate hit with exit status without output" +msgstr "indica coincidència amb estat de sortida sense sortida de text" + +#: builtin/grep.c:731 +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:733 +msgid "show parse tree for grep expression" +msgstr "mostra l'arbre d'anà lisis de l'expressió de grep" + +#: builtin/grep.c:737 +msgid "pager" +msgstr "paginador" + +#: builtin/grep.c:737 +msgid "show matching files in the pager" +msgstr "mostra els fitxers coincidents en el paginador" + +#: builtin/grep.c:740 +msgid "allow calling of grep(1) (ignored by this build)" +msgstr "permet la invocació de grep(1) (ignorat per aquesta compilació)" + +#: builtin/grep.c:741 builtin/show-ref.c:187 +msgid "show usage" +msgstr "mostra l'ús" + +#: builtin/grep.c:808 +msgid "no pattern given." +msgstr "cap patró donat." + +#: builtin/grep.c:866 +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:892 +msgid "--cached or --untracked cannot be used with --no-index." +msgstr "--cached o --untracked no es pot utilitzar amb --no-index." + +#: builtin/grep.c:897 +msgid "--no-index or --untracked cannot be used with revs." +msgstr "--no-index o --untracked no es poden utilitzar amb revisions." + +#: builtin/grep.c:900 +msgid "--[no-]exclude-standard cannot be used for tracked contents." +msgstr "" +"--[no-]exclude-standard no es pot utilitzar per als continguts seguits." + +#: builtin/grep.c:908 +msgid "both --cached and trees are given." +msgstr "s'ha donat ambdós --caches i arbres." + +#: builtin/hash-object.c:60 +msgid "" +"git hash-object [-t <type>] [-w] [--path=<file>|--no-filters] [--stdin] [--] " +"<file>..." +msgstr "" +"git hash-object [-t <tipus>] [-w] [--path=<fitxer>|--no-filters] [--stdin] " +"[--] <fitxer>..." + +#: builtin/hash-object.c:61 +msgid "git hash-object --stdin-paths < <list-of-paths>" +msgstr "git hash-object --stdin-paths < <llista-de-rutes>" + +#: builtin/hash-object.c:72 builtin/tag.c:609 +msgid "type" +msgstr "tipus" + +#: builtin/hash-object.c:72 +msgid "object type" +msgstr "tipus d'objecte" + +#: builtin/hash-object.c:73 +msgid "write the object into the object database" +msgstr "escriu l'objecte al base de dades d'objectes" + +#: builtin/hash-object.c:74 +msgid "read the object from stdin" +msgstr "llegiu l'objecte des de stdin" + +#: builtin/hash-object.c:76 +msgid "store file as is without filters" +msgstr "emmagatzema el fitxer tal com és sense filtres" + +#: builtin/hash-object.c:77 +msgid "process file as it were from this path" +msgstr "processa el fitxer com si fos d'aquesta ruta" + +#: builtin/help.c:41 +msgid "print all available commands" +msgstr "imprimeix tots els ordres disponibles" + +#: builtin/help.c:42 +msgid "print list of useful guides" +msgstr "imprimeix la llista de guies útils" + +#: builtin/help.c:43 +msgid "show man page" +msgstr "mostra la pà gina de manual" + +#: builtin/help.c:44 +msgid "show manual in web browser" +msgstr "mostra la pà gina de manual en el navegador web" + +#: builtin/help.c:46 +msgid "show info page" +msgstr "mostra la pà gina d'informació" + +#: builtin/help.c:52 +msgid "git help [--all] [--guides] [--man|--web|--info] [command]" +msgstr "git help [--all] [--guides] [--man|--web|--info] [ordre]" + +#: builtin/help.c:64 +#, c-format +msgid "unrecognized help format '%s'" +msgstr "format d'ajuda no reconegut '%s'" + +#: builtin/help.c:92 +msgid "Failed to start emacsclient." +msgstr "S'ha fallat al iniciar emacsclient." + +#: builtin/help.c:105 +msgid "Failed to parse emacsclient version." +msgstr "S'ha fallat al analitzar la versió d'emacsclint." + +#: builtin/help.c:113 +#, c-format +msgid "emacsclient version '%d' too old (< 22)." +msgstr "la versió d'emacsclient '%d' és massa vella (< 22)." + +#: builtin/help.c:131 builtin/help.c:159 builtin/help.c:168 builtin/help.c:176 +#, c-format +msgid "failed to exec '%s': %s" +msgstr "s'ha fallat al executar '%s': %s" + +#: builtin/help.c:216 +#, c-format +msgid "" +"'%s': path for unsupported man viewer.\n" +"Please consider using 'man.<tool>.cmd' instead." +msgstr "" +"'%s': ruta d'un visualitzador de manuals no suportat.\n" +"Si us plau, considereu utilitzar 'man.<tool>.cmd' en lloc." + +#: builtin/help.c:228 +#, c-format +msgid "" +"'%s': cmd for supported man viewer.\n" +"Please consider using 'man.<tool>.path' instead." +msgstr "" +"'%s': ordre per un visualitzador de manuals suportat.\n" +"Si us plau, considereu utilitzar 'man.<tool>.path' en lloc." + +#: builtin/help.c:353 +#, c-format +msgid "'%s': unknown man viewer." +msgstr "'%s': visualitzador de manuals desconegut" + +#: builtin/help.c:370 +msgid "no man viewer handled the request" +msgstr "cap visualitzador de manuals ha manejat la sol·licitud" + +#: builtin/help.c:378 +msgid "no info viewer handled the request" +msgstr "cap visualitzador d'informació ha manejat la sol·licitud" + +#: builtin/help.c:424 +msgid "Defining attributes per path" +msgstr "La definició d'atributs per ruta" + +#: builtin/help.c:425 +msgid "A Git glossary" +msgstr "Un glossari de Git" + +#: builtin/help.c:426 +msgid "Specifies intentionally untracked files to ignore" +msgstr "Especifica fitxers intencionalment no seguits que ignorar" + +#: builtin/help.c:427 +msgid "Defining submodule properties" +msgstr "La definició dels propietats de submòduls" + +#: builtin/help.c:428 +msgid "Specifying revisions and ranges for Git" +msgstr "L'especificació de revisions i rangs per a Git" + +#: builtin/help.c:429 +msgid "A tutorial introduction to Git (for version 1.5.1 or newer)" +msgstr "Una introducció tutorial a Git (per a la versió 1.5.1 o més nou)" + +#: builtin/help.c:430 +msgid "An overview of recommended workflows with Git" +msgstr "Una visió de conjunt de fluxos de treball recomanats amb Git" + +#: builtin/help.c:442 +msgid "The common Git guides are:\n" +msgstr "Les guies de Git comunes són:\n" + +#: builtin/help.c:463 builtin/help.c:480 +#, c-format +msgid "usage: %s%s" +msgstr "ús: %s%s" + +#: builtin/help.c:496 +#, c-format +msgid "`git %s' is aliased to `%s'" +msgstr "`git %s' és à lies a `%s'" + +#: builtin/index-pack.c:145 +#, c-format +msgid "unable to open %s" +msgstr "incapaç d'obrir %s" + +#: builtin/index-pack.c:191 +#, c-format +msgid "object type mismatch at %s" +msgstr "discordança de tipus d'objecte a %s" + +#: builtin/index-pack.c:211 +#, c-format +msgid "did not receive expected object %s" +msgstr "no s'ha rebut l'objecte esperat %s" + +#: builtin/index-pack.c:214 +#, c-format +msgid "object %s: expected type %s, found %s" +msgstr "objecte %s: tipus %s esperat, %s trobat" + +#: builtin/index-pack.c:256 +#, c-format +msgid "cannot fill %d byte" +msgid_plural "cannot fill %d bytes" +msgstr[0] "no es pot omplir %d octet" +msgstr[1] "no es pot omplir %d octets" + +#: builtin/index-pack.c:266 +msgid "early EOF" +msgstr "EOF aviat" + +#: builtin/index-pack.c:267 +msgid "read error on input" +msgstr "error de lectura d'entrada" + +#: builtin/index-pack.c:279 +msgid "used more bytes than were available" +msgstr "més octets utilitzats que estaven disponibles" + +#: builtin/index-pack.c:286 +msgid "pack too large for current definition of off_t" +msgstr "paquet massa gran per a la definició actual d'off_t" + +#: builtin/index-pack.c:302 +#, c-format +msgid "unable to create '%s'" +msgstr "no es pot crear '%s'" + +#: builtin/index-pack.c:307 +#, c-format +msgid "cannot open packfile '%s'" +msgstr "no es pot obrir el fitxer de paquet '%s'" + +#: builtin/index-pack.c:321 +msgid "pack signature mismatch" +msgstr "discordança de firma de paquet" + +#: builtin/index-pack.c:323 +#, c-format +msgid "pack version %<PRIu32> unsupported" +msgstr "versió de paquet %<PRIu32> no suportada" + +#: builtin/index-pack.c:341 +#, c-format +msgid "pack has bad object at offset %lu: %s" +msgstr "el paquet té un objecte dolent a desplaçament %lu: %s" + +#: builtin/index-pack.c:462 +#, c-format +msgid "inflate returned %d" +msgstr "la inflació ha retornat %d" + +#: builtin/index-pack.c:511 +msgid "offset value overflow for delta base object" +msgstr "desbordament de valor de desplaçament per a l'objecte base de delta" + +#: builtin/index-pack.c:519 +msgid "delta base offset is out of bound" +msgstr "desplaçament de base de delta està fora de lÃmits" + +#: builtin/index-pack.c:527 +#, c-format +msgid "unknown object type %d" +msgstr "tipus d'objecte desconegut %d" + +#: builtin/index-pack.c:558 +msgid "cannot pread pack file" +msgstr "no es pot fer pread en en fitxer de paquet" + +#: builtin/index-pack.c:560 +#, c-format +msgid "premature end of pack file, %lu byte missing" +msgid_plural "premature end of pack file, %lu bytes missing" +msgstr[0] "fin prematur de fitxer de paquet, manca %lu octet" +msgstr[1] "fin prematur de fitxer de paquet, manquen %lu octets" + +#: builtin/index-pack.c:586 +msgid "serious inflate inconsistency" +msgstr "inconsistència d'inflació seria" + +#: builtin/index-pack.c:677 builtin/index-pack.c:683 builtin/index-pack.c:706 +#: builtin/index-pack.c:740 builtin/index-pack.c:749 +#, c-format +msgid "SHA1 COLLISION FOUND WITH %s !" +msgstr "COL·LISIÓ SHA1 TROBAT AMB %s !" + +#: builtin/index-pack.c:680 builtin/pack-objects.c:162 +#: builtin/pack-objects.c:254 +#, c-format +msgid "unable to read %s" +msgstr "incapaç de llegir %s" + +#: builtin/index-pack.c:746 +#, c-format +msgid "cannot read existing object %s" +msgstr "no es pot llegir l'objecte existent %s" + +#: builtin/index-pack.c:760 +#, c-format +msgid "invalid blob object %s" +msgstr "objecte de blob invà lid %s" + +#: builtin/index-pack.c:774 +#, c-format +msgid "invalid %s" +msgstr "%s invà lid" + +#: builtin/index-pack.c:777 +msgid "Error in object" +msgstr "Error en objecte" + +#: builtin/index-pack.c:779 +#, c-format +msgid "Not all child objects of %s are reachable" +msgstr "No tots els objectes fills de %s són abastables" + +#: builtin/index-pack.c:851 builtin/index-pack.c:881 +msgid "failed to apply delta" +msgstr "s'ha fallat al aplicar delta" + +#: builtin/index-pack.c:1022 +msgid "Receiving objects" +msgstr "Rebent objectes" + +#: builtin/index-pack.c:1022 +msgid "Indexing objects" +msgstr "Indexant objectes" + +#: builtin/index-pack.c:1048 +msgid "pack is corrupted (SHA1 mismatch)" +msgstr "el paquet és corromput (discordança SHA1)" + +#: builtin/index-pack.c:1053 +msgid "cannot fstat packfile" +msgstr "no es pot fer fstat en en fitxer de paquet" + +#: builtin/index-pack.c:1056 +msgid "pack has junk at the end" +msgstr "el paquet té brossa al final" + +#: builtin/index-pack.c:1067 +msgid "confusion beyond insanity in parse_pack_objects()" +msgstr "confusió més enllà de la insanitat en parse_pack_objects()" + +#: builtin/index-pack.c:1090 +msgid "Resolving deltas" +msgstr "Resolent les deltes" + +#: builtin/index-pack.c:1100 +#, c-format +msgid "unable to create thread: %s" +msgstr "incapaç de crear fil: %s" + +#: builtin/index-pack.c:1142 +msgid "confusion beyond insanity" +msgstr "confusió més enllà de la insanitat" + +#: builtin/index-pack.c:1150 +#, c-format +msgid "completed with %d local objects" +msgstr "terminat amb %d objectes locals" + +#: builtin/index-pack.c:1160 +#, c-format +msgid "Unexpected tail checksum for %s (disk corruption?)" +msgstr "Suma de verificació final no esperada per a %s (corrupció de disc?)" + +#: builtin/index-pack.c:1164 +#, c-format +msgid "pack has %d unresolved delta" +msgid_plural "pack has %d unresolved deltas" +msgstr[0] "El paquet té %d delta no resolta" +msgstr[1] "El paquet té %d deltes no resoltes" + +#: builtin/index-pack.c:1189 +#, c-format +msgid "unable to deflate appended object (%d)" +msgstr "incapaç de desinflar l'objecte annexat (%d)" + +#: builtin/index-pack.c:1268 +#, c-format +msgid "local object %s is corrupt" +msgstr "l'objecte local %s és corrupte" + +#: builtin/index-pack.c:1292 +msgid "error while closing pack file" +msgstr "error al tancar el fitxer de paquet" + +#: builtin/index-pack.c:1305 +#, c-format +msgid "cannot write keep file '%s'" +msgstr "no es pot escriure el fitxer que retenir '%s'" + +#: builtin/index-pack.c:1313 +#, c-format +msgid "cannot close written keep file '%s'" +msgstr "no es pot tancar el fitxer que retenir escrit '%s'" + +#: builtin/index-pack.c:1326 +msgid "cannot store pack file" +msgstr "no es pot emmagatzemar el fitxer de paquet" + +#: builtin/index-pack.c:1337 +msgid "cannot store index file" +msgstr "no es pot emmagatzemar el fitxer d'Ãndex" + +#: builtin/index-pack.c:1370 +#, c-format +msgid "bad pack.indexversion=%<PRIu32>" +msgstr "pack.indexversion=%<PRIu32> dolent" + +#: builtin/index-pack.c:1376 +#, c-format +msgid "invalid number of threads specified (%d)" +msgstr "nombre de fils invà lid especificat (%d)" + +#: builtin/index-pack.c:1380 builtin/index-pack.c:1559 +#, c-format +msgid "no threads support, ignoring %s" +msgstr "cap suport de fils, ignorant %s" + +#: builtin/index-pack.c:1438 +#, c-format +msgid "Cannot open existing pack file '%s'" +msgstr "No es pot obrir el fitxer de paquet existent '%s'" + +#: builtin/index-pack.c:1440 +#, 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:1487 +#, 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:1494 +#, 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:1523 +msgid "Cannot come back to cwd" +msgstr "No es pot tornar al directori de treball actual" + +#: builtin/index-pack.c:1571 builtin/index-pack.c:1574 +#: builtin/index-pack.c:1586 builtin/index-pack.c:1590 +#, c-format +msgid "bad %s" +msgstr "%s dolent" + +#: builtin/index-pack.c:1604 +msgid "--fix-thin cannot be used without --stdin" +msgstr "--fix-thin no es pot utilitzar sense --stdin" + +#: builtin/index-pack.c:1608 builtin/index-pack.c:1617 +#, c-format +msgid "packfile name '%s' does not end with '.pack'" +msgstr "el nom de fitxer de paquet '%s' no termina amb '.pack'" + +#: builtin/index-pack.c:1625 +msgid "--verify with no packfile name given" +msgstr "--verify donat sense nom de fitxer de paquet" + +#: builtin/init-db.c:35 +#, c-format +msgid "Could not make %s writable by group" +msgstr "No s'ha pogut fer %s escrivible pel grup" + +#: builtin/init-db.c:62 +#, c-format +msgid "insanely long template name %s" +msgstr "nom de plantilla insanament llarg %s" + +#: builtin/init-db.c:67 +#, c-format +msgid "cannot stat '%s'" +msgstr "no es pot fer stat en '%s'" + +#: builtin/init-db.c:73 +#, c-format +msgid "cannot stat template '%s'" +msgstr "no es pot fer stat en la plantilla '%s'" + +#: builtin/init-db.c:80 +#, c-format +msgid "cannot opendir '%s'" +msgstr "no es pot fer opendir en el directori '%s'" + +#: builtin/init-db.c:97 +#, c-format +msgid "cannot readlink '%s'" +msgstr "no es pot fer readlink en '%s'" + +#: builtin/init-db.c:99 +#, c-format +msgid "insanely long symlink %s" +msgstr "enllaç simbòlic insanament llarg %s" + +#: builtin/init-db.c:102 +#, c-format +msgid "cannot symlink '%s' '%s'" +msgstr "no es pot fer symlink en '%s' '%s'" + +#: builtin/init-db.c:106 +#, c-format +msgid "cannot copy '%s' to '%s'" +msgstr "no es pot copiar '%s' a '%s'" + +#: builtin/init-db.c:110 +#, c-format +msgid "ignoring template %s" +msgstr "ignorant la plantilla %s" + +#: builtin/init-db.c:133 +#, c-format +msgid "insanely long template path %s" +msgstr "enllaç ruta de plantilla %s" + +#: builtin/init-db.c:141 +#, c-format +msgid "templates not found %s" +msgstr "plantilles no trobades %s" + +#: builtin/init-db.c:154 +#, c-format +msgid "not copying templates of a wrong format version %d from '%s'" +msgstr "no copiant plantilles d'una versió de format errònia %d de '%s'" + +#: builtin/init-db.c:192 +#, c-format +msgid "insane git directory %s" +msgstr "directori de git boig %s" + +#: builtin/init-db.c:323 builtin/init-db.c:326 +#, c-format +msgid "%s already exists" +msgstr "%s ja existeix" + +#: builtin/init-db.c:355 +#, c-format +msgid "unable to handle file type %d" +msgstr "incapaç de manejar el tipus de fitxer %d" + +#: builtin/init-db.c:358 +#, c-format +msgid "unable to move %s to %s" +msgstr "incapaç de moure %s a %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:418 +#, c-format +msgid "%s%s Git repository in %s%s\n" +msgstr "%s%s repositori de Git en %s%s\n" + +#: builtin/init-db.c:419 +msgid "Reinitialized existing" +msgstr "Reinicialitzat existent" + +#: builtin/init-db.c:419 +msgid "Initialized empty" +msgstr "Inicialitzat buit" + +#: builtin/init-db.c:420 +msgid " shared" +msgstr " compartit" + +#: builtin/init-db.c:439 +msgid "cannot tell cwd" +msgstr "no es pot determinar el directori de treball actual" + +#: builtin/init-db.c:465 +msgid "" +"git init [-q | --quiet] [--bare] [--template=<template-directory>] [--" +"shared[=<permissions>]] [directory]" +msgstr "" +"git init [-q | --quiet] [--bare] [--template=<directori-de-plantilla>] [--" +"shared[=<permisos>]] [directori]" + +#: builtin/init-db.c:488 +msgid "permissions" +msgstr "permisos" + +#: builtin/init-db.c:489 +msgid "specify that the git repository is to be shared amongst several users" +msgstr "" +"especifica que el repositori de git es compartirà entre diversos usuaris" + +#: builtin/init-db.c:491 builtin/prune-packed.c:79 builtin/repack.c:172 +msgid "be quiet" +msgstr "calla" + +#: builtin/init-db.c:523 builtin/init-db.c:528 +#, c-format +msgid "cannot mkdir %s" +msgstr "no es pot mkdir %s" + +#: builtin/init-db.c:532 +#, c-format +msgid "cannot chdir to %s" +msgstr "no es pot chdir a %s" + +#: builtin/init-db.c:554 +#, c-format +msgid "" +"%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-" +"dir=<directory>)" +msgstr "" +"no es permet %s (o --work-tree=<directori>) sense especificar %s (o --git-" +"dir=<directori>)" + +#: builtin/init-db.c:578 +msgid "Cannot access current working directory" +msgstr "No es pot accedir al directori de treball corrent" + +#: builtin/init-db.c:585 +#, c-format +msgid "Cannot access work tree '%s'" +msgstr "No es pot accedir al arbre de treball '%s'" + +#: builtin/log.c:41 +msgid "git log [<options>] [<revision range>] [[--] <path>...]\n" +msgstr "git log [<opcions>] [<rang de revisions>] [[--] <ruta>...]\n" + +#: builtin/log.c:42 +msgid " or: git show [options] <object>..." +msgstr " o: git show [opcions] <objecte>..." + +#: builtin/log.c:127 +msgid "suppress diff output" +msgstr "omet la sortida de diferències" + +#: builtin/log.c:128 +msgid "show source" +msgstr "mostra el fons" + +#: builtin/log.c:129 +msgid "Use mail map file" +msgstr "Utilitza fitxer de mapa de correu" + +#: builtin/log.c:130 +msgid "decorate options" +msgstr "opcions de decoració" + +#: builtin/log.c:229 +#, c-format +msgid "Final output: %d %s\n" +msgstr "Sortida final: %d %s\n" + +#: builtin/log.c:470 builtin/log.c:562 +#, c-format +msgid "Could not read object %s" +msgstr "No es pot llegir l'objecte %s" + +#: builtin/log.c:586 +#, c-format +msgid "Unknown type: %d" +msgstr "Tipus desconegut: %d" + +#: builtin/log.c:687 +msgid "format.headers without value" +msgstr "format.headers sense valor" + +#: builtin/log.c:771 +msgid "name of output directory is too long" +msgstr "el nom del directori de sortida és massa llarg" + +#: builtin/log.c:787 +#, c-format +msgid "Cannot open patch file %s" +msgstr "No es pot obrir el fitxer de pedaç %s" + +#: builtin/log.c:801 +msgid "Need exactly one range." +msgstr "Cal exactament un rang." + +#: builtin/log.c:809 +msgid "Not a range." +msgstr "No és un rang." + +#: builtin/log.c:916 +msgid "Cover letter needs email format" +msgstr "La carta de presentació necessita el format de correu electrònic" + +#: builtin/log.c:995 +#, c-format +msgid "insane in-reply-to: %s" +msgstr "in-reply-to boig: %s" + +#: builtin/log.c:1023 +msgid "git format-patch [options] [<since> | <revision range>]" +msgstr "git format-patch [opcions] [<des de> | <rang de revisions>]" + +#: builtin/log.c:1068 +msgid "Two output directories?" +msgstr "Dos directoris de sortida?" + +#: builtin/log.c:1183 +msgid "use [PATCH n/m] even with a single patch" +msgstr "utilitza [PATCH n/m] encara amb un pedaç solter" + +#: builtin/log.c:1186 +msgid "use [PATCH] even with multiple patches" +msgstr "utilitza [PATCH] encara amb múltiples pedaços" + +#: builtin/log.c:1190 +msgid "print patches to standard out" +msgstr "imprimeix els pedaços al sortida està ndard" + +#: builtin/log.c:1192 +msgid "generate a cover letter" +msgstr "genera una carta de presentació" + +#: builtin/log.c:1194 +msgid "use simple number sequence for output file names" +msgstr "utilitza una seqüència de números per als noms dels fitxers de sortida" + +#: builtin/log.c:1195 +msgid "sfx" +msgstr "sufix" + +#: builtin/log.c:1196 +msgid "use <sfx> instead of '.patch'" +msgstr "utilitza <sufix> en lloc de '.patch'" + +#: builtin/log.c:1198 +msgid "start numbering patches at <n> instead of 1" +msgstr "comença nombrant els pedaços a <n> en lloc d'1" + +#: builtin/log.c:1200 +msgid "mark the series as Nth re-roll" +msgstr "marca la sèrie com la Nª llançada" + +#: builtin/log.c:1202 +msgid "Use [<prefix>] instead of [PATCH]" +msgstr "Utilitza [<prefix>] en lloc de [PATCH]" + +#: builtin/log.c:1205 +msgid "store resulting files in <dir>" +msgstr "emmagatzema els fitxers resultants en <directori>" + +#: builtin/log.c:1208 +msgid "don't strip/add [PATCH]" +msgstr "no despullis/afegeixis [PATCH]" + +#: builtin/log.c:1211 +msgid "don't output binary diffs" +msgstr "no emetis diferències binà ries" + +#: builtin/log.c:1213 +msgid "don't include a patch matching a commit upstream" +msgstr "no incloguis un pedaç que coincideixi amb una comissió a la font" + +#: builtin/log.c:1215 +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:1217 +msgid "Messaging" +msgstr "Missatgeria" + +#: builtin/log.c:1218 +msgid "header" +msgstr "capçalera" + +#: builtin/log.c:1219 +msgid "add email header" +msgstr "afegeix capçalera de correu electrònic" + +#: builtin/log.c:1220 builtin/log.c:1222 +msgid "email" +msgstr "correu electrònic" + +#: builtin/log.c:1220 +msgid "add To: header" +msgstr "afegeix capçalera To:" + +#: builtin/log.c:1222 +msgid "add Cc: header" +msgstr "afegeix capçalera Cc:" + +#: builtin/log.c:1224 +msgid "ident" +msgstr "identitat" + +#: builtin/log.c:1225 +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 absent)" + +#: builtin/log.c:1227 +msgid "message-id" +msgstr "ID de missatge" + +#: builtin/log.c:1228 +msgid "make first mail a reply to <message-id>" +msgstr "fes el primer missatge una resposta a <ID de missatge>" + +#: builtin/log.c:1229 builtin/log.c:1232 +msgid "boundary" +msgstr "lÃmit" + +#: builtin/log.c:1230 +msgid "attach the patch" +msgstr "ajunta el pedaç" + +#: builtin/log.c:1233 +msgid "inline the patch" +msgstr "posa el pedaç en el cos" + +#: builtin/log.c:1237 +msgid "enable message threading, styles: shallow, deep" +msgstr "habilita l'enfilada de missatges, estils: shallow, deep" + +#: builtin/log.c:1239 +msgid "signature" +msgstr "firma" + +#: builtin/log.c:1240 +msgid "add a signature" +msgstr "afegeix una firma" + +#: builtin/log.c:1242 +msgid "add a signature from a file" +msgstr "afegeix una firma des d'un fitxer" + +#: builtin/log.c:1243 +msgid "don't print the patch filenames" +msgstr "no imprimeixis els noms de fitxer del pedaç" + +#: builtin/log.c:1317 +#, c-format +msgid "invalid ident line: %s" +msgstr "lÃnia d'identitat invà lida: %s" + +#: builtin/log.c:1332 +msgid "-n and -k are mutually exclusive." +msgstr "-n i -k són mutualment exclusius." + +#: builtin/log.c:1334 +msgid "--subject-prefix and -k are mutually exclusive." +msgstr "--subject-prefix i -k són mutualment exclusius." + +#: builtin/log.c:1342 +msgid "--name-only does not make sense" +msgstr "--name-only no té sentit" + +#: builtin/log.c:1344 +msgid "--name-status does not make sense" +msgstr "--name-status no té sentit" + +#: builtin/log.c:1346 +msgid "--check does not make sense" +msgstr "--check no té sentit" + +#: builtin/log.c:1369 +msgid "standard output, or directory, which one?" +msgstr "sortida està ndard, o directori, qual?" + +#: builtin/log.c:1371 +#, c-format +msgid "Could not create directory '%s'" +msgstr "No s'ha pogut crear el directori '%s'" + +#: builtin/log.c:1468 +#, c-format +msgid "unable to read signature file '%s'" +msgstr "incapaç de llegir el fitxer de firma '%s'" + +#: builtin/log.c:1531 +msgid "Failed to create output files" +msgstr "S'ha fallat al crear fitxers de sortida" + +#: builtin/log.c:1579 +msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]" +msgstr "git cherry [-v] [<font> [<cap> [<lÃmit>]]]" + +#: builtin/log.c:1634 +#, c-format +msgid "" +"Could not find a tracked remote branch, please specify <upstream> manually.\n" +msgstr "" +"No s'ha pogut trobar una rama remota seguida, si us plau, especifiqueu " +"<font> manualment.\n" + +#: builtin/log.c:1647 builtin/log.c:1649 builtin/log.c:1661 +#, c-format +msgid "Unknown commit %s" +msgstr "Comissió desconeguda %s" + +#: builtin/ls-files.c:401 +msgid "git ls-files [options] [<file>...]" +msgstr "git ls-files [opcions] [<fitxer>...]" + +#: builtin/ls-files.c:458 +msgid "identify the file status with tags" +msgstr "identifica l'estat de fitxer amb etiquetes" + +#: builtin/ls-files.c:460 +msgid "use lowercase letters for 'assume unchanged' files" +msgstr "utilitza lletres minúscules per als fitxers 'assume unchanged'" + +#: builtin/ls-files.c:462 +msgid "show cached files in the output (default)" +msgstr "mostra els fitxers en cau en la sortida (per defecte)" + +#: builtin/ls-files.c:464 +msgid "show deleted files in the output" +msgstr "mostra els fitxers suprimits en la sortida" + +#: builtin/ls-files.c:466 +msgid "show modified files in the output" +msgstr "mostra els fitxers modificats en la sortida" + +#: builtin/ls-files.c:468 +msgid "show other files in the output" +msgstr "mostra els altres fitxers en la sortida" + +#: builtin/ls-files.c:470 +msgid "show ignored files in the output" +msgstr "mostra els fitxers ignorats en la sortida" + +#: builtin/ls-files.c:473 +msgid "show staged contents' object name in the output" +msgstr "mostra el nom d'objecte dels continguts allistats en la sortida" + +#: builtin/ls-files.c:475 +msgid "show files on the filesystem that need to be removed" +msgstr "mostra els fitxers en el sistema de fitxers que s'han de treure" + +#: builtin/ls-files.c:477 +msgid "show 'other' directories' name only" +msgstr "mostra només els noms dels directoris 'other'" + +#: builtin/ls-files.c:480 +msgid "don't show empty directories" +msgstr "no mostris directoris buits" + +#: builtin/ls-files.c:483 +msgid "show unmerged files in the output" +msgstr "mostra els fitxers sense fusionar en la sortida" + +#: builtin/ls-files.c:485 +msgid "show resolve-undo information" +msgstr "mostra la informació de resolució de desfet" + +#: builtin/ls-files.c:487 +msgid "skip files matching pattern" +msgstr "salta els fitxers coincidents amb el patró" + +#: builtin/ls-files.c:490 +msgid "exclude patterns are read from <file>" +msgstr "els patrons d'exclusió es llegeixen de <fitxer>" + +#: builtin/ls-files.c:493 +msgid "read additional per-directory exclude patterns in <file>" +msgstr "llegeix els patrons d'exclusió per directori addicionals en <fitxer>" + +#: builtin/ls-files.c:495 +msgid "add the standard git exclusions" +msgstr "afegeix les exclusions està ndards de git" + +#: builtin/ls-files.c:498 +msgid "make the output relative to the project top directory" +msgstr "fes que la sortida sigui relativa al directori superior del project" + +#: builtin/ls-files.c:501 +msgid "if any <file> is not in the index, treat this as an error" +msgstr "si qualsevol <fitxer> no està en l'Ãndex, tracta això com error" + +#: builtin/ls-files.c:502 +msgid "tree-ish" +msgstr "arbre" + +#: builtin/ls-files.c:503 +msgid "pretend that paths removed since <tree-ish> are still present" +msgstr "" +"pretenguis que les rutes tretes deprés de <arbre> encara estiguin presents" + +#: builtin/ls-files.c:505 +msgid "show debugging data" +msgstr "mostra dades de depuració" + +#: builtin/ls-tree.c:28 +msgid "git ls-tree [<options>] <tree-ish> [<path>...]" +msgstr "git ls-tree [<opcions>] <arbre> [<ruta>...]" + +#: builtin/ls-tree.c:126 +msgid "only show trees" +msgstr "mostra només els arbres" + +#: builtin/ls-tree.c:128 +msgid "recurse into subtrees" +msgstr "recursa a subarbres" + +#: builtin/ls-tree.c:130 +msgid "show trees when recursing" +msgstr "mostra els arbres al recursar" + +#: builtin/ls-tree.c:133 +msgid "terminate entries with NUL byte" +msgstr "termina les entrades amb un octet NUL" + +#: builtin/ls-tree.c:134 +msgid "include object size" +msgstr "mida de l'objecte d'inclusió" + +#: builtin/ls-tree.c:136 builtin/ls-tree.c:138 +msgid "list only filenames" +msgstr "llista només noms de fitxer" + +#: builtin/ls-tree.c:141 +msgid "use full path names" +msgstr "utilitza noms de ruta compets" + +#: builtin/ls-tree.c:143 +msgid "list entire tree; not just current directory (implies --full-name)" +msgstr "llista l'arbre enter; no sol el directori actual (implica --full-name)" + +#: builtin/merge.c:43 +msgid "git merge [options] [<commit>...]" +msgstr "git merge [opcions] [<comissió>...]" + +#: builtin/merge.c:44 +msgid "git merge [options] <msg> HEAD <commit>" +msgstr "git merge [opcions] <missatge> HEAD <comissió>" + +#: builtin/merge.c:45 +msgid "git merge --abort" +msgstr "git merge --abort" + +#: builtin/merge.c:98 +msgid "switch `m' requires a value" +msgstr "l'opció `m' requereix un valor" + +#: builtin/merge.c:135 +#, c-format +msgid "Could not find merge strategy '%s'.\n" +msgstr "No s'ha pogut trobar l'estratègia de fusió '%s'.\n" + +#: builtin/merge.c:136 +#, c-format +msgid "Available strategies are:" +msgstr "Les estratègies disponibles són:" + +#: builtin/merge.c:141 +#, c-format +msgid "Available custom strategies are:" +msgstr "Les estratègies personalitzades disponibles són:" + +#: builtin/merge.c:191 +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:194 +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:195 +msgid "(synonym to --stat)" +msgstr "(sinònim de --stat)" + +#: builtin/merge.c:197 +msgid "add (at most <n>) entries from shortlog to merge commit message" +msgstr "" +"afegeix (com mà xim <n>) entrades del registre curt per fusionar el missatge " +"de comissió" + +#: builtin/merge.c:200 +msgid "create a single commit instead of doing a merge" +msgstr "crea una comissió soltera en lloc de fusionar" + +#: builtin/merge.c:202 +msgid "perform a commit if the merge succeeds (default)" +msgstr "realitza una comissió si la fusió té èxit (per defecte)" + +#: builtin/merge.c:204 +msgid "edit message before committing" +msgstr "edita el missatge abans de cometre" + +#: builtin/merge.c:205 +msgid "allow fast-forward (default)" +msgstr "permet l'avanç rà pid (per defecte)" + +#: builtin/merge.c:207 +msgid "abort if fast-forward is not possible" +msgstr "avorta si l'avanç rà pid no és possible" + +#: builtin/merge.c:211 +msgid "Verify that the named commit has a valid GPG signature" +msgstr "Verifica que la comissió anomenada té una firma GPG và lida" + +#: builtin/merge.c:212 builtin/notes.c:742 builtin/revert.c:89 +msgid "strategy" +msgstr "estratègia" + +#: builtin/merge.c:213 +msgid "merge strategy to use" +msgstr "estratègia de fusió que utilitzar" + +#: builtin/merge.c:214 +msgid "option=value" +msgstr "opció=valor" + +#: builtin/merge.c:215 +msgid "option for selected merge strategy" +msgstr "opció per a l'estratègia de fusió seleccionada" + +#: builtin/merge.c:217 +msgid "merge commit message (for a non-fast-forward merge)" +msgstr "missatge de comissió de fusió (per a una fusió no de avanç rà pid)" + +#: builtin/merge.c:221 +msgid "abort the current in-progress merge" +msgstr "avorta la fusió en curs actual" + +#: builtin/merge.c:250 +msgid "could not run stash." +msgstr "no s'ha pogut executar stash." + +#: builtin/merge.c:255 +msgid "stash failed" +msgstr "L'emmagatzemament ha fallat." + +#: builtin/merge.c:260 +#, c-format +msgid "not a valid object: %s" +msgstr "no és un objecte và lid: %s" + +#: builtin/merge.c:279 builtin/merge.c:296 +msgid "read-tree failed" +msgstr "read-tree ha fallat" + +#: builtin/merge.c:326 +msgid " (nothing to squash)" +msgstr " (res que aixafar)" + +#: builtin/merge.c:339 +#, c-format +msgid "Squash commit -- not updating HEAD\n" +msgstr "Comissió d'aixafada -- no actualitzant HEAD\n" + +#: builtin/merge.c:371 +msgid "Writing SQUASH_MSG" +msgstr "Escrivint SQUASH_MSG" + +#: builtin/merge.c:373 +msgid "Finishing SQUASH_MSG" +msgstr "Terminant SQUASH_MSG" + +#: builtin/merge.c:396 +#, c-format +msgid "No merge message -- not updating HEAD\n" +msgstr "Cap missatge de fusió -- no actualitzant HEAD\n" + +#: builtin/merge.c:446 +#, c-format +msgid "'%s' does not point to a commit" +msgstr "'%s' no assenyala una comissió" + +#: builtin/merge.c:558 +#, c-format +msgid "Bad branch.%s.mergeoptions string: %s" +msgstr "Cadena branch.%s.mergeoptions dolenta: %s" + +#: builtin/merge.c:653 +msgid "git write-tree failed to write a tree" +msgstr "git write-tree ha fallat al escriure un arbre" + +#: builtin/merge.c:678 +msgid "Not handling anything other than two heads merge." +msgstr "No manejant res apart de la fusió de dos caps." + +#: builtin/merge.c:692 +#, c-format +msgid "Unknown option for merge-recursive: -X%s" +msgstr "Opció desconeguda de merge-recursive: -X%s" + +#: builtin/merge.c:705 +#, c-format +msgid "unable to write %s" +msgstr "incapaç d'escriure %s" + +#: builtin/merge.c:794 +#, c-format +msgid "Could not read from '%s'" +msgstr "No s'ha pogut llegir de '%s'" + +#: builtin/merge.c:803 +#, c-format +msgid "Not committing merge; use 'git commit' to complete the merge.\n" +msgstr "No comitent la fusió; utilitzeu 'git commit' per terminar la fusió.\n" + +#: builtin/merge.c:809 +#, 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 '%c' will be ignored, and an empty message aborts\n" +"the commit.\n" +msgstr "" +"Si us plau, introduïu un missatge de comissió per a explicar per què\n" +"aquesta fusió és necessari, especialment si fusiona una font\n" +"actualitzada a una rama temà tica.\n" +"\n" +"S'ignoraran les lÃnies que comencin amb '%c', i un missatge buit\n" +"avorta la comissió.\n" + +#: builtin/merge.c:833 +msgid "Empty commit message." +msgstr "Missatge de comissió buit." + +#: builtin/merge.c:845 +#, c-format +msgid "Wonderful.\n" +msgstr "Meravellós.\n" + +#: builtin/merge.c:908 +#, 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:924 +#, c-format +msgid "'%s' is not a commit" +msgstr "'%s' no és una comissió" + +#: builtin/merge.c:965 +msgid "No current branch." +msgstr "Cap rama actual." + +#: builtin/merge.c:967 +msgid "No remote for the current branch." +msgstr "Cap remot per a la rama actual." + +#: builtin/merge.c:969 +msgid "No default upstream defined for the current branch." +msgstr "Cap font per defecte definida per a la rama actual." + +#: builtin/merge.c:974 +#, c-format +msgid "No remote-tracking branch for %s from %s" +msgstr "Cap rama de seguiment remot per a %s a %s" + +#: builtin/merge.c:1130 +msgid "There is no merge to abort (MERGE_HEAD missing)." +msgstr "No hi ha fusió que avortar (manca MERGE_HEAD)." + +#: builtin/merge.c:1146 git-pull.sh:31 +msgid "" +"You have not concluded your merge (MERGE_HEAD exists).\n" +"Please, commit your changes before you can merge." +msgstr "" +"No heu terminat la vostra fusió (MERGE_HEAD existeix).\n" +"Si us plau, cometeu els vostres canvis abans de fusionar." + +#: builtin/merge.c:1149 git-pull.sh:34 +msgid "You have not concluded your merge (MERGE_HEAD exists)." +msgstr "No heu terminat la vostra fusió (MERGE_HEAD existeix)." + +#: builtin/merge.c:1153 +msgid "" +"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n" +"Please, commit your changes before you can merge." +msgstr "" +"No heu terminat el vostre recull de cireres (CHERRY_PICK_HEAD existeix).\n" +"Si us plau, cometeu els vostres canvis abans de fusionar." + +#: builtin/merge.c:1156 +msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)." +msgstr "" +"No heu terminat el vostre recull de cireres (CHERRY_PICK_HEAD existeix)." + +#: builtin/merge.c:1165 +msgid "You cannot combine --squash with --no-ff." +msgstr "No podeu combinar --squash amb --no-ff." + +#: builtin/merge.c:1174 +msgid "No commit specified and merge.defaultToUpstream not set." +msgstr "Cap comissió especificada i merge.defaultToUpstream no establert." + +#: builtin/merge.c:1206 +msgid "Can merge only exactly one commit into empty head" +msgstr "Es pot fusionar només exactament una comissió a un cap buit" + +#: builtin/merge.c:1209 +msgid "Squash commit into empty head not supported yet" +msgstr "Aixafar una comissió a un cap buit encara no es suporta" + +#: builtin/merge.c:1211 +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:1216 +#, c-format +msgid "%s - not something we can merge" +msgstr "%s - no és cosa que podem fusionar" + +#: builtin/merge.c:1267 +#, c-format +msgid "Commit %s has an untrusted GPG signature, allegedly by %s." +msgstr "La comissió %s té una firma GPG no confiada, suposadament de %s." + +#: builtin/merge.c:1270 +#, c-format +msgid "Commit %s has a bad GPG signature allegedly by %s." +msgstr "La comissió %s té una firma GPG dolenta suposadament per %s." + +#: builtin/merge.c:1273 +#, c-format +msgid "Commit %s does not have a GPG signature." +msgstr "La comissió %s no té firma GPG." + +#: builtin/merge.c:1276 +#, c-format +msgid "Commit %s has a good GPG signature by %s\n" +msgstr "La comissió %s té una firma GPG bona per %s\n" + +#: builtin/merge.c:1357 +#, c-format +msgid "Updating %s..%s\n" +msgstr "Actualizant %s..%s\n" + +#: builtin/merge.c:1396 +#, c-format +msgid "Trying really trivial in-index merge...\n" +msgstr "Intentant una fusió realment trivial en l'Ãndex...\n" + +#: builtin/merge.c:1403 +#, c-format +msgid "Nope.\n" +msgstr "No.\n" + +#: builtin/merge.c:1435 +msgid "Not possible to fast-forward, aborting." +msgstr "No és possible avançar rà pidament, avortant." + +#: builtin/merge.c:1458 builtin/merge.c:1537 +#, c-format +msgid "Rewinding the tree to pristine...\n" +msgstr "Rebobinant l'arbre a la prÃstina...\n" + +#: builtin/merge.c:1462 +#, c-format +msgid "Trying merge strategy %s...\n" +msgstr "Intentant l'estratègia de fusió %s...\n" + +#: builtin/merge.c:1528 +#, c-format +msgid "No merge strategy handled the merge.\n" +msgstr "Cap estratègia de fusió ha manejat la fusió.\n" + +#: builtin/merge.c:1530 +#, c-format +msgid "Merge with strategy %s failed.\n" +msgstr "L'estratègia de fusió %s ha fallat.\n" + +#: builtin/merge.c:1539 +#, c-format +msgid "Using the %s to prepare resolving by hand.\n" +msgstr "Utilitzant el %s per preparar la resolució a mà .\n" + +#: builtin/merge.c:1551 +#, c-format +msgid "Automatic merge went well; stopped before committing as requested\n" +msgstr "" +"La fusió automà tica ha sortit bé; aturat abans de cometre com demanat\n" + +#: builtin/merge-base.c:29 +msgid "git merge-base [-a|--all] <commit> <commit>..." +msgstr "git merge-base [-a|--all] <comissió> <comissió>..." + +#: builtin/merge-base.c:30 +msgid "git merge-base [-a|--all] --octopus <commit>..." +msgstr "git merge-base [-a|--all] --octopus <comissió>..." + +#: builtin/merge-base.c:31 +msgid "git merge-base --independent <commit>..." +msgstr "git merge-base --independent <comissió>..." + +#: builtin/merge-base.c:32 +msgid "git merge-base --is-ancestor <commit> <commit>" +msgstr "git merge-base --is-ancestor <comissió> <comissió>" + +#: builtin/merge-base.c:33 +msgid "git merge-base --fork-point <ref> [<commit>]" +msgstr "git merge-base --fork-point <referència> [<comissió>]" + +#: builtin/merge-base.c:214 +msgid "output all common ancestors" +msgstr "emet tots els avantpassats comuns" + +#: builtin/merge-base.c:216 +msgid "find ancestors for a single n-way merge" +msgstr "troba els avantpassats per a una fusió de n vies soltera" + +#: builtin/merge-base.c:218 +msgid "list revs not reachable from others" +msgstr "llista les revisions no abastables d'altres" + +#: builtin/merge-base.c:220 +msgid "is the first one ancestor of the other?" +msgstr "és el primer avantpassat de l'altre?" + +#: builtin/merge-base.c:222 +msgid "find where <commit> forked from reflog of <ref>" +msgstr "" +"troba on <comissió> s'ha bifurcat del registre de referències de <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 [opcions] [-L nom1 [-L original [-L nom2]]] fitxer1 " +"fitxer_original fitxer2" + +#: builtin/merge-file.c:33 +msgid "send results to standard output" +msgstr "envia els resultats a la sortida està ndard" + +#: builtin/merge-file.c:34 +msgid "use a diff3 based merge" +msgstr "utilitza una fusió basada en diff3" + +#: builtin/merge-file.c:35 +msgid "for conflicts, use our version" +msgstr "en conflictes, utilitza la versió nostra" + +#: builtin/merge-file.c:37 +msgid "for conflicts, use their version" +msgstr "en conflictes, utilitza la versió seva" + +#: builtin/merge-file.c:39 +msgid "for conflicts, use a union version" +msgstr "en conflictes, utilitza una versió d'unió" + +#: builtin/merge-file.c:42 +msgid "for conflicts, use this marker size" +msgstr "en conflicte, utilitza aquesta mida de marcador" + +#: builtin/merge-file.c:43 +msgid "do not warn about conflicts" +msgstr "no avisis de conflictes" + +#: builtin/merge-file.c:45 +msgid "set labels for file1/orig_file/file2" +msgstr "estableix les etiquetes per a file1/orig_file/file2" + +#: builtin/mktree.c:64 +msgid "git mktree [-z] [--missing] [--batch]" +msgstr "git mktree [-z] [--missing] [--batch]" + +#: builtin/mktree.c:150 +msgid "input is NUL terminated" +msgstr "l'entrada és terminada per NUL" + +#: builtin/mktree.c:151 builtin/write-tree.c:24 +msgid "allow missing objects" +msgstr "permet els objectes mancants" + +#: builtin/mktree.c:152 +msgid "allow creation of more than one tree" +msgstr "permet la creació de més d'un arbre" + +#: builtin/mv.c:15 +msgid "git mv [options] <source>... <destination>" +msgstr "git mv [opcions] <fons>... <destÃ>" + +#: builtin/mv.c:71 +msgid "force move/rename even if target exists" +msgstr "força moviment/canvi de nom encara que el destà existeixi" + +#: builtin/mv.c:72 +msgid "skip move/rename errors" +msgstr "salta els error de moviment/canvi de nom" + +#: builtin/mv.c:122 +#, c-format +msgid "Checking rename of '%s' to '%s'\n" +msgstr "Comprovant el canvi de nom de '%s' a '%s'\n" + +#: builtin/mv.c:126 +msgid "bad source" +msgstr "font dolenta" + +#: builtin/mv.c:129 +msgid "can not move directory into itself" +msgstr "no es pot moure un directori al seu mateix" + +#: builtin/mv.c:132 +msgid "cannot move directory over file" +msgstr "no es pot moure un directori sobre un fitxer" + +#: builtin/mv.c:138 +#, c-format +msgid "Huh? Directory %s is in index and no submodule?" +msgstr "Perdó? El directori %s està en l'Ãndex i no hi ha submòdul?" + +#: builtin/mv.c:140 builtin/rm.c:318 +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:156 +#, c-format +msgid "Huh? %.*s is in index?" +msgstr "Perdó? %.*s està en l'Ãndex?" + +#: builtin/mv.c:169 +msgid "source directory is empty" +msgstr "el directori font està buit" + +#: builtin/mv.c:205 +msgid "not under version control" +msgstr "no baix control de versions" + +#: builtin/mv.c:208 +msgid "destination exists" +msgstr "el destà existeix" + +#: builtin/mv.c:216 +#, c-format +msgid "overwriting '%s'" +msgstr "sobreescrivint '%s'" + +#: builtin/mv.c:219 +msgid "Cannot overwrite" +msgstr "No es pot sobreescriure" + +#: builtin/mv.c:222 +msgid "multiple sources for the same target" +msgstr "múltiples fonts per al mateix destÃ" + +#: builtin/mv.c:224 +msgid "destination directory does not exist" +msgstr "el directori destà no existeix" + +#: builtin/mv.c:244 +#, c-format +msgid "%s, source=%s, destination=%s" +msgstr "%s, origen=%s, destÃ=%s" + +#: builtin/mv.c:254 +#, c-format +msgid "Renaming %s to %s\n" +msgstr "Canviant el nom de %s a %s\n" + +#: builtin/mv.c:257 builtin/remote.c:725 builtin/repack.c:358 +#, c-format +msgid "renaming '%s' failed" +msgstr "el canvi del nom de '%s' ha fallat" + +#: builtin/name-rev.c:255 +msgid "git name-rev [options] <commit>..." +msgstr "git name-rev [opcions] <comissió>..." + +#: builtin/name-rev.c:256 +msgid "git name-rev [options] --all" +msgstr "git name-rev [opcions] --all" + +#: builtin/name-rev.c:257 +msgid "git name-rev [options] --stdin" +msgstr "git name-rev [opcions] --stdin" + +#: builtin/name-rev.c:309 +msgid "print only names (no SHA-1)" +msgstr "imprimeix només els noms (cap SHA-1)" + +#: builtin/name-rev.c:310 +msgid "only use tags to name the commits" +msgstr "només utilitza etiquetes per anomenar les comissions" + +#: builtin/name-rev.c:312 +msgid "only use refs matching <pattern>" +msgstr "només utilitza les referències que coincideixen amb <patró>" + +#: builtin/name-rev.c:314 +msgid "list all commits reachable from all refs" +msgstr "llista totes les comissions abastables de totes les referències" + +#: builtin/name-rev.c:315 +msgid "read from stdin" +msgstr "llegeix de stdin" + +#: builtin/name-rev.c:316 +msgid "allow to print `undefined` names (default)" +msgstr "permet imprimir noms `undefined` (per defecte)" + +#: builtin/name-rev.c:322 +msgid "dereference tags in the input (internal use)" +msgstr "dereferencia les etiquetes en l'entrada (ús intern)" + +#: builtin/notes.c:24 +msgid "git notes [--ref <notes_ref>] [list [<object>]]" +msgstr "git notes [--ref <referència_de_notes>] [llista [<objecte>]]" + +#: builtin/notes.c:25 +msgid "" +"git notes [--ref <notes_ref>] add [-f] [-m <msg> | -F <file> | (-c | -C) " +"<object>] [<object>]" +msgstr "" +"git notes [--ref <referència_de_notes>] add [-f] [-m <missatge> | -F " +"<fitxer> | (-c | -C) <objecte>] [<objecte>]" + +#: builtin/notes.c:26 +msgid "git notes [--ref <notes_ref>] copy [-f] <from-object> <to-object>" +msgstr "" +"git notes [--ref <referència_de_notes>] copy [-f] <d'objecte> <a-objecte>" + +#: builtin/notes.c:27 +msgid "" +"git notes [--ref <notes_ref>] append [-m <msg> | -F <file> | (-c | -C) " +"<object>] [<object>]" +msgstr "" +"git notes [--ref <referència_de_notes>] append [-m <missatge> | -F <fitxer> " +"| (-c | -C) <objecte>] [<objecte>]" + +#: builtin/notes.c:28 +msgid "git notes [--ref <notes_ref>] edit [<object>]" +msgstr "git notes [--ref <referència_de_notes>] edit [<objecte>]" + +#: builtin/notes.c:29 +msgid "git notes [--ref <notes_ref>] show [<object>]" +msgstr "git notes [--ref <referència_de_notes>] show [<objecte>]" + +#: builtin/notes.c:30 +msgid "" +"git notes [--ref <notes_ref>] merge [-v | -q] [-s <strategy> ] <notes_ref>" +msgstr "" +"git notes [--ref <referència_de_notes>] merge [-v | -q] [-s <estratègia> ] " +"<referència_de_notes>" + +#: builtin/notes.c:31 +msgid "git notes merge --commit [-v | -q]" +msgstr "git notes merge --commit [-v | -q]" + +#: builtin/notes.c:32 +msgid "git notes merge --abort [-v | -q]" +msgstr "git notes merge --abort [-v | -q]" + +#: builtin/notes.c:33 +msgid "git notes [--ref <notes_ref>] remove [<object>...]" +msgstr "git notes [--ref <referència_de_notes>] remove [<objecte>...]" + +#: builtin/notes.c:34 +msgid "git notes [--ref <notes_ref>] prune [-n | -v]" +msgstr "git notes [--ref <referència_de_notes>] prune [-n | -v]" + +#: builtin/notes.c:35 +msgid "git notes [--ref <notes_ref>] get-ref" +msgstr "git notes [--ref <referència_de_notes>] get-ref" + +#: builtin/notes.c:40 +msgid "git notes [list [<object>]]" +msgstr "git notes [llista [<objecte>]]" + +#: builtin/notes.c:45 +msgid "git notes add [<options>] [<object>]" +msgstr "git notes add [<opcions>] [<objecte>]" + +#: builtin/notes.c:50 +msgid "git notes copy [<options>] <from-object> <to-object>" +msgstr "git notes copy [<options>] <d'objecte> <a-objecte>" + +#: builtin/notes.c:51 +msgid "git notes copy --stdin [<from-object> <to-object>]..." +msgstr "git notes copy --stdin [<d'objecte> <a-objecte>]..." + +#: builtin/notes.c:56 +msgid "git notes append [<options>] [<object>]" +msgstr "git notes append [<opcions>] [<objecte>]" + +#: builtin/notes.c:61 +msgid "git notes edit [<object>]" +msgstr "git notes edit [<objecte>]" + +#: builtin/notes.c:66 +msgid "git notes show [<object>]" +msgstr "git notes show [<objecte>]" + +#: builtin/notes.c:71 +msgid "git notes merge [<options>] <notes_ref>" +msgstr "git notes merge [<opcions>] <referència_de_notes>" + +#: builtin/notes.c:72 +msgid "git notes merge --commit [<options>]" +msgstr "git notes merge --commit [<opcions>]" + +#: builtin/notes.c:73 +msgid "git notes merge --abort [<options>]" +msgstr "git notes merge --abort [<opcions>]" + +#: builtin/notes.c:78 +msgid "git notes remove [<object>]" +msgstr "git notes remove [<objecte>]" + +#: builtin/notes.c:83 +msgid "git notes prune [<options>]" +msgstr "git notes prune [<opcions>]" + +#: builtin/notes.c:88 +msgid "git notes get-ref" +msgstr "git notes get-ref" + +#: builtin/notes.c:137 +#, c-format +msgid "unable to start 'show' for object '%s'" +msgstr "incapaç d'iniciar 'show' per al objecte '%s'" + +#: builtin/notes.c:141 +msgid "could not read 'show' output" +msgstr "no s'ha pogut llegir la sortida de 'show'" + +#: builtin/notes.c:149 +#, c-format +msgid "failed to finish 'show' for object '%s'" +msgstr "s'ha fallat al terminar 'show' per al objecte '%s'" + +#: builtin/notes.c:167 builtin/tag.c:477 +#, c-format +msgid "could not create file '%s'" +msgstr "no s'ha pogut crear el fitxer '%s'" + +#: builtin/notes.c:186 +msgid "Please supply the note contents using either -m or -F option" +msgstr "" +"Si us plau, proveïu els continguts de la nota utilitzant o l'opció -m o " +"l'opció -F" + +#: builtin/notes.c:207 builtin/notes.c:848 +#, c-format +msgid "Removing note for object %s\n" +msgstr "Traient la nota de l'objecte %s\n" + +#: builtin/notes.c:212 +msgid "unable to write note object" +msgstr "incapaç d'escriure l'objecte de nota" + +#: builtin/notes.c:214 +#, c-format +msgid "The note contents has been left in %s" +msgstr "Els continguts de la nota s'han deixat en %s" + +#: builtin/notes.c:248 builtin/tag.c:692 +#, c-format +msgid "cannot read '%s'" +msgstr "no es pot llegir '%s'" + +#: builtin/notes.c:250 builtin/tag.c:695 +#, c-format +msgid "could not open or read '%s'" +msgstr "no s'ha pogut obrir ni llegir '%s'" + +#: builtin/notes.c:269 builtin/notes.c:320 builtin/notes.c:322 +#: builtin/notes.c:382 builtin/notes.c:436 builtin/notes.c:519 +#: builtin/notes.c:524 builtin/notes.c:599 builtin/notes.c:641 +#: builtin/notes.c:843 builtin/tag.c:708 +#, c-format +msgid "Failed to resolve '%s' as a valid ref." +msgstr "S'ha fallat al resoldre '%s' com referència và lida." + +#: builtin/notes.c:272 +#, c-format +msgid "Failed to read object '%s'." +msgstr "S'ha fallat al llegir l'objecte '%s'." + +#: builtin/notes.c:276 +#, c-format +msgid "Cannot read note data from non-blob object '%s'." +msgstr "No es pot llegir dades de node de l'objecte no de blob '%s'." + +#: builtin/notes.c:316 +#, c-format +msgid "Malformed input line: '%s'." +msgstr "LÃnia d'entrada malformada: '%s'." + +#: builtin/notes.c:331 +#, c-format +msgid "Failed to copy notes from '%s' to '%s'" +msgstr "S'ha fallat al copiar les notes de '%s' a '%s'" + +#: builtin/notes.c:375 builtin/notes.c:429 builtin/notes.c:502 +#: builtin/notes.c:514 builtin/notes.c:587 builtin/notes.c:634 +#: builtin/notes.c:908 +msgid "too many parameters" +msgstr "massa parà metres" + +#: builtin/notes.c:388 builtin/notes.c:647 +#, c-format +msgid "No note found for object %s." +msgstr "Cap nota trobada per a l'objecte %s." + +#: builtin/notes.c:410 builtin/notes.c:567 +msgid "note contents as a string" +msgstr "nota els continguta com cadena" + +#: builtin/notes.c:413 builtin/notes.c:570 +msgid "note contents in a file" +msgstr "nota els continguts en un fitxer" + +#: builtin/notes.c:415 builtin/notes.c:418 builtin/notes.c:572 +#: builtin/notes.c:575 builtin/tag.c:627 +msgid "object" +msgstr "objecte" + +#: builtin/notes.c:416 builtin/notes.c:573 +msgid "reuse and edit specified note object" +msgstr "reutilitza i edita l'objecte de nota especificat" + +#: builtin/notes.c:419 builtin/notes.c:576 +msgid "reuse specified note object" +msgstr "reutilitza l'objecte de nota especificat" + +#: builtin/notes.c:421 builtin/notes.c:489 +msgid "replace existing notes" +msgstr "reemplaça notes existents" + +#: builtin/notes.c:455 +#, c-format +msgid "" +"Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite " +"existing notes" +msgstr "" +"No es pot afegir les notes. S'ha trobat notes existents de l'objecte %s. " +"Utilitza '-f' per sobreescriure les notes existents." + +#: builtin/notes.c:460 builtin/notes.c:537 +#, c-format +msgid "Overwriting existing notes for object %s\n" +msgstr "Sobreescrivint les notes existents de l'objecte %s\n" + +#: builtin/notes.c:490 +msgid "read objects from stdin" +msgstr "llegeix els objects des de stdin" + +#: builtin/notes.c:492 +msgid "load rewriting config for <command> (implies --stdin)" +msgstr "carrega configuració de reescriptura per a <ordre> (implica --stdin)" + +#: builtin/notes.c:510 +msgid "too few parameters" +msgstr "massa pocs parà metres" + +#: builtin/notes.c:531 +#, c-format +msgid "" +"Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite " +"existing notes" +msgstr "" +"No es pot copiar les notes. S'ha trobat notes existents de l'objecte %s. " +"Utilitza '-f' per sobreescriure les notes existents." + +#: builtin/notes.c:543 +#, c-format +msgid "Missing notes on source object %s. Cannot copy." +msgstr "Manquen notes en l'objecte font %s. No es pot copiar." + +#: builtin/notes.c:592 +#, 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 "" +"S'han desaprovat les opcions -m/-F/-c/-C del subordre 'edit'.\n" +"Si us plau, utilitzeu 'git notes add -f -m/-F/-c/-C' en lloc.\n" + +#: builtin/notes.c:739 +msgid "General options" +msgstr "Opcions generals" + +#: builtin/notes.c:741 +msgid "Merge options" +msgstr "Opcions de fusió" + +#: builtin/notes.c:743 +msgid "" +"resolve notes conflicts using the given strategy (manual/ours/theirs/union/" +"cat_sort_uniq)" +msgstr "" +"resol conflictes de nota utilitzant l'estratègia donada (manual/ours/theirs/" +"union/cat_sort_uniq)" + +#: builtin/notes.c:745 +msgid "Committing unmerged notes" +msgstr "Cometent les notes sense fusionar" + +#: builtin/notes.c:747 +msgid "finalize notes merge by committing unmerged notes" +msgstr "finalitza la fusió de notes per cometre les notes sense fusionar" + +#: builtin/notes.c:749 +msgid "Aborting notes merge resolution" +msgstr "Avortant la resolució de fusió de notes" + +#: builtin/notes.c:751 +msgid "abort notes merge" +msgstr "avorta fusió de notes" + +#: builtin/notes.c:846 +#, c-format +msgid "Object %s has no note\n" +msgstr "L'objecte %s no té cap nota\n" + +#: builtin/notes.c:858 +msgid "attempt to remove non-existent note is not an error" +msgstr "L'intent de treure una nota no existent no és un error" + +#: builtin/notes.c:861 +msgid "read object names from the standard input" +msgstr "llegeix els noms d'objecte des de l'entrada està ndard" + +#: builtin/notes.c:942 +msgid "notes-ref" +msgstr "referència de notes" + +#: builtin/notes.c:943 +msgid "use notes from <notes_ref>" +msgstr "utilitza les notes de <referència de notes>" + +#: builtin/notes.c:978 builtin/remote.c:1616 +#, c-format +msgid "Unknown subcommand: %s" +msgstr "Subordre desconegut: %s" + +#: builtin/pack-objects.c:25 +msgid "git pack-objects --stdout [options...] [< ref-list | < object-list]" +msgstr "" +"git pack-objects --stdout [opcions...] [< llista-de-referències | < llista-" +"de-objectes]" + +#: builtin/pack-objects.c:26 +msgid "git pack-objects [options...] base-name [< ref-list | < object-list]" +msgstr "" +"git pack-objects [opcions...] base-name [< llista-de-referències | < llista-" +"de-objectes]" + +#: builtin/pack-objects.c:175 builtin/pack-objects.c:178 +#, c-format +msgid "deflate error (%d)" +msgstr "error de deflació (%d)" + +#: builtin/pack-objects.c:771 +msgid "Writing objects" +msgstr "Escrivint objectes" + +#: builtin/pack-objects.c:1012 +msgid "disabling bitmap writing, as some objects are not being packed" +msgstr "" +"deshabilitant l'escriptura de mapes de bits, perquè alguns objectes no " +"s'estan empaquetant" + +#: builtin/pack-objects.c:2174 +msgid "Compressing objects" +msgstr "Comprimint objectes" + +#: builtin/pack-objects.c:2526 +#, c-format +msgid "unsupported index version %s" +msgstr "versió d'Ãndex no suportada %s" + +#: builtin/pack-objects.c:2530 +#, c-format +msgid "bad index version '%s'" +msgstr "versió d'Ãndex dolenta '%s'" + +#: builtin/pack-objects.c:2553 +#, c-format +msgid "option %s does not accept negative form" +msgstr "l'opció %s no accepta el forma negatiu" + +#: builtin/pack-objects.c:2557 +#, c-format +msgid "unable to parse value '%s' for option %s" +msgstr "incapaç d'analitzar el valor '%s' per a l'opció %s" + +#: builtin/pack-objects.c:2576 +msgid "do not show progress meter" +msgstr "no mostris l'indicador de progrés" + +#: builtin/pack-objects.c:2578 +msgid "show progress meter" +msgstr "mostra indicador de progrés" + +#: builtin/pack-objects.c:2580 +msgid "show progress meter during object writing phase" +msgstr "mostra indicador de progrés durant el fase d'escriptura d'objectes" + +#: builtin/pack-objects.c:2583 +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:2584 +msgid "version[,offset]" +msgstr "versió[,desplaçament]" + +#: builtin/pack-objects.c:2585 +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:2588 +msgid "maximum size of each output pack file" +msgstr "mida mà xima de cada fitxer de paquet de sortida" + +#: builtin/pack-objects.c:2590 +msgid "ignore borrowed objects from alternate object store" +msgstr "" +"ignora els objectes prestats d'un emmagatzemament d'objectes alternatiu" + +#: builtin/pack-objects.c:2592 +msgid "ignore packed objects" +msgstr "ignora objectes empaquetats" + +#: builtin/pack-objects.c:2594 +msgid "limit pack window by objects" +msgstr "limita la finestra de paquete per objectes" + +#: builtin/pack-objects.c:2596 +msgid "limit pack window by memory in addition to object limit" +msgstr "limita la finestra de paquet per memòria a més del lÃmit d'objectes" + +#: builtin/pack-objects.c:2598 +msgid "maximum length of delta chain allowed in the resulting pack" +msgstr "longitud mà xima de la cadena de deltes permesa en el paquet resultat" + +#: builtin/pack-objects.c:2600 +msgid "reuse existing deltas" +msgstr "reutilitza deltes existents" + +#: builtin/pack-objects.c:2602 +msgid "reuse existing objects" +msgstr "reutilitza objectes existents" + +#: builtin/pack-objects.c:2604 +msgid "use OFS_DELTA objects" +msgstr "utilitza objectes OFS_DELTA" + +#: builtin/pack-objects.c:2606 +msgid "use threads when searching for best delta matches" +msgstr "utilitza fils al cercar les millores coincidències de delta" + +#: builtin/pack-objects.c:2608 +msgid "do not create an empty pack output" +msgstr "no creis una emissió de paquet buida" + +#: builtin/pack-objects.c:2610 +msgid "read revision arguments from standard input" +msgstr "llegeix els parà metres de revisió des de l'entrada està ndard" + +#: builtin/pack-objects.c:2612 +msgid "limit the objects to those that are not yet packed" +msgstr "limita els objectes als que encara no s'hagin empaquetat" + +#: builtin/pack-objects.c:2615 +msgid "include objects reachable from any reference" +msgstr "inclou els objectes abastables de qualsevulla referència" + +#: builtin/pack-objects.c:2618 +msgid "include objects referred by reflog entries" +msgstr "inclou els objectes referits per entrades del registre de referències" + +#: builtin/pack-objects.c:2621 +msgid "output pack to stdout" +msgstr "emet el paquet a stdout" + +#: builtin/pack-objects.c:2623 +msgid "include tag objects that refer to objects to be packed" +msgstr "" +"inclou els objectes d'etiqueta que refereixin als objectes que empaquetar" + +#: builtin/pack-objects.c:2625 +msgid "keep unreachable objects" +msgstr "reté objectes inabastables" + +#: builtin/pack-objects.c:2626 parse-options.h:140 +msgid "time" +msgstr "hora" + +#: builtin/pack-objects.c:2627 +msgid "unpack unreachable objects newer than <time>" +msgstr "desempaquetar els objectes inabastables més nous que <hora>" + +#: builtin/pack-objects.c:2630 +msgid "create thin packs" +msgstr "crea paquets prims" + +#: builtin/pack-objects.c:2632 +msgid "ignore packs that have companion .keep file" +msgstr "ignora els paquets que tinguin un fitxer .keep de company" + +#: builtin/pack-objects.c:2634 +msgid "pack compression level" +msgstr "nivell de compressió de paquet" + +#: builtin/pack-objects.c:2636 +msgid "do not hide commits by grafts" +msgstr "no amaguis les comissions per empelt" + +#: builtin/pack-objects.c:2638 +msgid "use a bitmap index if available to speed up counting objects" +msgstr "" +"utilitza un Ãndex de mapa de bits, si disponible, per accelerar el recompte " +"d'objectes" + +#: builtin/pack-objects.c:2640 +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:2719 +msgid "Counting objects" +msgstr "Comptant objectes" + +#: builtin/pack-refs.c:6 +msgid "git pack-refs [options]" +msgstr "git pack-refs [opcions]" + +#: builtin/pack-refs.c:14 +msgid "pack everything" +msgstr "empaqueta tot" + +#: builtin/pack-refs.c:15 +msgid "prune loose refs (default)" +msgstr "poda referències soltes (per defecte)" + +#: 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:49 +msgid "Removing duplicate objects" +msgstr "Traient objectes duplicats" + +#: builtin/prune.c:12 +msgid "git prune [-n] [-v] [--expire <time>] [--] [<head>...]" +msgstr "git prune [-n] [-v] [--expire <hora>] [--] [<cap>...]" + +#: builtin/prune.c:142 +msgid "do not remove, show only" +msgstr "no treguis, només mostra" + +#: builtin/prune.c:143 +msgid "report pruned objects" +msgstr "informa d'objectes podats" + +#: builtin/prune.c:146 +msgid "expire objects older than <time>" +msgstr "caduca els objectes majors que <hora>" + +#: builtin/push.c:14 +msgid "git push [<options>] [<repository> [<refspec>...]]" +msgstr "git push [<options>] [<repositori> [<especificació-de-referència>...]]" + +#: builtin/push.c:85 +msgid "tag shorthand without <tag>" +msgstr "abreviatura d'etiqueta sense <etiqueta>" + +#: builtin/push.c:95 +msgid "--delete only accepts plain target ref names" +msgstr "--delete només accepta noms de referència destà senzells" + +#: builtin/push.c:139 +msgid "" +"\n" +"To choose either option permanently, see push.default in 'git help config'." +msgstr "" +"\n" +"Per triar qualsevulla opció permanentment, veu push.default en 'git help " +"config'." + +#: builtin/push.c:142 +#, c-format +msgid "" +"The upstream branch of your current branch does not match\n" +"the name of your current branch. To push to the upstream branch\n" +"on the remote, use\n" +"\n" +" git push %s HEAD:%s\n" +"\n" +"To push to the branch of the same name on the remote, use\n" +"\n" +" git push %s %s\n" +"%s" +msgstr "" +"La rama font de la vostra rama actual no coincideix amb\n" +"el nom de la vostra rama actual. Per pujar-la a la rama font\n" +"en el remot, utilitzeu\n" +"\n" +" git push %s HEAD:%s\n" +"\n" +"Per pujar a la rama de la mateixa nom en el remot, utilitzeu\n" +"\n" +" git push %s %s\n" +"%s" + +#: builtin/push.c:157 +#, c-format +msgid "" +"You are not currently on a branch.\n" +"To push the history leading to the current (detached HEAD)\n" +"state now, use\n" +"\n" +" git push %s HEAD:<name-of-remote-branch>\n" +msgstr "" +"Actualment no esteu en una rama.\n" +"Per pujar la història que condueix a l'estat actual (HEAD\n" +"separat) ara, utilitzeu\n" +"\n" +" git push %s HEAD:<nom-de-rama-remota>\n" + +#: builtin/push.c:171 +#, c-format +msgid "" +"The current branch %s has no upstream branch.\n" +"To push the current branch and set the remote as upstream, use\n" +"\n" +" git push --set-upstream %s %s\n" +msgstr "" +"La rama actual %s no té rama font.\n" +"Per pujar la rama actual i estableix el remot com font, utilitzeu\n" +"\n" +" git push --set-upstream %s %s\n" + +#: builtin/push.c:179 +#, c-format +msgid "The current branch %s has multiple upstream branches, refusing to push." +msgstr "La rama actual %s té múltiples rames fonts, refusant pujar." + +#: builtin/push.c:182 +#, 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 "" +"Esteu pujant al remot '%s', que no és la font de la vostra\n" +"rama actual '%s', sense dir-me què pujar per actualitzar\n" +"quina rama remota." + +#: builtin/push.c:205 +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à estabert; el seu valor implÃcit s'ha\n" +"canviat en Git 2.0 de 'matching' a 'simple'. Per suprimir\n" +"aquest missatge i mantenir el compartament tradicional,\n" +"utilitzeu:\n" +"\n" +" git config --global push.default matching\n" +"\n" +"Per suprimir aquest missatge i adoptar el comportament nou ara, utilitzeu:\n" +"\n" +" git config --global push.default simple\n" +"\n" +"Quan push.default és 'matching', git pujarà les rames locals a les\n" +"rames remotes que ja existeixen amb el mateix nom.\n" +"\n" +"Des de Git 2.0, Git per defecte té el comportament més\n" +"conservatiu 'simple', que només puja la rama actual a la rama\n" +"corresponent que 'git pull' utilitza per actualitzar la rama\n" +"actual.\n" +"\n" +"Veu 'git help config' i cerqueu 'push.default' per més informació.\n" +"(s'ha introduït el mode 'simple' en Git 1.7.11. Utilitzeu el mode similar\n" +"'current' en lloc de 'simple' si a vegades utilitzeu versions més\n" +"antigues de Git)" + +#: builtin/push.c:272 +msgid "" +"You didn't specify any refspecs to push, and push.default is \"nothing\"." +msgstr "" +"No heu especificat cap especificació de referència que pujar, i push.default " +"és \"nothing\"." + +#: builtin/push.c:279 +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 "" +"S'han rebutjat les actualitzacions perquè el punt de la vostra rama\n" +"actual està darrerre de la seva contrapart remota. Integreu els canvis\n" +"remots (per exemple, 'git pull ...') abans de pujar de nou.\n" +"Veu la 'Nota sobre avances rà pids' en 'git push --help' per detalls." + +#: builtin/push.c:285 +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 "" +"S'han rebutjat les actualitzacions perquè un punt de rama pujada està \n" +"darrere de la seva contraparte remota. Agafeu aquesta rama i integreu\n" +"els canvis remots (per exemple, 'git pull ...') abans de pujar de nou.\n" +"Veu la 'Nota sobre avances rà pids' en 'git push --help' per detalls." + +#: builtin/push.c:291 +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 "" +"S'han rebutjat les actualitzacions perquè el remot conté treball que\n" +"no teniu localment. Això usualment es causa per altre repositori\n" +"havent pujant a la mateixa referència. Podeu voler primer integar els\n" +"canvis remots (per exemple, 'git pull ...') abans de pujar de nou.\n" +"Veu la 'Nota sobre avances rà pids' en 'git push --help' per detalls." + +#: builtin/push.c:298 +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:301 +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 "" +"No podeu actualitzar una referència remota que assenyala un\n" +"objecte no de comissió, ni actualitzar una referència remota per\n" +"fer que assenyali un objecte no de comissió, sense utilitzar\n" +"l'opció '--force'.\n" + +#: builtin/push.c:360 +#, c-format +msgid "Pushing to %s\n" +msgstr "Pujant a %s\n" + +#: builtin/push.c:364 +#, c-format +msgid "failed to push some refs to '%s'" +msgstr "s'ha fallat al pujar algunes referències a '%s'" + +#: builtin/push.c:394 +#, c-format +msgid "bad repository '%s'" +msgstr "repositori dolent '%s'" + +#: builtin/push.c:395 +msgid "" +"No configured push destination.\n" +"Either specify the URL from the command-line or configure a remote " +"repository using\n" +"\n" +" git remote add <name> <url>\n" +"\n" +"and then push using the remote name\n" +"\n" +" git push <name>\n" +msgstr "" +"Cap destà de pujada configurada.\n" +"O especifiqueu l'URL des de la lÃnia d'ordres o configura un repositori " +"remot utilitzant\n" +"\n" +" git remote add <name> <url>\n" +"\n" +"i després pujeu utilitzant el nom remot\n" +"\n" +" git push <name>\n" + +#: builtin/push.c:410 +msgid "--all and --tags are incompatible" +msgstr "--all i --tags són incompatibles" + +#: builtin/push.c:411 +msgid "--all can't be combined with refspecs" +msgstr "--all no es pot combinar amb especificacions de referència" + +#: builtin/push.c:416 +msgid "--mirror and --tags are incompatible" +msgstr "--mirror i --tags són incompatibles" + +#: builtin/push.c:417 +msgid "--mirror can't be combined with refspecs" +msgstr "--mirror no es pot combinar amb especificacions de referència" + +#: builtin/push.c:422 +msgid "--all and --mirror are incompatible" +msgstr "--all i --mirror són incompatibles" + +#: builtin/push.c:482 +msgid "repository" +msgstr "repositori" + +#: builtin/push.c:483 +msgid "push all refs" +msgstr "envia totes les referències" + +#: builtin/push.c:484 +msgid "mirror all refs" +msgstr "reflecteix totes les referències" + +#: builtin/push.c:486 +msgid "delete refs" +msgstr "suprimeix les referències" + +#: builtin/push.c:487 +msgid "push tags (can't be used with --all or --mirror)" +msgstr "envia les etiquetes (no es pot utilitzar amb --all o --mirror)" + +#: builtin/push.c:490 +msgid "force updates" +msgstr "força actualitzacions" + +#: builtin/push.c:492 +msgid "refname>:<expect" +msgstr "nom-de-referència>:<esperat" + +#: builtin/push.c:493 +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:495 +msgid "check" +msgstr "comprova" + +#: builtin/push.c:496 +msgid "control recursive pushing of submodules" +msgstr "controla la pujada recursiva de submòduls" + +#: builtin/push.c:498 +msgid "use thin pack" +msgstr "utilitza el paquet prim" + +#: builtin/push.c:499 builtin/push.c:500 +msgid "receive pack program" +msgstr "programa que rep els paquets" + +#: builtin/push.c:501 +msgid "set upstream for git pull/status" +msgstr "estableix la font per a git pull/status" + +#: builtin/push.c:504 +msgid "prune locally removed refs" +msgstr "poda les referències localment tretes" + +#: builtin/push.c:506 +msgid "bypass pre-push hook" +msgstr "evita el ganxo de prepujada" + +#: builtin/push.c:507 +msgid "push missing but relevant tags" +msgstr "puja les etiquetes mancants però relevants" + +#: builtin/push.c:517 +msgid "--delete is incompatible with --all, --mirror and --tags" +msgstr "--delete és incompatible amb --all, --mirror i --tags" + +#: builtin/push.c:519 +msgid "--delete doesn't make sense without any refs" +msgstr "--delete no té sentit sense referències" + +#: builtin/read-tree.c:36 +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=<prefix>] " +"[-u [--exclude-per-directory=<ignoral-de-git>] | -i]] [--no-sparse-checkout] " +"[--index-output=<fitxer>] (--empty | <arbre1> [<arbre2> [<arbre3>]])" + +#: builtin/read-tree.c:109 +msgid "write resulting index to <file>" +msgstr "escriu l'Ãndex resultant al <fitxer>" + +#: builtin/read-tree.c:112 +msgid "only empty the index" +msgstr "només buida l'Ãndex" + +#: builtin/read-tree.c:114 +msgid "Merging" +msgstr "Fusionant" + +#: builtin/read-tree.c:116 +msgid "perform a merge in addition to a read" +msgstr "realitza una fusió a més d'una lectura" + +#: builtin/read-tree.c:118 +msgid "3-way merge if no file level merging required" +msgstr "fusió de 3 vies si no cal fusió a la nivell de fitxers" + +#: builtin/read-tree.c:120 +msgid "3-way merge in presence of adds and removes" +msgstr "fusió de 3 vies en presència d'afegiments i tretes" + +#: builtin/read-tree.c:122 +msgid "same as -m, but discard unmerged entries" +msgstr "el mateix que -m, però descarta les entrades no fusionades" + +#: builtin/read-tree.c:123 +msgid "<subdirectory>/" +msgstr "<subdirectori>/" + +#: builtin/read-tree.c:124 +msgid "read the tree into the index under <subdirectory>/" +msgstr "llegiu l'arbre a l'Ãndex baix <subdirectori>/" + +#: builtin/read-tree.c:127 +msgid "update working tree with merge result" +msgstr "actualitza l'arbre de treball amb el resultat de fusió" + +#: builtin/read-tree.c:129 +msgid "gitignore" +msgstr "ignoral de git" + +#: builtin/read-tree.c:130 +msgid "allow explicitly ignored files to be overwritten" +msgstr "permet que els fitxers explÃcitament ignorats es sobreescriguin" + +#: builtin/read-tree.c:133 +msgid "don't check the working tree after merging" +msgstr "no comprovis l'arbre de treball després de fusionar" + +#: builtin/read-tree.c:134 +msgid "don't update the index or the work tree" +msgstr "no actualitzis l'Ãndex ni l'arbre de treball" + +#: builtin/read-tree.c:136 +msgid "skip applying sparse checkout filter" +msgstr "salta l'aplicació del filtre d'agafament escà s" + +#: builtin/read-tree.c:138 +msgid "debug unpack-trees" +msgstr "depura unpack-trees" + +#: builtin/reflog.c:499 +#, c-format +msgid "%s' for '%s' is not a valid timestamp" +msgstr "%s' per '%s' no és una marca de temps và lida" + +#: builtin/reflog.c:615 builtin/reflog.c:620 +#, c-format +msgid "'%s' is not a valid timestamp" +msgstr "'%s' no és una marca de temps và lida" + +#: 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 <rama>] [-m <mestre>] [-f] [--tags|--no-tags] [--" +"mirror=<fetch|push>] <nom> <url>" + +#: builtin/remote.c:14 builtin/remote.c:33 +msgid "git remote rename <old> <new>" +msgstr "git remote rename <antic> <nou>" + +#: builtin/remote.c:15 builtin/remote.c:38 +msgid "git remote remove <name>" +msgstr "git remote remove <nom>" + +#: builtin/remote.c:16 +msgid "git remote set-head <name> (-a | --auto | -d | --delete |<branch>)" +msgstr "git remote set-head <nom> (-a | --auto | -d | --delete |<rama>)" + +#: builtin/remote.c:17 +msgid "git remote [-v | --verbose] show [-n] <name>" +msgstr "git remote [-v | --verbose] show [-n] <nom>" + +#: builtin/remote.c:18 +msgid "git remote prune [-n | --dry-run] <name>" +msgstr "git remote prune [-n | --dry-run] <nom>" + +#: builtin/remote.c:19 +msgid "" +"git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]" +msgstr "" +"git remote [-v | --verbose] update [-p | --prune] [(<grup> | <remot>)...]" + +#: builtin/remote.c:20 +msgid "git remote set-branches [--add] <name> <branch>..." +msgstr "git remote set-branches [--add] <nom> <rama>..." + +#: builtin/remote.c:21 builtin/remote.c:69 +msgid "git remote set-url [--push] <name> <newurl> [<oldurl>]" +msgstr "git remote set-url [--push] <nom> <url-nou> [<url-antic>]" + +#: builtin/remote.c:22 builtin/remote.c:70 +msgid "git remote set-url --add <name> <newurl>" +msgstr "git remote set-url --add <nom> <url nou>" + +#: builtin/remote.c:23 builtin/remote.c:71 +msgid "git remote set-url --delete <name> <url>" +msgstr "git remote set-url --delete <nom> <url>" + +#: builtin/remote.c:28 +msgid "git remote add [<options>] <name> <url>" +msgstr "git remote add [<opcions>] <nom> <url>" + +#: builtin/remote.c:43 +msgid "git remote set-head <name> (-a | --auto | -d | --delete | <branch>)" +msgstr "git remote set-head <nom> (-a | --auto | -d | --delete | <rama>)" + +#: builtin/remote.c:48 +msgid "git remote set-branches <name> <branch>..." +msgstr "git remote set-branches <nom> <rama>..." + +#: builtin/remote.c:49 +msgid "git remote set-branches --add <name> <branch>..." +msgstr "git remote set-branches --add <nom> <rama>..." + +#: builtin/remote.c:54 +msgid "git remote show [<options>] <name>" +msgstr "git remote show [<opcions>] <nom>" + +#: builtin/remote.c:59 +msgid "git remote prune [<options>] <name>" +msgstr "git remote prune [<opcions>] <nom>" + +#: builtin/remote.c:64 +msgid "git remote update [<options>] [<group> | <remote>]..." +msgstr "git remote update [<opcions>] [<grup> | <remot>]..." + +#: builtin/remote.c:88 +#, c-format +msgid "Updating %s" +msgstr "Actualitzant %s" + +#: builtin/remote.c:120 +msgid "" +"--mirror is dangerous and deprecated; please\n" +"\t use --mirror=fetch or --mirror=push instead" +msgstr "" +"--mirror és peligrós i desaprovat; si us\n" +"\t plau, utilitzeu --mirror=fetch o\t --mirror=push en lloc" + +#: builtin/remote.c:137 +#, c-format +msgid "unknown mirror argument: %s" +msgstr "parà metre de reflexió desconegut: %s" + +#: builtin/remote.c:153 +msgid "fetch the remote branches" +msgstr "obtén les rames remotes" + +#: builtin/remote.c:155 +msgid "import all tags and associated objects when fetching" +msgstr "importa totes les etiquetes i tos els objectes al obtenir" + +#: builtin/remote.c:158 +msgid "or do not fetch any tag at all (--no-tags)" +msgstr "o no obtén cap etiqueta (--no-tags)" + +#: builtin/remote.c:160 +msgid "branch(es) to track" +msgstr "rames que seguir" + +#: builtin/remote.c:161 +msgid "master branch" +msgstr "rama mestre" + +#: builtin/remote.c:162 +msgid "push|fetch" +msgstr "push|fetch" + +#: builtin/remote.c:163 +msgid "set up remote as a mirror to push to or fetch from" +msgstr "estableix remot com mirall a que pujar o de que obtenir" + +#: builtin/remote.c:175 +msgid "specifying a master branch makes no sense with --mirror" +msgstr "especificar una rama mestra no té sentit amb --mirror" + +#: builtin/remote.c:177 +msgid "specifying branches to track makes sense only with fetch mirrors" +msgstr "especificar rames que seguir té sentit només amb miralls d'obteniment" + +#: builtin/remote.c:185 builtin/remote.c:640 +#, c-format +msgid "remote %s already exists." +msgstr "el remot %s ja existeix." + +#: builtin/remote.c:189 builtin/remote.c:644 +#, c-format +msgid "'%s' is not a valid remote name" +msgstr "'%s' no és un nom de remot và lid" + +#: builtin/remote.c:233 +#, c-format +msgid "Could not setup master '%s'" +msgstr "No s'ha pogut configurar el mestre '%s'" + +#: builtin/remote.c:288 +#, c-format +msgid "more than one %s" +msgstr "més d'un %s" + +#: builtin/remote.c:333 +#, c-format +msgid "Could not get fetch map for refspec %s" +msgstr "" +"No s'ha pogut obtenir el mapa d'obteniment de l'especificació de referència " +"%s" + +#: builtin/remote.c:434 builtin/remote.c:442 +msgid "(matching)" +msgstr "(coincident)" + +#: builtin/remote.c:446 +msgid "(delete)" +msgstr "(suprimir)" + +#: builtin/remote.c:589 builtin/remote.c:595 builtin/remote.c:601 +#, c-format +msgid "Could not append '%s' to '%s'" +msgstr "No s'ha pogut annexar '%s' a '%s'" + +#: builtin/remote.c:633 builtin/remote.c:794 builtin/remote.c:894 +#, c-format +msgid "No such remote: %s" +msgstr "Cap remot aixÃ: %s" + +#: builtin/remote.c:650 +#, 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:656 builtin/remote.c:846 +#, c-format +msgid "Could not remove config section '%s'" +msgstr "No s'ha pogut treure la secció de configuració '%s'" + +#: builtin/remote.c:671 +#, c-format +msgid "" +"Not updating non-default fetch refspec\n" +"\t%s\n" +"\tPlease update the configuration manually if necessary." +msgstr "" +"No actualitzant l'especificació de referències d'obteniment no per defecte\n" +"\t%s\n" +"\tSi us plau, actualitzeu la configuració manualment si és necessari." + +#: builtin/remote.c:677 +#, c-format +msgid "Could not append '%s'" +msgstr "No s'ha pogut annexar '%s'" + +#: builtin/remote.c:688 +#, c-format +msgid "Could not set '%s'" +msgstr "No s'ha pogut establir '%s'" + +#: builtin/remote.c:710 +#, c-format +msgid "deleting '%s' failed" +msgstr "la supressió de '%s' ha fallat" + +#: builtin/remote.c:744 +#, c-format +msgid "creating '%s' failed" +msgstr "la creació de '%s' ha fallat" + +#: builtin/remote.c:765 +#, c-format +msgid "Could not remove branch %s" +msgstr "No s'ha pogut treure la rama %s" + +#: builtin/remote.c:832 +msgid "" +"Note: A branch outside the refs/remotes/ hierarchy was not removed;\n" +"to delete it, use:" +msgid_plural "" +"Note: Some branches outside the refs/remotes/ hierarchy were not removed;\n" +"to delete them, use:" +msgstr[0] "" +"Nota: Una rama fora de la jerarquia refs/remotes/ no s'ha tret;\n" +"per suprimir-la, utilitzeu:" +msgstr[1] "" +"Nota: Unes rames fora de la jerarquia refs/remotes/ no s'han tret;\n" +"per suprimir-les, utilitzeu:" + +#: builtin/remote.c:947 +#, c-format +msgid " new (next fetch will store in remotes/%s)" +msgstr " nou (el pròxim obteniment emmagatzemarà en remotes/%s)" + +#: builtin/remote.c:950 +msgid " tracked" +msgstr " seguit" + +#: builtin/remote.c:952 +msgid " stale (use 'git remote prune' to remove)" +msgstr " ranci (utilitzeu 'git remote prune' per treure)" + +#: builtin/remote.c:954 +msgid " ???" +msgstr " ???" + +#: builtin/remote.c:995 +#, c-format +msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch" +msgstr "branch.%s.merge invà lid; no es pot rebasar en > 1 rama" + +#: builtin/remote.c:1002 +#, c-format +msgid "rebases onto remote %s" +msgstr "es rebasa en el remot %s" + +#: builtin/remote.c:1005 +#, c-format +msgid " merges with remote %s" +msgstr "es fusiona amb el remot %s" + +#: builtin/remote.c:1006 +msgid " and with remote" +msgstr " i amb el remot" + +#: builtin/remote.c:1008 +#, c-format +msgid "merges with remote %s" +msgstr "es fusiona amb el remot %s" + +#: builtin/remote.c:1009 +msgid " and with remote" +msgstr " i amb el remot" + +#: builtin/remote.c:1055 +msgid "create" +msgstr "crea" + +#: builtin/remote.c:1058 +msgid "delete" +msgstr "suprimeix" + +#: builtin/remote.c:1062 +msgid "up to date" +msgstr "actualitzat" + +#: builtin/remote.c:1065 +msgid "fast-forwardable" +msgstr "avanç rà pid possible" + +#: builtin/remote.c:1068 +msgid "local out of date" +msgstr "local no actualitzat" + +#: builtin/remote.c:1075 +#, c-format +msgid " %-*s forces to %-*s (%s)" +msgstr " %-*s força a %-*s (%s)" + +#: builtin/remote.c:1078 +#, c-format +msgid " %-*s pushes to %-*s (%s)" +msgstr " %-*s puja a %-*s (%s)" + +#: builtin/remote.c:1082 +#, c-format +msgid " %-*s forces to %s" +msgstr " %-*s força a %s" + +#: builtin/remote.c:1085 +#, c-format +msgid " %-*s pushes to %s" +msgstr " %-*s puja a %s" + +#: builtin/remote.c:1153 +msgid "do not query remotes" +msgstr "no consultis els remots" + +#: builtin/remote.c:1180 +#, c-format +msgid "* remote %s" +msgstr "* remot %s" + +#: builtin/remote.c:1181 +#, c-format +msgid " Fetch URL: %s" +msgstr " URL d'obteniment: %s" + +#: builtin/remote.c:1182 builtin/remote.c:1329 +msgid "(no URL)" +msgstr "(sense URL)" + +#: builtin/remote.c:1191 builtin/remote.c:1193 +#, c-format +msgid " Push URL: %s" +msgstr " URL de pujada: %s" + +#: builtin/remote.c:1195 builtin/remote.c:1197 builtin/remote.c:1199 +#, c-format +msgid " HEAD branch: %s" +msgstr " Rama de HEAD: %s" + +#: builtin/remote.c:1201 +#, c-format +msgid "" +" HEAD branch (remote HEAD is ambiguous, may be one of the following):\n" +msgstr " Rama de HEAD (el HEAD remot és ambigu, pot ser un dels següents):\n" + +#: builtin/remote.c:1213 +#, c-format +msgid " Remote branch:%s" +msgid_plural " Remote branches:%s" +msgstr[0] " Rama remota:%s" +msgstr[1] " Rames remotes:%s" + +#: builtin/remote.c:1216 builtin/remote.c:1243 +msgid " (status not queried)" +msgstr " (estat no consultat)" + +#: builtin/remote.c:1225 +msgid " Local branch configured for 'git pull':" +msgid_plural " Local branches configured for 'git pull':" +msgstr[0] " Rama local configurada per a 'git pull':" +msgstr[1] " Rames locals configurades per a 'git pull':" + +#: builtin/remote.c:1233 +msgid " Local refs will be mirrored by 'git push'" +msgstr " 'git push' reflectira les referències locals" + +#: builtin/remote.c:1240 +#, 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:1261 +msgid "set refs/remotes/<name>/HEAD according to remote" +msgstr "estableix refs/remotes/<name>/HEAD segons el remot" + +#: builtin/remote.c:1263 +msgid "delete refs/remotes/<name>/HEAD" +msgstr "suprimeix refs/remotes/<name>/HEAD" + +#: builtin/remote.c:1278 +msgid "Cannot determine remote HEAD" +msgstr "No es pot determinar el HEAD remot" + +#: builtin/remote.c:1280 +msgid "Multiple remote HEAD branches. Please choose one explicitly with:" +msgstr "" +"Múltiples rames de HEAD remotes. Si us plau, trieu una explÃcitament amb:" + +#: builtin/remote.c:1290 +#, c-format +msgid "Could not delete %s" +msgstr "No s'ha pogut suprimir %s" + +#: builtin/remote.c:1298 +#, c-format +msgid "Not a valid ref: %s" +msgstr "No és una referència và lida: %s" + +#: builtin/remote.c:1300 +#, c-format +msgid "Could not setup %s" +msgstr "No s'ha pogut configurar %s" + +#: builtin/remote.c:1318 +#, c-format +msgid " %s will become dangling!" +msgstr " %s es tornarà en penjant!" + +#: builtin/remote.c:1319 +#, c-format +msgid " %s has become dangling!" +msgstr " %s s'ha tornat en penjant!" + +#: builtin/remote.c:1325 +#, c-format +msgid "Pruning %s" +msgstr "Podant %s" + +#: builtin/remote.c:1326 +#, c-format +msgid "URL: %s" +msgstr "URL: %s" + +#: builtin/remote.c:1349 +#, c-format +msgid " * [would prune] %s" +msgstr " * [podaria] %s" + +#: builtin/remote.c:1352 +#, c-format +msgid " * [pruned] %s" +msgstr " * [podat] %s" + +#: builtin/remote.c:1397 +msgid "prune remotes after fetching" +msgstr "poda els remots després d'obtenir-los" + +#: builtin/remote.c:1463 builtin/remote.c:1537 +#, c-format +msgid "No such remote '%s'" +msgstr "Cap remot aixà '%s'" + +#: builtin/remote.c:1483 +msgid "add branch" +msgstr "afegeix rama" + +#: builtin/remote.c:1490 +msgid "no remote specified" +msgstr "cap remot especificat" + +#: builtin/remote.c:1512 +msgid "manipulate push URLs" +msgstr "manipula els URL de pujada" + +#: builtin/remote.c:1514 +msgid "add URL" +msgstr "afegeix URL" + +#: builtin/remote.c:1516 +msgid "delete URLs" +msgstr "suprimeix URLs" + +#: builtin/remote.c:1523 +msgid "--add --delete doesn't make sense" +msgstr "--add --delete no té sentit" + +#: builtin/remote.c:1563 +#, c-format +msgid "Invalid old URL pattern: %s" +msgstr "Patró d'URL antic invà lid: %s" + +#: builtin/remote.c:1571 +#, c-format +msgid "No such URL found: %s" +msgstr "Cap URL aixà trobat: %s" + +#: builtin/remote.c:1573 +msgid "Will not delete all non-push URLs" +msgstr "Suprimirà tots els URL no de pujada" + +#: builtin/remote.c:1587 +msgid "be verbose; must be placed before a subcommand" +msgstr "sigues verbós; s'ha de col·locar abans d'un subordre" + +#: builtin/repack.c:17 +msgid "git repack [options]" +msgstr "git repack [opcions]" + +#: builtin/repack.c:160 +msgid "pack everything in a single pack" +msgstr "empaqueta tot en un paquet solter" + +#: builtin/repack.c:162 +msgid "same as -a, and turn unreachable objects loose" +msgstr "el mateix que -a, i solta els objectes inabastables" + +#: builtin/repack.c:165 +msgid "remove redundant packs, and run git-prune-packed" +msgstr "tragueu els paquets redundants, i executeu git-prune-packed" + +#: builtin/repack.c:167 +msgid "pass --no-reuse-delta to git-pack-objects" +msgstr "passa --no-resuse-delta a git-pack-objects" + +#: builtin/repack.c:169 +msgid "pass --no-reuse-object to git-pack-objects" +msgstr "passa --no-reuse-object a git-pack-objects" + +#: builtin/repack.c:171 +msgid "do not run git-update-server-info" +msgstr "no executis git-update-server-info" + +#: builtin/repack.c:174 +msgid "pass --local to git-pack-objects" +msgstr "passa --local a git-pack-objects" + +#: builtin/repack.c:176 +msgid "write bitmap index" +msgstr "escriu Ãndex de mapa de bits" + +#: builtin/repack.c:177 +msgid "approxidate" +msgstr "aproximat" + +#: builtin/repack.c:178 +msgid "with -A, do not loosen objects older than this" +msgstr "amb -A, no soltis objectes majors que aquest" + +#: builtin/repack.c:180 +msgid "size of the window used for delta compression" +msgstr "mida de la ventana utilitzada per compressió de deltes" + +#: builtin/repack.c:181 builtin/repack.c:185 +msgid "bytes" +msgstr "octets" + +#: builtin/repack.c:182 +msgid "same as the above, but limit memory size instead of entries count" +msgstr "" +"ex mateix que l'anterior, però limita la mida de memòria en lloc del " +"recompte d'entrades" + +#: builtin/repack.c:184 +msgid "limits the maximum delta depth" +msgstr "limita la profunditat mà xima dels deltes" + +#: builtin/repack.c:186 +msgid "maximum size of each packfile" +msgstr "mida mà xima de cada fitxer de paquet" + +#: builtin/repack.c:188 +msgid "repack objects in packs marked with .keep" +msgstr "reempaqueta els objectes en paquets marcats amb .keep" + +#: builtin/repack.c:374 +#, c-format +msgid "removing '%s' failed" +msgstr "la treta de '%s' ha fallat" + +#: builtin/replace.c:19 +msgid "git replace [-f] <object> <replacement>" +msgstr "git replace [-f] <objecte> <reemplaçament>" + +#: builtin/replace.c:20 +msgid "git replace [-f] --edit <object>" +msgstr "git replace [-f] --edit <objecte>" + +#: builtin/replace.c:21 +msgid "git replace [-f] --graft <commit> [<parent>...]" +msgstr "git replace [-f] --graft <comissió> [<pare>...]" + +#: builtin/replace.c:22 +msgid "git replace -d <object>..." +msgstr "git replace -d <objecte>..." + +#: builtin/replace.c:23 +msgid "git replace [--format=<format>] [-l [<pattern>]]" +msgstr "git replace [--format=<format>] [-l [<patró>]]" + +#: builtin/replace.c:322 builtin/replace.c:360 builtin/replace.c:388 +#, c-format +msgid "Not a valid object name: '%s'" +msgstr "No és un nom d'objecte và lid: '%s'" + +#: builtin/replace.c:352 +#, c-format +msgid "bad mergetag in commit '%s'" +msgstr "etiqueta de fusió dolenta en la comissió '%s'" + +#: builtin/replace.c:354 +#, c-format +msgid "malformed mergetag in commit '%s'" +msgstr "etiqueta de fusió malformada en la comissió '%s'" + +#: builtin/replace.c:365 +#, c-format +msgid "" +"original commit '%s' contains mergetag '%s' that is discarded; use --edit " +"instead of --graft" +msgstr "" +"la comissió original '%s' conté l'etiqueta de fusió '%s' que es descarta; " +"utilitzeu --edit en lloc de --graft" + +#: builtin/replace.c:398 +#, c-format +msgid "the original commit '%s' has a gpg signature." +msgstr "la comissió original '%s' té una firma gpg." + +#: builtin/replace.c:399 +msgid "the signature will be removed in the replacement commit!" +msgstr "la firma es traurà en la comissió de reemplaçament!" + +#: builtin/replace.c:405 +#, c-format +msgid "could not write replacement commit for: '%s'" +msgstr "no s'ha pogut escriure la comissió de reemplaçament per a: '%s'" + +#: builtin/replace.c:429 +msgid "list replace refs" +msgstr "llista les referències reemplaçades" + +#: builtin/replace.c:430 +msgid "delete replace refs" +msgstr "suprimeix les referències reemplaçades" + +#: builtin/replace.c:431 +msgid "edit existing object" +msgstr "edita un objecte existent" + +#: builtin/replace.c:432 +msgid "change a commit's parents" +msgstr "canvia els pares d'una comissió" + +#: builtin/replace.c:433 +msgid "replace the ref if it exists" +msgstr "reemplaça la referència si existeix" + +#: builtin/replace.c:434 +msgid "do not pretty-print contents for --edit" +msgstr "no imprimeixis bellament els continguts per a --edit" + +#: builtin/replace.c:435 +msgid "use this format" +msgstr "utilitza aquest format" + +#: builtin/rerere.c:12 +msgid "git rerere [clear | forget path... | status | remaining | diff | gc]" +msgstr "git rerere [clear | forget path... | status | remaining | diff | gc]" + +#: builtin/rerere.c:57 +msgid "register clean resolutions in index" +msgstr "registre les resolucions netes en l'Ãndex" + +#: builtin/reset.c:25 +msgid "" +"git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]" +msgstr "" +"git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<comissió>]" + +#: builtin/reset.c:26 +msgid "git reset [-q] <tree-ish> [--] <paths>..." +msgstr "git reset [-q] <arbre> [--] <rutes>..." + +#: builtin/reset.c:27 +msgid "git reset --patch [<tree-ish>] [--] [<paths>...]" +msgstr "git reset --patch [<arbre>] [--] [<rutes>...]" + +#: builtin/reset.c:33 +msgid "mixed" +msgstr "mixt" + +#: builtin/reset.c:33 +msgid "soft" +msgstr "suau" + +#: builtin/reset.c:33 +msgid "hard" +msgstr "dur" + +#: builtin/reset.c:33 +msgid "merge" +msgstr "fusió" + +#: builtin/reset.c:33 +msgid "keep" +msgstr "reteniment" + +#: builtin/reset.c:73 +msgid "You do not have a valid HEAD." +msgstr "No teniu un HEAD và lid." + +#: builtin/reset.c:75 +msgid "Failed to find tree of HEAD." +msgstr "S'ha fallat al trobar l'arbre de HEAD." + +#: builtin/reset.c:81 +#, c-format +msgid "Failed to find tree of %s." +msgstr "S'ha fallat al trobar l'arbre de %s." + +#: builtin/reset.c:99 +#, c-format +msgid "HEAD is now at %s" +msgstr "HEAD ara està a %s" + +#: builtin/reset.c:182 +#, c-format +msgid "Cannot do a %s reset in the middle of a merge." +msgstr "No es pot fer un restabliment de %s en el medi d'una fusió." + +#: builtin/reset.c:275 +msgid "be quiet, only report errors" +msgstr "calla, només informa d'errors" + +#: builtin/reset.c:277 +msgid "reset HEAD and index" +msgstr "restableix HEAD i l'Ãndex" + +#: builtin/reset.c:278 +msgid "reset only HEAD" +msgstr "restablex només HEAD" + +#: builtin/reset.c:280 builtin/reset.c:282 +msgid "reset HEAD, index and working tree" +msgstr "restableix HEAD, l'Ãndex i l'arbre de treball" + +#: builtin/reset.c:284 +msgid "reset HEAD but keep local changes" +msgstr "restableix HEAD però reté els canvis locals" + +#: builtin/reset.c:287 +msgid "record only the fact that removed paths will be added later" +msgstr "registre només el fet de que les rutes tretes s'afegiran després" + +#: builtin/reset.c:304 +#, c-format +msgid "Failed to resolve '%s' as a valid revision." +msgstr "S'ha fallat al resoldre '%s' com revisió và lida." + +#: builtin/reset.c:307 builtin/reset.c:315 +#, c-format +msgid "Could not parse object '%s'." +msgstr "No s'ha pogut analitzar l'objecte '%s'." + +#: builtin/reset.c:312 +#, c-format +msgid "Failed to resolve '%s' as a valid tree." +msgstr "S'ha fallat al resoldre '%s' com arbre và lid." + +#: builtin/reset.c:321 +msgid "--patch is incompatible with --{hard,mixed,soft}" +msgstr "--patch és incompatible amb --{hard,mixed,soft}" + +#: builtin/reset.c:330 +msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead." +msgstr "" +"--mixed amb rutes es desaprovat; utilitzeu 'git reset -- <paths>' en lloc." + +#: builtin/reset.c:332 +#, c-format +msgid "Cannot do %s reset with paths." +msgstr "No es pot fer reinici de %s amb rutes." + +#: builtin/reset.c:342 +#, c-format +msgid "%s reset is not allowed in a bare repository" +msgstr "reset de %s no és permet en un repositori nu" + +#: builtin/reset.c:346 +msgid "-N can only be used with --mixed" +msgstr "-N només es pot utilitzar amb --mixed" + +#: builtin/reset.c:363 +msgid "Unstaged changes after reset:" +msgstr "Canvis no allistats després de restabliment:" + +#: builtin/reset.c:369 +#, c-format +msgid "Could not reset index file to revision '%s'." +msgstr "No s'ha pogut restablir el fitxer d'Ãndex a la revisió '%s'." + +#: builtin/reset.c:373 +msgid "Could not write new index file." +msgstr "No s'ha pogut escriure el fitxer d'Ãndex nou." + +#: builtin/rev-parse.c:360 +msgid "git rev-parse --parseopt [options] -- [<args>...]" +msgstr "git rev-parse --parseopt [opcions] -- [<parà metres>...]" + +#: builtin/rev-parse.c:365 +msgid "keep the `--` passed as an arg" +msgstr "reté el `--` passat com parà metre" + +#: builtin/rev-parse.c:367 +msgid "stop parsing after the first non-option argument" +msgstr "deixa d'analitzar després del primer parà metre no d'opció" + +#: builtin/rev-parse.c:370 +msgid "output in stuck long form" +msgstr "emet en forma llarga enganxada" + +#: builtin/rev-parse.c:498 +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 [opcions] -- [<parà metres>...]\n" +" or: git rev-parse --sq-quote [<parà metre>...]\n" +" or: git rev-parse [opcions] [<parà metre>...]\n" +"\n" +"Executeu \"git rev-parse --parseopt -h\" per més informació sobre l'ús " +"inicial." + +#: builtin/revert.c:22 +msgid "git revert [options] <commit-ish>..." +msgstr "git revert [opcions] <comissió>..." + +#: builtin/revert.c:23 +msgid "git revert <subcommand>" +msgstr "git revert <subordre>" + +#: builtin/revert.c:28 +msgid "git cherry-pick [options] <commit-ish>..." +msgstr "git cherry-pick [opcions] <comissió>..." + +#: builtin/revert.c:29 +msgid "git cherry-pick <subcommand>" +msgstr "git cherry-pick <subordre>" + +#: builtin/revert.c:71 +#, c-format +msgid "%s: %s cannot be used with %s" +msgstr "%s: %s no es pot utilitzar amb %s" + +#: builtin/revert.c:80 +msgid "end revert or cherry-pick sequence" +msgstr "termina la seqüència de reversió o recull de cireres" + +#: builtin/revert.c:81 +msgid "resume revert or cherry-pick sequence" +msgstr "reprèn la seqüència de reversió o recull de cireres" + +#: builtin/revert.c:82 +msgid "cancel revert or cherry-pick sequence" +msgstr "cancel·la la seqüència de reversió o recull de cireres" + +#: builtin/revert.c:83 +msgid "don't automatically commit" +msgstr "no cometis automà ticament" + +#: builtin/revert.c:84 +msgid "edit the commit message" +msgstr "edita el missatge de comissió" + +#: builtin/revert.c:87 +msgid "parent number" +msgstr "número de pare" + +#: builtin/revert.c:89 +msgid "merge strategy" +msgstr "estratègia de fusió" + +#: builtin/revert.c:90 +msgid "option" +msgstr "opció" + +#: builtin/revert.c:91 +msgid "option for merge strategy" +msgstr "opció d'estratègia de fusió" + +#: builtin/revert.c:104 +msgid "append commit name" +msgstr "nom de la comissió que annexar" + +#: builtin/revert.c:105 +msgid "allow fast-forward" +msgstr "permet l'avanç rà pid" + +#: builtin/revert.c:106 +msgid "preserve initially empty commits" +msgstr "preserva les comissions inicialment buides" + +#: builtin/revert.c:107 +msgid "allow commits with empty messages" +msgstr "permet les comissions amb missatges buits" + +#: builtin/revert.c:108 +msgid "keep redundant, empty commits" +msgstr "retén les comissions redundants i buides" + +#: builtin/revert.c:112 +msgid "program error" +msgstr "error de programa" + +#: builtin/revert.c:197 +msgid "revert failed" +msgstr "la reversió ha fallat" + +#: builtin/revert.c:212 +msgid "cherry-pick failed" +msgstr "el recull de cireres ha fallat" + +#: builtin/rm.c:17 +msgid "git rm [options] [--] <file>..." +msgstr "git rm [opcions] [--] <fitxer>..." + +#: builtin/rm.c:65 +msgid "" +"the following submodule (or one of its nested submodules)\n" +"uses a .git directory:" +msgid_plural "" +"the following submodules (or one of its nested submodules)\n" +"use a .git directory:" +msgstr[0] "" +"el submòdul següent (o un dels seus submòduls niats)\n" +"utilitza un directori .git:" +msgstr[1] "" +"els submòduls següents (o un dels seus submòduls niats)\n" +"utilitza un directori .git:" + +#: builtin/rm.c:71 +msgid "" +"\n" +"(use 'rm -rf' if you really want to remove it including all of its history)" +msgstr "" +"\n" +"(utilitzeu 'rm -rf' si realment voleu treure'l, inclòs tota la seva història)" + +#: builtin/rm.c:231 +msgid "" +"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] "" +"el fitxer següent té contingut allistat diferent d'ambdós el\n" +"fitxer i el HEAD:" +msgstr[1] "" +"els fitxers següents tenen contingut allistat diferent d'ambdós\n" +"el fitxer i el HEAD:" + +#: builtin/rm.c:236 +msgid "" +"\n" +"(use -f to force removal)" +msgstr "" +"\n" +"(utilitzeu -f per forçar la treta)" + +#: builtin/rm.c:240 +msgid "the following file has changes staged in the index:" +msgid_plural "the following files have changes staged in the index:" +msgstr[0] "el fitxer següent té canvis allistats en l'Ãndex:" +msgstr[1] "els fitxers següents tenen canvis allistats en l'Ãndex:" + +#: builtin/rm.c:244 builtin/rm.c:255 +msgid "" +"\n" +"(use --cached to keep the file, or -f to force removal)" +msgstr "" +"\n" +"(utilitzeu --cached per desar el fitxer, o -f per forçar la treta)" + +#: builtin/rm.c:252 +msgid "the following file has local modifications:" +msgid_plural "the following files have local modifications:" +msgstr[0] "el fitxer següent té modificacions locals:" +msgstr[1] "els fitxers següents tenen modificacions locals:" + +#: builtin/rm.c:270 +msgid "do not list removed files" +msgstr "no llistis els fitxers trets" + +#: builtin/rm.c:271 +msgid "only remove from the index" +msgstr "només treu de l'Ãndex" + +#: builtin/rm.c:272 +msgid "override the up-to-date check" +msgstr "passa per dalt la comprovació d'actualització" + +#: builtin/rm.c:273 +msgid "allow recursive removal" +msgstr "permet treta recursiva" + +#: builtin/rm.c:275 +msgid "exit with a zero status even if nothing matched" +msgstr "surt amb estat zero encara que res hagi coincidit" + +#: builtin/rm.c:336 +#, c-format +msgid "not removing '%s' recursively without -r" +msgstr "no trent '%s' recursivament sense -r" + +#: builtin/rm.c:375 +#, c-format +msgid "git rm: unable to remove %s" +msgstr "git rm: incapaç de treure %s" + +#: builtin/shortlog.c:13 +msgid "git shortlog [<options>] [<revision range>] [[--] [<path>...]]" +msgstr "git shortlog [<opcions>] [<rang de revisions>] [[--] [<ruta>...]]" + +#: builtin/shortlog.c:131 +#, c-format +msgid "Missing author: %s" +msgstr "Manca l'autor: %s" + +#: builtin/shortlog.c:230 +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 +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 +msgid "Show the email address of each author" +msgstr "Mostra l'adreça de correu electrònic de cada autor" + +#: builtin/shortlog.c:235 +msgid "w[,i1[,i2]]" +msgstr "w[,i1[,i2]]" + +#: builtin/shortlog.c:236 +msgid "Linewrap output" +msgstr "Ajusta les lÃnies de la sortida" + +#: builtin/show-branch.c:9 +msgid "" +"git show-branch [-a|--all] [-r|--remotes] [--topo-order | --date-order] [--" +"current] [--color[=<when>] | --no-color] [--sparse] [--more=<n> | --list | --" +"independent | --merge-base] [--no-name | --sha1-name] [--topics] [(<rev> | " +"<glob>)...]" +msgstr "" +"git show-branch [-a|--all] [-r|--remotes] [--topo-order | --date-order] [--" +"current] [--color[=<when>] | --no-color] [--sparse] [--more=<n> | --list | --" +"independent | --merge-base] [--no-name | --sha1-name] [--topics] [(<revisió> " +"| <glob>)...]" + +#: builtin/show-branch.c:10 +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:649 +msgid "show remote-tracking and local branches" +msgstr "mostra les rames amb seguiment remot i les locals" + +#: builtin/show-branch.c:651 +msgid "show remote-tracking branches" +msgstr "mostra les rames amb seguiment remot" + +#: builtin/show-branch.c:653 +msgid "color '*!+-' corresponding to the branch" +msgstr "colora '*!+-' corresponent a la rama" + +#: builtin/show-branch.c:655 +msgid "show <n> more commits after the common ancestor" +msgstr "mostra <n> comissions després de l'avantpassat comú" + +#: builtin/show-branch.c:657 +msgid "synonym to more=-1" +msgstr "sinònim de more=-1" + +#: builtin/show-branch.c:658 +msgid "suppress naming strings" +msgstr "omet l'anomenament de cadenes" + +#: builtin/show-branch.c:660 +msgid "include the current branch" +msgstr "inclou la rama actual" + +#: builtin/show-branch.c:662 +msgid "name commits with their object names" +msgstr "anomena les comissions amb els seus noms d'objecte" + +#: builtin/show-branch.c:664 +msgid "show possible merge bases" +msgstr "mostra els bases de fusió possibles" + +#: builtin/show-branch.c:666 +msgid "show refs unreachable from any other ref" +msgstr "mostra les referències inabastables de qualsevulla altra referència" + +#: builtin/show-branch.c:668 +msgid "show commits in topological order" +msgstr "mostra les comissions en ordre topològic" + +#: builtin/show-branch.c:671 +msgid "show only commits not on the first branch" +msgstr "mostra només les comissions no en la primera rama" + +#: builtin/show-branch.c:673 +msgid "show merges reachable from only one tip" +msgstr "mostra les fusions abastables de només una punta" + +#: builtin/show-branch.c:675 +msgid "topologically sort, maintaining date order where possible" +msgstr "ordena topològicament, mantenint l'ordre de dates on possible" + +#: builtin/show-branch.c:678 +msgid "<n>[,<base>]" +msgstr "<n>[,<base>]" + +#: builtin/show-branch.c:679 +msgid "show <n> most recent ref-log entries starting at base" +msgstr "mostra les <n> entrades més recents començant al 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] [--] [patró*] " + +#: builtin/show-ref.c:11 +msgid "git show-ref --exclude-existing[=pattern] < ref-list" +msgstr "git show-ref --exclude-existing[=pattern] < llista-de-referències" + +#: builtin/show-ref.c:168 +msgid "only show tags (can be combined with heads)" +msgstr "mostra només les etiquetes (pot combinar-se amb heads)" + +#: builtin/show-ref.c:169 +msgid "only show heads (can be combined with tags)" +msgstr "mostra només els caps (pot combinar-se amb etiquetes)" + +#: builtin/show-ref.c:170 +msgid "stricter reference checking, requires exact ref path" +msgstr "" +"comprovació de referència més estricta, requereix la ruta de referència " +"exacta" + +#: builtin/show-ref.c:173 builtin/show-ref.c:175 +msgid "show the HEAD reference, even if it would be filtered out" +msgstr "mostra la referència HEAD, encara que es filtraria" + +#: builtin/show-ref.c:177 +msgid "dereference tags into object IDs" +msgstr "dereferencia les etiquetes a IDs d'objecte" + +#: builtin/show-ref.c:179 +msgid "only show SHA1 hash using <n> digits" +msgstr "mostra el hash SHA1 només utilitzant <n> xifres" + +#: builtin/show-ref.c:183 +msgid "do not print results to stdout (useful with --verify)" +msgstr "no imprimeixis els resultats a stdout (útil amb --verify)" + +#: builtin/show-ref.c:185 +msgid "show refs from stdin that aren't in local repository" +msgstr "mostra les referència de stdin que no estan en el repositori local" + +#: builtin/symbolic-ref.c:7 +msgid "git symbolic-ref [options] name [ref]" +msgstr "git symbolic-ref [opcions] nom [referència]" + +#: builtin/symbolic-ref.c:8 +msgid "git symbolic-ref -d [-q] name" +msgstr "git symbolic-ref -d [-q] nom" + +#: builtin/symbolic-ref.c:40 +msgid "suppress error message for non-symbolic (detached) refs" +msgstr "omet el missatge d'error de referències no simbòliques (separades)" + +#: builtin/symbolic-ref.c:41 +msgid "delete symbolic ref" +msgstr "suprimeix la referència simbòlica" + +#: builtin/symbolic-ref.c:42 +msgid "shorten ref output" +msgstr "escurça la sortida de referències" + +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:349 +msgid "reason" +msgstr "raó" + +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:349 +msgid "reason of the update" +msgstr "raó de l'actualització" + +#: builtin/tag.c:22 +msgid "" +"git tag [-a|-s|-u <key-id>] [-f] [-m <msg>|-F <file>] <tagname> [<head>]" +msgstr "" +"git tag [-a|-s|-u <key-id>] [-f] [-m <missatge>|-F <fitxer>] <nom-" +"d'etiqueta> [<cap>]" + +#: builtin/tag.c:23 +msgid "git tag -d <tagname>..." +msgstr "git tag -d <nom-d'etiqueta>..." + +#: builtin/tag.c:24 +msgid "" +"git tag -l [-n[<num>]] [--contains <commit>] [--points-at <object>] \n" +"\t\t[<pattern>...]" +msgstr "" +"git tag -l [-n[<nombre>]] [--contains <comissió>] \n" +"\t\t[--points-at <objecte>] [<patró>...]" + +#: builtin/tag.c:26 +msgid "git tag -v <tagname>..." +msgstr "git tag -v <nom-d'etiqueta>..." + +#: builtin/tag.c:69 +#, c-format +msgid "malformed object at '%s'" +msgstr "objecte malformat a '%s'" + +#: builtin/tag.c:301 +#, c-format +msgid "tag name too long: %.*s..." +msgstr "nom d'etiqueta massa llarg: %.*s..." + +#: builtin/tag.c:306 +#, c-format +msgid "tag '%s' not found." +msgstr "etiqueta '%s' no trobada" + +#: builtin/tag.c:321 +#, c-format +msgid "Deleted tag '%s' (was %s)\n" +msgstr "L'etiqueta '%s' s'ha suprimit (ha estat %s)\n" + +#: builtin/tag.c:333 +#, c-format +msgid "could not verify the tag '%s'" +msgstr "no s'ha pogut verificar l'etiqueta '%s'" + +#: builtin/tag.c:343 +#, c-format +msgid "" +"\n" +"Write a message for tag:\n" +" %s\n" +"Lines starting with '%c' will be ignored.\n" +msgstr "" +"\n" +"Escrui el missatge de l'etiqueta:\n" +" %s\n" +"Les lÃnies que comencen amb '%c' s'ignoraran.\n" + +#: builtin/tag.c:347 +#, c-format +msgid "" +"\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" +"Escriu el missatge de l'etiqueta:\n" +" %s\n" +"Les lÃnies començant amb '%c' es retindran; podeu treure'ls per vós mateix " +"si voleu.\n" + +#: builtin/tag.c:371 +#, c-format +msgid "unsupported sort specification '%s'" +msgstr "especificació d'ordenació '%s' no suportat" + +#: builtin/tag.c:373 +#, c-format +msgid "unsupported sort specification '%s' in variable '%s'" +msgstr "especificació d'ordenació '%s' no suportat en el variable '%s'" + +#: builtin/tag.c:428 +msgid "unable to sign the tag" +msgstr "incapaç de firmar l'etiqueta" + +#: builtin/tag.c:430 +msgid "unable to write tag file" +msgstr "incapaç d'escriure el fitxer d'etiqueta" + +#: builtin/tag.c:455 +msgid "bad object type." +msgstr "tipus d'objecte dolent." + +#: builtin/tag.c:468 +msgid "tag header too big." +msgstr "capçalera d'etiqueta massa gran." + +#: builtin/tag.c:504 +msgid "no tag message?" +msgstr "cap missatge d'etiqueta?" + +#: builtin/tag.c:510 +#, c-format +msgid "The tag message has been left in %s\n" +msgstr "S'ha deixat el missatge de l'etiqueta en %s\n" + +#: builtin/tag.c:559 +msgid "switch 'points-at' requires an object" +msgstr "l'opció 'points-at' requereix un objecte" + +#: builtin/tag.c:561 +#, c-format +msgid "malformed object name '%s'" +msgstr "nom d'objecte malformat '%s'" + +#: builtin/tag.c:588 +msgid "list tag names" +msgstr "llista els noms d'etiqueta" + +#: builtin/tag.c:590 +msgid "print <n> lines of each tag message" +msgstr "imprimeix <n> lÃnies de cada missatge d'etiqueta" + +#: builtin/tag.c:592 +msgid "delete tags" +msgstr "suprimeix etiquetes" + +#: builtin/tag.c:593 +msgid "verify tags" +msgstr "verifica etiquetes" + +#: builtin/tag.c:595 +msgid "Tag creation options" +msgstr "Opcions de creació d'etiquetes" + +#: builtin/tag.c:597 +msgid "annotated tag, needs a message" +msgstr "etiqueta anotada, necessita un missatge" + +#: builtin/tag.c:599 +msgid "tag message" +msgstr "missatge d'etiqueta" + +#: builtin/tag.c:601 +msgid "annotated and GPG-signed tag" +msgstr "etiqueta anotada i firmada per GPG" + +#: builtin/tag.c:605 +msgid "use another key to sign the tag" +msgstr "utilitza altra clau per firmar l'etiqueta" + +#: builtin/tag.c:606 +msgid "replace the tag if exists" +msgstr "reempaça l'etiqueta si existeix" + +#: builtin/tag.c:607 +msgid "show tag list in columns" +msgstr "mostra la llista d'etiquetes en columnes" + +#: builtin/tag.c:609 +msgid "sort tags" +msgstr "ordena les etiquetes" + +#: builtin/tag.c:613 +msgid "Tag listing options" +msgstr "Opcions de llistament d'etiquetes" + +#: builtin/tag.c:616 builtin/tag.c:622 +msgid "print only tags that contain the commit" +msgstr "imprimeix només les etiquetes que continguin la comissió" + +#: builtin/tag.c:628 +msgid "print only tags of the object" +msgstr "imprimeix només les etiquets de l'objecte" + +#: builtin/tag.c:654 +msgid "--column and -n are incompatible" +msgstr "--column i -n són incompatibles" + +#: builtin/tag.c:666 +msgid "--sort and -n are incompatible" +msgstr "--sort i -n són incompatibles" + +#: builtin/tag.c:673 +msgid "-n option is only allowed with -l." +msgstr "es permet l'opció -n només amb -l." + +#: builtin/tag.c:675 +msgid "--contains option is only allowed with -l." +msgstr "es permet l'opció --contains només amb -l." + +#: builtin/tag.c:677 +msgid "--points-at option is only allowed with -l." +msgstr "es permet --points-at option només amb -l." + +#: builtin/tag.c:685 +msgid "only one -F or -m option is allowed." +msgstr "només una opció -F o -m es permet." + +#: builtin/tag.c:705 +msgid "too many params" +msgstr "massa parà metres" + +#: builtin/tag.c:711 +#, c-format +msgid "'%s' is not a valid tag name." +msgstr "'%s' no és un nom d'etiqueta và lid." + +#: builtin/tag.c:716 +#, c-format +msgid "tag '%s' already exists" +msgstr "l'etiqueta '%s' ja existeix" + +#: builtin/tag.c:734 +#, c-format +msgid "%s: cannot lock the ref" +msgstr "%s: no es pot bloquejar la referència" + +#: builtin/tag.c:736 +#, c-format +msgid "%s: cannot update the ref" +msgstr "%s: no es pot actualitzar la referència" + +#: builtin/tag.c:738 +#, c-format +msgid "Updated tag '%s' (was %s)\n" +msgstr "Etiqueta '%s' actualitzada (ha estat %s)\n" + +#: builtin/unpack-objects.c:483 +msgid "Unpacking objects" +msgstr "Desempaquetant objectes" + +#: builtin/update-index.c:402 +msgid "git update-index [options] [--] [<file>...]" +msgstr "git update-index [opcions] [--] [<fitxer>...]" + +#: builtin/update-index.c:755 +msgid "continue refresh even when index needs update" +msgstr "" +"continua l'actualització encara que l'Ãndex necessiti una actualització" + +#: builtin/update-index.c:758 +msgid "refresh: ignore submodules" +msgstr "actualitza: ignora els submòduls" + +#: builtin/update-index.c:761 +msgid "do not ignore new files" +msgstr "no ignoris fitxers nous" + +#: builtin/update-index.c:763 +msgid "let files replace directories and vice-versa" +msgstr "deixa que els fitxer reemplacin els directoris i viceversa" + +#: builtin/update-index.c:765 +msgid "notice files missing from worktree" +msgstr "nota els fitxers mancants de l'arbre de treball" + +#: builtin/update-index.c:767 +msgid "refresh even if index contains unmerged entries" +msgstr "actualitza encara que l'Ãndex contingui entrades no fusionades" + +#: builtin/update-index.c:770 +msgid "refresh stat information" +msgstr "actualitza la informació d'estadÃstiques" + +#: builtin/update-index.c:774 +msgid "like --refresh, but ignore assume-unchanged setting" +msgstr "com --refresh, però ignora l'ajust assume-unchanged" + +#: builtin/update-index.c:778 +msgid "<mode>,<object>,<path>" +msgstr "<mode>,<objecte>,<ruta>" + +#: builtin/update-index.c:779 +msgid "add the specified entry to the index" +msgstr "afegeix l'entrada especificada a l'Ãndex" + +#: builtin/update-index.c:783 +msgid "(+/-)x" +msgstr "(+/-)x" + +#: builtin/update-index.c:784 +msgid "override the executable bit of the listed files" +msgstr "passa per dalt el bit executable dels fitxers llistats" + +#: builtin/update-index.c:788 +msgid "mark files as \"not changing\"" +msgstr "marca els fitxers com \"not changing\"" + +#: builtin/update-index.c:791 +msgid "clear assumed-unchanged bit" +msgstr "neteja el bit assumed-unchanged" + +#: builtin/update-index.c:794 +msgid "mark files as \"index-only\"" +msgstr "marca els fitxers com \"index-only\"" + +#: builtin/update-index.c:797 +msgid "clear skip-worktree bit" +msgstr "neteja el bit skip-worktree" + +#: builtin/update-index.c:800 +msgid "add to index only; do not add content to object database" +msgstr "" +"només afegeix a l'Ãndex; no afegeixis el contingut al base de dades " +"d'objectes" + +#: builtin/update-index.c:802 +msgid "remove named paths even if present in worktree" +msgstr "" +"treu les rutes anomenades encara que estiguin presents en l'arbre de treball" + +#: builtin/update-index.c:804 +msgid "with --stdin: input lines are terminated by null bytes" +msgstr "amb --stdin: les lÃnies d'entrada es terminen per octets nuls" + +#: builtin/update-index.c:806 +msgid "read list of paths to be updated from standard input" +msgstr "llegeix la llista de rutes que actualitzar des de l'entrada està ndard" + +#: builtin/update-index.c:810 +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:814 +msgid "repopulate stages #2 and #3 for the listed paths" +msgstr "reemplena les etapes #2 i #3 per a les rutes llistades" + +#: builtin/update-index.c:818 +msgid "only update entries that differ from HEAD" +msgstr "només actualitza les entrades que difereixin de HEAD" + +#: builtin/update-index.c:822 +msgid "ignore files missing from worktree" +msgstr "ignora els fitxers que manquin a l'arbre de treball" + +#: builtin/update-index.c:825 +msgid "report actions to standard output" +msgstr "informa de les accions en la sortida està ndard" + +#: builtin/update-index.c:827 +msgid "(for porcelains) forget saved unresolved conflicts" +msgstr "(per porcellanes) oblida't dels conflictes no resolts ni desats" + +#: builtin/update-index.c:831 +msgid "write index in this format" +msgstr "escriu l'Ãndex en aquest format" + +#: builtin/update-index.c:833 +msgid "enable or disable split index" +msgstr "habilita o deshabilita l'Ãndex dividit" + +#: builtin/update-ref.c:9 +msgid "git update-ref [options] -d <refname> [<oldval>]" +msgstr "git update-ref [opcions] -d <nom-de-referència> [<valor-antic>]" + +#: builtin/update-ref.c:10 +msgid "git update-ref [options] <refname> <newval> [<oldval>]" +msgstr "" +"git update-ref [opcions] <nom-de-referència> <valor-nou> [<valor-antic>]" + +#: builtin/update-ref.c:11 +msgid "git update-ref [options] --stdin [-z]" +msgstr "git update-ref [opcions] --stdin [-z]" + +#: builtin/update-ref.c:350 +msgid "delete the reference" +msgstr "suprimeix la referència" + +#: builtin/update-ref.c:352 +msgid "update <refname> not the one it points to" +msgstr "actualitza <nom de referència>, no la a que assenyali" + +#: builtin/update-ref.c:353 +msgid "stdin has NUL-terminated arguments" +msgstr "stdin té parà metres terminats per NUL" + +#: builtin/update-ref.c:354 +msgid "read updates from stdin" +msgstr "llegeix actualitzacions des de stdin" + +#: 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 "actualitza els fitxers d'informació des de zero" + +#: builtin/verify-commit.c:17 +msgid "git verify-commit [-v|--verbose] <commit>..." +msgstr "git verify-commit [-v|--verbose] <comissió>..." + +#: builtin/verify-commit.c:75 +msgid "print commit contents" +msgstr "imprimeix els continguts de la comissió" + +#: builtin/verify-pack.c:55 +msgid "git verify-pack [-v|--verbose] [-s|--stat-only] <pack>..." +msgstr "git verify-pack [-v|--verbose] [-s|--stat-only] <paquet>..." + +#: builtin/verify-pack.c:65 +msgid "verbose" +msgstr "verbós" + +#: builtin/verify-pack.c:67 +msgid "show statistics only" +msgstr "mostra només estadÃstiques" + +#: builtin/verify-tag.c:17 +msgid "git verify-tag [-v|--verbose] <tag>..." +msgstr "git verify-tag [-v|--verbose] <etiqueta>..." + +#: builtin/verify-tag.c:73 +msgid "print tag contents" +msgstr "imprimeix els continguits de l'etiqueta" + +#: builtin/write-tree.c:13 +msgid "git write-tree [--missing-ok] [--prefix=<prefix>/]" +msgstr "git write-tree [--missing-ok] [--prefix=<prefix>/]" + +#: builtin/write-tree.c:26 +msgid "<prefix>/" +msgstr "<prefix>/" + +#: builtin/write-tree.c:27 +msgid "write tree object for a subdirectory <prefix>" +msgstr "escriu l'objecte d'arbre per a un subdirectori <prefix>" + +#: builtin/write-tree.c:30 +msgid "only useful for debugging" +msgstr "només útil per la depuració" + +#: git.c:17 +msgid "" +"'git help -a' and 'git help -g' lists 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' i 'git help -g' llisten subordres disponibles i\n" +"algunes guies de concepte. Veu 'git help <command>' o\n" +"'git help <concept>' per llegir sobre un subordre o concepte\n" +"especÃfic." + +#: parse-options.h:143 +msgid "expiry-date" +msgstr "data-de-caducitat" + +#: parse-options.h:158 +msgid "no-op (backward compatibility)" +msgstr "operació nul·la (compatibilitat amb versions anteriors)" + +#: parse-options.h:232 +msgid "be more verbose" +msgstr "siguis més verbós" + +#: parse-options.h:234 +msgid "be more quiet" +msgstr "siguis més callat" + +#: parse-options.h:240 +msgid "use <n> digits to display SHA-1s" +msgstr "utilitza <n> xifres per presentar els SHA-1" + +#: common-cmds.h:8 +msgid "Add file contents to the index" +msgstr "Afegeix els continguts de fitxers a l'Ãndex" + +#: common-cmds.h:9 +msgid "Find by binary search the change that introduced a bug" +msgstr "Troba per cerca binà ria el canvi que ha introduït un defecte" + +#: common-cmds.h:10 +msgid "List, create, or delete branches" +msgstr "Llista, crea o suprimeix rames" + +#: common-cmds.h:11 +msgid "Checkout a branch or paths to the working tree" +msgstr "Agafa una rama o unes rutes a l'arbre de treball" + +#: common-cmds.h:12 +msgid "Clone a repository into a new directory" +msgstr "Clona un repositori a un directori nou" + +#: common-cmds.h:13 +msgid "Record changes to the repository" +msgstr "Registre els canvis al repositori" + +#: common-cmds.h:14 +msgid "Show changes between commits, commit and working tree, etc" +msgstr "" +"Mostra els canvis entre comissions, la comissió i l'arbre de treball, etc" + +#: common-cmds.h:15 +msgid "Download objects and refs from another repository" +msgstr "Baixa objectes i referències d'altre repositori" + +#: common-cmds.h:16 +msgid "Print lines matching a pattern" +msgstr "Imprimeix les lÃnies coincidents amb un patró" + +#: common-cmds.h:17 +msgid "Create an empty Git repository or reinitialize an existing one" +msgstr "Crea un repositori de Git buit o reinicialitza un existent" + +#: common-cmds.h:18 +msgid "Show commit logs" +msgstr "Mostra els registres de comissió" + +#: common-cmds.h:19 +msgid "Join two or more development histories together" +msgstr "Uneix dos o més històries de desenvolupament" + +#: common-cmds.h:20 +msgid "Move or rename a file, a directory, or a symlink" +msgstr "Mou o canvia de nom un fitxer, directori, o enllaç simbòlic" + +#: common-cmds.h:21 +msgid "Fetch from and integrate with another repository or a local branch" +msgstr "Obté de i integra con altre repositori o una rama local" + +#: common-cmds.h:22 +msgid "Update remote refs along with associated objects" +msgstr "Actualitza les referències remotes juntes amb els objectes associats" + +#: common-cmds.h:23 +msgid "Forward-port local commits to the updated upstream head" +msgstr "Avança les comissions locals al cap font actualitzat" + +#: common-cmds.h:24 +msgid "Reset current HEAD to the specified state" +msgstr "Restableix el HEAD actual a l'estat especificat" + +#: common-cmds.h:25 +msgid "Remove files from the working tree and from the index" +msgstr "Treu fitxers de l'arbre de treball i de l'Ãndex" + +#: common-cmds.h:26 +msgid "Show various types of objects" +msgstr "Mostra diversos tipus d'objectes" + +#: common-cmds.h:27 +msgid "Show the working tree status" +msgstr "Mostra l'estat de l'arbre de treball" + +#: common-cmds.h:28 +msgid "Create, list, delete or verify a tag object signed with GPG" +msgstr "" +"Crea, llista, suprimeix o verifica un objecte d'etiqueta firmat amb GPG" + +#: git-am.sh:52 +msgid "You need to set your committer info first" +msgstr "Cal establir la vostra informació de comitent primer" + +#: git-am.sh:97 +msgid "" +"You seem to have moved HEAD since the last 'am' failure.\n" +"Not rewinding to ORIG_HEAD" +msgstr "" +"Sembla que heu mot HEAD després de l'última fallada de 'am'.\n" +"No rebobinant a ORIG_HEAD" + +#: git-am.sh:107 +#, sh-format +msgid "" +"When you have resolved this problem, run \"$cmdline --continue\".\n" +"If you prefer to skip this patch, run \"$cmdline --skip\" instead.\n" +"To restore the original branch and stop patching, run \"$cmdline --abort\"." +msgstr "" +"Quan heu resolt aquest problema, executeu \"$cmdline --continue\".\n" +"Si preferiu saltar aquest pedaç, executeu \"$cmdline --skip\" en lloc.\n" +"Per restaurar la rama original i deixar d'apedaçar, executeu \"$cmdline --" +"abort\"." + +#: git-am.sh:123 +msgid "Cannot fall back to three-way merge." +msgstr "No es pot retrocedir a una fusió de 3 vies." + +#: git-am.sh:139 +msgid "Repository lacks necessary blobs to fall back on 3-way merge." +msgstr "" +"Al repositori li manquen els blobs necessaris per a retrocedir a una fusió " +"de 3 vies." + +#: git-am.sh:141 +msgid "Using index info to reconstruct a base tree..." +msgstr "Utilitzant la informació d'Ãndex per reconstruir un arbre base..." + +#: git-am.sh:156 +msgid "" +"Did you hand edit your patch?\n" +"It does not apply to blobs recorded in its index." +msgstr "" +"Heu editat el vostre pedaç a mà ?\n" +"No s'aplica als blobs recordats en el seu Ãndex." + +#: git-am.sh:165 +msgid "Falling back to patching base and 3-way merge..." +msgstr "Retrocedint a apedaçar el base i fusionar de 3 vies..." + +#: git-am.sh:181 +msgid "Failed to merge in the changes." +msgstr "S'ha fallat al fusionar els canvis." + +#: git-am.sh:276 +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" + +#: git-am.sh:363 +#, sh-format +msgid "Patch format $patch_format is not supported." +msgstr "El format de pedaç $patch_format no és suportat." + +#: git-am.sh:365 +msgid "Patch format detection failed." +msgstr "La detecció de format de pedaç ha fallat." + +#: git-am.sh:392 +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 "" +"Fa molt que l'opció -b/--binary no ha fet res, i\n" +"es traurà . Si us plau, no l'utilitzis més." + +#: git-am.sh:486 +#, sh-format +msgid "previous rebase directory $dotest still exists but mbox given." +msgstr "" +"un directori de rebase anterior $dotest encara existeix però s'ha donat una " +"bústia." + +#: git-am.sh:491 +msgid "Please make up your mind. --skip or --abort?" +msgstr "Si us plau, preneu una decisió. --skip o --abort?" + +#: git-am.sh:527 +#, sh-format +msgid "" +"Stray $dotest directory found.\n" +"Use \"git am --abort\" to remove it." +msgstr "" +"Directori $dotest extraviat trobat.\n" +"Utilitzeu \"git am --abort\" per treure'l." + +#: git-am.sh:535 +msgid "Resolve operation not in progress, we are not resuming." +msgstr "Operació de resolució no en curs, no reprenem." + +#: git-am.sh:601 +#, sh-format +msgid "Dirty index: cannot apply patches (dirty: $files)" +msgstr "Ãndex brut: no es pot aplicar pedaços (bruts: $files)" + +#: git-am.sh:705 +#, sh-format +msgid "" +"Patch is empty. Was it split wrong?\n" +"If you would prefer to skip this patch, instead run \"$cmdline --skip\".\n" +"To restore the original branch and stop patching run \"$cmdline --abort\"." +msgstr "" +"El pedaç és buit. S'ha dividit mal?\n" +"Si preferirÃeu saltar aquest pedaç, en lloc executeu \"$cmdline --skip\".\n" +"Per restaurar la rama original i deixar d'empaquetar, executeu \"$cmdline --" +"abort\"." + +#: git-am.sh:732 +msgid "Patch does not have a valid e-mail address." +msgstr "El pedaç no té adreça de correu electrònic và lida." + +#: git-am.sh:779 +msgid "cannot be interactive without stdin connected to a terminal." +msgstr "" +"no es pot ser interactiu sense que stdin sigui connectat a un terminal." + +#: git-am.sh:783 +msgid "Commit Body is:" +msgstr "El cos de la comissió és:" + +#. TRANSLATORS: Make sure to include [y], [n], [e], [v] and [a] +#. in your translation. The program will only accept English +#. input at this point. +#: git-am.sh:790 +msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all " +msgstr "Aplica? sà [y]/[n]o/[e]dita/[v]isualitza pedaç/[a]ccepta tots" + +#: git-am.sh:826 +#, sh-format +msgid "Applying: $FIRSTLINE" +msgstr "Aplicant: $FIRSTLINE" + +#: git-am.sh:847 +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 "" +"Cap canvi - heu oblidat utilitzar 'git add'?\n" +"Si no hi ha res que allistar, probablement alguna altra cosa\n" +"ja ha introduït els mateixos canvis; potser voleu saltar aquest pedaç." + +#: git-am.sh:855 +msgid "" +"You still have unmerged paths in your index\n" +"did you forget to use 'git add'?" +msgstr "" +"Encara teniu rutes sense fusionar en el vostre Ãndex\n" +"heu oblidat utilitzar 'git add'?" + +#: git-am.sh:871 +msgid "No changes -- Patch already applied." +msgstr "Sense canvis -- Pedaç ja aplicat." + +#: git-am.sh:881 +#, sh-format +msgid "Patch failed at $msgnum $FIRSTLINE" +msgstr "El pedaç ha fallat a $msgnum $FIRSTLINE" + +#: git-am.sh:884 +#, sh-format +msgid "" +"The copy of the patch that failed is found in:\n" +" $dotest/patch" +msgstr "" +"La còpia del pedaç que ha fallat es troba en:\n" +" $dotest/patch" + +#: git-am.sh:902 +msgid "applying to an empty history" +msgstr "aplicant a una història buida" + +#: git-bisect.sh:48 +msgid "You need to start by \"git bisect start\"" +msgstr "Cal començar per \"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 +msgid "Do you want me to do it for you [Y/n]? " +msgstr "Voleu que jo el faci per vós [Y/n]? " + +#: git-bisect.sh:95 +#, sh-format +msgid "unrecognised option: '$arg'" +msgstr "opció no reconeguda: '$arg'" + +#: git-bisect.sh:99 +#, sh-format +msgid "'$arg' does not appear to be a valid revision" +msgstr "'$arg' no sembla una revisió và lida" + +#: git-bisect.sh:117 +msgid "Bad HEAD - I need a HEAD" +msgstr "HEAD dolent - Cal un HEAD" + +#: git-bisect.sh:130 +#, sh-format +msgid "" +"Checking out '$start_head' failed. Try 'git bisect reset <validbranch>'." +msgstr "" +"L'agafament de '$start_head' ha fallat. Proveu 'git bisect reset " +"<validbranch>'." + +#: git-bisect.sh:140 +msgid "won't bisect on cg-seek'ed tree" +msgstr "no es bisecarà en un arbre en que s'ha fet cg-seek" + +#: git-bisect.sh:144 +msgid "Bad HEAD - strange symbolic ref" +msgstr "HEAD dolent - referència simbòlica estranya" + +#: git-bisect.sh:189 +#, sh-format +msgid "Bad bisect_write argument: $state" +msgstr "Parà metre bisect_write dolent: $state" + +#: git-bisect.sh:218 +#, sh-format +msgid "Bad rev input: $arg" +msgstr "Introducció de revisió dolenta: $arg" + +#: git-bisect.sh:232 +msgid "Please call 'bisect_state' with at least one argument." +msgstr "Si us plau, invoqueu 'bisect_state' amb almenys un parà metre." + +#: git-bisect.sh:244 +#, sh-format +msgid "Bad rev input: $rev" +msgstr "Introducció de revisió dolenta: $rev" + +#: git-bisect.sh:250 +msgid "'git bisect bad' can take only one argument." +msgstr "'git bisect bad' pot acceptar només un parà metre." + +#: git-bisect.sh:273 +msgid "Warning: bisecting only with a bad commit." +msgstr "AvÃs: bisecant amb només comissió dolenta." + +#. 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 +msgid "Are you sure [Y/n]? " +msgstr "Esteu segur [Y/n]? " + +#: git-bisect.sh:289 +msgid "" +"You need to give me at least one good and one bad revisions.\n" +"(You can use \"git bisect bad\" and \"git bisect good\" for that.)" +msgstr "" +"Cal donar-me almenys una revisió bona i una dolenta.\n" +"(Podeu utilitzar \"git bisect bad\" i \"git bisect good\" per això.)" + +#: git-bisect.sh:292 +msgid "" +"You need to start by \"git bisect start\".\n" +"You then need to give me at least one good and one bad revisions.\n" +"(You can use \"git bisect bad\" and \"git bisect good\" for that.)" +msgstr "" +"Cal començar amb \"git bisect start\".\n" +"Després cal donar-me almenys una revisió bona i una dolenta.\n" +"(Podeu utilitzar \"git bisect bad\" i \"git bisect good\" per això.)" + +#: git-bisect.sh:363 git-bisect.sh:490 +msgid "We are not bisecting." +msgstr "No estem bisecant." + +#: git-bisect.sh:370 +#, sh-format +msgid "'$invalid' is not a valid commit" +msgstr "'$invalid' no és una comissió và lida" + +#: git-bisect.sh:379 +#, sh-format +msgid "" +"Could not check out original HEAD '$branch'.\n" +"Try 'git bisect reset <commit>'." +msgstr "" +"No s'ha pogut agafar el HEAD original '$branch'.\n" +"Proveu 'git bisect reset <comissió>'." + +#: git-bisect.sh:406 +msgid "No logfile given" +msgstr "Cap fitxer de registre donat" + +#: git-bisect.sh:407 +#, sh-format +msgid "cannot read $file for replaying" +msgstr "no es pot llegir $file per reproduir" + +#: git-bisect.sh:424 +msgid "?? what are you talking about?" +msgstr "?? de què parleu?" + +#: git-bisect.sh:436 +#, sh-format +msgid "running $command" +msgstr "executant $command" + +#: git-bisect.sh:443 +#, sh-format +msgid "" +"bisect run failed:\n" +"exit code $res from '$command' is < 0 or >= 128" +msgstr "" +"el pas de bisecció ha fallat:\n" +"el codi de sortida $res de '$command' és < 0 o >= 128" + +#: git-bisect.sh:469 +msgid "bisect run cannot continue any more" +msgstr "el pas de bisecció no pot continuar més" + +#: git-bisect.sh:475 +#, sh-format +msgid "" +"bisect run failed:\n" +"'bisect_state $state' exited with error code $res" +msgstr "" +"el pas de bisecció ha fallat:\n" +"'bisect_state $state' ha surt amb el codi d'error $res" + +#: git-bisect.sh:482 +msgid "bisect run success" +msgstr "pas de bisecció reeixit" + +#: git-pull.sh:21 +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'." +msgstr "" +"Baixar no és possible perquè teniu fitxers sense fusionar.\n" +"Si us plau, arregleu-los en l'arbre de treball, i després utilitzeu\n" +"'git add/rm <file>' segons sigui apropiat per a marcar resolució, o\n" +"utilitzeu 'git commit -a'." + +#: git-pull.sh:25 +msgid "Pull is not possible because you have unmerged files." +msgstr "Baixar no és possible perquè teniu fitxers sense fusionar." + +#: git-pull.sh:245 +msgid "updating an unborn branch with changes added to the index" +msgstr "actualitzant una rama no nascuda amb canvis afegits a l'Ãndex" + +#: git-pull.sh:269 +#, sh-format +msgid "" +"Warning: fetch updated the current branch head.\n" +"Warning: fast-forwarding your working tree from\n" +"Warning: commit $orig_head." +msgstr "" +"AvÃs: l'obteniment ha actualitzat el cap de la\n" +"AvÃs: rama actual. avançant rà pidament el\n" +"AvÃs: vostre arbre de treball des de la\n" +"AvÃs: comissió $orig_head." + +#: git-pull.sh:294 +msgid "Cannot merge multiple branches into empty head" +msgstr "No es pot fusionar múltiples rama a un cap buit" + +#: git-pull.sh:298 +msgid "Cannot rebase onto multiple branches" +msgstr "No es pot rebasar en múltiples rames" + +#: 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 "" +"Quan heu resolt aquest problema, executeu \"git rebase --continue\".\n" +"Si preferiu saltar aquest pedaç, executeu \"git rebase --skip\" en lloc.\n" +"Per agafar la rama original i deixar de rebasar, executeu \"git rebase --" +"abort\"." + +#: git-rebase.sh:165 +msgid "Applied autostash." +msgstr "Magatzem automà tic aplicat." + +#: git-rebase.sh:168 +#, sh-format +msgid "Cannot store $stash_sha1" +msgstr "No es pot emmagatzemar $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 "" +"L'aplicació del magatzem automà tic ha resultat en conflictes.\n" +"Els vostres canvis estan segurs el el magatzem.\n" +"Podeu executar \"git stash pop\" o \"git stash drop\" en qualsevol moment.\n" + +#: git-rebase.sh:208 +msgid "The pre-rebase hook refused to rebase." +msgstr "El ganxo prerebase ha refusat rebasar." + +#: git-rebase.sh:213 +msgid "It looks like git-am is in progress. Cannot rebase." +msgstr "Sembla que git-am està en curs. No es pot rebasar." + +#: git-rebase.sh:351 +msgid "The --exec option must be used with the --interactive option" +msgstr "L'opció --exec s'ha d'utilitzar amb l'opció --interactive" + +#: git-rebase.sh:356 +msgid "No rebase in progress?" +msgstr "Cap rebase en curs?" + +#: git-rebase.sh:367 +msgid "The --edit-todo action can only be used during interactive rebase." +msgstr "" +"L'acció --edit-todo només es pot utilitzar durant un rebase interactiu." + +#: git-rebase.sh:374 +msgid "Cannot read HEAD" +msgstr "No es pot llegir HEAD" + +#: git-rebase.sh:377 +msgid "" +"You must edit all merge conflicts and then\n" +"mark them as resolved using git add" +msgstr "" +"Heu d'editar tots els conflictes de fusió i després\n" +"marcar-los com resolts utilitzant git add" + +#: git-rebase.sh:395 +#, sh-format +msgid "Could not move back to $head_name" +msgstr "No s'ha pogut retardar a $head_name" + +#: git-rebase.sh:414 +#, 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 "" +"Semla que ja hi ha altre directori $state_dir_base, i\n" +"em pregonu si esteu en el medi d'altre rebase. Si això és el\n" +"cas, si us plau, proveu\n" +"\t$cmd_live_rebase\n" +"Si no és el cas, si us plau,\n" +"\t$cmd_clear_stale_rebase\n" +"i executeu-me de nou. M'aturo en cas de que encara tingueu alguna cosa\n" +"de valor allà ." + +#: git-rebase.sh:465 +#, sh-format +msgid "invalid upstream $upstream_name" +msgstr "font invà lida $upstream_name" + +#: git-rebase.sh:489 +#, sh-format +msgid "$onto_name: there are more than one merge bases" +msgstr "$onto_name: ja hi ha més d'un base de fusió" + +#: git-rebase.sh:492 git-rebase.sh:496 +#, sh-format +msgid "$onto_name: there is no merge base" +msgstr "$onto_name: no hi ha base de fusió" + +#: git-rebase.sh:501 +#, sh-format +msgid "Does not point to a valid commit: $onto_name" +msgstr "No assenyala una comissió và lida: $onto_name" + +#: git-rebase.sh:524 +#, sh-format +msgid "fatal: no such branch: $branch_name" +msgstr "fatal: cap rama aixÃ: $branch_name" + +#: git-rebase.sh:557 +msgid "Cannot autostash" +msgstr "No es pot emmagatzemar automà ticament" + +#: git-rebase.sh:562 +#, sh-format +msgid "Created autostash: $stash_abbrev" +msgstr "Magatzem automà tic creat: $stash_abbrev" + +#: git-rebase.sh:566 +msgid "Please commit or stash them." +msgstr "Si us plau, cometeu-los o emmagatzemeu-los." + +#: git-rebase.sh:586 +#, sh-format +msgid "Current branch $branch_name is up to date." +msgstr "La rama actual $branch_name està actualitzada." + +#: git-rebase.sh:590 +#, sh-format +msgid "Current branch $branch_name is up to date, rebase forced." +msgstr "La rama actual $branch_name està actualitzada, rebase forçat." + +#: git-rebase.sh:601 +#, sh-format +msgid "Changes from $mb to $onto:" +msgstr "Canvis de $mb a $onto:" + +#: git-rebase.sh:610 +msgid "First, rewinding head to replay your work on top of it..." +msgstr "Primer, rebobinant el cap per reproduir el vostre treball encima..." + +#: git-rebase.sh:620 +#, sh-format +msgid "Fast-forwarded $branch_name to $onto_name." +msgstr "$branch_name avançada rà pidament a $onto_name" + +#: git-stash.sh:51 +msgid "git stash clear with parameters is unimplemented" +msgstr "git stash clear amb parà metres no està implementat" + +#: git-stash.sh:74 +msgid "You do not have the initial commit yet" +msgstr "Encara no teniu la comissió inicial" + +#: git-stash.sh:89 +msgid "Cannot save the current index state" +msgstr "No es pot desar l'estat d'Ãndex actual" + +#: git-stash.sh:124 git-stash.sh:137 +msgid "Cannot save the current worktree state" +msgstr "No es pot desar l'estat d'arbre de treball actual" + +#: git-stash.sh:141 +msgid "No changes selected" +msgstr "Cap canvi seleccionat" + +#: git-stash.sh:144 +msgid "Cannot remove temporary index (can't happen)" +msgstr "No es pot treure l'Ãndex temporal (no es pot passar)" + +#: git-stash.sh:157 +msgid "Cannot record working tree state" +msgstr "No es pot registrar l'estat de l'arbre de treball" + +#: git-stash.sh:191 +#, sh-format +msgid "Cannot update $ref_stash with $w_commit" +msgstr "No es pot actualitzar $ref_stash amb $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:238 +#, sh-format +msgid "" +"error: unknown option for 'stash save': $option\n" +" To provide a message, use git stash save -- '$option'" +msgstr "" +"error: opció desconeguda de 'stash save': $option\n" +" Per proveir un missatge, utilitzeu git stash save -- '$option'" + +#: git-stash.sh:259 +msgid "No local changes to save" +msgstr "Cap canvi local que desar" + +#: git-stash.sh:263 +msgid "Cannot initialize stash" +msgstr "No es pot inicialitzar el magatzem." + +#: git-stash.sh:267 +msgid "Cannot save the current status" +msgstr "No es pot desar l'estat actual" + +#: git-stash.sh:285 +msgid "Cannot remove worktree changes" +msgstr "No es pot treure els canvis de l'arbre de treball" + +#: git-stash.sh:384 +msgid "No stash found." +msgstr "Cap magatzem trobat." + +#: git-stash.sh:391 +#, sh-format +msgid "Too many revisions specified: $REV" +msgstr "Massa revisions especificades: $REV" + +#: git-stash.sh:397 +#, sh-format +msgid "$reference is not valid reference" +msgstr "$reference no és referència và lida" + +#: git-stash.sh:425 +#, sh-format +msgid "'$args' is not a stash-like commit" +msgstr "'$args' no és comissió com a un magatzem" + +#: git-stash.sh:436 +#, sh-format +msgid "'$args' is not a stash reference" +msgstr "'$args' no és referència de magatzem" + +#: git-stash.sh:444 +msgid "unable to refresh index" +msgstr "incapaç d'actualitzar l'Ãndex" + +#: git-stash.sh:448 +msgid "Cannot apply a stash in the middle of a merge" +msgstr "No es pot aplicar un magatzem en el medi d'una fusió" + +#: git-stash.sh:456 +msgid "Conflicts in index. Try without --index." +msgstr "Hi ha conflictes en l'Ãndex. Proveu-lo sense --index." + +#: git-stash.sh:458 +msgid "Could not save index tree" +msgstr "No s'ha pogut desar l'arbre d'Ãndex" + +#: git-stash.sh:492 +msgid "Cannot unstage modified files" +msgstr "No es pot desallistar fitxers modificats" + +#: git-stash.sh:507 +msgid "Index was not unstashed." +msgstr "L'Ãndex no estava sense emmagatzemar." + +#: git-stash.sh:530 +#, sh-format +msgid "Dropped ${REV} ($s)" +msgstr "${REV} ($s) descartada" + +#: git-stash.sh:531 +#, sh-format +msgid "${REV}: Could not drop stash entry" +msgstr "${REV}: No s'ha pogut descartar l'entrada de magatzem" + +#: git-stash.sh:538 +msgid "No branch name specified" +msgstr "Cap nom de rama especificat" + +#: git-stash.sh:610 +msgid "(To restore them type \"git stash apply\")" +msgstr "(Per restaurar-les teclegeu \"git stash apply\")" + +#: git-submodule.sh:95 +#, sh-format +msgid "cannot strip one component off url '$remoteurl'" +msgstr "no es pot despullar un component de l'url '$remoteurl'" + +#: git-submodule.sh:237 +#, sh-format +msgid "No submodule mapping found in .gitmodules for path '$sm_path'" +msgstr "" +"Cap mapatge de submòdul trobada en .gitmodules per a la ruta '$sm_path'" + +#: git-submodule.sh:287 +#, sh-format +msgid "Clone of '$url' into submodule path '$sm_path' failed" +msgstr "La clonatge de '$url' a la ruta de submòdul '$sm_path' ha fallat" + +#: git-submodule.sh:296 +#, sh-format +msgid "Gitdir '$a' is part of the submodule path '$b' or vice versa" +msgstr "" +"El directori de git '$a' és part de la ruta de submòdul '$b' o viceversa" + +#: git-submodule.sh:406 +msgid "Relative path can only be used from the toplevel of the working tree" +msgstr "" +"La ruta relativa només es pot utilitzar des del nivell superior de l'arbre " +"de treball" + +#: git-submodule.sh:416 +#, sh-format +msgid "repo URL: '$repo' must be absolute or begin with ./|../" +msgstr "" +"URL de repositori: '$repo' ha de ser absolut o ha de començar amb ./|../" + +#: git-submodule.sh:433 +#, sh-format +msgid "'$sm_path' already exists in the index" +msgstr "'$sm_path' ja existeix en l'Ãndex" + +#: git-submodule.sh:437 +#, 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 "" +"La ruta següent s'ignora per un dels vostres fitxers .gitignore:\n" +"$sm_path\n" +"Utilitzeu -f si realment voleu afegir-lo." + +#: git-submodule.sh:455 +#, sh-format +msgid "Adding existing repo at '$sm_path' to the index" +msgstr "Afegint el repositori existent a '$sm_path' a l'Ãndex" + +#: git-submodule.sh:457 +#, sh-format +msgid "'$sm_path' already exists and is not a valid git repo" +msgstr "'$sm_path' ja existeix i no és un repositori de git và lid" + +#: git-submodule.sh:465 +#, sh-format +msgid "A git directory for '$sm_name' is found locally with remote(s):" +msgstr "" +"Es troba un directori de git per a '$sm_name' localment amb els remots:" + +#: git-submodule.sh:467 +#, sh-format +msgid "" +"If you want to reuse this local git directory instead of cloning again from" +msgstr "" +"Si voleu reutilitzar aquest directori de git local en lloc de clonar de nou " +"de" + +#: git-submodule.sh:469 +#, sh-format +msgid "" +"use the '--force' option. If the local git directory is not the correct repo" +msgstr "" +"utilitzeu l'opció '--force'. Si el directori de git local no és el " +"repositori correcte" + +#: git-submodule.sh:470 +#, sh-format +msgid "" +"or you are unsure what this means choose another name with the '--name' " +"option." +msgstr "" +"o esteu insegur de què vol dir això, trieu altre nom amb l'opció '--name'." + +#: git-submodule.sh:472 +#, sh-format +msgid "Reactivating local git directory for submodule '$sm_name'." +msgstr "Reactivant el directori de git local per al submòdul '$sm_name'." + +#: git-submodule.sh:484 +#, sh-format +msgid "Unable to checkout submodule '$sm_path'" +msgstr "Incapaç d'agafar el submòdul '$sm_path'" + +#: git-submodule.sh:489 +#, sh-format +msgid "Failed to add submodule '$sm_path'" +msgstr "S'ha fallat al afegir el submòdul '$sm_path'" + +#: git-submodule.sh:498 +#, sh-format +msgid "Failed to register submodule '$sm_path'" +msgstr "S'ha fallat al registrar el submòdul '$sm_path'" + +#: git-submodule.sh:542 +#, sh-format +msgid "Entering '$prefix$displaypath'" +msgstr "Entrant '$prefix$displaypath'" + +#: git-submodule.sh:562 +#, sh-format +msgid "Stopping at '$prefix$displaypath'; script returned non-zero status." +msgstr "" +"Aturant a '$prefix$displaypath'; l'script ha retornat un estat no zero." + +#: git-submodule.sh:608 +#, sh-format +msgid "No url found for submodule path '$displaypath' in .gitmodules" +msgstr "Cap url trobat per a la ruta de submòdul '$displaypath' en .gitmodules" + +#: git-submodule.sh:617 +#, sh-format +msgid "Failed to register url for submodule path '$displaypath'" +msgstr "" +"S'ha fallat al registrar l'url per a la ruta de submòdul '$displaypath'" + +#: git-submodule.sh:619 +#, sh-format +msgid "Submodule '$name' ($url) registered for path '$displaypath'" +msgstr "Submòdul '$name' ($url) registrat per a la ruta '$displaypath'" + +#: git-submodule.sh:636 +#, sh-format +msgid "Failed to register update mode for submodule path '$displaypath'" +msgstr "" +"S'ha fallat al registrar el mode d'actualització per a la ruta de submòdul " +"'$displaypath'" + +#: git-submodule.sh:674 +#, sh-format +msgid "Use '.' if you really want to deinitialize all submodules" +msgstr "Utilitzeu '.' si realment voleu desinicialitzar tots els submòduls" + +#: git-submodule.sh:691 +#, sh-format +msgid "Submodule work tree '$displaypath' contains a .git directory" +msgstr "L'arbre de treball de submòdul '$displaypath' conté un directori .git" + +#: git-submodule.sh:692 +#, sh-format +msgid "" +"(use 'rm -rf' if you really want to remove it including all of its history)" +msgstr "" +"(utilitzeu 'rm -rf' si realment voleu treure'l inclòs tota la seva història)" + +#: git-submodule.sh:698 +#, sh-format +msgid "" +"Submodule work tree '$displaypath' contains local modifications; use '-f' to " +"discard them" +msgstr "" +"L'arbre de treball de submòdul '$displaypath' conté modificacions locals; " +"utilitzeu '-f' per descartar-les" + +#: git-submodule.sh:701 +#, sh-format +msgid "Cleared directory '$displaypath'" +msgstr "S'ha netejat el directori '$displaypath'" + +#: git-submodule.sh:702 +#, sh-format +msgid "Could not remove submodule work tree '$displaypath'" +msgstr "No s'ha pogut treure l'arbre de treball de submòdul '$displaypath'" + +#: git-submodule.sh:705 +#, sh-format +msgid "Could not create empty submodule directory '$displaypath'" +msgstr "No s'ha pogut crear el directori de submòdul buit '$displaypath'" + +#: git-submodule.sh:714 +#, sh-format +msgid "Submodule '$name' ($url) unregistered for path '$displaypath'" +msgstr "Submòdul '$name' ($url) no registrat per a la ruta '$displaypath'" + +#: git-submodule.sh:830 +#, sh-format +msgid "" +"Submodule path '$displaypath' not initialized\n" +"Maybe you want to use 'update --init'?" +msgstr "" +"Ruta de submòdul '$displaypath' no inicialitzat\n" +"Potser voleu utilitzar 'update --init'?" + +#: git-submodule.sh:843 +#, sh-format +msgid "Unable to find current revision in submodule path '$displaypath'" +msgstr "" +"Incapaç de trobar la revisió actual en la ruta de submòdul '$displaypath'" + +#: git-submodule.sh:852 +#, sh-format +msgid "Unable to fetch in submodule path '$sm_path'" +msgstr "Incapaç d'agafar en la ruta de submòdul '$sm_path'" + +#: git-submodule.sh:876 +#, sh-format +msgid "Unable to fetch in submodule path '$displaypath'" +msgstr "Incapaç d'agafar en la ruta de submòdul '$displaypath'" + +#: git-submodule.sh:890 +#, sh-format +msgid "Unable to checkout '$sha1' in submodule path '$displaypath'" +msgstr "Incapaç d'agafar '$sha1' en la ruta de submòdul '$displaypath'" + +#: git-submodule.sh:891 +#, sh-format +msgid "Submodule path '$displaypath': checked out '$sha1'" +msgstr "Ruta de submòdul '$displaypath': agafat '$sha1'" + +#: git-submodule.sh:895 +#, sh-format +msgid "Unable to rebase '$sha1' in submodule path '$displaypath'" +msgstr "Incapaç de rebasar '$sha1' en la ruta de submòdul '$displaypath'" + +#: git-submodule.sh:896 +#, sh-format +msgid "Submodule path '$displaypath': rebased into '$sha1'" +msgstr "Ruta de submòdul '$displaypath': rebasada en '$sha1'" + +#: git-submodule.sh:901 +#, sh-format +msgid "Unable to merge '$sha1' in submodule path '$displaypath'" +msgstr "Incapaç de fusionar '$sha1' en la ruta de submòdul '$displaypath'" + +#: git-submodule.sh:902 +#, sh-format +msgid "Submodule path '$displaypath': merged in '$sha1'" +msgstr "Ruta de submòdul '$displaypath': fusionada en '$sha1'" + +#: git-submodule.sh:907 +#, sh-format +msgid "" +"Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'" +msgstr "" +"L'execució de '$command $sha1' ha fallat en la ruta de submòdul '$prefix" +"$sm_path'" + +#: git-submodule.sh:908 +#, sh-format +msgid "Submodule path '$prefix$sm_path': '$command $sha1'" +msgstr "Ruta de submòdul '$prefix$sm_path': '$command $sha1'" + +#: git-submodule.sh:938 +#, sh-format +msgid "Failed to recurse into submodule path '$displaypath'" +msgstr "S'ha fallat al recursar a la ruta de submòdul '$displaypath'" + +#: git-submodule.sh:1046 +msgid "The --cached option cannot be used with the --files option" +msgstr "L'opció --cached no es pot utilitzar amb l'opció --files" + +#: git-submodule.sh:1098 +#, sh-format +msgid "unexpected mode $mod_dst" +msgstr "mode inesperat $mod_dst" + +#: git-submodule.sh:1118 +#, 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:1121 +#, 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:1124 +#, 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:1149 +msgid "blob" +msgstr "blob" + +#: git-submodule.sh:1267 +#, sh-format +msgid "Failed to recurse into submodule path '$sm_path'" +msgstr "S'ha fallat al recursar a la ruta de submòdul '$sm_path'" + +#: git-submodule.sh:1331 +#, sh-format +msgid "Synchronizing submodule url for '$displaypath'" +msgstr "Sincronitzant l'url de submòdul per a '$displaypath'" @@ -5,9 +5,9 @@ # msgid "" msgstr "" -"Project-Id-Version: git 2.0.0\n" +"Project-Id-Version: Git\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2014-04-17 12:13+0800\n" +"POT-Creation-Date: 2014-08-04 14:48+0800\n" "PO-Revision-Date: 2013-07-28 18:42+0200\n" "Last-Translator: Ralf Thielow <ralf.thielow@gmail.com>\n" "Language-Team: German <>\n" @@ -22,17 +22,15 @@ msgstr "" msgid "hint: %.*s\n" msgstr "Hinweis: %.*s\n" -#: advice.c:85 +#: advice.c:88 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'." +"Fix them up in the work tree, and then use 'git add/rm <file>'\n" +"as appropriate to mark resolution and make a commit, or use\n" +"'git commit -a'." msgstr "" -"Korrigieren Sie dies im Arbeitsverzeichnis,\n" -"und benutzen Sie dann 'git add/rm <Datei>'\n" -"um die Auflösung entsprechend zu markieren und zu committen,\n" -"oder benutzen Sie 'git commit -a'." +"Korrigieren Sie dies im Arbeitsverzeichnis, und benutzen Sie\n" +"dann 'git add/rm <Datei>', um die Auflösung entsprechend zu markieren\n" +"und zu committen, oder benutzen Sie 'git commit -a'." #: archive.c:10 msgid "git archive [options] <tree-ish> [<path>...]" @@ -53,7 +51,7 @@ msgstr "" msgid "git archive --remote <repo> [--exec <cmd>] --list" msgstr "git archive --remote <Repository> [--exec <Programm>] --list" -#: archive.c:243 builtin/add.c:136 builtin/add.c:428 builtin/rm.c:328 +#: archive.c:243 builtin/add.c:136 builtin/add.c:427 builtin/rm.c:328 #, c-format msgid "pathspec '%s' did not match any files" msgstr "Pfadspezifikation '%s' stimmt mit keinen Dateien überein" @@ -66,7 +64,7 @@ msgstr "Format" msgid "archive format" msgstr "Archivformat" -#: archive.c:329 builtin/log.c:1193 +#: archive.c:329 builtin/log.c:1201 msgid "prefix" msgstr "Präfix" @@ -74,9 +72,9 @@ msgstr "Präfix" msgid "prepend prefix to each pathname in the archive" msgstr "stellt einen Präfix vor jeden Pfadnamen in dem Archiv" -#: archive.c:331 builtin/archive.c:88 builtin/blame.c:2258 -#: builtin/blame.c:2259 builtin/config.c:57 builtin/fast-export.c:680 -#: builtin/fast-export.c:682 builtin/grep.c:714 builtin/hash-object.c:77 +#: archive.c:331 builtin/archive.c:88 builtin/blame.c:2517 +#: builtin/blame.c:2518 builtin/config.c:57 builtin/fast-export.c:709 +#: builtin/fast-export.c:711 builtin/grep.c:712 builtin/hash-object.c:77 #: builtin/ls-files.c:489 builtin/ls-files.c:492 builtin/notes.c:412 #: builtin/notes.c:569 builtin/read-tree.c:108 parse-options.h:151 msgid "file" @@ -268,7 +266,7 @@ msgstr "'%s' sieht nicht wie eine v2 Paketdatei aus" msgid "unrecognized header: %s%s (%d)" msgstr "nicht erkannter Kopfbereich: %s%s (%d)" -#: bundle.c:86 builtin/commit.c:706 +#: bundle.c:86 builtin/commit.c:755 #, c-format msgid "could not open '%s'" msgstr "Konnte '%s' nicht öffnen" @@ -277,8 +275,8 @@ msgstr "Konnte '%s' nicht öffnen" msgid "Repository lacks these prerequisite commits:" msgstr "Dem Repository fehlen folgende vorausgesetzte Commits:" -#: bundle.c:162 sequencer.c:669 sequencer.c:1123 builtin/log.c:332 -#: builtin/log.c:821 builtin/log.c:1418 builtin/log.c:1644 builtin/merge.c:357 +#: bundle.c:162 sequencer.c:630 sequencer.c:1085 builtin/log.c:330 +#: builtin/log.c:821 builtin/log.c:1428 builtin/log.c:1665 builtin/merge.c:357 #: builtin/shortlog.c:158 msgid "revision walk setup failed" msgstr "Einrichtung des Revisionsgangs fehlgeschlagen" @@ -301,47 +299,47 @@ msgid_plural "The bundle requires these %d refs:" msgstr[0] "Das Paket benötigt diese Referenz:" msgstr[1] "Das Paket benötigt diese %d Referenzen:" -#: bundle.c:293 +#: bundle.c:289 msgid "rev-list died" msgstr "\"rev-list\" abgebrochen" -#: bundle.c:299 builtin/log.c:1329 builtin/shortlog.c:261 +#: bundle.c:295 builtin/log.c:1339 builtin/shortlog.c:261 #, c-format msgid "unrecognized argument: %s" msgstr "nicht erkanntes Argument: %s" -#: bundle.c:334 +#: bundle.c:330 #, c-format msgid "ref '%s' is excluded by the rev-list options" msgstr "Referenz '%s' wird durch \"rev-list\" Optionen ausgeschlossen" -#: bundle.c:379 +#: bundle.c:375 msgid "Refusing to create empty bundle." msgstr "Erstellung eines leeren Pakets zurückgewiesen." -#: bundle.c:395 +#: bundle.c:390 msgid "Could not spawn pack-objects" msgstr "Konnte Paketobjekte nicht erstellen" -#: bundle.c:413 +#: bundle.c:408 msgid "pack-objects died" msgstr "Erstellung der Paketobjekte abgebrochen" -#: bundle.c:416 +#: bundle.c:411 #, c-format msgid "cannot create '%s'" msgstr "kann '%s' nicht erstellen" -#: bundle.c:438 +#: bundle.c:433 msgid "index-pack died" msgstr "Erstellung der Paketindexdatei abgebrochen" -#: commit.c:54 +#: commit.c:40 #, c-format msgid "could not parse %s" msgstr "konnte %s nicht parsen" -#: commit.c:56 +#: commit.c:42 #, c-format msgid "%s %s is not a commit!" msgstr "%s %s ist kein Commit!" @@ -437,27 +435,27 @@ msgstr[1] "vor %lu Jahren" msgid "failed to read orderfile '%s'" msgstr "Fehler beim Lesen der Reihenfolgedatei '%s'." -#: diffcore-rename.c:517 +#: diffcore-rename.c:514 msgid "Performing inexact rename detection" msgstr "Führe Erkennung für ungenaue Umbenennung aus" -#: diff.c:113 +#: diff.c:114 #, c-format msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr "" " Fehler beim Parsen des abgeschnittenen \"dirstat\" Prozentsatzes '%s'\n" -#: diff.c:118 +#: diff.c:119 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr " Unbekannter \"dirstat\" Parameter '%s'\n" -#: diff.c:213 +#: diff.c:214 #, c-format msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "Unbekannter Wert in Konfigurationsvariable 'diff.dirstat': '%s'" -#: diff.c:263 +#: diff.c:267 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" @@ -466,7 +464,16 @@ msgstr "" "Fehler in 'diff.dirstat' Konfigurationsvariable gefunden:\n" "%s" -#: diff.c:3495 +#: diff.c:2934 +#, c-format +msgid "external diff died, stopping at %s" +msgstr "externes Diff-Programm unerwartet beendet, angehalten bei %s" + +#: diff.c:3329 +msgid "--follow requires exactly one pathspec" +msgstr "--follow erfordert genau eine Pfadspezifikation" + +#: diff.c:3492 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -475,58 +482,58 @@ msgstr "" "Fehler beim Parsen des --dirstat/-X Optionsparameters:\n" "%s" -#: diff.c:3509 +#: diff.c:3506 #, c-format msgid "Failed to parse --submodule option parameter: '%s'" msgstr "Fehler beim Parsen des --submodule Optionsparameters: '%s'" -#: gpg-interface.c:59 gpg-interface.c:131 +#: gpg-interface.c:73 gpg-interface.c:145 msgid "could not run gpg." msgstr "konnte gpg nicht ausführen" -#: gpg-interface.c:71 +#: gpg-interface.c:85 msgid "gpg did not accept the data" msgstr "gpg hat die Daten nicht akzeptiert" -#: gpg-interface.c:82 +#: gpg-interface.c:96 msgid "gpg failed to sign the data" msgstr "gpg beim Signieren der Daten fehlgeschlagen" -#: gpg-interface.c:115 +#: gpg-interface.c:129 #, c-format msgid "could not create temporary file '%s': %s" msgstr "konnte temporäre Datei '%s' nicht erstellen: %s" -#: gpg-interface.c:118 +#: gpg-interface.c:132 #, c-format msgid "failed writing detached signature to '%s': %s" msgstr "Fehler beim Schreiben der Signatur nach '%s': %s" -#: grep.c:1698 +#: grep.c:1703 #, c-format msgid "'%s': unable to read %s" msgstr "'%s': konnte nicht lesen %s" -#: grep.c:1715 +#: grep.c:1720 #, c-format msgid "'%s': %s" msgstr "'%s': %s" -#: grep.c:1726 +#: grep.c:1731 #, c-format msgid "'%s': short read %s" msgstr "'%s': read() zu kurz %s" -#: help.c:209 +#: help.c:207 #, c-format msgid "available git commands in '%s'" msgstr "Vorhandene Git-Kommandos in '%s'" -#: help.c:216 +#: help.c:214 msgid "git commands available from elsewhere on your $PATH" msgstr "Vorhandene Git-Kommandos irgendwo in Ihrem $PATH" -#: help.c:232 +#: help.c:230 msgid "The most commonly used git commands are:" msgstr "Die allgemein verwendeten Git-Kommandos sind:" @@ -562,7 +569,7 @@ msgstr "Automatische Ausführung in %0.1f Sekunden..." msgid "git: '%s' is not a git command. See 'git --help'." msgstr "git: '%s' ist kein Git-Kommando. Siehe 'git --help'." -#: help.c:384 help.c:443 +#: help.c:384 help.c:444 msgid "" "\n" "Did you mean this?" @@ -576,16 +583,16 @@ msgstr[1] "" "\n" "Haben Sie eines von diesen gemeint?" -#: help.c:439 +#: help.c:440 #, c-format msgid "%s: %s - %s" msgstr "%s: %s - %s" -#: merge.c:56 +#: merge.c:40 msgid "failed to read the cache" msgstr "Lesen des Zwischenspeichers fehlgeschlagen" -#: merge.c:110 builtin/checkout.c:357 builtin/checkout.c:558 +#: merge.c:93 builtin/checkout.c:356 builtin/checkout.c:556 #: builtin/clone.c:661 msgid "unable to write new index file" msgstr "Konnte neue Staging-Area-Datei nicht schreiben." @@ -595,7 +602,7 @@ msgstr "Konnte neue Staging-Area-Datei nicht schreiben." msgid "(bad commit)\n" msgstr "(ungültiger Commit)\n" -#: merge-recursive.c:208 +#: merge-recursive.c:210 #, c-format msgid "addinfo_cache failed for path '%s'" msgstr "addinfo_cache für Pfad '%s' fehlgeschlagen" @@ -604,64 +611,64 @@ msgstr "addinfo_cache für Pfad '%s' fehlgeschlagen" msgid "error building trees" msgstr "Fehler beim Erstellen der \"Tree\"-Objekte" -#: merge-recursive.c:675 +#: merge-recursive.c:692 #, c-format msgid "failed to create path '%s'%s" msgstr "Fehler beim Erstellen des Pfades '%s'%s" -#: merge-recursive.c:686 +#: merge-recursive.c:703 #, c-format msgid "Removing %s to make room for subdirectory\n" -msgstr "Entferne %s um Platz für Unterverzeichnis zu schaffen\n" +msgstr "Entferne %s, um Platz für Unterverzeichnis zu schaffen\n" -#: merge-recursive.c:700 merge-recursive.c:721 +#: merge-recursive.c:717 merge-recursive.c:738 msgid ": perhaps a D/F conflict?" msgstr ": vielleicht ein Verzeichnis/Datei-Konflikt?" -#: merge-recursive.c:711 +#: merge-recursive.c:728 #, c-format msgid "refusing to lose untracked file at '%s'" msgstr "verweigere, da unbeobachtete Dateien in '%s' verloren gehen würden" -#: merge-recursive.c:751 +#: merge-recursive.c:768 #, c-format msgid "cannot read object %s '%s'" msgstr "kann Objekt %s '%s' nicht lesen" -#: merge-recursive.c:753 +#: merge-recursive.c:770 #, c-format msgid "blob expected for %s '%s'" msgstr "Blob erwartet für %s '%s'" -#: merge-recursive.c:776 builtin/clone.c:317 +#: merge-recursive.c:793 builtin/clone.c:317 #, c-format msgid "failed to open '%s'" msgstr "Fehler beim Öffnen von '%s'" -#: merge-recursive.c:784 +#: merge-recursive.c:801 #, c-format msgid "failed to symlink '%s'" msgstr "Fehler beim Erstellen eines symbolischen Verweises für '%s'" -#: merge-recursive.c:787 +#: merge-recursive.c:804 #, 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:925 +#: merge-recursive.c:942 msgid "Failed to execute internal merge" msgstr "Fehler bei Ausführung des internen Merges" -#: merge-recursive.c:929 +#: merge-recursive.c:946 #, c-format msgid "Unable to add %s to database" msgstr "Konnte %s nicht zur Datenbank hinzufügen" -#: merge-recursive.c:945 +#: merge-recursive.c:962 msgid "unsupported object type in the tree" msgstr "nicht unterstützter Objekttyp im Verzeichnis" -#: merge-recursive.c:1024 merge-recursive.c:1038 +#: merge-recursive.c:1037 merge-recursive.c:1051 #, c-format msgid "" "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left " @@ -670,7 +677,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:1030 merge-recursive.c:1043 +#: merge-recursive.c:1043 merge-recursive.c:1056 #, c-format msgid "" "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left " @@ -679,20 +686,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:1084 +#: merge-recursive.c:1097 msgid "rename" msgstr "umbenennen" -#: merge-recursive.c:1084 +#: merge-recursive.c:1097 msgid "renamed" msgstr "umbenannt" -#: merge-recursive.c:1140 +#: merge-recursive.c:1153 #, 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:1162 +#: merge-recursive.c:1175 #, c-format msgid "" "CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s" @@ -701,162 +708,162 @@ msgstr "" "KONFLIKT (umbenennen/umbenennen): Benenne um \"%s\"->\"%s\" in Branch \"%s\" " "und \"%s\"->\"%s\" in Branch \"%s\"%s" -#: merge-recursive.c:1167 +#: merge-recursive.c:1180 msgid " (left unresolved)" msgstr " (bleibt unaufgelöst)" -#: merge-recursive.c:1221 +#: merge-recursive.c:1234 #, 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:1251 +#: merge-recursive.c:1264 #, 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:1450 +#: merge-recursive.c:1463 #, 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:1460 +#: merge-recursive.c:1473 #, c-format msgid "Adding merged %s" msgstr "Füge zusammengeführte Datei %s hinzu" -#: merge-recursive.c:1465 merge-recursive.c:1663 +#: merge-recursive.c:1478 merge-recursive.c:1676 #, c-format msgid "Adding as %s instead" msgstr "Füge stattdessen als %s hinzu" -#: merge-recursive.c:1516 +#: merge-recursive.c:1529 #, c-format msgid "cannot read object %s" msgstr "kann Objekt %s nicht lesen" -#: merge-recursive.c:1519 +#: merge-recursive.c:1532 #, c-format msgid "object %s is not a blob" msgstr "Objekt %s ist kein Blob" -#: merge-recursive.c:1567 +#: merge-recursive.c:1580 msgid "modify" msgstr "ändern" -#: merge-recursive.c:1567 +#: merge-recursive.c:1580 msgid "modified" msgstr "geändert" -#: merge-recursive.c:1577 +#: merge-recursive.c:1590 msgid "content" msgstr "Inhalt" -#: merge-recursive.c:1584 +#: merge-recursive.c:1597 msgid "add/add" msgstr "hinzufügen/hinzufügen" -#: merge-recursive.c:1618 +#: merge-recursive.c:1631 #, c-format msgid "Skipped %s (merged same as existing)" msgstr "%s ausgelassen (Ergebnis des Merges existiert bereits)" -#: merge-recursive.c:1632 +#: merge-recursive.c:1645 #, c-format msgid "Auto-merging %s" msgstr "automatischer Merge von %s" -#: merge-recursive.c:1636 git-submodule.sh:1149 +#: merge-recursive.c:1649 git-submodule.sh:1150 msgid "submodule" msgstr "Submodul" -#: merge-recursive.c:1637 +#: merge-recursive.c:1650 #, c-format msgid "CONFLICT (%s): Merge conflict in %s" msgstr "KONFLIKT (%s): Merge-Konflikt in %s" -#: merge-recursive.c:1727 +#: merge-recursive.c:1740 #, c-format msgid "Removing %s" msgstr "Entferne %s" -#: merge-recursive.c:1752 +#: merge-recursive.c:1765 msgid "file/directory" msgstr "Datei/Verzeichnis" -#: merge-recursive.c:1758 +#: merge-recursive.c:1771 msgid "directory/file" msgstr "Verzeichnis/Datei" -#: merge-recursive.c:1763 +#: merge-recursive.c:1776 #, 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:1773 +#: merge-recursive.c:1786 #, c-format msgid "Adding %s" msgstr "Füge %s hinzu" -#: merge-recursive.c:1790 +#: merge-recursive.c:1803 msgid "Fatal merge failure, shouldn't happen." msgstr "Fataler Merge-Fehler. Sollte nicht passieren." -#: merge-recursive.c:1809 +#: merge-recursive.c:1822 msgid "Already up-to-date!" msgstr "Bereits aktuell!" -#: merge-recursive.c:1818 +#: merge-recursive.c:1831 #, c-format msgid "merging of trees %s and %s failed" msgstr "Zusammenführen der \"Tree\"-Objekte %s und %s fehlgeschlagen" -#: merge-recursive.c:1848 +#: merge-recursive.c:1861 #, c-format msgid "Unprocessed path??? %s" msgstr "unverarbeiteter Pfad??? %s" -#: merge-recursive.c:1893 +#: merge-recursive.c:1906 msgid "Merging:" msgstr "Merge:" -#: merge-recursive.c:1906 +#: 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:1943 +#: merge-recursive.c:1956 msgid "merge returned no commit" msgstr "Merge hat keinen Commit zurückgegeben" -#: merge-recursive.c:2000 +#: merge-recursive.c:2013 #, c-format msgid "Could not parse object '%s'" msgstr "Konnte Objekt '%s' nicht parsen." -#: merge-recursive.c:2012 builtin/merge.c:668 +#: merge-recursive.c:2024 builtin/merge.c:666 msgid "Unable to write index." msgstr "Konnte Staging-Area nicht schreiben." -#: notes-utils.c:40 +#: notes-utils.c:41 msgid "Cannot commit uninitialized/unreferenced notes tree" msgstr "" "Kann uninitialisiertes/unreferenzierte Notiz-Verzeichnis nicht committen." -#: notes-utils.c:81 +#: notes-utils.c:83 #, c-format msgid "Bad notes.rewriteMode value: '%s'" msgstr "Ungültiger notes.rewriteMode Wert: '%s'" -#: notes-utils.c:91 +#: notes-utils.c:93 #, c-format msgid "Refusing to rewrite notes in %s (outside of refs/notes/)" msgstr "" @@ -864,38 +871,38 @@ msgstr "" #. TRANSLATORS: The first %s is the name of the #. environment variable, the second %s is its value -#: notes-utils.c:118 +#: notes-utils.c:120 #, c-format msgid "Bad %s value: '%s'" msgstr "Ungültiger %s Wert: '%s'" -#: object.c:229 +#: object.c:234 #, c-format msgid "unable to parse object: %s" msgstr "Konnte Objekt '%s' nicht parsen." -#: parse-options.c:532 +#: parse-options.c:534 msgid "..." msgstr "..." -#: parse-options.c:550 +#: parse-options.c:552 #, c-format msgid "usage: %s" msgstr "Verwendung: %s" #. TRANSLATORS: the colon here should align with the #. one in "usage: %s" translation -#: parse-options.c:554 +#: parse-options.c:556 #, c-format msgid " or: %s" msgstr " oder: %s" -#: parse-options.c:557 +#: parse-options.c:559 #, c-format msgid " %s" msgstr " %s" -#: parse-options.c:591 +#: parse-options.c:593 msgid "-NUM" msgstr "-NUM" @@ -953,12 +960,12 @@ msgid "%s: pathspec magic not supported by this command: %s" msgstr "" "%s: Pfadspezifikationsangabe wird von diesem Kommando nicht unterstützt: %s" -#: pathspec.c:433 +#: pathspec.c:432 #, c-format msgid "pathspec '%s' is beyond a symbolic link" msgstr "Pfadspezifikation '%s' ist hinter einem symbolischen Verweis" -#: pathspec.c:442 +#: pathspec.c:441 msgid "" "There is nothing to exclude from by :(exclude) patterns.\n" "Perhaps you forgot to add either ':/' or '.' ?" @@ -966,11 +973,11 @@ msgstr "" ":(exclude) Muster, aber keine anderen Pfadspezifikationen angegeben.\n" "Vielleicht haben Sie vergessen entweder ':/' oder '.' hinzuzufügen?" -#: progress.c:224 +#: progress.c:225 msgid "done" msgstr "Fertig" -#: read-cache.c:1238 +#: read-cache.c:1260 #, c-format msgid "" "index.version set, but the value is invalid.\n" @@ -979,7 +986,7 @@ msgstr "" "index.version gesetzt, aber Wert ungültig.\n" "Verwende Version %i" -#: read-cache.c:1248 +#: read-cache.c:1270 #, c-format msgid "" "GIT_INDEX_VERSION set, but the value is invalid.\n" @@ -988,51 +995,51 @@ msgstr "" "GIT_INDEX_VERSION gesetzt, aber Wert ungültig.\n" "Verwende Version %i" -#: remote.c:758 +#: remote.c:753 #, 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:762 +#: remote.c:757 #, c-format msgid "%s usually tracks %s, not %s" msgstr "%s folgt üblicherweise %s, nicht %s" -#: remote.c:766 +#: remote.c:761 #, c-format msgid "%s tracks both %s and %s" msgstr "%s folgt sowohl %s als auch %s" -#: remote.c:774 +#: remote.c:769 msgid "Internal error" msgstr "Interner Fehler" -#: remote.c:1948 +#: remote.c:1943 #, c-format msgid "Your branch is based on '%s', but the upstream is gone.\n" msgstr "Ihr Branch basiert auf '%s', aber Upstream-Branch wurde entfernt.\n" -#: remote.c:1952 +#: remote.c:1947 msgid " (use \"git branch --unset-upstream\" to fixup)\n" msgstr " (benutzen Sie \"git branch --unset-upstream\" zum Beheben)\n" -#: remote.c:1955 +#: remote.c:1950 #, 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:1959 +#: remote.c:1954 #, 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:1965 +#: remote.c:1960 msgid " (use \"git push\" to publish your local commits)\n" -msgstr " (benutzen Sie \"git push\" um lokale Commits zu publizieren)\n" +msgstr " (benutzen Sie \"git push\", um lokale Commits zu publizieren)\n" -#: remote.c:1968 +#: remote.c:1963 #, c-format msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n" msgid_plural "" @@ -1042,12 +1049,12 @@ msgstr[0] "" msgstr[1] "" "Ihr Branch ist zu '%s' um %d Commits hinterher, und kann vorgespult werden.\n" -#: remote.c:1976 +#: remote.c:1971 msgid " (use \"git pull\" to update your local branch)\n" msgstr "" -" (benutzen Sie \"git pull\" um Ihren lokalen Branch zu aktualisieren)\n" +" (benutzen Sie \"git pull\", um Ihren lokalen Branch zu aktualisieren)\n" -#: remote.c:1979 +#: remote.c:1974 #, c-format msgid "" "Your branch and '%s' have diverged,\n" @@ -1062,10 +1069,10 @@ msgstr[1] "" "Ihr Branch und '%s' sind divergiert,\n" "und haben jeweils %d und %d unterschiedliche Commits.\n" -#: remote.c:1989 +#: remote.c:1984 msgid " (use \"git pull\" to merge the remote branch into yours)\n" msgstr "" -" (benutzen Sie \"git pull\" um Ihren Branch mit dem Remote-Branch " +" (benutzen Sie \"git pull\", um Ihren Branch mit dem Remote-Branch " "zusammenzuführen)\n" #: run-command.c:80 @@ -1077,19 +1084,19 @@ msgstr "Öffnen von /dev/null fehlgeschlagen" msgid "dup2(%d,%d) failed" msgstr "dup2(%d,%d) fehlgeschlagen" -#: sequencer.c:206 builtin/merge.c:786 builtin/merge.c:899 -#: builtin/merge.c:1009 builtin/merge.c:1019 +#: sequencer.c:171 builtin/merge.c:782 builtin/merge.c:893 +#: builtin/merge.c:1003 builtin/merge.c:1013 #, c-format msgid "Could not open '%s' for writing" msgstr "Konnte '%s' nicht zum Schreiben öffnen." -#: sequencer.c:208 builtin/merge.c:343 builtin/merge.c:789 -#: builtin/merge.c:1011 builtin/merge.c:1024 +#: sequencer.c:173 builtin/merge.c:343 builtin/merge.c:785 +#: builtin/merge.c:1005 builtin/merge.c:1018 #, c-format msgid "Could not write to '%s'" msgstr "Konnte nicht nach '%s' schreiben." -#: sequencer.c:229 +#: sequencer.c:194 msgid "" "after resolving the conflicts, mark the corrected paths\n" "with 'git add <paths>' or 'git rm <paths>'" @@ -1097,7 +1104,7 @@ msgstr "" "nach Auflösung der Konflikte, markieren Sie die korrigierten Pfade\n" "mit 'git add <Pfade>' oder 'git rm <Pfade>'" -#: sequencer.c:232 +#: sequencer.c:197 msgid "" "after resolving the conflicts, mark the corrected paths\n" "with 'git add <paths>' or 'git rm <paths>'\n" @@ -1107,222 +1114,226 @@ msgstr "" "mit 'git add <Pfade>' oder 'git rm <Pfade>'und tragen Sie das Ergebnis mit\n" "'git commit' ein" -#: sequencer.c:245 sequencer.c:879 sequencer.c:962 +#: sequencer.c:210 sequencer.c:841 sequencer.c:924 #, c-format msgid "Could not write to %s" msgstr "Konnte nicht nach %s schreiben" -#: sequencer.c:248 +#: sequencer.c:213 #, c-format msgid "Error wrapping up %s" msgstr "Fehler bei Nachbereitung von %s" -#: sequencer.c:263 +#: sequencer.c:228 msgid "Your local changes would be overwritten by cherry-pick." msgstr "" "Ihre lokalen Änderungen würden von \"cherry-pick\" überschrieben werden." -#: sequencer.c:265 +#: sequencer.c:230 msgid "Your local changes would be overwritten by revert." msgstr "Ihre lokalen Änderungen würden von \"revert\" überschrieben werden." -#: sequencer.c:268 +#: sequencer.c:233 msgid "Commit your changes or stash them to proceed." msgstr "" -"Tragen Sie Ihre Änderungen ein oder benutzen Sie \"stash\" um fortzufahren." +"Tragen Sie Ihre Änderungen ein oder benutzen Sie \"stash\", um fortzufahren." + +#: sequencer.c:250 +msgid "Failed to lock HEAD during fast_forward_to" +msgstr "Fehler beim Sperren von HEAD während fast_forward_to" #. TRANSLATORS: %s will be "revert" or "cherry-pick" -#: sequencer.c:325 +#: sequencer.c:293 #, c-format msgid "%s: Unable to write new index file" msgstr "%s: Konnte neue Staging-Area-Datei nicht schreiben" -#: sequencer.c:356 +#: sequencer.c:324 msgid "Could not resolve HEAD commit\n" msgstr "Konnte Commit von HEAD nicht auflösen\n" -#: sequencer.c:378 +#: sequencer.c:344 msgid "Unable to update cache tree\n" msgstr "Konnte Cache-Verzeichnis nicht aktualisieren\n" -#: sequencer.c:430 +#: sequencer.c:391 #, c-format msgid "Could not parse commit %s\n" msgstr "Konnte Commit %s nicht parsen\n" -#: sequencer.c:435 +#: sequencer.c:396 #, c-format msgid "Could not parse parent commit %s\n" msgstr "Konnte Eltern-Commit %s nicht parsen\n" -#: sequencer.c:501 +#: sequencer.c:462 msgid "Your index file is unmerged." msgstr "Ihre Staging-Area-Datei ist nicht zusammengeführt." -#: sequencer.c:520 +#: sequencer.c:481 #, 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:528 +#: sequencer.c:489 #, c-format msgid "Commit %s does not have parent %d" msgstr "Commit %s hat keinen Elternteil %d" -#: sequencer.c:532 +#: sequencer.c:493 #, 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:545 +#: sequencer.c:506 #, c-format msgid "%s: cannot parse parent commit %s" msgstr "%s: kann Eltern-Commit %s nicht parsen" -#: sequencer.c:549 +#: sequencer.c:510 #, c-format msgid "Cannot get commit message for %s" msgstr "Kann keine Commit-Beschreibung für %s bekommen" -#: sequencer.c:635 +#: sequencer.c:596 #, c-format msgid "could not revert %s... %s" msgstr "Konnte \"revert\" nicht auf %s ausführen... %s" -#: sequencer.c:636 +#: sequencer.c:597 #, c-format msgid "could not apply %s... %s" msgstr "Konnte %s nicht anwenden... %s" -#: sequencer.c:672 +#: sequencer.c:633 msgid "empty commit set passed" msgstr "leere Menge von Commits übergeben" -#: sequencer.c:680 +#: sequencer.c:641 #, c-format msgid "git %s: failed to read the index" msgstr "git %s: Fehler beim Lesen der Staging-Area" -#: sequencer.c:685 +#: sequencer.c:645 #, c-format msgid "git %s: failed to refresh the index" msgstr "git %s: Fehler beim Aktualisieren der Staging-Area" -#: sequencer.c:743 +#: sequencer.c:705 #, c-format msgid "Cannot %s during a %s" msgstr "Kann %s nicht während eines %s durchführen" -#: sequencer.c:765 +#: sequencer.c:727 #, c-format msgid "Could not parse line %d." msgstr "Konnte Zeile %d nicht parsen." -#: sequencer.c:770 +#: sequencer.c:732 msgid "No commits parsed." msgstr "Keine Commits geparst." -#: sequencer.c:783 +#: sequencer.c:745 #, c-format msgid "Could not open %s" msgstr "Konnte %s nicht öffnen" -#: sequencer.c:787 +#: sequencer.c:749 #, c-format msgid "Could not read %s." msgstr "Konnte %s nicht lesen." -#: sequencer.c:794 +#: sequencer.c:756 #, c-format msgid "Unusable instruction sheet: %s" msgstr "Unbenutzbares Instruktionsblatt: %s" -#: sequencer.c:824 +#: sequencer.c:786 #, c-format msgid "Invalid key: %s" msgstr "Ungültiger Schlüssel: %s" -#: sequencer.c:827 +#: sequencer.c:789 #, c-format msgid "Invalid value for %s: %s" msgstr "Ungültiger Wert für %s: %s" -#: sequencer.c:839 +#: sequencer.c:801 #, c-format msgid "Malformed options sheet: %s" msgstr "Fehlerhaftes Optionsblatt: %s" -#: sequencer.c:860 +#: sequencer.c:822 msgid "a cherry-pick or revert is already in progress" msgstr "\"cherry-pick\" oder \"revert\" ist bereits im Gang" -#: sequencer.c:861 +#: sequencer.c:823 msgid "try \"git cherry-pick (--continue | --quit | --abort)\"" msgstr "versuchen Sie \"git cherry-pick (--continue | --quit | --abort)\"" -#: sequencer.c:865 +#: sequencer.c:827 #, c-format msgid "Could not create sequencer directory %s" msgstr "Konnte \"sequencer\"-Verzeichnis %s nicht erstellen" -#: sequencer.c:881 sequencer.c:966 +#: sequencer.c:843 sequencer.c:928 #, c-format msgid "Error wrapping up %s." msgstr "Fehler beim Einpacken von %s." -#: sequencer.c:900 sequencer.c:1036 +#: sequencer.c:862 sequencer.c:998 msgid "no cherry-pick or revert in progress" msgstr "kein \"cherry-pick\" oder \"revert\" im Gang" -#: sequencer.c:902 +#: sequencer.c:864 msgid "cannot resolve HEAD" msgstr "kann HEAD nicht auflösen" -#: sequencer.c:904 +#: sequencer.c:866 msgid "cannot abort from a branch yet to be born" msgstr "kann nicht abbrechen: bin auf einem Branch, der noch geboren wird" -#: sequencer.c:926 builtin/apply.c:4061 +#: sequencer.c:888 builtin/apply.c:4062 #, c-format msgid "cannot open %s: %s" msgstr "Kann %s nicht öffnen: %s" -#: sequencer.c:929 +#: sequencer.c:891 #, c-format msgid "cannot read %s: %s" msgstr "Kann %s nicht lesen: %s" -#: sequencer.c:930 +#: sequencer.c:892 msgid "unexpected end of file" msgstr "Unerwartetes Dateiende" -#: sequencer.c:936 +#: sequencer.c:898 #, 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:959 +#: sequencer.c:921 #, c-format msgid "Could not format %s." msgstr "Konnte %s nicht formatieren." -#: sequencer.c:1104 +#: sequencer.c:1066 #, c-format msgid "%s: can't cherry-pick a %s" msgstr "%s: %s kann nicht in \"cherry-pick\" benutzt werden" -#: sequencer.c:1107 +#: sequencer.c:1069 #, c-format msgid "%s: bad revision" msgstr "%s: ungültiger Commit" -#: sequencer.c:1141 +#: sequencer.c:1103 msgid "Can't revert as initial commit" msgstr "Kann nicht als allerersten Commit einen Revert ausführen." -#: sequencer.c:1142 +#: sequencer.c:1104 msgid "Can't cherry-pick into empty head" msgstr "Kann nicht als allerersten Commit einen Cherry-Pick ausführen." @@ -1351,21 +1362,21 @@ msgstr "" "indem Sie \"git config advice.objectNameWarning false\"\n" "ausführen." -#: sha1_name.c:1072 +#: sha1_name.c:1060 msgid "HEAD does not point to a branch" msgstr "HEAD zeigt auf keinen Branch" -#: sha1_name.c:1075 +#: sha1_name.c:1063 #, c-format msgid "No such branch: '%s'" msgstr "Kein solcher Branch '%s'" -#: sha1_name.c:1077 +#: sha1_name.c:1065 #, c-format msgid "No upstream configured for branch '%s'" msgstr "Kein Upstream-Branch für Branch '%s' konfiguriert." -#: sha1_name.c:1081 +#: sha1_name.c:1069 #, c-format msgid "Upstream branch '%s' not stored as a remote-tracking branch" msgstr "Upstream-Branch '%s' ist nicht als Remote-Tracking-Branch gespeichert" @@ -1395,17 +1406,17 @@ msgstr "Konnte Eintrag '%s' nicht aus .gitmodules entfernen" msgid "staging updated .gitmodules failed" msgstr "Konnte aktualisierte .gitmodules-Datei nicht zum Commit vormerken" -#: submodule.c:1121 builtin/init-db.c:363 +#: submodule.c:1118 builtin/init-db.c:363 #, c-format msgid "Could not create git link %s" msgstr "Konnte git-Verweis %s nicht erstellen" -#: submodule.c:1132 +#: submodule.c:1129 #, c-format msgid "Could not set core.worktree in %s" msgstr "Konnte core.worktree in '%s' nicht setzen." -#: unpack-trees.c:206 +#: unpack-trees.c:202 msgid "Checking out files" msgstr "Checke Dateien aus" @@ -1438,22 +1449,22 @@ msgstr "ungültige Portnummer" msgid "invalid '..' path segment" msgstr "ungültiges '..' Pfadsegment" -#: wrapper.c:422 +#: wrapper.c:460 #, c-format msgid "unable to access '%s': %s" msgstr "konnte nicht auf '%s' zugreifen: %s" -#: wrapper.c:443 +#: wrapper.c:481 #, c-format msgid "unable to access '%s'" msgstr "konnte nicht auf '%s' zugreifen" -#: wrapper.c:454 +#: wrapper.c:492 #, c-format msgid "unable to look up current user in the passwd file: %s" msgstr "konnte aktuellen Benutzer nicht in Passwort-Datei finden: %s" -#: wrapper.c:455 +#: wrapper.c:493 msgid "no such user" msgstr "kein solcher Benutzer" @@ -1477,18 +1488,18 @@ msgstr "" #: wt-status.c:183 msgid " (use \"git add <file>...\" to mark resolution)" msgstr "" -" (benutzen Sie \"git add/rm <Datei>...\" um die Auflösung zu markieren)" +" (benutzen Sie \"git add/rm <Datei>...\", um die Auflösung zu markieren)" #: wt-status.c:185 wt-status.c:189 msgid " (use \"git add/rm <file>...\" as appropriate to mark resolution)" msgstr "" -" (benutzen Sie \"git add/rm <Datei>...\" um die Auflösung entsprechend zu " +" (benutzen Sie \"git add/rm <Datei>...\", um die Auflösung entsprechend zu " "markieren)" #: wt-status.c:187 msgid " (use \"git rm <file>...\" to mark resolution)" msgstr "" -" (benutzen Sie \"git add/rm <Datei>...\" um die Auflösung zu markieren)" +" (benutzen Sie \"git add/rm <Datei>...\", um die Auflösung zu markieren)" #: wt-status.c:198 msgid "Changes to be committed:" @@ -1501,20 +1512,20 @@ msgstr "Änderungen, die nicht zum Commit vorgemerkt sind:" #: wt-status.c:220 msgid " (use \"git add <file>...\" to update what will be committed)" msgstr "" -" (benutzen Sie \"git add <Datei>...\" um die Änderungen zum Commit " +" (benutzen Sie \"git add <Datei>...\", um die Änderungen zum Commit " "vorzumerken)" #: wt-status.c:222 msgid " (use \"git add/rm <file>...\" to update what will be committed)" msgstr "" -" (benutzen Sie \"git add/rm <Datei>...\" um die Änderungen zum Commit " +" (benutzen Sie \"git add/rm <Datei>...\", um die Änderungen zum Commit " "vorzumerken)" #: wt-status.c:223 msgid "" " (use \"git checkout -- <file>...\" to discard changes in working directory)" msgstr "" -" (benutzen Sie \"git checkout -- <Datei>...\" um die Änderungen im " +" (benutzen Sie \"git checkout -- <Datei>...\", um die Änderungen im " "Arbeitsverzeichnis zu verwerfen)" #: wt-status.c:225 @@ -1527,7 +1538,7 @@ msgstr "" #, c-format msgid " (use \"git %s <file>...\" to include in what will be committed)" msgstr "" -" (benutzen Sie \"git %s <Datei>...\" um die Änderungen zum Commit " +" (benutzen Sie \"git %s <Datei>...\", um die Änderungen zum Commit " "vorzumerken)" #: wt-status.c:252 @@ -1612,15 +1623,15 @@ msgstr "unbeobachteter Inhalt, " msgid "bug: unhandled diff status %c" msgstr "Fehler: unbehandelter Differenz-Status %c" -#: wt-status.c:765 +#: wt-status.c:764 msgid "Submodules changed but not updated:" msgstr "Submodule geändert, aber nicht aktualisiert:" -#: wt-status.c:767 +#: wt-status.c:766 msgid "Submodule changes to be committed:" msgstr "Änderungen in Submodul zum Committen:" -#: wt-status.c:846 +#: wt-status.c:845 msgid "" "Do not touch the line above.\n" "Everything below will be removed." @@ -1628,75 +1639,75 @@ msgstr "" "Ändern Sie nicht die obige Zeile.\n" "Alles unterhalb von ihr wird entfernt." -#: wt-status.c:937 +#: wt-status.c:936 msgid "You have unmerged paths." msgstr "Sie haben nicht zusammengeführte Pfade." -#: wt-status.c:940 +#: wt-status.c:939 msgid " (fix conflicts and run \"git commit\")" msgstr " (beheben Sie die Konflikte und führen Sie \"git commit\" aus)" -#: wt-status.c:943 +#: wt-status.c:942 msgid "All conflicts fixed but you are still merging." msgstr "Alle Konflikte sind behoben, aber Sie sind immer noch beim Merge." -#: wt-status.c:946 +#: wt-status.c:945 msgid " (use \"git commit\" to conclude merge)" -msgstr " (benutzen Sie \"git commit\" um den Merge abzuschließen)" +msgstr " (benutzen Sie \"git commit\", um den Merge abzuschließen)" -#: wt-status.c:956 +#: wt-status.c:955 msgid "You are in the middle of an am session." msgstr "Eine \"am\"-Sitzung ist im Gange." -#: wt-status.c:959 +#: wt-status.c:958 msgid "The current patch is empty." msgstr "Der aktuelle Patch ist leer." -#: wt-status.c:963 +#: wt-status.c:962 msgid " (fix conflicts and then run \"git am --continue\")" msgstr "" " (beheben Sie die Konflikte und führen Sie dann \"git am --continue\" aus)" -#: wt-status.c:965 +#: wt-status.c:964 msgid " (use \"git am --skip\" to skip this patch)" -msgstr " (benutzen Sie \"git am --skip\" um diesen Patch auszulassen)" +msgstr " (benutzen Sie \"git am --skip\", um diesen Patch auszulassen)" -#: wt-status.c:967 +#: wt-status.c:966 msgid " (use \"git am --abort\" to restore the original branch)" msgstr "" -" (benutzen Sie \"git am --abort\" um den ursprünglichen Branch " +" (benutzen Sie \"git am --abort\", um den ursprünglichen Branch " "wiederherzustellen)" -#: wt-status.c:1027 wt-status.c:1044 +#: wt-status.c:1026 wt-status.c:1043 #, c-format msgid "You are currently rebasing branch '%s' on '%s'." msgstr "Sie sind gerade beim Rebase von Branch '%s' auf '%s'." -#: wt-status.c:1032 wt-status.c:1049 +#: wt-status.c:1031 wt-status.c:1048 msgid "You are currently rebasing." msgstr "Sie sind gerade beim Rebase." -#: wt-status.c:1035 +#: wt-status.c:1034 msgid " (fix conflicts and then run \"git rebase --continue\")" msgstr "" " (beheben Sie die Konflikte und führen Sie dann \"git rebase --continue\" " "aus)" -#: wt-status.c:1037 +#: wt-status.c:1036 msgid " (use \"git rebase --skip\" to skip this patch)" -msgstr " (benutzen Sie \"git rebase --skip\" um diesen Patch auszulassen)" +msgstr " (benutzen Sie \"git rebase --skip\", um diesen Patch auszulassen)" -#: wt-status.c:1039 +#: wt-status.c:1038 msgid " (use \"git rebase --abort\" to check out the original branch)" msgstr "" -" (benutzen Sie \"git rebase --abort\" um den ursprünglichen Branch " +" (benutzen Sie \"git rebase --abort\", um den ursprünglichen Branch " "auszuchecken)" -#: wt-status.c:1052 +#: wt-status.c:1051 msgid " (all conflicts fixed: run \"git rebase --continue\")" msgstr " (alle Konflikte behoben: führen Sie \"git rebase --continue\" aus)" -#: wt-status.c:1056 +#: wt-status.c:1055 #, c-format msgid "" "You are currently splitting a commit while rebasing branch '%s' on '%s'." @@ -1704,129 +1715,129 @@ msgstr "" "Sie teilen gerade einen Commit auf, während ein Rebase von Branch '%s' auf " "'%s' im Gange ist." -#: wt-status.c:1061 +#: wt-status.c:1060 msgid "You are currently splitting a commit during a rebase." msgstr "Sie teilen gerade einen Commit während eines Rebase auf." -#: wt-status.c:1064 +#: wt-status.c:1063 msgid " (Once your working directory is clean, run \"git rebase --continue\")" msgstr "" " (Sobald Ihr Arbeitsverzeichnis unverändert ist, führen Sie \"git rebase --" "continue\" aus)" -#: wt-status.c:1068 +#: wt-status.c:1067 #, c-format msgid "You are currently editing a commit while rebasing branch '%s' on '%s'." msgstr "" "Sie editieren gerade einen Commit während eines Rebase von Branch '%s' auf " "'%s'." -#: wt-status.c:1073 +#: wt-status.c:1072 msgid "You are currently editing a commit during a rebase." msgstr "Sie editieren gerade einen Commit während eines Rebase." -#: wt-status.c:1076 +#: wt-status.c:1075 msgid " (use \"git commit --amend\" to amend the current commit)" msgstr "" -" (benutzen Sie \"git commit --amend\" um den aktuellen Commit nachzubessern)" +" (benutzen Sie \"git commit --amend\", um den aktuellen Commit nachzubessern)" -#: wt-status.c:1078 +#: wt-status.c:1077 msgid "" " (use \"git rebase --continue\" once you are satisfied with your changes)" msgstr "" " (benutzen Sie \"git rebase --continue\" sobald Ihre Änderungen " "abgeschlossen sind)" -#: wt-status.c:1088 +#: wt-status.c:1087 #, c-format msgid "You are currently cherry-picking commit %s." msgstr "Sie führen gerade \"cherry-pick\" von Commit %s aus." -#: wt-status.c:1093 +#: wt-status.c:1092 msgid " (fix conflicts and run \"git cherry-pick --continue\")" msgstr "" " (beheben Sie die Konflikte und führen Sie dann \"git cherry-pick --continue" "\" aus)" -#: wt-status.c:1096 +#: wt-status.c:1095 msgid " (all conflicts fixed: run \"git cherry-pick --continue\")" msgstr "" " (alle Konflikte behoben: führen Sie \"git cherry-pick --continue\" aus)" -#: wt-status.c:1098 +#: wt-status.c:1097 msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)" msgstr "" -" (benutzen Sie \"git cherry-pick --abort\" um die Cherry-Pick-Operation " +" (benutzen Sie \"git cherry-pick --abort\", um die Cherry-Pick-Operation " "abzubrechen)" -#: wt-status.c:1107 +#: wt-status.c:1106 #, c-format msgid "You are currently reverting commit %s." msgstr "Sie sind gerade an einem Revert von Commit '%s'." -#: wt-status.c:1112 +#: wt-status.c:1111 msgid " (fix conflicts and run \"git revert --continue\")" msgstr "" " (beheben Sie die Konflikte und führen Sie dann \"git revert --continue\" " "aus)" -#: wt-status.c:1115 +#: wt-status.c:1114 msgid " (all conflicts fixed: run \"git revert --continue\")" msgstr " (alle Konflikte behoben: führen Sie \"git revert --continue\" aus)" -#: wt-status.c:1117 +#: wt-status.c:1116 msgid " (use \"git revert --abort\" to cancel the revert operation)" msgstr "" -" (benutzen Sie \"git revert --abort\" um die Revert-Operation abzubrechen)" +" (benutzen Sie \"git revert --abort\", um die Revert-Operation abzubrechen)" -#: wt-status.c:1128 +#: wt-status.c:1127 #, c-format msgid "You are currently bisecting, started from branch '%s'." msgstr "Sie sind gerade bei einer binären Suche, gestartet von Branch '%s'." -#: wt-status.c:1132 +#: wt-status.c:1131 msgid "You are currently bisecting." msgstr "Sie sind gerade bei einer binären Suche." -#: wt-status.c:1135 +#: wt-status.c:1134 msgid " (use \"git bisect reset\" to get back to the original branch)" msgstr "" -" (benutzen Sie \"git bisect reset\" um zum ursprünglichen Branch " +" (benutzen Sie \"git bisect reset\", um zum ursprünglichen Branch " "zurückzukehren)" -#: wt-status.c:1310 +#: wt-status.c:1309 msgid "On branch " msgstr "Auf Branch " -#: wt-status.c:1317 +#: wt-status.c:1316 msgid "rebase in progress; onto " msgstr "Rebase im Gange; auf " -#: wt-status.c:1324 +#: wt-status.c:1323 msgid "HEAD detached at " msgstr "HEAD losgelöst bei " -#: wt-status.c:1326 +#: wt-status.c:1325 msgid "HEAD detached from " msgstr "HEAD losgelöst von " -#: wt-status.c:1329 +#: wt-status.c:1328 msgid "Not currently on any branch." msgstr "Im Moment auf keinem Branch." -#: wt-status.c:1346 +#: wt-status.c:1345 msgid "Initial commit" msgstr "Initialer Commit" -#: wt-status.c:1360 +#: wt-status.c:1359 msgid "Untracked files" msgstr "Unbeobachtete Dateien" -#: wt-status.c:1362 +#: wt-status.c:1361 msgid "Ignored files" msgstr "Ignorierte Dateien" -#: wt-status.c:1366 +#: wt-status.c:1365 #, c-format msgid "" "It took %.2f seconds to enumerate untracked files. 'status -uno'\n" @@ -1837,32 +1848,32 @@ msgstr "" "'status -uno' könnte das beschleunigen, aber Sie müssen darauf achten,\n" "neue Dateien selbstständig hinzuzufügen (siehe 'git help status')." -#: wt-status.c:1372 +#: wt-status.c:1371 #, c-format msgid "Untracked files not listed%s" msgstr "Unbeobachtete Dateien nicht aufgelistet%s" -#: wt-status.c:1374 +#: wt-status.c:1373 msgid " (use -u option to show untracked files)" -msgstr " (benutzen Sie die Option -u um unbeobachteten Dateien anzuzeigen)" +msgstr " (benutzen Sie die Option -u, um unbeobachteten Dateien anzuzeigen)" -#: wt-status.c:1380 +#: wt-status.c:1379 msgid "No changes" msgstr "Keine Änderungen" -#: wt-status.c:1385 +#: wt-status.c:1384 #, c-format msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n" msgstr "" "keine Änderungen zum Commit vorgemerkt (benutzen Sie \"git add\" und/oder " "\"git commit -a\")\n" -#: wt-status.c:1388 +#: wt-status.c:1387 #, c-format msgid "no changes added to commit\n" msgstr "keine Änderungen zum Commit vorgemerkt\n" -#: wt-status.c:1391 +#: wt-status.c:1390 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " @@ -1871,48 +1882,48 @@ msgstr "" "nichts zum Commit vorgemerkt, aber es gibt unbeobachtete Dateien (benutzen " "Sie \"git add\" zum Beobachten)\n" -#: wt-status.c:1394 +#: wt-status.c:1393 #, c-format msgid "nothing added to commit but untracked files present\n" msgstr "nichts zum Commit vorgemerkt, aber es gibt unbeobachtete Dateien\n" -#: wt-status.c:1397 +#: wt-status.c:1396 #, c-format msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "" "nichts zu committen (Erstellen/Kopieren Sie Dateien und benutzen Sie \"git " "add\" zum Beobachten)\n" -#: wt-status.c:1400 wt-status.c:1405 +#: wt-status.c:1399 wt-status.c:1404 #, c-format msgid "nothing to commit\n" msgstr "nichts zu committen\n" -#: wt-status.c:1403 +#: wt-status.c:1402 #, c-format msgid "nothing to commit (use -u to show untracked files)\n" msgstr "" "nichts zu committen (benutzen Sie die Option -u, um unbeobachtete Dateien " "anzuzeigen)\n" -#: wt-status.c:1407 +#: wt-status.c:1406 #, c-format msgid "nothing to commit, working directory clean\n" msgstr "nichts zu committen, Arbeitsverzeichnis unverändert\n" -#: wt-status.c:1516 +#: wt-status.c:1515 msgid "HEAD (no branch)" msgstr "HEAD (kein Branch)" -#: wt-status.c:1522 +#: wt-status.c:1521 msgid "Initial commit on " msgstr "Initialer Commit auf " -#: wt-status.c:1554 +#: wt-status.c:1553 msgid "gone" msgstr "entfernt" -#: wt-status.c:1556 wt-status.c:1564 +#: wt-status.c:1555 wt-status.c:1563 msgid "behind " msgstr "hinterher " @@ -1944,7 +1955,7 @@ msgid "Unstaged changes after refreshing the index:" msgstr "" "Nicht zum Commit vorgemerkte Änderungen nach Aktualisierung der Staging-Area:" -#: builtin/add.c:193 +#: builtin/add.c:193 builtin/rev-parse.c:781 msgid "Could not read the index" msgstr "Konnte die Staging-Area nicht lesen" @@ -1977,15 +1988,15 @@ msgstr "" "Die folgenden Pfade werden durch eine Ihrer \".gitignore\" Dateien " "ignoriert:\n" -#: builtin/add.c:248 builtin/clean.c:876 builtin/fetch.c:93 builtin/mv.c:70 -#: builtin/prune-packed.c:77 builtin/push.c:489 builtin/remote.c:1344 +#: builtin/add.c:248 builtin/clean.c:875 builtin/fetch.c:108 builtin/mv.c:70 +#: builtin/prune-packed.c:77 builtin/push.c:488 builtin/remote.c:1367 #: builtin/rm.c:269 msgid "dry run" msgstr "Probelauf" -#: builtin/add.c:249 builtin/apply.c:4410 builtin/check-ignore.c:19 -#: builtin/commit.c:1256 builtin/count-objects.c:95 builtin/fsck.c:612 -#: builtin/log.c:1592 builtin/mv.c:69 builtin/read-tree.c:113 +#: builtin/add.c:249 builtin/apply.c:4411 builtin/check-ignore.c:19 +#: builtin/commit.c:1328 builtin/count-objects.c:95 builtin/fsck.c:606 +#: builtin/log.c:1613 builtin/mv.c:69 builtin/read-tree.c:113 msgid "be verbose" msgstr "erweiterte Ausgaben" @@ -1993,7 +2004,7 @@ msgstr "erweiterte Ausgaben" msgid "interactive picking" msgstr "interaktives Auswählen" -#: builtin/add.c:252 builtin/checkout.c:1108 builtin/reset.c:283 +#: builtin/add.c:252 builtin/checkout.c:1102 builtin/reset.c:285 msgid "select hunks interactively" msgstr "Blöcke interaktiv auswählen" @@ -2049,31 +2060,31 @@ msgstr "keine Dateien hinzugefügt" msgid "adding files failed" msgstr "Hinzufügen von Dateien fehlgeschlagen" -#: builtin/add.c:330 +#: builtin/add.c:329 msgid "-A and -u are mutually incompatible" msgstr "Die Optionen -A und -u sind zueinander inkompatibel." -#: builtin/add.c:337 +#: builtin/add.c:336 msgid "Option --ignore-missing can only be used together with --dry-run" msgstr "" "Die Option --ignore-missing kann nur zusammen mit --dry-run verwendet werden." -#: builtin/add.c:358 +#: builtin/add.c:357 #, c-format msgid "Nothing specified, nothing added.\n" msgstr "Nichts spezifiziert, nichts hinzugefügt.\n" -#: builtin/add.c:359 +#: builtin/add.c:358 #, c-format msgid "Maybe you wanted to say 'git add .'?\n" msgstr "Wollten Sie vielleicht 'git add .' sagen?\n" -#: builtin/add.c:364 builtin/check-ignore.c:172 builtin/clean.c:920 -#: builtin/commit.c:320 builtin/mv.c:90 builtin/reset.c:234 builtin/rm.c:299 +#: builtin/add.c:363 builtin/check-ignore.c:172 builtin/clean.c:919 +#: builtin/commit.c:319 builtin/mv.c:90 builtin/reset.c:234 builtin/rm.c:299 msgid "index file corrupt" msgstr "Staging-Area-Datei beschädigt" -#: builtin/add.c:448 builtin/apply.c:4506 builtin/mv.c:280 builtin/rm.c:432 +#: builtin/add.c:446 builtin/apply.c:4506 builtin/mv.c:280 builtin/rm.c:431 msgid "Unable to write new index file" msgstr "Konnte neue Staging-Area-Datei nicht schreiben." @@ -2091,41 +2102,41 @@ msgstr "nicht erkannte Whitespace-Option: '%s'" msgid "unrecognized whitespace ignore option '%s'" msgstr "nicht erkannte Option zum Ignorieren von Whitespace: '%s'" -#: builtin/apply.c:823 +#: builtin/apply.c:825 #, c-format msgid "Cannot prepare timestamp regexp %s" msgstr "Kann regulären Ausdruck für Zeitstempel %s nicht verarbeiten" -#: builtin/apply.c:832 +#: builtin/apply.c:834 #, c-format msgid "regexec returned %d for input: %s" msgstr "Ausführung des regulären Ausdrucks gab %d zurück. Eingabe: %s" -#: builtin/apply.c:913 +#: builtin/apply.c:915 #, c-format msgid "unable to find filename in patch at line %d" msgstr "Konnte keinen Dateinamen in Zeile %d des Patches finden." -#: builtin/apply.c:945 +#: builtin/apply.c:947 #, c-format msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d" msgstr "" "git apply: ungültiges 'git-diff' - erwartete /dev/null, erhielt %s in Zeile " "%d" -#: builtin/apply.c:949 +#: builtin/apply.c:951 #, c-format msgid "git apply: bad git-diff - inconsistent new filename on line %d" msgstr "" "git apply: ungültiges 'git-diff' - Inkonsistenter neuer Dateiname in Zeile %d" -#: builtin/apply.c:950 +#: builtin/apply.c:952 #, c-format msgid "git apply: bad git-diff - inconsistent old filename on line %d" msgstr "" "git apply: ungültiges 'git-diff' - Inkonsistenter alter Dateiname in Zeile %d" -#: builtin/apply.c:957 +#: builtin/apply.c:959 #, c-format msgid "git apply: bad git-diff - expected /dev/null on line %d" msgstr "git apply: ungültiges 'git-diff' - erwartete /dev/null in Zeile %d" @@ -2224,7 +2235,7 @@ msgstr[1] "" #: builtin/apply.c:2818 #, c-format msgid "Context reduced to (%ld/%ld) to apply fragment at %d" -msgstr "Kontext reduziert zu (%ld/%ld) um Patch-Bereich bei %d anzuwenden" +msgstr "Kontext reduziert zu (%ld/%ld), um Patch-Bereich bei %d anzuwenden" #: builtin/apply.c:2824 #, c-format @@ -2240,18 +2251,18 @@ msgstr "" msgid "missing binary patch data for '%s'" msgstr "keine Daten in Binär-Patch für '%s'" -#: builtin/apply.c:2946 +#: builtin/apply.c:2944 #, c-format msgid "binary patch does not apply to '%s'" msgstr "Konnte Binär-Patch nicht auf '%s' anwenden" -#: builtin/apply.c:2952 +#: builtin/apply.c:2950 #, c-format msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)" msgstr "" "Binär-Patch für '%s' erzeugt falsches Ergebnis (erwartete %s, bekam %s)" -#: builtin/apply.c:2973 +#: builtin/apply.c:2971 #, c-format msgid "patch failed: %s:%ld" msgstr "Anwendung des Patches fehlgeschlagen: %s:%ld" @@ -2340,230 +2351,230 @@ msgstr "make_cache_entry für Pfad '%s' fehlgeschlagen" msgid "unable to remove %s from index" msgstr "konnte %s nicht aus der Staging-Area entfernen" -#: builtin/apply.c:3851 +#: builtin/apply.c:3852 #, c-format msgid "corrupt patch for submodule %s" msgstr "fehlerhafter Patch für Submodul %s" -#: builtin/apply.c:3855 +#: builtin/apply.c:3856 #, c-format msgid "unable to stat newly created file '%s'" msgstr "konnte neu erstellte Datei '%s' nicht lesen" -#: builtin/apply.c:3860 +#: builtin/apply.c:3861 #, c-format msgid "unable to create backing store for newly created file %s" msgstr "kann internen Speicher für eben erstellte Datei %s nicht erzeugen" -#: builtin/apply.c:3863 builtin/apply.c:3971 +#: builtin/apply.c:3864 builtin/apply.c:3972 #, c-format msgid "unable to add cache entry for %s" msgstr "kann für %s keinen Eintrag in den Zwischenspeicher hinzufügen" -#: builtin/apply.c:3896 +#: builtin/apply.c:3897 #, c-format msgid "closing file '%s'" msgstr "schließe Datei '%s'" -#: builtin/apply.c:3945 +#: builtin/apply.c:3946 #, c-format msgid "unable to write file '%s' mode %o" msgstr "konnte Datei '%s' mit Modus %o nicht schreiben" -#: builtin/apply.c:4032 +#: builtin/apply.c:4033 #, c-format msgid "Applied patch %s cleanly." msgstr "Patch %s sauber angewendet" -#: builtin/apply.c:4040 +#: builtin/apply.c:4041 msgid "internal error" msgstr "interner Fehler" -#: builtin/apply.c:4043 +#: builtin/apply.c:4044 #, c-format msgid "Applying patch %%s with %d reject..." msgid_plural "Applying patch %%s with %d rejects..." msgstr[0] "Wende Patch %%s mit %d Zurückweisung an..." msgstr[1] "Wende Patch %%s mit %d Zurückweisungen an..." -#: builtin/apply.c:4053 +#: builtin/apply.c:4054 #, c-format msgid "truncating .rej filename to %.*s.rej" msgstr "Verkürze Name von .rej Datei zu %.*s.rej" -#: builtin/apply.c:4074 +#: builtin/apply.c:4075 #, c-format msgid "Hunk #%d applied cleanly." msgstr "Patch-Bereich #%d sauber angewendet." -#: builtin/apply.c:4077 +#: builtin/apply.c:4078 #, c-format msgid "Rejected hunk #%d." msgstr "Patch-Block #%d zurückgewiesen." -#: builtin/apply.c:4227 +#: builtin/apply.c:4228 msgid "unrecognized input" msgstr "nicht erkannte Eingabe" -#: builtin/apply.c:4238 +#: builtin/apply.c:4239 msgid "unable to read index file" msgstr "Konnte Staging-Area-Datei nicht lesen" -#: builtin/apply.c:4357 builtin/apply.c:4360 builtin/clone.c:90 -#: builtin/fetch.c:78 +#: builtin/apply.c:4358 builtin/apply.c:4361 builtin/clone.c:90 +#: builtin/fetch.c:93 msgid "path" msgstr "Pfad" -#: builtin/apply.c:4358 +#: builtin/apply.c:4359 msgid "don't apply changes matching the given path" msgstr "wendet keine Änderungen im angegebenen Pfad an" -#: builtin/apply.c:4361 +#: builtin/apply.c:4362 msgid "apply changes matching the given path" msgstr "wendet Änderungen nur im angegebenen Pfad an" -#: builtin/apply.c:4363 +#: builtin/apply.c:4364 msgid "num" msgstr "Anzahl" -#: builtin/apply.c:4364 +#: builtin/apply.c:4365 msgid "remove <num> leading slashes from traditional diff paths" msgstr "" "entfernt <Anzahl> vorangestellte Schrägstriche von herkömmlichen " "Differenzpfaden" -#: builtin/apply.c:4367 +#: builtin/apply.c:4368 msgid "ignore additions made by the patch" msgstr "ignoriert hinzugefügte Zeilen des Patches" -#: builtin/apply.c:4369 +#: builtin/apply.c:4370 msgid "instead of applying the patch, output diffstat for the input" msgstr "" "anstatt der Anwendung des Patches, wird der \"diffstat\" für die Eingabe " "ausgegeben" -#: builtin/apply.c:4373 +#: builtin/apply.c:4374 msgid "show number of added and deleted lines in decimal notation" msgstr "" "zeigt die Anzahl von hinzugefügten/entfernten Zeilen in Dezimalnotation" -#: builtin/apply.c:4375 +#: builtin/apply.c:4376 msgid "instead of applying the patch, output a summary for the input" msgstr "" "anstatt der Anwendung des Patches, wird eine Zusammenfassung für die Eingabe " "ausgegeben" -#: builtin/apply.c:4377 +#: builtin/apply.c:4378 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:4379 +#: builtin/apply.c:4380 msgid "make sure the patch is applicable to the current index" msgstr "" "stellt sicher, dass der Patch in der aktuellen Staging-Area angewendet " "werden kann" -#: builtin/apply.c:4381 +#: builtin/apply.c:4382 msgid "apply a patch without touching the working tree" msgstr "" "wendet einen Patch an, ohne Änderungen im Arbeitsverzeichnis vorzunehmen" -#: builtin/apply.c:4383 +#: builtin/apply.c:4384 msgid "also apply the patch (use with --stat/--summary/--check)" msgstr "wendet den Patch an (Benutzung mit --stat/--summary/--check)" -#: builtin/apply.c:4385 +#: builtin/apply.c:4386 msgid "attempt three-way merge if a patch does not apply" msgstr "versucht 3-Wege-Merge, wenn der Patch nicht angewendet werden konnte" -#: builtin/apply.c:4387 +#: builtin/apply.c:4388 msgid "build a temporary index based on embedded index information" msgstr "" "erstellt eine temporäre Staging-Area basierend auf den integrierten Staging-" "Area-Informationen" -#: builtin/apply.c:4389 builtin/checkout-index.c:197 builtin/ls-files.c:455 +#: builtin/apply.c:4390 builtin/checkout-index.c:198 builtin/ls-files.c:455 msgid "paths are separated with NUL character" msgstr "Pfade sind getrennt durch NUL Zeichen" -#: builtin/apply.c:4392 +#: builtin/apply.c:4393 msgid "ensure at least <n> lines of context match" msgstr "stellt sicher, dass mindestens <n> Zeilen des Kontextes übereinstimmen" -#: builtin/apply.c:4393 +#: builtin/apply.c:4394 msgid "action" msgstr "Aktion" -#: builtin/apply.c:4394 +#: builtin/apply.c:4395 msgid "detect new or modified lines that have whitespace errors" msgstr "ermittelt neue oder geänderte Zeilen die Whitespace-Fehler haben" -#: builtin/apply.c:4397 builtin/apply.c:4400 +#: builtin/apply.c:4398 builtin/apply.c:4401 msgid "ignore changes in whitespace when finding context" msgstr "ignoriert Änderungen im Whitespace bei der Suche des Kontextes" -#: builtin/apply.c:4403 +#: builtin/apply.c:4404 msgid "apply the patch in reverse" msgstr "wendet den Patch in umgekehrter Reihenfolge an" -#: builtin/apply.c:4405 +#: builtin/apply.c:4406 msgid "don't expect at least one line of context" msgstr "erwartet keinen Kontext" -#: builtin/apply.c:4407 +#: builtin/apply.c:4408 msgid "leave the rejected hunks in corresponding *.rej files" msgstr "" "hinterlässt zurückgewiesene Patch-Blöcke in entsprechenden *.rej Dateien" -#: builtin/apply.c:4409 +#: builtin/apply.c:4410 msgid "allow overlapping hunks" msgstr "erlaubt sich überlappende Patch-Blöcke" -#: builtin/apply.c:4412 +#: builtin/apply.c:4413 msgid "tolerate incorrectly detected missing new-line at the end of file" msgstr "toleriert fehlerhaft erkannten fehlenden Zeilenumbruch am Dateiende" -#: builtin/apply.c:4415 +#: builtin/apply.c:4416 msgid "do not trust the line counts in the hunk headers" msgstr "vertraut nicht den Zeilennummern im Kopf des Patch-Blocks" -#: builtin/apply.c:4417 +#: builtin/apply.c:4418 msgid "root" msgstr "Wurzelverzeichnis" -#: builtin/apply.c:4418 +#: builtin/apply.c:4419 msgid "prepend <root> to all filenames" msgstr "stellt <Wurzelverzeichnis> vor alle Dateinamen" -#: builtin/apply.c:4440 +#: builtin/apply.c:4441 msgid "--3way outside a repository" msgstr "" "Die Option --3way kann nicht außerhalb eines Repositories verwendet werden." -#: builtin/apply.c:4448 +#: builtin/apply.c:4449 msgid "--index outside a repository" msgstr "" "Die Option --index kann nicht außerhalb eines Repositories verwendet werden." -#: builtin/apply.c:4451 +#: builtin/apply.c:4452 msgid "--cached outside a repository" msgstr "" "Die Option --cached kann nicht außerhalb eines Repositories verwendet werden." -#: builtin/apply.c:4467 +#: builtin/apply.c:4468 #, c-format msgid "can't open patch '%s'" msgstr "kann Patch '%s' nicht öffnen" -#: builtin/apply.c:4481 +#: builtin/apply.c:4482 #, 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:4487 builtin/apply.c:4497 +#: builtin/apply.c:4488 builtin/apply.c:4498 #, c-format msgid "%d line adds whitespace errors." msgid_plural "%d lines add whitespace errors." @@ -2617,107 +2628,117 @@ msgstr "führt 'git bisect next' aus" msgid "update BISECT_HEAD instead of checking out the current commit" msgstr "aktualisiert BISECT_HEAD, anstatt den aktuellen Commit auszuchecken" -#: builtin/blame.c:27 +#: builtin/blame.c:30 msgid "git blame [options] [rev-opts] [rev] [--] file" msgstr "git blame [Optionen] [rev-opts] [rev] [--] Datei" -#: builtin/blame.c:32 +#: builtin/blame.c:35 msgid "[rev-opts] are documented in git-rev-list(1)" msgstr "[rev-opts] sind dokumentiert in git-rev-list(1)" -#: builtin/blame.c:2242 +#: builtin/blame.c:2501 msgid "Show blame entries as we find them, incrementally" msgstr "Zeigt \"blame\"-Einträge schrittweise, während wir sie generieren" -#: builtin/blame.c:2243 +#: builtin/blame.c:2502 msgid "Show blank SHA-1 for boundary commits (Default: off)" msgstr "Zeigt leere SHA-1 für Grenz-Commits (Standard: aus)" -#: builtin/blame.c:2244 +#: builtin/blame.c:2503 msgid "Do not treat root commits as boundaries (Default: off)" msgstr "Behandelt Ursprungs-Commit nicht als Grenzen (Standard: aus)" -#: builtin/blame.c:2245 +#: builtin/blame.c:2504 msgid "Show work cost statistics" msgstr "Zeigt Statistiken zum Arbeitsaufwand" -#: builtin/blame.c:2246 +#: builtin/blame.c:2505 msgid "Show output score for blame entries" msgstr "Zeigt Ausgabebewertung für \"blame\"-Einträge" -#: builtin/blame.c:2247 +#: builtin/blame.c:2506 msgid "Show original filename (Default: auto)" msgstr "Zeigt ursprünglichen Dateinamen (Standard: auto)" -#: builtin/blame.c:2248 +#: builtin/blame.c:2507 msgid "Show original linenumber (Default: off)" msgstr "Zeigt ursprüngliche Zeilennummer (Standard: aus)" -#: builtin/blame.c:2249 +#: builtin/blame.c:2508 msgid "Show in a format designed for machine consumption" msgstr "Anzeige in einem Format für maschinelle Auswertung" -#: builtin/blame.c:2250 +#: builtin/blame.c:2509 msgid "Show porcelain format with per-line commit information" msgstr "" "Anzeige in Format für Fremdprogramme mit Commit-Informationen pro Zeile" -#: builtin/blame.c:2251 +#: builtin/blame.c:2510 msgid "Use the same output mode as git-annotate (Default: off)" msgstr "Benutzt den gleichen Ausgabemodus wie \"git-annotate\" (Standard: aus)" -#: builtin/blame.c:2252 +#: builtin/blame.c:2511 msgid "Show raw timestamp (Default: off)" msgstr "Zeigt unbearbeiteten Zeitstempel (Standard: aus)" -#: builtin/blame.c:2253 +#: builtin/blame.c:2512 msgid "Show long commit SHA1 (Default: off)" msgstr "Zeigt langen Commit-SHA1 (Standard: aus)" -#: builtin/blame.c:2254 +#: builtin/blame.c:2513 msgid "Suppress author name and timestamp (Default: off)" msgstr "Unterdrückt den Namen des Autors und den Zeitstempel (Standard: aus)" -#: builtin/blame.c:2255 +#: builtin/blame.c:2514 msgid "Show author email instead of name (Default: off)" -msgstr "Zeigt anstatt des Namens die Email-Adresse des Autors (Standard: aus)" +msgstr "Zeigt anstatt des Namens die E-Mail-Adresse des Autors (Standard: aus)" -#: builtin/blame.c:2256 +#: builtin/blame.c:2515 msgid "Ignore whitespace differences" msgstr "Ignoriert Unterschiede im Whitespace" -#: builtin/blame.c:2257 +#: builtin/blame.c:2516 msgid "Spend extra cycles to find better match" msgstr "arbeite länger, um bessere Ãœbereinstimmungen zu finden" -#: builtin/blame.c:2258 +#: builtin/blame.c:2517 msgid "Use revisions from <file> instead of calling git-rev-list" msgstr "Benutzt Commits von <Datei> anstatt \"git-rev-list\" aufzurufen" -#: builtin/blame.c:2259 +#: builtin/blame.c:2518 msgid "Use <file>'s contents as the final image" msgstr "Benutzt Inhalte der <Datei>en als entgültiges Abbild" -#: builtin/blame.c:2260 builtin/blame.c:2261 +#: builtin/blame.c:2519 builtin/blame.c:2520 msgid "score" msgstr "Bewertung" -#: builtin/blame.c:2260 +#: builtin/blame.c:2519 msgid "Find line copies within and across files" msgstr "Findet kopierte Zeilen innerhalb oder zwischen Dateien" -#: builtin/blame.c:2261 +#: builtin/blame.c:2520 msgid "Find line movements within and across files" msgstr "Findet verschobene Zeilen innerhalb oder zwischen Dateien" -#: builtin/blame.c:2262 +#: builtin/blame.c:2521 msgid "n,m" msgstr "n,m" -#: builtin/blame.c:2262 +#: builtin/blame.c:2521 msgid "Process only line range n,m, counting from 1" msgstr "Verarbeitet nur Zeilen im Bereich n,m, gezählt von 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:2599 +msgid "4 years, 11 months ago" +msgstr "vor 4 Jahren, und 11 Monaten" + #: builtin/branch.c:24 msgid "git branch [options] [-r | -a] [--merged | --no-merged]" msgstr "git branch [Optionen] [-r | -a] [--merged | --no-merged]" @@ -2961,9 +2982,9 @@ msgid "act on remote-tracking branches" msgstr "wirkt auf Remote-Tracking-Branches" #: builtin/branch.c:817 builtin/branch.c:823 builtin/branch.c:844 -#: builtin/branch.c:850 builtin/commit.c:1494 builtin/commit.c:1495 -#: builtin/commit.c:1496 builtin/commit.c:1497 builtin/tag.c:527 -#: builtin/tag.c:533 +#: builtin/branch.c:850 builtin/commit.c:1573 builtin/commit.c:1574 +#: builtin/commit.c:1575 builtin/commit.c:1576 builtin/tag.c:615 +#: builtin/tag.c:621 msgid "commit" msgstr "Commit" @@ -3028,7 +3049,7 @@ msgstr "listet Branches in Spalten auf" msgid "Failed to resolve HEAD as a valid ref." msgstr "Konnte HEAD nicht als gültige Referenz auflösen." -#: builtin/branch.c:872 builtin/clone.c:635 +#: builtin/branch.c:872 builtin/clone.c:636 msgid "HEAD not found below refs/heads!" msgstr "HEAD wurde nicht unter \"refs/heads\" gefunden!" @@ -3064,7 +3085,7 @@ msgstr "zu viele Branches für eine Umbenennen-Operation angegeben" #: builtin/branch.c:952 msgid "too many branches to set new upstream" -msgstr "zu viele Branches angegeben um Upstream-Branch zu setzen" +msgstr "zu viele Branches angegeben, um Upstream-Branch zu setzen" #: builtin/branch.c:956 #, c-format @@ -3087,7 +3108,7 @@ msgstr "Branch '%s' existiert nicht" #: builtin/branch.c:975 msgid "too many branches to unset upstream" msgstr "" -"zu viele Branches angegeben um Konfiguration zu Upstream-Branch zu entfernen" +"zu viele Branches angegeben, um Konfiguration zu Upstream-Branch zu entfernen" #: builtin/branch.c:979 msgid "could not unset upstream of HEAD when it does not point to any branch." @@ -3221,7 +3242,7 @@ msgstr "liest Dateinamen von der Standard-Eingabe" msgid "terminate input and output records by a NUL character" msgstr "schließt Einträge von Ein- und Ausgabe mit NUL-Zeichen ab" -#: builtin/check-ignore.c:18 builtin/checkout.c:1089 builtin/gc.c:271 +#: builtin/check-ignore.c:18 builtin/checkout.c:1083 builtin/gc.c:285 msgid "suppress progress reporting" msgstr "unterdrückt Fortschrittsanzeige" @@ -3279,46 +3300,46 @@ msgstr "keine Kontakte angegeben" msgid "git checkout-index [options] [--] [<file>...]" msgstr "git checkout-index [Optionen] [--] [<Datei>...]" -#: builtin/checkout-index.c:187 +#: builtin/checkout-index.c:188 msgid "check out all files in the index" msgstr "checkt alle Dateien in der Staging-Area aus" -#: builtin/checkout-index.c:188 +#: builtin/checkout-index.c:189 msgid "force overwrite of existing files" msgstr "erzwingt das Ãœberschreiben bereits existierender Dateien" -#: builtin/checkout-index.c:190 +#: builtin/checkout-index.c:191 msgid "no warning for existing files and files not in index" msgstr "" "keine Warnung für existierende Dateien, und Dateien, die sich nicht in der " "Staging-Area befinden" -#: builtin/checkout-index.c:192 +#: builtin/checkout-index.c:193 msgid "don't checkout new files" msgstr "checkt keine neuen Dateien aus" -#: builtin/checkout-index.c:194 +#: builtin/checkout-index.c:195 msgid "update stat information in the index file" msgstr "aktualisiert Dateiinformationen in der Staging-Area-Datei" -#: builtin/checkout-index.c:200 +#: builtin/checkout-index.c:201 msgid "read list of paths from the standard input" msgstr "liest eine Liste von Pfaden von der Standard-Eingabe" -#: builtin/checkout-index.c:202 +#: builtin/checkout-index.c:203 msgid "write the content to temporary files" msgstr "schreibt den Inhalt in temporäre Dateien" -#: builtin/checkout-index.c:203 builtin/column.c:30 +#: builtin/checkout-index.c:204 builtin/column.c:30 msgid "string" msgstr "Zeichenkette" -#: builtin/checkout-index.c:204 +#: builtin/checkout-index.c:205 msgid "when creating files, prepend <string>" msgstr "" "wenn Dateien erzeugt werden, stelle <Zeichenkette> dem Dateinamen voran" -#: builtin/checkout-index.c:207 +#: builtin/checkout-index.c:208 msgid "copy out the files from named stage" msgstr "kopiert Dateien von dem benannten Stand" @@ -3360,76 +3381,76 @@ msgstr "Pfad '%s': kann nicht zusammenführen" msgid "Unable to add merge result for '%s'" msgstr "Konnte Merge-Ergebnis von '%s' nicht hinzufügen." -#: builtin/checkout.c:232 builtin/checkout.c:235 builtin/checkout.c:238 -#: builtin/checkout.c:241 +#: builtin/checkout.c:231 builtin/checkout.c:234 builtin/checkout.c:237 +#: builtin/checkout.c:240 #, c-format msgid "'%s' cannot be used with updating paths" msgstr "'%s' kann nicht mit Pfaden verwendet werden" -#: builtin/checkout.c:244 builtin/checkout.c:247 +#: builtin/checkout.c:243 builtin/checkout.c:246 #, c-format msgid "'%s' cannot be used with %s" msgstr "'%s' kann nicht mit '%s' verwendet werden" -#: builtin/checkout.c:250 +#: builtin/checkout.c:249 #, c-format msgid "Cannot update paths and switch to branch '%s' at the same time." msgstr "" "Kann nicht gleichzeitig Pfade aktualisieren und zu Branch '%s' wechseln" -#: builtin/checkout.c:261 builtin/checkout.c:450 +#: builtin/checkout.c:260 builtin/checkout.c:449 msgid "corrupt index file" msgstr "beschädigte Staging-Area-Datei" -#: builtin/checkout.c:321 builtin/checkout.c:328 +#: builtin/checkout.c:320 builtin/checkout.c:327 #, c-format msgid "path '%s' is unmerged" msgstr "Pfad '%s' ist nicht zusammengeführt." -#: builtin/checkout.c:472 +#: builtin/checkout.c:471 msgid "you need to resolve your current index first" msgstr "Sie müssen zuerst Ihre aktuelle Staging-Area auflösen." -#: builtin/checkout.c:593 +#: builtin/checkout.c:591 #, c-format msgid "Can not do reflog for '%s'\n" msgstr "Konnte \"reflog\" für '%s' nicht durchführen\n" -#: builtin/checkout.c:631 +#: builtin/checkout.c:629 msgid "HEAD is now at" msgstr "HEAD ist jetzt bei" -#: builtin/checkout.c:638 +#: builtin/checkout.c:636 #, c-format msgid "Reset branch '%s'\n" msgstr "Setze Branch '%s' neu\n" -#: builtin/checkout.c:641 +#: builtin/checkout.c:639 #, c-format msgid "Already on '%s'\n" msgstr "Bereits auf '%s'\n" -#: builtin/checkout.c:645 +#: builtin/checkout.c:643 #, c-format msgid "Switched to and reset branch '%s'\n" -msgstr "Gewechselt zu umgesetzten Branch '%s'\n" +msgstr "Zu umgesetztem Branch '%s' gewechselt\n" -#: builtin/checkout.c:647 builtin/checkout.c:1032 +#: builtin/checkout.c:645 builtin/checkout.c:1026 #, c-format msgid "Switched to a new branch '%s'\n" -msgstr "Gewechselt zu einem neuem Branch '%s'\n" +msgstr "Zu neuem Branch '%s' gewechselt\n" -#: builtin/checkout.c:649 +#: builtin/checkout.c:647 #, c-format msgid "Switched to branch '%s'\n" -msgstr "Gewechselt zu Branch '%s'\n" +msgstr "Zu Branch '%s' gewechselt\n" -#: builtin/checkout.c:705 +#: builtin/checkout.c:699 #, c-format msgid " ... and %d more.\n" msgstr " ... und %d weitere.\n" -#: builtin/checkout.c:711 +#: builtin/checkout.c:705 #, c-format msgid "" "Warning: you are leaving %d commit behind, not connected to\n" @@ -3452,7 +3473,7 @@ msgstr[1] "" "\n" "%s\n" -#: builtin/checkout.c:729 +#: builtin/checkout.c:723 #, c-format msgid "" "If you want to keep them by creating a new branch, this may be a good time\n" @@ -3467,139 +3488,139 @@ msgstr "" " git branch neuer_branch_name %s\n" "\n" -#: builtin/checkout.c:759 +#: builtin/checkout.c:753 msgid "internal error in revision walk" msgstr "interner Fehler im Revisionsgang" -#: builtin/checkout.c:763 +#: builtin/checkout.c:757 msgid "Previous HEAD position was" msgstr "Vorherige Position von HEAD war" -#: builtin/checkout.c:790 builtin/checkout.c:1027 +#: builtin/checkout.c:784 builtin/checkout.c:1021 msgid "You are on a branch yet to be born" msgstr "Sie sind auf einem Branch, der noch geboren wird" -#: builtin/checkout.c:934 +#: builtin/checkout.c:928 #, c-format msgid "only one reference expected, %d given." msgstr "nur eine Referenz erwartet, %d gegeben." -#: builtin/checkout.c:973 +#: builtin/checkout.c:967 #, c-format msgid "invalid reference: %s" msgstr "Ungültige Referenz: %s" -#: builtin/checkout.c:1002 +#: builtin/checkout.c:996 #, c-format msgid "reference is not a tree: %s" msgstr "Referenz ist kein \"Tree\"-Objekt: %s" -#: builtin/checkout.c:1041 +#: builtin/checkout.c:1035 msgid "paths cannot be used with switching branches" msgstr "Pfade können nicht beim Wechseln von Branches verwendet werden" -#: builtin/checkout.c:1044 builtin/checkout.c:1048 +#: builtin/checkout.c:1038 builtin/checkout.c:1042 #, c-format msgid "'%s' cannot be used with switching branches" msgstr "'%s' kann nicht beim Wechseln von Branches verwendet werden" -#: builtin/checkout.c:1052 builtin/checkout.c:1055 builtin/checkout.c:1060 -#: builtin/checkout.c:1063 +#: builtin/checkout.c:1046 builtin/checkout.c:1049 builtin/checkout.c:1054 +#: builtin/checkout.c:1057 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "'%s' kann nicht mit '%s' verwendet werden" -#: builtin/checkout.c:1068 +#: builtin/checkout.c:1062 #, c-format msgid "Cannot switch branch to a non-commit '%s'" msgstr "Kann Branch nicht zu Nicht-Commit '%s' wechseln" -#: builtin/checkout.c:1090 builtin/checkout.c:1092 builtin/clone.c:88 +#: builtin/checkout.c:1084 builtin/checkout.c:1086 builtin/clone.c:88 #: builtin/remote.c:159 builtin/remote.c:161 msgid "branch" msgstr "Branch" -#: builtin/checkout.c:1091 +#: builtin/checkout.c:1085 msgid "create and checkout a new branch" msgstr "erzeugt und checkt einen neuen Branch aus" -#: builtin/checkout.c:1093 +#: builtin/checkout.c:1087 msgid "create/reset and checkout a branch" msgstr "erzeugt/setzt um und checkt einen Branch aus" -#: builtin/checkout.c:1094 +#: builtin/checkout.c:1088 msgid "create reflog for new branch" msgstr "erzeugt das Reflog für den neuen Branch" -#: builtin/checkout.c:1095 +#: builtin/checkout.c:1089 msgid "detach the HEAD at named commit" msgstr "setzt HEAD zu benanntem Commit" -#: builtin/checkout.c:1096 +#: builtin/checkout.c:1090 msgid "set upstream info for new branch" msgstr "setzt Informationen zum Upstream-Branch für den neuen Branch" -#: builtin/checkout.c:1098 +#: builtin/checkout.c:1092 msgid "new-branch" msgstr "neuer Branch" -#: builtin/checkout.c:1098 +#: builtin/checkout.c:1092 msgid "new unparented branch" msgstr "neuer Branch ohne Eltern-Commit" -#: builtin/checkout.c:1099 +#: builtin/checkout.c:1093 msgid "checkout our version for unmerged files" msgstr "checkt unsere Variante für nicht zusammengeführte Dateien aus" -#: builtin/checkout.c:1101 +#: builtin/checkout.c:1095 msgid "checkout their version for unmerged files" msgstr "checkt ihre Variante für nicht zusammengeführte Dateien aus" -#: builtin/checkout.c:1103 +#: builtin/checkout.c:1097 msgid "force checkout (throw away local modifications)" msgstr "erzwingt Auschecken (verwirft lokale Änderungen)" -#: builtin/checkout.c:1104 +#: builtin/checkout.c:1098 msgid "perform a 3-way merge with the new branch" msgstr "führt einen 3-Wege-Merge mit dem neuen Branch aus" -#: builtin/checkout.c:1105 builtin/merge.c:225 +#: builtin/checkout.c:1099 builtin/merge.c:225 msgid "update ignored files (default)" msgstr "aktualisiert ignorierte Dateien (Standard)" -#: builtin/checkout.c:1106 builtin/log.c:1228 parse-options.h:245 +#: builtin/checkout.c:1100 builtin/log.c:1236 parse-options.h:245 msgid "style" msgstr "Stil" -#: builtin/checkout.c:1107 +#: builtin/checkout.c:1101 msgid "conflict style (merge or diff3)" msgstr "Konfliktstil (merge oder diff3)" -#: builtin/checkout.c:1110 +#: builtin/checkout.c:1104 msgid "do not limit pathspecs to sparse entries only" msgstr "Pfadspezifikationen ignorieren Einstellungen zum partiellen Auschecken" -#: builtin/checkout.c:1112 +#: builtin/checkout.c:1106 msgid "second guess 'git checkout no-such-branch'" msgstr "second guess 'git checkout no-such-branch'" -#: builtin/checkout.c:1135 +#: builtin/checkout.c:1129 msgid "-b, -B and --orphan are mutually exclusive" msgstr "Die Optionen -b, -B und --orphan schließen sich gegenseitig aus." -#: builtin/checkout.c:1152 +#: builtin/checkout.c:1146 msgid "--track needs a branch name" msgstr "Bei der Option --track muss ein Branchname angegeben werden." -#: builtin/checkout.c:1159 +#: builtin/checkout.c:1153 msgid "Missing branch name; try -b" msgstr "Vermisse Branchnamen; versuchen Sie -b" -#: builtin/checkout.c:1196 +#: builtin/checkout.c:1190 msgid "invalid path specification" msgstr "ungültige Pfadspezifikation" -#: builtin/checkout.c:1203 +#: builtin/checkout.c:1197 #, c-format msgid "" "Cannot update paths and switch to branch '%s' at the same time.\n" @@ -3609,12 +3630,12 @@ msgstr "" "Haben Sie beabsichtigt '%s' auszuchecken, welcher nicht als Commit aufgelöst " "werden kann?" -#: builtin/checkout.c:1208 +#: builtin/checkout.c:1202 #, 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:1212 +#: builtin/checkout.c:1206 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." @@ -3690,30 +3711,30 @@ msgstr "" msgid "Huh (%s)?" msgstr "Wie bitte (%s)?" -#: builtin/clean.c:660 +#: builtin/clean.c:659 #, c-format msgid "Input ignore patterns>> " msgstr "Ignorier-Muster eingeben>> " -#: builtin/clean.c:697 +#: builtin/clean.c:696 #, c-format msgid "WARNING: Cannot find items matched by: %s" msgstr "WARNUNG: Kann keine Einträge finden die Muster entsprechen: %s" -#: builtin/clean.c:718 +#: builtin/clean.c:717 msgid "Select items to delete" msgstr "Wählen Sie Einträge zum Löschen" -#: builtin/clean.c:758 +#: builtin/clean.c:757 #, c-format msgid "remove %s? " msgstr "'%s' löschen? " -#: builtin/clean.c:783 +#: builtin/clean.c:782 msgid "Bye." msgstr "Tschüss." -#: builtin/clean.c:791 +#: builtin/clean.c:790 msgid "" "clean - start cleaning\n" "filter by pattern - exclude items from deletion\n" @@ -3731,62 +3752,62 @@ msgstr "" "help - diese Meldung anzeigen\n" "? - Hilfe zur Auswahl mittels Eingabe anzeigen" -#: builtin/clean.c:818 +#: builtin/clean.c:817 msgid "*** Commands ***" msgstr "*** Kommandos ***" -#: builtin/clean.c:819 +#: builtin/clean.c:818 msgid "What now" msgstr "Was nun" -#: builtin/clean.c:827 +#: builtin/clean.c:826 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:844 +#: builtin/clean.c:843 msgid "No more files to clean, exiting." msgstr "Keine Dateien mehr zum Löschen, beende." -#: builtin/clean.c:875 +#: builtin/clean.c:874 msgid "do not print names of files removed" msgstr "gibt keine Namen von gelöschten Dateien aus" -#: builtin/clean.c:877 +#: builtin/clean.c:876 msgid "force" msgstr "erzwingt Aktion" -#: builtin/clean.c:878 +#: builtin/clean.c:877 msgid "interactive cleaning" msgstr "interaktives Clean" -#: builtin/clean.c:880 +#: builtin/clean.c:879 msgid "remove whole directories" msgstr "löscht ganze Verzeichnisse" -#: builtin/clean.c:881 builtin/describe.c:415 builtin/grep.c:716 -#: builtin/ls-files.c:486 builtin/name-rev.c:314 builtin/show-ref.c:185 +#: builtin/clean.c:880 builtin/describe.c:406 builtin/grep.c:714 +#: builtin/ls-files.c:486 builtin/name-rev.c:311 builtin/show-ref.c:185 msgid "pattern" msgstr "Muster" -#: builtin/clean.c:882 +#: builtin/clean.c:881 msgid "add <pattern> to ignore rules" msgstr "fügt <Muster> zu den Regeln für ignorierte Pfade hinzu" -#: builtin/clean.c:883 +#: builtin/clean.c:882 msgid "remove ignored files, too" msgstr "löscht auch ignorierte Dateien" -#: builtin/clean.c:885 +#: builtin/clean.c:884 msgid "remove only ignored files" msgstr "löscht nur ignorierte Dateien" -#: builtin/clean.c:903 +#: builtin/clean.c:902 msgid "-x and -X cannot be used together" msgstr "Die Optionen -x und -X können nicht gemeinsam verwendet werden." -#: builtin/clean.c:907 +#: builtin/clean.c:906 msgid "" "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to " "clean" @@ -3794,7 +3815,7 @@ msgstr "" "clean.requireForce auf \"true\" gesetzt und weder -i, -n noch -f gegeben; " "\"clean\" verweigert" -#: builtin/clean.c:910 +#: builtin/clean.c:909 msgid "" "clean.requireForce defaults to true and neither -i, -n, nor -f given; " "refusing to clean" @@ -3806,8 +3827,8 @@ msgstr "" msgid "git clone [options] [--] <repo> [<dir>]" msgstr "git clone [Optionen] [--] <Repository> [<Verzeichnis>]" -#: builtin/clone.c:64 builtin/fetch.c:97 builtin/merge.c:222 -#: builtin/push.c:504 +#: builtin/clone.c:64 builtin/fetch.c:112 builtin/merge.c:222 +#: builtin/push.c:503 msgid "force progress reporting" msgstr "erzwingt Fortschrittsanzeige" @@ -3867,7 +3888,7 @@ msgstr "checkt <Branch> aus, anstatt HEAD des Remote-Repositories" msgid "path to git-upload-pack on the remote" msgstr "Pfad zu \"git-upload-pack\" auf der Gegenseite" -#: builtin/clone.c:92 builtin/fetch.c:98 builtin/grep.c:661 +#: builtin/clone.c:92 builtin/fetch.c:113 builtin/grep.c:659 msgid "depth" msgstr "Tiefe" @@ -3973,100 +3994,100 @@ msgstr "Prüfe Konnektivität... " msgid "remote did not send all necessary objects" msgstr "Remote-Repository hat nicht alle erforderlichen Objekte gesendet." -#: builtin/clone.c:626 +#: builtin/clone.c:627 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:657 +#: builtin/clone.c:658 msgid "unable to checkout working tree" msgstr "Arbeitsverzeichnis konnte nicht ausgecheckt werden" -#: builtin/clone.c:765 +#: builtin/clone.c:768 msgid "Too many arguments." msgstr "Zu viele Argumente." -#: builtin/clone.c:769 +#: builtin/clone.c:772 msgid "You must specify a repository to clone." msgstr "Sie müssen ein Repository zum Klonen angeben." -#: builtin/clone.c:780 +#: builtin/clone.c:783 #, c-format msgid "--bare and --origin %s options are incompatible." msgstr "Die Optionen --bare und --origin %s sind inkompatibel." -#: builtin/clone.c:783 +#: builtin/clone.c:786 msgid "--bare and --separate-git-dir are incompatible." msgstr "Die Optionen --bare und --separate-git-dir sind inkompatibel." -#: builtin/clone.c:796 +#: builtin/clone.c:799 #, c-format msgid "repository '%s' does not exist" msgstr "Repository '%s' existiert nicht." -#: builtin/clone.c:802 -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:805 -msgid "source repository is shallow, ignoring --local" -msgstr "" -"Quelle ist ein Repository mit unvollständiger Historie (shallow),ignoriere --" -"local" - -#: builtin/clone.c:810 -msgid "--local is ignored" -msgstr "--local wird ignoriert" - -#: builtin/clone.c:814 builtin/fetch.c:1119 +#: builtin/clone.c:805 builtin/fetch.c:1143 #, c-format msgid "depth %s is not a positive number" msgstr "Tiefe %s ist keine positive Zahl" -#: builtin/clone.c:824 +#: builtin/clone.c:815 #, 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:834 +#: builtin/clone.c:825 #, c-format msgid "working tree '%s' already exists." msgstr "Arbeitsverzeichnis '%s' existiert bereits." -#: builtin/clone.c:847 builtin/clone.c:859 +#: builtin/clone.c:838 builtin/clone.c:850 #, c-format msgid "could not create leading directories of '%s'" msgstr "Konnte führende Verzeichnisse von '%s' nicht erstellen." -#: builtin/clone.c:850 +#: builtin/clone.c:841 #, c-format msgid "could not create work tree dir '%s'." msgstr "Konnte Arbeitsverzeichnis '%s' nicht erstellen." -#: builtin/clone.c:869 +#: builtin/clone.c:860 #, c-format msgid "Cloning into bare repository '%s'...\n" msgstr "Klone in Bare-Repository '%s'...\n" -#: builtin/clone.c:871 +#: builtin/clone.c:862 #, c-format msgid "Cloning into '%s'...\n" msgstr "Klone nach '%s'...\n" +#: builtin/clone.c:898 +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:901 +msgid "source repository is shallow, ignoring --local" +msgstr "" +"Quelle ist ein Repository mit unvollständiger Historie (shallow),ignoriere --" +"local" + #: builtin/clone.c:906 +msgid "--local is ignored" +msgstr "--local wird ignoriert" + +#: builtin/clone.c:910 #, c-format msgid "Don't know how to clone %s" msgstr "Weiß nicht wie %s zu klonen ist." -#: builtin/clone.c:957 builtin/clone.c:965 +#: builtin/clone.c:961 builtin/clone.c:969 #, c-format msgid "Remote branch %s not found in upstream %s" msgstr "Remote-Branch %s nicht im Upstream-Repository %s gefunden" -#: builtin/clone.c:968 +#: builtin/clone.c:972 msgid "You appear to have cloned an empty repository." msgstr "Sie scheinen ein leeres Repository geklont zu haben." @@ -4185,90 +4206,99 @@ msgstr "" msgid "failed to unpack HEAD tree object" msgstr "Fehler beim Entpacken des \"Tree\"-Objektes von HEAD." -#: builtin/commit.c:330 +#: builtin/commit.c:328 msgid "unable to create temporary index" msgstr "Konnte temporäre Staging-Area nicht erstellen." -#: builtin/commit.c:336 +#: builtin/commit.c:334 msgid "interactive add failed" msgstr "interaktives Hinzufügen fehlgeschlagen" -#: builtin/commit.c:369 builtin/commit.c:390 builtin/commit.c:440 +#: builtin/commit.c:366 builtin/commit.c:387 builtin/commit.c:435 msgid "unable to write new_index file" msgstr "Konnte new_index Datei nicht schreiben" -#: builtin/commit.c:421 +#: builtin/commit.c:418 msgid "cannot do a partial commit during a merge." msgstr "Kann keinen Teil-Commit durchführen, während ein Merge im Gange ist." -#: builtin/commit.c:423 +#: builtin/commit.c:420 msgid "cannot do a partial commit during a cherry-pick." msgstr "" "Kann keinen Teil-Commit durchführen, während \"cherry-pick\" im Gange ist." -#: builtin/commit.c:433 +#: builtin/commit.c:429 msgid "cannot read the index" msgstr "Kann Staging-Area nicht lesen" -#: builtin/commit.c:453 +#: builtin/commit.c:447 msgid "unable to write temporary index file" msgstr "Konnte temporäre Staging-Area-Datei nicht schreiben." -#: builtin/commit.c:544 builtin/commit.c:550 +#: builtin/commit.c:557 builtin/commit.c:563 #, c-format msgid "invalid commit: %s" msgstr "Ungültiger Commit: %s" -#: builtin/commit.c:572 +#: builtin/commit.c:585 msgid "malformed --author parameter" msgstr "Fehlerhafter --author Parameter" #: builtin/commit.c:592 #, c-format +msgid "invalid date format: %s" +msgstr "Ungültiges Datumsformat: %s" + +#: builtin/commit.c:609 +#, c-format msgid "Malformed ident string: '%s'" msgstr "Fehlerhafter Ident-String: '%s'" -#: builtin/commit.c:629 builtin/commit.c:663 builtin/commit.c:1014 +#: builtin/commit.c:642 +msgid "" +"unable to select a comment character that is not used\n" +"in the current commit message" +msgstr "" +"Konnte kein Kommentar-Zeichen auswählen, das nicht in\n" +"der aktuellen Commit-Beschreibung verwendet wird." + +#: builtin/commit.c:679 builtin/commit.c:712 builtin/commit.c:1086 #, c-format msgid "could not lookup commit %s" msgstr "Konnte Commit %s nicht nachschlagen" -#: builtin/commit.c:641 builtin/shortlog.c:273 +#: builtin/commit.c:691 builtin/shortlog.c:273 #, c-format msgid "(reading log message from standard input)\n" msgstr "(lese Log-Nachricht von Standard-Eingabe)\n" -#: builtin/commit.c:643 +#: builtin/commit.c:693 msgid "could not read log from standard input" msgstr "Konnte Log nicht von Standard-Eingabe lesen." -#: builtin/commit.c:647 +#: builtin/commit.c:697 #, c-format msgid "could not read log file '%s'" msgstr "Konnte Log-Datei '%s' nicht lesen" -#: builtin/commit.c:654 -msgid "commit has empty message" -msgstr "Commit hat eine leere Beschreibung" - -#: builtin/commit.c:670 +#: builtin/commit.c:719 msgid "could not read MERGE_MSG" msgstr "Konnte MERGE_MSG nicht lesen" -#: builtin/commit.c:674 +#: builtin/commit.c:723 msgid "could not read SQUASH_MSG" msgstr "Konnte SQUASH_MSG nicht lesen" -#: builtin/commit.c:678 +#: builtin/commit.c:727 #, c-format msgid "could not read '%s'" msgstr "Konnte '%s' nicht lesen" -#: builtin/commit.c:749 +#: builtin/commit.c:798 msgid "could not write commit template" msgstr "Konnte Commit-Vorlage nicht schreiben" -#: builtin/commit.c:764 +#: builtin/commit.c:816 #, c-format msgid "" "\n" @@ -4283,7 +4313,7 @@ msgstr "" "\t%s\n" "und versuchen Sie es erneut.\n" -#: builtin/commit.c:769 +#: builtin/commit.c:821 #, c-format msgid "" "\n" @@ -4298,7 +4328,7 @@ msgstr "" "\t%s\n" "und versuchen Sie es erneut.\n" -#: builtin/commit.c:782 +#: builtin/commit.c:834 #, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" @@ -4308,7 +4338,7 @@ msgstr "" "die mit '%c' beginnen, werden ignoriert, und eine leere Beschreibung\n" "bricht den Commit ab.\n" -#: builtin/commit.c:789 +#: builtin/commit.c:841 #, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" @@ -4321,150 +4351,155 @@ msgstr "" "entfernen.\n" "Eine leere Beschreibung bricht den Commit ab.\n" -#: builtin/commit.c:802 +#: builtin/commit.c:855 #, c-format -msgid "%sAuthor: %s" -msgstr "%sAutor: %s" +msgid "%sAuthor: %.*s <%.*s>" +msgstr "%sAutor: %.*s <%.*s>" -#: builtin/commit.c:809 +#: builtin/commit.c:863 #, c-format -msgid "%sCommitter: %s" -msgstr "%sCommit-Ersteller: %s" +msgid "%sDate: %s" +msgstr "%sDatum: %s" -#: builtin/commit.c:829 +#: builtin/commit.c:870 +#, c-format +msgid "%sCommitter: %.*s <%.*s>" +msgstr "%sCommit-Ersteller: %.*s <%.*s>" + +#: builtin/commit.c:888 msgid "Cannot read index" msgstr "Kann Staging-Area nicht lesen" -#: builtin/commit.c:872 +#: builtin/commit.c:945 msgid "Error building trees" msgstr "Fehler beim Erzeugen der \"Tree\"-Objekte" -#: builtin/commit.c:887 builtin/tag.c:391 +#: builtin/commit.c:960 builtin/tag.c:495 #, c-format msgid "Please supply the message using either -m or -F option.\n" msgstr "" "Bitte liefern Sie eine Beschreibung entweder mit der Option -m oder -F.\n" -#: builtin/commit.c:989 +#: builtin/commit.c:1061 #, c-format msgid "No existing author found with '%s'" msgstr "Kein existierender Autor mit '%s' gefunden." -#: builtin/commit.c:1004 builtin/commit.c:1244 +#: builtin/commit.c:1076 builtin/commit.c:1316 #, c-format msgid "Invalid untracked files mode '%s'" msgstr "Ungültiger Modus '%s' für unbeobachtete Dateien" -#: builtin/commit.c:1041 +#: builtin/commit.c:1113 msgid "--long and -z are incompatible" msgstr "Die Optionen --long und -z sind inkompatibel." -#: builtin/commit.c:1071 +#: builtin/commit.c:1143 msgid "Using both --reset-author and --author does not make sense" msgstr "" "Die Optionen --reset-author und --author können nicht gemeinsam verwendet " "werden." -#: builtin/commit.c:1080 +#: builtin/commit.c:1152 msgid "You have nothing to amend." msgstr "Sie haben nichts für \"--amend\"." -#: builtin/commit.c:1083 +#: builtin/commit.c:1155 msgid "You are in the middle of a merge -- cannot amend." msgstr "Ein Merge ist im Gange -- kann \"--amend\" nicht ausführen." -#: builtin/commit.c:1085 +#: builtin/commit.c:1157 msgid "You are in the middle of a cherry-pick -- cannot amend." msgstr "\"cherry-pick\" ist im Gange -- kann \"--amend\" nicht ausführen." -#: builtin/commit.c:1088 +#: builtin/commit.c:1160 msgid "Options --squash and --fixup cannot be used together" msgstr "" "Die Optionen --squash und --fixup können nicht gemeinsam verwendet werden." -#: builtin/commit.c:1098 +#: builtin/commit.c:1170 msgid "Only one of -c/-C/-F/--fixup can be used." msgstr "Es kann nur eine Option von -c/-C/-F/--fixup verwendet werden." -#: builtin/commit.c:1100 +#: builtin/commit.c:1172 msgid "Option -m cannot be combined with -c/-C/-F/--fixup." msgstr "Die Option -m kann nicht mit -c/-C/-F/--fixup kombiniert werden." -#: builtin/commit.c:1108 +#: builtin/commit.c:1180 msgid "--reset-author can be used only with -C, -c or --amend." msgstr "" "Die Option --reset--author kann nur mit -C, -c oder --amend verwendet werden." -#: builtin/commit.c:1125 +#: builtin/commit.c:1197 msgid "Only one of --include/--only/--all/--interactive/--patch can be used." msgstr "" "Es kann nur eine Option von --include/--only/--all/--interactive/--patch " "verwendet werden." -#: builtin/commit.c:1127 +#: builtin/commit.c:1199 msgid "No paths with --include/--only does not make sense." msgstr "" "Die Optionen --include und --only können nur mit der Angabe von Pfaden " "verwendet werden." -#: builtin/commit.c:1129 +#: builtin/commit.c:1201 msgid "Clever... amending the last one with dirty index." msgstr "" "Klug... den letzten Commit mit einer geänderten Staging-Area nachbessern." -#: builtin/commit.c:1131 +#: builtin/commit.c:1203 msgid "Explicit paths specified without -i or -o; assuming --only paths..." msgstr "Explizite Pfade ohne -i oder -o angegeben; nehme --only an" -#: builtin/commit.c:1143 builtin/tag.c:639 +#: builtin/commit.c:1215 builtin/tag.c:727 #, c-format msgid "Invalid cleanup mode %s" msgstr "Ungültiger \"cleanup\" Modus %s" -#: builtin/commit.c:1148 +#: builtin/commit.c:1220 msgid "Paths with -a does not make sense." msgstr "Die Option -a kann nur mit der Angabe von Pfaden verwendet werden." -#: builtin/commit.c:1258 builtin/commit.c:1516 +#: builtin/commit.c:1330 builtin/commit.c:1595 msgid "show status concisely" msgstr "zeigt Status im Kurzformat" -#: builtin/commit.c:1260 builtin/commit.c:1518 +#: builtin/commit.c:1332 builtin/commit.c:1597 msgid "show branch information" msgstr "zeigt Branchinformationen" -#: builtin/commit.c:1262 builtin/commit.c:1520 builtin/push.c:490 +#: builtin/commit.c:1334 builtin/commit.c:1599 builtin/push.c:489 msgid "machine-readable output" msgstr "maschinenlesbare Ausgabe" -#: builtin/commit.c:1265 builtin/commit.c:1522 +#: builtin/commit.c:1337 builtin/commit.c:1601 msgid "show status in long format (default)" msgstr "zeigt Status im Langformat (Standard)" -#: builtin/commit.c:1268 builtin/commit.c:1525 +#: builtin/commit.c:1340 builtin/commit.c:1604 msgid "terminate entries with NUL" msgstr "schließt Einträge mit NUL-Zeichen ab" -#: builtin/commit.c:1270 builtin/commit.c:1528 builtin/fast-export.c:674 -#: builtin/fast-export.c:677 builtin/tag.c:514 +#: builtin/commit.c:1342 builtin/commit.c:1607 builtin/fast-export.c:703 +#: builtin/fast-export.c:706 builtin/tag.c:602 msgid "mode" msgstr "Modus" -#: builtin/commit.c:1271 builtin/commit.c:1528 +#: builtin/commit.c:1343 builtin/commit.c:1607 msgid "show untracked files, optional modes: all, normal, no. (Default: all)" msgstr "" "zeigt nicht beobachtete Dateien, optionale Modi: all, normal, no. (Standard: " "all)" -#: builtin/commit.c:1274 +#: builtin/commit.c:1346 msgid "show ignored files" msgstr "zeigt ignorierte Dateien" -#: builtin/commit.c:1275 parse-options.h:153 +#: builtin/commit.c:1347 parse-options.h:153 msgid "when" msgstr "wann" -#: builtin/commit.c:1276 +#: builtin/commit.c:1348 msgid "" "ignore changes to submodules, optional when: all, dirty, untracked. " "(Default: all)" @@ -4472,219 +4507,219 @@ msgstr "" "ignoriert Änderungen in Submodulen, optional wenn: all, dirty, untracked. " "(Standard: all)" -#: builtin/commit.c:1278 +#: builtin/commit.c:1350 msgid "list untracked files in columns" msgstr "listet unbeobachtete Dateien in Spalten auf" -#: builtin/commit.c:1347 +#: builtin/commit.c:1419 msgid "couldn't look up newly created commit" msgstr "Konnte neu erstellten Commit nicht nachschlagen." -#: builtin/commit.c:1349 +#: builtin/commit.c:1421 msgid "could not parse newly created commit" msgstr "Konnte neulich erstellten Commit nicht analysieren." -#: builtin/commit.c:1390 +#: builtin/commit.c:1469 msgid "detached HEAD" msgstr "losgelöster HEAD" -#: builtin/commit.c:1392 +#: builtin/commit.c:1471 msgid " (root-commit)" msgstr " (Basis-Commit)" -#: builtin/commit.c:1486 +#: builtin/commit.c:1565 msgid "suppress summary after successful commit" msgstr "unterdrückt Zusammenfassung nach erfolgreichem Commit" -#: builtin/commit.c:1487 +#: builtin/commit.c:1566 msgid "show diff in commit message template" msgstr "zeigt Unterschiede in Commit-Beschreibungsvorlage an" -#: builtin/commit.c:1489 +#: builtin/commit.c:1568 msgid "Commit message options" msgstr "Optionen für Commit-Beschreibung" -#: builtin/commit.c:1490 builtin/tag.c:512 +#: builtin/commit.c:1569 builtin/tag.c:600 msgid "read message from file" msgstr "liest Beschreibung von Datei" -#: builtin/commit.c:1491 +#: builtin/commit.c:1570 msgid "author" msgstr "Autor" -#: builtin/commit.c:1491 +#: builtin/commit.c:1570 msgid "override author for commit" msgstr "überschreibt Autor eines Commits" -#: builtin/commit.c:1492 builtin/gc.c:272 +#: builtin/commit.c:1571 builtin/gc.c:286 msgid "date" msgstr "Datum" -#: builtin/commit.c:1492 +#: builtin/commit.c:1571 msgid "override date for commit" msgstr "überschreibt Datum eines Commits" -#: builtin/commit.c:1493 builtin/merge.c:216 builtin/notes.c:409 -#: builtin/notes.c:566 builtin/tag.c:510 +#: builtin/commit.c:1572 builtin/merge.c:216 builtin/notes.c:409 +#: builtin/notes.c:566 builtin/tag.c:598 msgid "message" msgstr "Beschreibung" -#: builtin/commit.c:1493 +#: builtin/commit.c:1572 msgid "commit message" msgstr "Commit-Beschreibung" -#: builtin/commit.c:1494 +#: builtin/commit.c:1573 msgid "reuse and edit message from specified commit" msgstr "verwendet wieder und editiert Beschreibung des angegebenen Commits" -#: builtin/commit.c:1495 +#: builtin/commit.c:1574 msgid "reuse message from specified commit" msgstr "verwendet Beschreibung des angegebenen Commits wieder" -#: builtin/commit.c:1496 +#: builtin/commit.c:1575 msgid "use autosquash formatted message to fixup specified commit" msgstr "" "verwendet eine automatisch zusammengesetzte Beschreibung zum Nachbessern des " "angegebenen Commits" -#: builtin/commit.c:1497 +#: builtin/commit.c:1576 msgid "use autosquash formatted message to squash specified commit" msgstr "" "verwendet eine automatisch zusammengesetzte Beschreibung beim \"squash\" des " "angegebenen Commits" -#: builtin/commit.c:1498 +#: builtin/commit.c:1577 msgid "the commit is authored by me now (used with -C/-c/--amend)" msgstr "Setzt Sie als Autor des Commits (verwendet mit -C/-c/--amend)" -#: builtin/commit.c:1499 builtin/log.c:1180 builtin/revert.c:86 +#: builtin/commit.c:1578 builtin/log.c:1188 builtin/revert.c:86 msgid "add Signed-off-by:" msgstr "fügt 'Signed-off-by:'-Zeile hinzu" -#: builtin/commit.c:1500 +#: builtin/commit.c:1579 msgid "use specified template file" msgstr "verwendet angegebene Vorlagendatei" -#: builtin/commit.c:1501 +#: builtin/commit.c:1580 msgid "force edit of commit" msgstr "erzwingt Bearbeitung des Commits" -#: builtin/commit.c:1502 +#: builtin/commit.c:1581 msgid "default" msgstr "Standard" -#: builtin/commit.c:1502 builtin/tag.c:515 +#: builtin/commit.c:1581 builtin/tag.c:603 msgid "how to strip spaces and #comments from message" msgstr "" "wie Leerzeichen und #Kommentare von der Beschreibung getrennt werden sollen" -#: builtin/commit.c:1503 +#: builtin/commit.c:1582 msgid "include status in commit message template" msgstr "fügt Status in die Commit-Beschreibungsvorlage ein" -#: builtin/commit.c:1504 builtin/merge.c:223 builtin/revert.c:92 -#: builtin/tag.c:516 +#: builtin/commit.c:1583 builtin/merge.c:223 builtin/revert.c:92 +#: builtin/tag.c:604 msgid "key-id" msgstr "GPG-Schlüsselkennung" -#: builtin/commit.c:1505 builtin/merge.c:224 builtin/revert.c:93 +#: builtin/commit.c:1584 builtin/merge.c:224 builtin/revert.c:93 msgid "GPG sign commit" msgstr "signiert Commit mit GPG" -#: builtin/commit.c:1508 +#: builtin/commit.c:1587 msgid "Commit contents options" msgstr "Optionen für Commit-Inhalt" -#: builtin/commit.c:1509 +#: builtin/commit.c:1588 msgid "commit all changed files" msgstr "committet alle geänderten Dateien" -#: builtin/commit.c:1510 +#: builtin/commit.c:1589 msgid "add specified files to index for commit" msgstr "merkt die angegebenen Dateien zusätzlich zum Commit vor" -#: builtin/commit.c:1511 +#: builtin/commit.c:1590 msgid "interactively add files" msgstr "interaktives Hinzufügen von Dateien" -#: builtin/commit.c:1512 +#: builtin/commit.c:1591 msgid "interactively add changes" msgstr "interaktives Hinzufügen von Änderungen" -#: builtin/commit.c:1513 +#: builtin/commit.c:1592 msgid "commit only specified files" msgstr "committet nur die angegebenen Dateien" -#: builtin/commit.c:1514 +#: builtin/commit.c:1593 msgid "bypass pre-commit hook" msgstr "umgeht \"pre-commit hook\"" -#: builtin/commit.c:1515 +#: builtin/commit.c:1594 msgid "show what would be committed" msgstr "zeigt an, was committet werden würde" -#: builtin/commit.c:1526 +#: builtin/commit.c:1605 msgid "amend previous commit" msgstr "ändert vorherigen Commit" -#: builtin/commit.c:1527 +#: builtin/commit.c:1606 msgid "bypass post-rewrite hook" msgstr "umgeht \"post-rewrite hook\"" -#: builtin/commit.c:1532 +#: builtin/commit.c:1611 msgid "ok to record an empty change" msgstr "erlaubt Aufzeichnung einer leeren Änderung" -#: builtin/commit.c:1534 +#: builtin/commit.c:1613 msgid "ok to record a change with an empty message" msgstr "erlaubt Aufzeichnung einer Änderung mit einer leeren Beschreibung" -#: builtin/commit.c:1562 +#: builtin/commit.c:1641 msgid "could not parse HEAD commit" msgstr "Konnte Commit von HEAD nicht analysieren." -#: builtin/commit.c:1601 builtin/merge.c:518 +#: builtin/commit.c:1680 builtin/merge.c:518 #, c-format msgid "could not open '%s' for reading" msgstr "Konnte '%s' nicht zum Lesen öffnen." -#: builtin/commit.c:1608 +#: builtin/commit.c:1687 #, c-format msgid "Corrupt MERGE_HEAD file (%s)" msgstr "Beschädigte MERGE_HEAD-Datei (%s)" -#: builtin/commit.c:1615 +#: builtin/commit.c:1694 msgid "could not read MERGE_MODE" msgstr "Konnte MERGE_MODE nicht lesen" -#: builtin/commit.c:1634 +#: builtin/commit.c:1713 #, c-format msgid "could not read commit message: %s" msgstr "Konnte Commit-Beschreibung nicht lesen: %s" -#: builtin/commit.c:1645 +#: builtin/commit.c:1724 #, c-format msgid "Aborting commit; you did not edit the message.\n" msgstr "Commit abgebrochen; Sie haben die Beschreibung nicht editiert.\n" -#: builtin/commit.c:1650 +#: builtin/commit.c:1729 #, c-format msgid "Aborting commit due to empty commit message.\n" msgstr "Commit aufgrund leerer Beschreibung abgebrochen.\n" -#: builtin/commit.c:1665 builtin/merge.c:857 builtin/merge.c:882 +#: builtin/commit.c:1744 builtin/merge.c:851 builtin/merge.c:876 msgid "failed to write commit object" msgstr "Fehler beim Schreiben des Commit-Objektes." -#: builtin/commit.c:1686 +#: builtin/commit.c:1756 msgid "cannot lock HEAD ref" msgstr "Kann Referenz von HEAD nicht sperren." -#: builtin/commit.c:1690 +#: builtin/commit.c:1769 msgid "cannot update HEAD ref" msgstr "Kann Referenz von HEAD nicht aktualisieren." -#: builtin/commit.c:1701 +#: builtin/commit.c:1780 msgid "" "Repository has been updated, but unable to write\n" "new_index file. Check that disk is not full or quota is\n" @@ -4839,47 +4874,47 @@ msgstr "git describe [Optionen] <commit-ish>*" msgid "git describe [options] --dirty" msgstr "git describe [Optionen] --dirty" -#: builtin/describe.c:225 +#: builtin/describe.c:216 #, c-format msgid "annotated tag %s not available" msgstr "annotiertes Tag %s ist nicht verfügbar" -#: builtin/describe.c:229 +#: builtin/describe.c:220 #, c-format msgid "annotated tag %s has no embedded name" msgstr "annotiertes Tag %s hat keinen eingebetteten Namen" -#: builtin/describe.c:231 +#: builtin/describe.c:222 #, c-format msgid "tag '%s' is really '%s' here" msgstr "Tag '%s' ist eigentlich '%s' hier" -#: builtin/describe.c:258 +#: builtin/describe.c:249 #, c-format msgid "Not a valid object name %s" msgstr "%s ist kein gültiger Objekt-Name" -#: builtin/describe.c:261 +#: builtin/describe.c:252 #, c-format msgid "%s is not a valid '%s' object" msgstr "%s ist kein gültiges '%s' Objekt" -#: builtin/describe.c:278 +#: builtin/describe.c:269 #, c-format msgid "no tag exactly matches '%s'" msgstr "kein Tag entspricht exakt '%s'" -#: builtin/describe.c:280 +#: builtin/describe.c:271 #, c-format msgid "searching to describe %s\n" msgstr "suche zur Beschreibung von %s\n" -#: builtin/describe.c:327 +#: builtin/describe.c:318 #, c-format msgid "finished search at %s\n" msgstr "beendete Suche bei %s\n" -#: builtin/describe.c:354 +#: builtin/describe.c:345 #, c-format msgid "" "No annotated tags can describe '%s'.\n" @@ -4888,7 +4923,7 @@ msgstr "" "Keine annotierten Tags können '%s' beschreiben.\n" "Jedoch gab es nicht-annotierte Tags: versuchen Sie --tags." -#: builtin/describe.c:358 +#: builtin/describe.c:349 #, c-format msgid "" "No tags can describe '%s'.\n" @@ -4897,12 +4932,12 @@ msgstr "" "Keine Tags können '%s' beschreiben.\n" "Versuchen Sie --always oder erstellen Sie einige Tags." -#: builtin/describe.c:379 +#: builtin/describe.c:370 #, c-format msgid "traversed %lu commits\n" msgstr "%lu Commits durchlaufen\n" -#: builtin/describe.c:382 +#: builtin/describe.c:373 #, c-format msgid "" "more than %i tags found; listed %i most recent\n" @@ -4911,65 +4946,65 @@ msgstr "" "mehr als %i Tags gefunden; Führe die ersten %i auf\n" "Suche bei %s aufgegeben\n" -#: builtin/describe.c:404 +#: builtin/describe.c:395 msgid "find the tag that comes after the commit" msgstr "findet das Tag, das nach Commit kommt" -#: builtin/describe.c:405 +#: builtin/describe.c:396 msgid "debug search strategy on stderr" msgstr "protokolliert die Suchstrategie in der Standard-Fehlerausgabe" -#: builtin/describe.c:406 +#: builtin/describe.c:397 msgid "use any ref" msgstr "verwendet alle Referenzen" -#: builtin/describe.c:407 +#: builtin/describe.c:398 msgid "use any tag, even unannotated" msgstr "verwendet jedes Tag, auch nicht-annotierte" -#: builtin/describe.c:408 +#: builtin/describe.c:399 msgid "always use long format" msgstr "verwendet immer langes Format" -#: builtin/describe.c:409 +#: builtin/describe.c:400 msgid "only follow first parent" msgstr "folgt nur erstem Elternteil" -#: builtin/describe.c:412 +#: builtin/describe.c:403 msgid "only output exact matches" msgstr "gibt nur exakte Ãœbereinstimmungen aus" -#: builtin/describe.c:414 +#: builtin/describe.c:405 msgid "consider <n> most recent tags (default: 10)" msgstr "betrachtet die jüngsten <n> Tags (Standard: 10)" -#: builtin/describe.c:416 +#: builtin/describe.c:407 msgid "only consider tags matching <pattern>" msgstr "betrachtet nur Tags die <Muster> entsprechen" -#: builtin/describe.c:418 builtin/name-rev.c:321 +#: builtin/describe.c:409 builtin/name-rev.c:318 msgid "show abbreviated commit object as fallback" msgstr "zeigt gekürztes Commit-Objekt, wenn sonst nichts zutrifft" -#: builtin/describe.c:419 +#: builtin/describe.c:410 msgid "mark" msgstr "Kennzeichen" -#: builtin/describe.c:420 +#: builtin/describe.c:411 msgid "append <mark> on dirty working tree (default: \"-dirty\")" msgstr "" "fügt <Kennzeichen> bei geändertem Arbeitsverzeichnis hinzu (Standard: \"-" "dirty\")" -#: builtin/describe.c:438 +#: builtin/describe.c:429 msgid "--long is incompatible with --abbrev=0" msgstr "Die Optionen --long und --abbrev=0 sind inkompatibel." -#: builtin/describe.c:464 +#: builtin/describe.c:455 msgid "No names found, cannot describe anything." msgstr "Keine Namen gefunden, kann nichts beschreiben." -#: builtin/describe.c:484 +#: builtin/describe.c:475 msgid "--dirty is incompatible with commit-ishes" msgstr "Die Option --dirty kann nicht mit Commits verwendet werden." @@ -5002,46 +5037,54 @@ msgstr "Mehr als zwei Blobs angegeben: '%s'" msgid "unhandled object '%s' given." msgstr "unbehandeltes Objekt '%s' angegeben" -#: builtin/fast-export.c:22 +#: builtin/fast-export.c:23 msgid "git fast-export [rev-list-opts]" msgstr "git fast-export [rev-list-opts]" -#: builtin/fast-export.c:673 +#: builtin/fast-export.c:702 msgid "show progress after <n> objects" msgstr "zeigt Fortschritt nach <n> Objekten an" -#: builtin/fast-export.c:675 +#: builtin/fast-export.c:704 msgid "select handling of signed tags" msgstr "wählt Behandlung von signierten Tags" -#: builtin/fast-export.c:678 +#: builtin/fast-export.c:707 msgid "select handling of tags that tag filtered objects" msgstr "wählt Behandlung von Tags, die gefilterte Objekte markieren" -#: builtin/fast-export.c:681 +#: builtin/fast-export.c:710 msgid "Dump marks to this file" msgstr "Schreibt Kennzeichen in diese Datei" -#: builtin/fast-export.c:683 +#: builtin/fast-export.c:712 msgid "Import marks from this file" msgstr "Importiert Kennzeichen von dieser Datei" -#: builtin/fast-export.c:685 +#: builtin/fast-export.c:714 msgid "Fake a tagger when tags lack one" msgstr "erzeugt künstlich einen Tag-Ersteller, wenn das Tag keinen hat" -#: builtin/fast-export.c:687 +#: builtin/fast-export.c:716 msgid "Output full tree for each commit" msgstr "gibt für jeden Commit das gesamte Verzeichnis aus" -#: builtin/fast-export.c:689 +#: builtin/fast-export.c:718 msgid "Use the done feature to terminate the stream" -msgstr "Benutzt die \"done\"-Funktion um den Strom abzuschließen" +msgstr "Benutzt die \"done\"-Funktion, um den Strom abzuschließen" -#: builtin/fast-export.c:690 +#: builtin/fast-export.c:719 msgid "Skip output of blob data" msgstr "Ãœberspringt Ausgabe von Blob-Daten" +#: builtin/fast-export.c:720 +msgid "refspec" +msgstr "Refspec" + +#: builtin/fast-export.c:721 +msgid "Apply refspec to exported refs" +msgstr "Wendet Refspec auf exportierte Referenzen an" + #: builtin/fetch.c:20 msgid "git fetch [<options>] [<repository> [<refspec>...]]" msgstr "git fetch [<Optionen>] [<Repository> [<Refspec>...]]" @@ -5058,218 +5101,226 @@ msgstr "git fetch --multiple [<Optionen>] [(<Repository> | <Gruppe>)...]" msgid "git fetch --all [<options>]" msgstr "git fetch --all [<Optionen>]" -#: builtin/fetch.c:75 +#: builtin/fetch.c:90 msgid "fetch from all remotes" msgstr "fordert von allen Remote-Repositories an" -#: builtin/fetch.c:77 +#: builtin/fetch.c:92 msgid "append to .git/FETCH_HEAD instead of overwriting" msgstr "hängt an .git/FETCH_HEAD an, anstatt zu überschreiben" -#: builtin/fetch.c:79 +#: builtin/fetch.c:94 msgid "path to upload pack on remote end" msgstr "Pfad des Programms zum Hochladen von Paketen auf der Gegenseite" -#: builtin/fetch.c:80 +#: builtin/fetch.c:95 msgid "force overwrite of local branch" msgstr "erzwingt das Ãœberschreiben von lokalen Branches" -#: builtin/fetch.c:82 +#: builtin/fetch.c:97 msgid "fetch from multiple remotes" msgstr "fordert von mehreren Remote-Repositories an" -#: builtin/fetch.c:84 +#: builtin/fetch.c:99 msgid "fetch all tags and associated objects" msgstr "fordert alle Tags und verbundene Objekte an" -#: builtin/fetch.c:86 +#: builtin/fetch.c:101 msgid "do not fetch all tags (--no-tags)" msgstr "fordert nicht alle Tags an (--no-tags)" -#: builtin/fetch.c:88 +#: builtin/fetch.c:103 msgid "prune remote-tracking branches no longer on remote" msgstr "" "entfernt Remote-Tracking-Branches, die sich nicht mehr im Remote-Repository " "befinden" -#: builtin/fetch.c:89 +#: builtin/fetch.c:104 msgid "on-demand" msgstr "bei-Bedarf" -#: builtin/fetch.c:90 +#: builtin/fetch.c:105 msgid "control recursive fetching of submodules" msgstr "kontrolliert rekursive Anforderungen von Submodulen" -#: builtin/fetch.c:94 +#: builtin/fetch.c:109 msgid "keep downloaded pack" msgstr "behält heruntergeladenes Paket" -#: builtin/fetch.c:96 +#: builtin/fetch.c:111 msgid "allow updating of HEAD ref" msgstr "erlaubt Aktualisierung der \"HEAD\"-Referenz" -#: builtin/fetch.c:99 +#: builtin/fetch.c:114 msgid "deepen history of shallow clone" msgstr "" "vertieft die Historie eines Klons mit unvollständiger Historie (shallow)" -#: builtin/fetch.c:101 +#: builtin/fetch.c:116 msgid "convert to a complete repository" msgstr "konvertiert zu einem vollständigen Repository" -#: builtin/fetch.c:103 builtin/log.c:1197 +#: builtin/fetch.c:118 builtin/log.c:1205 msgid "dir" msgstr "Verzeichnis" -#: builtin/fetch.c:104 +#: builtin/fetch.c:119 msgid "prepend this to submodule path output" msgstr "stellt dies an die Ausgabe der Submodul-Pfade voran" -#: builtin/fetch.c:107 +#: builtin/fetch.c:122 msgid "default mode for recursion" msgstr "Standard-Modus für Rekursion" -#: builtin/fetch.c:109 +#: builtin/fetch.c:124 msgid "accept refs that update .git/shallow" msgstr "akzeptiert Referenzen die .git/shallow aktualisieren" -#: builtin/fetch.c:347 +#: builtin/fetch.c:125 +msgid "refmap" +msgstr "Refmap" + +#: builtin/fetch.c:126 +msgid "specify fetch refmap" +msgstr "Angabe der Refmap für 'fetch'" + +#: builtin/fetch.c:376 msgid "Couldn't find remote ref HEAD" msgstr "Konnte Remote-Referenz von HEAD nicht finden." -#: builtin/fetch.c:411 +#: builtin/fetch.c:440 #, c-format msgid "object %s not found" msgstr "Objekt %s nicht gefunden" -#: builtin/fetch.c:416 +#: builtin/fetch.c:445 msgid "[up to date]" msgstr "[aktuell]" -#: builtin/fetch.c:430 +#: builtin/fetch.c:459 #, 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:431 builtin/fetch.c:517 +#: builtin/fetch.c:460 builtin/fetch.c:546 msgid "[rejected]" msgstr "[zurückgewiesen]" -#: builtin/fetch.c:442 +#: builtin/fetch.c:471 msgid "[tag update]" msgstr "[Tag Aktualisierung]" -#: builtin/fetch.c:444 builtin/fetch.c:479 builtin/fetch.c:497 +#: builtin/fetch.c:473 builtin/fetch.c:508 builtin/fetch.c:526 msgid " (unable to update local ref)" msgstr " (kann lokale Referenz nicht aktualisieren)" -#: builtin/fetch.c:462 +#: builtin/fetch.c:491 msgid "[new tag]" msgstr "[neues Tag]" -#: builtin/fetch.c:465 +#: builtin/fetch.c:494 msgid "[new branch]" msgstr "[neuer Branch]" -#: builtin/fetch.c:468 +#: builtin/fetch.c:497 msgid "[new ref]" msgstr "[neue Referenz]" -#: builtin/fetch.c:513 +#: builtin/fetch.c:542 msgid "unable to update local ref" msgstr "kann lokale Referenz nicht aktualisieren" -#: builtin/fetch.c:513 +#: builtin/fetch.c:542 msgid "forced update" msgstr "Aktualisierung erzwungen" -#: builtin/fetch.c:519 +#: builtin/fetch.c:548 msgid "(non-fast-forward)" msgstr "(kein Vorspulen)" -#: builtin/fetch.c:552 builtin/fetch.c:785 +#: builtin/fetch.c:581 builtin/fetch.c:814 #, c-format msgid "cannot open %s: %s\n" msgstr "kann %s nicht öffnen: %s\n" -#: builtin/fetch.c:561 +#: builtin/fetch.c:590 #, c-format msgid "%s did not send all necessary objects\n" msgstr "%s hat nicht alle erforderlichen Objekte gesendet\n" -#: builtin/fetch.c:579 +#: builtin/fetch.c:608 #, 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:667 builtin/fetch.c:750 +#: builtin/fetch.c:696 builtin/fetch.c:779 #, c-format msgid "From %.*s\n" msgstr "Von %.*s\n" -#: builtin/fetch.c:678 +#: builtin/fetch.c:707 #, c-format msgid "" "some local refs could not be updated; try running\n" " 'git remote prune %s' to remove any old, conflicting branches" msgstr "" "Einige lokale Referenzen konnten nicht aktualisiert werden; versuchen Sie\n" -"'git remote prune %s' um jeden älteren, widersprüchlichen Branch zu löschen." +"'git remote prune %s', um jeden älteren, widersprüchlichen Branch zu löschen." -#: builtin/fetch.c:730 +#: builtin/fetch.c:759 #, c-format msgid " (%s will become dangling)" msgstr " (%s wird unreferenziert)" -#: builtin/fetch.c:731 +#: builtin/fetch.c:760 #, c-format msgid " (%s has become dangling)" msgstr " (%s wurde unreferenziert)" -#: builtin/fetch.c:755 +#: builtin/fetch.c:784 msgid "[deleted]" msgstr "[gelöscht]" -#: builtin/fetch.c:756 builtin/remote.c:1050 +#: builtin/fetch.c:785 builtin/remote.c:1059 msgid "(none)" msgstr "(nichts)" -#: builtin/fetch.c:775 +#: builtin/fetch.c:804 #, 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:794 +#: builtin/fetch.c:823 #, 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:797 +#: builtin/fetch.c:826 #, c-format msgid "Option \"%s\" is ignored for %s\n" msgstr "Option \"%s\" wird ignoriert für %s\n" -#: builtin/fetch.c:853 +#: builtin/fetch.c:882 #, c-format msgid "Don't know how to fetch from %s" msgstr "Weiß nicht wie von %s angefordert wird." -#: builtin/fetch.c:1015 +#: builtin/fetch.c:1044 #, c-format msgid "Fetching %s\n" msgstr "Fordere an von %s\n" -#: builtin/fetch.c:1017 builtin/remote.c:90 +#: builtin/fetch.c:1046 builtin/remote.c:90 #, c-format msgid "Could not fetch %s" msgstr "Konnte nicht von %s anfordern" -#: builtin/fetch.c:1035 +#: builtin/fetch.c:1064 msgid "" "No remote repository specified. Please, specify either a URL or a\n" "remote name from which new revisions should be fetched." @@ -5278,35 +5329,35 @@ msgstr "" "oder den Namen des Remote-Repositories an, von welchem neue\n" "Commits angefordert werden sollen." -#: builtin/fetch.c:1059 +#: builtin/fetch.c:1087 msgid "You need to specify a tag name." msgstr "Sie müssen den Namen des Tags angeben." -#: builtin/fetch.c:1107 +#: builtin/fetch.c:1131 msgid "--depth and --unshallow cannot be used together" msgstr "" "Die Optionen --depth und --unshallow können nicht gemeinsam verwendet werden." -#: builtin/fetch.c:1109 +#: builtin/fetch.c:1133 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:1132 +#: builtin/fetch.c:1156 msgid "fetch --all does not take a repository argument" msgstr "fetch --all akzeptiert kein Repository als Argument" -#: builtin/fetch.c:1134 +#: builtin/fetch.c:1158 msgid "fetch --all does not make sense with refspecs" msgstr "fetch --all kann nicht mit Refspecs verwendet werden." -#: builtin/fetch.c:1145 +#: builtin/fetch.c:1169 #, c-format msgid "No such remote or remote group: %s" msgstr "Kein Remote-Repository (einzeln oder Gruppe): %s" -#: builtin/fetch.c:1153 +#: builtin/fetch.c:1177 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" @@ -5317,9 +5368,9 @@ msgid "git fmt-merge-msg [-m <message>] [--log[=<n>]|--no-log] [--file <file>]" msgstr "" "git fmt-merge-msg [-m <Beschreibung>] [--log[=<n>]|--no-log] [--file <Datei>]" -#: builtin/fmt-merge-msg.c:663 builtin/fmt-merge-msg.c:666 builtin/grep.c:700 -#: builtin/merge.c:196 builtin/repack.c:175 builtin/repack.c:179 -#: builtin/show-branch.c:654 builtin/show-ref.c:178 builtin/tag.c:501 +#: builtin/fmt-merge-msg.c:663 builtin/fmt-merge-msg.c:666 builtin/grep.c:698 +#: builtin/merge.c:196 builtin/repack.c:179 builtin/repack.c:183 +#: builtin/show-branch.c:654 builtin/show-ref.c:178 builtin/tag.c:589 #: parse-options.h:132 parse-options.h:239 msgid "n" msgstr "Anzahl" @@ -5344,43 +5395,43 @@ msgstr "verwendet <Text> als Beschreibungsanfang" msgid "file to read from" msgstr "Datei zum Einlesen" -#: builtin/for-each-ref.c:1063 +#: builtin/for-each-ref.c:1051 msgid "git for-each-ref [options] [<pattern>]" msgstr "git for-each-ref [Optionen] [<Muster>]" -#: builtin/for-each-ref.c:1078 +#: builtin/for-each-ref.c:1066 msgid "quote placeholders suitably for shells" msgstr "formatiert Platzhalter als Shell-String" -#: builtin/for-each-ref.c:1080 +#: builtin/for-each-ref.c:1068 msgid "quote placeholders suitably for perl" msgstr "formatiert Platzhalter als Perl-String" -#: builtin/for-each-ref.c:1082 +#: builtin/for-each-ref.c:1070 msgid "quote placeholders suitably for python" msgstr "formatiert Platzhalter als Python-String" -#: builtin/for-each-ref.c:1084 +#: builtin/for-each-ref.c:1072 msgid "quote placeholders suitably for tcl" msgstr "formatiert Platzhalter als TCL-String" -#: builtin/for-each-ref.c:1087 +#: builtin/for-each-ref.c:1075 msgid "show only <n> matched refs" msgstr "zeigt nur <n> passende Referenzen" -#: builtin/for-each-ref.c:1088 builtin/replace.c:177 +#: builtin/for-each-ref.c:1076 builtin/replace.c:435 msgid "format" msgstr "Format" -#: builtin/for-each-ref.c:1088 +#: builtin/for-each-ref.c:1076 msgid "format to use for the output" msgstr "für die Ausgabe zu verwendendes Format" -#: builtin/for-each-ref.c:1089 +#: builtin/for-each-ref.c:1077 msgid "key" msgstr "Schüssel" -#: builtin/for-each-ref.c:1090 +#: builtin/for-each-ref.c:1078 msgid "field name to sort on" msgstr "sortiere nach diesem Feld" @@ -5388,55 +5439,55 @@ msgstr "sortiere nach diesem Feld" msgid "Checking connectivity" msgstr "Prüfe Konnektivität" -#: builtin/fsck.c:544 +#: builtin/fsck.c:538 msgid "Checking object directories" msgstr "Prüfe Objekt-Verzeichnisse" -#: builtin/fsck.c:607 +#: builtin/fsck.c:601 msgid "git fsck [options] [<object>...]" msgstr "git fsck [Optionen] [<Objekt>...]" -#: builtin/fsck.c:613 +#: builtin/fsck.c:607 msgid "show unreachable objects" msgstr "zeigt unerreichbare Objekte" -#: builtin/fsck.c:614 +#: builtin/fsck.c:608 msgid "show dangling objects" msgstr "zeigt unreferenzierte Objekte" -#: builtin/fsck.c:615 +#: builtin/fsck.c:609 msgid "report tags" msgstr "meldet Tags" -#: builtin/fsck.c:616 +#: builtin/fsck.c:610 msgid "report root nodes" msgstr "meldet Hauptwurzeln" -#: builtin/fsck.c:617 +#: builtin/fsck.c:611 msgid "make index objects head nodes" msgstr "prüft Objekte in der Staging-Area" -#: builtin/fsck.c:618 +#: builtin/fsck.c:612 msgid "make reflogs head nodes (default)" msgstr "prüft die Reflogs (Standard)" -#: builtin/fsck.c:619 +#: builtin/fsck.c:613 msgid "also consider packs and alternate objects" msgstr "" -#: builtin/fsck.c:620 +#: builtin/fsck.c:614 msgid "enable more strict checking" msgstr "aktiviert genauere Prüfung" -#: builtin/fsck.c:622 +#: builtin/fsck.c:616 msgid "write dangling objects in .git/lost-found" msgstr "schreibt unreferenzierte Objekte nach .git/lost-found" -#: builtin/fsck.c:623 builtin/prune.c:144 +#: builtin/fsck.c:617 builtin/prune.c:144 msgid "show progress" msgstr "zeigt Fortschrittsanzeige" -#: builtin/fsck.c:673 +#: builtin/fsck.c:667 msgid "Checking objects" msgstr "Prüfe Objekte" @@ -5444,54 +5495,54 @@ msgstr "Prüfe Objekte" msgid "git gc [options]" msgstr "git gc [Optionen]" -#: builtin/gc.c:90 +#: builtin/gc.c:91 #, c-format msgid "Invalid %s: '%s'" msgstr "Ungültiger %s: '%s'" -#: builtin/gc.c:117 +#: builtin/gc.c:118 #, c-format msgid "insanely long object directory %.*s" msgstr "zu langes Objekt-Verzeichnis %.*s" -#: builtin/gc.c:273 +#: builtin/gc.c:287 msgid "prune unreferenced objects" msgstr "entfernt unreferenzierte Objekte" -#: builtin/gc.c:275 +#: builtin/gc.c:289 msgid "be more thorough (increased runtime)" msgstr "mehr Gründlichkeit (erhöht Laufzeit)" -#: builtin/gc.c:276 +#: builtin/gc.c:290 msgid "enable auto-gc mode" msgstr "aktiviert \"auto-gc\" Modus" -#: builtin/gc.c:277 +#: builtin/gc.c:291 msgid "force running gc even if there may be another gc running" msgstr "" "erzwingt Ausführung von \"git gc\" selbst wenn ein anderes\n" "\"git gc\" bereits ausgeführt wird" -#: builtin/gc.c:318 +#: builtin/gc.c:332 #, c-format msgid "Auto packing the repository in background for optimum performance.\n" msgstr "" "Die Datenbank des Repositories wird für eine optimale Performance im\n" "Hintergrund komprimiert.\n" -#: builtin/gc.c:320 +#: builtin/gc.c:334 #, c-format msgid "Auto packing the repository for optimum performance.\n" msgstr "" "Die Datenbank des Projektarchivs wird für eine optimale Performance " "komprimiert.\n" -#: builtin/gc.c:321 +#: builtin/gc.c:335 #, c-format msgid "See \"git help gc\" for manual housekeeping.\n" msgstr "Siehe \"git help gc\" für manuelles Aufräumen.\n" -#: builtin/gc.c:336 +#: builtin/gc.c:353 #, c-format msgid "" "gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)" @@ -5499,7 +5550,7 @@ msgstr "" "\"git gc\" wird bereits auf Maschine '%s' pid %<PRIuMAX> ausgeführt\n" "(benutzen Sie --force falls nicht)" -#: builtin/gc.c:361 +#: builtin/gc.c:375 msgid "" "There are too many unreachable loose objects; run 'git prune' to remove them." msgstr "" @@ -5515,235 +5566,230 @@ msgstr "git grep [Optionen] [-e] <Muster> [<Commit>...] [[--] <Pfad>...]" msgid "grep: failed to create thread: %s" msgstr "grep: Fehler beim Erzeugen eines Thread: %s" -#: builtin/grep.c:365 -#, c-format -msgid "Failed to chdir: %s" -msgstr "Fehler beim Verzeichniswechsel: %s" - -#: builtin/grep.c:443 builtin/grep.c:478 +#: builtin/grep.c:441 builtin/grep.c:476 #, c-format msgid "unable to read tree (%s)" msgstr "konnte \"Tree\"-Objekt (%s) nicht lesen" -#: builtin/grep.c:493 +#: builtin/grep.c:491 #, 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:549 +#: builtin/grep.c:547 #, c-format msgid "switch `%c' expects a numerical value" msgstr "Schalter '%c' erwartet einen numerischen Wert" -#: builtin/grep.c:566 +#: builtin/grep.c:564 #, c-format msgid "cannot open '%s'" msgstr "kann '%s' nicht öffnen" -#: builtin/grep.c:640 +#: builtin/grep.c:638 msgid "search in index instead of in the work tree" msgstr "sucht in der Staging-Area anstatt im Arbeitsverzeichnis" -#: builtin/grep.c:642 +#: builtin/grep.c:640 msgid "find in contents not managed by git" msgstr "findet auch in Inhalten, die nicht von Git verwaltet werden" -#: builtin/grep.c:644 +#: builtin/grep.c:642 msgid "search in both tracked and untracked files" msgstr "sucht in beobachteten und unbeobachteten Dateien" -#: builtin/grep.c:646 +#: builtin/grep.c:644 msgid "search also in ignored files" msgstr "sucht auch in ignorierten Dateien" -#: builtin/grep.c:649 +#: builtin/grep.c:647 msgid "show non-matching lines" msgstr "zeigt Zeilen ohne Ãœbereinstimmungen" -#: builtin/grep.c:651 +#: builtin/grep.c:649 msgid "case insensitive matching" msgstr "findet Ãœbereinstimmungen unabhängig von Groß- und Kleinschreibung" -#: builtin/grep.c:653 +#: builtin/grep.c:651 msgid "match patterns only at word boundaries" msgstr "sucht nur ganze Wörter" -#: builtin/grep.c:655 +#: builtin/grep.c:653 msgid "process binary files as text" msgstr "verarbeitet binäre Dateien als Text" -#: builtin/grep.c:657 +#: builtin/grep.c:655 msgid "don't match patterns in binary files" msgstr "findet keine Muster in Binärdateien" -#: builtin/grep.c:660 +#: builtin/grep.c:658 msgid "process binary files with textconv filters" msgstr "verarbeitet binäre Dateien mit \"textconv\"-Filtern" -#: builtin/grep.c:662 +#: builtin/grep.c:660 msgid "descend at most <depth> levels" msgstr "durchläuft höchstens <Tiefe> Ebenen" -#: builtin/grep.c:666 +#: builtin/grep.c:664 msgid "use extended POSIX regular expressions" msgstr "verwendet erweiterte reguläre Ausdrücke aus POSIX" -#: builtin/grep.c:669 +#: builtin/grep.c:667 msgid "use basic POSIX regular expressions (default)" msgstr "verwendet grundlegende reguläre Ausdrücke aus POSIX (Standard)" -#: builtin/grep.c:672 +#: builtin/grep.c:670 msgid "interpret patterns as fixed strings" msgstr "interpretiert Muster als feste Zeichenketten" -#: builtin/grep.c:675 +#: builtin/grep.c:673 msgid "use Perl-compatible regular expressions" msgstr "verwendet Perl-kompatible reguläre Ausdrücke" -#: builtin/grep.c:678 +#: builtin/grep.c:676 msgid "show line numbers" msgstr "zeigt Zeilennummern" -#: builtin/grep.c:679 +#: builtin/grep.c:677 msgid "don't show filenames" msgstr "zeigt keine Dateinamen" -#: builtin/grep.c:680 +#: builtin/grep.c:678 msgid "show filenames" msgstr "zeigt Dateinamen" -#: builtin/grep.c:682 +#: builtin/grep.c:680 msgid "show filenames relative to top directory" msgstr "zeigt Dateinamen relativ zum Projektverzeichnis" -#: builtin/grep.c:684 +#: builtin/grep.c:682 msgid "show only filenames instead of matching lines" msgstr "zeigt nur Dateinamen anstatt übereinstimmende Zeilen" -#: builtin/grep.c:686 +#: builtin/grep.c:684 msgid "synonym for --files-with-matches" msgstr "Synonym für --files-with-matches" -#: builtin/grep.c:689 +#: builtin/grep.c:687 msgid "show only the names of files without match" msgstr "zeigt nur die Dateinamen ohne Ãœbereinstimmungen" -#: builtin/grep.c:691 +#: builtin/grep.c:689 msgid "print NUL after filenames" msgstr "gibt NUL-Zeichen nach Dateinamen aus" -#: builtin/grep.c:693 +#: builtin/grep.c:691 msgid "show the number of matches instead of matching lines" msgstr "zeigt, anstatt der Zeilen, die Anzahl der übereinstimmenden Zeilen" -#: builtin/grep.c:694 +#: builtin/grep.c:692 msgid "highlight matches" msgstr "hebt Ãœbereinstimmungen hervor" -#: builtin/grep.c:696 +#: builtin/grep.c:694 msgid "print empty line between matches from different files" msgstr "" "gibt eine Leerzeile zwischen Ãœbereinstimmungen in verschiedenen Dateien aus" -#: builtin/grep.c:698 +#: builtin/grep.c:696 msgid "show filename only once above matches from same file" msgstr "" "zeigt den Dateinamen nur einmal oberhalb der Ãœbereinstimmungen aus dieser " "Datei an" -#: builtin/grep.c:701 +#: builtin/grep.c:699 msgid "show <n> context lines before and after matches" msgstr "zeigt <n> Zeilen vor und nach den Ãœbereinstimmungen an" -#: builtin/grep.c:704 +#: builtin/grep.c:702 msgid "show <n> context lines before matches" msgstr "zeigt <n> Zeilen vor den Ãœbereinstimmungen an" -#: builtin/grep.c:706 +#: builtin/grep.c:704 msgid "show <n> context lines after matches" msgstr "zeigt <n> Zeilen nach den Ãœbereinstimmungen an" -#: builtin/grep.c:707 +#: builtin/grep.c:705 msgid "shortcut for -C NUM" msgstr "Kurzform für -C NUM" -#: builtin/grep.c:710 +#: builtin/grep.c:708 msgid "show a line with the function name before matches" msgstr "zeigt eine Zeile mit dem Funktionsnamen vor Ãœbereinstimmungen an" -#: builtin/grep.c:712 +#: builtin/grep.c:710 msgid "show the surrounding function" msgstr "zeigt die umgebende Funktion an" -#: builtin/grep.c:715 +#: builtin/grep.c:713 msgid "read patterns from file" msgstr "liest Muster von einer Datei" -#: builtin/grep.c:717 +#: builtin/grep.c:715 msgid "match <pattern>" msgstr "findet <Muster>" -#: builtin/grep.c:719 +#: builtin/grep.c:717 msgid "combine patterns specified with -e" msgstr "kombiniert Muster, die mit -e angegeben wurden" -#: builtin/grep.c:731 +#: builtin/grep.c:729 msgid "indicate hit with exit status without output" msgstr "zeigt Ãœbereinstimmungen nur durch Beendigungsstatus an" -#: builtin/grep.c:733 +#: builtin/grep.c:731 msgid "show only matches from files that match all patterns" msgstr "zeigt nur Ãœbereinstimmungen von Dateien, die allen Mustern entsprechen" -#: builtin/grep.c:735 +#: builtin/grep.c:733 msgid "show parse tree for grep expression" msgstr "zeigt geparstes Verzeichnis für \"grep\"-Ausdruck" -#: builtin/grep.c:739 +#: builtin/grep.c:737 msgid "pager" msgstr "Anzeigeprogramm" -#: builtin/grep.c:739 +#: builtin/grep.c:737 msgid "show matching files in the pager" msgstr "zeigt Dateien mit Ãœbereinstimmungen im Anzeigeprogramm" -#: builtin/grep.c:742 +#: builtin/grep.c:740 msgid "allow calling of grep(1) (ignored by this build)" msgstr "erlaubt den Aufruf von grep(1) (von dieser Programmversion ignoriert)" -#: builtin/grep.c:743 builtin/show-ref.c:187 +#: builtin/grep.c:741 builtin/show-ref.c:187 msgid "show usage" msgstr "zeigt Verwendung" -#: builtin/grep.c:810 +#: builtin/grep.c:808 msgid "no pattern given." msgstr "keine Muster angegeben" -#: builtin/grep.c:868 +#: builtin/grep.c:866 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:891 +#: builtin/grep.c:892 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:896 +#: builtin/grep.c:897 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:899 +#: builtin/grep.c:900 msgid "--[no-]exclude-standard cannot be used for tracked contents." msgstr "" "Die Option --[no-]exclude-standard kann nicht mit beobachteten Inhalten " "verwendet werden." -#: builtin/grep.c:907 +#: builtin/grep.c:908 msgid "both --cached and trees are given." msgstr "Die Option --cached kann nicht mit \"Tree\"-Objekten verwendet werden." @@ -5759,7 +5805,7 @@ msgstr "" msgid "git hash-object --stdin-paths < <list-of-paths>" msgstr "git hash-object --stdin-paths < <Liste-von-Pfaden>" -#: builtin/hash-object.c:72 builtin/tag.c:521 +#: builtin/hash-object.c:72 builtin/tag.c:609 msgid "type" msgstr "Art" @@ -5903,281 +5949,292 @@ msgstr "Verwendung: %s%s" msgid "`git %s' is aliased to `%s'" msgstr "für `git %s' wurde der Alias `%s' angelegt" -#: builtin/index-pack.c:184 +#: builtin/index-pack.c:145 +#, c-format +msgid "unable to open %s" +msgstr "kann %s nicht öffnen" + +#: builtin/index-pack.c:191 #, c-format msgid "object type mismatch at %s" msgstr "Objekt-Typen passen bei %s nicht zusammen" -#: builtin/index-pack.c:204 -msgid "object of unexpected type" -msgstr "Objekt hat unerwarteten Typ" +#: builtin/index-pack.c:211 +#, c-format +msgid "did not receive expected object %s" +msgstr "konnte erwartetes Objekt %s nicht empfangen" -#: builtin/index-pack.c:244 +#: builtin/index-pack.c:214 +#, c-format +msgid "object %s: expected type %s, found %s" +msgstr "Objekt %s: erwarteter Typ %s, %s gefunden" + +#: builtin/index-pack.c:256 #, c-format msgid "cannot fill %d byte" msgid_plural "cannot fill %d bytes" msgstr[0] "kann %d Byte nicht lesen" msgstr[1] "kann %d Bytes nicht lesen" -#: builtin/index-pack.c:254 +#: builtin/index-pack.c:266 msgid "early EOF" msgstr "zu frühes Dateiende" -#: builtin/index-pack.c:255 +#: builtin/index-pack.c:267 msgid "read error on input" msgstr "Fehler beim Lesen der Eingabe" -#: builtin/index-pack.c:267 +#: builtin/index-pack.c:279 msgid "used more bytes than were available" msgstr "verwendete mehr Bytes als verfügbar waren" -#: builtin/index-pack.c:274 +#: builtin/index-pack.c:286 msgid "pack too large for current definition of off_t" msgstr "Paket ist zu groß für die aktuelle Definition von off_t" -#: builtin/index-pack.c:290 +#: builtin/index-pack.c:302 #, c-format msgid "unable to create '%s'" msgstr "konnte '%s' nicht erstellen" -#: builtin/index-pack.c:295 +#: builtin/index-pack.c:307 #, c-format msgid "cannot open packfile '%s'" msgstr "Kann Paketdatei '%s' nicht öffnen" -#: builtin/index-pack.c:309 +#: builtin/index-pack.c:321 msgid "pack signature mismatch" msgstr "Paketsignatur stimmt nicht überein" -#: builtin/index-pack.c:311 +#: builtin/index-pack.c:323 #, c-format msgid "pack version %<PRIu32> unsupported" msgstr "Paketversion %<PRIu32> nicht unterstützt" -#: builtin/index-pack.c:329 +#: builtin/index-pack.c:341 #, c-format msgid "pack has bad object at offset %lu: %s" msgstr "Paket hat ein ungültiges Objekt bei Versatz %lu: %s" -#: builtin/index-pack.c:451 +#: builtin/index-pack.c:462 #, c-format msgid "inflate returned %d" msgstr "Dekomprimierung gab %d zurück" -#: builtin/index-pack.c:500 +#: builtin/index-pack.c:511 msgid "offset value overflow for delta base object" msgstr "Wert für Versatz bei Differenzobjekt übergelaufen" -#: builtin/index-pack.c:508 +#: builtin/index-pack.c:519 msgid "delta base offset is out of bound" msgstr "" "Wert für Versatz bei Differenzobjekt liegt außerhalb des gültigen Bereichs" -#: builtin/index-pack.c:516 +#: builtin/index-pack.c:527 #, c-format msgid "unknown object type %d" msgstr "Unbekannter Objekt-Typ %d" -#: builtin/index-pack.c:547 +#: builtin/index-pack.c:558 msgid "cannot pread pack file" msgstr "Kann Paketdatei %s nicht lesen" -#: builtin/index-pack.c:549 +#: builtin/index-pack.c:560 #, c-format msgid "premature end of pack file, %lu byte missing" msgid_plural "premature end of pack file, %lu bytes missing" msgstr[0] "frühzeitiges Ende der Paketdatei, vermisse %lu Byte" msgstr[1] "frühzeitiges Ende der Paketdatei, vermisse %lu Bytes" -#: builtin/index-pack.c:575 +#: builtin/index-pack.c:586 msgid "serious inflate inconsistency" msgstr "ernsthafte Inkonsistenz nach Dekomprimierung" -#: builtin/index-pack.c:666 builtin/index-pack.c:672 builtin/index-pack.c:695 -#: builtin/index-pack.c:729 builtin/index-pack.c:738 +#: builtin/index-pack.c:677 builtin/index-pack.c:683 builtin/index-pack.c:706 +#: builtin/index-pack.c:740 builtin/index-pack.c:749 #, c-format msgid "SHA1 COLLISION FOUND WITH %s !" msgstr "SHA1 KOLLISION MIT %s GEFUNDEN !" -#: builtin/index-pack.c:669 builtin/pack-objects.c:162 +#: builtin/index-pack.c:680 builtin/pack-objects.c:162 #: builtin/pack-objects.c:254 #, c-format msgid "unable to read %s" msgstr "kann %s nicht lesen" -#: builtin/index-pack.c:735 +#: builtin/index-pack.c:746 #, c-format msgid "cannot read existing object %s" msgstr "Kann existierendes Objekt %s nicht lesen." -#: builtin/index-pack.c:749 +#: builtin/index-pack.c:760 #, c-format msgid "invalid blob object %s" msgstr "ungültiges Blob-Objekt %s" -#: builtin/index-pack.c:763 +#: builtin/index-pack.c:774 #, c-format msgid "invalid %s" msgstr "Ungültiger Objekt-Typ %s" -#: builtin/index-pack.c:766 +#: builtin/index-pack.c:777 msgid "Error in object" msgstr "Fehler in Objekt" -#: builtin/index-pack.c:768 +#: builtin/index-pack.c:779 #, c-format msgid "Not all child objects of %s are reachable" msgstr "Nicht alle Kind-Objekte von %s sind erreichbar" -#: builtin/index-pack.c:839 builtin/index-pack.c:869 +#: builtin/index-pack.c:851 builtin/index-pack.c:881 msgid "failed to apply delta" msgstr "Konnte Dateiunterschied nicht anwenden" -#: builtin/index-pack.c:1010 +#: builtin/index-pack.c:1022 msgid "Receiving objects" msgstr "Empfange Objekte" -#: builtin/index-pack.c:1010 +#: builtin/index-pack.c:1022 msgid "Indexing objects" msgstr "Indiziere Objekte" -#: builtin/index-pack.c:1036 +#: builtin/index-pack.c:1048 msgid "pack is corrupted (SHA1 mismatch)" msgstr "Paket ist beschädigt (SHA1 unterschiedlich)" -#: builtin/index-pack.c:1041 +#: builtin/index-pack.c:1053 msgid "cannot fstat packfile" msgstr "kann Paketdatei nicht lesen" -#: builtin/index-pack.c:1044 +#: builtin/index-pack.c:1056 msgid "pack has junk at the end" msgstr "Paketende enthält nicht verwendbaren Inhalt" -#: builtin/index-pack.c:1055 +#: builtin/index-pack.c:1067 msgid "confusion beyond insanity in parse_pack_objects()" msgstr "Fehler beim Ausführen von \"parse_pack_objects()\"" -#: builtin/index-pack.c:1078 +#: builtin/index-pack.c:1090 msgid "Resolving deltas" msgstr "Löse Unterschiede auf" -#: builtin/index-pack.c:1088 +#: builtin/index-pack.c:1100 #, c-format msgid "unable to create thread: %s" msgstr "kann Thread nicht erzeugen: %s" -#: builtin/index-pack.c:1130 +#: builtin/index-pack.c:1142 msgid "confusion beyond insanity" msgstr "Fehler beim Auflösen der Unterschiede" -#: builtin/index-pack.c:1138 +#: builtin/index-pack.c:1150 #, c-format msgid "completed with %d local objects" msgstr "abgeschlossen mit %d lokalen Objekten" -#: builtin/index-pack.c:1148 +#: builtin/index-pack.c:1160 #, c-format msgid "Unexpected tail checksum for %s (disk corruption?)" msgstr "Unerwartete Prüfsumme für %s (Festplattenfehler?)" -#: builtin/index-pack.c:1152 +#: builtin/index-pack.c:1164 #, c-format msgid "pack has %d unresolved delta" msgid_plural "pack has %d unresolved deltas" msgstr[0] "Paket hat %d unaufgelöste Unterschied" msgstr[1] "Paket hat %d unaufgelöste Unterschiede" -#: builtin/index-pack.c:1177 +#: builtin/index-pack.c:1189 #, c-format msgid "unable to deflate appended object (%d)" msgstr "Konnte angehängtes Objekt (%d) nicht komprimieren" -#: builtin/index-pack.c:1256 +#: builtin/index-pack.c:1268 #, c-format msgid "local object %s is corrupt" msgstr "lokales Objekt %s ist beschädigt" -#: builtin/index-pack.c:1280 +#: builtin/index-pack.c:1292 msgid "error while closing pack file" msgstr "Fehler beim Schließen der Paketdatei" -#: builtin/index-pack.c:1293 +#: builtin/index-pack.c:1305 #, c-format msgid "cannot write keep file '%s'" msgstr "Kann Paketbeschreibungsdatei '%s' nicht schreiben" -#: builtin/index-pack.c:1301 +#: builtin/index-pack.c:1313 #, c-format msgid "cannot close written keep file '%s'" msgstr "Kann eben erstellte Paketbeschreibungsdatei '%s' nicht schließen" -#: builtin/index-pack.c:1314 +#: builtin/index-pack.c:1326 msgid "cannot store pack file" msgstr "Kann Paketdatei nicht speichern" -#: builtin/index-pack.c:1325 +#: builtin/index-pack.c:1337 msgid "cannot store index file" msgstr "Kann Indexdatei nicht speichern" -#: builtin/index-pack.c:1358 +#: builtin/index-pack.c:1370 #, c-format msgid "bad pack.indexversion=%<PRIu32>" msgstr "\"pack.indexversion=%<PRIu32>\" ist ungültig" -#: builtin/index-pack.c:1364 +#: builtin/index-pack.c:1376 #, c-format msgid "invalid number of threads specified (%d)" msgstr "ungültige Anzahl von Threads angegeben (%d)" -#: builtin/index-pack.c:1368 builtin/index-pack.c:1546 +#: builtin/index-pack.c:1380 builtin/index-pack.c:1559 #, c-format msgid "no threads support, ignoring %s" msgstr "keine Unterstützung von Threads, '%s' wird ignoriert" -#: builtin/index-pack.c:1426 +#: builtin/index-pack.c:1438 #, c-format msgid "Cannot open existing pack file '%s'" msgstr "Kann existierende Paketdatei '%s' nicht öffnen" -#: builtin/index-pack.c:1428 +#: builtin/index-pack.c:1440 #, 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:1475 +#: builtin/index-pack.c:1487 #, 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:1482 +#: builtin/index-pack.c:1494 #, 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:1510 +#: builtin/index-pack.c:1523 msgid "Cannot come back to cwd" msgstr "Kann nicht zurück zu Arbeitsverzeichnis wechseln" -#: builtin/index-pack.c:1558 builtin/index-pack.c:1561 -#: builtin/index-pack.c:1573 builtin/index-pack.c:1577 +#: builtin/index-pack.c:1571 builtin/index-pack.c:1574 +#: builtin/index-pack.c:1586 builtin/index-pack.c:1590 #, c-format msgid "bad %s" msgstr "%s ist ungültig" -#: builtin/index-pack.c:1591 +#: builtin/index-pack.c:1604 msgid "--fix-thin cannot be used without --stdin" msgstr "Die Option --fix-thin kann nicht ohne --stdin verwendet werden." -#: builtin/index-pack.c:1595 builtin/index-pack.c:1605 +#: builtin/index-pack.c:1608 builtin/index-pack.c:1617 #, c-format msgid "packfile name '%s' does not end with '.pack'" msgstr "Name der Paketdatei '%s' endet nicht mit '.pack'" -#: builtin/index-pack.c:1614 +#: builtin/index-pack.c:1625 msgid "--verify with no packfile name given" msgstr "Die Option --verify wurde ohne Namen der Paketdatei angegeben." @@ -6292,11 +6349,11 @@ msgstr "kann aktuelles Arbeitsverzeichnis nicht ermitteln" #: builtin/init-db.c:465 msgid "" -"git init [-q | --quiet] [--bare] [--template=<template-directory>] [--shared" -"[=<permissions>]] [directory]" +"git init [-q | --quiet] [--bare] [--template=<template-directory>] [--" +"shared[=<permissions>]] [directory]" msgstr "" -"git init [-q | --quiet] [--bare] [--template=<Vorlagenverzeichnis>] [--shared" -"[=<Berechtigungen>]] [Verzeichnis]" +"git init [-q | --quiet] [--bare] [--template=<Vorlagenverzeichnis>] [--" +"shared[=<Berechtigungen>]] [Verzeichnis]" #: builtin/init-db.c:488 msgid "permissions" @@ -6306,7 +6363,7 @@ msgstr "Berechtigungen" msgid "specify that the git repository is to be shared amongst several users" msgstr "gibt an, dass das Git-Repository mit mehreren Benutzern geteilt wird" -#: builtin/init-db.c:491 builtin/prune-packed.c:79 builtin/repack.c:168 +#: builtin/init-db.c:491 builtin/prune-packed.c:79 builtin/repack.c:172 msgid "be quiet" msgstr "weniger Ausgaben" @@ -6346,38 +6403,38 @@ msgstr "git log [<Optionen>] [Commitbereich>] [[--] <Pfad>...]\n" msgid " or: git show [options] <object>..." msgstr " oder: git show [Optionen] <Objekt>..." -#: builtin/log.c:125 +#: builtin/log.c:127 msgid "suppress diff output" msgstr "unterdrückt Ausgabe der Unterschiede" -#: builtin/log.c:126 +#: builtin/log.c:128 msgid "show source" msgstr "zeigt Quelle" -#: builtin/log.c:127 +#: builtin/log.c:129 msgid "Use mail map file" msgstr "verwendet \"mailmap\"-Datei" -#: builtin/log.c:128 +#: builtin/log.c:130 msgid "decorate options" msgstr "decorate-Optionen" -#: builtin/log.c:231 +#: builtin/log.c:229 #, c-format msgid "Final output: %d %s\n" msgstr "letzte Ausgabe: %d %s\n" -#: builtin/log.c:473 builtin/log.c:565 +#: builtin/log.c:470 builtin/log.c:562 #, c-format msgid "Could not read object %s" msgstr "Kann Objekt %s nicht lesen." -#: builtin/log.c:589 +#: builtin/log.c:586 #, c-format msgid "Unknown type: %d" msgstr "Unbekannter Typ: %d" -#: builtin/log.c:689 +#: builtin/log.c:687 msgid "format.headers without value" msgstr "format.headers ohne Wert" @@ -6398,197 +6455,206 @@ msgstr "Brauche genau einen Commit-Bereich." msgid "Not a range." msgstr "Kein Commit-Bereich." -#: builtin/log.c:911 +#: builtin/log.c:916 msgid "Cover letter needs email format" msgstr "Anschreiben benötigt E-Mail-Format" -#: builtin/log.c:987 +#: builtin/log.c:995 #, c-format msgid "insane in-reply-to: %s" msgstr "ungültiges in-reply-to: %s" -#: builtin/log.c:1015 +#: builtin/log.c:1023 msgid "git format-patch [options] [<since> | <revision range>]" msgstr "git format-patch [Optionen] [<seit> | <Commitbereich>]" -#: builtin/log.c:1060 +#: builtin/log.c:1068 msgid "Two output directories?" msgstr "Zwei Ausgabeverzeichnisse?" -#: builtin/log.c:1175 +#: builtin/log.c:1183 msgid "use [PATCH n/m] even with a single patch" msgstr "verwendet [PATCH n/m] auch mit einzelnem Patch" -#: builtin/log.c:1178 +#: builtin/log.c:1186 msgid "use [PATCH] even with multiple patches" msgstr "verwendet [PATCH] auch mit mehreren Patches" -#: builtin/log.c:1182 +#: builtin/log.c:1190 msgid "print patches to standard out" msgstr "Ausgabe der Patches in Standard-Ausgabe" -#: builtin/log.c:1184 +#: builtin/log.c:1192 msgid "generate a cover letter" msgstr "erzeugt ein Deckblatt" -#: builtin/log.c:1186 +#: builtin/log.c:1194 msgid "use simple number sequence for output file names" msgstr "verwendet einfache Nummernfolge für die Namen der Ausgabedateien" -#: builtin/log.c:1187 +#: builtin/log.c:1195 msgid "sfx" msgstr "Dateiendung" -#: builtin/log.c:1188 +#: builtin/log.c:1196 msgid "use <sfx> instead of '.patch'" msgstr "verwendet <Dateiendung> anstatt '.patch'" -#: builtin/log.c:1190 +#: builtin/log.c:1198 msgid "start numbering patches at <n> instead of 1" msgstr "beginnt die Nummerierung der Patches bei <n> anstatt bei 1" -#: builtin/log.c:1192 +#: builtin/log.c:1200 msgid "mark the series as Nth re-roll" msgstr "kennzeichnet die Serie als n-te Fassung" -#: builtin/log.c:1194 +#: builtin/log.c:1202 msgid "Use [<prefix>] instead of [PATCH]" msgstr "verwendet [<Präfix>] anstatt [PATCH]" -#: builtin/log.c:1197 +#: builtin/log.c:1205 msgid "store resulting files in <dir>" msgstr "speichert erzeugte Dateien in <Verzeichnis>" -#: builtin/log.c:1200 +#: builtin/log.c:1208 msgid "don't strip/add [PATCH]" msgstr "[PATCH] wird nicht entfernt/hinzugefügt" -#: builtin/log.c:1203 +#: builtin/log.c:1211 msgid "don't output binary diffs" msgstr "gibt keine binären Unterschiede aus" -#: builtin/log.c:1205 +#: builtin/log.c:1213 msgid "don't include a patch matching a commit upstream" msgstr "" "schließt keine Patches ein, die einem Commit im Upstream-Branch entsprechen" -#: builtin/log.c:1207 +#: builtin/log.c:1215 msgid "show patch format instead of default (patch + stat)" msgstr "zeigt Patchformat anstatt des Standards (Patch + Zusammenfassung)" -#: builtin/log.c:1209 +#: builtin/log.c:1217 msgid "Messaging" -msgstr "Email-Einstellungen" +msgstr "E-Mail-Einstellungen" -#: builtin/log.c:1210 +#: builtin/log.c:1218 msgid "header" msgstr "Header" -#: builtin/log.c:1211 +#: builtin/log.c:1219 msgid "add email header" -msgstr "fügt Email-Header hinzu" +msgstr "fügt E-Mail-Header hinzu" -#: builtin/log.c:1212 builtin/log.c:1214 +#: builtin/log.c:1220 builtin/log.c:1222 msgid "email" -msgstr "Email" +msgstr "E-Mail" -#: builtin/log.c:1212 +#: builtin/log.c:1220 msgid "add To: header" msgstr "fügt \"To:\"-Header hinzu" -#: builtin/log.c:1214 +#: builtin/log.c:1222 msgid "add Cc: header" msgstr "fügt \"Cc:\"-Header hinzu" -#: builtin/log.c:1216 +#: builtin/log.c:1224 msgid "ident" msgstr "Ident" -#: builtin/log.c:1217 +#: builtin/log.c:1225 msgid "set From address to <ident> (or committer ident if absent)" msgstr "" "setzt \"From\"-Adresse auf <Ident> (oder Ident des Commit-Erstellers,wenn " "fehlend)" -#: builtin/log.c:1219 +#: builtin/log.c:1227 msgid "message-id" msgstr "message-id" -#: builtin/log.c:1220 +#: builtin/log.c:1228 msgid "make first mail a reply to <message-id>" -msgstr "macht aus erster Email eine Antwort zu <message-id>" +msgstr "macht aus erster E-Mail eine Antwort zu <message-id>" -#: builtin/log.c:1221 builtin/log.c:1224 +#: builtin/log.c:1229 builtin/log.c:1232 msgid "boundary" msgstr "Grenze" -#: builtin/log.c:1222 +#: builtin/log.c:1230 msgid "attach the patch" msgstr "hängt einen Patch an" -#: builtin/log.c:1225 +#: builtin/log.c:1233 msgid "inline the patch" msgstr "fügt den Patch direkt in die Nachricht ein" -#: builtin/log.c:1229 +#: builtin/log.c:1237 msgid "enable message threading, styles: shallow, deep" msgstr "aktiviert Nachrichtenverkettung, Stile: shallow, deep" -#: builtin/log.c:1231 +#: builtin/log.c:1239 msgid "signature" msgstr "Signatur" -#: builtin/log.c:1232 +#: builtin/log.c:1240 msgid "add a signature" msgstr "fügt eine Signatur hinzu" -#: builtin/log.c:1233 +#: builtin/log.c:1242 +msgid "add a signature from a file" +msgstr "fügt eine Signatur aus einer Datei hinzu" + +#: builtin/log.c:1243 msgid "don't print the patch filenames" msgstr "zeigt keine Dateinamen der Patches" -#: builtin/log.c:1307 +#: builtin/log.c:1317 #, c-format msgid "invalid ident line: %s" msgstr "Ungültige Identifikationszeile: %s" -#: builtin/log.c:1322 +#: builtin/log.c:1332 msgid "-n and -k are mutually exclusive." msgstr "Die Optionen -n und -k schließen sich gegenseitig aus." -#: builtin/log.c:1324 +#: builtin/log.c:1334 msgid "--subject-prefix and -k are mutually exclusive." msgstr "Die Optionen --subject-prefix und -k schließen sich gegenseitig aus." -#: builtin/log.c:1332 +#: builtin/log.c:1342 msgid "--name-only does not make sense" msgstr "Die Option --name-only kann nicht verwendet werden." -#: builtin/log.c:1334 +#: builtin/log.c:1344 msgid "--name-status does not make sense" msgstr "Die Option --name-status kann nicht verwendet werden." -#: builtin/log.c:1336 +#: builtin/log.c:1346 msgid "--check does not make sense" msgstr "Die Option --check kann nicht verwendet werden." -#: builtin/log.c:1359 +#: builtin/log.c:1369 msgid "standard output, or directory, which one?" msgstr "Standard-Ausgabe oder Verzeichnis, welches von beidem?" -#: builtin/log.c:1361 +#: builtin/log.c:1371 #, c-format msgid "Could not create directory '%s'" msgstr "Konnte Verzeichnis '%s' nicht erstellen." -#: builtin/log.c:1509 +#: builtin/log.c:1468 +#, c-format +msgid "unable to read signature file '%s'" +msgstr "Konnte Signatur-Datei '%s' nicht lesen" + +#: builtin/log.c:1531 msgid "Failed to create output files" msgstr "Fehler beim Erstellen der Ausgabedateien." -#: builtin/log.c:1558 +#: builtin/log.c:1579 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]" msgstr "git cherry [-v] [<Upstream> [<Branch> [<Limit>]]]" -#: builtin/log.c:1613 +#: builtin/log.c:1634 #, c-format msgid "" "Could not find a tracked remote branch, please specify <upstream> manually.\n" @@ -6596,7 +6662,7 @@ msgstr "" "Konnte gefolgten Remote-Branch nicht finden, bitte geben Sie <Upstream> " "manuell an.\n" -#: builtin/log.c:1626 builtin/log.c:1628 builtin/log.c:1640 +#: builtin/log.c:1647 builtin/log.c:1649 builtin/log.c:1661 #, c-format msgid "Unknown commit %s" msgstr "Unbekannter Commit %s" @@ -6889,33 +6955,33 @@ msgstr "Ungültiger branch.%s.mergeoptions String: %s" msgid "git write-tree failed to write a tree" msgstr "\"git write-tree\" schlug beim Schreiben eines \"Tree\"-Objektes fehl" -#: builtin/merge.c:681 +#: builtin/merge.c:678 msgid "Not handling anything other than two heads merge." msgstr "Es wird nur der Merge von zwei Branches behandelt." -#: builtin/merge.c:695 +#: builtin/merge.c:692 #, c-format msgid "Unknown option for merge-recursive: -X%s" msgstr "Unbekannte Option für merge-recursive: -X%s" -#: builtin/merge.c:709 +#: builtin/merge.c:705 #, c-format msgid "unable to write %s" msgstr "konnte %s nicht schreiben" -#: builtin/merge.c:798 +#: builtin/merge.c:794 #, c-format msgid "Could not read from '%s'" msgstr "konnte nicht von '%s' lesen" -#: builtin/merge.c:807 +#: builtin/merge.c:803 #, 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 " +"Merge wurde nicht committet; benutzen Sie 'git commit', um den Merge " "abzuschließen.\n" -#: builtin/merge.c:813 +#: builtin/merge.c:809 #, c-format msgid "" "Please enter a commit message to explain why this merge is necessary,\n" @@ -6924,57 +6990,57 @@ msgid "" "Lines starting with '%c' will be ignored, and an empty message aborts\n" "the commit.\n" msgstr "" -"Bitte geben Sie eine Commit-Beschreibung ein um zu erklären, warum dieser\n" +"Bitte geben Sie eine Commit-Beschreibung ein, um zu erklären, warum dieser\n" "Merge erforderlich ist, insbesondere wenn es einen aktualisierten\n" "Upstream-Branch mit einem Thema-Branch zusammenführt.\n" "\n" "Zeilen beginnend mit '%c' werden ignoriert, und eine leere Beschreibung\n" "bricht den Commit ab.\n" -#: builtin/merge.c:837 +#: builtin/merge.c:833 msgid "Empty commit message." msgstr "Leere Commit-Beschreibung" -#: builtin/merge.c:849 +#: builtin/merge.c:845 #, c-format msgid "Wonderful.\n" msgstr "Wunderbar.\n" -#: builtin/merge.c:914 +#: builtin/merge.c:908 #, 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:930 +#: builtin/merge.c:924 #, c-format msgid "'%s' is not a commit" msgstr "'%s' ist kein Commit" -#: builtin/merge.c:971 +#: builtin/merge.c:965 msgid "No current branch." msgstr "Sie befinden sich auf keinem Branch." -#: builtin/merge.c:973 +#: builtin/merge.c:967 msgid "No remote for the current branch." msgstr "Kein Remote-Repository für den aktuellen Branch." -#: builtin/merge.c:975 +#: builtin/merge.c:969 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:980 +#: builtin/merge.c:974 #, c-format msgid "No remote-tracking branch for %s from %s" msgstr "Kein Remote-Tracking-Branch für %s von %s" -#: builtin/merge.c:1136 +#: builtin/merge.c:1130 msgid "There is no merge to abort (MERGE_HEAD missing)." msgstr "Es gibt keinen Merge zum Abbrechen (vermisse MERGE_HEAD)" -#: builtin/merge.c:1152 git-pull.sh:31 +#: builtin/merge.c:1146 git-pull.sh:31 msgid "" "You have not concluded your merge (MERGE_HEAD exists).\n" "Please, commit your changes before you can merge." @@ -6982,11 +7048,11 @@ msgstr "" "Sie haben Ihren Merge nicht abgeschlossen (MERGE_HEAD existiert).\n" "Bitte committen Sie Ihre Änderungen, bevor Sie \"merge\" ausführen können." -#: builtin/merge.c:1155 git-pull.sh:34 +#: builtin/merge.c:1149 git-pull.sh:34 msgid "You have not concluded your merge (MERGE_HEAD exists)." msgstr "Sie haben Ihren Merge nicht abgeschlossen (MERGE_HEAD existiert)." -#: builtin/merge.c:1159 +#: builtin/merge.c:1153 msgid "" "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n" "Please, commit your changes before you can merge." @@ -6994,105 +7060,105 @@ msgstr "" "Sie haben \"cherry-pick\" nicht abgeschlossen (CHERRY_PICK_HEAD existiert).\n" "Bitte committen Sie Ihre Änderungen, bevor Sie \"merge\" ausführen können." -#: builtin/merge.c:1162 +#: builtin/merge.c:1156 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:1171 +#: builtin/merge.c:1165 msgid "You cannot combine --squash with --no-ff." msgstr "Sie können --squash nicht mit --no-ff kombinieren." -#: builtin/merge.c:1180 +#: builtin/merge.c:1174 msgid "No commit specified and merge.defaultToUpstream not set." msgstr "Kein Commit angegeben und merge.defaultToUpstream ist nicht gesetzt." -#: builtin/merge.c:1212 +#: builtin/merge.c:1206 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:1215 +#: builtin/merge.c:1209 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:1217 +#: builtin/merge.c:1211 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:1222 +#: builtin/merge.c:1216 #, c-format msgid "%s - not something we can merge" msgstr "%s - nichts was wir zusammenführen können" -#: builtin/merge.c:1273 +#: builtin/merge.c:1267 #, 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:1276 +#: builtin/merge.c:1270 #, 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:1279 +#: builtin/merge.c:1273 #, c-format msgid "Commit %s does not have a GPG signature." msgstr "Commit %s hat keine GPG-Signatur." -#: builtin/merge.c:1282 +#: builtin/merge.c:1276 #, 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:1366 +#: builtin/merge.c:1357 #, c-format msgid "Updating %s..%s\n" msgstr "Aktualisiere %s..%s\n" -#: builtin/merge.c:1405 +#: builtin/merge.c:1396 #, c-format msgid "Trying really trivial in-index merge...\n" msgstr "Probiere wirklich trivialen \"in-index\"-Merge...\n" -#: builtin/merge.c:1412 +#: builtin/merge.c:1403 #, c-format msgid "Nope.\n" msgstr "Nein.\n" -#: builtin/merge.c:1444 +#: builtin/merge.c:1435 msgid "Not possible to fast-forward, aborting." msgstr "Vorspulen nicht möglich, breche ab." -#: builtin/merge.c:1467 builtin/merge.c:1546 +#: builtin/merge.c:1458 builtin/merge.c:1537 #, c-format msgid "Rewinding the tree to pristine...\n" msgstr "Rücklauf des Verzeichnisses bis zum Ursprung...\n" -#: builtin/merge.c:1471 +#: builtin/merge.c:1462 #, c-format msgid "Trying merge strategy %s...\n" msgstr "Probiere Merge-Strategie %s...\n" -#: builtin/merge.c:1537 +#: builtin/merge.c:1528 #, c-format msgid "No merge strategy handled the merge.\n" msgstr "Keine Merge-Strategie behandelt diesen Merge.\n" -#: builtin/merge.c:1539 +#: builtin/merge.c:1530 #, c-format msgid "Merge with strategy %s failed.\n" msgstr "Merge mit Strategie %s fehlgeschlagen.\n" -#: builtin/merge.c:1548 +#: builtin/merge.c:1539 #, c-format msgid "Using the %s to prepare resolving by hand.\n" -msgstr "Benutzen Sie \"%s\" um die Auflösung per Hand vorzubereiten.\n" +msgstr "Benutzen Sie \"%s\", um die Auflösung per Hand vorzubereiten.\n" -#: builtin/merge.c:1560 +#: builtin/merge.c:1551 #, c-format msgid "Automatic merge went well; stopped before committing as requested\n" msgstr "" @@ -7233,7 +7299,7 @@ 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." +"Sie \"stash\", um fortzufahren." #: builtin/mv.c:156 #, c-format @@ -7248,79 +7314,79 @@ msgstr "Quellverzeichnis ist leer" msgid "not under version control" msgstr "nicht unter Versionskontrolle" -#: builtin/mv.c:207 +#: builtin/mv.c:208 msgid "destination exists" msgstr "Ziel existiert bereits" -#: builtin/mv.c:215 +#: builtin/mv.c:216 #, c-format msgid "overwriting '%s'" msgstr "überschreibe '%s'" -#: builtin/mv.c:218 +#: builtin/mv.c:219 msgid "Cannot overwrite" msgstr "Kann nicht überschreiben" -#: builtin/mv.c:221 +#: builtin/mv.c:222 msgid "multiple sources for the same target" msgstr "mehrere Quellen für das selbe Ziel" -#: builtin/mv.c:223 +#: builtin/mv.c:224 msgid "destination directory does not exist" msgstr "Zielverzeichnis existiert nicht" -#: builtin/mv.c:243 +#: builtin/mv.c:244 #, 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:726 builtin/repack.c:355 +#: builtin/mv.c:257 builtin/remote.c:725 builtin/repack.c:358 #, c-format msgid "renaming '%s' failed" msgstr "Umbenennung von '%s' fehlgeschlagen" -#: builtin/name-rev.c:258 +#: builtin/name-rev.c:255 msgid "git name-rev [options] <commit>..." msgstr "git name-rev [Optionen] <Commit>..." -#: builtin/name-rev.c:259 +#: builtin/name-rev.c:256 msgid "git name-rev [options] --all" msgstr "git name-rev [Optionen] --all" -#: builtin/name-rev.c:260 +#: builtin/name-rev.c:257 msgid "git name-rev [options] --stdin" msgstr "git name-rev [Optionen] --stdin" -#: builtin/name-rev.c:312 +#: builtin/name-rev.c:309 msgid "print only names (no SHA-1)" msgstr "zeigt nur Namen an (keine SHA-1)" -#: builtin/name-rev.c:313 +#: builtin/name-rev.c:310 msgid "only use tags to name the commits" -msgstr "verwendet nur Tags um die Commits zu benennen" +msgstr "verwendet nur Tags, um die Commits zu benennen" -#: builtin/name-rev.c:315 +#: builtin/name-rev.c:312 msgid "only use refs matching <pattern>" msgstr "verwendet nur Referenzen die <Muster> entsprechen" -#: builtin/name-rev.c:317 +#: builtin/name-rev.c:314 msgid "list all commits reachable from all refs" msgstr "listet alle Commits auf, die von allen Referenzen erreichbar sind" -#: builtin/name-rev.c:318 +#: builtin/name-rev.c:315 msgid "read from stdin" msgstr "liest von der Standard-Eingabe" -#: builtin/name-rev.c:319 +#: builtin/name-rev.c:316 msgid "allow to print `undefined` names (default)" msgstr "erlaubt Ausgabe von `undefinierten` Namen (Standard)" -#: builtin/name-rev.c:325 +#: builtin/name-rev.c:322 msgid "dereference tags in the input (internal use)" msgstr "dereferenziert Tags in der Eingabe (interne Verwendung)" @@ -7450,7 +7516,7 @@ msgstr "Konnte Ausgabe von 'show' nicht lesen." msgid "failed to finish 'show' for object '%s'" msgstr "konnte 'show' für Objekt '%s' nicht abschließen" -#: builtin/notes.c:167 builtin/tag.c:373 +#: builtin/notes.c:167 builtin/tag.c:477 #, c-format msgid "could not create file '%s'" msgstr "konnte Datei '%s' nicht erstellen" @@ -7474,12 +7540,12 @@ msgstr "Konnte Notiz-Objekt nicht schreiben" msgid "The note contents has been left in %s" msgstr "Die Notiz-Inhalte wurden in %s belassen" -#: builtin/notes.c:248 builtin/tag.c:604 +#: builtin/notes.c:248 builtin/tag.c:692 #, c-format msgid "cannot read '%s'" msgstr "kann '%s' nicht lesen" -#: builtin/notes.c:250 builtin/tag.c:607 +#: builtin/notes.c:250 builtin/tag.c:695 #, c-format msgid "could not open or read '%s'" msgstr "konnte '%s' nicht öffnen oder lesen" @@ -7487,7 +7553,7 @@ msgstr "konnte '%s' nicht öffnen oder lesen" #: builtin/notes.c:269 builtin/notes.c:320 builtin/notes.c:322 #: builtin/notes.c:382 builtin/notes.c:436 builtin/notes.c:519 #: builtin/notes.c:524 builtin/notes.c:599 builtin/notes.c:641 -#: builtin/notes.c:843 builtin/tag.c:620 +#: builtin/notes.c:843 builtin/tag.c:708 #, c-format msgid "Failed to resolve '%s' as a valid ref." msgstr "Konnte '%s' nicht als gültige Referenz auflösen." @@ -7532,7 +7598,7 @@ msgid "note contents in a file" msgstr "Notizinhalte in einer Datei" #: builtin/notes.c:415 builtin/notes.c:418 builtin/notes.c:572 -#: builtin/notes.c:575 builtin/tag.c:539 +#: builtin/notes.c:575 builtin/tag.c:627 msgid "object" msgstr "Objekt" @@ -7555,7 +7621,7 @@ msgid "" "existing notes" msgstr "" "Konnte Notizen nicht hinzufügen. Existierende Notizen für Objekt %s " -"gefunden. Verwenden Sie '-f' um die existierenden Notizen zu überschreiben." +"gefunden. Verwenden Sie '-f', um die existierenden Notizen zu überschreiben." #: builtin/notes.c:460 builtin/notes.c:537 #, c-format @@ -7583,7 +7649,7 @@ msgid "" "existing notes" msgstr "" "Kann Notizen nicht kopieren. Existierende Notizen für Objekt %s gefunden. " -"Verwenden Sie '-f' um die existierenden Notizen zu überschreiben." +"Verwenden Sie '-f', um die existierenden Notizen zu überschreiben." #: builtin/notes.c:543 #, c-format @@ -7654,7 +7720,7 @@ msgstr "Notiz-Referenz" msgid "use notes from <notes_ref>" msgstr "verwendet Notizen von <Notiz-Referenz>" -#: builtin/notes.c:978 builtin/remote.c:1593 +#: builtin/notes.c:978 builtin/remote.c:1616 #, c-format msgid "Unknown subcommand: %s" msgstr "Unbekanntes Unterkommando: %s" @@ -7680,167 +7746,169 @@ msgstr "Schreibe Objekte" #: 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" +msgstr "" +"Deaktiviere Schreiben des Bitmap-Index, da einige Objekte nicht in\n" "eine Pack-Datei geschrieben wurden" #: builtin/pack-objects.c:2174 msgid "Compressing objects" msgstr "Komprimiere Objekte" -#: builtin/pack-objects.c:2530 +#: builtin/pack-objects.c:2526 #, c-format msgid "unsupported index version %s" msgstr "Nicht unterstützte Staging-Area-Version %s" -#: builtin/pack-objects.c:2534 +#: builtin/pack-objects.c:2530 #, c-format msgid "bad index version '%s'" msgstr "Ungültige Staging-Area-Version '%s'" -#: builtin/pack-objects.c:2557 +#: builtin/pack-objects.c:2553 #, c-format msgid "option %s does not accept negative form" msgstr "Option %s akzeptiert keine negative Form" -#: builtin/pack-objects.c:2561 +#: builtin/pack-objects.c:2557 #, c-format msgid "unable to parse value '%s' for option %s" msgstr "konnte Wert '%s' für Option %s nicht parsen" -#: builtin/pack-objects.c:2580 +#: builtin/pack-objects.c:2576 msgid "do not show progress meter" msgstr "zeigt keine Fortschrittsanzeige" -#: builtin/pack-objects.c:2582 +#: builtin/pack-objects.c:2578 msgid "show progress meter" msgstr "zeigt Fortschrittsanzeige" -#: builtin/pack-objects.c:2584 +#: builtin/pack-objects.c:2580 msgid "show progress meter during object writing phase" msgstr "zeigt Forschrittsanzeige während der Phase des Schreibens der Objekte" -#: builtin/pack-objects.c:2587 +#: builtin/pack-objects.c:2583 msgid "similar to --all-progress when progress meter is shown" msgstr "ähnlich zu --all-progress wenn Fortschrittsanzeige darstellt wird" -#: builtin/pack-objects.c:2588 +#: builtin/pack-objects.c:2584 msgid "version[,offset]" msgstr "version[,offset]" -#: builtin/pack-objects.c:2589 +#: builtin/pack-objects.c:2585 msgid "write the pack index file in the specified idx format version" msgstr "" "schreibt die Index-Datei des Paketes in der angegebenen Indexformat-Version" -#: builtin/pack-objects.c:2592 +#: builtin/pack-objects.c:2588 msgid "maximum size of each output pack file" msgstr "maximale Größe für jede ausgegebene Paketdatei" -#: builtin/pack-objects.c:2594 +#: builtin/pack-objects.c:2590 msgid "ignore borrowed objects from alternate object store" msgstr "ignoriert geliehene Objekte von alternativem Objektspeicher" -#: builtin/pack-objects.c:2596 +#: builtin/pack-objects.c:2592 msgid "ignore packed objects" msgstr "ignoriert gepackte Objekte" -#: builtin/pack-objects.c:2598 +#: builtin/pack-objects.c:2594 msgid "limit pack window by objects" msgstr "begrenzt Paketfenster durch Objekte" -#: builtin/pack-objects.c:2600 +#: builtin/pack-objects.c:2596 msgid "limit pack window by memory in addition to object limit" msgstr "begrenzt Paketfenster, zusätzlich zur Objektbegrenzung, durch Speicher" -#: builtin/pack-objects.c:2602 +#: builtin/pack-objects.c:2598 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:2604 +#: builtin/pack-objects.c:2600 msgid "reuse existing deltas" msgstr "verwendet existierende Unterschiede wieder" -#: builtin/pack-objects.c:2606 +#: builtin/pack-objects.c:2602 msgid "reuse existing objects" msgstr "verwendet existierende Objekte wieder" -#: builtin/pack-objects.c:2608 +#: builtin/pack-objects.c:2604 msgid "use OFS_DELTA objects" msgstr "verwendet OFS_DELTA Objekte" -#: builtin/pack-objects.c:2610 +#: builtin/pack-objects.c:2606 msgid "use threads when searching for best delta matches" msgstr "" "verwendet Threads bei der Suche nach den besten Ãœbereinstimmungen bei " "Unterschieden" -#: builtin/pack-objects.c:2612 +#: builtin/pack-objects.c:2608 msgid "do not create an empty pack output" msgstr "erzeugt keine leeren Pakete" -#: builtin/pack-objects.c:2614 +#: builtin/pack-objects.c:2610 msgid "read revision arguments from standard input" msgstr "liest Argumente bezüglich Commits von der Standard-Eingabe" -#: builtin/pack-objects.c:2616 +#: builtin/pack-objects.c:2612 msgid "limit the objects to those that are not yet packed" msgstr "begrenzt die Objekte zu solchen, die noch nicht gepackt wurden" -#: builtin/pack-objects.c:2619 +#: builtin/pack-objects.c:2615 msgid "include objects reachable from any reference" msgstr "schließt Objekte ein, die von jeder Referenz erreichbar sind" -#: builtin/pack-objects.c:2622 +#: builtin/pack-objects.c:2618 msgid "include objects referred by reflog entries" msgstr "" "schließt Objekte ein, die von Einträgen des Reflogs referenziert werden" -#: builtin/pack-objects.c:2625 +#: builtin/pack-objects.c:2621 msgid "output pack to stdout" msgstr "schreibt Paket in die Standard-Ausgabe" -#: builtin/pack-objects.c:2627 +#: builtin/pack-objects.c:2623 msgid "include tag objects that refer to objects to be packed" msgstr "schließt Tag-Objekte ein, die auf gepackte Objekte referenzieren" -#: builtin/pack-objects.c:2629 +#: builtin/pack-objects.c:2625 msgid "keep unreachable objects" msgstr "behält nicht erreichbare Objekte" -#: builtin/pack-objects.c:2630 parse-options.h:140 +#: builtin/pack-objects.c:2626 parse-options.h:140 msgid "time" msgstr "Zeit" -#: builtin/pack-objects.c:2631 +#: builtin/pack-objects.c:2627 msgid "unpack unreachable objects newer than <time>" msgstr "entpackt nicht erreichbare Objekte, die neuer als <Zeit> sind" -#: builtin/pack-objects.c:2634 +#: builtin/pack-objects.c:2630 msgid "create thin packs" msgstr "erzeugt dünnere Pakete" -#: builtin/pack-objects.c:2636 +#: builtin/pack-objects.c:2632 msgid "ignore packs that have companion .keep file" msgstr "ignoriert Pakete die .keep Dateien haben" -#: builtin/pack-objects.c:2638 +#: builtin/pack-objects.c:2634 msgid "pack compression level" msgstr "Komprimierungsgrad für Paketierung" -#: builtin/pack-objects.c:2640 +#: builtin/pack-objects.c:2636 msgid "do not hide commits by grafts" msgstr "verbirgt keine künstlichen Vorgänger-Commits (\"grafts\")" -#: builtin/pack-objects.c:2642 +#: builtin/pack-objects.c:2638 msgid "use a bitmap index if available to speed up counting objects" -msgstr "benutzt Bitmap-Index (falls verfügbar) zur Optimierung der Objektzählung" +msgstr "" +"benutzt Bitmap-Index (falls verfügbar) zur Optimierung der Objektzählung" -#: builtin/pack-objects.c:2644 +#: builtin/pack-objects.c:2640 msgid "write a bitmap index together with the pack index" msgstr "schreibt Bitmap-Index zusammen mit Pack-Index" -#: builtin/pack-objects.c:2723 +#: builtin/pack-objects.c:2719 msgid "Counting objects" msgstr "Zähle Objekte" @@ -7892,7 +7960,7 @@ msgstr "Kurzschrift für Tag ohne <Tag>" msgid "--delete only accepts plain target ref names" msgstr "Die Option --delete akzeptiert nur reine Referenznamen als Ziel." -#: builtin/push.c:140 +#: builtin/push.c:139 msgid "" "\n" "To choose either option permanently, see push.default in 'git help config'." @@ -7901,7 +7969,7 @@ msgstr "" "Um eine Variante permanent zu verwenden, siehe push.default in 'git help " "config'." -#: builtin/push.c:143 +#: builtin/push.c:142 #, c-format msgid "" "The upstream branch of your current branch does not match\n" @@ -7927,7 +7995,7 @@ msgstr "" " git push %s %s\n" "%s" -#: builtin/push.c:158 +#: builtin/push.c:157 #, c-format msgid "" "You are not currently on a branch.\n" @@ -7942,7 +8010,7 @@ msgstr "" "\n" " git push %s HEAD:<Name-des-Remote-Branches>\n" -#: builtin/push.c:172 +#: builtin/push.c:171 #, c-format msgid "" "The current branch %s has no upstream branch.\n" @@ -7956,13 +8024,13 @@ msgstr "" "\n" " git push --set-upstream %s %s\n" -#: builtin/push.c:180 +#: builtin/push.c:179 #, 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:183 +#: builtin/push.c:182 #, c-format msgid "" "You are pushing to remote '%s', which is not the upstream of\n" @@ -7973,7 +8041,7 @@ msgstr "" "Branches '%s' ist, ohne anzugeben, was versendet werden soll, um welchen\n" "Remote-Branch zu aktualisieren." -#: builtin/push.c:206 +#: builtin/push.c:205 msgid "" "push.default is unset; its implicit value has changed in\n" "Git 2.0 from 'matching' to 'simple'. To squelch this message\n" @@ -8024,14 +8092,14 @@ msgstr "" "von\n" "Git benutzen.)" -#: builtin/push.c:273 +#: builtin/push.c:272 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:280 +#: builtin/push.c:279 msgid "" "Updates were rejected because the tip of your current branch is behind\n" "its remote counterpart. Integrate the remote changes (e.g.\n" @@ -8045,7 +8113,7 @@ msgstr "" "Siehe auch die Sektion 'Note about fast-forwards' in 'git push --help'\n" "für weitere Details." -#: builtin/push.c:286 +#: builtin/push.c:285 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" @@ -8059,7 +8127,7 @@ msgstr "" "Siehe auch die Sektion 'Note about fast-forwards' in 'git push --help'\n" "für weitere Details." -#: builtin/push.c:292 +#: builtin/push.c:291 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" @@ -8078,13 +8146,13 @@ msgstr "" "Siehe auch die Sektion 'Note about fast-forwards' in 'git push --help'\n" "für weitere Details." -#: builtin/push.c:299 +#: builtin/push.c:298 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:302 +#: builtin/push.c:301 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" @@ -8094,22 +8162,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:361 +#: builtin/push.c:360 #, c-format msgid "Pushing to %s\n" msgstr "Versende nach %s\n" -#: builtin/push.c:365 +#: builtin/push.c:364 #, c-format msgid "failed to push some refs to '%s'" msgstr "Fehler beim Versenden einiger Referenzen nach '%s'" -#: builtin/push.c:395 +#: builtin/push.c:394 #, c-format msgid "bad repository '%s'" msgstr "ungültiges Repository '%s'" -#: builtin/push.c:396 +#: builtin/push.c:395 msgid "" "No configured push destination.\n" "Either specify the URL from the command-line or configure a remote " @@ -8131,95 +8199,95 @@ msgstr "" "\n" " git push <Name>\n" -#: builtin/push.c:411 +#: builtin/push.c:410 msgid "--all and --tags are incompatible" msgstr "Die Optionen --all und --tags sind inkompatibel." -#: builtin/push.c:412 +#: builtin/push.c:411 msgid "--all can't be combined with refspecs" msgstr "Die Option --all kann nicht mit Refspecs kombiniert werden." -#: builtin/push.c:417 +#: builtin/push.c:416 msgid "--mirror and --tags are incompatible" msgstr "Die Optionen --mirror und --tags sind inkompatibel." -#: builtin/push.c:418 +#: builtin/push.c:417 msgid "--mirror can't be combined with refspecs" msgstr "Die Option --mirror kann nicht mit Refspecs kombiniert werden." -#: builtin/push.c:423 +#: builtin/push.c:422 msgid "--all and --mirror are incompatible" msgstr "Die Optionen --all und --mirror sind inkompatibel." -#: builtin/push.c:483 +#: builtin/push.c:482 msgid "repository" msgstr "Repository" -#: builtin/push.c:484 +#: builtin/push.c:483 msgid "push all refs" msgstr "versendet alle Referenzen" -#: builtin/push.c:485 +#: builtin/push.c:484 msgid "mirror all refs" msgstr "spiegelt alle Referenzen" -#: builtin/push.c:487 +#: builtin/push.c:486 msgid "delete refs" msgstr "löscht Referenzen" -#: builtin/push.c:488 +#: builtin/push.c:487 msgid "push tags (can't be used with --all or --mirror)" msgstr "versendet Tags (kann nicht mit --all oder --mirror verwendet werden)" -#: builtin/push.c:491 +#: builtin/push.c:490 msgid "force updates" msgstr "erzwingt Aktualisierung" -#: builtin/push.c:493 +#: builtin/push.c:492 msgid "refname>:<expect" msgstr "Referenzname>:<Erwartungswert" -#: builtin/push.c:494 +#: builtin/push.c:493 msgid "require old value of ref to be at this value" msgstr "Referenz muss sich auf dem angegebenen Wert befinden" -#: builtin/push.c:496 +#: builtin/push.c:495 msgid "check" msgstr "" -#: builtin/push.c:497 +#: builtin/push.c:496 msgid "control recursive pushing of submodules" msgstr "steuert rekursiven \"push\" von Submodulen" -#: builtin/push.c:499 +#: builtin/push.c:498 msgid "use thin pack" msgstr "verwendet kleinere Pakete" -#: builtin/push.c:500 builtin/push.c:501 +#: builtin/push.c:499 builtin/push.c:500 msgid "receive pack program" msgstr "'receive pack' Programm" -#: builtin/push.c:502 +#: builtin/push.c:501 msgid "set upstream for git pull/status" msgstr "setzt Upstream für \"git pull/status\"" -#: builtin/push.c:505 +#: builtin/push.c:504 msgid "prune locally removed refs" msgstr "entfernt lokal gelöschte Referenzen" -#: builtin/push.c:507 +#: builtin/push.c:506 msgid "bypass pre-push hook" msgstr "umgeht \"pre-push hook\"" -#: builtin/push.c:508 +#: builtin/push.c:507 msgid "push missing but relevant tags" msgstr "versendet fehlende, aber relevante Tags" -#: builtin/push.c:518 +#: builtin/push.c:517 msgid "--delete is incompatible with --all, --mirror and --tags" msgstr "Die Option --delete ist inkompatibel mit --all, --mirror und --tags." -#: builtin/push.c:520 +#: builtin/push.c:519 msgid "--delete doesn't make sense without any refs" msgstr "Die Option --delete kann nur mit Referenzen verwendet werden." @@ -8450,12 +8518,12 @@ msgstr "" "Die Angabe von zu folgenden Branches kann nur mit dem Anfordern von " "Spiegelarchiven verwendet werden." -#: builtin/remote.c:185 builtin/remote.c:641 +#: builtin/remote.c:185 builtin/remote.c:640 #, c-format msgid "remote %s already exists." msgstr "externes Repository %s existiert bereits" -#: builtin/remote.c:189 builtin/remote.c:645 +#: builtin/remote.c:189 builtin/remote.c:644 #, c-format msgid "'%s' is not a valid remote name" msgstr "'%s' ist kein gültiger Name für ein Remote-Repository" @@ -8465,45 +8533,45 @@ msgstr "'%s' ist kein gültiger Name für ein Remote-Repository" msgid "Could not setup master '%s'" msgstr "Konnte symbolische Referenz für Hauptbranch von '%s' nicht einrichten" -#: builtin/remote.c:289 +#: builtin/remote.c:288 #, c-format msgid "more than one %s" msgstr "mehr als ein %s" -#: builtin/remote.c:334 +#: builtin/remote.c:333 #, c-format msgid "Could not get fetch map for refspec %s" msgstr "Konnte Fetch-Map für Refspec %s nicht bekommen" -#: builtin/remote.c:435 builtin/remote.c:443 +#: builtin/remote.c:434 builtin/remote.c:442 msgid "(matching)" msgstr "(übereinstimmend)" -#: builtin/remote.c:447 +#: builtin/remote.c:446 msgid "(delete)" msgstr "(lösche)" -#: builtin/remote.c:590 builtin/remote.c:596 builtin/remote.c:602 +#: builtin/remote.c:589 builtin/remote.c:595 builtin/remote.c:601 #, c-format msgid "Could not append '%s' to '%s'" msgstr "Konnte '%s' nicht an '%s' anhängen." -#: builtin/remote.c:634 builtin/remote.c:787 builtin/remote.c:885 +#: builtin/remote.c:633 builtin/remote.c:794 builtin/remote.c:894 #, c-format msgid "No such remote: %s" msgstr "Kein solches Remote-Repository: %s" -#: builtin/remote.c:651 +#: builtin/remote.c:650 #, c-format msgid "Could not rename config section '%s' to '%s'" msgstr "Konnte Sektion '%s' in Konfiguration nicht nach '%s' umbenennen" -#: builtin/remote.c:657 builtin/remote.c:794 +#: builtin/remote.c:656 builtin/remote.c:846 #, c-format msgid "Could not remove config section '%s'" msgstr "Konnte Sektion '%s' nicht aus Konfiguration entfernen" -#: builtin/remote.c:672 +#: builtin/remote.c:671 #, c-format msgid "" "Not updating non-default fetch refspec\n" @@ -8514,32 +8582,32 @@ msgstr "" "\t%s\n" "\tBitte aktualisieren Sie, falls notwendig, die Konfiguration manuell." -#: builtin/remote.c:678 +#: builtin/remote.c:677 #, c-format msgid "Could not append '%s'" msgstr "Konnte '%s' nicht anhängen." -#: builtin/remote.c:689 +#: builtin/remote.c:688 #, c-format msgid "Could not set '%s'" msgstr "Konnte '%s' nicht setzen" -#: builtin/remote.c:711 +#: builtin/remote.c:710 #, c-format msgid "deleting '%s' failed" msgstr "Konnte '%s' nicht löschen" -#: builtin/remote.c:745 +#: builtin/remote.c:744 #, c-format msgid "creating '%s' failed" msgstr "Konnte '%s' nicht erstellen" -#: builtin/remote.c:759 +#: builtin/remote.c:765 #, c-format msgid "Could not remove branch %s" msgstr "Konnte Branch %s nicht löschen" -#: builtin/remote.c:829 +#: builtin/remote.c:832 msgid "" "Note: A branch outside the refs/remotes/ hierarchy was not removed;\n" "to delete it, use:" @@ -8555,120 +8623,120 @@ msgstr[1] "" "entfernt;\n" "um diese zu entfernen, benutzen Sie:" -#: builtin/remote.c:938 +#: builtin/remote.c:947 #, 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:941 +#: builtin/remote.c:950 msgid " tracked" msgstr " gefolgt" -#: builtin/remote.c:943 +#: builtin/remote.c:952 msgid " stale (use 'git remote prune' to remove)" msgstr " veraltet (benutzen Sie 'git remote prune' zum Löschen)" -#: builtin/remote.c:945 +#: builtin/remote.c:954 msgid " ???" msgstr " ???" -#: builtin/remote.c:986 +#: builtin/remote.c:995 #, 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:993 +#: builtin/remote.c:1002 #, c-format msgid "rebases onto remote %s" msgstr "Rebase auf Remote-Branch %s" -#: builtin/remote.c:996 +#: builtin/remote.c:1005 #, c-format msgid " merges with remote %s" msgstr " führt mit Remote-Branch %s zusammen" -#: builtin/remote.c:997 +#: builtin/remote.c:1006 msgid " and with remote" msgstr " und mit Remote-Branch" -#: builtin/remote.c:999 +#: builtin/remote.c:1008 #, c-format msgid "merges with remote %s" msgstr "führt mit Remote-Branch %s zusammen" -#: builtin/remote.c:1000 +#: builtin/remote.c:1009 msgid " and with remote" msgstr " und mit Remote-Branch" -#: builtin/remote.c:1046 +#: builtin/remote.c:1055 msgid "create" msgstr "erstellt" -#: builtin/remote.c:1049 +#: builtin/remote.c:1058 msgid "delete" msgstr "gelöscht" -#: builtin/remote.c:1053 +#: builtin/remote.c:1062 msgid "up to date" msgstr "aktuell" -#: builtin/remote.c:1056 +#: builtin/remote.c:1065 msgid "fast-forwardable" msgstr "vorspulbar" -#: builtin/remote.c:1059 +#: builtin/remote.c:1068 msgid "local out of date" msgstr "lokal nicht aktuell" -#: builtin/remote.c:1066 +#: builtin/remote.c:1075 #, c-format msgid " %-*s forces to %-*s (%s)" msgstr " %-*s erzwingt Versandt nach %-*s (%s)" -#: builtin/remote.c:1069 +#: builtin/remote.c:1078 #, c-format msgid " %-*s pushes to %-*s (%s)" msgstr " %-*s versendet nach %-*s (%s)" -#: builtin/remote.c:1073 +#: builtin/remote.c:1082 #, c-format msgid " %-*s forces to %s" msgstr " %-*s erzwingt Versand nach %s" -#: builtin/remote.c:1076 +#: builtin/remote.c:1085 #, c-format msgid " %-*s pushes to %s" msgstr " %-*s versendet nach %s" -#: builtin/remote.c:1144 +#: builtin/remote.c:1153 msgid "do not query remotes" msgstr "keine Abfrage von Remote-Repositories" -#: builtin/remote.c:1171 +#: builtin/remote.c:1180 #, c-format msgid "* remote %s" msgstr "* Remote-Repository %s" -#: builtin/remote.c:1172 +#: builtin/remote.c:1181 #, c-format msgid " Fetch URL: %s" msgstr " URL zum Abholen: %s" -#: builtin/remote.c:1173 builtin/remote.c:1318 +#: builtin/remote.c:1182 builtin/remote.c:1329 msgid "(no URL)" msgstr "(keine URL)" -#: builtin/remote.c:1182 builtin/remote.c:1184 +#: builtin/remote.c:1191 builtin/remote.c:1193 #, c-format msgid " Push URL: %s" msgstr " URL zum Versenden: %s" -#: builtin/remote.c:1186 builtin/remote.c:1188 builtin/remote.c:1190 +#: builtin/remote.c:1195 builtin/remote.c:1197 builtin/remote.c:1199 #, c-format msgid " HEAD branch: %s" msgstr " Hauptbranch: %s" -#: builtin/remote.c:1192 +#: builtin/remote.c:1201 #, c-format msgid "" " HEAD branch (remote HEAD is ambiguous, may be one of the following):\n" @@ -8676,249 +8744,308 @@ msgstr "" " Hauptbranch (externer HEAD ist mehrdeutig, könnte einer der folgenden " "sein):\n" -#: builtin/remote.c:1204 +#: builtin/remote.c:1213 #, c-format msgid " Remote branch:%s" msgid_plural " Remote branches:%s" msgstr[0] " Remote-Branch:%s" msgstr[1] " Remote-Branches:%s" -#: builtin/remote.c:1207 builtin/remote.c:1234 +#: builtin/remote.c:1216 builtin/remote.c:1243 msgid " (status not queried)" msgstr " (Zustand nicht abgefragt)" -#: builtin/remote.c:1216 +#: builtin/remote.c:1225 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:1224 +#: builtin/remote.c:1233 msgid " Local refs will be mirrored by 'git push'" msgstr " Lokale Referenzen werden von 'git push' gespiegelt" -#: builtin/remote.c:1231 +#: builtin/remote.c:1240 #, 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:1252 +#: builtin/remote.c:1261 msgid "set refs/remotes/<name>/HEAD according to remote" msgstr "setzt refs/remotes/<Name>/HEAD gemäß dem Remote-Repository" -#: builtin/remote.c:1254 +#: builtin/remote.c:1263 msgid "delete refs/remotes/<name>/HEAD" msgstr "entfernt refs/remotes/<Name>/HEAD" -#: builtin/remote.c:1269 +#: builtin/remote.c:1278 msgid "Cannot determine remote HEAD" msgstr "Kann HEAD des Remote-Repositories nicht bestimmen" -#: builtin/remote.c:1271 +#: builtin/remote.c:1280 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:1281 +#: builtin/remote.c:1290 #, c-format msgid "Could not delete %s" msgstr "Konnte %s nicht entfernen" -#: builtin/remote.c:1289 +#: builtin/remote.c:1298 #, c-format msgid "Not a valid ref: %s" msgstr "keine gültige Referenz: %s" -#: builtin/remote.c:1291 +#: builtin/remote.c:1300 #, c-format msgid "Could not setup %s" msgstr "Konnte %s nicht einrichten" -#: builtin/remote.c:1307 +#: builtin/remote.c:1318 #, c-format msgid " %s will become dangling!" msgstr " %s wird unreferenziert!" -#: builtin/remote.c:1308 +#: builtin/remote.c:1319 #, c-format msgid " %s has become dangling!" msgstr " %s wurde unreferenziert!" -#: builtin/remote.c:1314 +#: builtin/remote.c:1325 #, c-format msgid "Pruning %s" msgstr "entferne veraltete Branches von %s" -#: builtin/remote.c:1315 +#: builtin/remote.c:1326 #, c-format msgid "URL: %s" msgstr "URL: %s" -#: builtin/remote.c:1328 +#: builtin/remote.c:1349 #, c-format msgid " * [would prune] %s" msgstr " * [würde veralteten Branch entfernen] %s" -#: builtin/remote.c:1331 +#: builtin/remote.c:1352 #, c-format msgid " * [pruned] %s" msgstr "* [veralteten Branch entfernt] %s" -#: builtin/remote.c:1374 +#: builtin/remote.c:1397 msgid "prune remotes after fetching" msgstr "entfernt veraltete Branches im Remote-Repository nach \"fetch\"" -#: builtin/remote.c:1440 builtin/remote.c:1514 +#: builtin/remote.c:1463 builtin/remote.c:1537 #, c-format msgid "No such remote '%s'" msgstr "Kein solches Remote-Repository '%s'" -#: builtin/remote.c:1460 +#: builtin/remote.c:1483 msgid "add branch" msgstr "fügt Branch hinzu" -#: builtin/remote.c:1467 +#: builtin/remote.c:1490 msgid "no remote specified" msgstr "kein Remote-Repository angegeben" -#: builtin/remote.c:1489 +#: builtin/remote.c:1512 msgid "manipulate push URLs" msgstr "manipuliert URLs für \"push\"" -#: builtin/remote.c:1491 +#: builtin/remote.c:1514 msgid "add URL" msgstr "fügt URL hinzu" -#: builtin/remote.c:1493 +#: builtin/remote.c:1516 msgid "delete URLs" msgstr "löscht URLs" -#: builtin/remote.c:1500 +#: builtin/remote.c:1523 msgid "--add --delete doesn't make sense" msgstr "" "Die Optionen --add und --delete können nicht gemeinsam verwendet werden." -#: builtin/remote.c:1540 +#: builtin/remote.c:1563 #, c-format msgid "Invalid old URL pattern: %s" msgstr "ungültiges altes URL Format: %s" -#: builtin/remote.c:1548 +#: builtin/remote.c:1571 #, c-format msgid "No such URL found: %s" msgstr "Keine solche URL gefunden: %s" -#: builtin/remote.c:1550 +#: builtin/remote.c:1573 msgid "Will not delete all non-push URLs" msgstr "Werde keine URLs entfernen, die nicht für \"push\" bestimmt sind" -#: builtin/remote.c:1564 +#: builtin/remote.c:1587 msgid "be verbose; must be placed before a subcommand" msgstr "erweiterte Ausgaben; muss vor einem Unterkommando angegeben werden" -#: builtin/repack.c:16 +#: builtin/repack.c:17 msgid "git repack [options]" msgstr "git repack [Optionen]" -#: builtin/repack.c:156 +#: builtin/repack.c:160 msgid "pack everything in a single pack" msgstr "packt alles in eine einzige Pack-Datei" -#: builtin/repack.c:158 +#: builtin/repack.c:162 msgid "same as -a, and turn unreachable objects loose" msgstr "genau wie -a, unerreichbare Objekte werden aber nicht gelöscht" -#: builtin/repack.c:161 +#: builtin/repack.c:165 msgid "remove redundant packs, and run git-prune-packed" msgstr "entfernt redundante Pakete und führt \"git-prune-packed\" aus" -#: builtin/repack.c:163 +#: builtin/repack.c:167 msgid "pass --no-reuse-delta to git-pack-objects" msgstr "übergibt --no-reuse-delta an git-pack-objects" -#: builtin/repack.c:165 +#: builtin/repack.c:169 msgid "pass --no-reuse-object to git-pack-objects" msgstr "übergibt --no-reuse-object an git-pack-objects" -#: builtin/repack.c:167 +#: builtin/repack.c:171 msgid "do not run git-update-server-info" msgstr "git-update-server-info nicht ausführen" -#: builtin/repack.c:170 +#: builtin/repack.c:174 msgid "pass --local to git-pack-objects" msgstr "übergibt --local an git-pack-objects" -#: builtin/repack.c:172 +#: builtin/repack.c:176 msgid "write bitmap index" msgstr "schreibt Bitmap-Index" -#: builtin/repack.c:173 +#: builtin/repack.c:177 msgid "approxidate" msgstr "Datumsangabe" -#: builtin/repack.c:174 +#: builtin/repack.c:178 msgid "with -A, do not loosen objects older than this" msgstr "mit -A, löscht keine Objekte älter als dieses Datum" -#: builtin/repack.c:176 +#: builtin/repack.c:180 msgid "size of the window used for delta compression" msgstr "Größe des Fensters für die Delta-Kompression" -#: builtin/repack.c:177 builtin/repack.c:181 +#: builtin/repack.c:181 builtin/repack.c:185 msgid "bytes" msgstr "Bytes" -#: builtin/repack.c:178 +#: builtin/repack.c:182 msgid "same as the above, but limit memory size instead of entries count" msgstr "" "gleiches wie oben, limitiert aber die Speichergröße anstatt der\n" "Anzahl der Einträge" -#: builtin/repack.c:180 +#: builtin/repack.c:184 msgid "limits the maximum delta depth" msgstr "limitiert die maximale Delta-Tiefe" -#: builtin/repack.c:182 +#: builtin/repack.c:186 msgid "maximum size of each packfile" msgstr "maximale Größe für jede Paketdatei" -#: builtin/repack.c:184 +#: builtin/repack.c:188 msgid "repack objects in packs marked with .keep" -msgstr "packt Objekte um, die sich in mit .keep markierten Pack-Dateien befinden" +msgstr "" +"packt Objekte um, die sich in mit .keep markierten Pack-Dateien befinden" -#: builtin/repack.c:371 +#: builtin/repack.c:374 #, c-format msgid "removing '%s' failed" msgstr "Löschen von '%s' fehlgeschlagen" -#: builtin/replace.c:17 +#: builtin/replace.c:19 msgid "git replace [-f] <object> <replacement>" msgstr "git replace [-f] <Objekt> <Ersetzung>" -#: builtin/replace.c:18 +#: builtin/replace.c:20 +msgid "git replace [-f] --edit <object>" +msgstr "git replace [-f] --edit <Objekt>" + +#: builtin/replace.c:21 +msgid "git replace [-f] --graft <commit> [<parent>...]" +msgstr "git replace [-f] --graft <Commit> [<Eltern-Commit>...]" + +#: builtin/replace.c:22 msgid "git replace -d <object>..." msgstr "git replace -d <Objekt>..." -#: builtin/replace.c:19 +#: builtin/replace.c:23 msgid "git replace [--format=<format>] [-l [<pattern>]]" msgstr "git replace [--format=<Format>] [-l [<Muster>]]" -#: builtin/replace.c:174 +#: builtin/replace.c:322 builtin/replace.c:360 builtin/replace.c:388 +#, c-format +msgid "Not a valid object name: '%s'" +msgstr "Ungültiger Objekt-Name: '%s'" + +#: builtin/replace.c:352 +#, c-format +msgid "bad mergetag in commit '%s'" +msgstr "ungültiger Merge-Tag in Commit '%s'" + +#: builtin/replace.c:354 +#, c-format +msgid "malformed mergetag in commit '%s'" +msgstr "fehlerhafter Merge-Tag in Commit '%s'" + +#: builtin/replace.c:365 +#, c-format +msgid "" +"original commit '%s' contains mergetag '%s' that is discarded; use --edit " +"instead of --graft" +msgstr "" +"Der ursprüngliche Commit '%s' enthält Merge-Tag '%s', der verworfen\n" +"wird; benutzen Sie --edit anstatt --graft" + +#: builtin/replace.c:398 +#, c-format +msgid "the original commit '%s' has a gpg signature." +msgstr "Der ursprüngliche Commit '%s' hat eine GPG-Signatur." + +#: builtin/replace.c:399 +msgid "the signature will be removed in the replacement commit!" +msgstr "Die Signatur wird in dem Ersetzungs-Commit entfernt!" + +#: builtin/replace.c:405 +#, c-format +msgid "could not write replacement commit for: '%s'" +msgstr "Konnte Ersetzungs-Commit für '%s' nicht schreiben" + +#: builtin/replace.c:429 msgid "list replace refs" msgstr "listet ersetzende Referenzen auf" -#: builtin/replace.c:175 +#: builtin/replace.c:430 msgid "delete replace refs" msgstr "löscht ersetzende Referenzen" -#: builtin/replace.c:176 +#: builtin/replace.c:431 +msgid "edit existing object" +msgstr "bearbeitet existierendes Objekt" + +#: builtin/replace.c:432 +msgid "change a commit's parents" +msgstr "ändert Eltern-Commits eines Commits" + +#: builtin/replace.c:433 msgid "replace the ref if it exists" msgstr "ersetzt die Referenz, wenn sie existiert" -#: builtin/replace.c:177 +#: builtin/replace.c:434 +msgid "do not pretty-print contents for --edit" +msgstr "keine ansprechende Anzeige des Objektinhaltes für --edit" + +#: builtin/replace.c:435 msgid "use this format" msgstr "benutzt das angegebene Format" @@ -8987,100 +9114,100 @@ msgstr "HEAD ist jetzt bei %s" msgid "Cannot do a %s reset in the middle of a merge." msgstr "Kann keinen '%s'-Reset durchführen, während ein Merge im Gange ist." -#: builtin/reset.c:273 +#: builtin/reset.c:275 msgid "be quiet, only report errors" msgstr "weniger Ausgaben, meldet nur Fehler" -#: builtin/reset.c:275 +#: builtin/reset.c:277 msgid "reset HEAD and index" msgstr "setzt HEAD und Staging-Area um" -#: builtin/reset.c:276 +#: builtin/reset.c:278 msgid "reset only HEAD" msgstr "setzt nur HEAD um" -#: builtin/reset.c:278 builtin/reset.c:280 +#: builtin/reset.c:280 builtin/reset.c:282 msgid "reset HEAD, index and working tree" msgstr "setzt HEAD, Staging-Area und Arbeitsverzeichnis um" -#: builtin/reset.c:282 +#: builtin/reset.c:284 msgid "reset HEAD but keep local changes" msgstr "setzt HEAD um, behält aber lokale Änderungen" -#: builtin/reset.c:285 +#: builtin/reset.c:287 msgid "record only the fact that removed paths will be added later" msgstr "speichert nur, dass gelöschte Pfade später hinzugefügt werden sollen" -#: builtin/reset.c:302 +#: builtin/reset.c:304 #, c-format msgid "Failed to resolve '%s' as a valid revision." msgstr "Konnte '%s' nicht als gültigen Commit auflösen." -#: builtin/reset.c:305 builtin/reset.c:313 +#: builtin/reset.c:307 builtin/reset.c:315 #, c-format msgid "Could not parse object '%s'." msgstr "Konnte Objekt '%s' nicht parsen." -#: builtin/reset.c:310 +#: builtin/reset.c:312 #, c-format msgid "Failed to resolve '%s' as a valid tree." msgstr "Konnte '%s' nicht als gültiges \"Tree\"-Objekt auflösen." -#: builtin/reset.c:319 +#: builtin/reset.c:321 msgid "--patch is incompatible with --{hard,mixed,soft}" msgstr "--patch ist inkompatibel mit --{hard,mixed,soft}" -#: builtin/reset.c:328 +#: builtin/reset.c:330 msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead." msgstr "" "--mixed mit Pfaden ist veraltet; benutzen Sie stattdessen 'git reset -- " "<Pfade>'." -#: builtin/reset.c:330 +#: builtin/reset.c:332 #, c-format msgid "Cannot do %s reset with paths." msgstr "Ein '%s'-Reset mit Pfaden ist nicht möglich." -#: builtin/reset.c:340 +#: builtin/reset.c:342 #, c-format msgid "%s reset is not allowed in a bare repository" msgstr "'%s'-Reset ist in einem Bare-Repository nicht erlaubt" -#: builtin/reset.c:344 +#: builtin/reset.c:346 msgid "-N can only be used with --mixed" msgstr "-N kann nur mit -mixed benutzt werden" -#: builtin/reset.c:361 +#: builtin/reset.c:363 msgid "Unstaged changes after reset:" msgstr "Nicht zum Commit vorgemerkte Änderungen nach Zurücksetzung:" -#: builtin/reset.c:367 +#: builtin/reset.c:369 #, c-format msgid "Could not reset index file to revision '%s'." msgstr "Konnte Staging-Area-Datei nicht zu Commit '%s' setzen." -#: builtin/reset.c:372 +#: builtin/reset.c:373 msgid "Could not write new index file." msgstr "Konnte neue Staging-Area-Datei nicht schreiben." -#: builtin/rev-parse.c:359 +#: builtin/rev-parse.c:360 msgid "git rev-parse --parseopt [options] -- [<args>...]" msgstr "git rev-parse --parseopt [Optionen] -- [<Argumente>...]" -#: builtin/rev-parse.c:364 +#: builtin/rev-parse.c:365 msgid "keep the `--` passed as an arg" msgstr "lässt `--` als Argument" -#: builtin/rev-parse.c:366 +#: builtin/rev-parse.c:367 msgid "stop parsing after the first non-option argument" msgstr "stoppt das Parsen nach dem ersten Argument was keine Option ist" -#: builtin/rev-parse.c:369 +#: builtin/rev-parse.c:370 msgid "output in stuck long form" msgstr "" "Ausgabe in Langform mit Argumenten an den Optionen (getrennt durch '=')" -#: builtin/rev-parse.c:497 +#: builtin/rev-parse.c:498 msgid "" "git rev-parse --parseopt [options] -- [<args>...]\n" " or: git rev-parse --sq-quote [<arg>...]\n" @@ -9232,7 +9359,7 @@ msgid "" "(use -f to force removal)" msgstr "" "\n" -"(benutzen Sie -f um die Löschung zu erzwingen)" +"(benutzen Sie -f, um die Löschung zu erzwingen)" #: builtin/rm.c:240 msgid "the following file has changes staged in the index:" @@ -9246,7 +9373,7 @@ msgid "" "(use --cached to keep the file, or -f to force removal)" msgstr "" "\n" -"(benutzen Sie --cached um die Datei zu behalten, oder -f um die Entfernung " +"(benutzen Sie --cached, um die Datei zu behalten, oder -f, um die Entfernung " "zu erzwingen)" #: builtin/rm.c:252 @@ -9304,7 +9431,7 @@ msgstr "Unterdrückt Commit-Beschreibungen, liefert nur Anzahl der Commits" #: builtin/shortlog.c:234 msgid "Show the email address of each author" -msgstr "Zeigt die Email-Adresse von jedem Autor" +msgstr "Zeigt die E-Mail-Adresse von jedem Autor" #: builtin/shortlog.c:235 msgid "w[,i1[,i2]]" @@ -9396,11 +9523,11 @@ msgstr "zeigt die <n> jüngsten Einträge im Reflog beginnend an der Basis" #: builtin/show-ref.c:10 msgid "" -"git show-ref [-q|--quiet] [--verify] [--head] [-d|--dereference] [-s|--hash" -"[=<n>]] [--abbrev[=<n>]] [--tags] [--heads] [--] [pattern*] " +"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] [--] [pattern*] " +"git show-ref [-q|--quiet] [--verify] [--head] [-d|--dereference] [-s|--" +"hash[=<n>]] [--abbrev[=<n>]] [--tags] [--heads] [--] [pattern*] " #: builtin/show-ref.c:11 msgid "git show-ref --exclude-existing[=pattern] < ref-list" @@ -9462,11 +9589,11 @@ msgstr "löscht symbolische Referenzen" msgid "shorten ref output" msgstr "verkürzte Ausgabe der Referenzen" -#: builtin/symbolic-ref.c:43 builtin/update-ref.c:255 +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:349 msgid "reason" msgstr "Grund" -#: builtin/symbolic-ref.c:43 builtin/update-ref.c:255 +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:349 msgid "reason of the update" msgstr "Grund für die Aktualisierung" @@ -9493,203 +9620,212 @@ msgstr "" msgid "git tag -v <tagname>..." msgstr "git tag -v <Tagname>..." -#: builtin/tag.c:67 +#: builtin/tag.c:69 #, c-format msgid "malformed object at '%s'" msgstr "fehlerhaftes Objekt bei '%s'" -#: builtin/tag.c:239 +#: builtin/tag.c:301 #, c-format msgid "tag name too long: %.*s..." msgstr "Tagname zu lang: %.*s..." -#: builtin/tag.c:244 +#: builtin/tag.c:306 #, c-format msgid "tag '%s' not found." msgstr "Tag '%s' nicht gefunden." -#: builtin/tag.c:259 +#: builtin/tag.c:321 #, c-format msgid "Deleted tag '%s' (was %s)\n" msgstr "Tag '%s' gelöscht (war %s)\n" -#: builtin/tag.c:271 +#: builtin/tag.c:333 #, c-format msgid "could not verify the tag '%s'" msgstr "Konnte Tag '%s' nicht verifizieren" -#: builtin/tag.c:281 +#: builtin/tag.c:343 #, c-format msgid "" "\n" -"Write a tag message\n" +"Write a message for tag:\n" +" %s\n" "Lines starting with '%c' will be ignored.\n" msgstr "" "\n" -"Geben Sie eine Tag-Beschreibung ein.\n" -"Zeilen, die mit '%c' beginnen, werden ignoriert.\n" +"Geben Sie eine Beschreibung für Tag\n" +" %s\n" +"ein. Zeilen, die mit '%c' beginnen, werden ignoriert.\n" -#: builtin/tag.c:285 +#: builtin/tag.c:347 #, c-format msgid "" "\n" -"Write a tag message\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" -"Geben Sie eine Tag-Beschreibung ein.\n" -"Zeilen, die mit '%c' beginnen, werden behalten; Sie dürfen diese\n" +"Geben Sie eine Beschreibung für Tag\n" +" %s\n" +"ein. Zeilen, die mit '%c' beginnen, werden behalten; Sie dürfen diese\n" "selbst entfernen wenn Sie möchten.\n" -#: builtin/tag.c:324 +#: builtin/tag.c:371 +#, c-format +msgid "unsupported sort specification '%s'" +msgstr "Nicht unterstützte Angabe für \"--sort\" '%s'" + +#: builtin/tag.c:373 +#, c-format +msgid "unsupported sort specification '%s' in variable '%s'" +msgstr "Nicht unterstützte Angabe für \"--sort\" '%s' in Variable '%s'" + +#: builtin/tag.c:428 msgid "unable to sign the tag" msgstr "konnte Tag nicht signieren" -#: builtin/tag.c:326 +#: builtin/tag.c:430 msgid "unable to write tag file" msgstr "konnte Tag-Datei nicht schreiben" -#: builtin/tag.c:351 +#: builtin/tag.c:455 msgid "bad object type." msgstr "ungültiger Objekt-Typ" -#: builtin/tag.c:364 +#: builtin/tag.c:468 msgid "tag header too big." msgstr "Tag-Kopf zu groß." -#: builtin/tag.c:400 +#: builtin/tag.c:504 msgid "no tag message?" msgstr "keine Tag-Beschreibung?" -#: builtin/tag.c:406 +#: builtin/tag.c:510 #, c-format msgid "The tag message has been left in %s\n" msgstr "Die Tag-Beschreibung wurde gelassen in %s\n" -#: builtin/tag.c:455 +#: builtin/tag.c:559 msgid "switch 'points-at' requires an object" msgstr "Option 'points-at' erfordert ein Objekt" -#: builtin/tag.c:457 +#: builtin/tag.c:561 #, c-format msgid "malformed object name '%s'" msgstr "fehlerhafter Objekt-Name '%s'" -#: builtin/tag.c:480 -#, c-format -msgid "unsupported sort specification %s" -msgstr "Nicht unterstützte Angabe für \"--sort\": %s" - -#: builtin/tag.c:500 +#: builtin/tag.c:588 msgid "list tag names" msgstr "listet Tagnamen auf" -#: builtin/tag.c:502 +#: builtin/tag.c:590 msgid "print <n> lines of each tag message" msgstr "zeigt <n> Zeilen jeder Tag-Beschreibung" -#: builtin/tag.c:504 +#: builtin/tag.c:592 msgid "delete tags" msgstr "löscht Tags" -#: builtin/tag.c:505 +#: builtin/tag.c:593 msgid "verify tags" msgstr "überprüft Tags" -#: builtin/tag.c:507 +#: builtin/tag.c:595 msgid "Tag creation options" msgstr "Optionen für Erstellung von Tags" -#: builtin/tag.c:509 +#: builtin/tag.c:597 msgid "annotated tag, needs a message" msgstr "annotiertes Tag, benötigt eine Beschreibung" -#: builtin/tag.c:511 +#: builtin/tag.c:599 msgid "tag message" msgstr "Tag-Beschreibung" -#: builtin/tag.c:513 +#: builtin/tag.c:601 msgid "annotated and GPG-signed tag" msgstr "annotiertes und GPG-signiertes Tag" -#: builtin/tag.c:517 +#: builtin/tag.c:605 msgid "use another key to sign the tag" -msgstr "verwendet einen anderen Schlüssel um das Tag zu signieren" +msgstr "verwendet einen anderen Schlüssel, um das Tag zu signieren" -#: builtin/tag.c:518 +#: builtin/tag.c:606 msgid "replace the tag if exists" msgstr "ersetzt das Tag, wenn es existiert" -#: builtin/tag.c:519 +#: builtin/tag.c:607 msgid "show tag list in columns" msgstr "zeigt Liste der Tags in Spalten" -#: builtin/tag.c:521 +#: builtin/tag.c:609 msgid "sort tags" msgstr "sortiert Tags" -#: builtin/tag.c:525 +#: builtin/tag.c:613 msgid "Tag listing options" msgstr "Optionen für Auflistung der Tags" -#: builtin/tag.c:528 builtin/tag.c:534 +#: builtin/tag.c:616 builtin/tag.c:622 msgid "print only tags that contain the commit" msgstr "gibt nur Tags aus, die diesen Commit beinhalten" -#: builtin/tag.c:540 +#: builtin/tag.c:628 msgid "print only tags of the object" msgstr "gibt nur Tags von dem Objekt aus" -#: builtin/tag.c:566 +#: builtin/tag.c:654 msgid "--column and -n are incompatible" msgstr "--column und -n sind inkompatibel" -#: builtin/tag.c:578 +#: builtin/tag.c:666 msgid "--sort and -n are incompatible" msgstr "--sort und -n sind inkompatibel" -#: builtin/tag.c:585 +#: builtin/tag.c:673 msgid "-n option is only allowed with -l." msgstr "-n Option ist nur erlaubt mit -l." -#: builtin/tag.c:587 +#: builtin/tag.c:675 msgid "--contains option is only allowed with -l." msgstr "--contains Option ist nur erlaubt mit -l." -#: builtin/tag.c:589 +#: builtin/tag.c:677 msgid "--points-at option is only allowed with -l." msgstr "--points-at Option ist nur erlaubt mit -l." -#: builtin/tag.c:597 +#: builtin/tag.c:685 msgid "only one -F or -m option is allowed." msgstr "nur eine -F oder -m Option ist erlaubt." -#: builtin/tag.c:617 +#: builtin/tag.c:705 msgid "too many params" msgstr "zu viele Parameter" -#: builtin/tag.c:623 +#: builtin/tag.c:711 #, c-format msgid "'%s' is not a valid tag name." msgstr "'%s' ist kein gültiger Tagname." -#: builtin/tag.c:628 +#: builtin/tag.c:716 #, c-format msgid "tag '%s' already exists" msgstr "Tag '%s' existiert bereits" -#: builtin/tag.c:646 +#: builtin/tag.c:734 #, c-format msgid "%s: cannot lock the ref" msgstr "%s: kann Referenz nicht sperren" -#: builtin/tag.c:648 +#: builtin/tag.c:736 #, c-format msgid "%s: cannot update the ref" msgstr "%s: kann Referenz nicht aktualisieren" -#: builtin/tag.c:650 +#: builtin/tag.c:738 #, c-format msgid "Updated tag '%s' (was %s)\n" msgstr "Tag '%s' aktualisiert (war %s)\n" @@ -9698,126 +9834,130 @@ msgstr "Tag '%s' aktualisiert (war %s)\n" msgid "Unpacking objects" msgstr "Entpacke Objekte" -#: builtin/update-index.c:399 +#: builtin/update-index.c:402 msgid "git update-index [options] [--] [<file>...]" msgstr "git update-index [Optionen] [--] [<Datei>...]" -#: builtin/update-index.c:748 +#: builtin/update-index.c:755 msgid "continue refresh even when index needs update" msgstr "" "Aktualisierung fortsetzen, auch wenn die Staging-Area aktualisiert werden " "muss" -#: builtin/update-index.c:751 +#: builtin/update-index.c:758 msgid "refresh: ignore submodules" msgstr "Aktualisierung: ignoriert Submodule" -#: builtin/update-index.c:754 +#: builtin/update-index.c:761 msgid "do not ignore new files" msgstr "ignoriert keine neuen Dateien" -#: builtin/update-index.c:756 +#: builtin/update-index.c:763 msgid "let files replace directories and vice-versa" msgstr "lässt Dateien Verzeichnisse ersetzen, und umgedreht" -#: builtin/update-index.c:758 +#: builtin/update-index.c:765 msgid "notice files missing from worktree" msgstr "beachtet fehlende Dateien im Arbeitsverzeichnis" -#: builtin/update-index.c:760 +#: builtin/update-index.c:767 msgid "refresh even if index contains unmerged entries" msgstr "" "aktualisiert, auch wenn die Staging-Area nicht zusammengeführte Einträge " "beinhaltet" -#: builtin/update-index.c:763 +#: builtin/update-index.c:770 msgid "refresh stat information" msgstr "aktualisiert Dateiinformationen" -#: builtin/update-index.c:767 +#: builtin/update-index.c:774 msgid "like --refresh, but ignore assume-unchanged setting" msgstr "wie --refresh, ignoriert aber \"assume-unchanged\" Einstellung" -#: builtin/update-index.c:771 +#: builtin/update-index.c:778 msgid "<mode>,<object>,<path>" msgstr "<Modus>,<Objekt>,<Pfad>" -#: builtin/update-index.c:772 +#: builtin/update-index.c:779 msgid "add the specified entry to the index" msgstr "merkt den angegebenen Eintrag zum Commit vor" -#: builtin/update-index.c:776 +#: builtin/update-index.c:783 msgid "(+/-)x" msgstr "(+/-)x" -#: builtin/update-index.c:777 +#: builtin/update-index.c:784 msgid "override the executable bit of the listed files" msgstr "überschreibt das \"ausführbar\"-Bit der aufgelisteten Dateien" -#: builtin/update-index.c:781 +#: builtin/update-index.c:788 msgid "mark files as \"not changing\"" msgstr "betrachte diese Datei immer als unverändert" -#: builtin/update-index.c:784 +#: builtin/update-index.c:791 msgid "clear assumed-unchanged bit" msgstr "löscht \"assumed-unchanged\"-Bit" -#: builtin/update-index.c:787 +#: builtin/update-index.c:794 msgid "mark files as \"index-only\"" msgstr "markiert Dateien als \"index-only\"" -#: builtin/update-index.c:790 +#: builtin/update-index.c:797 msgid "clear skip-worktree bit" msgstr "löscht \"skip-worktree\"-Bit" -#: builtin/update-index.c:793 +#: builtin/update-index.c:800 msgid "add to index only; do not add content to object database" msgstr "" "merkt die Änderungen nur zum Commit vor; Inhalt wird nicht der Objekt-" "Datenbank hinzugefügt" -#: builtin/update-index.c:795 +#: builtin/update-index.c:802 msgid "remove named paths even if present in worktree" msgstr "" "löscht benannte Pfade, auch wenn sie sich im Arbeitsverzeichnis befinden" -#: builtin/update-index.c:797 +#: builtin/update-index.c:804 msgid "with --stdin: input lines are terminated by null bytes" msgstr "mit --stdin: eingegebene Zeilen sind durch NUL-Bytes abgeschlossen" -#: builtin/update-index.c:799 +#: builtin/update-index.c:806 msgid "read list of paths to be updated from standard input" msgstr "liest Liste der zu aktualisierenden Pfade von der Standard-Eingabe" -#: builtin/update-index.c:803 +#: builtin/update-index.c:810 msgid "add entries from standard input to the index" msgstr "merkt Einträge von der Standard-Eingabe zum Commit vor" -#: builtin/update-index.c:807 +#: builtin/update-index.c:814 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:811 +#: builtin/update-index.c:818 msgid "only update entries that differ from HEAD" msgstr "aktualisiert nur Einträge, die unterschiedlich zu HEAD sind" -#: builtin/update-index.c:815 +#: builtin/update-index.c:822 msgid "ignore files missing from worktree" msgstr "ignoriert fehlende Dateien im Arbeitsverzeichnis" -#: builtin/update-index.c:818 +#: builtin/update-index.c:825 msgid "report actions to standard output" msgstr "gibt die Aktionen in der Standard-Ausgabe aus" -#: builtin/update-index.c:820 +#: builtin/update-index.c:827 msgid "(for porcelains) forget saved unresolved conflicts" msgstr "(für Fremdprogramme) keine gespeicherten, nicht aufgelöste Konflikte" -#: builtin/update-index.c:824 +#: builtin/update-index.c:831 msgid "write index in this format" msgstr "schreibt Staging-Area-Datei in diesem Format" +#: builtin/update-index.c:833 +msgid "enable or disable split index" +msgstr "Aktivierung oder Deaktivierung des Splittings der Staging-Area" + #: builtin/update-ref.c:9 msgid "git update-ref [options] -d <refname> [<oldval>]" msgstr "git update-ref [Optionen] -d <Referenzname> [<alterWert>]" @@ -9830,19 +9970,19 @@ msgstr "git update-ref [Optionen] <Referenzname> <neuerWert> [<alterWert>]" msgid "git update-ref [options] --stdin [-z]" msgstr "git update-ref [Optionen] --stdin [-z]" -#: builtin/update-ref.c:256 +#: builtin/update-ref.c:350 msgid "delete the reference" msgstr "löscht diese Referenz" -#: builtin/update-ref.c:258 +#: builtin/update-ref.c:352 msgid "update <refname> not the one it points to" msgstr "aktualisiert <Referenzname>, nicht den Verweis" -#: builtin/update-ref.c:259 +#: builtin/update-ref.c:353 msgid "stdin has NUL-terminated arguments" msgstr "Standard-Eingabe hat durch NUL-Zeichen abgeschlossene Argumente" -#: builtin/update-ref.c:260 +#: builtin/update-ref.c:354 msgid "read updates from stdin" msgstr "liest Aktualisierungen von der Standard-Eingabe" @@ -9854,15 +9994,23 @@ msgstr "git update-server-info [--force]" msgid "update the info files from scratch" msgstr "aktualisiert die Informationsdateien von Grund auf" -#: builtin/verify-pack.c:56 +#: builtin/verify-commit.c:17 +msgid "git verify-commit [-v|--verbose] <commit>..." +msgstr "git verify-commit [-v|--verbose] <Commit>..." + +#: builtin/verify-commit.c:75 +msgid "print commit contents" +msgstr "gibt Commit-Inhalte aus" + +#: builtin/verify-pack.c:55 msgid "git verify-pack [-v|--verbose] [-s|--stat-only] <pack>..." msgstr "git verify-pack [-v|--verbose] [-s|--stat-only] <Paket>..." -#: builtin/verify-pack.c:66 +#: builtin/verify-pack.c:65 msgid "verbose" msgstr "erweiterte Ausgaben" -#: builtin/verify-pack.c:68 +#: builtin/verify-pack.c:67 msgid "show statistics only" msgstr "zeigt nur Statistiken" @@ -9898,7 +10046,7 @@ msgid "" 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" +"oder 'git help <Konzept>', um mehr über ein spezifisches Kommando oder\n" "Konzept zu erfahren." #: parse-options.h:143 @@ -10052,7 +10200,7 @@ msgstr "" #: git-am.sh:141 msgid "Using index info to reconstruct a base tree..." msgstr "" -"Verwende Informationen aus der Staging-Area um einen Basisverzeichnis " +"Verwende Informationen aus der Staging-Area, um einen Basisverzeichnis " "nachzustellen" #: git-am.sh:156 @@ -10109,7 +10257,7 @@ msgid "" "Use \"git am --abort\" to remove it." msgstr "" "Stray $dotest Verzeichnis gefunden.\n" -"Benutzen Sie \"git am --abort\" um es zu entfernen." +"Benutzen Sie \"git am --abort\", um es zu entfernen." #: git-am.sh:535 msgid "Resolve operation not in progress, we are not resuming." @@ -10136,7 +10284,7 @@ msgstr "" #: git-am.sh:732 msgid "Patch does not have a valid e-mail address." -msgstr "Patch enthält keine gültige Email-Adresse." +msgstr "Patch enthält keine gültige E-Mail-Adresse." #: git-am.sh:779 msgid "cannot be interactive without stdin connected to a terminal." @@ -10367,7 +10515,7 @@ msgid "" msgstr "" "\"pull\" ist nicht möglich, weil Sie nicht zusammengeführte Dateien haben.\n" "Bitte korrigieren Sie dies im Arbeitsverzeichnis und benutzen Sie dann \n" -"'git add/rm <Datei>' um die Auflösung entsprechend zu markieren, oder\n" +"'git add/rm <Datei>', um die Auflösung entsprechend zu markieren, oder\n" "benutzen Sie 'git commit -a'." #: git-pull.sh:25 @@ -10375,13 +10523,13 @@ msgid "Pull is not possible because you have unmerged files." msgstr "" "\"pull\" ist nicht möglich, weil Sie nicht zusammengeführte Dateien haben." -#: git-pull.sh:247 +#: git-pull.sh:245 msgid "updating an unborn branch with changes added to the index" msgstr "" "Aktualisiere einen ungeborenen Branch mit Änderungen, die zum Commit " "vorgemerkt sind" -#: git-pull.sh:271 +#: git-pull.sh:269 #, sh-format msgid "" "Warning: fetch updated the current branch head.\n" @@ -10391,11 +10539,11 @@ msgstr "" "Warnung: \"fetch\" aktualisierte die Spitze des aktuellen Branches.\n" "Warnung: Spule Ihr Arbeitsverzeichnis von Commit $orig_head vor." -#: git-pull.sh:296 +#: git-pull.sh:294 msgid "Cannot merge multiple branches into empty head" msgstr "Kann nicht mehrere Branches in einen ungeborenen Branch zusammenführen" -#: git-pull.sh:300 +#: git-pull.sh:298 msgid "Cannot rebase onto multiple branches" msgstr "kann Rebase nicht auf mehrere Branches ausführen" @@ -10413,16 +10561,16 @@ msgstr "" "Um den ursprünglichen Branch wiederherzustellen und den Rebase abzubrechen,\n" "führen Sie \"git rebase --abort\" aus." -#: git-rebase.sh:164 +#: git-rebase.sh:165 msgid "Applied autostash." msgstr "\"autostash\" angewendet." -#: git-rebase.sh:167 +#: git-rebase.sh:168 #, sh-format msgid "Cannot store $stash_sha1" msgstr "Kann $stash_sha1 nicht speichern." -#: git-rebase.sh:168 +#: git-rebase.sh:169 msgid "" "Applying autostash resulted in conflicts.\n" "Your changes are safe in the stash.\n" @@ -10432,33 +10580,33 @@ msgstr "" "Ihre Änderungen sind im Stash sicher.\n" "Sie können jederzeit \"git stash pop\" oder \"git stash drop\" ausführen.\n" -#: git-rebase.sh:207 +#: git-rebase.sh:208 msgid "The pre-rebase hook refused to rebase." msgstr "Der \"pre-rebase hook\" hat den Rebase zurückgewiesen." -#: git-rebase.sh:212 +#: git-rebase.sh:213 msgid "It looks like git-am is in progress. Cannot rebase." msgstr "\"git-am\" scheint im Gange zu sein. Kann Rebase nicht durchführen." -#: git-rebase.sh:350 +#: git-rebase.sh:351 msgid "The --exec option must be used with the --interactive option" msgstr "Die Option --exec muss mit --interactive verwendet werden." -#: git-rebase.sh:355 +#: git-rebase.sh:356 msgid "No rebase in progress?" msgstr "Kein Rebase im Gange?" -#: git-rebase.sh:366 +#: git-rebase.sh:367 msgid "The --edit-todo action can only be used during interactive rebase." msgstr "" "Die --edit-todo Aktion kann nur während eines interaktiven Rebase verwendet " "werden." -#: git-rebase.sh:373 +#: git-rebase.sh:374 msgid "Cannot read HEAD" msgstr "Kann HEAD nicht lesen" -#: git-rebase.sh:376 +#: git-rebase.sh:377 msgid "" "You must edit all merge conflicts and then\n" "mark them as resolved using git add" @@ -10466,12 +10614,12 @@ msgstr "" "Sie müssen alle Merge-Konflikte editieren und diese dann\n" "mittels \"git add\" als aufgelöst markieren" -#: git-rebase.sh:394 +#: git-rebase.sh:395 #, sh-format msgid "Could not move back to $head_name" msgstr "Konnte nicht zu $head_name zurückgehen" -#: git-rebase.sh:413 +#: git-rebase.sh:414 #, sh-format msgid "" "It seems that there is already a $state_dir_base directory, and\n" @@ -10492,67 +10640,67 @@ msgstr "" "und führen Sie dieses Kommando nochmal aus. Es wird angehalten, falls noch\n" "etwas Schützenswertes vorhanden ist." -#: git-rebase.sh:464 +#: git-rebase.sh:465 #, sh-format msgid "invalid upstream $upstream_name" msgstr "ungültiger Upstream-Branch $upstream_name" -#: git-rebase.sh:488 +#: git-rebase.sh:489 #, sh-format msgid "$onto_name: there are more than one merge bases" msgstr "$onto_name: es gibt mehr als eine Merge-Basis" -#: git-rebase.sh:491 git-rebase.sh:495 +#: git-rebase.sh:492 git-rebase.sh:496 #, sh-format msgid "$onto_name: there is no merge base" msgstr "$onto_name: es gibt keine Merge-Basis" -#: git-rebase.sh:500 +#: git-rebase.sh:501 #, sh-format msgid "Does not point to a valid commit: $onto_name" msgstr "$onto_name zeigt auf keinen gültigen Commit" -#: git-rebase.sh:523 +#: git-rebase.sh:524 #, sh-format msgid "fatal: no such branch: $branch_name" msgstr "fatal: Branch $branch_name nicht gefunden" -#: git-rebase.sh:556 +#: git-rebase.sh:557 msgid "Cannot autostash" msgstr "Kann \"autostash\" nicht ausführen." -#: git-rebase.sh:561 +#: git-rebase.sh:562 #, sh-format msgid "Created autostash: $stash_abbrev" msgstr "\"autostash\" erzeugt: $stash_abbrev" -#: git-rebase.sh:565 +#: git-rebase.sh:566 msgid "Please commit or stash them." msgstr "Bitte committen Sie die Änderungen oder benutzen Sie \"stash\"." -#: git-rebase.sh:585 +#: git-rebase.sh:586 #, sh-format msgid "Current branch $branch_name is up to date." -msgstr "Aktueller Branch $branch_name ist auf dem neusten Stand." +msgstr "Aktueller Branch $branch_name ist auf dem neuesten Stand." -#: git-rebase.sh:589 +#: git-rebase.sh:590 #, sh-format msgid "Current branch $branch_name is up to date, rebase forced." msgstr "" -"Aktueller Branch $branch_name ist auf dem neusten Stand, Rebase erzwungen." +"Aktueller Branch $branch_name ist auf dem neuesten Stand, Rebase erzwungen." -#: git-rebase.sh:600 +#: git-rebase.sh:601 #, sh-format msgid "Changes from $mb to $onto:" msgstr "Änderungen von $mb zu $onto:" -#: git-rebase.sh:609 +#: git-rebase.sh:610 msgid "First, rewinding head to replay your work on top of it..." msgstr "" "Zunächst wird der Branch zurückgespult, um Ihre Änderungen\n" "darauf neu anzuwenden..." -#: git-rebase.sh:619 +#: git-rebase.sh:620 #, sh-format msgid "Fast-forwarded $branch_name to $onto_name." msgstr "$branch_name zu $onto_name vorgespult." @@ -10569,23 +10717,23 @@ msgstr "Sie haben bisher noch keinen initialen Commit" msgid "Cannot save the current index state" msgstr "Kann den aktuellen Zustand der Staging-Area nicht speichern" -#: git-stash.sh:123 git-stash.sh:136 +#: git-stash.sh:124 git-stash.sh:137 msgid "Cannot save the current worktree state" msgstr "Kann den aktuellen Zustand des Arbeitsverzeichnisses nicht speichern" -#: git-stash.sh:140 +#: git-stash.sh:141 msgid "No changes selected" msgstr "Keine Änderungen ausgewählt" -#: git-stash.sh:143 +#: git-stash.sh:144 msgid "Cannot remove temporary index (can't happen)" msgstr "Kann temporäre Staging-Area nicht löschen (kann nicht passieren)" -#: git-stash.sh:156 +#: git-stash.sh:157 msgid "Cannot record working tree state" msgstr "Kann Zustand des Arbeitsverzeichnisses nicht aufzeichnen" -#: git-stash.sh:190 +#: git-stash.sh:191 #, sh-format msgid "Cannot update $ref_stash with $w_commit" msgstr "Kann $ref_stash nicht mit $w_commit aktualisieren." @@ -10600,7 +10748,7 @@ msgstr "Kann $ref_stash nicht mit $w_commit aktualisieren." #. $ 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:237 +#: git-stash.sh:238 #, sh-format msgid "" "error: unknown option for 'stash save': $option\n" @@ -10610,85 +10758,85 @@ msgstr "" " Um eine Beschreibung anzugeben, benutzen Sie \"git stash save -- " "'$option'\"" -#: git-stash.sh:258 +#: git-stash.sh:259 msgid "No local changes to save" msgstr "Keine lokalen Änderungen zum Speichern" -#: git-stash.sh:262 +#: git-stash.sh:263 msgid "Cannot initialize stash" msgstr "Kann \"stash\" nicht initialisieren" -#: git-stash.sh:266 +#: git-stash.sh:267 msgid "Cannot save the current status" msgstr "Kann den aktuellen Status nicht speichern" -#: git-stash.sh:284 +#: git-stash.sh:285 msgid "Cannot remove worktree changes" msgstr "Kann Änderungen im Arbeitsverzeichnis nicht löschen" -#: git-stash.sh:383 +#: git-stash.sh:384 msgid "No stash found." msgstr "Kein \"stash\" gefunden." -#: git-stash.sh:390 +#: git-stash.sh:391 #, sh-format msgid "Too many revisions specified: $REV" msgstr "Zu viele Commits angegeben: $REV" -#: git-stash.sh:396 +#: git-stash.sh:397 #, sh-format msgid "$reference is not valid reference" msgstr "$reference ist keine gültige Referenz" -#: git-stash.sh:424 +#: git-stash.sh:425 #, sh-format msgid "'$args' is not a stash-like commit" msgstr "'$args' ist kein \"stash\"-artiger Commit" -#: git-stash.sh:435 +#: git-stash.sh:436 #, sh-format msgid "'$args' is not a stash reference" msgstr "'$args' ist keine \"stash\"-Referenz" -#: git-stash.sh:443 +#: git-stash.sh:444 msgid "unable to refresh index" msgstr "unfähig die Staging-Area zu aktualisieren" -#: git-stash.sh:447 +#: git-stash.sh:448 msgid "Cannot apply a stash in the middle of a merge" msgstr "Kann \"stash\" nicht anwenden, solang ein Merge im Gange ist" -#: git-stash.sh:455 +#: git-stash.sh:456 msgid "Conflicts in index. Try without --index." msgstr "Konflikte in der Staging-Area. Versuchen Sie es ohne --index." -#: git-stash.sh:457 +#: git-stash.sh:458 msgid "Could not save index tree" msgstr "Konnte Staging-Area-Verzeichnis nicht speichern" -#: git-stash.sh:491 +#: git-stash.sh:492 msgid "Cannot unstage modified files" msgstr "Kann geänderte Dateien nicht aus der Staging-Area entfernen" -#: git-stash.sh:506 +#: git-stash.sh:507 msgid "Index was not unstashed." msgstr "Staging-Area wurde nicht aus dem Stash zurückgeladen." -#: git-stash.sh:529 +#: git-stash.sh:530 #, sh-format msgid "Dropped ${REV} ($s)" msgstr "Gelöscht ${REV} ($s)" -#: git-stash.sh:530 +#: git-stash.sh:531 #, sh-format msgid "${REV}: Could not drop stash entry" msgstr "${REV}: Konnte \"stash\"-Eintrag nicht löschen" -#: git-stash.sh:537 +#: git-stash.sh:538 msgid "No branch name specified" msgstr "Kein Branchname spezifiziert" -#: git-stash.sh:609 +#: git-stash.sh:610 msgid "(To restore them type \"git stash apply\")" msgstr "(Zur Wiederherstellung geben Sie \"git stash apply\" ein)" @@ -10707,28 +10855,28 @@ msgstr "Keine Submodul-Zuordnung in .gitmodules für Pfad '$sm_path' gefunden" msgid "Clone of '$url' into submodule path '$sm_path' failed" msgstr "Klonen von '$url' in Submodul-Pfad '$sm_path' fehlgeschlagen" -#: git-submodule.sh:299 +#: git-submodule.sh:296 #, sh-format msgid "Gitdir '$a' is part of the submodule path '$b' or vice versa" msgstr "Git-Verzeichnis '$a' ist Teil des Submodul-Pfades '$b', oder umgekehrt" -#: git-submodule.sh:409 +#: git-submodule.sh:406 msgid "Relative path can only be used from the toplevel of the working tree" msgstr "" "Relative Pfade können nur von der obersten Ebene des Arbeitsverzeichnisses " "benutzt werden." -#: git-submodule.sh:419 +#: git-submodule.sh:416 #, sh-format msgid "repo URL: '$repo' must be absolute or begin with ./|../" msgstr "repo URL: '$repo' muss absolut sein oder mit ./|../ beginnen" -#: git-submodule.sh:436 +#: git-submodule.sh:433 #, sh-format msgid "'$sm_path' already exists in the index" msgstr "'$sm_path' ist bereits zum Commit vorgemerkt" -#: git-submodule.sh:440 +#: git-submodule.sh:437 #, sh-format msgid "" "The following path is ignored by one of your .gitignore files:\n" @@ -10739,24 +10887,24 @@ msgstr "" "$sm_path\n" "Benutzen Sie -f wenn Sie diesen wirklich hinzufügen möchten." -#: git-submodule.sh:458 +#: git-submodule.sh:455 #, sh-format msgid "Adding existing repo at '$sm_path' to the index" msgstr "Füge existierendes Repository in '$sm_path' der Staging-Area hinzu." -#: git-submodule.sh:460 +#: git-submodule.sh:457 #, sh-format msgid "'$sm_path' already exists and is not a valid git repo" msgstr "'$sm_path' existiert bereits und ist kein gültiges Git-Repository" -#: git-submodule.sh:468 +#: git-submodule.sh:465 #, sh-format msgid "A git directory for '$sm_name' is found locally with remote(s):" msgstr "" "Ein Git-Verzeichnis für '$sm_name' wurde lokal gefunden mit den Remote-" "Repositories:" -#: git-submodule.sh:470 +#: git-submodule.sh:467 #, sh-format msgid "" "If you want to reuse this local git directory instead of cloning again from" @@ -10764,7 +10912,7 @@ msgstr "" "Wenn Sie dieses lokale Git-Verzeichnis wiederverwenden möchtest, anstatt " "erneut zu klonen" -#: git-submodule.sh:472 +#: git-submodule.sh:469 #, sh-format msgid "" "use the '--force' option. If the local git directory is not the correct repo" @@ -10772,7 +10920,7 @@ msgstr "" "benutzen Sie die Option '--force'. Wenn das lokale Git-Verzeichnis nicht das " "korrekte Repository ist" -#: git-submodule.sh:473 +#: git-submodule.sh:470 #, sh-format msgid "" "or you are unsure what this means choose another name with the '--name' " @@ -10781,77 +10929,77 @@ msgstr "" "oder Sie sich unsicher sind, was das bedeutet, wählen Sie einen anderen " "Namenmit der Option '--name'." -#: git-submodule.sh:475 +#: git-submodule.sh:472 #, sh-format msgid "Reactivating local git directory for submodule '$sm_name'." msgstr "Reaktiviere lokales Git-Verzeichnis für Submodul '$sm_name'." -#: git-submodule.sh:487 +#: git-submodule.sh:484 #, sh-format msgid "Unable to checkout submodule '$sm_path'" msgstr "Kann Submodul '$sm_path' nicht auschecken" -#: git-submodule.sh:492 +#: git-submodule.sh:489 #, sh-format msgid "Failed to add submodule '$sm_path'" msgstr "Hinzufügen von Submodul '$sm_path' fehlgeschlagen" -#: git-submodule.sh:501 +#: git-submodule.sh:498 #, sh-format msgid "Failed to register submodule '$sm_path'" msgstr "Fehler beim Eintragen von Submodul '$sm_path' in die Konfiguration." -#: git-submodule.sh:545 +#: git-submodule.sh:542 #, sh-format msgid "Entering '$prefix$displaypath'" msgstr "Betrete '$prefix$displaypath'" -#: git-submodule.sh:565 +#: git-submodule.sh:562 #, sh-format msgid "Stopping at '$prefix$displaypath'; script returned non-zero status." msgstr "Stoppe bei '$prefix$displaypath'; Skript gab nicht-Null Status zurück." -#: git-submodule.sh:611 +#: git-submodule.sh:608 #, sh-format msgid "No url found for submodule path '$displaypath' in .gitmodules" msgstr "Keine URL für Submodul-Pfad '$displaypath' in .gitmodules gefunden" -#: git-submodule.sh:620 +#: git-submodule.sh:617 #, sh-format msgid "Failed to register url for submodule path '$displaypath'" msgstr "" "Fehler beim Eintragen der URL für Submodul-Pfad '$displaypath' in die " "Konfiguration." -#: git-submodule.sh:622 +#: git-submodule.sh:619 #, sh-format msgid "Submodule '$name' ($url) registered for path '$displaypath'" msgstr "" "Submodul '$name' ($url) für Pfad '$displaypath' in die Konfiguration " "eingetragen." -#: git-submodule.sh:639 +#: git-submodule.sh:636 #, sh-format msgid "Failed to register update mode for submodule path '$displaypath'" msgstr "" "Fehler bei Änderung des Aktualisierungsmodus für Submodul-Pfad " "'$displaypath' in der Konfiguration." -#: git-submodule.sh:677 +#: git-submodule.sh:674 #, sh-format msgid "Use '.' if you really want to deinitialize all submodules" msgstr "" "Verwenden Sie '.' wenn Sie wirklich alle Submodule\n" "deinitialisieren möchten." -#: git-submodule.sh:694 +#: git-submodule.sh:691 #, sh-format msgid "Submodule work tree '$displaypath' contains a .git directory" msgstr "" "Arbeitsverzeichnis des Submoduls in '$displaypath' enthält ein .git-" "Verzeichnis" -#: git-submodule.sh:695 +#: git-submodule.sh:692 #, sh-format msgid "" "(use 'rm -rf' if you really want to remove it including all of its history)" @@ -10859,40 +11007,40 @@ msgstr "" "(benutzen Sie 'rm -rf' wenn Sie dieses Submodul wirklich mitsamt\n" "seiner Historie löschen möchten)" -#: git-submodule.sh:701 +#: git-submodule.sh:698 #, sh-format msgid "" "Submodule work tree '$displaypath' contains local modifications; use '-f' to " "discard them" msgstr "" "Arbeitsverzeichnis von Submodul in '$displaypath' enthält lokale Änderungen; " -"verwenden Sie '-f' um diese zu verwerfen" +"verwenden Sie '-f', um diese zu verwerfen" -#: git-submodule.sh:704 +#: git-submodule.sh:701 #, sh-format msgid "Cleared directory '$displaypath'" msgstr "Verzeichnis '$displaypath' bereinigt." -#: git-submodule.sh:705 +#: git-submodule.sh:702 #, sh-format msgid "Could not remove submodule work tree '$displaypath'" msgstr "" "Konnte Arbeitsverzeichnis des Submoduls in '$displaypath' nicht löschen." -#: git-submodule.sh:708 +#: git-submodule.sh:705 #, sh-format msgid "Could not create empty submodule directory '$displaypath'" msgstr "" "Konnte kein leeres Verzeichnis für Submodul in '$displaypath' erstellen." -#: git-submodule.sh:717 +#: git-submodule.sh:714 #, sh-format msgid "Submodule '$name' ($url) unregistered for path '$displaypath'" msgstr "" "Submodul '$name' ($url) für Pfad '$displaypath' wurde aus der Konfiguration " "entfernt." -#: git-submodule.sh:833 +#: git-submodule.sh:830 #, sh-format msgid "" "Submodule path '$displaypath' not initialized\n" @@ -10901,52 +11049,52 @@ msgstr "" "Submodul-Pfad '$displaypath' ist nicht initialisiert.\n" "Vielleicht möchten Sie 'update --init' benutzen?" -#: git-submodule.sh:846 +#: git-submodule.sh:843 #, 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:855 +#: git-submodule.sh:852 #, 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:879 +#: git-submodule.sh:876 #, sh-format msgid "Unable to fetch in submodule path '$displaypath'" msgstr "Konnte \"fetch\" in Submodul-Pfad '$displaypath' nicht ausführen" -#: git-submodule.sh:893 +#: git-submodule.sh:890 #, sh-format msgid "Unable to checkout '$sha1' in submodule path '$displaypath'" msgstr "Konnte '$sha1' in Submodul-Pfad '$displaypath' nicht auschecken." -#: git-submodule.sh:894 +#: git-submodule.sh:891 #, sh-format msgid "Submodule path '$displaypath': checked out '$sha1'" msgstr "Submodul-Pfad: '$displaypath': '$sha1' ausgecheckt" -#: git-submodule.sh:898 +#: git-submodule.sh:895 #, 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:899 +#: git-submodule.sh:896 #, sh-format msgid "Submodule path '$displaypath': rebased into '$sha1'" msgstr "Submodul-Pfad '$displaypath': Rebase auf '$sha1'" -#: git-submodule.sh:904 +#: git-submodule.sh:901 #, sh-format msgid "Unable to merge '$sha1' in submodule path '$displaypath'" msgstr "Merge von '$sha1' in Submodul-Pfad '$displaypath' fehlgeschlagen" -#: git-submodule.sh:905 +#: git-submodule.sh:902 #, sh-format msgid "Submodule path '$displaypath': merged in '$sha1'" msgstr "Submodul-Pfad '$displaypath': zusammengeführt in '$sha1'" -#: git-submodule.sh:910 +#: git-submodule.sh:907 #, sh-format msgid "" "Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'" @@ -10954,56 +11102,62 @@ msgstr "" "Ausführung von '$command $sha1' in Submodul-Pfad '$prefix$sm_path' " "fehlgeschlagen" -#: git-submodule.sh:911 +#: git-submodule.sh:908 #, sh-format msgid "Submodule path '$prefix$sm_path': '$command $sha1'" msgstr "Submodul-Pfad '$prefix$sm_path': '$command $sha1'" -#: git-submodule.sh:941 +#: git-submodule.sh:938 #, sh-format msgid "Failed to recurse into submodule path '$displaypath'" msgstr "Fehler bei Rekursion in Submodul-Pfad '$displaypath'" -#: git-submodule.sh:1049 +#: git-submodule.sh:1046 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:1097 +#: git-submodule.sh:1098 #, sh-format msgid "unexpected mode $mod_dst" msgstr "unerwarteter Modus $mod_dst" -#: git-submodule.sh:1117 +#: git-submodule.sh:1118 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_src" msgstr " Warnung: $display_name beinhaltet nicht Commit $sha1_src" -#: git-submodule.sh:1120 +#: git-submodule.sh:1121 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_dst" msgstr " Warnung: $display_name beinhaltet nicht Commit $sha1_dst" -#: git-submodule.sh:1123 +#: git-submodule.sh:1124 #, 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:1148 +#: git-submodule.sh:1149 msgid "blob" msgstr "Blob" -#: git-submodule.sh:1262 +#: git-submodule.sh:1267 #, sh-format msgid "Failed to recurse into submodule path '$sm_path'" msgstr "Fehler bei Rekursion in Submodul-Pfad '$sm_path'" -#: git-submodule.sh:1326 +#: git-submodule.sh:1331 #, sh-format msgid "Synchronizing submodule url for '$displaypath'" msgstr "Synchronisiere Submodul-URL für '$displaypath'" +#~ msgid "commit has empty message" +#~ msgstr "Commit hat eine leere Beschreibung" + +#~ msgid "Failed to chdir: %s" +#~ msgstr "Fehler beim Verzeichniswechsel: %s" + #~ msgid "key id" #~ msgstr "Schlüssel-ID" @@ -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: 2014-04-19 12:50+0800\n" -"PO-Revision-Date: 2014-04-22 21:28+0200\n" +"POT-Creation-Date: 2014-08-04 14:48+0800\n" +"PO-Revision-Date: 2014-08-05 19:23+0200\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" @@ -88,15 +88,14 @@ msgstr "" msgid "hint: %.*s\n" msgstr "astuce: %.*s\n" -#: advice.c:85 +#: advice.c:88 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'." +"Fix them up in the work tree, and then use 'git add/rm <file>'\n" +"as appropriate to mark resolution and make a commit, or use\n" +"'git commit -a'." msgstr "" "Corrigez-les dans la copie de travail,\n" -"et utilisez 'git add/rm <fichier>' si\n" +"puis utilisez 'git add/rm <fichier>' si\n" "nécessaire pour marquer la résolution et valider,\n" "ou utilisez 'git commit -a'." @@ -119,7 +118,7 @@ msgstr "" msgid "git archive --remote <repo> [--exec <cmd>] --list" msgstr "git archive --remote <dépôt> [--exec <commande>] --list" -#: archive.c:243 builtin/add.c:136 builtin/add.c:428 builtin/rm.c:328 +#: archive.c:243 builtin/add.c:136 builtin/add.c:427 builtin/rm.c:328 #, c-format msgid "pathspec '%s' did not match any files" msgstr "le chemin '%s' ne correspond à aucun fichier" @@ -132,7 +131,7 @@ msgstr "fmt" msgid "archive format" msgstr "format d'archive" -#: archive.c:329 builtin/log.c:1193 +#: archive.c:329 builtin/log.c:1201 msgid "prefix" msgstr "préfixe" @@ -140,9 +139,9 @@ msgstr "préfixe" msgid "prepend prefix to each pathname in the archive" msgstr "préfixer chaque chemin de fichier dans l'archive" -#: archive.c:331 builtin/archive.c:88 builtin/blame.c:2258 -#: builtin/blame.c:2259 builtin/config.c:57 builtin/fast-export.c:680 -#: builtin/fast-export.c:682 builtin/grep.c:714 builtin/hash-object.c:77 +#: archive.c:331 builtin/archive.c:88 builtin/blame.c:2517 +#: builtin/blame.c:2518 builtin/config.c:57 builtin/fast-export.c:709 +#: builtin/fast-export.c:711 builtin/grep.c:712 builtin/hash-object.c:77 #: builtin/ls-files.c:489 builtin/ls-files.c:492 builtin/notes.c:412 #: builtin/notes.c:569 builtin/read-tree.c:108 parse-options.h:151 msgid "file" @@ -336,7 +335,7 @@ msgstr "'%s' ne semble pas être un fichier bundle v2" msgid "unrecognized header: %s%s (%d)" msgstr "en-tête non reconnu : %s%s (%d)" -#: bundle.c:86 builtin/commit.c:706 +#: bundle.c:86 builtin/commit.c:755 #, c-format msgid "could not open '%s'" msgstr "impossible d'ouvrir '%s'" @@ -345,8 +344,8 @@ 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:162 sequencer.c:669 sequencer.c:1123 builtin/log.c:332 -#: builtin/log.c:821 builtin/log.c:1418 builtin/log.c:1644 builtin/merge.c:357 +#: bundle.c:162 sequencer.c:630 sequencer.c:1085 builtin/log.c:330 +#: builtin/log.c:821 builtin/log.c:1428 builtin/log.c:1665 builtin/merge.c:357 #: builtin/shortlog.c:158 msgid "revision walk setup failed" msgstr "échec de la préparation du parcours des révisions" @@ -369,47 +368,47 @@ msgid_plural "The bundle requires these %d refs:" msgstr[0] "Le colis exige cette référence :" msgstr[1] "Le colis exige ces %d références :" -#: bundle.c:293 +#: bundle.c:289 msgid "rev-list died" msgstr "rev-list a disparu" -#: bundle.c:299 builtin/log.c:1329 builtin/shortlog.c:261 +#: bundle.c:295 builtin/log.c:1339 builtin/shortlog.c:261 #, c-format msgid "unrecognized argument: %s" msgstr "argument non reconnu : %s" -#: bundle.c:334 +#: bundle.c:330 #, c-format msgid "ref '%s' is excluded by the rev-list options" msgstr "la référence '%s' est exclue par les options de rev-list" -#: bundle.c:379 +#: bundle.c:375 msgid "Refusing to create empty bundle." msgstr "Refus de créer un colis vide." -#: bundle.c:395 +#: bundle.c:390 msgid "Could not spawn pack-objects" msgstr "Impossible de créer des objets groupés" -#: bundle.c:413 +#: bundle.c:408 msgid "pack-objects died" msgstr "les objets groupés ont disparu" -#: bundle.c:416 +#: bundle.c:411 #, c-format msgid "cannot create '%s'" msgstr "impossible de créer '%s'" -#: bundle.c:438 +#: bundle.c:433 msgid "index-pack died" msgstr "l'index de groupe a disparu" -#: commit.c:54 +#: commit.c:40 #, c-format msgid "could not parse %s" msgstr "impossible d'analyser %s" -#: commit.c:56 +#: commit.c:42 #, c-format msgid "%s %s is not a commit!" msgstr "%s %s n'est pas un commit !" @@ -505,28 +504,28 @@ msgstr[1] "il y a %lu ans" msgid "failed to read orderfile '%s'" msgstr "impossible de lire le fichier de commande '%s'" -#: diffcore-rename.c:517 +#: diffcore-rename.c:514 msgid "Performing inexact rename detection" msgstr "Détection de renommage inexact en cours" -#: diff.c:113 +#: diff.c:114 #, c-format msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr "" " Impossible d'analyser le pourcentage de modification de dirstat '%s'\n" -#: diff.c:118 +#: diff.c:119 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr " Paramètre dirstat inconnu '%s'\n" -#: diff.c:213 +#: diff.c:214 #, c-format msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "" "Valeur inconnue pour la variable de configuration 'diff.submodule' : '%s'" -#: diff.c:263 +#: diff.c:267 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" @@ -535,7 +534,16 @@ msgstr "" "Erreurs dans la variable de configuration 'diff.dirstat' :\n" "%s" -#: diff.c:3495 +#: diff.c:2934 +#, c-format +msgid "external diff died, stopping at %s" +msgstr "l'application de diff externe a disparu, arrêt à %s" + +#: diff.c:3329 +msgid "--follow requires exactly one pathspec" +msgstr "--follow a besoin d'une spécification de chemin unique" + +#: diff.c:3492 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -544,58 +552,58 @@ msgstr "" "Impossible d'analyser le paramètre de l'option --dirstat/-X :\n" "%s" -#: diff.c:3509 +#: diff.c:3506 #, c-format msgid "Failed to parse --submodule option parameter: '%s'" msgstr "Impossible d'analyser le paramètre de l'option --submodule : '%s'" -#: gpg-interface.c:59 gpg-interface.c:131 +#: gpg-interface.c:73 gpg-interface.c:145 msgid "could not run gpg." msgstr "impossible de lancer gpg." -#: gpg-interface.c:71 +#: gpg-interface.c:85 msgid "gpg did not accept the data" msgstr "gpg n'a pas accepté les données" -#: gpg-interface.c:82 +#: gpg-interface.c:96 msgid "gpg failed to sign the data" msgstr "gpg n'a pas pu signer les données" -#: gpg-interface.c:115 +#: gpg-interface.c:129 #, c-format msgid "could not create temporary file '%s': %s" msgstr "impossible de créer un fichier temporaire '%s' : %s" -#: gpg-interface.c:118 +#: gpg-interface.c:132 #, c-format msgid "failed writing detached signature to '%s': %s" msgstr "impossible d'écrire la signature détachée dans '%s' : %s" -#: grep.c:1698 +#: grep.c:1703 #, c-format msgid "'%s': unable to read %s" msgstr "'%s' : lecture de %s impossible" -#: grep.c:1715 +#: grep.c:1720 #, c-format msgid "'%s': %s" msgstr "'%s' : %s" -#: grep.c:1726 +#: grep.c:1731 #, c-format msgid "'%s': short read %s" msgstr "'%s' : lecture tronquée %s" -#: help.c:209 +#: help.c:207 #, c-format msgid "available git commands in '%s'" msgstr "commandes git disponibles dans '%s'" -#: help.c:216 +#: help.c:214 msgid "git commands available from elsewhere on your $PATH" msgstr "commandes git disponibles depuis un autre endroit de votre $PATH" -#: help.c:232 +#: help.c:230 msgid "The most commonly used git commands are:" msgstr "Les commandes git les plus utilisées sont :" @@ -632,7 +640,7 @@ msgstr "dans %0.1f secondes automatiquement..." 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:384 help.c:443 +#: help.c:384 help.c:444 msgid "" "\n" "Did you mean this?" @@ -646,16 +654,16 @@ msgstr[1] "" "\n" "Vouliez-vous dire un de ceux-là ?" -#: help.c:439 +#: help.c:440 #, c-format msgid "%s: %s - %s" msgstr "%s: %s - %s" -#: merge.c:56 +#: merge.c:40 msgid "failed to read the cache" msgstr "impossible de lire le cache" -#: merge.c:110 builtin/checkout.c:357 builtin/checkout.c:558 +#: merge.c:93 builtin/checkout.c:356 builtin/checkout.c:556 #: builtin/clone.c:661 msgid "unable to write new index file" msgstr "impossible d'écrire le nouveau fichier d'index" @@ -665,7 +673,7 @@ msgstr "impossible d'écrire le nouveau fichier d'index" msgid "(bad commit)\n" msgstr "(mauvais commit)\n" -#: merge-recursive.c:208 +#: merge-recursive.c:210 #, c-format msgid "addinfo_cache failed for path '%s'" msgstr "échec de addinfo_cache pour le chemin '%s'" @@ -674,64 +682,64 @@ msgstr "échec de addinfo_cache pour le chemin '%s'" msgid "error building trees" msgstr "erreur de construction des arbres" -#: merge-recursive.c:675 +#: merge-recursive.c:692 #, c-format msgid "failed to create path '%s'%s" msgstr "impossible de créer le chemin '%s' %s" -#: merge-recursive.c:686 +#: merge-recursive.c:703 #, 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:700 merge-recursive.c:721 +#: merge-recursive.c:717 merge-recursive.c:738 msgid ": perhaps a D/F conflict?" msgstr ": peut-être un conflit D/F ?" -#: merge-recursive.c:711 +#: merge-recursive.c:728 #, c-format msgid "refusing to lose untracked file at '%s'" msgstr "refus de perdre le fichier non suivi '%s'" -#: merge-recursive.c:751 +#: merge-recursive.c:768 #, c-format msgid "cannot read object %s '%s'" msgstr "impossible de lire l'objet %s '%s'" -#: merge-recursive.c:753 +#: merge-recursive.c:770 #, c-format msgid "blob expected for %s '%s'" msgstr "blob attendu pour %s '%s'" -#: merge-recursive.c:776 builtin/clone.c:317 +#: merge-recursive.c:793 builtin/clone.c:317 #, c-format msgid "failed to open '%s'" msgstr "échec à l'ouverture de '%s'" -#: merge-recursive.c:784 +#: merge-recursive.c:801 #, c-format msgid "failed to symlink '%s'" msgstr "échec à la création du lien symbolique '%s'" -#: merge-recursive.c:787 +#: merge-recursive.c:804 #, c-format msgid "do not know what to do with %06o %s '%s'" msgstr "ne sait pas traiter %06o %s '%s'" -#: merge-recursive.c:925 +#: merge-recursive.c:942 msgid "Failed to execute internal merge" msgstr "Échec à l'exécution de la fusion interne" -#: merge-recursive.c:929 +#: merge-recursive.c:946 #, c-format msgid "Unable to add %s to database" msgstr "Impossible d'ajouter %s à la base de données" -#: merge-recursive.c:945 +#: merge-recursive.c:962 msgid "unsupported object type in the tree" msgstr "type d'objet non supporté dans l'arbre" -#: merge-recursive.c:1024 merge-recursive.c:1038 +#: merge-recursive.c:1037 merge-recursive.c:1051 #, c-format msgid "" "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left " @@ -740,7 +748,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:1030 merge-recursive.c:1043 +#: merge-recursive.c:1043 merge-recursive.c:1056 #, c-format msgid "" "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left " @@ -749,20 +757,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:1084 +#: merge-recursive.c:1097 msgid "rename" msgstr "renommage" -#: merge-recursive.c:1084 +#: merge-recursive.c:1097 msgid "renamed" msgstr "renommé" -#: merge-recursive.c:1140 +#: merge-recursive.c:1153 #, 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:1162 +#: merge-recursive.c:1175 #, c-format msgid "" "CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s" @@ -771,197 +779,197 @@ msgstr "" "CONFLIT (renommage/renommage) : Renommage de \"%s\"->\"%s\" dans la branche " "\"%s\" et renommage \"%s\"->\"%s\" dans \"%s\"%s" -#: merge-recursive.c:1167 +#: merge-recursive.c:1180 msgid " (left unresolved)" msgstr " (laissé non résolu)" -#: merge-recursive.c:1221 +#: merge-recursive.c:1234 #, 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:1251 +#: merge-recursive.c:1264 #, 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:1450 +#: merge-recursive.c:1463 #, 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:1460 +#: merge-recursive.c:1473 #, c-format msgid "Adding merged %s" msgstr "Ajout de %s fusionné" -#: merge-recursive.c:1465 merge-recursive.c:1663 +#: merge-recursive.c:1478 merge-recursive.c:1676 #, c-format msgid "Adding as %s instead" msgstr "Ajout plutôt comme %s" -#: merge-recursive.c:1516 +#: merge-recursive.c:1529 #, c-format msgid "cannot read object %s" msgstr "impossible de lire l'objet %s" -#: merge-recursive.c:1519 +#: merge-recursive.c:1532 #, c-format msgid "object %s is not a blob" msgstr "l'objet %s n'est pas un blob" -#: merge-recursive.c:1567 +#: merge-recursive.c:1580 msgid "modify" msgstr "modification" -#: merge-recursive.c:1567 +#: merge-recursive.c:1580 msgid "modified" msgstr "modifié" -#: merge-recursive.c:1577 +#: merge-recursive.c:1590 msgid "content" msgstr "contenu" -#: merge-recursive.c:1584 +#: merge-recursive.c:1597 msgid "add/add" msgstr "ajout/ajout" -#: merge-recursive.c:1618 +#: merge-recursive.c:1631 #, c-format msgid "Skipped %s (merged same as existing)" msgstr "%s sauté (fusion identique à l'existant)" -#: merge-recursive.c:1632 +#: merge-recursive.c:1645 #, c-format msgid "Auto-merging %s" msgstr "Fusion automatique de %s" -#: merge-recursive.c:1636 git-submodule.sh:1149 +#: merge-recursive.c:1649 git-submodule.sh:1150 msgid "submodule" msgstr "sous-module" -#: merge-recursive.c:1637 +#: merge-recursive.c:1650 #, c-format msgid "CONFLICT (%s): Merge conflict in %s" msgstr "CONFLIT (%s) : Conflit de fusion dans %s" -#: merge-recursive.c:1727 +#: merge-recursive.c:1740 #, c-format msgid "Removing %s" msgstr "Suppression de %s" -#: merge-recursive.c:1752 +#: merge-recursive.c:1765 msgid "file/directory" msgstr "fichier/répertoire" -#: merge-recursive.c:1758 +#: merge-recursive.c:1771 msgid "directory/file" msgstr "répertoire/fichier" -#: merge-recursive.c:1763 +#: merge-recursive.c:1776 #, 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:1773 +#: merge-recursive.c:1786 #, c-format msgid "Adding %s" msgstr "Ajout de %s" -#: merge-recursive.c:1790 +#: merge-recursive.c:1803 msgid "Fatal merge failure, shouldn't happen." msgstr "Échec fatal de fusion, qui ne devrait jamais arriver." -#: merge-recursive.c:1809 +#: merge-recursive.c:1822 msgid "Already up-to-date!" msgstr "Déjà à jour !" -#: merge-recursive.c:1818 +#: merge-recursive.c:1831 #, c-format msgid "merging of trees %s and %s failed" msgstr "échec de fusion des arbres %s et %s" -#: merge-recursive.c:1848 +#: merge-recursive.c:1861 #, c-format msgid "Unprocessed path??? %s" msgstr "Chemin non traité ??? %s" -#: merge-recursive.c:1893 +#: merge-recursive.c:1906 msgid "Merging:" msgstr "Fusion :" -#: merge-recursive.c:1906 +#: 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:1943 +#: merge-recursive.c:1956 msgid "merge returned no commit" msgstr "la fusion n'a pas retourné de commit" -#: merge-recursive.c:2000 +#: merge-recursive.c:2013 #, c-format msgid "Could not parse object '%s'" msgstr "Impossible d'analyser l'objet '%s'" -#: merge-recursive.c:2012 builtin/merge.c:668 +#: merge-recursive.c:2024 builtin/merge.c:666 msgid "Unable to write index." msgstr "Impossible d'écrire l'index." -#: notes-utils.c:40 +#: notes-utils.c:41 msgid "Cannot commit uninitialized/unreferenced notes tree" msgstr "Impossible de valider un arbre de notes non initialisé/référencé" -#: notes-utils.c:81 +#: notes-utils.c:83 #, c-format msgid "Bad notes.rewriteMode value: '%s'" msgstr "Mauvaise valeur de notes.rewriteMode : '%s'" -#: notes-utils.c:91 +#: notes-utils.c:93 #, c-format msgid "Refusing to rewrite notes in %s (outside of refs/notes/)" msgstr "Refus de réécrire des notes dans %s (hors de refs/notes/)" #. TRANSLATORS: The first %s is the name of the #. environment variable, the second %s is its value -#: notes-utils.c:118 +#: notes-utils.c:120 #, c-format msgid "Bad %s value: '%s'" msgstr "Mauvaise valeur de %s : '%s'" -#: object.c:229 +#: object.c:234 #, c-format msgid "unable to parse object: %s" msgstr "impossible d'analyser l'objet : %s" -#: parse-options.c:532 +#: parse-options.c:534 msgid "..." msgstr "..." -#: parse-options.c:550 +#: parse-options.c:552 #, c-format msgid "usage: %s" msgstr "usage : %s" #. TRANSLATORS: the colon here should align with the #. one in "usage: %s" translation -#: parse-options.c:554 +#: parse-options.c:556 #, c-format msgid " or: %s" msgstr " ou : %s" -#: parse-options.c:557 +#: parse-options.c:559 #, c-format msgid " %s" msgstr " %s" -#: parse-options.c:591 +#: parse-options.c:593 msgid "-NUM" msgstr "-NUM" @@ -1020,12 +1028,12 @@ msgstr "" "%s : le spécificateur magique de chemin n'est pas supporté par cette " "commande : %s" -#: pathspec.c:433 +#: pathspec.c:432 #, c-format msgid "pathspec '%s' is beyond a symbolic link" msgstr "le chemin '%s' est au-delà d'un lien symbolique" -#: pathspec.c:442 +#: pathspec.c:441 msgid "" "There is nothing to exclude from by :(exclude) patterns.\n" "Perhaps you forgot to add either ':/' or '.' ?" @@ -1033,11 +1041,11 @@ msgstr "" "Il n'y a rien dont il faut exclure par des motifs :(exclure).\n" "Peut-être avez-vous oublié d'ajouter ':/' ou '.' ?" -#: progress.c:224 +#: progress.c:225 msgid "done" msgstr "fait" -#: read-cache.c:1238 +#: read-cache.c:1260 #, c-format msgid "" "index.version set, but the value is invalid.\n" @@ -1046,7 +1054,7 @@ msgstr "" "version d'index renseignée, mais la valeur est invalide.\n" "Utilisation de la version %i" -#: read-cache.c:1248 +#: read-cache.c:1270 #, c-format msgid "" "GIT_INDEX_VERSION set, but the value is invalid.\n" @@ -1055,51 +1063,51 @@ msgstr "" "GIT_INDEX_VERSION est renseigné, mais la valeur est invalide.\n" "Utilisation de la version %i" -#: remote.c:758 +#: remote.c:753 #, 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:762 +#: remote.c:757 #, c-format msgid "%s usually tracks %s, not %s" msgstr "%s suit habituellement %s, pas %s" -#: remote.c:766 +#: remote.c:761 #, c-format msgid "%s tracks both %s and %s" msgstr "%s suit à la fois %s et %s" -#: remote.c:774 +#: remote.c:769 msgid "Internal error" msgstr "Erreur interne" -#: remote.c:1948 +#: remote.c:1943 #, 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:1952 +#: remote.c:1947 msgid " (use \"git branch --unset-upstream\" to fixup)\n" msgstr " (utilisez \"git branch --unset-upstream\" pour corriger)\n" -#: remote.c:1955 +#: remote.c:1950 #, c-format msgid "Your branch is up-to-date with '%s'.\n" msgstr "Votre branche est à jour avec '%s'.\n" -#: remote.c:1959 +#: remote.c:1954 #, 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:1965 +#: remote.c:1960 msgid " (use \"git push\" to publish your local commits)\n" msgstr " (utilisez \"git push\" pour publier vos commits locaux)\n" -#: remote.c:1968 +#: remote.c:1963 #, c-format msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n" msgid_plural "" @@ -1111,11 +1119,11 @@ msgstr[1] "" "Votre branche est en retard sur '%s' de %d commits, et peut être mise à jour " "en avance rapide.\n" -#: remote.c:1976 +#: remote.c:1971 msgid " (use \"git pull\" to update your local branch)\n" msgstr " (utilisez \"git pull\" pour mettre à jour votre branche locale)\n" -#: remote.c:1979 +#: remote.c:1974 #, c-format msgid "" "Your branch and '%s' have diverged,\n" @@ -1130,7 +1138,7 @@ msgstr[1] "" "Votre branche et '%s' ont divergé,\n" "et ont %d et %d commits différents chacune respectivement.\n" -#: remote.c:1989 +#: remote.c:1984 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" @@ -1144,19 +1152,19 @@ msgstr "échec de l'ouverture de /dev/null" msgid "dup2(%d,%d) failed" msgstr "échec de dup2(%d,%d)" -#: sequencer.c:206 builtin/merge.c:786 builtin/merge.c:899 -#: builtin/merge.c:1009 builtin/merge.c:1019 +#: sequencer.c:171 builtin/merge.c:782 builtin/merge.c:893 +#: builtin/merge.c:1003 builtin/merge.c:1013 #, c-format msgid "Could not open '%s' for writing" msgstr "Impossible d'ouvrir '%s' en écriture" -#: sequencer.c:208 builtin/merge.c:343 builtin/merge.c:789 -#: builtin/merge.c:1011 builtin/merge.c:1024 +#: sequencer.c:173 builtin/merge.c:343 builtin/merge.c:785 +#: builtin/merge.c:1005 builtin/merge.c:1018 #, c-format msgid "Could not write to '%s'" msgstr "Impossible d'écrire dans '%s'" -#: sequencer.c:229 +#: sequencer.c:194 msgid "" "after resolving the conflicts, mark the corrected paths\n" "with 'git add <paths>' or 'git rm <paths>'" @@ -1164,7 +1172,7 @@ msgstr "" "après résolution des conflits, marquez les chemins corrigés\n" "avec 'git add <chemins>' ou 'git rm <chemins>'" -#: sequencer.c:232 +#: sequencer.c:197 msgid "" "after resolving the conflicts, mark the corrected paths\n" "with 'git add <paths>' or 'git rm <paths>'\n" @@ -1174,67 +1182,71 @@ msgstr "" "avec 'git add <chemins>' ou 'git rm <chemins>'\n" "puis validez le résultat avec 'git commit'" -#: sequencer.c:245 sequencer.c:879 sequencer.c:962 +#: sequencer.c:210 sequencer.c:841 sequencer.c:924 #, c-format msgid "Could not write to %s" msgstr "Impossible d'écrire dans %s" -#: sequencer.c:248 +#: sequencer.c:213 #, c-format msgid "Error wrapping up %s" msgstr "Erreur à l'emballage de %s" -#: sequencer.c:263 +#: sequencer.c:228 msgid "Your local changes would be overwritten by cherry-pick." msgstr "Vos modifications locales seraient écrasées par cherry-pick." -#: sequencer.c:265 +#: sequencer.c:230 msgid "Your local changes would be overwritten by revert." msgstr "Vos modifications locales seraient écrasées par revert." -#: sequencer.c:268 +#: sequencer.c:233 msgid "Commit your changes or stash them to proceed." msgstr "Validez vos modifications ou les remiser pour continuer." +#: sequencer.c:250 +msgid "Failed to lock HEAD during fast_forward_to" +msgstr "Échec du verrouillage de HEAD pendant l'avance rapide" + #. TRANSLATORS: %s will be "revert" or "cherry-pick" -#: sequencer.c:325 +#: sequencer.c:293 #, c-format msgid "%s: Unable to write new index file" msgstr "%s: Impossible d'écrire le nouveau fichier index" -#: sequencer.c:356 +#: sequencer.c:324 msgid "Could not resolve HEAD commit\n" msgstr "Impossible de résoudre le commit HEAD\n" -#: sequencer.c:378 +#: sequencer.c:344 msgid "Unable to update cache tree\n" msgstr "Impossible de mettre à jour l'arbre de cache\n" -#: sequencer.c:430 +#: sequencer.c:391 #, c-format msgid "Could not parse commit %s\n" msgstr "Impossible d'analyser le commit %s\n" -#: sequencer.c:435 +#: sequencer.c:396 #, c-format msgid "Could not parse parent commit %s\n" msgstr "Impossible d'analyser le commit parent %s\n" -#: sequencer.c:501 +#: sequencer.c:462 msgid "Your index file is unmerged." msgstr "Votre fichier d'index n'est pas fusionné." -#: sequencer.c:520 +#: sequencer.c:481 #, 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:528 +#: sequencer.c:489 #, c-format msgid "Commit %s does not have parent %d" msgstr "Le commit %s n'a pas le parent %d" -#: sequencer.c:532 +#: sequencer.c:493 #, c-format msgid "Mainline was specified but commit %s is not a merge." msgstr "" @@ -1243,153 +1255,153 @@ msgstr "" #. TRANSLATORS: The first %s will be "revert" or #. "cherry-pick", the second %s a SHA1 -#: sequencer.c:545 +#: sequencer.c:506 #, c-format msgid "%s: cannot parse parent commit %s" msgstr "%s : impossible d'analyser le commit parent %s" -#: sequencer.c:549 +#: sequencer.c:510 #, c-format msgid "Cannot get commit message for %s" msgstr "Impossible d'obtenir un message de validation pour %s" -#: sequencer.c:635 +#: sequencer.c:596 #, c-format msgid "could not revert %s... %s" msgstr "impossible d'annuler %s... %s" -#: sequencer.c:636 +#: sequencer.c:597 #, c-format msgid "could not apply %s... %s" msgstr "impossible d'appliquer %s... %s" -#: sequencer.c:672 +#: sequencer.c:633 msgid "empty commit set passed" msgstr "l'ensemble de commits spécifié est vide" -#: sequencer.c:680 +#: sequencer.c:641 #, c-format msgid "git %s: failed to read the index" msgstr "git %s : échec à la lecture de l'index" -#: sequencer.c:685 +#: sequencer.c:645 #, c-format msgid "git %s: failed to refresh the index" msgstr "git %s : échec du rafraîchissement de l'index" -#: sequencer.c:743 +#: sequencer.c:705 #, c-format msgid "Cannot %s during a %s" msgstr "Impossible de %s pendant un %s" -#: sequencer.c:765 +#: sequencer.c:727 #, c-format msgid "Could not parse line %d." msgstr "Impossible d'analyser la ligne %d." -#: sequencer.c:770 +#: sequencer.c:732 msgid "No commits parsed." msgstr "Aucun commit analysé." -#: sequencer.c:783 +#: sequencer.c:745 #, c-format msgid "Could not open %s" msgstr "Impossible d'ouvrir %s" -#: sequencer.c:787 +#: sequencer.c:749 #, c-format msgid "Could not read %s." msgstr "Impossible de lire %s." -#: sequencer.c:794 +#: sequencer.c:756 #, c-format msgid "Unusable instruction sheet: %s" msgstr "Feuille d'instruction inutilisable : %s" -#: sequencer.c:824 +#: sequencer.c:786 #, c-format msgid "Invalid key: %s" msgstr "Clé invalide: %s" -#: sequencer.c:827 +#: sequencer.c:789 #, c-format msgid "Invalid value for %s: %s" msgstr "Valeur invalide pour %s : %s" -#: sequencer.c:839 +#: sequencer.c:801 #, c-format msgid "Malformed options sheet: %s" msgstr "Feuille d'options malformée : %s" -#: sequencer.c:860 +#: sequencer.c:822 msgid "a cherry-pick or revert is already in progress" msgstr "un picorage ou un retour est déjà en cours" -#: sequencer.c:861 +#: sequencer.c:823 msgid "try \"git cherry-pick (--continue | --quit | --abort)\"" msgstr "essayez \"git cherry-pick (--continue|--quit|-- abort)\"" -#: sequencer.c:865 +#: sequencer.c:827 #, c-format msgid "Could not create sequencer directory %s" msgstr "Impossible de créer le répertoire de séquenceur %s" -#: sequencer.c:881 sequencer.c:966 +#: sequencer.c:843 sequencer.c:928 #, c-format msgid "Error wrapping up %s." msgstr "Erreur lors de l'emballage de %s." -#: sequencer.c:900 sequencer.c:1036 +#: sequencer.c:862 sequencer.c:998 msgid "no cherry-pick or revert in progress" msgstr "aucun picorage ou retour en cours" -#: sequencer.c:902 +#: sequencer.c:864 msgid "cannot resolve HEAD" msgstr "impossible de résoudre HEAD" -#: sequencer.c:904 +#: sequencer.c:866 msgid "cannot abort from a branch yet to be born" msgstr "impossible d'abandonner depuis une branche non encore créée" -#: sequencer.c:926 builtin/apply.c:4061 +#: sequencer.c:888 builtin/apply.c:4062 #, c-format msgid "cannot open %s: %s" msgstr "impossible d'ouvrir %s : %s" -#: sequencer.c:929 +#: sequencer.c:891 #, c-format msgid "cannot read %s: %s" msgstr "impossible de lire %s : %s" -#: sequencer.c:930 +#: sequencer.c:892 msgid "unexpected end of file" msgstr "fin de fichier inattendue" -#: sequencer.c:936 +#: sequencer.c:898 #, 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:959 +#: sequencer.c:921 #, c-format msgid "Could not format %s." msgstr "Impossible de formater %s." -#: sequencer.c:1104 +#: sequencer.c:1066 #, c-format msgid "%s: can't cherry-pick a %s" msgstr "%s : impossible de picorer un %s" -#: sequencer.c:1107 +#: sequencer.c:1069 #, c-format msgid "%s: bad revision" msgstr "%s : mauvaise révision" -#: sequencer.c:1141 +#: sequencer.c:1103 msgid "Can't revert as initial commit" msgstr "Impossible d'annuler en tant que commit initial" -#: sequencer.c:1142 +#: sequencer.c:1104 msgid "Can't cherry-pick into empty head" msgstr "Impossible de picorer vers une HEAD vide" @@ -1418,21 +1430,21 @@ msgstr "" "message\n" "en lançant \"git config advice.objectNameWarning false\"" -#: sha1_name.c:1072 +#: sha1_name.c:1060 msgid "HEAD does not point to a branch" msgstr "HEAD ne pointe pas sur une branche" -#: sha1_name.c:1075 +#: sha1_name.c:1063 #, c-format msgid "No such branch: '%s'" msgstr "Branche inconnue : '%s'" -#: sha1_name.c:1077 +#: sha1_name.c:1065 #, c-format msgid "No upstream configured for branch '%s'" msgstr "Aucune branche amont configurée pour la branche '%s'" -#: sha1_name.c:1081 +#: sha1_name.c:1069 #, 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" @@ -1463,17 +1475,17 @@ msgstr "Impossible de supprimer l'élément de .gitmodules pour %s" msgid "staging updated .gitmodules failed" msgstr "échec de la mise en index du .gitmodules mis à jour" -#: submodule.c:1121 builtin/init-db.c:363 +#: submodule.c:1118 builtin/init-db.c:363 #, c-format msgid "Could not create git link %s" msgstr "Impossible de créer le lien git %s" -#: submodule.c:1132 +#: submodule.c:1129 #, c-format msgid "Could not set core.worktree in %s" msgstr "Impossible de paramétrer core.worktree dans %s" -#: unpack-trees.c:206 +#: unpack-trees.c:202 msgid "Checking out files" msgstr "Extraction des fichiers" @@ -1506,24 +1518,24 @@ msgstr "numéro de port invalide" msgid "invalid '..' path segment" msgstr "segment de chemin '..' invalide" -#: wrapper.c:422 +#: wrapper.c:460 #, c-format msgid "unable to access '%s': %s" msgstr "impossible d'accéder à '%s' : %s" -#: wrapper.c:443 +#: wrapper.c:481 #, c-format msgid "unable to access '%s'" msgstr "impossible d'accéder à '%s'" -#: wrapper.c:454 +#: wrapper.c:492 #, c-format 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 " "passe : %s" -#: wrapper.c:455 +#: wrapper.c:493 msgid "no such user" msgstr "utilisateur inconnu" @@ -1673,15 +1685,15 @@ msgstr "contenu non suivi, " msgid "bug: unhandled diff status %c" msgstr "bogue : état de diff non géré %c" -#: wt-status.c:765 +#: wt-status.c:764 msgid "Submodules changed but not updated:" msgstr "Sous-modules modifiés mais non mis à jour :" -#: wt-status.c:767 +#: wt-status.c:766 msgid "Submodule changes to be committed:" msgstr "Changements du sous-module à valider :" -#: wt-status.c:846 +#: wt-status.c:845 msgid "" "Do not touch the line above.\n" "Everything below will be removed." @@ -1689,68 +1701,68 @@ msgstr "" "Ne touchez pas à la ligne ci-dessus\n" "Tout se qui suit sera éliminé." -#: wt-status.c:937 +#: wt-status.c:936 msgid "You have unmerged paths." msgstr "Vous avez des chemins non fusionnés." -#: wt-status.c:940 +#: wt-status.c:939 msgid " (fix conflicts and run \"git commit\")" msgstr " (réglez les conflits puis lancez \"git commit\")" -#: wt-status.c:943 +#: wt-status.c:942 msgid "All conflicts fixed but you are still merging." msgstr "Tous les conflits sont réglés mais la fusion n'est pas terminée." -#: wt-status.c:946 +#: wt-status.c:945 msgid " (use \"git commit\" to conclude merge)" msgstr " (utilisez \"git commit\" pour terminer la fusion)" -#: wt-status.c:956 +#: wt-status.c:955 msgid "You are in the middle of an am session." msgstr "Vous êtes au milieu d'une session am." -#: wt-status.c:959 +#: wt-status.c:958 msgid "The current patch is empty." msgstr "Le patch actuel est vide." -#: wt-status.c:963 +#: wt-status.c:962 msgid " (fix conflicts and then run \"git am --continue\")" msgstr " (réglez les conflits puis lancez \"git am --continue\")" -#: wt-status.c:965 +#: wt-status.c:964 msgid " (use \"git am --skip\" to skip this patch)" msgstr " (utilisez \"git am --skip\" pour sauter ce patch)" -#: wt-status.c:967 +#: wt-status.c:966 msgid " (use \"git am --abort\" to restore the original branch)" msgstr " (utilisez \"git am --abort\" pour restaurer la branche d'origine)" -#: wt-status.c:1027 wt-status.c:1044 +#: wt-status.c:1026 wt-status.c:1043 #, c-format msgid "You are currently rebasing branch '%s' on '%s'." msgstr "Vous êtes en train de rebaser la branche '%s' sur '%s'." -#: wt-status.c:1032 wt-status.c:1049 +#: wt-status.c:1031 wt-status.c:1048 msgid "You are currently rebasing." msgstr "Vous êtes en train de rebaser." -#: wt-status.c:1035 +#: wt-status.c:1034 msgid " (fix conflicts and then run \"git rebase --continue\")" msgstr " (réglez les conflits puis lancez \"git rebase --continue\")" -#: wt-status.c:1037 +#: wt-status.c:1036 msgid " (use \"git rebase --skip\" to skip this patch)" msgstr " (utilisez \"git rebase --skip\" pour sauter ce patch)" -#: wt-status.c:1039 +#: wt-status.c:1038 msgid " (use \"git rebase --abort\" to check out the original branch)" msgstr " (utilisez \"git rebase --abort\" pour extraire la branche d'origine)" -#: wt-status.c:1052 +#: wt-status.c:1051 msgid " (all conflicts fixed: run \"git rebase --continue\")" msgstr " (tous les conflits sont réglés : lancez \"git rebase --continue\")" -#: wt-status.c:1056 +#: wt-status.c:1055 #, c-format msgid "" "You are currently splitting a commit while rebasing branch '%s' on '%s'." @@ -1758,120 +1770,120 @@ msgstr "" "Vous êtes actuellement en train de fractionner un commit pendant un rebasage " "de la branche '%s' sur '%s'." -#: wt-status.c:1061 +#: wt-status.c:1060 msgid "You are currently splitting a commit during a rebase." msgstr "" "Vous êtes actuellement en train de fractionner un commit pendant un rebasage." -#: wt-status.c:1064 +#: wt-status.c:1063 msgid " (Once your working directory is clean, run \"git rebase --continue\")" msgstr "" " (Une fois la copie de travail nettoyée, lancez \"git rebase --continue\")" -#: wt-status.c:1068 +#: wt-status.c:1067 #, c-format msgid "You are currently editing a commit while rebasing branch '%s' on '%s'." msgstr "" "Vous êtes actuellement en train d'éditer un commit pendant un rebasage de la " "branche '%s' sur '%s'." -#: wt-status.c:1073 +#: wt-status.c:1072 msgid "You are currently editing a commit during a rebase." msgstr "" "Vous êtes actuellement en train d'éditer un commit pendant un rebasage." -#: wt-status.c:1076 +#: wt-status.c:1075 msgid " (use \"git commit --amend\" to amend the current commit)" msgstr " (utilisez \"git commit --amend\" pour corriger le commit actuel)" -#: wt-status.c:1078 +#: wt-status.c:1077 msgid "" " (use \"git rebase --continue\" once you are satisfied with your changes)" msgstr "" " (utilisez \"git rebase --continue\" quand vous êtes satisfait de vos " "modifications)" -#: wt-status.c:1088 +#: wt-status.c:1087 #, c-format msgid "You are currently cherry-picking commit %s." msgstr "Vous êtes actuellement en train de picorer le commit %s." -#: wt-status.c:1093 +#: wt-status.c:1092 msgid " (fix conflicts and run \"git cherry-pick --continue\")" msgstr " (réglez les conflits puis lancez \"git cherry-pick --continue\")" -#: wt-status.c:1096 +#: wt-status.c:1095 msgid " (all conflicts fixed: run \"git cherry-pick --continue\")" msgstr "" " (tous les conflits sont réglés : lancez \"git cherry-pick --continue\")" -#: wt-status.c:1098 +#: wt-status.c:1097 msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)" msgstr " (utilisez \"git cherry-pick --abort\" pour annuler le picorage)" -#: wt-status.c:1107 +#: wt-status.c:1106 #, c-format msgid "You are currently reverting commit %s." msgstr "Vous êtes actuellement en train de rétablir le commit %s." -#: wt-status.c:1112 +#: wt-status.c:1111 msgid " (fix conflicts and run \"git revert --continue\")" msgstr " (réglez les conflits puis lancez \"git revert --continue\")" -#: wt-status.c:1115 +#: wt-status.c:1114 msgid " (all conflicts fixed: run \"git revert --continue\")" msgstr " (tous les conflits sont réglés : lancez \"git revert --continue\")" -#: wt-status.c:1117 +#: wt-status.c:1116 msgid " (use \"git revert --abort\" to cancel the revert operation)" msgstr " (utilisez \"git revert --abort\" pour annuler le rétablissement)" -#: wt-status.c:1128 +#: wt-status.c:1127 #, c-format msgid "You are currently bisecting, started from branch '%s'." msgstr "Vous êtes en cours de bissection, depuis la branche '%s'." -#: wt-status.c:1132 +#: wt-status.c:1131 msgid "You are currently bisecting." msgstr "Vous êtes en cours de bissection." -#: wt-status.c:1135 +#: wt-status.c:1134 msgid " (use \"git bisect reset\" to get back to the original branch)" msgstr " (utilisez \"git bisect reset\" pour revenir à la branche d'origine)" -#: wt-status.c:1310 +#: wt-status.c:1309 msgid "On branch " msgstr "Sur la branche " -#: wt-status.c:1317 +#: wt-status.c:1316 msgid "rebase in progress; onto " msgstr "rebasage en cours ; sur " -#: wt-status.c:1324 +#: wt-status.c:1323 msgid "HEAD detached at " msgstr "HEAD détachée sur " -#: wt-status.c:1326 +#: wt-status.c:1325 msgid "HEAD detached from " msgstr "HEAD détachée depuis " -#: wt-status.c:1329 +#: wt-status.c:1328 msgid "Not currently on any branch." msgstr "Actuellement sur aucun branche." -#: wt-status.c:1346 +#: wt-status.c:1345 msgid "Initial commit" msgstr "Validation initiale" -#: wt-status.c:1360 +#: wt-status.c:1359 msgid "Untracked files" msgstr "Fichiers non suivis" -#: wt-status.c:1362 +#: wt-status.c:1361 msgid "Ignored files" msgstr "Fichiers ignorés" -#: wt-status.c:1366 +#: wt-status.c:1365 #, c-format msgid "" "It took %.2f seconds to enumerate untracked files. 'status -uno'\n" @@ -1883,32 +1895,32 @@ msgstr "" "oublier d'ajouter les nouveaux fichiers par vous-même (voir 'git help " "status')." -#: wt-status.c:1372 +#: wt-status.c:1371 #, c-format msgid "Untracked files not listed%s" msgstr "Fichiers non suivis non affichés%s" -#: wt-status.c:1374 +#: wt-status.c:1373 msgid " (use -u option to show untracked files)" msgstr " (utilisez -u pour afficher les fichiers non suivis)" -#: wt-status.c:1380 +#: wt-status.c:1379 msgid "No changes" msgstr "Aucune modification" -#: wt-status.c:1385 +#: wt-status.c:1384 #, c-format msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n" msgstr "" "aucune modification n'a été ajoutée à la validation (utilisez \"git add\" ou " "\"git commit -a\")\n" -#: wt-status.c:1388 +#: wt-status.c:1387 #, c-format msgid "no changes added to commit\n" msgstr "aucune modification ajoutée à la validation\n" -#: wt-status.c:1391 +#: wt-status.c:1390 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " @@ -1917,49 +1929,49 @@ msgstr "" "aucune modification ajoutée à la validation mais des fichiers non suivis " "sont présents (utilisez \"git add\" pour les suivre)\n" -#: wt-status.c:1394 +#: wt-status.c:1393 #, c-format msgid "nothing added to commit but untracked files present\n" msgstr "" "aucune modification ajoutée à la validation mais des fichiers non suivis " "sont présents\n" -#: wt-status.c:1397 +#: wt-status.c:1396 #, c-format msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "" "rien à valider (créez/copiez des fichiers et utilisez \"git add\" pour les " "suivre)\n" -#: wt-status.c:1400 wt-status.c:1405 +#: wt-status.c:1399 wt-status.c:1404 #, c-format msgid "nothing to commit\n" msgstr "rien à valider\n" -#: wt-status.c:1403 +#: wt-status.c:1402 #, c-format msgid "nothing to commit (use -u to show untracked files)\n" msgstr "rien à valider (utilisez -u pour afficher les fichiers non suivis)\n" -#: wt-status.c:1407 +#: wt-status.c:1406 #, c-format msgid "nothing to commit, working directory clean\n" msgstr "rien à valider, la copie de travail est propre\n" -#: wt-status.c:1516 +#: wt-status.c:1515 msgid "HEAD (no branch)" msgstr "HEAD (aucune branche)" -#: wt-status.c:1522 +#: wt-status.c:1521 msgid "Initial commit on " msgstr "Validation initiale sur " # à priori on parle d'une branche ici -#: wt-status.c:1554 +#: wt-status.c:1553 msgid "gone" msgstr "disparue" -#: wt-status.c:1556 wt-status.c:1564 +#: wt-status.c:1555 wt-status.c:1563 msgid "behind " msgstr "derrière " @@ -1990,7 +2002,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:193 +#: builtin/add.c:193 builtin/rev-parse.c:781 msgid "Could not read the index" msgstr "Impossible de lire l'index" @@ -2022,15 +2034,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:248 builtin/clean.c:876 builtin/fetch.c:93 builtin/mv.c:70 -#: builtin/prune-packed.c:77 builtin/push.c:489 builtin/remote.c:1344 +#: builtin/add.c:248 builtin/clean.c:875 builtin/fetch.c:108 builtin/mv.c:70 +#: builtin/prune-packed.c:77 builtin/push.c:488 builtin/remote.c:1367 #: builtin/rm.c:269 msgid "dry run" msgstr "simuler l'action" -#: builtin/add.c:249 builtin/apply.c:4410 builtin/check-ignore.c:19 -#: builtin/commit.c:1256 builtin/count-objects.c:95 builtin/fsck.c:612 -#: builtin/log.c:1592 builtin/mv.c:69 builtin/read-tree.c:113 +#: builtin/add.c:249 builtin/apply.c:4411 builtin/check-ignore.c:19 +#: builtin/commit.c:1328 builtin/count-objects.c:95 builtin/fsck.c:606 +#: builtin/log.c:1613 builtin/mv.c:69 builtin/read-tree.c:113 msgid "be verbose" msgstr "mode verbeux" @@ -2038,7 +2050,7 @@ msgstr "mode verbeux" msgid "interactive picking" msgstr "sélection interactive" -#: builtin/add.c:252 builtin/checkout.c:1108 builtin/reset.c:283 +#: builtin/add.c:252 builtin/checkout.c:1102 builtin/reset.c:285 msgid "select hunks interactively" msgstr "sélection interactive des sections" @@ -2094,31 +2106,31 @@ msgstr "aucun fichier ajouté" msgid "adding files failed" msgstr "échec de l'ajout de fichiers" -#: builtin/add.c:330 +#: builtin/add.c:329 msgid "-A and -u are mutually incompatible" msgstr "-A et -u sont mutuellement incompatibles" -#: builtin/add.c:337 +#: builtin/add.c:336 msgid "Option --ignore-missing can only be used together with --dry-run" msgstr "" "L'option --ignore-missing ne peut être utilisée qu'en complément de --dry-run" -#: builtin/add.c:358 +#: builtin/add.c:357 #, c-format msgid "Nothing specified, nothing added.\n" msgstr "Rien de spécifié, rien n'a été ajouté.\n" -#: builtin/add.c:359 +#: builtin/add.c:358 #, c-format msgid "Maybe you wanted to say 'git add .'?\n" msgstr "Vous vouliez sûrement dire 'git add .' ?\n" -#: builtin/add.c:364 builtin/check-ignore.c:172 builtin/clean.c:920 -#: builtin/commit.c:320 builtin/mv.c:90 builtin/reset.c:234 builtin/rm.c:299 +#: builtin/add.c:363 builtin/check-ignore.c:172 builtin/clean.c:919 +#: builtin/commit.c:319 builtin/mv.c:90 builtin/reset.c:234 builtin/rm.c:299 msgid "index file corrupt" msgstr "fichier d'index corrompu" -#: builtin/add.c:448 builtin/apply.c:4506 builtin/mv.c:280 builtin/rm.c:432 +#: builtin/add.c:446 builtin/apply.c:4506 builtin/mv.c:280 builtin/rm.c:431 msgid "Unable to write new index file" msgstr "Impossible d'écrire le nouveau fichier d'index" @@ -2136,43 +2148,43 @@ msgstr "option d'espace non reconnue '%s'" msgid "unrecognized whitespace ignore option '%s'" msgstr "option d'ignorance d'espace non reconnue '%s'" -#: builtin/apply.c:823 +#: builtin/apply.c:825 #, c-format msgid "Cannot prepare timestamp regexp %s" msgstr "Impossible de préparer la regexp d'horodatage %s" -#: builtin/apply.c:832 +#: builtin/apply.c:834 #, c-format msgid "regexec returned %d for input: %s" msgstr "regexec a retourné %d pour l'entrée : %s" -#: builtin/apply.c:913 +#: builtin/apply.c:915 #, c-format msgid "unable to find filename in patch at line %d" msgstr "nom de fichier du patch introuvable à la ligne %d" -#: builtin/apply.c:945 +#: builtin/apply.c:947 #, c-format msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d" msgstr "" "git apply : mauvais format de git-diff - /dev/null attendu, %s trouvé à la " "ligne %d" -#: builtin/apply.c:949 +#: builtin/apply.c:951 #, c-format msgid "git apply: bad git-diff - inconsistent new filename on line %d" msgstr "" "git apply : mauvais format de git-diff - nouveau nom de fichier inconsistant " "à la ligne %d" -#: builtin/apply.c:950 +#: builtin/apply.c:952 #, c-format msgid "git apply: bad git-diff - inconsistent old filename on line %d" msgstr "" "git apply : mauvais format de git-diff - ancien nom de fichier inconsistant " "à la ligne %d" -#: builtin/apply.c:957 +#: builtin/apply.c:959 #, c-format msgid "git apply: bad git-diff - expected /dev/null on line %d" msgstr "" @@ -2287,19 +2299,19 @@ msgstr "" msgid "missing binary patch data for '%s'" msgstr "données de patch binaire manquantes pour '%s'" -#: builtin/apply.c:2946 +#: builtin/apply.c:2944 #, c-format msgid "binary patch does not apply to '%s'" msgstr "le patch binaire ne s'applique par correctement à '%s'" -#: builtin/apply.c:2952 +#: builtin/apply.c:2950 #, c-format msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)" msgstr "" "le patch binaire sur '%s' crée un résultat incorrect (%s attendu, mais %s " "trouvé)" -#: builtin/apply.c:2973 +#: builtin/apply.c:2971 #, c-format msgid "patch failed: %s:%ld" msgstr "le patch a échoué : %s:%ld" @@ -2389,221 +2401,221 @@ msgstr "échec de make_cache_entry pour le chemin '%s'" msgid "unable to remove %s from index" msgstr "suppression de %s dans l'index impossible" -#: builtin/apply.c:3851 +#: builtin/apply.c:3852 #, c-format msgid "corrupt patch for submodule %s" msgstr "patch corrompu pour le sous-module %s" -#: builtin/apply.c:3855 +#: builtin/apply.c:3856 #, c-format msgid "unable to stat newly created file '%s'" msgstr "stat du fichier nouvellement créé '%s' impossible" -#: builtin/apply.c:3860 +#: builtin/apply.c:3861 #, c-format msgid "unable to create backing store for newly created file %s" msgstr "" "création du magasin de stockage pour le fichier nouvellement créé %s " "impossible" -#: builtin/apply.c:3863 builtin/apply.c:3971 +#: builtin/apply.c:3864 builtin/apply.c:3972 #, c-format msgid "unable to add cache entry for %s" msgstr "ajout de l'élément de cache %s impossible" -#: builtin/apply.c:3896 +#: builtin/apply.c:3897 #, c-format msgid "closing file '%s'" msgstr "fermeture du fichier '%s'" -#: builtin/apply.c:3945 +#: builtin/apply.c:3946 #, c-format msgid "unable to write file '%s' mode %o" msgstr "écriture du fichier '%s' mode %o impossible" -#: builtin/apply.c:4032 +#: builtin/apply.c:4033 #, c-format msgid "Applied patch %s cleanly." msgstr "Patch %s appliqué proprement." -#: builtin/apply.c:4040 +#: builtin/apply.c:4041 msgid "internal error" msgstr "erreur interne" -#: builtin/apply.c:4043 +#: builtin/apply.c:4044 #, c-format msgid "Applying patch %%s with %d reject..." msgid_plural "Applying patch %%s with %d rejects..." msgstr[0] "Application du patch %%s avec %d rejet..." msgstr[1] "Application du patch %%s avec %d rejets..." -#: builtin/apply.c:4053 +#: builtin/apply.c:4054 #, c-format msgid "truncating .rej filename to %.*s.rej" msgstr "troncature du nom de fichier .rej en %.*s.rej" -#: builtin/apply.c:4074 +#: builtin/apply.c:4075 #, c-format msgid "Hunk #%d applied cleanly." msgstr "Section n°%d appliquée proprement." -#: builtin/apply.c:4077 +#: builtin/apply.c:4078 #, c-format msgid "Rejected hunk #%d." msgstr "Section n°%d rejetée." -#: builtin/apply.c:4227 +#: builtin/apply.c:4228 msgid "unrecognized input" msgstr "entrée non reconnue" -#: builtin/apply.c:4238 +#: builtin/apply.c:4239 msgid "unable to read index file" msgstr "lecture du fichier d'index impossible" -#: builtin/apply.c:4357 builtin/apply.c:4360 builtin/clone.c:90 -#: builtin/fetch.c:78 +#: builtin/apply.c:4358 builtin/apply.c:4361 builtin/clone.c:90 +#: builtin/fetch.c:93 msgid "path" msgstr "chemin" -#: builtin/apply.c:4358 +#: builtin/apply.c:4359 msgid "don't apply changes matching the given path" msgstr "ne pas appliquer les modifications qui correspondent au chemin donné" -#: builtin/apply.c:4361 +#: builtin/apply.c:4362 msgid "apply changes matching the given path" msgstr "appliquer les modifications qui correspondent au chemin donné" -#: builtin/apply.c:4363 +#: builtin/apply.c:4364 msgid "num" msgstr "num" -#: builtin/apply.c:4364 +#: builtin/apply.c:4365 msgid "remove <num> leading slashes from traditional diff paths" msgstr "supprimer <num> barres obliques des chemins traditionnels de diff" -#: builtin/apply.c:4367 +#: builtin/apply.c:4368 msgid "ignore additions made by the patch" msgstr "ignorer les additions réalisées par le patch" -#: builtin/apply.c:4369 +#: builtin/apply.c:4370 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:4373 +#: builtin/apply.c:4374 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:4375 +#: builtin/apply.c:4376 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:4377 +#: builtin/apply.c:4378 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:4379 +#: builtin/apply.c:4380 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:4381 +#: builtin/apply.c:4382 msgid "apply a patch without touching the working tree" msgstr "appliquer les patch sans toucher à la copie de travail" -#: builtin/apply.c:4383 +#: builtin/apply.c:4384 msgid "also apply the patch (use with --stat/--summary/--check)" msgstr "appliquer aussi le patch (à utiliser avec ---stat/--summary/--check)" -#: builtin/apply.c:4385 +#: builtin/apply.c:4386 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:4387 +#: builtin/apply.c:4388 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:4389 builtin/checkout-index.c:197 builtin/ls-files.c:455 +#: builtin/apply.c:4390 builtin/checkout-index.c:198 builtin/ls-files.c:455 msgid "paths are separated with NUL character" msgstr "les chemins sont séparés par un caractère NUL" -#: builtin/apply.c:4392 +#: builtin/apply.c:4393 msgid "ensure at least <n> lines of context match" msgstr "s'assurer d'au moins <n> lignes de correspondance de contexte" -#: builtin/apply.c:4393 +#: builtin/apply.c:4394 msgid "action" msgstr "action" -#: builtin/apply.c:4394 +#: builtin/apply.c:4395 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:4397 builtin/apply.c:4400 +#: builtin/apply.c:4398 builtin/apply.c:4401 msgid "ignore changes in whitespace when finding context" msgstr "ignorer des modifications d'espace lors de la recherche de contexte" -#: builtin/apply.c:4403 +#: builtin/apply.c:4404 msgid "apply the patch in reverse" msgstr "appliquer le patch en sens inverse" -#: builtin/apply.c:4405 +#: builtin/apply.c:4406 msgid "don't expect at least one line of context" msgstr "ne pas s'attendre à au moins une ligne de contexte" -#: builtin/apply.c:4407 +#: builtin/apply.c:4408 msgid "leave the rejected hunks in corresponding *.rej files" msgstr "laisser les sections rejetées dans les fichiers *.rej correspondants" -#: builtin/apply.c:4409 +#: builtin/apply.c:4410 msgid "allow overlapping hunks" msgstr "accepter les recouvrements de sections" -#: builtin/apply.c:4412 +#: builtin/apply.c:4413 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:4415 +#: builtin/apply.c:4416 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:4417 +#: builtin/apply.c:4418 msgid "root" msgstr "racine" -#: builtin/apply.c:4418 +#: builtin/apply.c:4419 msgid "prepend <root> to all filenames" msgstr "préfixer tous les noms de fichier avec <root>" -#: builtin/apply.c:4440 +#: builtin/apply.c:4441 msgid "--3way outside a repository" msgstr "--3way hors d'un dépôt" -#: builtin/apply.c:4448 +#: builtin/apply.c:4449 msgid "--index outside a repository" msgstr "--index hors d'un dépôt" -#: builtin/apply.c:4451 +#: builtin/apply.c:4452 msgid "--cached outside a repository" msgstr "--cached hors d'un dépôt" -#: builtin/apply.c:4467 +#: builtin/apply.c:4468 #, c-format msgid "can't open patch '%s'" msgstr "ouverture impossible du patch '%s'" -#: builtin/apply.c:4481 +#: builtin/apply.c:4482 #, 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:4487 builtin/apply.c:4497 +#: builtin/apply.c:4488 builtin/apply.c:4498 #, c-format msgid "%d line adds whitespace errors." msgid_plural "%d lines add whitespace errors." @@ -2657,112 +2669,122 @@ 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:27 +#: builtin/blame.c:30 msgid "git blame [options] [rev-opts] [rev] [--] file" msgstr "git blame [options] [options-de-révision] [rev] [--] fichier" -#: builtin/blame.c:32 +#: builtin/blame.c:35 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:2242 +#: builtin/blame.c:2501 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:2243 +#: builtin/blame.c:2502 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:2244 +#: builtin/blame.c:2503 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:2245 +#: builtin/blame.c:2504 msgid "Show work cost statistics" msgstr "Montrer les statistiques de coût d'activité" -#: builtin/blame.c:2246 +#: builtin/blame.c:2505 msgid "Show output score for blame entries" msgstr "Montrer le score de sortie pour les éléments de blâme" -#: builtin/blame.c:2247 +#: builtin/blame.c:2506 msgid "Show original filename (Default: auto)" msgstr "Montrer les noms de fichier originaux (Défaut : auto)" -#: builtin/blame.c:2248 +#: builtin/blame.c:2507 msgid "Show original linenumber (Default: off)" msgstr "Montrer les numéros de lignes originaux (Défaut : désactivé)" -#: builtin/blame.c:2249 +#: builtin/blame.c:2508 msgid "Show in a format designed for machine consumption" msgstr "Afficher dans un format propice à la consommation par machine" -#: builtin/blame.c:2250 +#: builtin/blame.c:2509 msgid "Show porcelain format with per-line commit information" msgstr "Afficher en format porcelaine avec l'information de commit par ligne" -#: builtin/blame.c:2251 +#: builtin/blame.c:2510 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:2252 +#: builtin/blame.c:2511 msgid "Show raw timestamp (Default: off)" msgstr "Afficher les horodatages bruts (Défaut : désactivé)" -#: builtin/blame.c:2253 +#: builtin/blame.c:2512 msgid "Show long commit SHA1 (Default: off)" msgstr "Afficher les longs SHA1 de commits (Défaut : désactivé)" -#: builtin/blame.c:2254 +#: builtin/blame.c:2513 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:2255 +#: builtin/blame.c:2514 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:2256 +#: builtin/blame.c:2515 msgid "Ignore whitespace differences" msgstr "Ignorer les différences d'espace" -#: builtin/blame.c:2257 +#: builtin/blame.c:2516 msgid "Spend extra cycles to find better match" msgstr "" "Dépenser des cycles supplémentaires pour trouver une meilleure correspondance" -#: builtin/blame.c:2258 +#: builtin/blame.c:2517 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:2259 +#: builtin/blame.c:2518 msgid "Use <file>'s contents as the final image" msgstr "Utiliser le contenu de <fichier> comme image finale" -#: builtin/blame.c:2260 builtin/blame.c:2261 +#: builtin/blame.c:2519 builtin/blame.c:2520 msgid "score" msgstr "score" -#: builtin/blame.c:2260 +#: builtin/blame.c:2519 msgid "Find line copies within and across files" msgstr "Trouver les copies de ligne dans et entre les fichiers" -#: builtin/blame.c:2261 +#: builtin/blame.c:2520 msgid "Find line movements within and across files" msgstr "Trouver les mouvements de ligne dans et entre les fichiers" -#: builtin/blame.c:2262 +#: builtin/blame.c:2521 msgid "n,m" msgstr "n,m" -#: builtin/blame.c:2262 +#: builtin/blame.c:2521 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" +#. 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:2599 +msgid "4 years, 11 months ago" +msgstr "il y a 10 ans et 11 mois" + #: builtin/branch.c:24 msgid "git branch [options] [-r | -a] [--merged | --no-merged]" msgstr "git branch [options] [-r | -a] [--merged | --no-merged]" @@ -3004,9 +3026,9 @@ msgid "act on remote-tracking branches" msgstr "agir sur les branches de suivi distantes" #: builtin/branch.c:817 builtin/branch.c:823 builtin/branch.c:844 -#: builtin/branch.c:850 builtin/commit.c:1494 builtin/commit.c:1495 -#: builtin/commit.c:1496 builtin/commit.c:1497 builtin/tag.c:527 -#: builtin/tag.c:533 +#: builtin/branch.c:850 builtin/commit.c:1573 builtin/commit.c:1574 +#: builtin/commit.c:1575 builtin/commit.c:1576 builtin/tag.c:615 +#: builtin/tag.c:621 msgid "commit" msgstr "commit" @@ -3070,7 +3092,7 @@ msgstr "afficher les branches en colonnes" msgid "Failed to resolve HEAD as a valid ref." msgstr "Échec de résolution de HEAD comme référence valide." -#: builtin/branch.c:872 builtin/clone.c:635 +#: builtin/branch.c:872 builtin/clone.c:636 msgid "HEAD not found below refs/heads!" msgstr "HEAD non trouvée sous refs/heads !" @@ -3260,7 +3282,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:1089 builtin/gc.c:271 +#: builtin/check-ignore.c:18 builtin/checkout.c:1083 builtin/gc.c:285 msgid "suppress progress reporting" msgstr "supprimer l'état d'avancement" @@ -3317,45 +3339,45 @@ msgstr "aucun contact spécifié" msgid "git checkout-index [options] [--] [<file>...]" msgstr "git checkout-index [options] [--] [<fichier>...]" -#: builtin/checkout-index.c:187 +#: builtin/checkout-index.c:188 msgid "check out all files in the index" msgstr "extraire tous les fichiers présents dans l'index" -#: builtin/checkout-index.c:188 +#: builtin/checkout-index.c:189 msgid "force overwrite of existing files" msgstr "forcer l'écrasement des fichiers existants" -#: builtin/checkout-index.c:190 +#: builtin/checkout-index.c:191 msgid "no warning for existing files and files not in index" msgstr "" "pas d'avertissement pour les fichiers existants et les fichiers absents de " "l'index" -#: builtin/checkout-index.c:192 +#: builtin/checkout-index.c:193 msgid "don't checkout new files" msgstr "ne pas extraire les nouveaux fichiers" -#: builtin/checkout-index.c:194 +#: builtin/checkout-index.c:195 msgid "update stat information in the index file" msgstr "mettre à jour l'information de stat dans le fichier d'index" -#: builtin/checkout-index.c:200 +#: builtin/checkout-index.c:201 msgid "read list of paths from the standard input" msgstr "lire la liste des chemins depuis l'entrée standard" -#: builtin/checkout-index.c:202 +#: builtin/checkout-index.c:203 msgid "write the content to temporary files" msgstr "écrire le contenu dans des fichiers temporaires" -#: builtin/checkout-index.c:203 builtin/column.c:30 +#: builtin/checkout-index.c:204 builtin/column.c:30 msgid "string" msgstr "chaîne" -#: builtin/checkout-index.c:204 +#: builtin/checkout-index.c:205 msgid "when creating files, prepend <string>" msgstr "lors de la création de fichiers, préfixer par <chaîne>" -#: builtin/checkout-index.c:207 +#: builtin/checkout-index.c:208 msgid "copy out the files from named stage" msgstr "copier les fichiers depuis l'index nommé" @@ -3397,77 +3419,77 @@ msgstr "chemin '%s' : impossible de fusionner" msgid "Unable to add merge result for '%s'" msgstr "Impossible d'ajouter le résultat de fusion pour '%s'" -#: builtin/checkout.c:232 builtin/checkout.c:235 builtin/checkout.c:238 -#: builtin/checkout.c:241 +#: builtin/checkout.c:231 builtin/checkout.c:234 builtin/checkout.c:237 +#: builtin/checkout.c:240 #, c-format msgid "'%s' cannot be used with updating paths" msgstr "'%s' ne peut pas être utilisé avec des mises à jour de chemins" -#: builtin/checkout.c:244 builtin/checkout.c:247 +#: builtin/checkout.c:243 builtin/checkout.c:246 #, c-format msgid "'%s' cannot be used with %s" msgstr "'%s' ne peut pas être utilisé avec %s" -#: builtin/checkout.c:250 +#: builtin/checkout.c:249 #, c-format msgid "Cannot update paths and switch to branch '%s' at the same time." msgstr "" "Impossible de mettre à jour les chemins et basculer sur la branche '%s' en " "même temps." -#: builtin/checkout.c:261 builtin/checkout.c:450 +#: builtin/checkout.c:260 builtin/checkout.c:449 msgid "corrupt index file" msgstr "fichier d'index corrompu" -#: builtin/checkout.c:321 builtin/checkout.c:328 +#: builtin/checkout.c:320 builtin/checkout.c:327 #, c-format msgid "path '%s' is unmerged" msgstr "le chemin '%s' n'est pas fusionné" -#: builtin/checkout.c:472 +#: builtin/checkout.c:471 msgid "you need to resolve your current index first" msgstr "vous devez d'abord résoudre votre index courant" -#: builtin/checkout.c:593 +#: builtin/checkout.c:591 #, c-format msgid "Can not do reflog for '%s'\n" msgstr "Impossible de faire un reflog pour '%s'\n" -#: builtin/checkout.c:631 +#: builtin/checkout.c:629 msgid "HEAD is now at" msgstr "HEAD est maintenant sur" -#: builtin/checkout.c:638 +#: builtin/checkout.c:636 #, c-format msgid "Reset branch '%s'\n" msgstr "Remise à zéro de la branche '%s'\n" -#: builtin/checkout.c:641 +#: builtin/checkout.c:639 #, c-format msgid "Already on '%s'\n" msgstr "Déjà sur '%s'\n" -#: builtin/checkout.c:645 +#: builtin/checkout.c:643 #, c-format msgid "Switched to and reset branch '%s'\n" msgstr "Basculement et remise à zéro de la branche '%s'\n" -#: builtin/checkout.c:647 builtin/checkout.c:1032 +#: builtin/checkout.c:645 builtin/checkout.c:1026 #, c-format msgid "Switched to a new branch '%s'\n" msgstr "Basculement sur la nouvelle branche '%s'\n" -#: builtin/checkout.c:649 +#: builtin/checkout.c:647 #, c-format msgid "Switched to branch '%s'\n" msgstr "Basculement sur la branche '%s'\n" -#: builtin/checkout.c:705 +#: builtin/checkout.c:699 #, c-format msgid " ... and %d more.\n" msgstr " ... et %d en plus.\n" -#: builtin/checkout.c:711 +#: builtin/checkout.c:705 #, c-format msgid "" "Warning: you are leaving %d commit behind, not connected to\n" @@ -3490,7 +3512,7 @@ msgstr[1] "" "\n" "%s\n" -#: builtin/checkout.c:729 +#: builtin/checkout.c:723 #, c-format msgid "" "If you want to keep them by creating a new branch, this may be a good time\n" @@ -3506,139 +3528,139 @@ msgstr "" "git branch nouvelle_branche %s\n" "\n" -#: builtin/checkout.c:759 +#: builtin/checkout.c:753 msgid "internal error in revision walk" msgstr "erreur interne lors du parcours des révisions" -#: builtin/checkout.c:763 +#: builtin/checkout.c:757 msgid "Previous HEAD position was" msgstr "La position précédente de HEAD était" -#: builtin/checkout.c:790 builtin/checkout.c:1027 +#: builtin/checkout.c:784 builtin/checkout.c:1021 msgid "You are on a branch yet to be born" msgstr "Vous êtes sur une branche qui doit encore naître" -#: builtin/checkout.c:934 +#: builtin/checkout.c:928 #, c-format msgid "only one reference expected, %d given." msgstr "une seule référence attendue, %d fournies." -#: builtin/checkout.c:973 +#: builtin/checkout.c:967 #, c-format msgid "invalid reference: %s" msgstr "référence invalide : %s" -#: builtin/checkout.c:1002 +#: builtin/checkout.c:996 #, c-format msgid "reference is not a tree: %s" msgstr "la référence n'est pas un arbre : %s" -#: builtin/checkout.c:1041 +#: builtin/checkout.c:1035 msgid "paths cannot be used with switching branches" msgstr "impossible d'utiliser des chemins avec un basculement de branches" -#: builtin/checkout.c:1044 builtin/checkout.c:1048 +#: builtin/checkout.c:1038 builtin/checkout.c:1042 #, 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:1052 builtin/checkout.c:1055 builtin/checkout.c:1060 -#: builtin/checkout.c:1063 +#: builtin/checkout.c:1046 builtin/checkout.c:1049 builtin/checkout.c:1054 +#: builtin/checkout.c:1057 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "'%s' ne peut pas être utilisé avec '%s'" -#: builtin/checkout.c:1068 +#: builtin/checkout.c:1062 #, 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:1090 builtin/checkout.c:1092 builtin/clone.c:88 +#: builtin/checkout.c:1084 builtin/checkout.c:1086 builtin/clone.c:88 #: builtin/remote.c:159 builtin/remote.c:161 msgid "branch" msgstr "branche" -#: builtin/checkout.c:1091 +#: builtin/checkout.c:1085 msgid "create and checkout a new branch" msgstr "créer et extraire une nouvelle branche" -#: builtin/checkout.c:1093 +#: builtin/checkout.c:1087 msgid "create/reset and checkout a branch" msgstr "créer/réinitialiser et extraire une branche" -#: builtin/checkout.c:1094 +#: builtin/checkout.c:1088 msgid "create reflog for new branch" msgstr "créer un reflog pour une nouvelle branche" -#: builtin/checkout.c:1095 +#: builtin/checkout.c:1089 msgid "detach the HEAD at named commit" msgstr "détacher la HEAD à la validation nommée" -#: builtin/checkout.c:1096 +#: builtin/checkout.c:1090 msgid "set upstream info for new branch" msgstr "paramétrer les coordonnées de branche amont pour une nouvelle branche" -#: builtin/checkout.c:1098 +#: builtin/checkout.c:1092 msgid "new-branch" msgstr "nouvelle branche" -#: builtin/checkout.c:1098 +#: builtin/checkout.c:1092 msgid "new unparented branch" msgstr "nouvelle branche sans parent" -#: builtin/checkout.c:1099 +#: builtin/checkout.c:1093 msgid "checkout our version for unmerged files" msgstr "extraire notre version pour les fichiers non fusionnés" -#: builtin/checkout.c:1101 +#: builtin/checkout.c:1095 msgid "checkout their version for unmerged files" msgstr "extraire leur version pour les fichiers non fusionnés" -#: builtin/checkout.c:1103 +#: builtin/checkout.c:1097 msgid "force checkout (throw away local modifications)" msgstr "forcer l'extraction (laisser tomber les modifications locales)" -#: builtin/checkout.c:1104 +#: builtin/checkout.c:1098 msgid "perform a 3-way merge with the new branch" msgstr "effectuer une fusion à 3 points avec la nouvelle branche" -#: builtin/checkout.c:1105 builtin/merge.c:225 +#: builtin/checkout.c:1099 builtin/merge.c:225 msgid "update ignored files (default)" msgstr "mettre à jour les fichiers ignorés (par défaut)" -#: builtin/checkout.c:1106 builtin/log.c:1228 parse-options.h:245 +#: builtin/checkout.c:1100 builtin/log.c:1236 parse-options.h:245 msgid "style" msgstr "style" -#: builtin/checkout.c:1107 +#: builtin/checkout.c:1101 msgid "conflict style (merge or diff3)" msgstr "style de conflit (fusion ou diff3)" -#: builtin/checkout.c:1110 +#: builtin/checkout.c:1104 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:1112 +#: builtin/checkout.c:1106 msgid "second guess 'git checkout no-such-branch'" msgstr "deuxième chance 'git checkout branche-inexistante'" -#: builtin/checkout.c:1135 +#: builtin/checkout.c:1129 msgid "-b, -B and --orphan are mutually exclusive" msgstr "-b, -B et --orphan sont mutuellement exclusifs" -#: builtin/checkout.c:1152 +#: builtin/checkout.c:1146 msgid "--track needs a branch name" msgstr "--track requiert un nom de branche" -#: builtin/checkout.c:1159 +#: builtin/checkout.c:1153 msgid "Missing branch name; try -b" msgstr "Nom de branche manquant ; essayez -b" -#: builtin/checkout.c:1196 +#: builtin/checkout.c:1190 msgid "invalid path specification" msgstr "spécification de chemin invalide" -#: builtin/checkout.c:1203 +#: builtin/checkout.c:1197 #, c-format msgid "" "Cannot update paths and switch to branch '%s' at the same time.\n" @@ -3648,12 +3670,12 @@ msgstr "" "en même temps.\n" "Souhaitiez-vous extraire '%s' qui ne peut être résolu comme commit ?" -#: builtin/checkout.c:1208 +#: builtin/checkout.c:1202 #, 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:1212 +#: builtin/checkout.c:1206 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." @@ -3729,30 +3751,30 @@ msgstr "" msgid "Huh (%s)?" msgstr "Hein (%s) ?" -#: builtin/clean.c:660 +#: builtin/clean.c:659 #, c-format msgid "Input ignore patterns>> " msgstr "Entrez les motifs à ignorer>> " -#: builtin/clean.c:697 +#: builtin/clean.c:696 #, c-format msgid "WARNING: Cannot find items matched by: %s" msgstr "ATTENTION : Impossible de trouver les éléments correspondant à : %s" -#: builtin/clean.c:718 +#: builtin/clean.c:717 msgid "Select items to delete" msgstr "Sélectionner les éléments à supprimer" -#: builtin/clean.c:758 +#: builtin/clean.c:757 #, c-format msgid "remove %s? " msgstr "supprimer %s ? " -#: builtin/clean.c:783 +#: builtin/clean.c:782 msgid "Bye." msgstr "Au revoir." -#: builtin/clean.c:791 +#: builtin/clean.c:790 msgid "" "clean - start cleaning\n" "filter by pattern - exclude items from deletion\n" @@ -3770,68 +3792,70 @@ msgstr "" "help - cet écran\n" "? - aide pour la sélection en ligne" -#: builtin/clean.c:818 +#: builtin/clean.c:817 msgid "*** Commands ***" msgstr "*** Commandes ***" -#: builtin/clean.c:819 +#: builtin/clean.c:818 msgid "What now" msgstr "Et maintenant ?" -#: builtin/clean.c:827 +#: builtin/clean.c:826 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:844 +#: builtin/clean.c:843 msgid "No more files to clean, exiting." msgstr "Plus de fichier à nettoyer, sortie." -#: builtin/clean.c:875 +#: builtin/clean.c:874 msgid "do not print names of files removed" msgstr "ne pas afficher les noms des fichiers supprimés" -#: builtin/clean.c:877 +#: builtin/clean.c:876 msgid "force" msgstr "forcer" -#: builtin/clean.c:878 +#: builtin/clean.c:877 msgid "interactive cleaning" msgstr "nettoyage interactif" -#: builtin/clean.c:880 +#: builtin/clean.c:879 msgid "remove whole directories" msgstr "supprimer les répertoires entiers" -#: builtin/clean.c:881 builtin/describe.c:415 builtin/grep.c:716 -#: builtin/ls-files.c:486 builtin/name-rev.c:314 builtin/show-ref.c:185 +#: builtin/clean.c:880 builtin/describe.c:406 builtin/grep.c:714 +#: builtin/ls-files.c:486 builtin/name-rev.c:311 builtin/show-ref.c:185 msgid "pattern" msgstr "motif" -#: builtin/clean.c:882 +#: builtin/clean.c:881 msgid "add <pattern> to ignore rules" msgstr "ajouter <motif> aux règles ignore" -#: builtin/clean.c:883 +#: builtin/clean.c:882 msgid "remove ignored files, too" msgstr "supprimer les fichiers ignorés, aussi" -#: builtin/clean.c:885 +#: builtin/clean.c:884 msgid "remove only ignored files" msgstr "supprimer seulement les fichiers ignorés" -#: builtin/clean.c:903 +#: builtin/clean.c:902 msgid "-x and -X cannot be used together" msgstr "-x et -X ne peuvent pas être utilisés ensemble" -#: builtin/clean.c:907 +#: builtin/clean.c:906 msgid "" "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to " "clean" -msgstr "clean.requireForce positionné à true et ni -i, -n ou -f fourni ; refus de nettoyer" +msgstr "" +"clean.requireForce positionné à true et ni -i, -n ou -f fourni ; refus de " +"nettoyer" -#: builtin/clean.c:910 +#: builtin/clean.c:909 msgid "" "clean.requireForce defaults to true and neither -i, -n, nor -f given; " "refusing to clean" @@ -3843,8 +3867,8 @@ msgstr "" msgid "git clone [options] [--] <repo> [<dir>]" msgstr "git clone [options] [--] <dépôt> [<répertoire>]" -#: builtin/clone.c:64 builtin/fetch.c:97 builtin/merge.c:222 -#: builtin/push.c:504 +#: builtin/clone.c:64 builtin/fetch.c:112 builtin/merge.c:222 +#: builtin/push.c:503 msgid "force progress reporting" msgstr "forcer l'affichage de l'état d'avancement" @@ -3904,7 +3928,7 @@ msgstr "extraire <branche> au lieu de la HEAD du répertoire distant" msgid "path to git-upload-pack on the remote" msgstr "chemin vers git-upload-pack sur le serveur distant" -#: builtin/clone.c:92 builtin/fetch.c:98 builtin/grep.c:661 +#: builtin/clone.c:92 builtin/fetch.c:113 builtin/grep.c:659 msgid "depth" msgstr "profondeur" @@ -4006,98 +4030,98 @@ msgstr "Vérification de la connectivité... " msgid "remote did not send all necessary objects" msgstr "le serveur distant n'a pas envoyé tous les objets nécessaires" -#: builtin/clone.c:626 +#: builtin/clone.c:627 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:657 +#: builtin/clone.c:658 msgid "unable to checkout working tree" msgstr "impossible d'extraire la copie de travail" -#: builtin/clone.c:765 +#: builtin/clone.c:768 msgid "Too many arguments." msgstr "Trop d'arguments." -#: builtin/clone.c:769 +#: builtin/clone.c:772 msgid "You must specify a repository to clone." msgstr "Vous devez spécifier un dépôt à cloner." -#: builtin/clone.c:780 +#: builtin/clone.c:783 #, c-format msgid "--bare and --origin %s options are incompatible." msgstr "les options --bare et --origin %s sont incompatibles." -#: builtin/clone.c:783 +#: builtin/clone.c:786 msgid "--bare and --separate-git-dir are incompatible." msgstr "--bare et --separate-git-dir sont incompatibles." -#: builtin/clone.c:796 +#: builtin/clone.c:799 #, c-format msgid "repository '%s' does not exist" msgstr "le dépôt '%s' n'existe pas" -#: builtin/clone.c:802 -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:805 -msgid "source repository is shallow, ignoring --local" -msgstr "le dépôt source est superficiel, option --local ignorée" - -#: builtin/clone.c:810 -msgid "--local is ignored" -msgstr "--local est ignoré" - -#: builtin/clone.c:814 builtin/fetch.c:1119 +#: builtin/clone.c:805 builtin/fetch.c:1143 #, c-format msgid "depth %s is not a positive number" msgstr "la profondeur %s n'est pas un entier positif" -#: builtin/clone.c:824 +#: builtin/clone.c:815 #, 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:834 +#: builtin/clone.c:825 #, c-format msgid "working tree '%s' already exists." msgstr "la copie de travail '%s' existe déjà ." -#: builtin/clone.c:847 builtin/clone.c:859 +#: builtin/clone.c:838 builtin/clone.c:850 #, 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:850 +#: builtin/clone.c:841 #, 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:869 +#: builtin/clone.c:860 #, c-format msgid "Cloning into bare repository '%s'...\n" msgstr "Clonage dans le dépôt nu '%s'\n" -#: builtin/clone.c:871 +#: builtin/clone.c:862 #, c-format msgid "Cloning into '%s'...\n" msgstr "Clonage dans '%s'...\n" +#: builtin/clone.c:898 +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:901 +msgid "source repository is shallow, ignoring --local" +msgstr "le dépôt source est superficiel, option --local ignorée" + #: builtin/clone.c:906 +msgid "--local is ignored" +msgstr "--local est ignoré" + +#: builtin/clone.c:910 #, c-format msgid "Don't know how to clone %s" msgstr "Je ne sais pas cloner %s" -#: builtin/clone.c:957 builtin/clone.c:965 +#: builtin/clone.c:961 builtin/clone.c:969 #, 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:968 +#: builtin/clone.c:972 msgid "You appear to have cloned an empty repository." msgstr "Vous semblez avoir cloné un dépôt vide." @@ -4217,89 +4241,98 @@ msgstr "" msgid "failed to unpack HEAD tree object" msgstr "échec du dépaquetage de l'objet arbre HEAD" -#: builtin/commit.c:330 +#: builtin/commit.c:328 msgid "unable to create temporary index" msgstr "impossible de créer l'index temporaire" -#: builtin/commit.c:336 +#: builtin/commit.c:334 msgid "interactive add failed" msgstr "échec de l'ajout interactif" -#: builtin/commit.c:369 builtin/commit.c:390 builtin/commit.c:440 +#: builtin/commit.c:366 builtin/commit.c:387 builtin/commit.c:435 msgid "unable to write new_index file" msgstr "impossible d'écrire le fichier new_index" -#: builtin/commit.c:421 +#: builtin/commit.c:418 msgid "cannot do a partial commit during a merge." msgstr "impossible de faire une validation partielle pendant une fusion." -#: builtin/commit.c:423 +#: builtin/commit.c:420 msgid "cannot do a partial commit during a cherry-pick." msgstr "impossible de faire une validation partielle pendant un picorage." -#: builtin/commit.c:433 +#: builtin/commit.c:429 msgid "cannot read the index" msgstr "impossible de lire l'index" -#: builtin/commit.c:453 +#: builtin/commit.c:447 msgid "unable to write temporary index file" msgstr "impossible d'écrire le fichier d'index temporaire" -#: builtin/commit.c:544 builtin/commit.c:550 +#: builtin/commit.c:557 builtin/commit.c:563 #, c-format msgid "invalid commit: %s" msgstr "commit invalide : %s" -#: builtin/commit.c:572 +#: builtin/commit.c:585 msgid "malformed --author parameter" msgstr "paramètre --author mal formé" #: builtin/commit.c:592 #, c-format +msgid "invalid date format: %s" +msgstr "format de date invalide : %s" + +#: builtin/commit.c:609 +#, c-format msgid "Malformed ident string: '%s'" msgstr "Chaîne ident mal formée : '%s'" -#: builtin/commit.c:629 builtin/commit.c:663 builtin/commit.c:1014 +#: builtin/commit.c:642 +msgid "" +"unable to select a comment character that is not used\n" +"in the current commit message" +msgstr "" +"impossible de sélectionner un caractère de commentaire\n" +"qui n'est pas utilisé dans le message de validation actuel" + +#: builtin/commit.c:679 builtin/commit.c:712 builtin/commit.c:1086 #, c-format msgid "could not lookup commit %s" msgstr "impossible de rechercher le commit %s" -#: builtin/commit.c:641 builtin/shortlog.c:273 +#: builtin/commit.c:691 builtin/shortlog.c:273 #, c-format msgid "(reading log message from standard input)\n" msgstr "(lecture du message de journal depuis l'entrée standard)\n" -#: builtin/commit.c:643 +#: builtin/commit.c:693 msgid "could not read log from standard input" msgstr "impossible de lire le journal depuis l'entrée standard" -#: builtin/commit.c:647 +#: builtin/commit.c:697 #, c-format msgid "could not read log file '%s'" msgstr "impossible de lire le fichier de journal '%s'" -#: builtin/commit.c:654 -msgid "commit has empty message" -msgstr "le commit a un message vide" - -#: builtin/commit.c:670 +#: builtin/commit.c:719 msgid "could not read MERGE_MSG" msgstr "impossible de lire MERGE_MSG" -#: builtin/commit.c:674 +#: builtin/commit.c:723 msgid "could not read SQUASH_MSG" msgstr "impossible de lire SQUASH_MSG" -#: builtin/commit.c:678 +#: builtin/commit.c:727 #, c-format msgid "could not read '%s'" msgstr "impossible de lire '%s'" -#: builtin/commit.c:749 +#: builtin/commit.c:798 msgid "could not write commit template" msgstr "impossible d'écrire le modèle de commit" -#: builtin/commit.c:764 +#: builtin/commit.c:816 #, c-format msgid "" "\n" @@ -4314,7 +4347,7 @@ msgstr "" "\t%s\n" "et essayez à nouveau.\n" -#: builtin/commit.c:769 +#: builtin/commit.c:821 #, c-format msgid "" "\n" @@ -4329,7 +4362,7 @@ msgstr "" "\t%s\n" "et essayez à nouveau.\n" -#: builtin/commit.c:782 +#: builtin/commit.c:834 #, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" @@ -4339,7 +4372,7 @@ msgstr "" "commençant par '%c' seront ignorées, et un message vide abandonne la " "validation.\n" -#: builtin/commit.c:789 +#: builtin/commit.c:841 #, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" @@ -4350,142 +4383,147 @@ msgstr "" "commençant par '%c' seront conservées ; vous pouvez les supprimer vous-même\n" "si vous le souhaitez. Un message vide abandonne la validation.\n" -#: builtin/commit.c:802 +#: builtin/commit.c:855 #, c-format -msgid "%sAuthor: %s" -msgstr "%sAuteur : %s" +msgid "%sAuthor: %.*s <%.*s>" +msgstr "%sAuteur : %.*s <%.*s>" -#: builtin/commit.c:809 +#: builtin/commit.c:863 #, c-format -msgid "%sCommitter: %s" -msgstr "%sValidateur : %s" +msgid "%sDate: %s" +msgstr "%sDate : %s" -#: builtin/commit.c:829 +#: builtin/commit.c:870 +#, c-format +msgid "%sCommitter: %.*s <%.*s>" +msgstr "%sValidateur : %.*s <%.*s>" + +#: builtin/commit.c:888 msgid "Cannot read index" msgstr "Impossible de lire l'index" -#: builtin/commit.c:872 +#: builtin/commit.c:945 msgid "Error building trees" msgstr "Erreur lors de la construction des arbres" -#: builtin/commit.c:887 builtin/tag.c:391 +#: builtin/commit.c:960 builtin/tag.c:495 #, c-format msgid "Please supply the message using either -m or -F option.\n" msgstr "Veuillez fournir le message en utilisant l'option -m ou -F.\n" -#: builtin/commit.c:989 +#: builtin/commit.c:1061 #, c-format msgid "No existing author found with '%s'" msgstr "Aucun auteur existant trouvé avec '%s'" -#: builtin/commit.c:1004 builtin/commit.c:1244 +#: builtin/commit.c:1076 builtin/commit.c:1316 #, c-format msgid "Invalid untracked files mode '%s'" msgstr "Mode de fichier non suivi invalide '%s'" -#: builtin/commit.c:1041 +#: builtin/commit.c:1113 msgid "--long and -z are incompatible" msgstr "--long et -z sont incompatibles" -#: builtin/commit.c:1071 +#: builtin/commit.c:1143 msgid "Using both --reset-author and --author does not make sense" msgstr "L'utilisation simultanée de --reset-author et --author n'a pas de sens" -#: builtin/commit.c:1080 +#: builtin/commit.c:1152 msgid "You have nothing to amend." msgstr "Il n'y a rien à corriger." -#: builtin/commit.c:1083 +#: builtin/commit.c:1155 msgid "You are in the middle of a merge -- cannot amend." msgstr "Vous êtes en pleine fusion -- impossible de corriger (amend)." -#: builtin/commit.c:1085 +#: builtin/commit.c:1157 msgid "You are in the middle of a cherry-pick -- cannot amend." msgstr "Vous êtes en plein picorage -- impossible de corriger (amend)." -#: builtin/commit.c:1088 +#: builtin/commit.c:1160 msgid "Options --squash and --fixup cannot be used together" msgstr "Les options --squash et --fixup ne peuvent pas être utilisées ensemble" -#: builtin/commit.c:1098 +#: builtin/commit.c:1170 msgid "Only one of -c/-C/-F/--fixup can be used." msgstr "Une seule option parmi -c/-C/-F/--fixup peut être utilisée." -#: builtin/commit.c:1100 +#: builtin/commit.c:1172 msgid "Option -m cannot be combined with -c/-C/-F/--fixup." msgstr "L'option -m ne peut pas être combinée avec -c/-C/-F/--fixup." -#: builtin/commit.c:1108 +#: builtin/commit.c:1180 msgid "--reset-author can be used only with -C, -c or --amend." msgstr "--reset-author ne peut être utilisé qu'avec -C, -c ou --amend." -#: builtin/commit.c:1125 +#: builtin/commit.c:1197 msgid "Only one of --include/--only/--all/--interactive/--patch can be used." msgstr "" "Une seule option parmi --include/--only/--all/--interactive/--patch peut " "être utilisée." -#: builtin/commit.c:1127 +#: builtin/commit.c:1199 msgid "No paths with --include/--only does not make sense." msgstr "Aucun chemin avec les options --include/--only n'a pas de sens." -#: builtin/commit.c:1129 +#: builtin/commit.c:1201 msgid "Clever... amending the last one with dirty index." msgstr "Malin... correction du dernier avec un index sale." -#: builtin/commit.c:1131 +#: builtin/commit.c:1203 msgid "Explicit paths specified without -i or -o; assuming --only paths..." msgstr "Chemins explicites spécifiés sans -i ni -o ; --only supposé..." -#: builtin/commit.c:1143 builtin/tag.c:639 +#: builtin/commit.c:1215 builtin/tag.c:727 #, c-format msgid "Invalid cleanup mode %s" msgstr "Mode de nettoyage invalide %s" -#: builtin/commit.c:1148 +#: builtin/commit.c:1220 msgid "Paths with -a does not make sense." msgstr "Spécifier des chemins avec l'option -a n'a pas de sens." -#: builtin/commit.c:1258 builtin/commit.c:1516 +#: builtin/commit.c:1330 builtin/commit.c:1595 msgid "show status concisely" msgstr "afficher le statut avec concision" -#: builtin/commit.c:1260 builtin/commit.c:1518 +#: builtin/commit.c:1332 builtin/commit.c:1597 msgid "show branch information" msgstr "afficher l'information de branche" -#: builtin/commit.c:1262 builtin/commit.c:1520 builtin/push.c:490 +#: builtin/commit.c:1334 builtin/commit.c:1599 builtin/push.c:489 msgid "machine-readable output" msgstr "sortie pour traitement automatique" -#: builtin/commit.c:1265 builtin/commit.c:1522 +#: builtin/commit.c:1337 builtin/commit.c:1601 msgid "show status in long format (default)" msgstr "afficher le statut en format long (par défaut)" -#: builtin/commit.c:1268 builtin/commit.c:1525 +#: builtin/commit.c:1340 builtin/commit.c:1604 msgid "terminate entries with NUL" msgstr "terminer les éléments par NUL" -#: builtin/commit.c:1270 builtin/commit.c:1528 builtin/fast-export.c:674 -#: builtin/fast-export.c:677 builtin/tag.c:514 +#: builtin/commit.c:1342 builtin/commit.c:1607 builtin/fast-export.c:703 +#: builtin/fast-export.c:706 builtin/tag.c:602 msgid "mode" msgstr "mode" -#: builtin/commit.c:1271 builtin/commit.c:1528 +#: builtin/commit.c:1343 builtin/commit.c:1607 msgid "show untracked files, optional modes: all, normal, no. (Default: all)" msgstr "" "afficher les fichiers non suivis, \"mode\" facultatif : all (tous), normal, " "no. (Défaut : all)" -#: builtin/commit.c:1274 +#: builtin/commit.c:1346 msgid "show ignored files" msgstr "afficher les fichiers ignorés" -#: builtin/commit.c:1275 parse-options.h:153 +#: builtin/commit.c:1347 parse-options.h:153 msgid "when" msgstr "quand" -#: builtin/commit.c:1276 +#: builtin/commit.c:1348 msgid "" "ignore changes to submodules, optional when: all, dirty, untracked. " "(Default: all)" @@ -4493,217 +4531,217 @@ msgstr "" "ignorer les modifications dans les sous-modules, \"quand\" facultatif : all " "(tous), dirty (sale), untracked (non suivi). (Défaut : all)" -#: builtin/commit.c:1278 +#: builtin/commit.c:1350 msgid "list untracked files in columns" msgstr "afficher les fichiers non suivis en colonnes" -#: builtin/commit.c:1347 +#: builtin/commit.c:1419 msgid "couldn't look up newly created commit" msgstr "impossible de retrouver le commit nouvellement créé" -#: builtin/commit.c:1349 +#: builtin/commit.c:1421 msgid "could not parse newly created commit" msgstr "impossible d'analyser le commit nouvellement créé" -#: builtin/commit.c:1390 +#: builtin/commit.c:1469 msgid "detached HEAD" msgstr "HEAD détachée" -#: builtin/commit.c:1392 +#: builtin/commit.c:1471 msgid " (root-commit)" msgstr " (commit racine)" -#: builtin/commit.c:1486 +#: builtin/commit.c:1565 msgid "suppress summary after successful commit" msgstr "supprimer le résumé après une validation réussie" -#: builtin/commit.c:1487 +#: builtin/commit.c:1566 msgid "show diff in commit message template" msgstr "afficher les diff dans le modèle de message de validation" -#: builtin/commit.c:1489 +#: builtin/commit.c:1568 msgid "Commit message options" msgstr "Options du message de validation" -#: builtin/commit.c:1490 builtin/tag.c:512 +#: builtin/commit.c:1569 builtin/tag.c:600 msgid "read message from file" msgstr "lire le message depuis un fichier" -#: builtin/commit.c:1491 +#: builtin/commit.c:1570 msgid "author" msgstr "auteur" -#: builtin/commit.c:1491 +#: builtin/commit.c:1570 msgid "override author for commit" msgstr "remplacer l'auteur pour la validation" -#: builtin/commit.c:1492 builtin/gc.c:272 +#: builtin/commit.c:1571 builtin/gc.c:286 msgid "date" msgstr "date" -#: builtin/commit.c:1492 +#: builtin/commit.c:1571 msgid "override date for commit" msgstr "remplacer la date pour la validation" -#: builtin/commit.c:1493 builtin/merge.c:216 builtin/notes.c:409 -#: builtin/notes.c:566 builtin/tag.c:510 +#: builtin/commit.c:1572 builtin/merge.c:216 builtin/notes.c:409 +#: builtin/notes.c:566 builtin/tag.c:598 msgid "message" msgstr "message" -#: builtin/commit.c:1493 +#: builtin/commit.c:1572 msgid "commit message" msgstr "message de validation" -#: builtin/commit.c:1494 +#: builtin/commit.c:1573 msgid "reuse and edit message from specified commit" msgstr "réutiliser et éditer le message du commit spécifié" -#: builtin/commit.c:1495 +#: builtin/commit.c:1574 msgid "reuse message from specified commit" msgstr "réutiliser le message du commit spécifié" -#: builtin/commit.c:1496 +#: builtin/commit.c:1575 msgid "use autosquash formatted message to fixup specified commit" msgstr "" "utiliser un message au format autosquash pour corriger le commit spécifié" -#: builtin/commit.c:1497 +#: builtin/commit.c:1576 msgid "use autosquash formatted message to squash specified commit" msgstr "" "utiliser un message au format autosquash pour compresser le commit spécifié" -#: builtin/commit.c:1498 +#: builtin/commit.c:1577 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:1499 builtin/log.c:1180 builtin/revert.c:86 +#: builtin/commit.c:1578 builtin/log.c:1188 builtin/revert.c:86 msgid "add Signed-off-by:" msgstr "ajouter une entrée Signed-off-by :" -#: builtin/commit.c:1500 +#: builtin/commit.c:1579 msgid "use specified template file" msgstr "utiliser le fichier de modèle spécifié" -#: builtin/commit.c:1501 +#: builtin/commit.c:1580 msgid "force edit of commit" msgstr "forcer l'édition du commit" -#: builtin/commit.c:1502 +#: builtin/commit.c:1581 msgid "default" msgstr "défaut" -#: builtin/commit.c:1502 builtin/tag.c:515 +#: builtin/commit.c:1581 builtin/tag.c:603 msgid "how to strip spaces and #comments from message" msgstr "comment éliminer les espaces et les commentaires # du message" -#: builtin/commit.c:1503 +#: builtin/commit.c:1582 msgid "include status in commit message template" msgstr "inclure le statut dans le modèle de message de validation" -#: builtin/commit.c:1504 builtin/merge.c:223 builtin/revert.c:92 -#: builtin/tag.c:516 +#: builtin/commit.c:1583 builtin/merge.c:223 builtin/revert.c:92 +#: builtin/tag.c:604 msgid "key-id" msgstr "id de clé" -#: builtin/commit.c:1505 builtin/merge.c:224 builtin/revert.c:93 +#: builtin/commit.c:1584 builtin/merge.c:224 builtin/revert.c:93 msgid "GPG sign commit" msgstr "signer la validation avec GPG" -#: builtin/commit.c:1508 +#: builtin/commit.c:1587 msgid "Commit contents options" msgstr "Valider les options des contenus" -#: builtin/commit.c:1509 +#: builtin/commit.c:1588 msgid "commit all changed files" msgstr "valider tous les fichiers modifiés" -#: builtin/commit.c:1510 +#: builtin/commit.c:1589 msgid "add specified files to index for commit" msgstr "ajouter les fichiers spécifiés à l'index pour la validation" -#: builtin/commit.c:1511 +#: builtin/commit.c:1590 msgid "interactively add files" msgstr "ajouter des fichiers en mode interactif" -#: builtin/commit.c:1512 +#: builtin/commit.c:1591 msgid "interactively add changes" msgstr "ajouter les modifications en mode interactif" -#: builtin/commit.c:1513 +#: builtin/commit.c:1592 msgid "commit only specified files" msgstr "valider seulement les fichiers spécifiés" -#: builtin/commit.c:1514 +#: builtin/commit.c:1593 msgid "bypass pre-commit hook" msgstr "éviter d'utiliser le crochet pre-commit" -#: builtin/commit.c:1515 +#: builtin/commit.c:1594 msgid "show what would be committed" msgstr "afficher ce qui serait validé" -#: builtin/commit.c:1526 +#: builtin/commit.c:1605 msgid "amend previous commit" msgstr "corriger la validation précédente" -#: builtin/commit.c:1527 +#: builtin/commit.c:1606 msgid "bypass post-rewrite hook" msgstr "éviter d'utiliser le crochet post-rewrite" -#: builtin/commit.c:1532 +#: builtin/commit.c:1611 msgid "ok to record an empty change" msgstr "accepter d'enregistrer une modification vide" -#: builtin/commit.c:1534 +#: builtin/commit.c:1613 msgid "ok to record a change with an empty message" msgstr "accepter d'enregistrer une modification avec un message vide" -#: builtin/commit.c:1562 +#: builtin/commit.c:1641 msgid "could not parse HEAD commit" msgstr "impossible d'analyser le commit HEAD" -#: builtin/commit.c:1601 builtin/merge.c:518 +#: builtin/commit.c:1680 builtin/merge.c:518 #, c-format msgid "could not open '%s' for reading" msgstr "impossible d'ouvrir '%s' en lecture" -#: builtin/commit.c:1608 +#: builtin/commit.c:1687 #, c-format msgid "Corrupt MERGE_HEAD file (%s)" msgstr "Fichier MERGE_HEAD corrompu (%s)" -#: builtin/commit.c:1615 +#: builtin/commit.c:1694 msgid "could not read MERGE_MODE" msgstr "impossible de lire MERGE_MODE" -#: builtin/commit.c:1634 +#: builtin/commit.c:1713 #, c-format msgid "could not read commit message: %s" msgstr "impossible de lire le message de validation : %s" -#: builtin/commit.c:1645 +#: builtin/commit.c:1724 #, c-format msgid "Aborting commit; you did not edit the message.\n" msgstr "Abandon de la validation ; vous n'avez pas édité le message\n" -#: builtin/commit.c:1650 +#: builtin/commit.c:1729 #, c-format msgid "Aborting commit due to empty commit message.\n" msgstr "Abandon de la validation du à un message de validation vide\n" -#: builtin/commit.c:1665 builtin/merge.c:857 builtin/merge.c:882 +#: builtin/commit.c:1744 builtin/merge.c:851 builtin/merge.c:876 msgid "failed to write commit object" msgstr "échec de l'écriture de l'objet commit" -#: builtin/commit.c:1686 +#: builtin/commit.c:1756 msgid "cannot lock HEAD ref" msgstr "impossible de verrouiller la référence HEAD" -#: builtin/commit.c:1690 +#: builtin/commit.c:1769 msgid "cannot update HEAD ref" msgstr "impossible de mettre à jour la référence HEAD" -#: builtin/commit.c:1701 +#: builtin/commit.c:1780 msgid "" "Repository has been updated, but unable to write\n" "new_index file. Check that disk is not full or quota is\n" @@ -4858,47 +4896,47 @@ msgstr "git describe [options] <commit ou apparenté>*" msgid "git describe [options] --dirty" msgstr "git describe [options] --dirty" -#: builtin/describe.c:225 +#: builtin/describe.c:216 #, c-format msgid "annotated tag %s not available" msgstr "l'étiquette annotée %s n'est pas disponible" -#: builtin/describe.c:229 +#: builtin/describe.c:220 #, c-format msgid "annotated tag %s has no embedded name" msgstr "l'étiquette annotée %s n'a pas de nom embarqué" -#: builtin/describe.c:231 +#: builtin/describe.c:222 #, c-format msgid "tag '%s' is really '%s' here" msgstr "l'étiquette '%s' est en fait '%s'" -#: builtin/describe.c:258 +#: builtin/describe.c:249 #, c-format msgid "Not a valid object name %s" msgstr "%s n'est pas un nom d'objet valide" -#: builtin/describe.c:261 +#: builtin/describe.c:252 #, c-format msgid "%s is not a valid '%s' object" msgstr "%s n'est pas un objet '%s' valide" -#: builtin/describe.c:278 +#: builtin/describe.c:269 #, c-format msgid "no tag exactly matches '%s'" msgstr "aucune étiquette ne correspond parfaitement à '%s'" -#: builtin/describe.c:280 +#: builtin/describe.c:271 #, c-format msgid "searching to describe %s\n" msgstr "recherche de la description de %s\n" -#: builtin/describe.c:327 +#: builtin/describe.c:318 #, c-format msgid "finished search at %s\n" msgstr "recherche terminée à %s\n" -#: builtin/describe.c:354 +#: builtin/describe.c:345 #, c-format msgid "" "No annotated tags can describe '%s'.\n" @@ -4907,7 +4945,7 @@ msgstr "" "Aucune étiquette annotée ne peut décrire '%s'.\n" "Cependant, il existe des étiquettes non-annotées : essayez avec --tags." -#: builtin/describe.c:358 +#: builtin/describe.c:349 #, c-format msgid "" "No tags can describe '%s'.\n" @@ -4916,12 +4954,12 @@ msgstr "" "Aucune étiquette ne peut décrire '%s'.\n" "Essayez --always, ou créez des étiquettes." -#: builtin/describe.c:379 +#: builtin/describe.c:370 #, c-format msgid "traversed %lu commits\n" msgstr "%lu commits parcourus\n" -#: builtin/describe.c:382 +#: builtin/describe.c:373 #, c-format msgid "" "more than %i tags found; listed %i most recent\n" @@ -4931,64 +4969,64 @@ msgstr "" "affichées\n" "abandon de la recherche à %s\n" -#: builtin/describe.c:404 +#: builtin/describe.c:395 msgid "find the tag that comes after the commit" msgstr "rechercher l'étiquette qui suit le commit" -#: builtin/describe.c:405 +#: builtin/describe.c:396 msgid "debug search strategy on stderr" msgstr "déboguer la stratégie de recherche sur stderr" -#: builtin/describe.c:406 +#: builtin/describe.c:397 msgid "use any ref" msgstr "utiliser n'importe quelle référence" -#: builtin/describe.c:407 +#: builtin/describe.c:398 msgid "use any tag, even unannotated" msgstr "utiliser n'importe quelle étiquette, même non-annotée" -#: builtin/describe.c:408 +#: builtin/describe.c:399 msgid "always use long format" msgstr "toujours utiliser le format long" -#: builtin/describe.c:409 +#: builtin/describe.c:400 msgid "only follow first parent" msgstr "ne suivre que le premier parent" -#: builtin/describe.c:412 +#: builtin/describe.c:403 msgid "only output exact matches" msgstr "n'afficher que les correspondances exactes" -#: builtin/describe.c:414 +#: builtin/describe.c:405 msgid "consider <n> most recent tags (default: 10)" msgstr "" "considérer uniquement les <n> étiquettes le plus récentes (défaut : 10)" -#: builtin/describe.c:416 +#: builtin/describe.c:407 msgid "only consider tags matching <pattern>" msgstr "ne considérer que les étiquettes correspondant à <motif>" -#: builtin/describe.c:418 builtin/name-rev.c:321 +#: builtin/describe.c:409 builtin/name-rev.c:318 msgid "show abbreviated commit object as fallback" msgstr "afficher les objets commits abrégés en dernier recours" -#: builtin/describe.c:419 +#: builtin/describe.c:410 msgid "mark" msgstr "marque" -#: builtin/describe.c:420 +#: builtin/describe.c:411 msgid "append <mark> on dirty working tree (default: \"-dirty\")" msgstr "ajouter <marque> si la copie de travail est sale (défaut : \"-dirty\")" -#: builtin/describe.c:438 +#: builtin/describe.c:429 msgid "--long is incompatible with --abbrev=0" msgstr "--long et --abbrev=0 sont incompatibles" -#: builtin/describe.c:464 +#: builtin/describe.c:455 msgid "No names found, cannot describe anything." msgstr "aucun nom trouvé, impossible de décrire quoi que ce soit." -#: builtin/describe.c:484 +#: builtin/describe.c:475 msgid "--dirty is incompatible with commit-ishes" msgstr "--dirty est incompatible avec la spécification de commits ou assimilés" @@ -5021,47 +5059,55 @@ msgstr "plus de deux blobs spécifiés : '%s'" msgid "unhandled object '%s' given." msgstr "objet non géré '%s' spécifié." -#: builtin/fast-export.c:22 +#: builtin/fast-export.c:23 msgid "git fast-export [rev-list-opts]" msgstr "git fast-export [options-de-liste-de-révisions]" -#: builtin/fast-export.c:673 +#: builtin/fast-export.c:702 msgid "show progress after <n> objects" msgstr "afficher la progression après <n> objets" -#: builtin/fast-export.c:675 +#: builtin/fast-export.c:704 msgid "select handling of signed tags" msgstr "sélectionner la gestion des étiquettes signées" -#: builtin/fast-export.c:678 +#: builtin/fast-export.c:707 msgid "select handling of tags that tag filtered objects" msgstr "" "sélectionner la gestion des étiquettes qui pointent sur des objets filtrés" -#: builtin/fast-export.c:681 +#: builtin/fast-export.c:710 msgid "Dump marks to this file" msgstr "Enregistrer les marques dans ce fichier" -#: builtin/fast-export.c:683 +#: builtin/fast-export.c:712 msgid "Import marks from this file" msgstr "importer les marques depuis ce fichier" -#: builtin/fast-export.c:685 +#: builtin/fast-export.c:714 msgid "Fake a tagger when tags lack one" msgstr "falsifier un auteur d'étiquette si l'étiquette n'en présente pas" -#: builtin/fast-export.c:687 +#: builtin/fast-export.c:716 msgid "Output full tree for each commit" msgstr "Afficher l'arbre complet pour chaque commit" -#: builtin/fast-export.c:689 +#: builtin/fast-export.c:718 msgid "Use the done feature to terminate the stream" msgstr "Utiliser la fonction \"done\" pour terminer le flux" -#: builtin/fast-export.c:690 +#: builtin/fast-export.c:719 msgid "Skip output of blob data" msgstr "Sauter l'affichage de données de blob" +#: builtin/fast-export.c:720 +msgid "refspec" +msgstr "spécificateur de référence" + +#: builtin/fast-export.c:721 +msgid "Apply refspec to exported refs" +msgstr "Appliquer le spécificateur de référence aux références exportées" + #: builtin/fetch.c:20 msgid "git fetch [<options>] [<repository> [<refspec>...]]" msgstr "git fetch [<options>] [<dépôt> [<spécification-de-référence>...]]" @@ -5078,156 +5124,164 @@ msgstr "git fetch --multiple [<options>] [(<dépôt> | <groupe>)...]" msgid "git fetch --all [<options>]" msgstr "git fetch --all [<options>]" -#: builtin/fetch.c:75 +#: builtin/fetch.c:90 msgid "fetch from all remotes" msgstr "récupérer depuis tous le dépôts distants" -#: builtin/fetch.c:77 +#: builtin/fetch.c:92 msgid "append to .git/FETCH_HEAD instead of overwriting" msgstr "ajouter à .git/FETCH_HEAD au lieu de l'écraser" -#: builtin/fetch.c:79 +#: builtin/fetch.c:94 msgid "path to upload pack on remote end" msgstr "chemin vers lequel télécharger le paquet sur le poste distant" -#: builtin/fetch.c:80 +#: builtin/fetch.c:95 msgid "force overwrite of local branch" msgstr "forcer l'écrasement de la branche locale" -#: builtin/fetch.c:82 +#: builtin/fetch.c:97 msgid "fetch from multiple remotes" msgstr "récupérer depuis plusieurs dépôts distants" -#: builtin/fetch.c:84 +#: builtin/fetch.c:99 msgid "fetch all tags and associated objects" msgstr "récupérer toutes les étiquettes et leurs objets associés" -#: builtin/fetch.c:86 +#: builtin/fetch.c:101 msgid "do not fetch all tags (--no-tags)" msgstr "ne pas récupérer toutes les étiquettes (--no-tags)" -#: builtin/fetch.c:88 +#: builtin/fetch.c:103 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:89 +#: builtin/fetch.c:104 msgid "on-demand" msgstr "à la demande" -#: builtin/fetch.c:90 +#: builtin/fetch.c:105 msgid "control recursive fetching of submodules" msgstr "contrôler la récupération récursive dans les sous-modules" -#: builtin/fetch.c:94 +#: builtin/fetch.c:109 msgid "keep downloaded pack" msgstr "conserver le paquet téléchargé" -#: builtin/fetch.c:96 +#: builtin/fetch.c:111 msgid "allow updating of HEAD ref" msgstr "permettre la mise à jour de la référence HEAD" -#: builtin/fetch.c:99 +#: builtin/fetch.c:114 msgid "deepen history of shallow clone" msgstr "approfondir l'historique d'un clone superficiel" -#: builtin/fetch.c:101 +#: builtin/fetch.c:116 msgid "convert to a complete repository" msgstr "convertir en un dépôt complet" -#: builtin/fetch.c:103 builtin/log.c:1197 +#: builtin/fetch.c:118 builtin/log.c:1205 msgid "dir" msgstr "dir" -#: builtin/fetch.c:104 +#: builtin/fetch.c:119 msgid "prepend this to submodule path output" msgstr "préfixer ceci à la sortie du chemin du sous-module" -#: builtin/fetch.c:107 +#: builtin/fetch.c:122 msgid "default mode for recursion" msgstr "mode par défaut pour la récursion" -#: builtin/fetch.c:109 +#: builtin/fetch.c:124 msgid "accept refs that update .git/shallow" msgstr "accepter les références qui mettent à jour .git/shallow" -#: builtin/fetch.c:347 +#: builtin/fetch.c:125 +msgid "refmap" +msgstr "correspondance de référence" + +#: builtin/fetch.c:126 +msgid "specify fetch refmap" +msgstr "spécifier une correspondance de référence pour la récupération" + +#: builtin/fetch.c:376 msgid "Couldn't find remote ref HEAD" msgstr "impossible de trouver la référence HEAD distante" -#: builtin/fetch.c:411 +#: builtin/fetch.c:440 #, c-format msgid "object %s not found" msgstr "objet %s non trouvé" -#: builtin/fetch.c:416 +#: builtin/fetch.c:445 msgid "[up to date]" msgstr "[à jour]" -#: builtin/fetch.c:430 +#: builtin/fetch.c:459 #, 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:431 builtin/fetch.c:517 +#: builtin/fetch.c:460 builtin/fetch.c:546 msgid "[rejected]" msgstr "[rejeté]" -#: builtin/fetch.c:442 +#: builtin/fetch.c:471 msgid "[tag update]" msgstr "[mise à jour de l'étiquette]" -#: builtin/fetch.c:444 builtin/fetch.c:479 builtin/fetch.c:497 +#: builtin/fetch.c:473 builtin/fetch.c:508 builtin/fetch.c:526 msgid " (unable to update local ref)" msgstr " (impossible de mettre à jour la référence locale)" -#: builtin/fetch.c:462 +#: builtin/fetch.c:491 msgid "[new tag]" msgstr "[nouvelle étiquette]" -#: builtin/fetch.c:465 +#: builtin/fetch.c:494 msgid "[new branch]" msgstr "[nouvelle branche]" -#: builtin/fetch.c:468 +#: builtin/fetch.c:497 msgid "[new ref]" msgstr "[nouvelle référence]" -#: builtin/fetch.c:513 +#: builtin/fetch.c:542 msgid "unable to update local ref" msgstr "impossible de mettre à jour la référence locale" -#: builtin/fetch.c:513 +#: builtin/fetch.c:542 msgid "forced update" msgstr "mise à jour forcée" -#: builtin/fetch.c:519 +#: builtin/fetch.c:548 msgid "(non-fast-forward)" msgstr "(pas d'avance rapide)" -#: builtin/fetch.c:552 builtin/fetch.c:785 +#: builtin/fetch.c:581 builtin/fetch.c:814 #, c-format msgid "cannot open %s: %s\n" msgstr "impossible d'ouvrir %s : %s\n" -#: builtin/fetch.c:561 +#: builtin/fetch.c:590 #, 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:579 +#: builtin/fetch.c:608 #, 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:667 builtin/fetch.c:750 +#: builtin/fetch.c:696 builtin/fetch.c:779 #, c-format msgid "From %.*s\n" msgstr "Depuis %.*s\n" -#: builtin/fetch.c:678 +#: builtin/fetch.c:707 #, c-format msgid "" "some local refs could not be updated; try running\n" @@ -5236,55 +5290,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:730 +#: builtin/fetch.c:759 #, c-format msgid " (%s will become dangling)" msgstr " (%s sera en suspens)" -#: builtin/fetch.c:731 +#: builtin/fetch.c:760 #, c-format msgid " (%s has become dangling)" msgstr " (%s est devenu en suspens)" -#: builtin/fetch.c:755 +#: builtin/fetch.c:784 msgid "[deleted]" msgstr "[supprimé]" -#: builtin/fetch.c:756 builtin/remote.c:1050 +#: builtin/fetch.c:785 builtin/remote.c:1059 msgid "(none)" msgstr "(aucun(e))" -#: builtin/fetch.c:775 +#: builtin/fetch.c:804 #, 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:794 +#: builtin/fetch.c:823 #, 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:797 +#: builtin/fetch.c:826 #, c-format msgid "Option \"%s\" is ignored for %s\n" msgstr "L'option \"%s\" est ignorée pour %s\n" -#: builtin/fetch.c:853 +#: builtin/fetch.c:882 #, c-format msgid "Don't know how to fetch from %s" msgstr "Je ne sais pas récupérer depuis %s" -#: builtin/fetch.c:1015 +#: builtin/fetch.c:1044 #, c-format msgid "Fetching %s\n" msgstr "Récupération de %s\n" -#: builtin/fetch.c:1017 builtin/remote.c:90 +#: builtin/fetch.c:1046 builtin/remote.c:90 #, c-format msgid "Could not fetch %s" msgstr "Impossible de récupérer %s" -#: builtin/fetch.c:1035 +#: builtin/fetch.c:1064 msgid "" "No remote repository specified. Please, specify either a URL or a\n" "remote name from which new revisions should be fetched." @@ -5292,32 +5346,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:1059 +#: builtin/fetch.c:1087 msgid "You need to specify a tag name." msgstr "Vous devez spécifier un nom d'étiquette." -#: builtin/fetch.c:1107 +#: builtin/fetch.c:1131 msgid "--depth and --unshallow cannot be used together" msgstr "--depth et --unshallow ne peuvent pas être utilisés ensemble" -#: builtin/fetch.c:1109 +#: builtin/fetch.c:1133 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:1132 +#: builtin/fetch.c:1156 msgid "fetch --all does not take a repository argument" msgstr "fetch --all n'accepte pas d'argument de dépôt" -#: builtin/fetch.c:1134 +#: builtin/fetch.c:1158 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:1145 +#: builtin/fetch.c:1169 #, c-format msgid "No such remote or remote group: %s" msgstr "distant ou groupe distant inexistant : %s" -#: builtin/fetch.c:1153 +#: builtin/fetch.c:1177 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 " @@ -5328,9 +5382,9 @@ msgid "git fmt-merge-msg [-m <message>] [--log[=<n>]|--no-log] [--file <file>]" msgstr "" "git fmt-merge-msg [-m <message>] [--log[=<n>]|--no-log] [--file <fichier>]" -#: builtin/fmt-merge-msg.c:663 builtin/fmt-merge-msg.c:666 builtin/grep.c:700 -#: builtin/merge.c:196 builtin/repack.c:175 builtin/repack.c:179 -#: builtin/show-branch.c:654 builtin/show-ref.c:178 builtin/tag.c:501 +#: builtin/fmt-merge-msg.c:663 builtin/fmt-merge-msg.c:666 builtin/grep.c:698 +#: builtin/merge.c:196 builtin/repack.c:179 builtin/repack.c:183 +#: builtin/show-branch.c:654 builtin/show-ref.c:178 builtin/tag.c:589 #: parse-options.h:132 parse-options.h:239 msgid "n" msgstr "n" @@ -5355,43 +5409,43 @@ msgstr "utiliser <texte> comme début de message" msgid "file to read from" msgstr "fichier d'où lire" -#: builtin/for-each-ref.c:1063 +#: builtin/for-each-ref.c:1051 msgid "git for-each-ref [options] [<pattern>]" msgstr "git for-each-ref [options] [<motif>]" -#: builtin/for-each-ref.c:1078 +#: builtin/for-each-ref.c:1066 msgid "quote placeholders suitably for shells" msgstr "échapper les champs réservés pour les interpréteurs de commandes" -#: builtin/for-each-ref.c:1080 +#: builtin/for-each-ref.c:1068 msgid "quote placeholders suitably for perl" msgstr "échapper les champs réservés pour perl" -#: builtin/for-each-ref.c:1082 +#: builtin/for-each-ref.c:1070 msgid "quote placeholders suitably for python" msgstr "échapper les champs réservés pour python" -#: builtin/for-each-ref.c:1084 +#: builtin/for-each-ref.c:1072 msgid "quote placeholders suitably for tcl" msgstr "échapper les champs réservés pour tcl" -#: builtin/for-each-ref.c:1087 +#: builtin/for-each-ref.c:1075 msgid "show only <n> matched refs" msgstr "n'afficher que <n> références correspondant" -#: builtin/for-each-ref.c:1088 builtin/replace.c:177 +#: builtin/for-each-ref.c:1076 builtin/replace.c:435 msgid "format" msgstr "format" -#: builtin/for-each-ref.c:1088 +#: builtin/for-each-ref.c:1076 msgid "format to use for the output" msgstr "format à utiliser pour la sortie" -#: builtin/for-each-ref.c:1089 +#: builtin/for-each-ref.c:1077 msgid "key" msgstr "clé" -#: builtin/for-each-ref.c:1090 +#: builtin/for-each-ref.c:1078 msgid "field name to sort on" msgstr "nom du champ servant à trier" @@ -5399,56 +5453,56 @@ msgstr "nom du champ servant à trier" msgid "Checking connectivity" msgstr "Vérification de la connectivité" -#: builtin/fsck.c:544 +#: builtin/fsck.c:538 msgid "Checking object directories" msgstr "Vérification des répertoires d'objet" -#: builtin/fsck.c:607 +#: builtin/fsck.c:601 msgid "git fsck [options] [<object>...]" msgstr "git fsck [options] [<objet>...]" -#: builtin/fsck.c:613 +#: builtin/fsck.c:607 msgid "show unreachable objects" msgstr "afficher les objets inaccessibles" -#: builtin/fsck.c:614 +#: builtin/fsck.c:608 msgid "show dangling objects" msgstr "afficher les objets en suspens" -#: builtin/fsck.c:615 +#: builtin/fsck.c:609 msgid "report tags" msgstr "afficher les étiquettes" -#: builtin/fsck.c:616 +#: builtin/fsck.c:610 msgid "report root nodes" msgstr "signaler les nÅ“uds racines" -#: builtin/fsck.c:617 +#: builtin/fsck.c:611 msgid "make index objects head nodes" msgstr "considérer les objets de l'index comme nÅ“uds tête" # translated from man page -#: builtin/fsck.c:618 +#: builtin/fsck.c:612 msgid "make reflogs head nodes (default)" msgstr "considérer les reflogs comme nÅ“uds tête (par défaut)" -#: builtin/fsck.c:619 +#: builtin/fsck.c:613 msgid "also consider packs and alternate objects" msgstr "inspecter aussi les objets pack et alternatifs" -#: builtin/fsck.c:620 +#: builtin/fsck.c:614 msgid "enable more strict checking" msgstr "activer une vérification plus strict" -#: builtin/fsck.c:622 +#: builtin/fsck.c:616 msgid "write dangling objects in .git/lost-found" msgstr "écrire les objets en suspens dans .git/lost-found" -#: builtin/fsck.c:623 builtin/prune.c:144 +#: builtin/fsck.c:617 builtin/prune.c:144 msgid "show progress" msgstr "afficher la progression" -#: builtin/fsck.c:673 +#: builtin/fsck.c:667 msgid "Checking objects" msgstr "Vérification des objets" @@ -5456,50 +5510,52 @@ msgstr "Vérification des objets" msgid "git gc [options]" msgstr "git gc [options]" -#: builtin/gc.c:90 +#: builtin/gc.c:91 #, c-format msgid "Invalid %s: '%s'" msgstr "%s invalide : '%s'" -#: builtin/gc.c:117 +#: builtin/gc.c:118 #, c-format msgid "insanely long object directory %.*s" msgstr "objet répertoire démentiellement long %.*s" -#: builtin/gc.c:273 +#: builtin/gc.c:287 msgid "prune unreferenced objects" msgstr "éliminer les objets non référencés" -#: builtin/gc.c:275 +#: builtin/gc.c:289 msgid "be more thorough (increased runtime)" msgstr "être plus consciencieux (durée de traitement allongée)" -#: builtin/gc.c:276 +#: builtin/gc.c:290 msgid "enable auto-gc mode" msgstr "activer le mode auto-gc" -#: builtin/gc.c:277 +#: builtin/gc.c:291 msgid "force running gc even if there may be another gc running" msgstr "" "forcer le lancement du ramasse-miettes même si un autre ramasse-miettes " "tourne déjà " -#: builtin/gc.c:318 +#: builtin/gc.c:332 #, c-format msgid "Auto packing the repository in background for optimum performance.\n" -msgstr "Compression automatique du dépôt en tâche de fond pour optimiser les performances.\n" +msgstr "" +"Compression automatique du dépôt en tâche de fond pour optimiser les " +"performances.\n" -#: builtin/gc.c:320 +#: builtin/gc.c:334 #, c-format msgid "Auto packing the repository for optimum performance.\n" msgstr "Compression du dépôt pour optimiser les performances.\n" -#: builtin/gc.c:321 +#: builtin/gc.c:335 #, c-format msgid "See \"git help gc\" for manual housekeeping.\n" msgstr "Voir \"git help gc\" pour toute information sur le nettoyage manuel.\n" -#: builtin/gc.c:336 +#: builtin/gc.c:353 #, c-format msgid "" "gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)" @@ -5507,7 +5563,7 @@ msgstr "" "un ramasse-miettes est déjà en cours sur la machine '%s' pid %<PRIuMAX> " "(utilisez --force si ce n'est pas le cas)" -#: builtin/gc.c:361 +#: builtin/gc.c:375 msgid "" "There are too many unreachable loose objects; run 'git prune' to remove them." msgstr "" @@ -5523,233 +5579,228 @@ msgstr "git grep [options] [-e] <motif> [<révision>...] [[--] <chemin>...]" msgid "grep: failed to create thread: %s" msgstr "grep : échec de création du fil: %s" -#: builtin/grep.c:365 -#, c-format -msgid "Failed to chdir: %s" -msgstr "Échec de chdir: %s" - -#: builtin/grep.c:443 builtin/grep.c:478 +#: builtin/grep.c:441 builtin/grep.c:476 #, c-format msgid "unable to read tree (%s)" msgstr "impossible de lire l'arbre (%s)" -#: builtin/grep.c:493 +#: builtin/grep.c:491 #, 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:549 +#: builtin/grep.c:547 #, c-format msgid "switch `%c' expects a numerical value" msgstr "l'option '%c' attend un valeur numérique" -#: builtin/grep.c:566 +#: builtin/grep.c:564 #, c-format msgid "cannot open '%s'" msgstr "impossible d'ouvrir '%s'" -#: builtin/grep.c:640 +#: builtin/grep.c:638 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:642 +#: builtin/grep.c:640 msgid "find in contents not managed by git" msgstr "rechercher dans les contenus non gérés par git" -#: builtin/grep.c:644 +#: builtin/grep.c:642 msgid "search in both tracked and untracked files" msgstr "rechercher dans les fichiers suivis et non-suivis" -#: builtin/grep.c:646 +#: builtin/grep.c:644 msgid "search also in ignored files" msgstr "rechercher aussi dans les fichiers ignorés" -#: builtin/grep.c:649 +#: builtin/grep.c:647 msgid "show non-matching lines" msgstr "afficher les lignes qui ne correspondent pas" -#: builtin/grep.c:651 +#: builtin/grep.c:649 msgid "case insensitive matching" msgstr "correspondance insensible à la casse" -#: builtin/grep.c:653 +#: builtin/grep.c:651 msgid "match patterns only at word boundaries" msgstr "rechercher les motifs aux séparateurs de mots" -#: builtin/grep.c:655 +#: builtin/grep.c:653 msgid "process binary files as text" msgstr "traiter les fichiers binaires comme texte" -#: builtin/grep.c:657 +#: builtin/grep.c:655 msgid "don't match patterns in binary files" msgstr "ne pas chercher les motifs dans les fichiers binaires" -#: builtin/grep.c:660 +#: builtin/grep.c:658 msgid "process binary files with textconv filters" msgstr "traiter les fichiers binaires avec les filtres textconv" -#: builtin/grep.c:662 +#: builtin/grep.c:660 msgid "descend at most <depth> levels" msgstr "descendre au plus de <profondeur> dans l'arborescence" -#: builtin/grep.c:666 +#: builtin/grep.c:664 msgid "use extended POSIX regular expressions" msgstr "utiliser des expressions régulières étendues POSIX" -#: builtin/grep.c:669 +#: builtin/grep.c:667 msgid "use basic POSIX regular expressions (default)" msgstr "utiliser des expressions régulières basiques POSIX (par défaut)" -#: builtin/grep.c:672 +#: builtin/grep.c:670 msgid "interpret patterns as fixed strings" msgstr "interpréter les motifs comme de chaînes fixes" -#: builtin/grep.c:675 +#: builtin/grep.c:673 msgid "use Perl-compatible regular expressions" msgstr "utiliser des expressions régulières compatibles avec Perl" -#: builtin/grep.c:678 +#: builtin/grep.c:676 msgid "show line numbers" msgstr "afficher les numéros de ligne" -#: builtin/grep.c:679 +#: builtin/grep.c:677 msgid "don't show filenames" msgstr "ne pas pas afficher les noms de fichier" -#: builtin/grep.c:680 +#: builtin/grep.c:678 msgid "show filenames" msgstr "afficher les noms de fichier" -#: builtin/grep.c:682 +#: builtin/grep.c:680 msgid "show filenames relative to top directory" msgstr "afficher les noms de fichiers relativement au répertoire de base" -#: builtin/grep.c:684 +#: builtin/grep.c:682 msgid "show only filenames instead of matching lines" msgstr "n'afficher que les noms de fichiers au lieu des lignes correspondant" -#: builtin/grep.c:686 +#: builtin/grep.c:684 msgid "synonym for --files-with-matches" msgstr "synonyme pour --files-with-matches" -#: builtin/grep.c:689 +#: builtin/grep.c:687 msgid "show only the names of files without match" msgstr "n'afficher que les noms des fichiers sans correspondance" -#: builtin/grep.c:691 +#: builtin/grep.c:689 msgid "print NUL after filenames" msgstr "imprimer une caractère NUL après le noms de fichier" -#: builtin/grep.c:693 +#: builtin/grep.c:691 msgid "show the number of matches instead of matching lines" msgstr "afficher le nombre de correspondances au lieu des lignes correspondant" -#: builtin/grep.c:694 +#: builtin/grep.c:692 msgid "highlight matches" msgstr "mettre en évidence les correspondances" -#: builtin/grep.c:696 +#: builtin/grep.c:694 msgid "print empty line between matches from different files" msgstr "" "imprimer une ligne vide entre les correspondances de fichiers différents" -#: builtin/grep.c:698 +#: builtin/grep.c:696 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:701 +#: builtin/grep.c:699 msgid "show <n> context lines before and after matches" msgstr "afficher <n> lignes de contexte avant et après les correspondances" -#: builtin/grep.c:704 +#: builtin/grep.c:702 msgid "show <n> context lines before matches" msgstr "afficher <n> lignes de contexte avant les correspondances" -#: builtin/grep.c:706 +#: builtin/grep.c:704 msgid "show <n> context lines after matches" msgstr "afficher <n> lignes de contexte après les correspondances" -#: builtin/grep.c:707 +#: builtin/grep.c:705 msgid "shortcut for -C NUM" msgstr "raccourci pour -C NUM" -#: builtin/grep.c:710 +#: builtin/grep.c:708 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:712 +#: builtin/grep.c:710 msgid "show the surrounding function" msgstr "afficher la fonction contenante" -#: builtin/grep.c:715 +#: builtin/grep.c:713 msgid "read patterns from file" msgstr "lire les motifs depuis fichier" -#: builtin/grep.c:717 +#: builtin/grep.c:715 msgid "match <pattern>" msgstr "rechercher <motif>" -#: builtin/grep.c:719 +#: builtin/grep.c:717 msgid "combine patterns specified with -e" msgstr "combiner les motifs spécifiés par -e" -#: builtin/grep.c:731 +#: builtin/grep.c:729 msgid "indicate hit with exit status without output" msgstr "" "indiquer des correspondances avec le code de sortie mais sans rien afficher" -#: builtin/grep.c:733 +#: builtin/grep.c:731 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:735 +#: builtin/grep.c:733 msgid "show parse tree for grep expression" msgstr "afficher l'arbre d'analyse pour le motif grep" -#: builtin/grep.c:739 +#: builtin/grep.c:737 msgid "pager" msgstr "pagineur" -#: builtin/grep.c:739 +#: builtin/grep.c:737 msgid "show matching files in the pager" msgstr "afficher les fichiers correspondant dans le pagineur" -#: builtin/grep.c:742 +#: builtin/grep.c:740 msgid "allow calling of grep(1) (ignored by this build)" msgstr "permettre l'appel de grep(1) (ignoré par ce build)" -#: builtin/grep.c:743 builtin/show-ref.c:187 +#: builtin/grep.c:741 builtin/show-ref.c:187 msgid "show usage" msgstr "afficher l'usage" -#: builtin/grep.c:810 +#: builtin/grep.c:808 msgid "no pattern given." msgstr "aucun motif fourni." -#: builtin/grep.c:868 +#: builtin/grep.c:866 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:891 +#: builtin/grep.c:892 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:896 +#: builtin/grep.c:897 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:899 +#: builtin/grep.c:900 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:907 +#: builtin/grep.c:908 msgid "both --cached and trees are given." msgstr "--cached et des arbres sont fournis en même temps." @@ -5765,7 +5816,7 @@ msgstr "" msgid "git hash-object --stdin-paths < <list-of-paths>" msgstr "git hash-object --stdin-paths < <liste-de-chemins>" -#: builtin/hash-object.c:72 builtin/tag.c:521 +#: builtin/hash-object.c:72 builtin/tag.c:609 msgid "type" msgstr "type" @@ -5910,281 +5961,292 @@ msgstr "usage : %s%s" msgid "`git %s' is aliased to `%s'" msgstr "`git %s\" est un alias de `%s'" -#: builtin/index-pack.c:184 +#: builtin/index-pack.c:145 +#, c-format +msgid "unable to open %s" +msgstr "impossible d'ouvrir %s" + +#: builtin/index-pack.c:191 #, c-format msgid "object type mismatch at %s" msgstr "type d'objet non correspondant à %s" -#: builtin/index-pack.c:204 -msgid "object of unexpected type" -msgstr "objet de type inattendu" +#: builtin/index-pack.c:211 +#, c-format +msgid "did not receive expected object %s" +msgstr "objet attendu non reçu %s" + +#: builtin/index-pack.c:214 +#, c-format +msgid "object %s: expected type %s, found %s" +msgstr "objet %s : type attendu %s, reçu %s" -#: builtin/index-pack.c:244 +#: builtin/index-pack.c:256 #, c-format msgid "cannot fill %d byte" msgid_plural "cannot fill %d bytes" msgstr[0] "impossible de remplir %d octet" msgstr[1] "impossible de remplir %d octets" -#: builtin/index-pack.c:254 +#: builtin/index-pack.c:266 msgid "early EOF" msgstr "fin de fichier prématurée" -#: builtin/index-pack.c:255 +#: builtin/index-pack.c:267 msgid "read error on input" msgstr "erreur de lecture sur l'entrée" -#: builtin/index-pack.c:267 +#: builtin/index-pack.c:279 msgid "used more bytes than were available" msgstr "plus d'octets utilisés que disponibles" -#: builtin/index-pack.c:274 +#: builtin/index-pack.c:286 msgid "pack too large for current definition of off_t" msgstr "le paquet est trop grand pour la définition actuelle de off_t" -#: builtin/index-pack.c:290 +#: builtin/index-pack.c:302 #, c-format msgid "unable to create '%s'" msgstr "impossible de créer '%s'" -#: builtin/index-pack.c:295 +#: builtin/index-pack.c:307 #, c-format msgid "cannot open packfile '%s'" msgstr "impossible d'ouvrir le fichier paquet '%s'" -#: builtin/index-pack.c:309 +#: builtin/index-pack.c:321 msgid "pack signature mismatch" msgstr "la signature du paquet ne correspond pas" -#: builtin/index-pack.c:311 +#: builtin/index-pack.c:323 #, c-format msgid "pack version %<PRIu32> unsupported" msgstr "la version de paquet %<PRIu32> non supportée" -#: builtin/index-pack.c:329 +#: builtin/index-pack.c:341 #, c-format msgid "pack has bad object at offset %lu: %s" msgstr "le paquet a un mauvais objet à l'offset %lu: %s" -#: builtin/index-pack.c:451 +#: builtin/index-pack.c:462 #, c-format msgid "inflate returned %d" msgstr "la décompression (inflate) a retourné %d" -#: builtin/index-pack.c:500 +#: builtin/index-pack.c:511 msgid "offset value overflow for delta base object" msgstr "dépassement de la valeur d'offset pour l'objet delta de base" -#: builtin/index-pack.c:508 +#: builtin/index-pack.c:519 msgid "delta base offset is out of bound" msgstr "l'objet delta de base est hors limite" -#: builtin/index-pack.c:516 +#: builtin/index-pack.c:527 #, c-format msgid "unknown object type %d" msgstr "type d'objet inconnu %d" -#: builtin/index-pack.c:547 +#: builtin/index-pack.c:558 msgid "cannot pread pack file" msgstr "impossible de lire (pread) le fichier paquet" -#: builtin/index-pack.c:549 +#: builtin/index-pack.c:560 #, c-format msgid "premature end of pack file, %lu byte missing" msgid_plural "premature end of pack file, %lu bytes missing" msgstr[0] "fin prématurée du fichier paquet, %lu octet lu" msgstr[1] "fin prématurée du fichier paquet, %lu octets lus" -#: builtin/index-pack.c:575 +#: builtin/index-pack.c:586 msgid "serious inflate inconsistency" msgstr "grave incohérence dans la décompression (inflate)" -#: builtin/index-pack.c:666 builtin/index-pack.c:672 builtin/index-pack.c:695 -#: builtin/index-pack.c:729 builtin/index-pack.c:738 +#: builtin/index-pack.c:677 builtin/index-pack.c:683 builtin/index-pack.c:706 +#: builtin/index-pack.c:740 builtin/index-pack.c:749 #, c-format msgid "SHA1 COLLISION FOUND WITH %s !" msgstr "COLLISION SHA1 TROUVÉE AVEC %s !" -#: builtin/index-pack.c:669 builtin/pack-objects.c:162 +#: builtin/index-pack.c:680 builtin/pack-objects.c:162 #: builtin/pack-objects.c:254 #, c-format msgid "unable to read %s" msgstr "impossible de lire %s" -#: builtin/index-pack.c:735 +#: builtin/index-pack.c:746 #, c-format msgid "cannot read existing object %s" msgstr "impossible de lire l'objet existant %s" -#: builtin/index-pack.c:749 +#: builtin/index-pack.c:760 #, c-format msgid "invalid blob object %s" msgstr "objet blob invalide %s" -#: builtin/index-pack.c:763 +#: builtin/index-pack.c:774 #, c-format msgid "invalid %s" msgstr "%s invalide" -#: builtin/index-pack.c:766 +#: builtin/index-pack.c:777 msgid "Error in object" msgstr "Erreur dans l'objet" -#: builtin/index-pack.c:768 +#: builtin/index-pack.c:779 #, c-format msgid "Not all child objects of %s are reachable" msgstr "Tous les objets enfants de %s ne sont pas accessibles" -#: builtin/index-pack.c:839 builtin/index-pack.c:869 +#: builtin/index-pack.c:851 builtin/index-pack.c:881 msgid "failed to apply delta" msgstr "échec d'application du delta" -#: builtin/index-pack.c:1010 +#: builtin/index-pack.c:1022 msgid "Receiving objects" msgstr "Réception d'objets" -#: builtin/index-pack.c:1010 +#: builtin/index-pack.c:1022 msgid "Indexing objects" msgstr "Indexation d'objets" -#: builtin/index-pack.c:1036 +#: builtin/index-pack.c:1048 msgid "pack is corrupted (SHA1 mismatch)" msgstr "le paquet est corrompu (SHA1 ne correspond pas)" -#: builtin/index-pack.c:1041 +#: builtin/index-pack.c:1053 msgid "cannot fstat packfile" msgstr "impossible d'obtenir le statut (fstat) du fichier paquet" -#: builtin/index-pack.c:1044 +#: builtin/index-pack.c:1056 msgid "pack has junk at the end" msgstr "le paquet est invalide à la fin" -#: builtin/index-pack.c:1055 +#: builtin/index-pack.c:1067 msgid "confusion beyond insanity in parse_pack_objects()" msgstr "confusion extrême dans parse_pack_objects()" -#: builtin/index-pack.c:1078 +#: builtin/index-pack.c:1090 msgid "Resolving deltas" msgstr "Résolution des deltas" -#: builtin/index-pack.c:1088 +#: builtin/index-pack.c:1100 #, c-format msgid "unable to create thread: %s" msgstr "impossible de créer le fil : %s" -#: builtin/index-pack.c:1130 +#: builtin/index-pack.c:1142 msgid "confusion beyond insanity" msgstr "confusion extrême" -#: builtin/index-pack.c:1138 +#: builtin/index-pack.c:1150 #, c-format msgid "completed with %d local objects" msgstr "complété avec %d objets locaux" -#: builtin/index-pack.c:1148 +#: builtin/index-pack.c:1160 #, c-format msgid "Unexpected tail checksum for %s (disk corruption?)" msgstr "" "Somme de contrôle de fin inattendue pour %s (corruption sur le disque ?)" -#: builtin/index-pack.c:1152 +#: builtin/index-pack.c:1164 #, c-format msgid "pack has %d unresolved delta" msgid_plural "pack has %d unresolved deltas" msgstr[0] "le paquet a %d delta non résolu" msgstr[1] "le paquet a %d deltas non résolus" -#: builtin/index-pack.c:1177 +#: builtin/index-pack.c:1189 #, c-format msgid "unable to deflate appended object (%d)" msgstr "impossible de compresser l'objet ajouté (%d)" -#: builtin/index-pack.c:1256 +#: builtin/index-pack.c:1268 #, c-format msgid "local object %s is corrupt" msgstr "l'objet local %s est corrompu" -#: builtin/index-pack.c:1280 +#: builtin/index-pack.c:1292 msgid "error while closing pack file" msgstr "erreur en fermeture du fichier paquet" -#: builtin/index-pack.c:1293 +#: builtin/index-pack.c:1305 #, c-format msgid "cannot write keep file '%s'" msgstr "impossible d'écrire le fichier \"keep\" '%s'" -#: builtin/index-pack.c:1301 +#: builtin/index-pack.c:1313 #, c-format msgid "cannot close written keep file '%s'" msgstr "impossible de fermer le fichier \"keep\" '%s'" -#: builtin/index-pack.c:1314 +#: builtin/index-pack.c:1326 msgid "cannot store pack file" msgstr "impossible de stocker le fichier paquet" -#: builtin/index-pack.c:1325 +#: builtin/index-pack.c:1337 msgid "cannot store index file" msgstr "impossible de stocker le fichier d'index" -#: builtin/index-pack.c:1358 +#: builtin/index-pack.c:1370 #, c-format msgid "bad pack.indexversion=%<PRIu32>" msgstr "mauvais pack.indexversion=%<PRIu32>" -#: builtin/index-pack.c:1364 +#: builtin/index-pack.c:1376 #, c-format msgid "invalid number of threads specified (%d)" msgstr "nombre de fils spécifié invalide (%d)" -#: builtin/index-pack.c:1368 builtin/index-pack.c:1546 +#: builtin/index-pack.c:1380 builtin/index-pack.c:1559 #, c-format msgid "no threads support, ignoring %s" msgstr "pas de support des fils, ignore %s" -#: builtin/index-pack.c:1426 +#: builtin/index-pack.c:1438 #, c-format msgid "Cannot open existing pack file '%s'" msgstr "Impossible d'ouvrir le fichier paquet existant '%s'" -#: builtin/index-pack.c:1428 +#: builtin/index-pack.c:1440 #, 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:1475 +#: builtin/index-pack.c:1487 #, 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:1482 +#: builtin/index-pack.c:1494 #, 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:1510 +#: builtin/index-pack.c:1523 msgid "Cannot come back to cwd" msgstr "Impossible de revenir au répertoire de travail courant" -#: builtin/index-pack.c:1558 builtin/index-pack.c:1561 -#: builtin/index-pack.c:1573 builtin/index-pack.c:1577 +#: builtin/index-pack.c:1571 builtin/index-pack.c:1574 +#: builtin/index-pack.c:1586 builtin/index-pack.c:1590 #, c-format msgid "bad %s" msgstr "mauvais %s" -#: builtin/index-pack.c:1591 +#: builtin/index-pack.c:1604 msgid "--fix-thin cannot be used without --stdin" msgstr "--fix-thin ne peut pas être utilisé sans --stdin" -#: builtin/index-pack.c:1595 builtin/index-pack.c:1605 +#: builtin/index-pack.c:1608 builtin/index-pack.c:1617 #, 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:1614 +#: builtin/index-pack.c:1625 msgid "--verify with no packfile name given" msgstr "--verify sans nom de fichier paquet donné" @@ -6314,7 +6376,7 @@ msgstr "permissions" msgid "specify that the git repository is to be shared amongst several users" msgstr "spécifier que le dépôt git sera partagé entre plusieurs utilisateurs" -#: builtin/init-db.c:491 builtin/prune-packed.c:79 builtin/repack.c:168 +#: builtin/init-db.c:491 builtin/prune-packed.c:79 builtin/repack.c:172 msgid "be quiet" msgstr "être silencieux" @@ -6354,38 +6416,38 @@ msgstr "git log [<options>] [<page de révisions>] [[--] <chemin>...]\n" msgid " or: git show [options] <object>..." msgstr " ou : git show [options] <objet>..." -#: builtin/log.c:125 +#: builtin/log.c:127 msgid "suppress diff output" msgstr "supprimer la sortie des différences" -#: builtin/log.c:126 +#: builtin/log.c:128 msgid "show source" msgstr "afficher la source" -#: builtin/log.c:127 +#: builtin/log.c:129 msgid "Use mail map file" msgstr "Utiliser le fichier de correspondance de mail" -#: builtin/log.c:128 +#: builtin/log.c:130 msgid "decorate options" msgstr "décorer les options" -#: builtin/log.c:231 +#: builtin/log.c:229 #, c-format msgid "Final output: %d %s\n" msgstr "Sortie finale : %d %s\n" -#: builtin/log.c:473 builtin/log.c:565 +#: builtin/log.c:470 builtin/log.c:562 #, c-format msgid "Could not read object %s" msgstr "Impossible de lire l'objet %s" -#: builtin/log.c:589 +#: builtin/log.c:586 #, c-format msgid "Unknown type: %d" msgstr "Type inconnu : %d" -#: builtin/log.c:689 +#: builtin/log.c:687 msgid "format.headers without value" msgstr "format.headers sans valeur" @@ -6406,197 +6468,206 @@ msgstr "Exactement une plage nécessaire." msgid "Not a range." msgstr "Ceci n'est pas une plage." -#: builtin/log.c:911 +#: builtin/log.c:916 msgid "Cover letter needs email format" msgstr "La lettre de motivation doit être au format e-mail" -#: builtin/log.c:987 +#: builtin/log.c:995 #, c-format msgid "insane in-reply-to: %s" msgstr "in-reply-to aberrant : %s" -#: builtin/log.c:1015 +#: builtin/log.c:1023 msgid "git format-patch [options] [<since> | <revision range>]" msgstr "git format-patch [options] [<depuis> | <plage de révisions>]" -#: builtin/log.c:1060 +#: builtin/log.c:1068 msgid "Two output directories?" msgstr "Deux répertoires de sortie ?" -#: builtin/log.c:1175 +#: builtin/log.c:1183 msgid "use [PATCH n/m] even with a single patch" msgstr "utiliser [PATCH n/m] même avec un patch unique" -#: builtin/log.c:1178 +#: builtin/log.c:1186 msgid "use [PATCH] even with multiple patches" msgstr "utiliser [PATCH] même avec des patchs multiples" -#: builtin/log.c:1182 +#: builtin/log.c:1190 msgid "print patches to standard out" msgstr "afficher les patchs sur la sortie standard" -#: builtin/log.c:1184 +#: builtin/log.c:1192 msgid "generate a cover letter" msgstr "générer une lettre de motivation" -#: builtin/log.c:1186 +#: builtin/log.c:1194 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:1187 +#: builtin/log.c:1195 msgid "sfx" msgstr "sfx" -#: builtin/log.c:1188 +#: builtin/log.c:1196 msgid "use <sfx> instead of '.patch'" msgstr "utiliser <sfx> au lieu de '.patch'" -#: builtin/log.c:1190 +#: builtin/log.c:1198 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:1192 +#: builtin/log.c:1200 msgid "mark the series as Nth re-roll" msgstr "marquer la série comme une Nième réédition" -#: builtin/log.c:1194 +#: builtin/log.c:1202 msgid "Use [<prefix>] instead of [PATCH]" msgstr "utiliser [<préfixe>] au lieu de [PATCH]" -#: builtin/log.c:1197 +#: builtin/log.c:1205 msgid "store resulting files in <dir>" msgstr "stocker les fichiers résultats dans <répertoire>" -#: builtin/log.c:1200 +#: builtin/log.c:1208 msgid "don't strip/add [PATCH]" msgstr "ne pas retirer/ajouter [PATCH]" -#: builtin/log.c:1203 +#: builtin/log.c:1211 msgid "don't output binary diffs" msgstr "ne pas imprimer les diffs binaires" -#: builtin/log.c:1205 +#: builtin/log.c:1213 msgid "don't include a patch matching a commit upstream" msgstr "ne pas inclure un patch correspondant à un commit amont" -#: builtin/log.c:1207 +#: builtin/log.c:1215 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:1209 +#: builtin/log.c:1217 msgid "Messaging" msgstr "Communication" -#: builtin/log.c:1210 +#: builtin/log.c:1218 msgid "header" msgstr "en-tête" -#: builtin/log.c:1211 +#: builtin/log.c:1219 msgid "add email header" msgstr "ajouter l'en-tête d'e-mail" -#: builtin/log.c:1212 builtin/log.c:1214 +#: builtin/log.c:1220 builtin/log.c:1222 msgid "email" msgstr "e-mail" -#: builtin/log.c:1212 +#: builtin/log.c:1220 msgid "add To: header" msgstr "ajouter l'en-tête \"To:\"" -#: builtin/log.c:1214 +#: builtin/log.c:1222 msgid "add Cc: header" msgstr "ajouter l'en-tête \"Cc:\"" -#: builtin/log.c:1216 +#: builtin/log.c:1224 msgid "ident" msgstr "ident" -#: builtin/log.c:1217 +#: builtin/log.c:1225 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:1219 +#: builtin/log.c:1227 msgid "message-id" msgstr "id-message" -#: builtin/log.c:1220 +#: builtin/log.c:1228 msgid "make first mail a reply to <message-id>" msgstr "répondre dans le premier message à <id-message>" -#: builtin/log.c:1221 builtin/log.c:1224 +#: builtin/log.c:1229 builtin/log.c:1232 msgid "boundary" msgstr "limite" -#: builtin/log.c:1222 +#: builtin/log.c:1230 msgid "attach the patch" msgstr "attacher le patch" -#: builtin/log.c:1225 +#: builtin/log.c:1233 msgid "inline the patch" msgstr "patch à l'intérieur" -#: builtin/log.c:1229 +#: builtin/log.c:1237 msgid "enable message threading, styles: shallow, deep" msgstr "" "activer l'enfilage de message, styles : shallow (superficiel), deep (profond)" -#: builtin/log.c:1231 +#: builtin/log.c:1239 msgid "signature" msgstr "signature" -#: builtin/log.c:1232 +#: builtin/log.c:1240 msgid "add a signature" msgstr "ajouter une signature" -#: builtin/log.c:1233 +#: builtin/log.c:1242 +msgid "add a signature from a file" +msgstr "ajouter une signature depuis un fichier" + +#: builtin/log.c:1243 msgid "don't print the patch filenames" msgstr "ne pas afficher les noms de fichiers des patchs" -#: builtin/log.c:1307 +#: builtin/log.c:1317 #, c-format msgid "invalid ident line: %s" msgstr "ligne d'identification invalide : %s" -#: builtin/log.c:1322 +#: builtin/log.c:1332 msgid "-n and -k are mutually exclusive." msgstr "-n et -k sont mutuellement exclusifs." -#: builtin/log.c:1324 +#: builtin/log.c:1334 msgid "--subject-prefix and -k are mutually exclusive." msgstr "--subject-prefix et -k sont mutuellement exclusifs." -#: builtin/log.c:1332 +#: builtin/log.c:1342 msgid "--name-only does not make sense" msgstr "--name-only n'a pas de sens" -#: builtin/log.c:1334 +#: builtin/log.c:1344 msgid "--name-status does not make sense" msgstr "--name-status n'a pas de sens" -#: builtin/log.c:1336 +#: builtin/log.c:1346 msgid "--check does not make sense" msgstr "--check n'a pas de sens" -#: builtin/log.c:1359 +#: builtin/log.c:1369 msgid "standard output, or directory, which one?" msgstr "sortie standard, ou répertoire, lequel ?" -#: builtin/log.c:1361 +#: builtin/log.c:1371 #, c-format msgid "Could not create directory '%s'" msgstr "Impossible de créer le répertoire '%s'" -#: builtin/log.c:1509 +#: builtin/log.c:1468 +#, c-format +msgid "unable to read signature file '%s'" +msgstr "lecture du fichier de signature '%s' impossible" + +#: builtin/log.c:1531 msgid "Failed to create output files" msgstr "Échec de création des fichiers en sortie" -#: builtin/log.c:1558 +#: builtin/log.c:1579 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]" msgstr "git cherry [-v] [<branche_amont> [<head> [<limite>]]]" -#: builtin/log.c:1613 +#: builtin/log.c:1634 #, c-format msgid "" "Could not find a tracked remote branch, please specify <upstream> manually.\n" @@ -6604,7 +6675,7 @@ msgstr "" "Impossible de trouver une branche distante suivie, merci de spécifier " "<branche_amont> manuellement.\n" -#: builtin/log.c:1626 builtin/log.c:1628 builtin/log.c:1640 +#: builtin/log.c:1647 builtin/log.c:1649 builtin/log.c:1661 #, c-format msgid "Unknown commit %s" msgstr "Commit inconnu %s" @@ -6893,33 +6964,33 @@ msgstr "Mauvaise chaîne branch.%s.mergeoptions : %s" msgid "git write-tree failed to write a tree" msgstr "git write-tree a échoué à écrire un arbre" -#: builtin/merge.c:681 +#: builtin/merge.c:678 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:695 +#: builtin/merge.c:692 #, c-format msgid "Unknown option for merge-recursive: -X%s" msgstr "Options inconnue pour merge-recursive : -X%s" -#: builtin/merge.c:709 +#: builtin/merge.c:705 #, c-format msgid "unable to write %s" msgstr "impossible d'écrire %s" -#: builtin/merge.c:798 +#: builtin/merge.c:794 #, c-format msgid "Could not read from '%s'" msgstr "Impossible de lire depuis '%s'" -#: builtin/merge.c:807 +#: builtin/merge.c:803 #, 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:813 +#: builtin/merge.c:809 #, c-format msgid "" "Please enter a commit message to explain why this merge is necessary,\n" @@ -6936,49 +7007,49 @@ msgstr "" "Les lignes commençant par '%c' seront ignorées, et un message vide\n" "abandonne la validation.\n" -#: builtin/merge.c:837 +#: builtin/merge.c:833 msgid "Empty commit message." msgstr "Message de validation vide." -#: builtin/merge.c:849 +#: builtin/merge.c:845 #, c-format msgid "Wonderful.\n" msgstr "Merveilleux.\n" -#: builtin/merge.c:914 +#: builtin/merge.c:908 #, 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:930 +#: builtin/merge.c:924 #, c-format msgid "'%s' is not a commit" msgstr "'%s' n'est pas une validation" -#: builtin/merge.c:971 +#: builtin/merge.c:965 msgid "No current branch." msgstr "Pas de branche courante." -#: builtin/merge.c:973 +#: builtin/merge.c:967 msgid "No remote for the current branch." msgstr "Pas de branche distante pour la branche courante." -#: builtin/merge.c:975 +#: builtin/merge.c:969 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:980 +#: builtin/merge.c:974 #, c-format msgid "No remote-tracking branch for %s from %s" msgstr "Pas de branche de suivi pour %s depuis %s" -#: builtin/merge.c:1136 +#: builtin/merge.c:1130 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:1152 git-pull.sh:31 +#: builtin/merge.c:1146 git-pull.sh:31 msgid "" "You have not concluded your merge (MERGE_HEAD exists).\n" "Please, commit your changes before you can merge." @@ -6986,11 +7057,11 @@ msgstr "" "Vous n'avez pas terminé votre fusion (MERGE_HEAD existe).\n" "Veuillez valider vos changements avant de pouvoir fusionner." -#: builtin/merge.c:1155 git-pull.sh:34 +#: builtin/merge.c:1149 git-pull.sh:34 msgid "You have not concluded your merge (MERGE_HEAD exists)." msgstr "Vous n'avez pas terminé votre fusion (MERGE_HEAD existe)." -#: builtin/merge.c:1159 +#: builtin/merge.c:1153 msgid "" "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n" "Please, commit your changes before you can merge." @@ -6998,102 +7069,102 @@ msgstr "" "Vous n'avez pas terminé votre picorage (CHERRY_PICK_HEAD existe).\n" "Veuillez valider vos changements avant de pouvoir fusionner." -#: builtin/merge.c:1162 +#: builtin/merge.c:1156 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:1171 +#: builtin/merge.c:1165 msgid "You cannot combine --squash with --no-ff." msgstr "Vous ne pouvez pas combiner --squash avec --no-ff." -#: builtin/merge.c:1180 +#: builtin/merge.c:1174 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:1212 +#: builtin/merge.c:1206 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:1215 +#: builtin/merge.c:1209 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:1217 +#: builtin/merge.c:1211 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:1222 +#: builtin/merge.c:1216 #, c-format msgid "%s - not something we can merge" msgstr "%s - pas possible de fusionner ceci" -#: builtin/merge.c:1273 +#: builtin/merge.c:1267 #, 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:1276 +#: builtin/merge.c:1270 #, 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:1279 +#: builtin/merge.c:1273 #, c-format msgid "Commit %s does not have a GPG signature." msgstr "La validation %s n'a pas de signature GPG." -#: builtin/merge.c:1282 +#: builtin/merge.c:1276 #, 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:1366 +#: builtin/merge.c:1357 #, c-format msgid "Updating %s..%s\n" msgstr "Mise à jour %s..%s\n" -#: builtin/merge.c:1405 +#: builtin/merge.c:1396 #, c-format msgid "Trying really trivial in-index merge...\n" msgstr "Essai de fusion vraiment triviale dans l'index...\n" -#: builtin/merge.c:1412 +#: builtin/merge.c:1403 #, c-format msgid "Nope.\n" msgstr "Non.\n" -#: builtin/merge.c:1444 +#: builtin/merge.c:1435 msgid "Not possible to fast-forward, aborting." msgstr "Pas possible d'avancer rapidement, abandon." -#: builtin/merge.c:1467 builtin/merge.c:1546 +#: builtin/merge.c:1458 builtin/merge.c:1537 #, c-format msgid "Rewinding the tree to pristine...\n" msgstr "Retour de l'arbre à l'original...\n" -#: builtin/merge.c:1471 +#: builtin/merge.c:1462 #, c-format msgid "Trying merge strategy %s...\n" msgstr "Essai de la stratégie de fusion %s...\n" -#: builtin/merge.c:1537 +#: builtin/merge.c:1528 #, 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:1539 +#: builtin/merge.c:1530 #, c-format msgid "Merge with strategy %s failed.\n" msgstr "La fusion avec la stratégie %s a échoué.\n" -#: builtin/merge.c:1548 +#: builtin/merge.c:1539 #, 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:1560 +#: builtin/merge.c:1551 #, c-format msgid "Automatic merge went well; stopped before committing as requested\n" msgstr "" @@ -7249,80 +7320,80 @@ msgstr "le répertoire source est vide" msgid "not under version control" msgstr "pas sous le contrôle de version" -#: builtin/mv.c:207 +#: builtin/mv.c:208 msgid "destination exists" msgstr "la destination existe" -#: builtin/mv.c:215 +#: builtin/mv.c:216 #, c-format msgid "overwriting '%s'" msgstr "écrasement de '%s'" -#: builtin/mv.c:218 +#: builtin/mv.c:219 msgid "Cannot overwrite" msgstr "Impossible d'écraser" -#: builtin/mv.c:221 +#: builtin/mv.c:222 msgid "multiple sources for the same target" msgstr "multiples sources pour la même destination" -#: builtin/mv.c:223 +#: builtin/mv.c:224 msgid "destination directory does not exist" msgstr "le répertoire de destination n'existe pas" -#: builtin/mv.c:243 +#: builtin/mv.c:244 #, 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:726 builtin/repack.c:355 +#: builtin/mv.c:257 builtin/remote.c:725 builtin/repack.c:358 #, c-format msgid "renaming '%s' failed" msgstr "le renommage de '%s' a échoué" -#: builtin/name-rev.c:258 +#: builtin/name-rev.c:255 msgid "git name-rev [options] <commit>..." msgstr "git name-rev [options] <validation>..." -#: builtin/name-rev.c:259 +#: builtin/name-rev.c:256 msgid "git name-rev [options] --all" msgstr "git name-rev [options] --all" -#: builtin/name-rev.c:260 +#: builtin/name-rev.c:257 msgid "git name-rev [options] --stdin" msgstr "git name-rev [options] --stdin" -#: builtin/name-rev.c:312 +#: builtin/name-rev.c:309 msgid "print only names (no SHA-1)" msgstr "afficher seulement les noms (pas de SHA-1)" -#: builtin/name-rev.c:313 +#: builtin/name-rev.c:310 msgid "only use tags to name the commits" msgstr "utiliser seulement les étiquettes pour nommer les validations" -#: builtin/name-rev.c:315 +#: builtin/name-rev.c:312 msgid "only use refs matching <pattern>" msgstr "utiliser seulement les références correspondant à <motif>" -#: builtin/name-rev.c:317 +#: builtin/name-rev.c:314 msgid "list all commits reachable from all refs" msgstr "" "afficher toutes les validations accessibles depuis toutes les références" -#: builtin/name-rev.c:318 +#: builtin/name-rev.c:315 msgid "read from stdin" msgstr "lire depuis l'entrée standard" -#: builtin/name-rev.c:319 +#: builtin/name-rev.c:316 msgid "allow to print `undefined` names (default)" msgstr "autoriser l'affichage des noms `non définis` (par défaut)" -#: builtin/name-rev.c:325 +#: builtin/name-rev.c:322 msgid "dereference tags in the input (internal use)" msgstr "déréférencer les étiquettes en entrée (usage interne)" @@ -7452,7 +7523,7 @@ msgstr "impossible de lire la sortie de 'show'" msgid "failed to finish 'show' for object '%s'" msgstr "impossible de finir 'show' pour l'objet '%s'" -#: builtin/notes.c:167 builtin/tag.c:373 +#: builtin/notes.c:167 builtin/tag.c:477 #, c-format msgid "could not create file '%s'" msgstr "impossible de créer le fichier '%s'" @@ -7475,12 +7546,12 @@ msgstr "impossible d'écrire l'objet note" msgid "The note contents has been left in %s" msgstr "Le contenu de la note a été laissé dans %s" -#: builtin/notes.c:248 builtin/tag.c:604 +#: builtin/notes.c:248 builtin/tag.c:692 #, c-format msgid "cannot read '%s'" msgstr "impossible de lire '%s'" -#: builtin/notes.c:250 builtin/tag.c:607 +#: builtin/notes.c:250 builtin/tag.c:695 #, c-format msgid "could not open or read '%s'" msgstr "impossible d'ouvrir ou lire '%s'" @@ -7488,7 +7559,7 @@ msgstr "impossible d'ouvrir ou lire '%s'" #: builtin/notes.c:269 builtin/notes.c:320 builtin/notes.c:322 #: builtin/notes.c:382 builtin/notes.c:436 builtin/notes.c:519 #: builtin/notes.c:524 builtin/notes.c:599 builtin/notes.c:641 -#: builtin/notes.c:843 builtin/tag.c:620 +#: builtin/notes.c:843 builtin/tag.c:708 #, c-format msgid "Failed to resolve '%s' as a valid ref." msgstr "Impossible de résoudre '%s' comme une référence valide." @@ -7533,7 +7604,7 @@ msgid "note contents in a file" msgstr "contenu de la note dans un fichier" #: builtin/notes.c:415 builtin/notes.c:418 builtin/notes.c:572 -#: builtin/notes.c:575 builtin/tag.c:539 +#: builtin/notes.c:575 builtin/tag.c:627 msgid "object" msgstr "objet" @@ -7653,7 +7724,7 @@ msgstr "références-notes" msgid "use notes from <notes_ref>" msgstr "utiliser les notes depuis <références_notes>" -#: builtin/notes.c:978 builtin/remote.c:1593 +#: builtin/notes.c:978 builtin/remote.c:1616 #, c-format msgid "Unknown subcommand: %s" msgstr "Sous-commande inconnue : %s" @@ -7679,167 +7750,171 @@ msgstr "Écriture des objets" #: 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" +msgstr "" +"désactivation de l'écriture en bitmap car certains objets ne sont pas " +"compressés" #: builtin/pack-objects.c:2174 msgid "Compressing objects" msgstr "Compression des objets" -#: builtin/pack-objects.c:2530 +#: builtin/pack-objects.c:2526 #, c-format msgid "unsupported index version %s" msgstr "version d'index non supportée %s" -#: builtin/pack-objects.c:2534 +#: builtin/pack-objects.c:2530 #, c-format msgid "bad index version '%s'" msgstr "mauvaise version d'index '%s'" -#: builtin/pack-objects.c:2557 +#: builtin/pack-objects.c:2553 #, c-format msgid "option %s does not accept negative form" msgstr "l'option %s n'accepte pas de valeur négative" -#: builtin/pack-objects.c:2561 +#: builtin/pack-objects.c:2557 #, c-format msgid "unable to parse value '%s' for option %s" msgstr "impossible d'analyser la valeur '%s' pour l'option %s" -#: builtin/pack-objects.c:2580 +#: builtin/pack-objects.c:2576 msgid "do not show progress meter" msgstr "ne pas afficher la barre de progression" -#: builtin/pack-objects.c:2582 +#: builtin/pack-objects.c:2578 msgid "show progress meter" msgstr "afficher la barre de progression" -#: builtin/pack-objects.c:2584 +#: builtin/pack-objects.c:2580 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:2587 +#: builtin/pack-objects.c:2583 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:2588 +#: builtin/pack-objects.c:2584 msgid "version[,offset]" msgstr "version[,offset]" -#: builtin/pack-objects.c:2589 +#: builtin/pack-objects.c:2585 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:2592 +#: builtin/pack-objects.c:2588 msgid "maximum size of each output pack file" msgstr "taille maximum de chaque fichier paquet en sortie" -#: builtin/pack-objects.c:2594 +#: builtin/pack-objects.c:2590 msgid "ignore borrowed objects from alternate object store" msgstr "ignorer les objets empruntés à un autre magasin d'objets" -#: builtin/pack-objects.c:2596 +#: builtin/pack-objects.c:2592 msgid "ignore packed objects" msgstr "ignorer les objets empaquetés" -#: builtin/pack-objects.c:2598 +#: builtin/pack-objects.c:2594 msgid "limit pack window by objects" msgstr "limiter la fenêtre d'empaquetage par objets" -#: builtin/pack-objects.c:2600 +#: builtin/pack-objects.c:2596 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:2602 +#: builtin/pack-objects.c:2598 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:2604 +#: builtin/pack-objects.c:2600 msgid "reuse existing deltas" msgstr "réutiliser les deltas existants" -#: builtin/pack-objects.c:2606 +#: builtin/pack-objects.c:2602 msgid "reuse existing objects" msgstr "réutiliser les objets existants" -#: builtin/pack-objects.c:2608 +#: builtin/pack-objects.c:2604 msgid "use OFS_DELTA objects" msgstr "utiliser les objets OFS_DELTA" -#: builtin/pack-objects.c:2610 +#: builtin/pack-objects.c:2606 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:2612 +#: builtin/pack-objects.c:2608 msgid "do not create an empty pack output" msgstr "ne pas créer un paquet vide" -#: builtin/pack-objects.c:2614 +#: builtin/pack-objects.c:2610 msgid "read revision arguments from standard input" msgstr "lire les paramètres de révision depuis l'entrée standard" -#: builtin/pack-objects.c:2616 +#: builtin/pack-objects.c:2612 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:2619 +#: builtin/pack-objects.c:2615 msgid "include objects reachable from any reference" msgstr "inclure les objets accessibles depuis toute référence" -#: builtin/pack-objects.c:2622 +#: builtin/pack-objects.c:2618 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:2625 +#: builtin/pack-objects.c:2621 msgid "output pack to stdout" msgstr "afficher l'empaquetage sur la sortie standard" -#: builtin/pack-objects.c:2627 +#: builtin/pack-objects.c:2623 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:2629 +#: builtin/pack-objects.c:2625 msgid "keep unreachable objects" msgstr "garder les objets inaccessibles" -#: builtin/pack-objects.c:2630 parse-options.h:140 +#: builtin/pack-objects.c:2626 parse-options.h:140 msgid "time" msgstr "heure" -#: builtin/pack-objects.c:2631 +#: builtin/pack-objects.c:2627 msgid "unpack unreachable objects newer than <time>" msgstr "dépaqueter les objets inaccessibles plus récents que <heure>" -#: builtin/pack-objects.c:2634 +#: builtin/pack-objects.c:2630 msgid "create thin packs" msgstr "créer des paquets légers" -#: builtin/pack-objects.c:2636 +#: builtin/pack-objects.c:2632 msgid "ignore packs that have companion .keep file" msgstr "ignorer les paquets qui ont un fichier .keep" -#: builtin/pack-objects.c:2638 +#: builtin/pack-objects.c:2634 msgid "pack compression level" msgstr "niveau de compression du paquet" -#: builtin/pack-objects.c:2640 +#: builtin/pack-objects.c:2636 msgid "do not hide commits by grafts" msgstr "ne pas cacher les validations par greffes" -#: builtin/pack-objects.c:2642 +#: builtin/pack-objects.c:2638 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" +msgstr "" +"utiliser un index en bitmap si disponible pour accélerer le décompte des " +"objets" -#: builtin/pack-objects.c:2644 +#: builtin/pack-objects.c:2640 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:2723 +#: builtin/pack-objects.c:2719 msgid "Counting objects" msgstr "Décompte des objets" @@ -7891,7 +7966,7 @@ msgstr "raccourci d'étiquette sans <étiquette>" msgid "--delete only accepts plain target ref names" msgstr "--delete accepte seulement des noms entiers de références cibles" -#: builtin/push.c:140 +#: builtin/push.c:139 msgid "" "\n" "To choose either option permanently, see push.default in 'git help config'." @@ -7900,7 +7975,7 @@ msgstr "" "Pour choisir l'option de manière permanente, voir push.default dans 'git " "help config'." -#: builtin/push.c:143 +#: builtin/push.c:142 #, c-format msgid "" "The upstream branch of your current branch does not match\n" @@ -7925,7 +8000,7 @@ msgstr "" " git push %s %s\n" "%s" -#: builtin/push.c:158 +#: builtin/push.c:157 #, c-format msgid "" "You are not currently on a branch.\n" @@ -7940,7 +8015,7 @@ msgstr "" "\n" " git push %s HEAD:<nom-de-la-branche-amont>\n" -#: builtin/push.c:172 +#: builtin/push.c:171 #, c-format msgid "" "The current branch %s has no upstream branch.\n" @@ -7954,13 +8029,13 @@ msgstr "" "\n" " git push --set-upstream %s %s\n" -#: builtin/push.c:180 +#: builtin/push.c:179 #, 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:183 +#: builtin/push.c:182 #, c-format msgid "" "You are pushing to remote '%s', which is not the upstream of\n" @@ -7971,7 +8046,7 @@ 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:206 +#: builtin/push.c:205 msgid "" "push.default is unset; its implicit value has changed in\n" "Git 2.0 from 'matching' to 'simple'. To squelch this message\n" @@ -7997,33 +8072,39 @@ msgid "" 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" +"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" +"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" +"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)" +"(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:273 +#: builtin/push.c:272 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:280 +#: builtin/push.c:279 msgid "" "Updates were rejected because the tip of your current branch is behind\n" "its remote counterpart. Integrate the remote changes (e.g.\n" @@ -8038,7 +8119,7 @@ msgstr "" "Voir la 'Note à propos des avances rapides' dans 'git push --help' pour plus " "d'information." -#: builtin/push.c:286 +#: builtin/push.c:285 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" @@ -8053,7 +8134,7 @@ msgstr "" "Voir la 'Note à propos des avances rapides' dans 'git push --help' pour plus " "d'information." -#: builtin/push.c:292 +#: builtin/push.c:291 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" @@ -8071,13 +8152,13 @@ msgstr "" "Voir la 'Note à propos des avances rapides' dans 'git push --help' pour plus " "d'information." -#: builtin/push.c:299 +#: builtin/push.c:298 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:302 +#: builtin/push.c:301 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" @@ -8089,22 +8170,22 @@ msgstr "" "pointer\n" "vers un objet qui n'est pas un commit, sans utiliser l'option '--force'.\n" -#: builtin/push.c:361 +#: builtin/push.c:360 #, c-format msgid "Pushing to %s\n" msgstr "Poussée vers %s\n" -#: builtin/push.c:365 +#: builtin/push.c:364 #, c-format msgid "failed to push some refs to '%s'" msgstr "impossible de pousser des références vers '%s'" -#: builtin/push.c:395 +#: builtin/push.c:394 #, c-format msgid "bad repository '%s'" msgstr "mauvais dépôt '%s'" -#: builtin/push.c:396 +#: builtin/push.c:395 msgid "" "No configured push destination.\n" "Either specify the URL from the command-line or configure a remote " @@ -8126,96 +8207,96 @@ msgstr "" "\n" " git push <nom>\n" -#: builtin/push.c:411 +#: builtin/push.c:410 msgid "--all and --tags are incompatible" msgstr "--all et --tags sont incompatibles" -#: builtin/push.c:412 +#: builtin/push.c:411 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:417 +#: builtin/push.c:416 msgid "--mirror and --tags are incompatible" msgstr "--mirror et --tags sont incompatibles" -#: builtin/push.c:418 +#: builtin/push.c:417 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:423 +#: builtin/push.c:422 msgid "--all and --mirror are incompatible" msgstr "--all et --mirror sont incompatibles" -#: builtin/push.c:483 +#: builtin/push.c:482 msgid "repository" msgstr "dépôt" -#: builtin/push.c:484 +#: builtin/push.c:483 msgid "push all refs" msgstr "pousser toutes les références" -#: builtin/push.c:485 +#: builtin/push.c:484 msgid "mirror all refs" msgstr "refléter toutes les références" -#: builtin/push.c:487 +#: builtin/push.c:486 msgid "delete refs" msgstr "supprimer les références" -#: builtin/push.c:488 +#: builtin/push.c:487 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:491 +#: builtin/push.c:490 msgid "force updates" msgstr "forcer les mises à jour" -#: builtin/push.c:493 +#: builtin/push.c:492 msgid "refname>:<expect" msgstr "nom de référence>:<attendu" -#: builtin/push.c:494 +#: builtin/push.c:493 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:496 +#: builtin/push.c:495 msgid "check" msgstr "check" -#: builtin/push.c:497 +#: builtin/push.c:496 msgid "control recursive pushing of submodules" msgstr "contrôler la poussée récursive des sous-modules" -#: builtin/push.c:499 +#: builtin/push.c:498 msgid "use thin pack" msgstr "utiliser un empaquetage léger" -#: builtin/push.c:500 builtin/push.c:501 +#: builtin/push.c:499 builtin/push.c:500 msgid "receive pack program" msgstr "recevoir le programme d'empaquetage" -#: builtin/push.c:502 +#: builtin/push.c:501 msgid "set upstream for git pull/status" msgstr "définir la branche amont pour git pull/status" -#: builtin/push.c:505 +#: builtin/push.c:504 msgid "prune locally removed refs" msgstr "éliminer les références locales supprimées" -#: builtin/push.c:507 +#: builtin/push.c:506 msgid "bypass pre-push hook" msgstr "éviter d'utiliser le crochet pre-push" -#: builtin/push.c:508 +#: builtin/push.c:507 msgid "push missing but relevant tags" msgstr "pousser les étiquettes manquantes mais pertinentes" -#: builtin/push.c:518 +#: builtin/push.c:517 msgid "--delete is incompatible with --all, --mirror and --tags" msgstr "--delete est incompatible avec --all, --mirror et --tags" -#: builtin/push.c:520 +#: builtin/push.c:519 msgid "--delete doesn't make sense without any refs" msgstr "--delete n'a pas de sens sans aucune référence" @@ -8445,12 +8526,12 @@ msgstr "" "spécifier les branches à suivre n'a de sens qu'avec des miroirs de " "rapatriement" -#: builtin/remote.c:185 builtin/remote.c:641 +#: builtin/remote.c:185 builtin/remote.c:640 #, c-format msgid "remote %s already exists." msgstr "la distante %s existe déjà ." -#: builtin/remote.c:189 builtin/remote.c:645 +#: builtin/remote.c:189 builtin/remote.c:644 #, c-format msgid "'%s' is not a valid remote name" msgstr "'%s' n'est pas un nom valide de distante" @@ -8460,47 +8541,47 @@ msgstr "'%s' n'est pas un nom valide de distante" msgid "Could not setup master '%s'" msgstr "Impossible de paramétrer la maîtresse '%s'" -#: builtin/remote.c:289 +#: builtin/remote.c:288 #, c-format msgid "more than one %s" msgstr "plus d'un %s" -#: builtin/remote.c:334 +#: builtin/remote.c:333 #, 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:435 builtin/remote.c:443 +#: builtin/remote.c:434 builtin/remote.c:442 msgid "(matching)" msgstr "(correspond)" -#: builtin/remote.c:447 +#: builtin/remote.c:446 msgid "(delete)" msgstr "(supprimer)" -#: builtin/remote.c:590 builtin/remote.c:596 builtin/remote.c:602 +#: builtin/remote.c:589 builtin/remote.c:595 builtin/remote.c:601 #, c-format msgid "Could not append '%s' to '%s'" msgstr "Impossible d'ajouter '%s' à '%s'" -#: builtin/remote.c:634 builtin/remote.c:787 builtin/remote.c:885 +#: builtin/remote.c:633 builtin/remote.c:794 builtin/remote.c:894 #, c-format msgid "No such remote: %s" msgstr "Distante inconnue : %s" -#: builtin/remote.c:651 +#: builtin/remote.c:650 #, 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:657 builtin/remote.c:794 +#: builtin/remote.c:656 builtin/remote.c:846 #, c-format msgid "Could not remove config section '%s'" msgstr "Impossible de supprimer la section de configuration '%s'" -#: builtin/remote.c:672 +#: builtin/remote.c:671 #, c-format msgid "" "Not updating non-default fetch refspec\n" @@ -8511,32 +8592,32 @@ msgstr "" "\t%s\n" "\tVeuillez mettre à jour la configuration manuellement si nécessaire." -#: builtin/remote.c:678 +#: builtin/remote.c:677 #, c-format msgid "Could not append '%s'" msgstr "Impossible d'ajouter '%s'" -#: builtin/remote.c:689 +#: builtin/remote.c:688 #, c-format msgid "Could not set '%s'" msgstr "Impossible de définir '%s'" -#: builtin/remote.c:711 +#: builtin/remote.c:710 #, c-format msgid "deleting '%s' failed" msgstr "échec de suppression de '%s'" -#: builtin/remote.c:745 +#: builtin/remote.c:744 #, c-format msgid "creating '%s' failed" msgstr "échec de création de '%s'" -#: builtin/remote.c:759 +#: builtin/remote.c:765 #, c-format msgid "Could not remove branch %s" msgstr "Impossible de supprimer la branche %s" -#: builtin/remote.c:829 +#: builtin/remote.c:832 msgid "" "Note: A branch outside the refs/remotes/ hierarchy was not removed;\n" "to delete it, use:" @@ -8551,120 +8632,120 @@ msgstr[1] "" "supprimées ;\n" "pour les supprimer, utilisez :" -#: builtin/remote.c:938 +#: builtin/remote.c:947 #, c-format msgid " new (next fetch will store in remotes/%s)" msgstr " nouveau (le prochain rapatriement (fetch) stockera dans remotes/%s)" -#: builtin/remote.c:941 +#: builtin/remote.c:950 msgid " tracked" msgstr " suivi" -#: builtin/remote.c:943 +#: builtin/remote.c:952 msgid " stale (use 'git remote prune' to remove)" msgstr " dépassé (utilisez 'git remote prune' pour supprimer)" -#: builtin/remote.c:945 +#: builtin/remote.c:954 msgid " ???" msgstr " ???" -#: builtin/remote.c:986 +#: builtin/remote.c:995 #, 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:993 +#: builtin/remote.c:1002 #, c-format msgid "rebases onto remote %s" msgstr "rebase sur la distante %s" -#: builtin/remote.c:996 +#: builtin/remote.c:1005 #, c-format msgid " merges with remote %s" msgstr " fusionne avec la distante %s" -#: builtin/remote.c:997 +#: builtin/remote.c:1006 msgid " and with remote" msgstr " et avec la distante" -#: builtin/remote.c:999 +#: builtin/remote.c:1008 #, c-format msgid "merges with remote %s" msgstr "fusionne avec la distante %s" -#: builtin/remote.c:1000 +#: builtin/remote.c:1009 msgid " and with remote" msgstr " et avec la distante" -#: builtin/remote.c:1046 +#: builtin/remote.c:1055 msgid "create" msgstr "créer" -#: builtin/remote.c:1049 +#: builtin/remote.c:1058 msgid "delete" msgstr "supprimer" -#: builtin/remote.c:1053 +#: builtin/remote.c:1062 msgid "up to date" msgstr "à jour" -#: builtin/remote.c:1056 +#: builtin/remote.c:1065 msgid "fast-forwardable" msgstr "peut être mis à jour en avance rapide" -#: builtin/remote.c:1059 +#: builtin/remote.c:1068 msgid "local out of date" msgstr "le local n'est pas à jour" -#: builtin/remote.c:1066 +#: builtin/remote.c:1075 #, c-format msgid " %-*s forces to %-*s (%s)" msgstr " %-*s force vers %-*s (%s)" -#: builtin/remote.c:1069 +#: builtin/remote.c:1078 #, c-format msgid " %-*s pushes to %-*s (%s)" msgstr " %-*s pousse vers %-*s (%s)" -#: builtin/remote.c:1073 +#: builtin/remote.c:1082 #, c-format msgid " %-*s forces to %s" msgstr " %-*s force vers %s" -#: builtin/remote.c:1076 +#: builtin/remote.c:1085 #, c-format msgid " %-*s pushes to %s" msgstr " %-*s pousse vers %s" -#: builtin/remote.c:1144 +#: builtin/remote.c:1153 msgid "do not query remotes" msgstr "ne pas interroger les distantes" -#: builtin/remote.c:1171 +#: builtin/remote.c:1180 #, c-format msgid "* remote %s" msgstr "* distante %s" -#: builtin/remote.c:1172 +#: builtin/remote.c:1181 #, c-format msgid " Fetch URL: %s" msgstr " URL de rapatriement : %s" -#: builtin/remote.c:1173 builtin/remote.c:1318 +#: builtin/remote.c:1182 builtin/remote.c:1329 msgid "(no URL)" msgstr "(pas d'URL)" -#: builtin/remote.c:1182 builtin/remote.c:1184 +#: builtin/remote.c:1191 builtin/remote.c:1193 #, c-format msgid " Push URL: %s" msgstr " URL push : %s" -#: builtin/remote.c:1186 builtin/remote.c:1188 builtin/remote.c:1190 +#: builtin/remote.c:1195 builtin/remote.c:1197 builtin/remote.c:1199 #, c-format msgid " HEAD branch: %s" msgstr " Branche HEAD : %s" -#: builtin/remote.c:1192 +#: builtin/remote.c:1201 #, c-format msgid "" " HEAD branch (remote HEAD is ambiguous, may be one of the following):\n" @@ -8672,247 +8753,303 @@ msgstr "" " Branche HEAD (la HEAD distante est ambiguë, peut être l'une des " "suivantes) :\n" -#: builtin/remote.c:1204 +#: builtin/remote.c:1213 #, c-format msgid " Remote branch:%s" msgid_plural " Remote branches:%s" msgstr[0] " Branche distante :%s" msgstr[1] " Branches distantes :%s" -#: builtin/remote.c:1207 builtin/remote.c:1234 +#: builtin/remote.c:1216 builtin/remote.c:1243 msgid " (status not queried)" msgstr " (statut non demandé)" -#: builtin/remote.c:1216 +#: builtin/remote.c:1225 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:1224 +#: builtin/remote.c:1233 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:1231 +#: builtin/remote.c:1240 #, 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:1252 +#: builtin/remote.c:1261 msgid "set refs/remotes/<name>/HEAD according to remote" msgstr "définir refs/remotes/<nom>/HEAD selon la distante" -#: builtin/remote.c:1254 +#: builtin/remote.c:1263 msgid "delete refs/remotes/<name>/HEAD" msgstr "supprimer refs/remotes/<nom>/HEAD" -#: builtin/remote.c:1269 +#: builtin/remote.c:1278 msgid "Cannot determine remote HEAD" msgstr "Impossible de déterminer la HEAD distante" -#: builtin/remote.c:1271 +#: builtin/remote.c:1280 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:1281 +#: builtin/remote.c:1290 #, c-format msgid "Could not delete %s" msgstr "Impossible de supprimer %s" -#: builtin/remote.c:1289 +#: builtin/remote.c:1298 #, c-format msgid "Not a valid ref: %s" msgstr "Référence non valide : %s" -#: builtin/remote.c:1291 +#: builtin/remote.c:1300 #, c-format msgid "Could not setup %s" msgstr "Impossible de paramétrer %s" -#: builtin/remote.c:1307 +#: builtin/remote.c:1318 #, c-format msgid " %s will become dangling!" msgstr " %s se retrouvera en suspens !" -#: builtin/remote.c:1308 +#: builtin/remote.c:1319 #, c-format msgid " %s has become dangling!" msgstr " %s se retrouve en suspens !" -#: builtin/remote.c:1314 +#: builtin/remote.c:1325 #, c-format msgid "Pruning %s" msgstr "Élimination de %s" -#: builtin/remote.c:1315 +#: builtin/remote.c:1326 #, c-format msgid "URL: %s" msgstr "URL : %s" -#: builtin/remote.c:1328 +#: builtin/remote.c:1349 #, c-format msgid " * [would prune] %s" msgstr " * [serait éliminé] %s" -#: builtin/remote.c:1331 +#: builtin/remote.c:1352 #, c-format msgid " * [pruned] %s" msgstr " * [éliminé] %s" -#: builtin/remote.c:1374 +#: builtin/remote.c:1397 msgid "prune remotes after fetching" msgstr "éliminer les distants après le rapatriement" -#: builtin/remote.c:1440 builtin/remote.c:1514 +#: builtin/remote.c:1463 builtin/remote.c:1537 #, c-format msgid "No such remote '%s'" msgstr "Pas de serveur remote '%s'" -#: builtin/remote.c:1460 +#: builtin/remote.c:1483 msgid "add branch" msgstr "ajouter une branche" -#: builtin/remote.c:1467 +#: builtin/remote.c:1490 msgid "no remote specified" msgstr "pas de serveur distant spécifié" -#: builtin/remote.c:1489 +#: builtin/remote.c:1512 msgid "manipulate push URLs" msgstr "manipuler les URLs push" -#: builtin/remote.c:1491 +#: builtin/remote.c:1514 msgid "add URL" msgstr "ajouter une URL" -#: builtin/remote.c:1493 +#: builtin/remote.c:1516 msgid "delete URLs" msgstr "supprimer des URLs" -#: builtin/remote.c:1500 +#: builtin/remote.c:1523 msgid "--add --delete doesn't make sense" msgstr "--add --delete n'a aucun sens" -#: builtin/remote.c:1540 +#: builtin/remote.c:1563 #, c-format msgid "Invalid old URL pattern: %s" msgstr "Motif d'URL ancien invalide : %s" -#: builtin/remote.c:1548 +#: builtin/remote.c:1571 #, c-format msgid "No such URL found: %s" msgstr "Pas d'URL trouvée : %s" -#: builtin/remote.c:1550 +#: builtin/remote.c:1573 msgid "Will not delete all non-push URLs" msgstr "Pas de suppression de toutes les URLs non-push" -#: builtin/remote.c:1564 +#: builtin/remote.c:1587 msgid "be verbose; must be placed before a subcommand" msgstr "être verbeux : doit être placé avant une sous-commande" -#: builtin/repack.c:16 +#: builtin/repack.c:17 msgid "git repack [options]" msgstr "git repack [options]" -#: builtin/repack.c:156 +#: builtin/repack.c:160 msgid "pack everything in a single pack" msgstr "empaqueter tout dans un seul paquet" -#: builtin/repack.c:158 +#: builtin/repack.c:162 msgid "same as -a, and turn unreachable objects loose" msgstr "identique à -a et transformer les objets inaccessibles en suspens" -#: builtin/repack.c:161 +#: builtin/repack.c:165 msgid "remove redundant packs, and run git-prune-packed" msgstr "supprimer les paquets redondants et lancer git-prune-packed" -#: builtin/repack.c:163 +#: builtin/repack.c:167 msgid "pass --no-reuse-delta to git-pack-objects" msgstr "passer --no-reuse-delta à git-pack-objects" -#: builtin/repack.c:165 +#: builtin/repack.c:169 msgid "pass --no-reuse-object to git-pack-objects" msgstr "passer --no-reuse-object à git-pack-objects" -#: builtin/repack.c:167 +#: builtin/repack.c:171 msgid "do not run git-update-server-info" msgstr "ne pas lancer git update-server-info" -#: builtin/repack.c:170 +#: builtin/repack.c:174 msgid "pass --local to git-pack-objects" msgstr "passer --local à git-pack-objects" -#: builtin/repack.c:172 +#: builtin/repack.c:176 msgid "write bitmap index" msgstr "écrire un index en bitmap" -#: builtin/repack.c:173 +#: builtin/repack.c:177 msgid "approxidate" msgstr "date approximative" -#: builtin/repack.c:174 +#: builtin/repack.c:178 msgid "with -A, do not loosen objects older than this" msgstr "avec -A, ne pas suspendre les objets plus vieux que celui-ci" -#: builtin/repack.c:176 +#: builtin/repack.c:180 msgid "size of the window used for delta compression" msgstr "taille de la fenêtre utilisée pour la compression des deltas" -#: builtin/repack.c:177 builtin/repack.c:181 +#: builtin/repack.c:181 builtin/repack.c:185 msgid "bytes" msgstr "octets" -#: builtin/repack.c:178 +#: builtin/repack.c:182 msgid "same as the above, but limit memory size instead of entries count" msgstr "" "idem ci-dessus, mais limiter la taille mémoire au lieu du nombre d'éléments" -#: builtin/repack.c:180 +#: builtin/repack.c:184 msgid "limits the maximum delta depth" msgstr "limite la profondeur maximale des deltas" -#: builtin/repack.c:182 +#: builtin/repack.c:186 msgid "maximum size of each packfile" msgstr "taille maximum de chaque fichier paquet" -#: builtin/repack.c:184 +#: builtin/repack.c:188 msgid "repack objects in packs marked with .keep" msgstr "réempaqueter les objets dans des paquets marqués avec .keep" -#: builtin/repack.c:371 +#: builtin/repack.c:374 #, c-format msgid "removing '%s' failed" msgstr "la suppression de '%s' a échoué" -#: builtin/replace.c:17 +#: builtin/replace.c:19 msgid "git replace [-f] <object> <replacement>" msgstr "git replace [-f] <objet> <remplacement>" -#: builtin/replace.c:18 +#: builtin/replace.c:20 +msgid "git replace [-f] --edit <object>" +msgstr "git replace [-f] --edit <objet>" + +#: builtin/replace.c:21 +msgid "git replace [-f] --graft <commit> [<parent>...]" +msgstr "git replace [-f] --graft <commit> [<parent>...]" + +#: builtin/replace.c:22 msgid "git replace -d <object>..." msgstr "git replace -d <objet>..." -#: builtin/replace.c:19 +#: builtin/replace.c:23 msgid "git replace [--format=<format>] [-l [<pattern>]]" msgstr "git replace [--format=<format>] [-l [<motif>]]" -#: builtin/replace.c:174 +#: builtin/replace.c:322 builtin/replace.c:360 builtin/replace.c:388 +#, c-format +msgid "Not a valid object name: '%s'" +msgstr "Nom d'objet invalide : '%s'" + +#: builtin/replace.c:352 +#, c-format +msgid "bad mergetag in commit '%s'" +msgstr "mauvaise étiquette de fusion dans le commit '%s'" + +#: builtin/replace.c:354 +#, c-format +msgid "malformed mergetag in commit '%s'" +msgstr "étiquette de fusion malformée dans le commit '%s'" + +#: builtin/replace.c:365 +#, c-format +msgid "" +"original commit '%s' contains mergetag '%s' that is discarded; use --edit " +"instead of --graft" +msgstr "le commit original '%s' contient l'étiquette de fusion '%s' qui a disparu ; utilisez --edit au lieu de --graft" + +#: builtin/replace.c:398 +#, c-format +msgid "the original commit '%s' has a gpg signature." +msgstr "le commit original '%s' contient une signature GPG." + +#: builtin/replace.c:399 +msgid "the signature will be removed in the replacement commit!" +msgstr "la signature sera éliminée dans la validation de remplacement !" + +#: builtin/replace.c:405 +#, c-format +msgid "could not write replacement commit for: '%s'" +msgstr "Impossible d'écrire le commit de remplacement pour '%s'" + +#: builtin/replace.c:429 msgid "list replace refs" msgstr "afficher les références de remplacement" -#: builtin/replace.c:175 +#: builtin/replace.c:430 msgid "delete replace refs" msgstr "supprimer les références de remplacement" -#: builtin/replace.c:176 +#: builtin/replace.c:431 +msgid "edit existing object" +msgstr "éditer l'objet existant" + +#: builtin/replace.c:432 +msgid "change a commit's parents" +msgstr "Modifier les parents d'un commit" + +#: builtin/replace.c:433 msgid "replace the ref if it exists" msgstr "remplacer la référence si elle existe" -#: builtin/replace.c:177 +#: builtin/replace.c:434 +msgid "do not pretty-print contents for --edit" +msgstr "afficher sans mise en forme pour --edit" + +#: builtin/replace.c:435 msgid "use this format" msgstr "utiliser ce format" @@ -8981,99 +9118,101 @@ msgstr "HEAD est maintenant à %s" msgid "Cannot do a %s reset in the middle of a merge." msgstr "Impossible de faire un \"reset %s\" au milieu d'une fusion." -#: builtin/reset.c:273 +#: builtin/reset.c:275 msgid "be quiet, only report errors" msgstr "être silencieux, afficher seulement les erreurs" -#: builtin/reset.c:275 +#: builtin/reset.c:277 msgid "reset HEAD and index" msgstr "réinitialiser HEAD et l'index" -#: builtin/reset.c:276 +#: builtin/reset.c:278 msgid "reset only HEAD" msgstr "réinitialiser seulement HEAD" -#: builtin/reset.c:278 builtin/reset.c:280 +#: builtin/reset.c:280 builtin/reset.c:282 msgid "reset HEAD, index and working tree" msgstr "réinitialiser HEAD, l'index et la copie de travail" -#: builtin/reset.c:282 +#: builtin/reset.c:284 msgid "reset HEAD but keep local changes" msgstr "réinitialiser HEAD mais garder les changements locaux" -#: builtin/reset.c:285 +#: builtin/reset.c:287 msgid "record only the fact that removed paths will be added later" -msgstr "enregistrer seulement le fait que les chemins effacés seront ajoutés plus tard" +msgstr "" +"enregistrer seulement le fait que les chemins effacés seront ajoutés plus " +"tard" -#: builtin/reset.c:302 +#: builtin/reset.c:304 #, c-format msgid "Failed to resolve '%s' as a valid revision." msgstr "Échec de résolution de '%s' comme une révision valide." -#: builtin/reset.c:305 builtin/reset.c:313 +#: builtin/reset.c:307 builtin/reset.c:315 #, c-format msgid "Could not parse object '%s'." msgstr "Impossible d'analyser l'objet '%s'." -#: builtin/reset.c:310 +#: builtin/reset.c:312 #, c-format msgid "Failed to resolve '%s' as a valid tree." msgstr "Échec de résolution de '%s' comme un arbre valide." -#: builtin/reset.c:319 +#: builtin/reset.c:321 msgid "--patch is incompatible with --{hard,mixed,soft}" msgstr "--patch est incompatible avec --{hard,mixed,soft}" -#: builtin/reset.c:328 +#: builtin/reset.c:330 msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead." msgstr "" "--mixed avec des chemins est obsolète ; utilisez 'git reset -- <paths>' à la " "place." -#: builtin/reset.c:330 +#: builtin/reset.c:332 #, c-format msgid "Cannot do %s reset with paths." msgstr "Impossible de faire un \"%s reset\" avec des chemins." -#: builtin/reset.c:340 +#: builtin/reset.c:342 #, c-format msgid "%s reset is not allowed in a bare repository" msgstr "Le \"%s reset\" n'est pas permis dans un dépôt nu" -#: builtin/reset.c:344 +#: builtin/reset.c:346 msgid "-N can only be used with --mixed" msgstr "-N ne peut être utilisé qu'avec --mixed" -#: builtin/reset.c:361 +#: builtin/reset.c:363 msgid "Unstaged changes after reset:" msgstr "Modifications non indexées après reset :" -#: builtin/reset.c:367 +#: builtin/reset.c:369 #, c-format msgid "Could not reset index file to revision '%s'." msgstr "Impossible de réinitialiser le fichier d'index à la révision '%s'." -#: builtin/reset.c:372 +#: builtin/reset.c:373 msgid "Could not write new index file." msgstr "Impossible d'écrire le nouveau fichier d'index." -#: builtin/rev-parse.c:359 +#: builtin/rev-parse.c:360 msgid "git rev-parse --parseopt [options] -- [<args>...]" msgstr "git rev-parse --parseopt [options] -- [<arguments>...]" -#: builtin/rev-parse.c:364 +#: builtin/rev-parse.c:365 msgid "keep the `--` passed as an arg" msgstr "garder le `--` passé en argument" -#: builtin/rev-parse.c:366 +#: builtin/rev-parse.c:367 msgid "stop parsing after the first non-option argument" msgstr "arrêt de l'analyse après le premier argument qui n'est pas une option" -#: builtin/rev-parse.c:369 +#: builtin/rev-parse.c:370 msgid "output in stuck long form" msgstr "sortie en forme longue fixée" -#: builtin/rev-parse.c:497 +#: builtin/rev-parse.c:498 msgid "" "git rev-parse --parseopt [options] -- [<args>...]\n" " or: git rev-parse --sq-quote [<arg>...]\n" @@ -9459,11 +9598,11 @@ msgstr "supprimer la référence symbolique" msgid "shorten ref output" msgstr "raccourcir l'affichage de la référence" -#: builtin/symbolic-ref.c:43 builtin/update-ref.c:255 +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:349 msgid "reason" msgstr "raison" -#: builtin/symbolic-ref.c:43 builtin/update-ref.c:255 +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:349 msgid "reason of the update" msgstr "raison de la mise à jour" @@ -9490,203 +9629,211 @@ msgstr "" msgid "git tag -v <tagname>..." msgstr "git tag -v <nométiquette>..." -#: builtin/tag.c:67 +#: builtin/tag.c:69 #, c-format msgid "malformed object at '%s'" msgstr "objet malformé à '%s'" -#: builtin/tag.c:239 +#: builtin/tag.c:301 #, c-format msgid "tag name too long: %.*s..." msgstr "nom d'étiquette trop long : %.*s..." -#: builtin/tag.c:244 +#: builtin/tag.c:306 #, c-format msgid "tag '%s' not found." msgstr "étiquette '%s' non trouvée." -#: builtin/tag.c:259 +#: builtin/tag.c:321 #, c-format msgid "Deleted tag '%s' (was %s)\n" msgstr "Étiquette '%s' supprimée (elle était %s)\n" -#: builtin/tag.c:271 +#: builtin/tag.c:333 #, c-format msgid "could not verify the tag '%s'" msgstr "impossible de vérifier l'étiquette '%s'" -#: builtin/tag.c:281 +#: builtin/tag.c:343 #, c-format msgid "" "\n" -"Write a tag message\n" +"Write a message for tag:\n" +" %s\n" "Lines starting with '%c' will be ignored.\n" msgstr "" "\n" -"Écrire un message pour l'étiquette\n" +"Écrivez un message pour l'étiquette :\n" +" %s\n" "Les lignes commençant par '%c' seront ignorées.\n" -#: builtin/tag.c:285 +#: builtin/tag.c:347 #, c-format msgid "" "\n" -"Write a tag message\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" -"Écrire un message pour l'étiquette\n" -"Les lignes commençant par '%c' seront gardées ; vous pouvez les retirer vous-" -"même si vous le souhaitez.\n" +"Écrivez un message pour l'étiquette :\n" +" %s\n" +"Les lignes commençant par '%c' seront gardées ; vous pouvez les retirer vous-même si vous le souhaitez.\n" + +#: builtin/tag.c:371 +#, c-format +msgid "unsupported sort specification '%s'" +msgstr "spécification de tri non supportée '%s'" -#: builtin/tag.c:324 +#: builtin/tag.c:373 +#, c-format +msgid "unsupported sort specification '%s' in variable '%s'" +msgstr "spécification de tri non supportée '%s' dans le variable '%s'" + +#: builtin/tag.c:428 msgid "unable to sign the tag" msgstr "impossible de signer l'étiquette" -#: builtin/tag.c:326 +#: builtin/tag.c:430 msgid "unable to write tag file" msgstr "impossible d'écrire le fichier d'étiquettes" -#: builtin/tag.c:351 +#: builtin/tag.c:455 msgid "bad object type." msgstr "mauvais type d'objet." -#: builtin/tag.c:364 +#: builtin/tag.c:468 msgid "tag header too big." msgstr "en-tête d'étiquette trop gros." -#: builtin/tag.c:400 +#: builtin/tag.c:504 msgid "no tag message?" msgstr "pas de message pour l'étiquette ?" -#: builtin/tag.c:406 +#: builtin/tag.c:510 #, c-format msgid "The tag message has been left in %s\n" msgstr "Le message pour l'étiquette a été laissé dans %s\n" -#: builtin/tag.c:455 +#: builtin/tag.c:559 msgid "switch 'points-at' requires an object" msgstr "le commutateur 'points-at' a besoin d'un objet" -#: builtin/tag.c:457 +#: builtin/tag.c:561 #, c-format msgid "malformed object name '%s'" msgstr "nom d'objet malformé '%s'" -#: builtin/tag.c:480 -#, c-format -msgid "unsupported sort specification %s" -msgstr "spécification de tri non supportée %s" - -#: builtin/tag.c:500 +#: builtin/tag.c:588 msgid "list tag names" msgstr "afficher les noms des étiquettes" -#: builtin/tag.c:502 +#: builtin/tag.c:590 msgid "print <n> lines of each tag message" msgstr "affiche <n> lignes de chaque message d'étiquette" -#: builtin/tag.c:504 +#: builtin/tag.c:592 msgid "delete tags" msgstr "supprimer des étiquettes" -#: builtin/tag.c:505 +#: builtin/tag.c:593 msgid "verify tags" msgstr "vérifier des étiquettes" -#: builtin/tag.c:507 +#: builtin/tag.c:595 msgid "Tag creation options" msgstr "Options de création de l'étiquette" -#: builtin/tag.c:509 +#: builtin/tag.c:597 msgid "annotated tag, needs a message" msgstr "étiquette annotée, nécessite un message" -#: builtin/tag.c:511 +#: builtin/tag.c:599 msgid "tag message" msgstr "message pour l'étiquette" -#: builtin/tag.c:513 +#: builtin/tag.c:601 msgid "annotated and GPG-signed tag" msgstr "étiquette annotée et signée avec GPG" -#: builtin/tag.c:517 +#: builtin/tag.c:605 msgid "use another key to sign the tag" msgstr "utiliser une autre clé pour signer l'étiquette" -#: builtin/tag.c:518 +#: builtin/tag.c:606 msgid "replace the tag if exists" msgstr "remplacer l'étiquette si elle existe" -#: builtin/tag.c:519 +#: builtin/tag.c:607 msgid "show tag list in columns" msgstr "afficher la liste des étiquettes sous forme de colonnes" -#: builtin/tag.c:521 +#: builtin/tag.c:609 msgid "sort tags" msgstr "trier les étiquettes" -#: builtin/tag.c:525 +#: builtin/tag.c:613 msgid "Tag listing options" msgstr "Options d'affichage des étiquettes" -#: builtin/tag.c:528 builtin/tag.c:534 +#: builtin/tag.c:616 builtin/tag.c:622 msgid "print only tags that contain the commit" msgstr "afficher seulement les étiquettes qui contiennent la validation" -#: builtin/tag.c:540 +#: builtin/tag.c:628 msgid "print only tags of the object" msgstr "afficher seulement les étiquettes de l'objet" -#: builtin/tag.c:566 +#: builtin/tag.c:654 msgid "--column and -n are incompatible" msgstr "--column et -n sont incompatibles" -#: builtin/tag.c:578 +#: builtin/tag.c:666 msgid "--sort and -n are incompatible" msgstr "--sort et -n sont incompatibles" -#: builtin/tag.c:585 +#: builtin/tag.c:673 msgid "-n option is only allowed with -l." msgstr "l'option -n est autorisée seulement avec -l." -#: builtin/tag.c:587 +#: builtin/tag.c:675 msgid "--contains option is only allowed with -l." msgstr "l'option --contains est autorisée seulement avec -l." -#: builtin/tag.c:589 +#: builtin/tag.c:677 msgid "--points-at option is only allowed with -l." msgstr "l'option --points-at est autorisée seulement avec -l." -#: builtin/tag.c:597 +#: builtin/tag.c:685 msgid "only one -F or -m option is allowed." msgstr "une seule option -F ou -m est autorisée." -#: builtin/tag.c:617 +#: builtin/tag.c:705 msgid "too many params" msgstr "trop de paramètres" -#: builtin/tag.c:623 +#: builtin/tag.c:711 #, c-format msgid "'%s' is not a valid tag name." msgstr "'%s' n'est pas un nom d'étiquette valide." -#: builtin/tag.c:628 +#: builtin/tag.c:716 #, c-format msgid "tag '%s' already exists" msgstr "l'étiquette '%s' existe déjà " -#: builtin/tag.c:646 +#: builtin/tag.c:734 #, c-format msgid "%s: cannot lock the ref" msgstr "%s : impossible de verrouiller la référence" -#: builtin/tag.c:648 +#: builtin/tag.c:736 #, c-format msgid "%s: cannot update the ref" msgstr "%s : impossible de mettre à jour la référence" -#: builtin/tag.c:650 +#: builtin/tag.c:738 #, c-format msgid "Updated tag '%s' (was %s)\n" msgstr "Étiquette '%s' mise à jour (elle était %s)\n" @@ -9695,122 +9842,126 @@ msgstr "Étiquette '%s' mise à jour (elle était %s)\n" msgid "Unpacking objects" msgstr "Dépaquetage des objets" -#: builtin/update-index.c:399 +#: builtin/update-index.c:402 msgid "git update-index [options] [--] [<file>...]" msgstr "git update-index [options] [--] [<fichier>...]" -#: builtin/update-index.c:748 +#: builtin/update-index.c:755 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:751 +#: builtin/update-index.c:758 msgid "refresh: ignore submodules" msgstr "rafraîchir : ignorer les sous-modules" -#: builtin/update-index.c:754 +#: builtin/update-index.c:761 msgid "do not ignore new files" msgstr "ne pas ignorer les nouveaux fichiers" -#: builtin/update-index.c:756 +#: builtin/update-index.c:763 msgid "let files replace directories and vice-versa" msgstr "laisser les fichiers remplacer des répertoires et vice-versa" -#: builtin/update-index.c:758 +#: builtin/update-index.c:765 msgid "notice files missing from worktree" msgstr "aviser des fichiers manquants dans la copie de travail" -#: builtin/update-index.c:760 +#: builtin/update-index.c:767 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:763 +#: builtin/update-index.c:770 msgid "refresh stat information" msgstr "rafraîchir l'information de stat" -#: builtin/update-index.c:767 +#: builtin/update-index.c:774 msgid "like --refresh, but ignore assume-unchanged setting" msgstr "comme --refresh, mais en ignorant l'option assume-unchanged" -#: builtin/update-index.c:771 +#: builtin/update-index.c:778 msgid "<mode>,<object>,<path>" msgstr "<mode>, <objet>, <chemin>" -#: builtin/update-index.c:772 +#: builtin/update-index.c:779 msgid "add the specified entry to the index" msgstr "ajouter l'élément spécifié dans l'index" -#: builtin/update-index.c:776 +#: builtin/update-index.c:783 msgid "(+/-)x" msgstr "(+/-)x" -#: builtin/update-index.c:777 +#: builtin/update-index.c:784 msgid "override the executable bit of the listed files" msgstr "outrepasser le bit exécutable pour les fichiers listés" -#: builtin/update-index.c:781 +#: builtin/update-index.c:788 msgid "mark files as \"not changing\"" msgstr "marquer les fichiers comme \"non changeants\"" -#: builtin/update-index.c:784 +#: builtin/update-index.c:791 msgid "clear assumed-unchanged bit" msgstr "mettre à zéro le bit supposé-non-modifié" -#: builtin/update-index.c:787 +#: builtin/update-index.c:794 msgid "mark files as \"index-only\"" msgstr "marquer les fichiers comme \"index seulement\"" -#: builtin/update-index.c:790 +#: builtin/update-index.c:797 msgid "clear skip-worktree bit" msgstr "mettre à zéro le bit sauter-la-copie-de travail" -#: builtin/update-index.c:793 +#: builtin/update-index.c:800 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:795 +#: builtin/update-index.c:802 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:797 +#: builtin/update-index.c:804 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:799 +#: builtin/update-index.c:806 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:803 +#: builtin/update-index.c:810 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:807 +#: builtin/update-index.c:814 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:811 +#: builtin/update-index.c:818 msgid "only update entries that differ from HEAD" msgstr "mettre à jour seulement les éléments qui diffèrent de HEAD" -#: builtin/update-index.c:815 +#: builtin/update-index.c:822 msgid "ignore files missing from worktree" msgstr "ignorer les fichiers manquants dans la copie de travail" -#: builtin/update-index.c:818 +#: builtin/update-index.c:825 msgid "report actions to standard output" msgstr "afficher les actions sur la sortie standard" -#: builtin/update-index.c:820 +#: builtin/update-index.c:827 msgid "(for porcelains) forget saved unresolved conflicts" msgstr "(pour porcelaines) oublier les conflits sauvés et non résolus" -#: builtin/update-index.c:824 +#: builtin/update-index.c:831 msgid "write index in this format" msgstr "écrire l'index dans ce format" +#: builtin/update-index.c:833 +msgid "enable or disable split index" +msgstr "activer ou désactiver l'index divisé" + #: builtin/update-ref.c:9 msgid "git update-ref [options] -d <refname> [<oldval>]" msgstr "git update-ref [options] -d <nomréférence> [<anciennevaleur>]" @@ -9825,19 +9976,19 @@ msgstr "" msgid "git update-ref [options] --stdin [-z]" msgstr "git update-ref [options] --stdin [-z]" -#: builtin/update-ref.c:256 +#: builtin/update-ref.c:350 msgid "delete the reference" msgstr "supprimer la référence" -#: builtin/update-ref.c:258 +#: builtin/update-ref.c:352 msgid "update <refname> not the one it points to" msgstr "mettre à jour <nomréférence> et non la référence pointée par lui" -#: builtin/update-ref.c:259 +#: builtin/update-ref.c:353 msgid "stdin has NUL-terminated arguments" msgstr "l'entrée standard a des arguments qui se terminent par NUL" -#: builtin/update-ref.c:260 +#: builtin/update-ref.c:354 msgid "read updates from stdin" msgstr "lire les mises à jour depuis l'entrée standard" @@ -9849,15 +10000,23 @@ msgstr "git update-server-info [--force]" msgid "update the info files from scratch" msgstr "mettre à jour les fichiers d'information à partir de zéro" -#: builtin/verify-pack.c:56 +#: builtin/verify-commit.c:17 +msgid "git verify-commit [-v|--verbose] <commit>..." +msgstr "git verify-commit [-v|--verbose] <commit>..." + +#: builtin/verify-commit.c:75 +msgid "print commit contents" +msgstr "afficher le contenu du commit" + +#: builtin/verify-pack.c:55 msgid "git verify-pack [-v|--verbose] [-s|--stat-only] <pack>..." msgstr "git verify-pack [-v|--verbose] [-s|--stat-only] <pack>..." -#: builtin/verify-pack.c:66 +#: builtin/verify-pack.c:65 msgid "verbose" msgstr "verbeux" -#: builtin/verify-pack.c:68 +#: builtin/verify-pack.c:67 msgid "show statistics only" msgstr "afficher seulement les statistiques" @@ -10357,13 +10516,13 @@ msgstr "" msgid "Pull is not possible because you have unmerged files." msgstr "Le pull n'est pas possible car vous avez des fichiers non fusionnés." -#: git-pull.sh:247 +#: git-pull.sh:245 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" -#: git-pull.sh:271 +#: git-pull.sh:269 #, sh-format msgid "" "Warning: fetch updated the current branch head.\n" @@ -10374,11 +10533,11 @@ msgstr "" "Attention : mise à jour en avance rapide de votre copie de travail\n" "Attention : depuis la validation $orig_head." -#: git-pull.sh:296 +#: git-pull.sh:294 msgid "Cannot merge multiple branches into empty head" msgstr "Impossible de fusionner de multiples branches sur une tête vide" -#: git-pull.sh:300 +#: git-pull.sh:298 msgid "Cannot rebase onto multiple branches" msgstr "Impossible de rebaser sur de multiples branches" @@ -10394,16 +10553,16 @@ msgstr "" "Pour extraire la branche d'origine et stopper le rebasage, lancez \"git " "rebase --abort\"." -#: git-rebase.sh:164 +#: git-rebase.sh:165 msgid "Applied autostash." msgstr "Autoremisage appliqué." -#: git-rebase.sh:167 +#: git-rebase.sh:168 #, sh-format msgid "Cannot store $stash_sha1" msgstr "Impossible de stocker $stash_sha1" -#: git-rebase.sh:168 +#: git-rebase.sh:169 msgid "" "Applying autostash resulted in conflicts.\n" "Your changes are safe in the stash.\n" @@ -10413,33 +10572,33 @@ msgstr "" "Vos modifications sont à l'abri dans la remise.\n" "Vous pouvez lancer \"git stash pop\" ou \"git stash drop\" à tout moment.\n" -#: git-rebase.sh:207 +#: git-rebase.sh:208 msgid "The pre-rebase hook refused to rebase." msgstr "Le crochet pre-rebase a refusé de rebaser." -#: git-rebase.sh:212 +#: git-rebase.sh:213 msgid "It looks like git-am is in progress. Cannot rebase." msgstr "Il semble que git-am soit en cours. Impossible de rebaser." -#: git-rebase.sh:350 +#: git-rebase.sh:351 msgid "The --exec option must be used with the --interactive option" msgstr "L'option --exec doit être utilisée avec l'option --interactive" -#: git-rebase.sh:355 +#: git-rebase.sh:356 msgid "No rebase in progress?" msgstr "Pas de rebasage en cours ?" -#: git-rebase.sh:366 +#: git-rebase.sh:367 msgid "The --edit-todo action can only be used during interactive rebase." msgstr "" "L'action --edit-todo peut seulement être utilisée lors d'un rebasage " "interactif." -#: git-rebase.sh:373 +#: git-rebase.sh:374 msgid "Cannot read HEAD" msgstr "Impossible de lire HEAD" -#: git-rebase.sh:376 +#: git-rebase.sh:377 msgid "" "You must edit all merge conflicts and then\n" "mark them as resolved using git add" @@ -10447,12 +10606,12 @@ msgstr "" "Vous devez éditer tous les conflits de fusion et\n" "les marquer comme résolus avec git add" -#: git-rebase.sh:394 +#: git-rebase.sh:395 #, sh-format msgid "Could not move back to $head_name" msgstr "Impossible de revenir à $head_name" -#: git-rebase.sh:413 +#: git-rebase.sh:414 #, sh-format msgid "" "It seems that there is already a $state_dir_base directory, and\n" @@ -10474,65 +10633,65 @@ msgstr "" "chose\n" "d'important ici." -#: git-rebase.sh:464 +#: git-rebase.sh:465 #, sh-format msgid "invalid upstream $upstream_name" msgstr "invalide $upstream_name en amont" -#: git-rebase.sh:488 +#: git-rebase.sh:489 #, sh-format msgid "$onto_name: there are more than one merge bases" msgstr "$onto_name : il y a plus d'une base de fusion" -#: git-rebase.sh:491 git-rebase.sh:495 +#: git-rebase.sh:492 git-rebase.sh:496 #, sh-format msgid "$onto_name: there is no merge base" msgstr "$onto_name : il n'y a pas de base de fusion" -#: git-rebase.sh:500 +#: git-rebase.sh:501 #, sh-format msgid "Does not point to a valid commit: $onto_name" msgstr "Ne pointe pas sur une validation valide : $onto_name" -#: git-rebase.sh:523 +#: git-rebase.sh:524 #, sh-format msgid "fatal: no such branch: $branch_name" msgstr "fatal : pas de branche : $branch_name" -#: git-rebase.sh:556 +#: git-rebase.sh:557 msgid "Cannot autostash" msgstr "Autoremisage impossible" -#: git-rebase.sh:561 +#: git-rebase.sh:562 #, sh-format msgid "Created autostash: $stash_abbrev" msgstr "Autoremisage créé : $stash_abbrev" -#: git-rebase.sh:565 +#: git-rebase.sh:566 msgid "Please commit or stash them." msgstr "Veuillez les valider ou les remiser." -#: git-rebase.sh:585 +#: git-rebase.sh:586 #, sh-format msgid "Current branch $branch_name is up to date." msgstr "La branche courante $branch_name est à jour." -#: git-rebase.sh:589 +#: git-rebase.sh:590 #, sh-format msgid "Current branch $branch_name is up to date, rebase forced." msgstr "La branche courante $branch_name est à jour, rebasage forcé." -#: git-rebase.sh:600 +#: git-rebase.sh:601 #, sh-format msgid "Changes from $mb to $onto:" msgstr "Changements de $mb sur $onto :" -#: git-rebase.sh:609 +#: git-rebase.sh:610 msgid "First, rewinding head to replay your work on top of it..." msgstr "" "Premièrement, rembobinons head pour rejouer votre travail par-dessus..." -#: git-rebase.sh:619 +#: git-rebase.sh:620 #, sh-format msgid "Fast-forwarded $branch_name to $onto_name." msgstr "$branch_name mise à jour en avance rapide sur $onto_name." @@ -10549,23 +10708,23 @@ msgstr "Vous n'avez pas encore la validation initiale" msgid "Cannot save the current index state" msgstr "Impossible de sauver l'état courant de l'index" -#: git-stash.sh:123 git-stash.sh:136 +#: git-stash.sh:124 git-stash.sh:137 msgid "Cannot save the current worktree state" msgstr "Impossible de sauver l'état courant de la copie de travail" -#: git-stash.sh:140 +#: git-stash.sh:141 msgid "No changes selected" msgstr "Aucun changement sélectionné" -#: git-stash.sh:143 +#: git-stash.sh:144 msgid "Cannot remove temporary index (can't happen)" msgstr "Impossible de supprimer l'index temporaire (ne peut pas se produire)" -#: git-stash.sh:156 +#: git-stash.sh:157 msgid "Cannot record working tree state" msgstr "Impossible d'enregistrer l'état de la copie de travail" -#: git-stash.sh:190 +#: git-stash.sh:191 #, sh-format msgid "Cannot update $ref_stash with $w_commit" msgstr "Impossible de mettre à jour $ref_stash avec $w_commit" @@ -10580,7 +10739,7 @@ msgstr "Impossible de mettre à jour $ref_stash avec $w_commit" #. $ 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:237 +#: git-stash.sh:238 #, sh-format msgid "" "error: unknown option for 'stash save': $option\n" @@ -10589,85 +10748,85 @@ msgstr "" "erreur: option inconnue pour 'stash save': $option\n" " Pour fournir un message, utilisez git stash save -- '$option'" -#: git-stash.sh:258 +#: git-stash.sh:259 msgid "No local changes to save" msgstr "Pas de modifications locales à sauver" -#: git-stash.sh:262 +#: git-stash.sh:263 msgid "Cannot initialize stash" msgstr "Impossible d'initialiser le remisage" -#: git-stash.sh:266 +#: git-stash.sh:267 msgid "Cannot save the current status" msgstr "Impossible de sauver le statut courant" -#: git-stash.sh:284 +#: git-stash.sh:285 msgid "Cannot remove worktree changes" msgstr "Impossible de supprimer les changements de la copie de travail" -#: git-stash.sh:383 +#: git-stash.sh:384 msgid "No stash found." msgstr "Pas de remisage trouvé." -#: git-stash.sh:390 +#: git-stash.sh:391 #, sh-format msgid "Too many revisions specified: $REV" msgstr "Trop de révisions spécifiées : $REV" -#: git-stash.sh:396 +#: git-stash.sh:397 #, sh-format msgid "$reference is not valid reference" msgstr "$reference n'est pas une référence valide" -#: git-stash.sh:424 +#: git-stash.sh:425 #, sh-format msgid "'$args' is not a stash-like commit" msgstr "'$args' n'est pas une validation de type remisage" -#: git-stash.sh:435 +#: git-stash.sh:436 #, sh-format msgid "'$args' is not a stash reference" msgstr "'$args' n'est pas une référence de remisage" -#: git-stash.sh:443 +#: git-stash.sh:444 msgid "unable to refresh index" msgstr "impossible de rafraîchir l'index" -#: git-stash.sh:447 +#: git-stash.sh:448 msgid "Cannot apply a stash in the middle of a merge" msgstr "Impossible d'appliquer un remisage en cours de fusion" -#: git-stash.sh:455 +#: git-stash.sh:456 msgid "Conflicts in index. Try without --index." msgstr "Conflits dans l'index. Essayez sans --index." -#: git-stash.sh:457 +#: git-stash.sh:458 msgid "Could not save index tree" msgstr "Impossible de sauvegarder l'arbre d'index" -#: git-stash.sh:491 +#: git-stash.sh:492 msgid "Cannot unstage modified files" msgstr "Impossible de désindexer les fichiers modifiés" -#: git-stash.sh:506 +#: git-stash.sh:507 msgid "Index was not unstashed." msgstr "L'index n'a pas été sorti de remise." -#: git-stash.sh:529 +#: git-stash.sh:530 #, sh-format msgid "Dropped ${REV} ($s)" msgstr "${REV} supprimé ($s)" -#: git-stash.sh:530 +#: git-stash.sh:531 #, sh-format msgid "${REV}: Could not drop stash entry" msgstr "${REV}: Impossible de supprimer l'élément de stash" -#: git-stash.sh:537 +#: git-stash.sh:538 msgid "No branch name specified" msgstr "Aucune branche spécifiée" -#: git-stash.sh:609 +#: git-stash.sh:610 msgid "(To restore them type \"git stash apply\")" msgstr "(Pour les restaurer tapez \"git stash apply\")" @@ -10688,30 +10847,30 @@ msgstr "" msgid "Clone of '$url' into submodule path '$sm_path' failed" msgstr "Le clonage de '$url' dans le chemin de sous-module '$sm_path' a échoué" -#: git-submodule.sh:299 +#: git-submodule.sh:296 #, sh-format msgid "Gitdir '$a' is part of the submodule path '$b' or vice versa" msgstr "" "Le répertoire Git '$a' fait partie du chemin de sous-module '$b' ou vice-" "versa" -#: git-submodule.sh:409 +#: git-submodule.sh:406 msgid "Relative path can only be used from the toplevel of the working tree" msgstr "" "Un chemin relatif ne peut être utilisé que depuis la racine de la copie de " "travail" -#: git-submodule.sh:419 +#: git-submodule.sh:416 #, sh-format msgid "repo URL: '$repo' must be absolute or begin with ./|../" msgstr "L'URL de dépôt '$repo' doit être absolu ou commencer par ./|../" -#: git-submodule.sh:436 +#: git-submodule.sh:433 #, sh-format msgid "'$sm_path' already exists in the index" msgstr "'$sm_path' existe déjà dans l'index" -#: git-submodule.sh:440 +#: git-submodule.sh:437 #, sh-format msgid "" "The following path is ignored by one of your .gitignore files:\n" @@ -10722,24 +10881,24 @@ msgstr "" "$sm_path\n" "Utilisez -f si vous voulez vraiment l'ajouter." -#: git-submodule.sh:458 +#: git-submodule.sh:455 #, sh-format msgid "Adding existing repo at '$sm_path' to the index" msgstr "Ajout du dépôt existant à '$sm_path' dans l'index" -#: git-submodule.sh:460 +#: git-submodule.sh:457 #, sh-format msgid "'$sm_path' already exists and is not a valid git repo" msgstr "'$sm_path' existe déjà et n'est pas un dépôt git valide" -#: git-submodule.sh:468 +#: git-submodule.sh:465 #, sh-format msgid "A git directory for '$sm_name' is found locally with remote(s):" msgstr "" "Un répertoire git pour '$sm_name' est trouvé en local avec le(s) serveur(s) " "distant(s) :" -#: git-submodule.sh:470 +#: git-submodule.sh:467 #, sh-format msgid "" "If you want to reuse this local git directory instead of cloning again from" @@ -10747,7 +10906,7 @@ msgstr "" "Si vous voulez réutiliser ce répertoire git local au lieu de cloner à " "nouveau depuis" -#: git-submodule.sh:472 +#: git-submodule.sh:469 #, sh-format msgid "" "use the '--force' option. If the local git directory is not the correct repo" @@ -10755,7 +10914,7 @@ msgstr "" "utilisez l'option '--force'. Si le répertoire local git n'est pas le dépôt " "correct" -#: git-submodule.sh:473 +#: git-submodule.sh:470 #, sh-format msgid "" "or you are unsure what this means choose another name with the '--name' " @@ -10764,74 +10923,74 @@ msgstr "" "ou vous ne savez pas ce que cela signifie de choisir un autre nom avec " "l'option '--name'." -#: git-submodule.sh:475 +#: git-submodule.sh:472 #, sh-format msgid "Reactivating local git directory for submodule '$sm_name'." msgstr "Réactivation du répertoire git local pour le sous-module '$sm_name'." -#: git-submodule.sh:487 +#: git-submodule.sh:484 #, sh-format msgid "Unable to checkout submodule '$sm_path'" msgstr "Impossible d'extraire le sous-module '$sm_path'" -#: git-submodule.sh:492 +#: git-submodule.sh:489 #, sh-format msgid "Failed to add submodule '$sm_path'" msgstr "Échec d'ajout du sous-module '$sm_path'" -#: git-submodule.sh:501 +#: git-submodule.sh:498 #, sh-format msgid "Failed to register submodule '$sm_path'" msgstr "Échec d'enregistrement du sous-module '$sm_path'" -#: git-submodule.sh:545 +#: git-submodule.sh:542 #, sh-format msgid "Entering '$prefix$displaypath'" msgstr "Entrée dans '$prefix$displaypath'" -#: git-submodule.sh:565 +#: git-submodule.sh:562 #, sh-format msgid "Stopping at '$prefix$displaypath'; script returned non-zero status." msgstr "" "Arrêt sur '$prefix$displaypath' ; le script a retourné un statut non nul." -#: git-submodule.sh:611 +#: git-submodule.sh:608 #, sh-format msgid "No url found for submodule path '$displaypath' in .gitmodules" msgstr "" "URL non trouvée pour le chemin de sous-module '$displaypath' dans .gitmodules" -#: git-submodule.sh:620 +#: git-submodule.sh:617 #, sh-format msgid "Failed to register url for submodule path '$displaypath'" msgstr "" "Échec d'enregistrement de l'URL pour le chemin de sous-module '$displaypath'" -#: git-submodule.sh:622 +#: git-submodule.sh:619 #, sh-format msgid "Submodule '$name' ($url) registered for path '$displaypath'" msgstr "Sous-module '$name' ($url) enregistré pour le chemin '$displaypath'" -#: git-submodule.sh:639 +#: git-submodule.sh:636 #, sh-format msgid "Failed to register update mode for submodule path '$displaypath'" msgstr "" "Échec d'enregistrement du mode de mise à jour pour le chemin de sous-module " "'$displaypath'" -#: git-submodule.sh:677 +#: git-submodule.sh:674 #, sh-format msgid "Use '.' if you really want to deinitialize all submodules" msgstr "" "Utilisez '.' si vous voulez vraiment réinitialiser tous les sous-modules" -#: git-submodule.sh:694 +#: git-submodule.sh:691 #, sh-format msgid "Submodule work tree '$displaypath' contains a .git directory" msgstr "" "La copie de travail du sous-module '$displaypath' contient un répertoire .git" -#: git-submodule.sh:695 +#: git-submodule.sh:692 #, sh-format msgid "" "(use 'rm -rf' if you really want to remove it including all of its history)" @@ -10839,7 +10998,7 @@ msgstr "" "(utilisez 'rm -rf' si vous voulez vraiment le supprimer en incluant tout son " "historique)" -#: git-submodule.sh:701 +#: git-submodule.sh:698 #, sh-format msgid "" "Submodule work tree '$displaypath' contains local modifications; use '-f' to " @@ -10848,30 +11007,30 @@ msgstr "" "La copie de travail du sous-module '$displaypath' contient des modifications " "locales ; utilisez '-f' pour les annuler" -#: git-submodule.sh:704 +#: git-submodule.sh:701 #, sh-format msgid "Cleared directory '$displaypath'" msgstr "Répertoire '$displaypath' nettoyé" -#: git-submodule.sh:705 +#: git-submodule.sh:702 #, sh-format msgid "Could not remove submodule work tree '$displaypath'" msgstr "" "Impossible de supprimer la copie de travail du sous-module '$displaypath'" -#: git-submodule.sh:708 +#: git-submodule.sh:705 #, sh-format msgid "Could not create empty submodule directory '$displaypath'" msgstr "Impossible de créer le répertoire vide du sous-module '$displaypath'" -#: git-submodule.sh:717 +#: git-submodule.sh:714 #, sh-format msgid "Submodule '$name' ($url) unregistered for path '$displaypath'" msgstr "" "Le sous-module '$name' ($url) n'est pas enregistré pour le chemin " "'$displaypath'" -#: git-submodule.sh:833 +#: git-submodule.sh:830 #, sh-format msgid "" "Submodule path '$displaypath' not initialized\n" @@ -10880,57 +11039,57 @@ msgstr "" "Chemin de sous-module '$displaypath' non initialisé\n" "Peut-être souhaitez-vous utiliser 'update --init' ?" -#: git-submodule.sh:846 +#: git-submodule.sh:843 #, 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:855 +#: git-submodule.sh:852 #, 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:879 +#: git-submodule.sh:876 #, sh-format msgid "Unable to fetch in submodule path '$displaypath'" msgstr "Impossible de rapatrier dans le chemin de sous-module '$displaypath'" -#: git-submodule.sh:893 +#: git-submodule.sh:890 #, 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:894 +#: git-submodule.sh:891 #, sh-format msgid "Submodule path '$displaypath': checked out '$sha1'" msgstr "Chemin de sous-module '$displaypath' : '$sha1' extrait" -#: git-submodule.sh:898 +#: git-submodule.sh:895 #, 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:899 +#: git-submodule.sh:896 #, sh-format msgid "Submodule path '$displaypath': rebased into '$sha1'" msgstr "Chemin de sous-module '$displaypath' : rebasé dans '$sha1'" -#: git-submodule.sh:904 +#: git-submodule.sh:901 #, 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:905 +#: git-submodule.sh:902 #, sh-format msgid "Submodule path '$displaypath': merged in '$sha1'" msgstr "Chemin de sous-module '$displaypath' : fusionné dans '$sha1'" -#: git-submodule.sh:910 +#: git-submodule.sh:907 #, sh-format msgid "" "Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'" @@ -10938,56 +11097,62 @@ msgstr "" "L'exécution de '$command $sha1' a échoué dans le chemin de sous-module " "'$prefix$sm_path'" -#: git-submodule.sh:911 +#: git-submodule.sh:908 #, sh-format msgid "Submodule path '$prefix$sm_path': '$command $sha1'" msgstr "Chemin de sous-module '$prefix$sm_path' : '$command $sha1'" -#: git-submodule.sh:941 +#: git-submodule.sh:938 #, sh-format msgid "Failed to recurse into submodule path '$displaypath'" msgstr "Échec de parcours dans le chemin du sous-module '$displaypath'" -#: git-submodule.sh:1049 +#: git-submodule.sh:1046 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:1097 +#: git-submodule.sh:1098 #, sh-format msgid "unexpected mode $mod_dst" msgstr "mode $mod_dst inattendu" -#: git-submodule.sh:1117 +#: git-submodule.sh:1118 #, 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:1120 +#: git-submodule.sh:1121 #, 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:1123 +#: git-submodule.sh:1124 #, 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:1148 +#: git-submodule.sh:1149 msgid "blob" msgstr "blob" -#: git-submodule.sh:1262 +#: git-submodule.sh:1267 #, 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:1326 +#: git-submodule.sh:1331 #, sh-format msgid "Synchronizing submodule url for '$displaypath'" msgstr "Synchronisation de l'URL sous-module pour '$displaypath'" +#~ msgid "commit has empty message" +#~ msgstr "le commit a un message vide" + +#~ msgid "Failed to chdir: %s" +#~ msgstr "Échec de chdir: %s" + #~ msgid "Tracking not set up: name too long: %s" #~ msgstr "Suivi de branche non paramétré : le nom est trop long : %s" diff --git a/po/git.pot b/po/git.pot index 1407f06e8d..1c8309a887 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: 2014-04-19 12:50+0800\n" +"POT-Creation-Date: 2014-08-04 14:48+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" @@ -23,12 +23,11 @@ msgstr "" msgid "hint: %.*s\n" msgstr "" -#: advice.c:85 +#: advice.c:88 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'." +"Fix them up in the work tree, and then use 'git add/rm <file>'\n" +"as appropriate to mark resolution and make a commit, or use\n" +"'git commit -a'." msgstr "" #: archive.c:10 @@ -48,7 +47,7 @@ msgstr "" msgid "git archive --remote <repo> [--exec <cmd>] --list" msgstr "" -#: archive.c:243 builtin/add.c:136 builtin/add.c:428 builtin/rm.c:328 +#: archive.c:243 builtin/add.c:136 builtin/add.c:427 builtin/rm.c:328 #, c-format msgid "pathspec '%s' did not match any files" msgstr "" @@ -61,7 +60,7 @@ msgstr "" msgid "archive format" msgstr "" -#: archive.c:329 builtin/log.c:1193 +#: archive.c:329 builtin/log.c:1201 msgid "prefix" msgstr "" @@ -69,9 +68,9 @@ msgstr "" msgid "prepend prefix to each pathname in the archive" msgstr "" -#: archive.c:331 builtin/archive.c:88 builtin/blame.c:2258 -#: builtin/blame.c:2259 builtin/config.c:57 builtin/fast-export.c:680 -#: builtin/fast-export.c:682 builtin/grep.c:714 builtin/hash-object.c:77 +#: archive.c:331 builtin/archive.c:88 builtin/blame.c:2517 +#: builtin/blame.c:2518 builtin/config.c:57 builtin/fast-export.c:709 +#: builtin/fast-export.c:711 builtin/grep.c:712 builtin/hash-object.c:77 #: builtin/ls-files.c:489 builtin/ls-files.c:492 builtin/notes.c:412 #: builtin/notes.c:569 builtin/read-tree.c:108 parse-options.h:151 msgid "file" @@ -246,7 +245,7 @@ msgstr "" msgid "unrecognized header: %s%s (%d)" msgstr "" -#: bundle.c:86 builtin/commit.c:706 +#: bundle.c:86 builtin/commit.c:755 #, c-format msgid "could not open '%s'" msgstr "" @@ -255,8 +254,8 @@ msgstr "" msgid "Repository lacks these prerequisite commits:" msgstr "" -#: bundle.c:162 sequencer.c:669 sequencer.c:1123 builtin/log.c:332 -#: builtin/log.c:821 builtin/log.c:1418 builtin/log.c:1644 builtin/merge.c:357 +#: bundle.c:162 sequencer.c:630 sequencer.c:1085 builtin/log.c:330 +#: builtin/log.c:821 builtin/log.c:1428 builtin/log.c:1665 builtin/merge.c:357 #: builtin/shortlog.c:158 msgid "revision walk setup failed" msgstr "" @@ -279,47 +278,47 @@ msgid_plural "The bundle requires these %d refs:" msgstr[0] "" msgstr[1] "" -#: bundle.c:293 +#: bundle.c:289 msgid "rev-list died" msgstr "" -#: bundle.c:299 builtin/log.c:1329 builtin/shortlog.c:261 +#: bundle.c:295 builtin/log.c:1339 builtin/shortlog.c:261 #, c-format msgid "unrecognized argument: %s" msgstr "" -#: bundle.c:334 +#: bundle.c:330 #, c-format msgid "ref '%s' is excluded by the rev-list options" msgstr "" -#: bundle.c:379 +#: bundle.c:375 msgid "Refusing to create empty bundle." msgstr "" -#: bundle.c:395 +#: bundle.c:390 msgid "Could not spawn pack-objects" msgstr "" -#: bundle.c:413 +#: bundle.c:408 msgid "pack-objects died" msgstr "" -#: bundle.c:416 +#: bundle.c:411 #, c-format msgid "cannot create '%s'" msgstr "" -#: bundle.c:438 +#: bundle.c:433 msgid "index-pack died" msgstr "" -#: commit.c:54 +#: commit.c:40 #, c-format msgid "could not parse %s" msgstr "" -#: commit.c:56 +#: commit.c:42 #, c-format msgid "%s %s is not a commit!" msgstr "" @@ -415,91 +414,100 @@ msgstr[1] "" msgid "failed to read orderfile '%s'" msgstr "" -#: diffcore-rename.c:517 +#: diffcore-rename.c:514 msgid "Performing inexact rename detection" msgstr "" -#: diff.c:113 +#: diff.c:114 #, c-format msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr "" -#: diff.c:118 +#: diff.c:119 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr "" -#: diff.c:213 +#: diff.c:214 #, c-format msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "" -#: diff.c:263 +#: diff.c:267 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" "%s" msgstr "" -#: diff.c:3495 +#: diff.c:2934 +#, c-format +msgid "external diff died, stopping at %s" +msgstr "" + +#: diff.c:3329 +msgid "--follow requires exactly one pathspec" +msgstr "" + +#: diff.c:3492 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" "%s" msgstr "" -#: diff.c:3509 +#: diff.c:3506 #, c-format msgid "Failed to parse --submodule option parameter: '%s'" msgstr "" -#: gpg-interface.c:59 gpg-interface.c:131 +#: gpg-interface.c:73 gpg-interface.c:145 msgid "could not run gpg." msgstr "" -#: gpg-interface.c:71 +#: gpg-interface.c:85 msgid "gpg did not accept the data" msgstr "" -#: gpg-interface.c:82 +#: gpg-interface.c:96 msgid "gpg failed to sign the data" msgstr "" -#: gpg-interface.c:115 +#: gpg-interface.c:129 #, c-format msgid "could not create temporary file '%s': %s" msgstr "" -#: gpg-interface.c:118 +#: gpg-interface.c:132 #, c-format msgid "failed writing detached signature to '%s': %s" msgstr "" -#: grep.c:1698 +#: grep.c:1703 #, c-format msgid "'%s': unable to read %s" msgstr "" -#: grep.c:1715 +#: grep.c:1720 #, c-format msgid "'%s': %s" msgstr "" -#: grep.c:1726 +#: grep.c:1731 #, c-format msgid "'%s': short read %s" msgstr "" -#: help.c:209 +#: help.c:207 #, c-format msgid "available git commands in '%s'" msgstr "" -#: help.c:216 +#: help.c:214 msgid "git commands available from elsewhere on your $PATH" msgstr "" -#: help.c:232 +#: help.c:230 msgid "The most commonly used git commands are:" msgstr "" @@ -531,7 +539,7 @@ msgstr "" msgid "git: '%s' is not a git command. See 'git --help'." msgstr "" -#: help.c:384 help.c:443 +#: help.c:384 help.c:444 msgid "" "\n" "Did you mean this?" @@ -541,16 +549,16 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: help.c:439 +#: help.c:440 #, c-format msgid "%s: %s - %s" msgstr "" -#: merge.c:56 +#: merge.c:40 msgid "failed to read the cache" msgstr "" -#: merge.c:110 builtin/checkout.c:357 builtin/checkout.c:558 +#: merge.c:93 builtin/checkout.c:356 builtin/checkout.c:556 #: builtin/clone.c:661 msgid "unable to write new index file" msgstr "" @@ -560,7 +568,7 @@ msgstr "" msgid "(bad commit)\n" msgstr "" -#: merge-recursive.c:208 +#: merge-recursive.c:210 #, c-format msgid "addinfo_cache failed for path '%s'" msgstr "" @@ -569,284 +577,284 @@ msgstr "" msgid "error building trees" msgstr "" -#: merge-recursive.c:675 +#: merge-recursive.c:692 #, c-format msgid "failed to create path '%s'%s" msgstr "" -#: merge-recursive.c:686 +#: merge-recursive.c:703 #, c-format msgid "Removing %s to make room for subdirectory\n" msgstr "" -#: merge-recursive.c:700 merge-recursive.c:721 +#: merge-recursive.c:717 merge-recursive.c:738 msgid ": perhaps a D/F conflict?" msgstr "" -#: merge-recursive.c:711 +#: merge-recursive.c:728 #, c-format msgid "refusing to lose untracked file at '%s'" msgstr "" -#: merge-recursive.c:751 +#: merge-recursive.c:768 #, c-format msgid "cannot read object %s '%s'" msgstr "" -#: merge-recursive.c:753 +#: merge-recursive.c:770 #, c-format msgid "blob expected for %s '%s'" msgstr "" -#: merge-recursive.c:776 builtin/clone.c:317 +#: merge-recursive.c:793 builtin/clone.c:317 #, c-format msgid "failed to open '%s'" msgstr "" -#: merge-recursive.c:784 +#: merge-recursive.c:801 #, c-format msgid "failed to symlink '%s'" msgstr "" -#: merge-recursive.c:787 +#: merge-recursive.c:804 #, c-format msgid "do not know what to do with %06o %s '%s'" msgstr "" -#: merge-recursive.c:925 +#: merge-recursive.c:942 msgid "Failed to execute internal merge" msgstr "" -#: merge-recursive.c:929 +#: merge-recursive.c:946 #, c-format msgid "Unable to add %s to database" msgstr "" -#: merge-recursive.c:945 +#: merge-recursive.c:962 msgid "unsupported object type in the tree" msgstr "" -#: merge-recursive.c:1024 merge-recursive.c:1038 +#: merge-recursive.c:1037 merge-recursive.c:1051 #, 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:1030 merge-recursive.c:1043 +#: merge-recursive.c:1043 merge-recursive.c:1056 #, 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:1084 +#: merge-recursive.c:1097 msgid "rename" msgstr "" -#: merge-recursive.c:1084 +#: merge-recursive.c:1097 msgid "renamed" msgstr "" -#: merge-recursive.c:1140 +#: merge-recursive.c:1153 #, c-format msgid "%s is a directory in %s adding as %s instead" msgstr "" -#: merge-recursive.c:1162 +#: merge-recursive.c:1175 #, c-format msgid "" "CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s" "\"->\"%s\" in \"%s\"%s" msgstr "" -#: merge-recursive.c:1167 +#: merge-recursive.c:1180 msgid " (left unresolved)" msgstr "" -#: merge-recursive.c:1221 +#: merge-recursive.c:1234 #, c-format msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s" msgstr "" -#: merge-recursive.c:1251 +#: merge-recursive.c:1264 #, c-format msgid "Renaming %s to %s and %s to %s instead" msgstr "" -#: merge-recursive.c:1450 +#: merge-recursive.c:1463 #, c-format msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s" msgstr "" -#: merge-recursive.c:1460 +#: merge-recursive.c:1473 #, c-format msgid "Adding merged %s" msgstr "" -#: merge-recursive.c:1465 merge-recursive.c:1663 +#: merge-recursive.c:1478 merge-recursive.c:1676 #, c-format msgid "Adding as %s instead" msgstr "" -#: merge-recursive.c:1516 +#: merge-recursive.c:1529 #, c-format msgid "cannot read object %s" msgstr "" -#: merge-recursive.c:1519 +#: merge-recursive.c:1532 #, c-format msgid "object %s is not a blob" msgstr "" -#: merge-recursive.c:1567 +#: merge-recursive.c:1580 msgid "modify" msgstr "" -#: merge-recursive.c:1567 +#: merge-recursive.c:1580 msgid "modified" msgstr "" -#: merge-recursive.c:1577 +#: merge-recursive.c:1590 msgid "content" msgstr "" -#: merge-recursive.c:1584 +#: merge-recursive.c:1597 msgid "add/add" msgstr "" -#: merge-recursive.c:1618 +#: merge-recursive.c:1631 #, c-format msgid "Skipped %s (merged same as existing)" msgstr "" -#: merge-recursive.c:1632 +#: merge-recursive.c:1645 #, c-format msgid "Auto-merging %s" msgstr "" -#: merge-recursive.c:1636 git-submodule.sh:1149 +#: merge-recursive.c:1649 git-submodule.sh:1150 msgid "submodule" msgstr "" -#: merge-recursive.c:1637 +#: merge-recursive.c:1650 #, c-format msgid "CONFLICT (%s): Merge conflict in %s" msgstr "" -#: merge-recursive.c:1727 +#: merge-recursive.c:1740 #, c-format msgid "Removing %s" msgstr "" -#: merge-recursive.c:1752 +#: merge-recursive.c:1765 msgid "file/directory" msgstr "" -#: merge-recursive.c:1758 +#: merge-recursive.c:1771 msgid "directory/file" msgstr "" -#: merge-recursive.c:1763 +#: merge-recursive.c:1776 #, c-format msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s" msgstr "" -#: merge-recursive.c:1773 +#: merge-recursive.c:1786 #, c-format msgid "Adding %s" msgstr "" -#: merge-recursive.c:1790 +#: merge-recursive.c:1803 msgid "Fatal merge failure, shouldn't happen." msgstr "" -#: merge-recursive.c:1809 +#: merge-recursive.c:1822 msgid "Already up-to-date!" msgstr "" -#: merge-recursive.c:1818 +#: merge-recursive.c:1831 #, c-format msgid "merging of trees %s and %s failed" msgstr "" -#: merge-recursive.c:1848 +#: merge-recursive.c:1861 #, c-format msgid "Unprocessed path??? %s" msgstr "" -#: merge-recursive.c:1893 +#: merge-recursive.c:1906 msgid "Merging:" msgstr "" -#: merge-recursive.c:1906 +#: merge-recursive.c:1919 #, c-format msgid "found %u common ancestor:" msgid_plural "found %u common ancestors:" msgstr[0] "" msgstr[1] "" -#: merge-recursive.c:1943 +#: merge-recursive.c:1956 msgid "merge returned no commit" msgstr "" -#: merge-recursive.c:2000 +#: merge-recursive.c:2013 #, c-format msgid "Could not parse object '%s'" msgstr "" -#: merge-recursive.c:2012 builtin/merge.c:668 +#: merge-recursive.c:2024 builtin/merge.c:666 msgid "Unable to write index." msgstr "" -#: notes-utils.c:40 +#: notes-utils.c:41 msgid "Cannot commit uninitialized/unreferenced notes tree" msgstr "" -#: notes-utils.c:81 +#: notes-utils.c:83 #, c-format msgid "Bad notes.rewriteMode value: '%s'" msgstr "" -#: notes-utils.c:91 +#: notes-utils.c:93 #, c-format msgid "Refusing to rewrite notes in %s (outside of refs/notes/)" msgstr "" #. TRANSLATORS: The first %s is the name of the #. environment variable, the second %s is its value -#: notes-utils.c:118 +#: notes-utils.c:120 #, c-format msgid "Bad %s value: '%s'" msgstr "" -#: object.c:229 +#: object.c:234 #, c-format msgid "unable to parse object: %s" msgstr "" -#: parse-options.c:532 +#: parse-options.c:534 msgid "..." msgstr "" -#: parse-options.c:550 +#: parse-options.c:552 #, c-format msgid "usage: %s" msgstr "" #. TRANSLATORS: the colon here should align with the #. one in "usage: %s" translation -#: parse-options.c:554 +#: parse-options.c:556 #, c-format msgid " or: %s" msgstr "" -#: parse-options.c:557 +#: parse-options.c:559 #, c-format msgid " %s" msgstr "" -#: parse-options.c:591 +#: parse-options.c:593 msgid "-NUM" msgstr "" @@ -899,80 +907,80 @@ msgstr "" msgid "%s: pathspec magic not supported by this command: %s" msgstr "" -#: pathspec.c:433 +#: pathspec.c:432 #, c-format msgid "pathspec '%s' is beyond a symbolic link" msgstr "" -#: pathspec.c:442 +#: pathspec.c:441 msgid "" "There is nothing to exclude from by :(exclude) patterns.\n" "Perhaps you forgot to add either ':/' or '.' ?" msgstr "" -#: progress.c:224 +#: progress.c:225 msgid "done" msgstr "" -#: read-cache.c:1238 +#: read-cache.c:1260 #, c-format msgid "" "index.version set, but the value is invalid.\n" "Using version %i" msgstr "" -#: read-cache.c:1248 +#: read-cache.c:1270 #, c-format msgid "" "GIT_INDEX_VERSION set, but the value is invalid.\n" "Using version %i" msgstr "" -#: remote.c:758 +#: remote.c:753 #, c-format msgid "Cannot fetch both %s and %s to %s" msgstr "" -#: remote.c:762 +#: remote.c:757 #, c-format msgid "%s usually tracks %s, not %s" msgstr "" -#: remote.c:766 +#: remote.c:761 #, c-format msgid "%s tracks both %s and %s" msgstr "" -#: remote.c:774 +#: remote.c:769 msgid "Internal error" msgstr "" -#: remote.c:1948 +#: remote.c:1943 #, c-format msgid "Your branch is based on '%s', but the upstream is gone.\n" msgstr "" -#: remote.c:1952 +#: remote.c:1947 msgid " (use \"git branch --unset-upstream\" to fixup)\n" msgstr "" -#: remote.c:1955 +#: remote.c:1950 #, c-format msgid "Your branch is up-to-date with '%s'.\n" msgstr "" -#: remote.c:1959 +#: remote.c:1954 #, 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:1965 +#: remote.c:1960 msgid " (use \"git push\" to publish your local commits)\n" msgstr "" -#: remote.c:1968 +#: remote.c:1963 #, c-format msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n" msgid_plural "" @@ -980,11 +988,11 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: remote.c:1976 +#: remote.c:1971 msgid " (use \"git pull\" to update your local branch)\n" msgstr "" -#: remote.c:1979 +#: remote.c:1974 #, c-format msgid "" "Your branch and '%s' have diverged,\n" @@ -995,7 +1003,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: remote.c:1989 +#: remote.c:1984 msgid " (use \"git pull\" to merge the remote branch into yours)\n" msgstr "" @@ -1008,245 +1016,249 @@ msgstr "" msgid "dup2(%d,%d) failed" msgstr "" -#: sequencer.c:206 builtin/merge.c:786 builtin/merge.c:899 -#: builtin/merge.c:1009 builtin/merge.c:1019 +#: sequencer.c:171 builtin/merge.c:782 builtin/merge.c:893 +#: builtin/merge.c:1003 builtin/merge.c:1013 #, c-format msgid "Could not open '%s' for writing" msgstr "" -#: sequencer.c:208 builtin/merge.c:343 builtin/merge.c:789 -#: builtin/merge.c:1011 builtin/merge.c:1024 +#: sequencer.c:173 builtin/merge.c:343 builtin/merge.c:785 +#: builtin/merge.c:1005 builtin/merge.c:1018 #, c-format msgid "Could not write to '%s'" msgstr "" -#: sequencer.c:229 +#: sequencer.c:194 msgid "" "after resolving the conflicts, mark the corrected paths\n" "with 'git add <paths>' or 'git rm <paths>'" msgstr "" -#: sequencer.c:232 +#: sequencer.c:197 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:245 sequencer.c:879 sequencer.c:962 +#: sequencer.c:210 sequencer.c:841 sequencer.c:924 #, c-format msgid "Could not write to %s" msgstr "" -#: sequencer.c:248 +#: sequencer.c:213 #, c-format msgid "Error wrapping up %s" msgstr "" -#: sequencer.c:263 +#: sequencer.c:228 msgid "Your local changes would be overwritten by cherry-pick." msgstr "" -#: sequencer.c:265 +#: sequencer.c:230 msgid "Your local changes would be overwritten by revert." msgstr "" -#: sequencer.c:268 +#: sequencer.c:233 msgid "Commit your changes or stash them to proceed." msgstr "" +#: sequencer.c:250 +msgid "Failed to lock HEAD during fast_forward_to" +msgstr "" + #. TRANSLATORS: %s will be "revert" or "cherry-pick" -#: sequencer.c:325 +#: sequencer.c:293 #, c-format msgid "%s: Unable to write new index file" msgstr "" -#: sequencer.c:356 +#: sequencer.c:324 msgid "Could not resolve HEAD commit\n" msgstr "" -#: sequencer.c:378 +#: sequencer.c:344 msgid "Unable to update cache tree\n" msgstr "" -#: sequencer.c:430 +#: sequencer.c:391 #, c-format msgid "Could not parse commit %s\n" msgstr "" -#: sequencer.c:435 +#: sequencer.c:396 #, c-format msgid "Could not parse parent commit %s\n" msgstr "" -#: sequencer.c:501 +#: sequencer.c:462 msgid "Your index file is unmerged." msgstr "" -#: sequencer.c:520 +#: sequencer.c:481 #, c-format msgid "Commit %s is a merge but no -m option was given." msgstr "" -#: sequencer.c:528 +#: sequencer.c:489 #, c-format msgid "Commit %s does not have parent %d" msgstr "" -#: sequencer.c:532 +#: sequencer.c:493 #, 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:545 +#: sequencer.c:506 #, c-format msgid "%s: cannot parse parent commit %s" msgstr "" -#: sequencer.c:549 +#: sequencer.c:510 #, c-format msgid "Cannot get commit message for %s" msgstr "" -#: sequencer.c:635 +#: sequencer.c:596 #, c-format msgid "could not revert %s... %s" msgstr "" -#: sequencer.c:636 +#: sequencer.c:597 #, c-format msgid "could not apply %s... %s" msgstr "" -#: sequencer.c:672 +#: sequencer.c:633 msgid "empty commit set passed" msgstr "" -#: sequencer.c:680 +#: sequencer.c:641 #, c-format msgid "git %s: failed to read the index" msgstr "" -#: sequencer.c:685 +#: sequencer.c:645 #, c-format msgid "git %s: failed to refresh the index" msgstr "" -#: sequencer.c:743 +#: sequencer.c:705 #, c-format msgid "Cannot %s during a %s" msgstr "" -#: sequencer.c:765 +#: sequencer.c:727 #, c-format msgid "Could not parse line %d." msgstr "" -#: sequencer.c:770 +#: sequencer.c:732 msgid "No commits parsed." msgstr "" -#: sequencer.c:783 +#: sequencer.c:745 #, c-format msgid "Could not open %s" msgstr "" -#: sequencer.c:787 +#: sequencer.c:749 #, c-format msgid "Could not read %s." msgstr "" -#: sequencer.c:794 +#: sequencer.c:756 #, c-format msgid "Unusable instruction sheet: %s" msgstr "" -#: sequencer.c:824 +#: sequencer.c:786 #, c-format msgid "Invalid key: %s" msgstr "" -#: sequencer.c:827 +#: sequencer.c:789 #, c-format msgid "Invalid value for %s: %s" msgstr "" -#: sequencer.c:839 +#: sequencer.c:801 #, c-format msgid "Malformed options sheet: %s" msgstr "" -#: sequencer.c:860 +#: sequencer.c:822 msgid "a cherry-pick or revert is already in progress" msgstr "" -#: sequencer.c:861 +#: sequencer.c:823 msgid "try \"git cherry-pick (--continue | --quit | --abort)\"" msgstr "" -#: sequencer.c:865 +#: sequencer.c:827 #, c-format msgid "Could not create sequencer directory %s" msgstr "" -#: sequencer.c:881 sequencer.c:966 +#: sequencer.c:843 sequencer.c:928 #, c-format msgid "Error wrapping up %s." msgstr "" -#: sequencer.c:900 sequencer.c:1036 +#: sequencer.c:862 sequencer.c:998 msgid "no cherry-pick or revert in progress" msgstr "" -#: sequencer.c:902 +#: sequencer.c:864 msgid "cannot resolve HEAD" msgstr "" -#: sequencer.c:904 +#: sequencer.c:866 msgid "cannot abort from a branch yet to be born" msgstr "" -#: sequencer.c:926 builtin/apply.c:4061 +#: sequencer.c:888 builtin/apply.c:4062 #, c-format msgid "cannot open %s: %s" msgstr "" -#: sequencer.c:929 +#: sequencer.c:891 #, c-format msgid "cannot read %s: %s" msgstr "" -#: sequencer.c:930 +#: sequencer.c:892 msgid "unexpected end of file" msgstr "" -#: sequencer.c:936 +#: sequencer.c:898 #, c-format msgid "stored pre-cherry-pick HEAD file '%s' is corrupt" msgstr "" -#: sequencer.c:959 +#: sequencer.c:921 #, c-format msgid "Could not format %s." msgstr "" -#: sequencer.c:1104 +#: sequencer.c:1066 #, c-format msgid "%s: can't cherry-pick a %s" msgstr "" -#: sequencer.c:1107 +#: sequencer.c:1069 #, c-format msgid "%s: bad revision" msgstr "" -#: sequencer.c:1141 +#: sequencer.c:1103 msgid "Can't revert as initial commit" msgstr "" -#: sequencer.c:1142 +#: sequencer.c:1104 msgid "Can't cherry-pick into empty head" msgstr "" @@ -1263,21 +1275,21 @@ msgid "" "running \"git config advice.objectNameWarning false\"" msgstr "" -#: sha1_name.c:1072 +#: sha1_name.c:1060 msgid "HEAD does not point to a branch" msgstr "" -#: sha1_name.c:1075 +#: sha1_name.c:1063 #, c-format msgid "No such branch: '%s'" msgstr "" -#: sha1_name.c:1077 +#: sha1_name.c:1065 #, c-format msgid "No upstream configured for branch '%s'" msgstr "" -#: sha1_name.c:1081 +#: sha1_name.c:1069 #, c-format msgid "Upstream branch '%s' not stored as a remote-tracking branch" msgstr "" @@ -1305,17 +1317,17 @@ msgstr "" msgid "staging updated .gitmodules failed" msgstr "" -#: submodule.c:1121 builtin/init-db.c:363 +#: submodule.c:1118 builtin/init-db.c:363 #, c-format msgid "Could not create git link %s" msgstr "" -#: submodule.c:1132 +#: submodule.c:1129 #, c-format msgid "Could not set core.worktree in %s" msgstr "" -#: unpack-trees.c:206 +#: unpack-trees.c:202 msgid "Checking out files" msgstr "" @@ -1348,22 +1360,22 @@ msgstr "" msgid "invalid '..' path segment" msgstr "" -#: wrapper.c:422 +#: wrapper.c:460 #, c-format msgid "unable to access '%s': %s" msgstr "" -#: wrapper.c:443 +#: wrapper.c:481 #, c-format msgid "unable to access '%s'" msgstr "" -#: wrapper.c:454 +#: wrapper.c:492 #, c-format msgid "unable to look up current user in the passwd file: %s" msgstr "" -#: wrapper.c:455 +#: wrapper.c:493 msgid "no such user" msgstr "" @@ -1504,193 +1516,193 @@ msgstr "" msgid "bug: unhandled diff status %c" msgstr "" -#: wt-status.c:765 +#: wt-status.c:764 msgid "Submodules changed but not updated:" msgstr "" -#: wt-status.c:767 +#: wt-status.c:766 msgid "Submodule changes to be committed:" msgstr "" -#: wt-status.c:846 +#: wt-status.c:845 msgid "" "Do not touch the line above.\n" "Everything below will be removed." msgstr "" -#: wt-status.c:937 +#: wt-status.c:936 msgid "You have unmerged paths." msgstr "" -#: wt-status.c:940 +#: wt-status.c:939 msgid " (fix conflicts and run \"git commit\")" msgstr "" -#: wt-status.c:943 +#: wt-status.c:942 msgid "All conflicts fixed but you are still merging." msgstr "" -#: wt-status.c:946 +#: wt-status.c:945 msgid " (use \"git commit\" to conclude merge)" msgstr "" -#: wt-status.c:956 +#: wt-status.c:955 msgid "You are in the middle of an am session." msgstr "" -#: wt-status.c:959 +#: wt-status.c:958 msgid "The current patch is empty." msgstr "" -#: wt-status.c:963 +#: wt-status.c:962 msgid " (fix conflicts and then run \"git am --continue\")" msgstr "" -#: wt-status.c:965 +#: wt-status.c:964 msgid " (use \"git am --skip\" to skip this patch)" msgstr "" -#: wt-status.c:967 +#: wt-status.c:966 msgid " (use \"git am --abort\" to restore the original branch)" msgstr "" -#: wt-status.c:1027 wt-status.c:1044 +#: wt-status.c:1026 wt-status.c:1043 #, c-format msgid "You are currently rebasing branch '%s' on '%s'." msgstr "" -#: wt-status.c:1032 wt-status.c:1049 +#: wt-status.c:1031 wt-status.c:1048 msgid "You are currently rebasing." msgstr "" -#: wt-status.c:1035 +#: wt-status.c:1034 msgid " (fix conflicts and then run \"git rebase --continue\")" msgstr "" -#: wt-status.c:1037 +#: wt-status.c:1036 msgid " (use \"git rebase --skip\" to skip this patch)" msgstr "" -#: wt-status.c:1039 +#: wt-status.c:1038 msgid " (use \"git rebase --abort\" to check out the original branch)" msgstr "" -#: wt-status.c:1052 +#: wt-status.c:1051 msgid " (all conflicts fixed: run \"git rebase --continue\")" msgstr "" -#: wt-status.c:1056 +#: wt-status.c:1055 #, c-format msgid "" "You are currently splitting a commit while rebasing branch '%s' on '%s'." msgstr "" -#: wt-status.c:1061 +#: wt-status.c:1060 msgid "You are currently splitting a commit during a rebase." msgstr "" -#: wt-status.c:1064 +#: wt-status.c:1063 msgid " (Once your working directory is clean, run \"git rebase --continue\")" msgstr "" -#: wt-status.c:1068 +#: wt-status.c:1067 #, c-format msgid "You are currently editing a commit while rebasing branch '%s' on '%s'." msgstr "" -#: wt-status.c:1073 +#: wt-status.c:1072 msgid "You are currently editing a commit during a rebase." msgstr "" -#: wt-status.c:1076 +#: wt-status.c:1075 msgid " (use \"git commit --amend\" to amend the current commit)" msgstr "" -#: wt-status.c:1078 +#: wt-status.c:1077 msgid "" " (use \"git rebase --continue\" once you are satisfied with your changes)" msgstr "" -#: wt-status.c:1088 +#: wt-status.c:1087 #, c-format msgid "You are currently cherry-picking commit %s." msgstr "" -#: wt-status.c:1093 +#: wt-status.c:1092 msgid " (fix conflicts and run \"git cherry-pick --continue\")" msgstr "" -#: wt-status.c:1096 +#: wt-status.c:1095 msgid " (all conflicts fixed: run \"git cherry-pick --continue\")" msgstr "" -#: wt-status.c:1098 +#: wt-status.c:1097 msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)" msgstr "" -#: wt-status.c:1107 +#: wt-status.c:1106 #, c-format msgid "You are currently reverting commit %s." msgstr "" -#: wt-status.c:1112 +#: wt-status.c:1111 msgid " (fix conflicts and run \"git revert --continue\")" msgstr "" -#: wt-status.c:1115 +#: wt-status.c:1114 msgid " (all conflicts fixed: run \"git revert --continue\")" msgstr "" -#: wt-status.c:1117 +#: wt-status.c:1116 msgid " (use \"git revert --abort\" to cancel the revert operation)" msgstr "" -#: wt-status.c:1128 +#: wt-status.c:1127 #, c-format msgid "You are currently bisecting, started from branch '%s'." msgstr "" -#: wt-status.c:1132 +#: wt-status.c:1131 msgid "You are currently bisecting." msgstr "" -#: wt-status.c:1135 +#: wt-status.c:1134 msgid " (use \"git bisect reset\" to get back to the original branch)" msgstr "" -#: wt-status.c:1310 +#: wt-status.c:1309 msgid "On branch " msgstr "" -#: wt-status.c:1317 +#: wt-status.c:1316 msgid "rebase in progress; onto " msgstr "" -#: wt-status.c:1324 +#: wt-status.c:1323 msgid "HEAD detached at " msgstr "" -#: wt-status.c:1326 +#: wt-status.c:1325 msgid "HEAD detached from " msgstr "" -#: wt-status.c:1329 +#: wt-status.c:1328 msgid "Not currently on any branch." msgstr "" -#: wt-status.c:1346 +#: wt-status.c:1345 msgid "Initial commit" msgstr "" -#: wt-status.c:1360 +#: wt-status.c:1359 msgid "Untracked files" msgstr "" -#: wt-status.c:1362 +#: wt-status.c:1361 msgid "Ignored files" msgstr "" -#: wt-status.c:1366 +#: wt-status.c:1365 #, c-format msgid "" "It took %.2f seconds to enumerate untracked files. 'status -uno'\n" @@ -1698,74 +1710,74 @@ msgid "" "new files yourself (see 'git help status')." msgstr "" -#: wt-status.c:1372 +#: wt-status.c:1371 #, c-format msgid "Untracked files not listed%s" msgstr "" -#: wt-status.c:1374 +#: wt-status.c:1373 msgid " (use -u option to show untracked files)" msgstr "" -#: wt-status.c:1380 +#: wt-status.c:1379 msgid "No changes" msgstr "" -#: wt-status.c:1385 +#: wt-status.c:1384 #, c-format msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n" msgstr "" -#: wt-status.c:1388 +#: wt-status.c:1387 #, c-format msgid "no changes added to commit\n" msgstr "" -#: wt-status.c:1391 +#: wt-status.c:1390 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " "track)\n" msgstr "" -#: wt-status.c:1394 +#: wt-status.c:1393 #, c-format msgid "nothing added to commit but untracked files present\n" msgstr "" -#: wt-status.c:1397 +#: wt-status.c:1396 #, c-format msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "" -#: wt-status.c:1400 wt-status.c:1405 +#: wt-status.c:1399 wt-status.c:1404 #, c-format msgid "nothing to commit\n" msgstr "" -#: wt-status.c:1403 +#: wt-status.c:1402 #, c-format msgid "nothing to commit (use -u to show untracked files)\n" msgstr "" -#: wt-status.c:1407 +#: wt-status.c:1406 #, c-format msgid "nothing to commit, working directory clean\n" msgstr "" -#: wt-status.c:1516 +#: wt-status.c:1515 msgid "HEAD (no branch)" msgstr "" -#: wt-status.c:1522 +#: wt-status.c:1521 msgid "Initial commit on " msgstr "" -#: wt-status.c:1554 +#: wt-status.c:1553 msgid "gone" msgstr "" -#: wt-status.c:1556 wt-status.c:1564 +#: wt-status.c:1555 wt-status.c:1563 msgid "behind " msgstr "" @@ -1796,7 +1808,7 @@ msgstr "" msgid "Unstaged changes after refreshing the index:" msgstr "" -#: builtin/add.c:193 +#: builtin/add.c:193 builtin/rev-parse.c:781 msgid "Could not read the index" msgstr "" @@ -1827,15 +1839,15 @@ msgstr "" msgid "The following paths are ignored by one of your .gitignore files:\n" msgstr "" -#: builtin/add.c:248 builtin/clean.c:876 builtin/fetch.c:93 builtin/mv.c:70 -#: builtin/prune-packed.c:77 builtin/push.c:489 builtin/remote.c:1344 +#: builtin/add.c:248 builtin/clean.c:875 builtin/fetch.c:108 builtin/mv.c:70 +#: builtin/prune-packed.c:77 builtin/push.c:488 builtin/remote.c:1367 #: builtin/rm.c:269 msgid "dry run" msgstr "" -#: builtin/add.c:249 builtin/apply.c:4410 builtin/check-ignore.c:19 -#: builtin/commit.c:1256 builtin/count-objects.c:95 builtin/fsck.c:612 -#: builtin/log.c:1592 builtin/mv.c:69 builtin/read-tree.c:113 +#: builtin/add.c:249 builtin/apply.c:4411 builtin/check-ignore.c:19 +#: builtin/commit.c:1328 builtin/count-objects.c:95 builtin/fsck.c:606 +#: builtin/log.c:1613 builtin/mv.c:69 builtin/read-tree.c:113 msgid "be verbose" msgstr "" @@ -1843,7 +1855,7 @@ msgstr "" msgid "interactive picking" msgstr "" -#: builtin/add.c:252 builtin/checkout.c:1108 builtin/reset.c:283 +#: builtin/add.c:252 builtin/checkout.c:1102 builtin/reset.c:285 msgid "select hunks interactively" msgstr "" @@ -1896,30 +1908,30 @@ msgstr "" msgid "adding files failed" msgstr "" -#: builtin/add.c:330 +#: builtin/add.c:329 msgid "-A and -u are mutually incompatible" msgstr "" -#: builtin/add.c:337 +#: builtin/add.c:336 msgid "Option --ignore-missing can only be used together with --dry-run" msgstr "" -#: builtin/add.c:358 +#: builtin/add.c:357 #, c-format msgid "Nothing specified, nothing added.\n" msgstr "" -#: builtin/add.c:359 +#: builtin/add.c:358 #, c-format msgid "Maybe you wanted to say 'git add .'?\n" msgstr "" -#: builtin/add.c:364 builtin/check-ignore.c:172 builtin/clean.c:920 -#: builtin/commit.c:320 builtin/mv.c:90 builtin/reset.c:234 builtin/rm.c:299 +#: builtin/add.c:363 builtin/check-ignore.c:172 builtin/clean.c:919 +#: builtin/commit.c:319 builtin/mv.c:90 builtin/reset.c:234 builtin/rm.c:299 msgid "index file corrupt" msgstr "" -#: builtin/add.c:448 builtin/apply.c:4506 builtin/mv.c:280 builtin/rm.c:432 +#: builtin/add.c:446 builtin/apply.c:4506 builtin/mv.c:280 builtin/rm.c:431 msgid "Unable to write new index file" msgstr "" @@ -1937,37 +1949,37 @@ msgstr "" msgid "unrecognized whitespace ignore option '%s'" msgstr "" -#: builtin/apply.c:823 +#: builtin/apply.c:825 #, c-format msgid "Cannot prepare timestamp regexp %s" msgstr "" -#: builtin/apply.c:832 +#: builtin/apply.c:834 #, c-format msgid "regexec returned %d for input: %s" msgstr "" -#: builtin/apply.c:913 +#: builtin/apply.c:915 #, c-format msgid "unable to find filename in patch at line %d" msgstr "" -#: builtin/apply.c:945 +#: builtin/apply.c:947 #, c-format msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d" msgstr "" -#: builtin/apply.c:949 +#: builtin/apply.c:951 #, c-format msgid "git apply: bad git-diff - inconsistent new filename on line %d" msgstr "" -#: builtin/apply.c:950 +#: builtin/apply.c:952 #, c-format msgid "git apply: bad git-diff - inconsistent old filename on line %d" msgstr "" -#: builtin/apply.c:957 +#: builtin/apply.c:959 #, c-format msgid "git apply: bad git-diff - expected /dev/null on line %d" msgstr "" @@ -2075,17 +2087,17 @@ msgstr "" msgid "missing binary patch data for '%s'" msgstr "" -#: builtin/apply.c:2946 +#: builtin/apply.c:2944 #, c-format msgid "binary patch does not apply to '%s'" msgstr "" -#: builtin/apply.c:2952 +#: builtin/apply.c:2950 #, c-format msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)" msgstr "" -#: builtin/apply.c:2973 +#: builtin/apply.c:2971 #, c-format msgid "patch failed: %s:%ld" msgstr "" @@ -2174,213 +2186,213 @@ msgstr "" msgid "unable to remove %s from index" msgstr "" -#: builtin/apply.c:3851 +#: builtin/apply.c:3852 #, c-format msgid "corrupt patch for submodule %s" msgstr "" -#: builtin/apply.c:3855 +#: builtin/apply.c:3856 #, c-format msgid "unable to stat newly created file '%s'" msgstr "" -#: builtin/apply.c:3860 +#: builtin/apply.c:3861 #, c-format msgid "unable to create backing store for newly created file %s" msgstr "" -#: builtin/apply.c:3863 builtin/apply.c:3971 +#: builtin/apply.c:3864 builtin/apply.c:3972 #, c-format msgid "unable to add cache entry for %s" msgstr "" -#: builtin/apply.c:3896 +#: builtin/apply.c:3897 #, c-format msgid "closing file '%s'" msgstr "" -#: builtin/apply.c:3945 +#: builtin/apply.c:3946 #, c-format msgid "unable to write file '%s' mode %o" msgstr "" -#: builtin/apply.c:4032 +#: builtin/apply.c:4033 #, c-format msgid "Applied patch %s cleanly." msgstr "" -#: builtin/apply.c:4040 +#: builtin/apply.c:4041 msgid "internal error" msgstr "" -#: builtin/apply.c:4043 +#: builtin/apply.c:4044 #, c-format msgid "Applying patch %%s with %d reject..." msgid_plural "Applying patch %%s with %d rejects..." msgstr[0] "" msgstr[1] "" -#: builtin/apply.c:4053 +#: builtin/apply.c:4054 #, c-format msgid "truncating .rej filename to %.*s.rej" msgstr "" -#: builtin/apply.c:4074 +#: builtin/apply.c:4075 #, c-format msgid "Hunk #%d applied cleanly." msgstr "" -#: builtin/apply.c:4077 +#: builtin/apply.c:4078 #, c-format msgid "Rejected hunk #%d." msgstr "" -#: builtin/apply.c:4227 +#: builtin/apply.c:4228 msgid "unrecognized input" msgstr "" -#: builtin/apply.c:4238 +#: builtin/apply.c:4239 msgid "unable to read index file" msgstr "" -#: builtin/apply.c:4357 builtin/apply.c:4360 builtin/clone.c:90 -#: builtin/fetch.c:78 +#: builtin/apply.c:4358 builtin/apply.c:4361 builtin/clone.c:90 +#: builtin/fetch.c:93 msgid "path" msgstr "" -#: builtin/apply.c:4358 +#: builtin/apply.c:4359 msgid "don't apply changes matching the given path" msgstr "" -#: builtin/apply.c:4361 +#: builtin/apply.c:4362 msgid "apply changes matching the given path" msgstr "" -#: builtin/apply.c:4363 +#: builtin/apply.c:4364 msgid "num" msgstr "" -#: builtin/apply.c:4364 +#: builtin/apply.c:4365 msgid "remove <num> leading slashes from traditional diff paths" msgstr "" -#: builtin/apply.c:4367 +#: builtin/apply.c:4368 msgid "ignore additions made by the patch" msgstr "" -#: builtin/apply.c:4369 +#: builtin/apply.c:4370 msgid "instead of applying the patch, output diffstat for the input" msgstr "" -#: builtin/apply.c:4373 +#: builtin/apply.c:4374 msgid "show number of added and deleted lines in decimal notation" msgstr "" -#: builtin/apply.c:4375 +#: builtin/apply.c:4376 msgid "instead of applying the patch, output a summary for the input" msgstr "" -#: builtin/apply.c:4377 +#: builtin/apply.c:4378 msgid "instead of applying the patch, see if the patch is applicable" msgstr "" -#: builtin/apply.c:4379 +#: builtin/apply.c:4380 msgid "make sure the patch is applicable to the current index" msgstr "" -#: builtin/apply.c:4381 +#: builtin/apply.c:4382 msgid "apply a patch without touching the working tree" msgstr "" -#: builtin/apply.c:4383 +#: builtin/apply.c:4384 msgid "also apply the patch (use with --stat/--summary/--check)" msgstr "" -#: builtin/apply.c:4385 +#: builtin/apply.c:4386 msgid "attempt three-way merge if a patch does not apply" msgstr "" -#: builtin/apply.c:4387 +#: builtin/apply.c:4388 msgid "build a temporary index based on embedded index information" msgstr "" -#: builtin/apply.c:4389 builtin/checkout-index.c:197 builtin/ls-files.c:455 +#: builtin/apply.c:4390 builtin/checkout-index.c:198 builtin/ls-files.c:455 msgid "paths are separated with NUL character" msgstr "" -#: builtin/apply.c:4392 +#: builtin/apply.c:4393 msgid "ensure at least <n> lines of context match" msgstr "" -#: builtin/apply.c:4393 +#: builtin/apply.c:4394 msgid "action" msgstr "" -#: builtin/apply.c:4394 +#: builtin/apply.c:4395 msgid "detect new or modified lines that have whitespace errors" msgstr "" -#: builtin/apply.c:4397 builtin/apply.c:4400 +#: builtin/apply.c:4398 builtin/apply.c:4401 msgid "ignore changes in whitespace when finding context" msgstr "" -#: builtin/apply.c:4403 +#: builtin/apply.c:4404 msgid "apply the patch in reverse" msgstr "" -#: builtin/apply.c:4405 +#: builtin/apply.c:4406 msgid "don't expect at least one line of context" msgstr "" -#: builtin/apply.c:4407 +#: builtin/apply.c:4408 msgid "leave the rejected hunks in corresponding *.rej files" msgstr "" -#: builtin/apply.c:4409 +#: builtin/apply.c:4410 msgid "allow overlapping hunks" msgstr "" -#: builtin/apply.c:4412 +#: builtin/apply.c:4413 msgid "tolerate incorrectly detected missing new-line at the end of file" msgstr "" -#: builtin/apply.c:4415 +#: builtin/apply.c:4416 msgid "do not trust the line counts in the hunk headers" msgstr "" -#: builtin/apply.c:4417 +#: builtin/apply.c:4418 msgid "root" msgstr "" -#: builtin/apply.c:4418 +#: builtin/apply.c:4419 msgid "prepend <root> to all filenames" msgstr "" -#: builtin/apply.c:4440 +#: builtin/apply.c:4441 msgid "--3way outside a repository" msgstr "" -#: builtin/apply.c:4448 +#: builtin/apply.c:4449 msgid "--index outside a repository" msgstr "" -#: builtin/apply.c:4451 +#: builtin/apply.c:4452 msgid "--cached outside a repository" msgstr "" -#: builtin/apply.c:4467 +#: builtin/apply.c:4468 #, c-format msgid "can't open patch '%s'" msgstr "" -#: builtin/apply.c:4481 +#: builtin/apply.c:4482 #, c-format msgid "squelched %d whitespace error" msgid_plural "squelched %d whitespace errors" msgstr[0] "" msgstr[1] "" -#: builtin/apply.c:4487 builtin/apply.c:4497 +#: builtin/apply.c:4488 builtin/apply.c:4498 #, c-format msgid "%d line adds whitespace errors." msgid_plural "%d lines add whitespace errors." @@ -2434,106 +2446,116 @@ msgstr "" msgid "update BISECT_HEAD instead of checking out the current commit" msgstr "" -#: builtin/blame.c:27 +#: builtin/blame.c:30 msgid "git blame [options] [rev-opts] [rev] [--] file" msgstr "" -#: builtin/blame.c:32 +#: builtin/blame.c:35 msgid "[rev-opts] are documented in git-rev-list(1)" msgstr "" -#: builtin/blame.c:2242 +#: builtin/blame.c:2501 msgid "Show blame entries as we find them, incrementally" msgstr "" -#: builtin/blame.c:2243 +#: builtin/blame.c:2502 msgid "Show blank SHA-1 for boundary commits (Default: off)" msgstr "" -#: builtin/blame.c:2244 +#: builtin/blame.c:2503 msgid "Do not treat root commits as boundaries (Default: off)" msgstr "" -#: builtin/blame.c:2245 +#: builtin/blame.c:2504 msgid "Show work cost statistics" msgstr "" -#: builtin/blame.c:2246 +#: builtin/blame.c:2505 msgid "Show output score for blame entries" msgstr "" -#: builtin/blame.c:2247 +#: builtin/blame.c:2506 msgid "Show original filename (Default: auto)" msgstr "" -#: builtin/blame.c:2248 +#: builtin/blame.c:2507 msgid "Show original linenumber (Default: off)" msgstr "" -#: builtin/blame.c:2249 +#: builtin/blame.c:2508 msgid "Show in a format designed for machine consumption" msgstr "" -#: builtin/blame.c:2250 +#: builtin/blame.c:2509 msgid "Show porcelain format with per-line commit information" msgstr "" -#: builtin/blame.c:2251 +#: builtin/blame.c:2510 msgid "Use the same output mode as git-annotate (Default: off)" msgstr "" -#: builtin/blame.c:2252 +#: builtin/blame.c:2511 msgid "Show raw timestamp (Default: off)" msgstr "" -#: builtin/blame.c:2253 +#: builtin/blame.c:2512 msgid "Show long commit SHA1 (Default: off)" msgstr "" -#: builtin/blame.c:2254 +#: builtin/blame.c:2513 msgid "Suppress author name and timestamp (Default: off)" msgstr "" -#: builtin/blame.c:2255 +#: builtin/blame.c:2514 msgid "Show author email instead of name (Default: off)" msgstr "" -#: builtin/blame.c:2256 +#: builtin/blame.c:2515 msgid "Ignore whitespace differences" msgstr "" -#: builtin/blame.c:2257 +#: builtin/blame.c:2516 msgid "Spend extra cycles to find better match" msgstr "" -#: builtin/blame.c:2258 +#: builtin/blame.c:2517 msgid "Use revisions from <file> instead of calling git-rev-list" msgstr "" -#: builtin/blame.c:2259 +#: builtin/blame.c:2518 msgid "Use <file>'s contents as the final image" msgstr "" -#: builtin/blame.c:2260 builtin/blame.c:2261 +#: builtin/blame.c:2519 builtin/blame.c:2520 msgid "score" msgstr "" -#: builtin/blame.c:2260 +#: builtin/blame.c:2519 msgid "Find line copies within and across files" msgstr "" -#: builtin/blame.c:2261 +#: builtin/blame.c:2520 msgid "Find line movements within and across files" msgstr "" -#: builtin/blame.c:2262 +#: builtin/blame.c:2521 msgid "n,m" msgstr "" -#: builtin/blame.c:2262 +#: builtin/blame.c:2521 msgid "Process only line range n,m, counting from 1" msgstr "" +#. 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:2599 +msgid "4 years, 11 months ago" +msgstr "" + #: builtin/branch.c:24 msgid "git branch [options] [-r | -a] [--merged | --no-merged]" msgstr "" @@ -2766,9 +2788,9 @@ msgid "act on remote-tracking branches" msgstr "" #: builtin/branch.c:817 builtin/branch.c:823 builtin/branch.c:844 -#: builtin/branch.c:850 builtin/commit.c:1494 builtin/commit.c:1495 -#: builtin/commit.c:1496 builtin/commit.c:1497 builtin/tag.c:527 -#: builtin/tag.c:533 +#: builtin/branch.c:850 builtin/commit.c:1573 builtin/commit.c:1574 +#: builtin/commit.c:1575 builtin/commit.c:1576 builtin/tag.c:615 +#: builtin/tag.c:621 msgid "commit" msgstr "" @@ -2832,7 +2854,7 @@ msgstr "" msgid "Failed to resolve HEAD as a valid ref." msgstr "" -#: builtin/branch.c:872 builtin/clone.c:635 +#: builtin/branch.c:872 builtin/clone.c:636 msgid "HEAD not found below refs/heads!" msgstr "" @@ -3009,7 +3031,7 @@ msgstr "" msgid "terminate input and output records by a NUL character" msgstr "" -#: builtin/check-ignore.c:18 builtin/checkout.c:1089 builtin/gc.c:271 +#: builtin/check-ignore.c:18 builtin/checkout.c:1083 builtin/gc.c:285 msgid "suppress progress reporting" msgstr "" @@ -3066,43 +3088,43 @@ msgstr "" msgid "git checkout-index [options] [--] [<file>...]" msgstr "" -#: builtin/checkout-index.c:187 +#: builtin/checkout-index.c:188 msgid "check out all files in the index" msgstr "" -#: builtin/checkout-index.c:188 +#: builtin/checkout-index.c:189 msgid "force overwrite of existing files" msgstr "" -#: builtin/checkout-index.c:190 +#: builtin/checkout-index.c:191 msgid "no warning for existing files and files not in index" msgstr "" -#: builtin/checkout-index.c:192 +#: builtin/checkout-index.c:193 msgid "don't checkout new files" msgstr "" -#: builtin/checkout-index.c:194 +#: builtin/checkout-index.c:195 msgid "update stat information in the index file" msgstr "" -#: builtin/checkout-index.c:200 +#: builtin/checkout-index.c:201 msgid "read list of paths from the standard input" msgstr "" -#: builtin/checkout-index.c:202 +#: builtin/checkout-index.c:203 msgid "write the content to temporary files" msgstr "" -#: builtin/checkout-index.c:203 builtin/column.c:30 +#: builtin/checkout-index.c:204 builtin/column.c:30 msgid "string" msgstr "" -#: builtin/checkout-index.c:204 +#: builtin/checkout-index.c:205 msgid "when creating files, prepend <string>" msgstr "" -#: builtin/checkout-index.c:207 +#: builtin/checkout-index.c:208 msgid "copy out the files from named stage" msgstr "" @@ -3144,75 +3166,75 @@ msgstr "" msgid "Unable to add merge result for '%s'" msgstr "" -#: builtin/checkout.c:232 builtin/checkout.c:235 builtin/checkout.c:238 -#: builtin/checkout.c:241 +#: builtin/checkout.c:231 builtin/checkout.c:234 builtin/checkout.c:237 +#: builtin/checkout.c:240 #, c-format msgid "'%s' cannot be used with updating paths" msgstr "" -#: builtin/checkout.c:244 builtin/checkout.c:247 +#: builtin/checkout.c:243 builtin/checkout.c:246 #, c-format msgid "'%s' cannot be used with %s" msgstr "" -#: builtin/checkout.c:250 +#: builtin/checkout.c:249 #, c-format msgid "Cannot update paths and switch to branch '%s' at the same time." msgstr "" -#: builtin/checkout.c:261 builtin/checkout.c:450 +#: builtin/checkout.c:260 builtin/checkout.c:449 msgid "corrupt index file" msgstr "" -#: builtin/checkout.c:321 builtin/checkout.c:328 +#: builtin/checkout.c:320 builtin/checkout.c:327 #, c-format msgid "path '%s' is unmerged" msgstr "" -#: builtin/checkout.c:472 +#: builtin/checkout.c:471 msgid "you need to resolve your current index first" msgstr "" -#: builtin/checkout.c:593 +#: builtin/checkout.c:591 #, c-format msgid "Can not do reflog for '%s'\n" msgstr "" -#: builtin/checkout.c:631 +#: builtin/checkout.c:629 msgid "HEAD is now at" msgstr "" -#: builtin/checkout.c:638 +#: builtin/checkout.c:636 #, c-format msgid "Reset branch '%s'\n" msgstr "" -#: builtin/checkout.c:641 +#: builtin/checkout.c:639 #, c-format msgid "Already on '%s'\n" msgstr "" -#: builtin/checkout.c:645 +#: builtin/checkout.c:643 #, c-format msgid "Switched to and reset branch '%s'\n" msgstr "" -#: builtin/checkout.c:647 builtin/checkout.c:1032 +#: builtin/checkout.c:645 builtin/checkout.c:1026 #, c-format msgid "Switched to a new branch '%s'\n" msgstr "" -#: builtin/checkout.c:649 +#: builtin/checkout.c:647 #, c-format msgid "Switched to branch '%s'\n" msgstr "" -#: builtin/checkout.c:705 +#: builtin/checkout.c:699 #, c-format msgid " ... and %d more.\n" msgstr "" -#: builtin/checkout.c:711 +#: builtin/checkout.c:705 #, c-format msgid "" "Warning: you are leaving %d commit behind, not connected to\n" @@ -3227,7 +3249,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: builtin/checkout.c:729 +#: builtin/checkout.c:723 #, c-format msgid "" "If you want to keep them by creating a new branch, this may be a good time\n" @@ -3237,151 +3259,151 @@ msgid "" "\n" msgstr "" -#: builtin/checkout.c:759 +#: builtin/checkout.c:753 msgid "internal error in revision walk" msgstr "" -#: builtin/checkout.c:763 +#: builtin/checkout.c:757 msgid "Previous HEAD position was" msgstr "" -#: builtin/checkout.c:790 builtin/checkout.c:1027 +#: builtin/checkout.c:784 builtin/checkout.c:1021 msgid "You are on a branch yet to be born" msgstr "" -#: builtin/checkout.c:934 +#: builtin/checkout.c:928 #, c-format msgid "only one reference expected, %d given." msgstr "" -#: builtin/checkout.c:973 +#: builtin/checkout.c:967 #, c-format msgid "invalid reference: %s" msgstr "" -#: builtin/checkout.c:1002 +#: builtin/checkout.c:996 #, c-format msgid "reference is not a tree: %s" msgstr "" -#: builtin/checkout.c:1041 +#: builtin/checkout.c:1035 msgid "paths cannot be used with switching branches" msgstr "" -#: builtin/checkout.c:1044 builtin/checkout.c:1048 +#: builtin/checkout.c:1038 builtin/checkout.c:1042 #, c-format msgid "'%s' cannot be used with switching branches" msgstr "" -#: builtin/checkout.c:1052 builtin/checkout.c:1055 builtin/checkout.c:1060 -#: builtin/checkout.c:1063 +#: builtin/checkout.c:1046 builtin/checkout.c:1049 builtin/checkout.c:1054 +#: builtin/checkout.c:1057 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "" -#: builtin/checkout.c:1068 +#: builtin/checkout.c:1062 #, c-format msgid "Cannot switch branch to a non-commit '%s'" msgstr "" -#: builtin/checkout.c:1090 builtin/checkout.c:1092 builtin/clone.c:88 +#: builtin/checkout.c:1084 builtin/checkout.c:1086 builtin/clone.c:88 #: builtin/remote.c:159 builtin/remote.c:161 msgid "branch" msgstr "" -#: builtin/checkout.c:1091 +#: builtin/checkout.c:1085 msgid "create and checkout a new branch" msgstr "" -#: builtin/checkout.c:1093 +#: builtin/checkout.c:1087 msgid "create/reset and checkout a branch" msgstr "" -#: builtin/checkout.c:1094 +#: builtin/checkout.c:1088 msgid "create reflog for new branch" msgstr "" -#: builtin/checkout.c:1095 +#: builtin/checkout.c:1089 msgid "detach the HEAD at named commit" msgstr "" -#: builtin/checkout.c:1096 +#: builtin/checkout.c:1090 msgid "set upstream info for new branch" msgstr "" -#: builtin/checkout.c:1098 +#: builtin/checkout.c:1092 msgid "new-branch" msgstr "" -#: builtin/checkout.c:1098 +#: builtin/checkout.c:1092 msgid "new unparented branch" msgstr "" -#: builtin/checkout.c:1099 +#: builtin/checkout.c:1093 msgid "checkout our version for unmerged files" msgstr "" -#: builtin/checkout.c:1101 +#: builtin/checkout.c:1095 msgid "checkout their version for unmerged files" msgstr "" -#: builtin/checkout.c:1103 +#: builtin/checkout.c:1097 msgid "force checkout (throw away local modifications)" msgstr "" -#: builtin/checkout.c:1104 +#: builtin/checkout.c:1098 msgid "perform a 3-way merge with the new branch" msgstr "" -#: builtin/checkout.c:1105 builtin/merge.c:225 +#: builtin/checkout.c:1099 builtin/merge.c:225 msgid "update ignored files (default)" msgstr "" -#: builtin/checkout.c:1106 builtin/log.c:1228 parse-options.h:245 +#: builtin/checkout.c:1100 builtin/log.c:1236 parse-options.h:245 msgid "style" msgstr "" -#: builtin/checkout.c:1107 +#: builtin/checkout.c:1101 msgid "conflict style (merge or diff3)" msgstr "" -#: builtin/checkout.c:1110 +#: builtin/checkout.c:1104 msgid "do not limit pathspecs to sparse entries only" msgstr "" -#: builtin/checkout.c:1112 +#: builtin/checkout.c:1106 msgid "second guess 'git checkout no-such-branch'" msgstr "" -#: builtin/checkout.c:1135 +#: builtin/checkout.c:1129 msgid "-b, -B and --orphan are mutually exclusive" msgstr "" -#: builtin/checkout.c:1152 +#: builtin/checkout.c:1146 msgid "--track needs a branch name" msgstr "" -#: builtin/checkout.c:1159 +#: builtin/checkout.c:1153 msgid "Missing branch name; try -b" msgstr "" -#: builtin/checkout.c:1196 +#: builtin/checkout.c:1190 msgid "invalid path specification" msgstr "" -#: builtin/checkout.c:1203 +#: builtin/checkout.c:1197 #, 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:1208 +#: builtin/checkout.c:1202 #, c-format msgid "git checkout: --detach does not take a path argument '%s'" msgstr "" -#: builtin/checkout.c:1212 +#: builtin/checkout.c:1206 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." @@ -3442,30 +3464,30 @@ msgstr "" msgid "Huh (%s)?" msgstr "" -#: builtin/clean.c:660 +#: builtin/clean.c:659 #, c-format msgid "Input ignore patterns>> " msgstr "" -#: builtin/clean.c:697 +#: builtin/clean.c:696 #, c-format msgid "WARNING: Cannot find items matched by: %s" msgstr "" -#: builtin/clean.c:718 +#: builtin/clean.c:717 msgid "Select items to delete" msgstr "" -#: builtin/clean.c:758 +#: builtin/clean.c:757 #, c-format msgid "remove %s? " msgstr "" -#: builtin/clean.c:783 +#: builtin/clean.c:782 msgid "Bye." msgstr "" -#: builtin/clean.c:791 +#: builtin/clean.c:790 msgid "" "clean - start cleaning\n" "filter by pattern - exclude items from deletion\n" @@ -3476,68 +3498,68 @@ msgid "" "? - help for prompt selection" msgstr "" -#: builtin/clean.c:818 +#: builtin/clean.c:817 msgid "*** Commands ***" msgstr "" -#: builtin/clean.c:819 +#: builtin/clean.c:818 msgid "What now" msgstr "" -#: builtin/clean.c:827 +#: builtin/clean.c:826 msgid "Would remove the following item:" msgid_plural "Would remove the following items:" msgstr[0] "" msgstr[1] "" -#: builtin/clean.c:844 +#: builtin/clean.c:843 msgid "No more files to clean, exiting." msgstr "" -#: builtin/clean.c:875 +#: builtin/clean.c:874 msgid "do not print names of files removed" msgstr "" -#: builtin/clean.c:877 +#: builtin/clean.c:876 msgid "force" msgstr "" -#: builtin/clean.c:878 +#: builtin/clean.c:877 msgid "interactive cleaning" msgstr "" -#: builtin/clean.c:880 +#: builtin/clean.c:879 msgid "remove whole directories" msgstr "" -#: builtin/clean.c:881 builtin/describe.c:415 builtin/grep.c:716 -#: builtin/ls-files.c:486 builtin/name-rev.c:314 builtin/show-ref.c:185 +#: builtin/clean.c:880 builtin/describe.c:406 builtin/grep.c:714 +#: builtin/ls-files.c:486 builtin/name-rev.c:311 builtin/show-ref.c:185 msgid "pattern" msgstr "" -#: builtin/clean.c:882 +#: builtin/clean.c:881 msgid "add <pattern> to ignore rules" msgstr "" -#: builtin/clean.c:883 +#: builtin/clean.c:882 msgid "remove ignored files, too" msgstr "" -#: builtin/clean.c:885 +#: builtin/clean.c:884 msgid "remove only ignored files" msgstr "" -#: builtin/clean.c:903 +#: builtin/clean.c:902 msgid "-x and -X cannot be used together" msgstr "" -#: builtin/clean.c:907 +#: builtin/clean.c:906 msgid "" "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to " "clean" msgstr "" -#: builtin/clean.c:910 +#: builtin/clean.c:909 msgid "" "clean.requireForce defaults to true and neither -i, -n, nor -f given; " "refusing to clean" @@ -3547,8 +3569,8 @@ msgstr "" msgid "git clone [options] [--] <repo> [<dir>]" msgstr "" -#: builtin/clone.c:64 builtin/fetch.c:97 builtin/merge.c:222 -#: builtin/push.c:504 +#: builtin/clone.c:64 builtin/fetch.c:112 builtin/merge.c:222 +#: builtin/push.c:503 msgid "force progress reporting" msgstr "" @@ -3608,7 +3630,7 @@ msgstr "" msgid "path to git-upload-pack on the remote" msgstr "" -#: builtin/clone.c:92 builtin/fetch.c:98 builtin/grep.c:661 +#: builtin/clone.c:92 builtin/fetch.c:113 builtin/grep.c:659 msgid "depth" msgstr "" @@ -3707,94 +3729,94 @@ msgstr "" msgid "remote did not send all necessary objects" msgstr "" -#: builtin/clone.c:626 +#: builtin/clone.c:627 msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n" msgstr "" -#: builtin/clone.c:657 +#: builtin/clone.c:658 msgid "unable to checkout working tree" msgstr "" -#: builtin/clone.c:765 +#: builtin/clone.c:768 msgid "Too many arguments." msgstr "" -#: builtin/clone.c:769 +#: builtin/clone.c:772 msgid "You must specify a repository to clone." msgstr "" -#: builtin/clone.c:780 +#: builtin/clone.c:783 #, c-format msgid "--bare and --origin %s options are incompatible." msgstr "" -#: builtin/clone.c:783 +#: builtin/clone.c:786 msgid "--bare and --separate-git-dir are incompatible." msgstr "" -#: builtin/clone.c:796 +#: builtin/clone.c:799 #, c-format msgid "repository '%s' does not exist" msgstr "" -#: builtin/clone.c:802 -msgid "--depth is ignored in local clones; use file:// instead." -msgstr "" - -#: builtin/clone.c:805 -msgid "source repository is shallow, ignoring --local" -msgstr "" - -#: builtin/clone.c:810 -msgid "--local is ignored" -msgstr "" - -#: builtin/clone.c:814 builtin/fetch.c:1119 +#: builtin/clone.c:805 builtin/fetch.c:1143 #, c-format msgid "depth %s is not a positive number" msgstr "" -#: builtin/clone.c:824 +#: builtin/clone.c:815 #, c-format msgid "destination path '%s' already exists and is not an empty directory." msgstr "" -#: builtin/clone.c:834 +#: builtin/clone.c:825 #, c-format msgid "working tree '%s' already exists." msgstr "" -#: builtin/clone.c:847 builtin/clone.c:859 +#: builtin/clone.c:838 builtin/clone.c:850 #, c-format msgid "could not create leading directories of '%s'" msgstr "" -#: builtin/clone.c:850 +#: builtin/clone.c:841 #, c-format msgid "could not create work tree dir '%s'." msgstr "" -#: builtin/clone.c:869 +#: builtin/clone.c:860 #, c-format msgid "Cloning into bare repository '%s'...\n" msgstr "" -#: builtin/clone.c:871 +#: builtin/clone.c:862 #, c-format msgid "Cloning into '%s'...\n" msgstr "" +#: builtin/clone.c:898 +msgid "--depth is ignored in local clones; use file:// instead." +msgstr "" + +#: builtin/clone.c:901 +msgid "source repository is shallow, ignoring --local" +msgstr "" + #: builtin/clone.c:906 +msgid "--local is ignored" +msgstr "" + +#: builtin/clone.c:910 #, c-format msgid "Don't know how to clone %s" msgstr "" -#: builtin/clone.c:957 builtin/clone.c:965 +#: builtin/clone.c:961 builtin/clone.c:969 #, c-format msgid "Remote branch %s not found in upstream %s" msgstr "" -#: builtin/clone.c:968 +#: builtin/clone.c:972 msgid "You appear to have cloned an empty repository." msgstr "" @@ -3886,89 +3908,96 @@ msgstr "" msgid "failed to unpack HEAD tree object" msgstr "" -#: builtin/commit.c:330 +#: builtin/commit.c:328 msgid "unable to create temporary index" msgstr "" -#: builtin/commit.c:336 +#: builtin/commit.c:334 msgid "interactive add failed" msgstr "" -#: builtin/commit.c:369 builtin/commit.c:390 builtin/commit.c:440 +#: builtin/commit.c:366 builtin/commit.c:387 builtin/commit.c:435 msgid "unable to write new_index file" msgstr "" -#: builtin/commit.c:421 +#: builtin/commit.c:418 msgid "cannot do a partial commit during a merge." msgstr "" -#: builtin/commit.c:423 +#: builtin/commit.c:420 msgid "cannot do a partial commit during a cherry-pick." msgstr "" -#: builtin/commit.c:433 +#: builtin/commit.c:429 msgid "cannot read the index" msgstr "" -#: builtin/commit.c:453 +#: builtin/commit.c:447 msgid "unable to write temporary index file" msgstr "" -#: builtin/commit.c:544 builtin/commit.c:550 +#: builtin/commit.c:557 builtin/commit.c:563 #, c-format msgid "invalid commit: %s" msgstr "" -#: builtin/commit.c:572 +#: builtin/commit.c:585 msgid "malformed --author parameter" msgstr "" #: builtin/commit.c:592 #, c-format +msgid "invalid date format: %s" +msgstr "" + +#: builtin/commit.c:609 +#, c-format msgid "Malformed ident string: '%s'" msgstr "" -#: builtin/commit.c:629 builtin/commit.c:663 builtin/commit.c:1014 +#: builtin/commit.c:642 +msgid "" +"unable to select a comment character that is not used\n" +"in the current commit message" +msgstr "" + +#: builtin/commit.c:679 builtin/commit.c:712 builtin/commit.c:1086 #, c-format msgid "could not lookup commit %s" msgstr "" -#: builtin/commit.c:641 builtin/shortlog.c:273 +#: builtin/commit.c:691 builtin/shortlog.c:273 #, c-format msgid "(reading log message from standard input)\n" msgstr "" -#: builtin/commit.c:643 +#: builtin/commit.c:693 msgid "could not read log from standard input" msgstr "" -#: builtin/commit.c:647 +#: builtin/commit.c:697 #, c-format msgid "could not read log file '%s'" msgstr "" -#: builtin/commit.c:654 -msgid "commit has empty message" -msgstr "" - -#: builtin/commit.c:670 +#: builtin/commit.c:719 msgid "could not read MERGE_MSG" msgstr "" -#: builtin/commit.c:674 +#: builtin/commit.c:723 msgid "could not read SQUASH_MSG" msgstr "" -#: builtin/commit.c:678 +#: builtin/commit.c:727 #, c-format msgid "could not read '%s'" msgstr "" -#: builtin/commit.c:749 +#: builtin/commit.c:798 msgid "could not write commit template" msgstr "" -#: builtin/commit.c:764 +#: builtin/commit.c:816 #, c-format msgid "" "\n" @@ -3978,7 +4007,7 @@ msgid "" "and try again.\n" msgstr "" -#: builtin/commit.c:769 +#: builtin/commit.c:821 #, c-format msgid "" "\n" @@ -3988,14 +4017,14 @@ msgid "" "and try again.\n" msgstr "" -#: builtin/commit.c:782 +#: builtin/commit.c:834 #, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" "with '%c' will be ignored, and an empty message aborts the commit.\n" msgstr "" -#: builtin/commit.c:789 +#: builtin/commit.c:841 #, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" @@ -4003,351 +4032,356 @@ msgid "" "An empty message aborts the commit.\n" msgstr "" -#: builtin/commit.c:802 +#: builtin/commit.c:855 +#, c-format +msgid "%sAuthor: %.*s <%.*s>" +msgstr "" + +#: builtin/commit.c:863 #, c-format -msgid "%sAuthor: %s" +msgid "%sDate: %s" msgstr "" -#: builtin/commit.c:809 +#: builtin/commit.c:870 #, c-format -msgid "%sCommitter: %s" +msgid "%sCommitter: %.*s <%.*s>" msgstr "" -#: builtin/commit.c:829 +#: builtin/commit.c:888 msgid "Cannot read index" msgstr "" -#: builtin/commit.c:872 +#: builtin/commit.c:945 msgid "Error building trees" msgstr "" -#: builtin/commit.c:887 builtin/tag.c:391 +#: builtin/commit.c:960 builtin/tag.c:495 #, c-format msgid "Please supply the message using either -m or -F option.\n" msgstr "" -#: builtin/commit.c:989 +#: builtin/commit.c:1061 #, c-format msgid "No existing author found with '%s'" msgstr "" -#: builtin/commit.c:1004 builtin/commit.c:1244 +#: builtin/commit.c:1076 builtin/commit.c:1316 #, c-format msgid "Invalid untracked files mode '%s'" msgstr "" -#: builtin/commit.c:1041 +#: builtin/commit.c:1113 msgid "--long and -z are incompatible" msgstr "" -#: builtin/commit.c:1071 +#: builtin/commit.c:1143 msgid "Using both --reset-author and --author does not make sense" msgstr "" -#: builtin/commit.c:1080 +#: builtin/commit.c:1152 msgid "You have nothing to amend." msgstr "" -#: builtin/commit.c:1083 +#: builtin/commit.c:1155 msgid "You are in the middle of a merge -- cannot amend." msgstr "" -#: builtin/commit.c:1085 +#: builtin/commit.c:1157 msgid "You are in the middle of a cherry-pick -- cannot amend." msgstr "" -#: builtin/commit.c:1088 +#: builtin/commit.c:1160 msgid "Options --squash and --fixup cannot be used together" msgstr "" -#: builtin/commit.c:1098 +#: builtin/commit.c:1170 msgid "Only one of -c/-C/-F/--fixup can be used." msgstr "" -#: builtin/commit.c:1100 +#: builtin/commit.c:1172 msgid "Option -m cannot be combined with -c/-C/-F/--fixup." msgstr "" -#: builtin/commit.c:1108 +#: builtin/commit.c:1180 msgid "--reset-author can be used only with -C, -c or --amend." msgstr "" -#: builtin/commit.c:1125 +#: builtin/commit.c:1197 msgid "Only one of --include/--only/--all/--interactive/--patch can be used." msgstr "" -#: builtin/commit.c:1127 +#: builtin/commit.c:1199 msgid "No paths with --include/--only does not make sense." msgstr "" -#: builtin/commit.c:1129 +#: builtin/commit.c:1201 msgid "Clever... amending the last one with dirty index." msgstr "" -#: builtin/commit.c:1131 +#: builtin/commit.c:1203 msgid "Explicit paths specified without -i or -o; assuming --only paths..." msgstr "" -#: builtin/commit.c:1143 builtin/tag.c:639 +#: builtin/commit.c:1215 builtin/tag.c:727 #, c-format msgid "Invalid cleanup mode %s" msgstr "" -#: builtin/commit.c:1148 +#: builtin/commit.c:1220 msgid "Paths with -a does not make sense." msgstr "" -#: builtin/commit.c:1258 builtin/commit.c:1516 +#: builtin/commit.c:1330 builtin/commit.c:1595 msgid "show status concisely" msgstr "" -#: builtin/commit.c:1260 builtin/commit.c:1518 +#: builtin/commit.c:1332 builtin/commit.c:1597 msgid "show branch information" msgstr "" -#: builtin/commit.c:1262 builtin/commit.c:1520 builtin/push.c:490 +#: builtin/commit.c:1334 builtin/commit.c:1599 builtin/push.c:489 msgid "machine-readable output" msgstr "" -#: builtin/commit.c:1265 builtin/commit.c:1522 +#: builtin/commit.c:1337 builtin/commit.c:1601 msgid "show status in long format (default)" msgstr "" -#: builtin/commit.c:1268 builtin/commit.c:1525 +#: builtin/commit.c:1340 builtin/commit.c:1604 msgid "terminate entries with NUL" msgstr "" -#: builtin/commit.c:1270 builtin/commit.c:1528 builtin/fast-export.c:674 -#: builtin/fast-export.c:677 builtin/tag.c:514 +#: builtin/commit.c:1342 builtin/commit.c:1607 builtin/fast-export.c:703 +#: builtin/fast-export.c:706 builtin/tag.c:602 msgid "mode" msgstr "" -#: builtin/commit.c:1271 builtin/commit.c:1528 +#: builtin/commit.c:1343 builtin/commit.c:1607 msgid "show untracked files, optional modes: all, normal, no. (Default: all)" msgstr "" -#: builtin/commit.c:1274 +#: builtin/commit.c:1346 msgid "show ignored files" msgstr "" -#: builtin/commit.c:1275 parse-options.h:153 +#: builtin/commit.c:1347 parse-options.h:153 msgid "when" msgstr "" -#: builtin/commit.c:1276 +#: builtin/commit.c:1348 msgid "" "ignore changes to submodules, optional when: all, dirty, untracked. " "(Default: all)" msgstr "" -#: builtin/commit.c:1278 +#: builtin/commit.c:1350 msgid "list untracked files in columns" msgstr "" -#: builtin/commit.c:1347 +#: builtin/commit.c:1419 msgid "couldn't look up newly created commit" msgstr "" -#: builtin/commit.c:1349 +#: builtin/commit.c:1421 msgid "could not parse newly created commit" msgstr "" -#: builtin/commit.c:1390 +#: builtin/commit.c:1469 msgid "detached HEAD" msgstr "" -#: builtin/commit.c:1392 +#: builtin/commit.c:1471 msgid " (root-commit)" msgstr "" -#: builtin/commit.c:1486 +#: builtin/commit.c:1565 msgid "suppress summary after successful commit" msgstr "" -#: builtin/commit.c:1487 +#: builtin/commit.c:1566 msgid "show diff in commit message template" msgstr "" -#: builtin/commit.c:1489 +#: builtin/commit.c:1568 msgid "Commit message options" msgstr "" -#: builtin/commit.c:1490 builtin/tag.c:512 +#: builtin/commit.c:1569 builtin/tag.c:600 msgid "read message from file" msgstr "" -#: builtin/commit.c:1491 +#: builtin/commit.c:1570 msgid "author" msgstr "" -#: builtin/commit.c:1491 +#: builtin/commit.c:1570 msgid "override author for commit" msgstr "" -#: builtin/commit.c:1492 builtin/gc.c:272 +#: builtin/commit.c:1571 builtin/gc.c:286 msgid "date" msgstr "" -#: builtin/commit.c:1492 +#: builtin/commit.c:1571 msgid "override date for commit" msgstr "" -#: builtin/commit.c:1493 builtin/merge.c:216 builtin/notes.c:409 -#: builtin/notes.c:566 builtin/tag.c:510 +#: builtin/commit.c:1572 builtin/merge.c:216 builtin/notes.c:409 +#: builtin/notes.c:566 builtin/tag.c:598 msgid "message" msgstr "" -#: builtin/commit.c:1493 +#: builtin/commit.c:1572 msgid "commit message" msgstr "" -#: builtin/commit.c:1494 +#: builtin/commit.c:1573 msgid "reuse and edit message from specified commit" msgstr "" -#: builtin/commit.c:1495 +#: builtin/commit.c:1574 msgid "reuse message from specified commit" msgstr "" -#: builtin/commit.c:1496 +#: builtin/commit.c:1575 msgid "use autosquash formatted message to fixup specified commit" msgstr "" -#: builtin/commit.c:1497 +#: builtin/commit.c:1576 msgid "use autosquash formatted message to squash specified commit" msgstr "" -#: builtin/commit.c:1498 +#: builtin/commit.c:1577 msgid "the commit is authored by me now (used with -C/-c/--amend)" msgstr "" -#: builtin/commit.c:1499 builtin/log.c:1180 builtin/revert.c:86 +#: builtin/commit.c:1578 builtin/log.c:1188 builtin/revert.c:86 msgid "add Signed-off-by:" msgstr "" -#: builtin/commit.c:1500 +#: builtin/commit.c:1579 msgid "use specified template file" msgstr "" -#: builtin/commit.c:1501 +#: builtin/commit.c:1580 msgid "force edit of commit" msgstr "" -#: builtin/commit.c:1502 +#: builtin/commit.c:1581 msgid "default" msgstr "" -#: builtin/commit.c:1502 builtin/tag.c:515 +#: builtin/commit.c:1581 builtin/tag.c:603 msgid "how to strip spaces and #comments from message" msgstr "" -#: builtin/commit.c:1503 +#: builtin/commit.c:1582 msgid "include status in commit message template" msgstr "" -#: builtin/commit.c:1504 builtin/merge.c:223 builtin/revert.c:92 -#: builtin/tag.c:516 +#: builtin/commit.c:1583 builtin/merge.c:223 builtin/revert.c:92 +#: builtin/tag.c:604 msgid "key-id" msgstr "" -#: builtin/commit.c:1505 builtin/merge.c:224 builtin/revert.c:93 +#: builtin/commit.c:1584 builtin/merge.c:224 builtin/revert.c:93 msgid "GPG sign commit" msgstr "" -#: builtin/commit.c:1508 +#: builtin/commit.c:1587 msgid "Commit contents options" msgstr "" -#: builtin/commit.c:1509 +#: builtin/commit.c:1588 msgid "commit all changed files" msgstr "" -#: builtin/commit.c:1510 +#: builtin/commit.c:1589 msgid "add specified files to index for commit" msgstr "" -#: builtin/commit.c:1511 +#: builtin/commit.c:1590 msgid "interactively add files" msgstr "" -#: builtin/commit.c:1512 +#: builtin/commit.c:1591 msgid "interactively add changes" msgstr "" -#: builtin/commit.c:1513 +#: builtin/commit.c:1592 msgid "commit only specified files" msgstr "" -#: builtin/commit.c:1514 +#: builtin/commit.c:1593 msgid "bypass pre-commit hook" msgstr "" -#: builtin/commit.c:1515 +#: builtin/commit.c:1594 msgid "show what would be committed" msgstr "" -#: builtin/commit.c:1526 +#: builtin/commit.c:1605 msgid "amend previous commit" msgstr "" -#: builtin/commit.c:1527 +#: builtin/commit.c:1606 msgid "bypass post-rewrite hook" msgstr "" -#: builtin/commit.c:1532 +#: builtin/commit.c:1611 msgid "ok to record an empty change" msgstr "" -#: builtin/commit.c:1534 +#: builtin/commit.c:1613 msgid "ok to record a change with an empty message" msgstr "" -#: builtin/commit.c:1562 +#: builtin/commit.c:1641 msgid "could not parse HEAD commit" msgstr "" -#: builtin/commit.c:1601 builtin/merge.c:518 +#: builtin/commit.c:1680 builtin/merge.c:518 #, c-format msgid "could not open '%s' for reading" msgstr "" -#: builtin/commit.c:1608 +#: builtin/commit.c:1687 #, c-format msgid "Corrupt MERGE_HEAD file (%s)" msgstr "" -#: builtin/commit.c:1615 +#: builtin/commit.c:1694 msgid "could not read MERGE_MODE" msgstr "" -#: builtin/commit.c:1634 +#: builtin/commit.c:1713 #, c-format msgid "could not read commit message: %s" msgstr "" -#: builtin/commit.c:1645 +#: builtin/commit.c:1724 #, c-format msgid "Aborting commit; you did not edit the message.\n" msgstr "" -#: builtin/commit.c:1650 +#: builtin/commit.c:1729 #, c-format msgid "Aborting commit due to empty commit message.\n" msgstr "" -#: builtin/commit.c:1665 builtin/merge.c:857 builtin/merge.c:882 +#: builtin/commit.c:1744 builtin/merge.c:851 builtin/merge.c:876 msgid "failed to write commit object" msgstr "" -#: builtin/commit.c:1686 +#: builtin/commit.c:1756 msgid "cannot lock HEAD ref" msgstr "" -#: builtin/commit.c:1690 +#: builtin/commit.c:1769 msgid "cannot update HEAD ref" msgstr "" -#: builtin/commit.c:1701 +#: builtin/commit.c:1780 msgid "" "Repository has been updated, but unable to write\n" "new_index file. Check that disk is not full or quota is\n" @@ -4498,129 +4532,129 @@ msgstr "" msgid "git describe [options] --dirty" msgstr "" -#: builtin/describe.c:225 +#: builtin/describe.c:216 #, c-format msgid "annotated tag %s not available" msgstr "" -#: builtin/describe.c:229 +#: builtin/describe.c:220 #, c-format msgid "annotated tag %s has no embedded name" msgstr "" -#: builtin/describe.c:231 +#: builtin/describe.c:222 #, c-format msgid "tag '%s' is really '%s' here" msgstr "" -#: builtin/describe.c:258 +#: builtin/describe.c:249 #, c-format msgid "Not a valid object name %s" msgstr "" -#: builtin/describe.c:261 +#: builtin/describe.c:252 #, c-format msgid "%s is not a valid '%s' object" msgstr "" -#: builtin/describe.c:278 +#: builtin/describe.c:269 #, c-format msgid "no tag exactly matches '%s'" msgstr "" -#: builtin/describe.c:280 +#: builtin/describe.c:271 #, c-format msgid "searching to describe %s\n" msgstr "" -#: builtin/describe.c:327 +#: builtin/describe.c:318 #, c-format msgid "finished search at %s\n" msgstr "" -#: builtin/describe.c:354 +#: builtin/describe.c:345 #, c-format msgid "" "No annotated tags can describe '%s'.\n" "However, there were unannotated tags: try --tags." msgstr "" -#: builtin/describe.c:358 +#: builtin/describe.c:349 #, c-format msgid "" "No tags can describe '%s'.\n" "Try --always, or create some tags." msgstr "" -#: builtin/describe.c:379 +#: builtin/describe.c:370 #, c-format msgid "traversed %lu commits\n" msgstr "" -#: builtin/describe.c:382 +#: builtin/describe.c:373 #, c-format msgid "" "more than %i tags found; listed %i most recent\n" "gave up search at %s\n" msgstr "" -#: builtin/describe.c:404 +#: builtin/describe.c:395 msgid "find the tag that comes after the commit" msgstr "" -#: builtin/describe.c:405 +#: builtin/describe.c:396 msgid "debug search strategy on stderr" msgstr "" -#: builtin/describe.c:406 +#: builtin/describe.c:397 msgid "use any ref" msgstr "" -#: builtin/describe.c:407 +#: builtin/describe.c:398 msgid "use any tag, even unannotated" msgstr "" -#: builtin/describe.c:408 +#: builtin/describe.c:399 msgid "always use long format" msgstr "" -#: builtin/describe.c:409 +#: builtin/describe.c:400 msgid "only follow first parent" msgstr "" -#: builtin/describe.c:412 +#: builtin/describe.c:403 msgid "only output exact matches" msgstr "" -#: builtin/describe.c:414 +#: builtin/describe.c:405 msgid "consider <n> most recent tags (default: 10)" msgstr "" -#: builtin/describe.c:416 +#: builtin/describe.c:407 msgid "only consider tags matching <pattern>" msgstr "" -#: builtin/describe.c:418 builtin/name-rev.c:321 +#: builtin/describe.c:409 builtin/name-rev.c:318 msgid "show abbreviated commit object as fallback" msgstr "" -#: builtin/describe.c:419 +#: builtin/describe.c:410 msgid "mark" msgstr "" -#: builtin/describe.c:420 +#: builtin/describe.c:411 msgid "append <mark> on dirty working tree (default: \"-dirty\")" msgstr "" -#: builtin/describe.c:438 +#: builtin/describe.c:429 msgid "--long is incompatible with --abbrev=0" msgstr "" -#: builtin/describe.c:464 +#: builtin/describe.c:455 msgid "No names found, cannot describe anything." msgstr "" -#: builtin/describe.c:484 +#: builtin/describe.c:475 msgid "--dirty is incompatible with commit-ishes" msgstr "" @@ -4653,46 +4687,54 @@ msgstr "" msgid "unhandled object '%s' given." msgstr "" -#: builtin/fast-export.c:22 +#: builtin/fast-export.c:23 msgid "git fast-export [rev-list-opts]" msgstr "" -#: builtin/fast-export.c:673 +#: builtin/fast-export.c:702 msgid "show progress after <n> objects" msgstr "" -#: builtin/fast-export.c:675 +#: builtin/fast-export.c:704 msgid "select handling of signed tags" msgstr "" -#: builtin/fast-export.c:678 +#: builtin/fast-export.c:707 msgid "select handling of tags that tag filtered objects" msgstr "" -#: builtin/fast-export.c:681 +#: builtin/fast-export.c:710 msgid "Dump marks to this file" msgstr "" -#: builtin/fast-export.c:683 +#: builtin/fast-export.c:712 msgid "Import marks from this file" msgstr "" -#: builtin/fast-export.c:685 +#: builtin/fast-export.c:714 msgid "Fake a tagger when tags lack one" msgstr "" -#: builtin/fast-export.c:687 +#: builtin/fast-export.c:716 msgid "Output full tree for each commit" msgstr "" -#: builtin/fast-export.c:689 +#: builtin/fast-export.c:718 msgid "Use the done feature to terminate the stream" msgstr "" -#: builtin/fast-export.c:690 +#: builtin/fast-export.c:719 msgid "Skip output of blob data" msgstr "" +#: builtin/fast-export.c:720 +msgid "refspec" +msgstr "" + +#: builtin/fast-export.c:721 +msgid "Apply refspec to exported refs" +msgstr "" + #: builtin/fetch.c:20 msgid "git fetch [<options>] [<repository> [<refspec>...]]" msgstr "" @@ -4709,239 +4751,247 @@ msgstr "" msgid "git fetch --all [<options>]" msgstr "" -#: builtin/fetch.c:75 +#: builtin/fetch.c:90 msgid "fetch from all remotes" msgstr "" -#: builtin/fetch.c:77 +#: builtin/fetch.c:92 msgid "append to .git/FETCH_HEAD instead of overwriting" msgstr "" -#: builtin/fetch.c:79 +#: builtin/fetch.c:94 msgid "path to upload pack on remote end" msgstr "" -#: builtin/fetch.c:80 +#: builtin/fetch.c:95 msgid "force overwrite of local branch" msgstr "" -#: builtin/fetch.c:82 +#: builtin/fetch.c:97 msgid "fetch from multiple remotes" msgstr "" -#: builtin/fetch.c:84 +#: builtin/fetch.c:99 msgid "fetch all tags and associated objects" msgstr "" -#: builtin/fetch.c:86 +#: builtin/fetch.c:101 msgid "do not fetch all tags (--no-tags)" msgstr "" -#: builtin/fetch.c:88 +#: builtin/fetch.c:103 msgid "prune remote-tracking branches no longer on remote" msgstr "" -#: builtin/fetch.c:89 +#: builtin/fetch.c:104 msgid "on-demand" msgstr "" -#: builtin/fetch.c:90 +#: builtin/fetch.c:105 msgid "control recursive fetching of submodules" msgstr "" -#: builtin/fetch.c:94 +#: builtin/fetch.c:109 msgid "keep downloaded pack" msgstr "" -#: builtin/fetch.c:96 +#: builtin/fetch.c:111 msgid "allow updating of HEAD ref" msgstr "" -#: builtin/fetch.c:99 +#: builtin/fetch.c:114 msgid "deepen history of shallow clone" msgstr "" -#: builtin/fetch.c:101 +#: builtin/fetch.c:116 msgid "convert to a complete repository" msgstr "" -#: builtin/fetch.c:103 builtin/log.c:1197 +#: builtin/fetch.c:118 builtin/log.c:1205 msgid "dir" msgstr "" -#: builtin/fetch.c:104 +#: builtin/fetch.c:119 msgid "prepend this to submodule path output" msgstr "" -#: builtin/fetch.c:107 +#: builtin/fetch.c:122 msgid "default mode for recursion" msgstr "" -#: builtin/fetch.c:109 +#: builtin/fetch.c:124 msgid "accept refs that update .git/shallow" msgstr "" -#: builtin/fetch.c:347 +#: builtin/fetch.c:125 +msgid "refmap" +msgstr "" + +#: builtin/fetch.c:126 +msgid "specify fetch refmap" +msgstr "" + +#: builtin/fetch.c:376 msgid "Couldn't find remote ref HEAD" msgstr "" -#: builtin/fetch.c:411 +#: builtin/fetch.c:440 #, c-format msgid "object %s not found" msgstr "" -#: builtin/fetch.c:416 +#: builtin/fetch.c:445 msgid "[up to date]" msgstr "" -#: builtin/fetch.c:430 +#: builtin/fetch.c:459 #, c-format msgid "! %-*s %-*s -> %s (can't fetch in current branch)" msgstr "" -#: builtin/fetch.c:431 builtin/fetch.c:517 +#: builtin/fetch.c:460 builtin/fetch.c:546 msgid "[rejected]" msgstr "" -#: builtin/fetch.c:442 +#: builtin/fetch.c:471 msgid "[tag update]" msgstr "" -#: builtin/fetch.c:444 builtin/fetch.c:479 builtin/fetch.c:497 +#: builtin/fetch.c:473 builtin/fetch.c:508 builtin/fetch.c:526 msgid " (unable to update local ref)" msgstr "" -#: builtin/fetch.c:462 +#: builtin/fetch.c:491 msgid "[new tag]" msgstr "" -#: builtin/fetch.c:465 +#: builtin/fetch.c:494 msgid "[new branch]" msgstr "" -#: builtin/fetch.c:468 +#: builtin/fetch.c:497 msgid "[new ref]" msgstr "" -#: builtin/fetch.c:513 +#: builtin/fetch.c:542 msgid "unable to update local ref" msgstr "" -#: builtin/fetch.c:513 +#: builtin/fetch.c:542 msgid "forced update" msgstr "" -#: builtin/fetch.c:519 +#: builtin/fetch.c:548 msgid "(non-fast-forward)" msgstr "" -#: builtin/fetch.c:552 builtin/fetch.c:785 +#: builtin/fetch.c:581 builtin/fetch.c:814 #, c-format msgid "cannot open %s: %s\n" msgstr "" -#: builtin/fetch.c:561 +#: builtin/fetch.c:590 #, c-format msgid "%s did not send all necessary objects\n" msgstr "" -#: builtin/fetch.c:579 +#: builtin/fetch.c:608 #, c-format msgid "reject %s because shallow roots are not allowed to be updated" msgstr "" -#: builtin/fetch.c:667 builtin/fetch.c:750 +#: builtin/fetch.c:696 builtin/fetch.c:779 #, c-format msgid "From %.*s\n" msgstr "" -#: builtin/fetch.c:678 +#: builtin/fetch.c:707 #, 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:730 +#: builtin/fetch.c:759 #, c-format msgid " (%s will become dangling)" msgstr "" -#: builtin/fetch.c:731 +#: builtin/fetch.c:760 #, c-format msgid " (%s has become dangling)" msgstr "" -#: builtin/fetch.c:755 +#: builtin/fetch.c:784 msgid "[deleted]" msgstr "" -#: builtin/fetch.c:756 builtin/remote.c:1050 +#: builtin/fetch.c:785 builtin/remote.c:1059 msgid "(none)" msgstr "" -#: builtin/fetch.c:775 +#: builtin/fetch.c:804 #, c-format msgid "Refusing to fetch into current branch %s of non-bare repository" msgstr "" -#: builtin/fetch.c:794 +#: builtin/fetch.c:823 #, c-format msgid "Option \"%s\" value \"%s\" is not valid for %s" msgstr "" -#: builtin/fetch.c:797 +#: builtin/fetch.c:826 #, c-format msgid "Option \"%s\" is ignored for %s\n" msgstr "" -#: builtin/fetch.c:853 +#: builtin/fetch.c:882 #, c-format msgid "Don't know how to fetch from %s" msgstr "" -#: builtin/fetch.c:1015 +#: builtin/fetch.c:1044 #, c-format msgid "Fetching %s\n" msgstr "" -#: builtin/fetch.c:1017 builtin/remote.c:90 +#: builtin/fetch.c:1046 builtin/remote.c:90 #, c-format msgid "Could not fetch %s" msgstr "" -#: builtin/fetch.c:1035 +#: builtin/fetch.c:1064 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:1059 +#: builtin/fetch.c:1087 msgid "You need to specify a tag name." msgstr "" -#: builtin/fetch.c:1107 +#: builtin/fetch.c:1131 msgid "--depth and --unshallow cannot be used together" msgstr "" -#: builtin/fetch.c:1109 +#: builtin/fetch.c:1133 msgid "--unshallow on a complete repository does not make sense" msgstr "" -#: builtin/fetch.c:1132 +#: builtin/fetch.c:1156 msgid "fetch --all does not take a repository argument" msgstr "" -#: builtin/fetch.c:1134 +#: builtin/fetch.c:1158 msgid "fetch --all does not make sense with refspecs" msgstr "" -#: builtin/fetch.c:1145 +#: builtin/fetch.c:1169 #, c-format msgid "No such remote or remote group: %s" msgstr "" -#: builtin/fetch.c:1153 +#: builtin/fetch.c:1177 msgid "Fetching a group and specifying refspecs does not make sense" msgstr "" @@ -4949,9 +4999,9 @@ msgstr "" msgid "git fmt-merge-msg [-m <message>] [--log[=<n>]|--no-log] [--file <file>]" msgstr "" -#: builtin/fmt-merge-msg.c:663 builtin/fmt-merge-msg.c:666 builtin/grep.c:700 -#: builtin/merge.c:196 builtin/repack.c:175 builtin/repack.c:179 -#: builtin/show-branch.c:654 builtin/show-ref.c:178 builtin/tag.c:501 +#: builtin/fmt-merge-msg.c:663 builtin/fmt-merge-msg.c:666 builtin/grep.c:698 +#: builtin/merge.c:196 builtin/repack.c:179 builtin/repack.c:183 +#: builtin/show-branch.c:654 builtin/show-ref.c:178 builtin/tag.c:589 #: parse-options.h:132 parse-options.h:239 msgid "n" msgstr "" @@ -4976,43 +5026,43 @@ msgstr "" msgid "file to read from" msgstr "" -#: builtin/for-each-ref.c:1063 +#: builtin/for-each-ref.c:1051 msgid "git for-each-ref [options] [<pattern>]" msgstr "" -#: builtin/for-each-ref.c:1078 +#: builtin/for-each-ref.c:1066 msgid "quote placeholders suitably for shells" msgstr "" -#: builtin/for-each-ref.c:1080 +#: builtin/for-each-ref.c:1068 msgid "quote placeholders suitably for perl" msgstr "" -#: builtin/for-each-ref.c:1082 +#: builtin/for-each-ref.c:1070 msgid "quote placeholders suitably for python" msgstr "" -#: builtin/for-each-ref.c:1084 +#: builtin/for-each-ref.c:1072 msgid "quote placeholders suitably for tcl" msgstr "" -#: builtin/for-each-ref.c:1087 +#: builtin/for-each-ref.c:1075 msgid "show only <n> matched refs" msgstr "" -#: builtin/for-each-ref.c:1088 builtin/replace.c:177 +#: builtin/for-each-ref.c:1076 builtin/replace.c:435 msgid "format" msgstr "" -#: builtin/for-each-ref.c:1088 +#: builtin/for-each-ref.c:1076 msgid "format to use for the output" msgstr "" -#: builtin/for-each-ref.c:1089 +#: builtin/for-each-ref.c:1077 msgid "key" msgstr "" -#: builtin/for-each-ref.c:1090 +#: builtin/for-each-ref.c:1078 msgid "field name to sort on" msgstr "" @@ -5020,55 +5070,55 @@ msgstr "" msgid "Checking connectivity" msgstr "" -#: builtin/fsck.c:544 +#: builtin/fsck.c:538 msgid "Checking object directories" msgstr "" -#: builtin/fsck.c:607 +#: builtin/fsck.c:601 msgid "git fsck [options] [<object>...]" msgstr "" -#: builtin/fsck.c:613 +#: builtin/fsck.c:607 msgid "show unreachable objects" msgstr "" -#: builtin/fsck.c:614 +#: builtin/fsck.c:608 msgid "show dangling objects" msgstr "" -#: builtin/fsck.c:615 +#: builtin/fsck.c:609 msgid "report tags" msgstr "" -#: builtin/fsck.c:616 +#: builtin/fsck.c:610 msgid "report root nodes" msgstr "" -#: builtin/fsck.c:617 +#: builtin/fsck.c:611 msgid "make index objects head nodes" msgstr "" -#: builtin/fsck.c:618 +#: builtin/fsck.c:612 msgid "make reflogs head nodes (default)" msgstr "" -#: builtin/fsck.c:619 +#: builtin/fsck.c:613 msgid "also consider packs and alternate objects" msgstr "" -#: builtin/fsck.c:620 +#: builtin/fsck.c:614 msgid "enable more strict checking" msgstr "" -#: builtin/fsck.c:622 +#: builtin/fsck.c:616 msgid "write dangling objects in .git/lost-found" msgstr "" -#: builtin/fsck.c:623 builtin/prune.c:144 +#: builtin/fsck.c:617 builtin/prune.c:144 msgid "show progress" msgstr "" -#: builtin/fsck.c:673 +#: builtin/fsck.c:667 msgid "Checking objects" msgstr "" @@ -5076,54 +5126,54 @@ msgstr "" msgid "git gc [options]" msgstr "" -#: builtin/gc.c:90 +#: builtin/gc.c:91 #, c-format msgid "Invalid %s: '%s'" msgstr "" -#: builtin/gc.c:117 +#: builtin/gc.c:118 #, c-format msgid "insanely long object directory %.*s" msgstr "" -#: builtin/gc.c:273 +#: builtin/gc.c:287 msgid "prune unreferenced objects" msgstr "" -#: builtin/gc.c:275 +#: builtin/gc.c:289 msgid "be more thorough (increased runtime)" msgstr "" -#: builtin/gc.c:276 +#: builtin/gc.c:290 msgid "enable auto-gc mode" msgstr "" -#: builtin/gc.c:277 +#: builtin/gc.c:291 msgid "force running gc even if there may be another gc running" msgstr "" -#: builtin/gc.c:318 +#: builtin/gc.c:332 #, c-format msgid "Auto packing the repository in background for optimum performance.\n" msgstr "" -#: builtin/gc.c:320 +#: builtin/gc.c:334 #, c-format msgid "Auto packing the repository for optimum performance.\n" msgstr "" -#: builtin/gc.c:321 +#: builtin/gc.c:335 #, c-format msgid "See \"git help gc\" for manual housekeeping.\n" msgstr "" -#: builtin/gc.c:336 +#: builtin/gc.c:353 #, c-format msgid "" "gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)" msgstr "" -#: builtin/gc.c:361 +#: builtin/gc.c:375 msgid "" "There are too many unreachable loose objects; run 'git prune' to remove them." msgstr "" @@ -5137,224 +5187,219 @@ msgstr "" msgid "grep: failed to create thread: %s" msgstr "" -#: builtin/grep.c:365 -#, c-format -msgid "Failed to chdir: %s" -msgstr "" - -#: builtin/grep.c:443 builtin/grep.c:478 +#: builtin/grep.c:441 builtin/grep.c:476 #, c-format msgid "unable to read tree (%s)" msgstr "" -#: builtin/grep.c:493 +#: builtin/grep.c:491 #, c-format msgid "unable to grep from object of type %s" msgstr "" -#: builtin/grep.c:549 +#: builtin/grep.c:547 #, c-format msgid "switch `%c' expects a numerical value" msgstr "" -#: builtin/grep.c:566 +#: builtin/grep.c:564 #, c-format msgid "cannot open '%s'" msgstr "" -#: builtin/grep.c:640 +#: builtin/grep.c:638 msgid "search in index instead of in the work tree" msgstr "" -#: builtin/grep.c:642 +#: builtin/grep.c:640 msgid "find in contents not managed by git" msgstr "" -#: builtin/grep.c:644 +#: builtin/grep.c:642 msgid "search in both tracked and untracked files" msgstr "" -#: builtin/grep.c:646 +#: builtin/grep.c:644 msgid "search also in ignored files" msgstr "" -#: builtin/grep.c:649 +#: builtin/grep.c:647 msgid "show non-matching lines" msgstr "" -#: builtin/grep.c:651 +#: builtin/grep.c:649 msgid "case insensitive matching" msgstr "" -#: builtin/grep.c:653 +#: builtin/grep.c:651 msgid "match patterns only at word boundaries" msgstr "" -#: builtin/grep.c:655 +#: builtin/grep.c:653 msgid "process binary files as text" msgstr "" -#: builtin/grep.c:657 +#: builtin/grep.c:655 msgid "don't match patterns in binary files" msgstr "" -#: builtin/grep.c:660 +#: builtin/grep.c:658 msgid "process binary files with textconv filters" msgstr "" -#: builtin/grep.c:662 +#: builtin/grep.c:660 msgid "descend at most <depth> levels" msgstr "" -#: builtin/grep.c:666 +#: builtin/grep.c:664 msgid "use extended POSIX regular expressions" msgstr "" -#: builtin/grep.c:669 +#: builtin/grep.c:667 msgid "use basic POSIX regular expressions (default)" msgstr "" -#: builtin/grep.c:672 +#: builtin/grep.c:670 msgid "interpret patterns as fixed strings" msgstr "" -#: builtin/grep.c:675 +#: builtin/grep.c:673 msgid "use Perl-compatible regular expressions" msgstr "" -#: builtin/grep.c:678 +#: builtin/grep.c:676 msgid "show line numbers" msgstr "" -#: builtin/grep.c:679 +#: builtin/grep.c:677 msgid "don't show filenames" msgstr "" -#: builtin/grep.c:680 +#: builtin/grep.c:678 msgid "show filenames" msgstr "" -#: builtin/grep.c:682 +#: builtin/grep.c:680 msgid "show filenames relative to top directory" msgstr "" -#: builtin/grep.c:684 +#: builtin/grep.c:682 msgid "show only filenames instead of matching lines" msgstr "" -#: builtin/grep.c:686 +#: builtin/grep.c:684 msgid "synonym for --files-with-matches" msgstr "" -#: builtin/grep.c:689 +#: builtin/grep.c:687 msgid "show only the names of files without match" msgstr "" -#: builtin/grep.c:691 +#: builtin/grep.c:689 msgid "print NUL after filenames" msgstr "" -#: builtin/grep.c:693 +#: builtin/grep.c:691 msgid "show the number of matches instead of matching lines" msgstr "" -#: builtin/grep.c:694 +#: builtin/grep.c:692 msgid "highlight matches" msgstr "" -#: builtin/grep.c:696 +#: builtin/grep.c:694 msgid "print empty line between matches from different files" msgstr "" -#: builtin/grep.c:698 +#: builtin/grep.c:696 msgid "show filename only once above matches from same file" msgstr "" -#: builtin/grep.c:701 +#: builtin/grep.c:699 msgid "show <n> context lines before and after matches" msgstr "" -#: builtin/grep.c:704 +#: builtin/grep.c:702 msgid "show <n> context lines before matches" msgstr "" -#: builtin/grep.c:706 +#: builtin/grep.c:704 msgid "show <n> context lines after matches" msgstr "" -#: builtin/grep.c:707 +#: builtin/grep.c:705 msgid "shortcut for -C NUM" msgstr "" -#: builtin/grep.c:710 +#: builtin/grep.c:708 msgid "show a line with the function name before matches" msgstr "" -#: builtin/grep.c:712 +#: builtin/grep.c:710 msgid "show the surrounding function" msgstr "" -#: builtin/grep.c:715 +#: builtin/grep.c:713 msgid "read patterns from file" msgstr "" -#: builtin/grep.c:717 +#: builtin/grep.c:715 msgid "match <pattern>" msgstr "" -#: builtin/grep.c:719 +#: builtin/grep.c:717 msgid "combine patterns specified with -e" msgstr "" -#: builtin/grep.c:731 +#: builtin/grep.c:729 msgid "indicate hit with exit status without output" msgstr "" -#: builtin/grep.c:733 +#: builtin/grep.c:731 msgid "show only matches from files that match all patterns" msgstr "" -#: builtin/grep.c:735 +#: builtin/grep.c:733 msgid "show parse tree for grep expression" msgstr "" -#: builtin/grep.c:739 +#: builtin/grep.c:737 msgid "pager" msgstr "" -#: builtin/grep.c:739 +#: builtin/grep.c:737 msgid "show matching files in the pager" msgstr "" -#: builtin/grep.c:742 +#: builtin/grep.c:740 msgid "allow calling of grep(1) (ignored by this build)" msgstr "" -#: builtin/grep.c:743 builtin/show-ref.c:187 +#: builtin/grep.c:741 builtin/show-ref.c:187 msgid "show usage" msgstr "" -#: builtin/grep.c:810 +#: builtin/grep.c:808 msgid "no pattern given." msgstr "" -#: builtin/grep.c:868 +#: builtin/grep.c:866 msgid "--open-files-in-pager only works on the worktree" msgstr "" -#: builtin/grep.c:891 +#: builtin/grep.c:892 msgid "--cached or --untracked cannot be used with --no-index." msgstr "" -#: builtin/grep.c:896 +#: builtin/grep.c:897 msgid "--no-index or --untracked cannot be used with revs." msgstr "" -#: builtin/grep.c:899 +#: builtin/grep.c:900 msgid "--[no-]exclude-standard cannot be used for tracked contents." msgstr "" -#: builtin/grep.c:907 +#: builtin/grep.c:908 msgid "both --cached and trees are given." msgstr "" @@ -5368,7 +5413,7 @@ msgstr "" msgid "git hash-object --stdin-paths < <list-of-paths>" msgstr "" -#: builtin/hash-object.c:72 builtin/tag.c:521 +#: builtin/hash-object.c:72 builtin/tag.c:609 msgid "type" msgstr "" @@ -5508,280 +5553,291 @@ msgstr "" msgid "`git %s' is aliased to `%s'" msgstr "" -#: builtin/index-pack.c:184 +#: builtin/index-pack.c:145 +#, c-format +msgid "unable to open %s" +msgstr "" + +#: builtin/index-pack.c:191 #, c-format msgid "object type mismatch at %s" msgstr "" -#: builtin/index-pack.c:204 -msgid "object of unexpected type" +#: builtin/index-pack.c:211 +#, c-format +msgid "did not receive expected object %s" +msgstr "" + +#: builtin/index-pack.c:214 +#, c-format +msgid "object %s: expected type %s, found %s" msgstr "" -#: builtin/index-pack.c:244 +#: builtin/index-pack.c:256 #, c-format msgid "cannot fill %d byte" msgid_plural "cannot fill %d bytes" msgstr[0] "" msgstr[1] "" -#: builtin/index-pack.c:254 +#: builtin/index-pack.c:266 msgid "early EOF" msgstr "" -#: builtin/index-pack.c:255 +#: builtin/index-pack.c:267 msgid "read error on input" msgstr "" -#: builtin/index-pack.c:267 +#: builtin/index-pack.c:279 msgid "used more bytes than were available" msgstr "" -#: builtin/index-pack.c:274 +#: builtin/index-pack.c:286 msgid "pack too large for current definition of off_t" msgstr "" -#: builtin/index-pack.c:290 +#: builtin/index-pack.c:302 #, c-format msgid "unable to create '%s'" msgstr "" -#: builtin/index-pack.c:295 +#: builtin/index-pack.c:307 #, c-format msgid "cannot open packfile '%s'" msgstr "" -#: builtin/index-pack.c:309 +#: builtin/index-pack.c:321 msgid "pack signature mismatch" msgstr "" -#: builtin/index-pack.c:311 +#: builtin/index-pack.c:323 #, c-format msgid "pack version %<PRIu32> unsupported" msgstr "" -#: builtin/index-pack.c:329 +#: builtin/index-pack.c:341 #, c-format msgid "pack has bad object at offset %lu: %s" msgstr "" -#: builtin/index-pack.c:451 +#: builtin/index-pack.c:462 #, c-format msgid "inflate returned %d" msgstr "" -#: builtin/index-pack.c:500 +#: builtin/index-pack.c:511 msgid "offset value overflow for delta base object" msgstr "" -#: builtin/index-pack.c:508 +#: builtin/index-pack.c:519 msgid "delta base offset is out of bound" msgstr "" -#: builtin/index-pack.c:516 +#: builtin/index-pack.c:527 #, c-format msgid "unknown object type %d" msgstr "" -#: builtin/index-pack.c:547 +#: builtin/index-pack.c:558 msgid "cannot pread pack file" msgstr "" -#: builtin/index-pack.c:549 +#: builtin/index-pack.c:560 #, 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] "" -#: builtin/index-pack.c:575 +#: builtin/index-pack.c:586 msgid "serious inflate inconsistency" msgstr "" -#: builtin/index-pack.c:666 builtin/index-pack.c:672 builtin/index-pack.c:695 -#: builtin/index-pack.c:729 builtin/index-pack.c:738 +#: builtin/index-pack.c:677 builtin/index-pack.c:683 builtin/index-pack.c:706 +#: builtin/index-pack.c:740 builtin/index-pack.c:749 #, c-format msgid "SHA1 COLLISION FOUND WITH %s !" msgstr "" -#: builtin/index-pack.c:669 builtin/pack-objects.c:162 +#: builtin/index-pack.c:680 builtin/pack-objects.c:162 #: builtin/pack-objects.c:254 #, c-format msgid "unable to read %s" msgstr "" -#: builtin/index-pack.c:735 +#: builtin/index-pack.c:746 #, c-format msgid "cannot read existing object %s" msgstr "" -#: builtin/index-pack.c:749 +#: builtin/index-pack.c:760 #, c-format msgid "invalid blob object %s" msgstr "" -#: builtin/index-pack.c:763 +#: builtin/index-pack.c:774 #, c-format msgid "invalid %s" msgstr "" -#: builtin/index-pack.c:766 +#: builtin/index-pack.c:777 msgid "Error in object" msgstr "" -#: builtin/index-pack.c:768 +#: builtin/index-pack.c:779 #, c-format msgid "Not all child objects of %s are reachable" msgstr "" -#: builtin/index-pack.c:839 builtin/index-pack.c:869 +#: builtin/index-pack.c:851 builtin/index-pack.c:881 msgid "failed to apply delta" msgstr "" -#: builtin/index-pack.c:1010 +#: builtin/index-pack.c:1022 msgid "Receiving objects" msgstr "" -#: builtin/index-pack.c:1010 +#: builtin/index-pack.c:1022 msgid "Indexing objects" msgstr "" -#: builtin/index-pack.c:1036 +#: builtin/index-pack.c:1048 msgid "pack is corrupted (SHA1 mismatch)" msgstr "" -#: builtin/index-pack.c:1041 +#: builtin/index-pack.c:1053 msgid "cannot fstat packfile" msgstr "" -#: builtin/index-pack.c:1044 +#: builtin/index-pack.c:1056 msgid "pack has junk at the end" msgstr "" -#: builtin/index-pack.c:1055 +#: builtin/index-pack.c:1067 msgid "confusion beyond insanity in parse_pack_objects()" msgstr "" -#: builtin/index-pack.c:1078 +#: builtin/index-pack.c:1090 msgid "Resolving deltas" msgstr "" -#: builtin/index-pack.c:1088 +#: builtin/index-pack.c:1100 #, c-format msgid "unable to create thread: %s" msgstr "" -#: builtin/index-pack.c:1130 +#: builtin/index-pack.c:1142 msgid "confusion beyond insanity" msgstr "" -#: builtin/index-pack.c:1138 +#: builtin/index-pack.c:1150 #, c-format msgid "completed with %d local objects" msgstr "" -#: builtin/index-pack.c:1148 +#: builtin/index-pack.c:1160 #, c-format msgid "Unexpected tail checksum for %s (disk corruption?)" msgstr "" -#: builtin/index-pack.c:1152 +#: builtin/index-pack.c:1164 #, c-format msgid "pack has %d unresolved delta" msgid_plural "pack has %d unresolved deltas" msgstr[0] "" msgstr[1] "" -#: builtin/index-pack.c:1177 +#: builtin/index-pack.c:1189 #, c-format msgid "unable to deflate appended object (%d)" msgstr "" -#: builtin/index-pack.c:1256 +#: builtin/index-pack.c:1268 #, c-format msgid "local object %s is corrupt" msgstr "" -#: builtin/index-pack.c:1280 +#: builtin/index-pack.c:1292 msgid "error while closing pack file" msgstr "" -#: builtin/index-pack.c:1293 +#: builtin/index-pack.c:1305 #, c-format msgid "cannot write keep file '%s'" msgstr "" -#: builtin/index-pack.c:1301 +#: builtin/index-pack.c:1313 #, c-format msgid "cannot close written keep file '%s'" msgstr "" -#: builtin/index-pack.c:1314 +#: builtin/index-pack.c:1326 msgid "cannot store pack file" msgstr "" -#: builtin/index-pack.c:1325 +#: builtin/index-pack.c:1337 msgid "cannot store index file" msgstr "" -#: builtin/index-pack.c:1358 +#: builtin/index-pack.c:1370 #, c-format msgid "bad pack.indexversion=%<PRIu32>" msgstr "" -#: builtin/index-pack.c:1364 +#: builtin/index-pack.c:1376 #, c-format msgid "invalid number of threads specified (%d)" msgstr "" -#: builtin/index-pack.c:1368 builtin/index-pack.c:1546 +#: builtin/index-pack.c:1380 builtin/index-pack.c:1559 #, c-format msgid "no threads support, ignoring %s" msgstr "" -#: builtin/index-pack.c:1426 +#: builtin/index-pack.c:1438 #, c-format msgid "Cannot open existing pack file '%s'" msgstr "" -#: builtin/index-pack.c:1428 +#: builtin/index-pack.c:1440 #, c-format msgid "Cannot open existing pack idx file for '%s'" msgstr "" -#: builtin/index-pack.c:1475 +#: builtin/index-pack.c:1487 #, c-format msgid "non delta: %d object" msgid_plural "non delta: %d objects" msgstr[0] "" msgstr[1] "" -#: builtin/index-pack.c:1482 +#: builtin/index-pack.c:1494 #, c-format msgid "chain length = %d: %lu object" msgid_plural "chain length = %d: %lu objects" msgstr[0] "" msgstr[1] "" -#: builtin/index-pack.c:1510 +#: builtin/index-pack.c:1523 msgid "Cannot come back to cwd" msgstr "" -#: builtin/index-pack.c:1558 builtin/index-pack.c:1561 -#: builtin/index-pack.c:1573 builtin/index-pack.c:1577 +#: builtin/index-pack.c:1571 builtin/index-pack.c:1574 +#: builtin/index-pack.c:1586 builtin/index-pack.c:1590 #, c-format msgid "bad %s" msgstr "" -#: builtin/index-pack.c:1591 +#: builtin/index-pack.c:1604 msgid "--fix-thin cannot be used without --stdin" msgstr "" -#: builtin/index-pack.c:1595 builtin/index-pack.c:1605 +#: builtin/index-pack.c:1608 builtin/index-pack.c:1617 #, c-format msgid "packfile name '%s' does not end with '.pack'" msgstr "" -#: builtin/index-pack.c:1614 +#: builtin/index-pack.c:1625 msgid "--verify with no packfile name given" msgstr "" @@ -5908,7 +5964,7 @@ msgstr "" msgid "specify that the git repository is to be shared amongst several users" msgstr "" -#: builtin/init-db.c:491 builtin/prune-packed.c:79 builtin/repack.c:168 +#: builtin/init-db.c:491 builtin/prune-packed.c:79 builtin/repack.c:172 msgid "be quiet" msgstr "" @@ -5946,38 +6002,38 @@ msgstr "" msgid " or: git show [options] <object>..." msgstr "" -#: builtin/log.c:125 +#: builtin/log.c:127 msgid "suppress diff output" msgstr "" -#: builtin/log.c:126 +#: builtin/log.c:128 msgid "show source" msgstr "" -#: builtin/log.c:127 +#: builtin/log.c:129 msgid "Use mail map file" msgstr "" -#: builtin/log.c:128 +#: builtin/log.c:130 msgid "decorate options" msgstr "" -#: builtin/log.c:231 +#: builtin/log.c:229 #, c-format msgid "Final output: %d %s\n" msgstr "" -#: builtin/log.c:473 builtin/log.c:565 +#: builtin/log.c:470 builtin/log.c:562 #, c-format msgid "Could not read object %s" msgstr "" -#: builtin/log.c:589 +#: builtin/log.c:586 #, c-format msgid "Unknown type: %d" msgstr "" -#: builtin/log.c:689 +#: builtin/log.c:687 msgid "format.headers without value" msgstr "" @@ -5998,200 +6054,209 @@ msgstr "" msgid "Not a range." msgstr "" -#: builtin/log.c:911 +#: builtin/log.c:916 msgid "Cover letter needs email format" msgstr "" -#: builtin/log.c:987 +#: builtin/log.c:995 #, c-format msgid "insane in-reply-to: %s" msgstr "" -#: builtin/log.c:1015 +#: builtin/log.c:1023 msgid "git format-patch [options] [<since> | <revision range>]" msgstr "" -#: builtin/log.c:1060 +#: builtin/log.c:1068 msgid "Two output directories?" msgstr "" -#: builtin/log.c:1175 +#: builtin/log.c:1183 msgid "use [PATCH n/m] even with a single patch" msgstr "" -#: builtin/log.c:1178 +#: builtin/log.c:1186 msgid "use [PATCH] even with multiple patches" msgstr "" -#: builtin/log.c:1182 +#: builtin/log.c:1190 msgid "print patches to standard out" msgstr "" -#: builtin/log.c:1184 +#: builtin/log.c:1192 msgid "generate a cover letter" msgstr "" -#: builtin/log.c:1186 +#: builtin/log.c:1194 msgid "use simple number sequence for output file names" msgstr "" -#: builtin/log.c:1187 +#: builtin/log.c:1195 msgid "sfx" msgstr "" -#: builtin/log.c:1188 +#: builtin/log.c:1196 msgid "use <sfx> instead of '.patch'" msgstr "" -#: builtin/log.c:1190 +#: builtin/log.c:1198 msgid "start numbering patches at <n> instead of 1" msgstr "" -#: builtin/log.c:1192 +#: builtin/log.c:1200 msgid "mark the series as Nth re-roll" msgstr "" -#: builtin/log.c:1194 +#: builtin/log.c:1202 msgid "Use [<prefix>] instead of [PATCH]" msgstr "" -#: builtin/log.c:1197 +#: builtin/log.c:1205 msgid "store resulting files in <dir>" msgstr "" -#: builtin/log.c:1200 +#: builtin/log.c:1208 msgid "don't strip/add [PATCH]" msgstr "" -#: builtin/log.c:1203 +#: builtin/log.c:1211 msgid "don't output binary diffs" msgstr "" -#: builtin/log.c:1205 +#: builtin/log.c:1213 msgid "don't include a patch matching a commit upstream" msgstr "" -#: builtin/log.c:1207 +#: builtin/log.c:1215 msgid "show patch format instead of default (patch + stat)" msgstr "" -#: builtin/log.c:1209 +#: builtin/log.c:1217 msgid "Messaging" msgstr "" -#: builtin/log.c:1210 +#: builtin/log.c:1218 msgid "header" msgstr "" -#: builtin/log.c:1211 +#: builtin/log.c:1219 msgid "add email header" msgstr "" -#: builtin/log.c:1212 builtin/log.c:1214 +#: builtin/log.c:1220 builtin/log.c:1222 msgid "email" msgstr "" -#: builtin/log.c:1212 +#: builtin/log.c:1220 msgid "add To: header" msgstr "" -#: builtin/log.c:1214 +#: builtin/log.c:1222 msgid "add Cc: header" msgstr "" -#: builtin/log.c:1216 +#: builtin/log.c:1224 msgid "ident" msgstr "" -#: builtin/log.c:1217 +#: builtin/log.c:1225 msgid "set From address to <ident> (or committer ident if absent)" msgstr "" -#: builtin/log.c:1219 +#: builtin/log.c:1227 msgid "message-id" msgstr "" -#: builtin/log.c:1220 +#: builtin/log.c:1228 msgid "make first mail a reply to <message-id>" msgstr "" -#: builtin/log.c:1221 builtin/log.c:1224 +#: builtin/log.c:1229 builtin/log.c:1232 msgid "boundary" msgstr "" -#: builtin/log.c:1222 +#: builtin/log.c:1230 msgid "attach the patch" msgstr "" -#: builtin/log.c:1225 +#: builtin/log.c:1233 msgid "inline the patch" msgstr "" -#: builtin/log.c:1229 +#: builtin/log.c:1237 msgid "enable message threading, styles: shallow, deep" msgstr "" -#: builtin/log.c:1231 +#: builtin/log.c:1239 msgid "signature" msgstr "" -#: builtin/log.c:1232 +#: builtin/log.c:1240 msgid "add a signature" msgstr "" -#: builtin/log.c:1233 +#: builtin/log.c:1242 +msgid "add a signature from a file" +msgstr "" + +#: builtin/log.c:1243 msgid "don't print the patch filenames" msgstr "" -#: builtin/log.c:1307 +#: builtin/log.c:1317 #, c-format msgid "invalid ident line: %s" msgstr "" -#: builtin/log.c:1322 +#: builtin/log.c:1332 msgid "-n and -k are mutually exclusive." msgstr "" -#: builtin/log.c:1324 +#: builtin/log.c:1334 msgid "--subject-prefix and -k are mutually exclusive." msgstr "" -#: builtin/log.c:1332 +#: builtin/log.c:1342 msgid "--name-only does not make sense" msgstr "" -#: builtin/log.c:1334 +#: builtin/log.c:1344 msgid "--name-status does not make sense" msgstr "" -#: builtin/log.c:1336 +#: builtin/log.c:1346 msgid "--check does not make sense" msgstr "" -#: builtin/log.c:1359 +#: builtin/log.c:1369 msgid "standard output, or directory, which one?" msgstr "" -#: builtin/log.c:1361 +#: builtin/log.c:1371 #, c-format msgid "Could not create directory '%s'" msgstr "" -#: builtin/log.c:1509 +#: builtin/log.c:1468 +#, c-format +msgid "unable to read signature file '%s'" +msgstr "" + +#: builtin/log.c:1531 msgid "Failed to create output files" msgstr "" -#: builtin/log.c:1558 +#: builtin/log.c:1579 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]" msgstr "" -#: builtin/log.c:1613 +#: builtin/log.c:1634 #, c-format msgid "" "Could not find a tracked remote branch, please specify <upstream> manually.\n" msgstr "" -#: builtin/log.c:1626 builtin/log.c:1628 builtin/log.c:1640 +#: builtin/log.c:1647 builtin/log.c:1649 builtin/log.c:1661 #, c-format msgid "Unknown commit %s" msgstr "" @@ -6472,31 +6537,31 @@ msgstr "" msgid "git write-tree failed to write a tree" msgstr "" -#: builtin/merge.c:681 +#: builtin/merge.c:678 msgid "Not handling anything other than two heads merge." msgstr "" -#: builtin/merge.c:695 +#: builtin/merge.c:692 #, c-format msgid "Unknown option for merge-recursive: -X%s" msgstr "" -#: builtin/merge.c:709 +#: builtin/merge.c:705 #, c-format msgid "unable to write %s" msgstr "" -#: builtin/merge.c:798 +#: builtin/merge.c:794 #, c-format msgid "Could not read from '%s'" msgstr "" -#: builtin/merge.c:807 +#: builtin/merge.c:803 #, c-format msgid "Not committing merge; use 'git commit' to complete the merge.\n" msgstr "" -#: builtin/merge.c:813 +#: builtin/merge.c:809 #, c-format msgid "" "Please enter a commit message to explain why this merge is necessary,\n" @@ -6506,156 +6571,156 @@ msgid "" "the commit.\n" msgstr "" -#: builtin/merge.c:837 +#: builtin/merge.c:833 msgid "Empty commit message." msgstr "" -#: builtin/merge.c:849 +#: builtin/merge.c:845 #, c-format msgid "Wonderful.\n" msgstr "" -#: builtin/merge.c:914 +#: builtin/merge.c:908 #, c-format msgid "Automatic merge failed; fix conflicts and then commit the result.\n" msgstr "" -#: builtin/merge.c:930 +#: builtin/merge.c:924 #, c-format msgid "'%s' is not a commit" msgstr "" -#: builtin/merge.c:971 +#: builtin/merge.c:965 msgid "No current branch." msgstr "" -#: builtin/merge.c:973 +#: builtin/merge.c:967 msgid "No remote for the current branch." msgstr "" -#: builtin/merge.c:975 +#: builtin/merge.c:969 msgid "No default upstream defined for the current branch." msgstr "" -#: builtin/merge.c:980 +#: builtin/merge.c:974 #, c-format msgid "No remote-tracking branch for %s from %s" msgstr "" -#: builtin/merge.c:1136 +#: builtin/merge.c:1130 msgid "There is no merge to abort (MERGE_HEAD missing)." msgstr "" -#: builtin/merge.c:1152 git-pull.sh:31 +#: builtin/merge.c:1146 git-pull.sh:31 msgid "" "You have not concluded your merge (MERGE_HEAD exists).\n" "Please, commit your changes before you can merge." msgstr "" -#: builtin/merge.c:1155 git-pull.sh:34 +#: builtin/merge.c:1149 git-pull.sh:34 msgid "You have not concluded your merge (MERGE_HEAD exists)." msgstr "" -#: builtin/merge.c:1159 +#: builtin/merge.c:1153 msgid "" "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n" "Please, commit your changes before you can merge." msgstr "" -#: builtin/merge.c:1162 +#: builtin/merge.c:1156 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)." msgstr "" -#: builtin/merge.c:1171 +#: builtin/merge.c:1165 msgid "You cannot combine --squash with --no-ff." msgstr "" -#: builtin/merge.c:1180 +#: builtin/merge.c:1174 msgid "No commit specified and merge.defaultToUpstream not set." msgstr "" -#: builtin/merge.c:1212 +#: builtin/merge.c:1206 msgid "Can merge only exactly one commit into empty head" msgstr "" -#: builtin/merge.c:1215 +#: builtin/merge.c:1209 msgid "Squash commit into empty head not supported yet" msgstr "" -#: builtin/merge.c:1217 +#: builtin/merge.c:1211 msgid "Non-fast-forward commit does not make sense into an empty head" msgstr "" -#: builtin/merge.c:1222 +#: builtin/merge.c:1216 #, c-format msgid "%s - not something we can merge" msgstr "" -#: builtin/merge.c:1273 +#: builtin/merge.c:1267 #, c-format msgid "Commit %s has an untrusted GPG signature, allegedly by %s." msgstr "" -#: builtin/merge.c:1276 +#: builtin/merge.c:1270 #, c-format msgid "Commit %s has a bad GPG signature allegedly by %s." msgstr "" -#: builtin/merge.c:1279 +#: builtin/merge.c:1273 #, c-format msgid "Commit %s does not have a GPG signature." msgstr "" -#: builtin/merge.c:1282 +#: builtin/merge.c:1276 #, c-format msgid "Commit %s has a good GPG signature by %s\n" msgstr "" -#: builtin/merge.c:1366 +#: builtin/merge.c:1357 #, c-format msgid "Updating %s..%s\n" msgstr "" -#: builtin/merge.c:1405 +#: builtin/merge.c:1396 #, c-format msgid "Trying really trivial in-index merge...\n" msgstr "" -#: builtin/merge.c:1412 +#: builtin/merge.c:1403 #, c-format msgid "Nope.\n" msgstr "" -#: builtin/merge.c:1444 +#: builtin/merge.c:1435 msgid "Not possible to fast-forward, aborting." msgstr "" -#: builtin/merge.c:1467 builtin/merge.c:1546 +#: builtin/merge.c:1458 builtin/merge.c:1537 #, c-format msgid "Rewinding the tree to pristine...\n" msgstr "" -#: builtin/merge.c:1471 +#: builtin/merge.c:1462 #, c-format msgid "Trying merge strategy %s...\n" msgstr "" -#: builtin/merge.c:1537 +#: builtin/merge.c:1528 #, c-format msgid "No merge strategy handled the merge.\n" msgstr "" -#: builtin/merge.c:1539 +#: builtin/merge.c:1530 #, c-format msgid "Merge with strategy %s failed.\n" msgstr "" -#: builtin/merge.c:1548 +#: builtin/merge.c:1539 #, c-format msgid "Using the %s to prepare resolving by hand.\n" msgstr "" -#: builtin/merge.c:1560 +#: builtin/merge.c:1551 #, c-format msgid "Automatic merge went well; stopped before committing as requested\n" msgstr "" @@ -6805,79 +6870,79 @@ msgstr "" msgid "not under version control" msgstr "" -#: builtin/mv.c:207 +#: builtin/mv.c:208 msgid "destination exists" msgstr "" -#: builtin/mv.c:215 +#: builtin/mv.c:216 #, c-format msgid "overwriting '%s'" msgstr "" -#: builtin/mv.c:218 +#: builtin/mv.c:219 msgid "Cannot overwrite" msgstr "" -#: builtin/mv.c:221 +#: builtin/mv.c:222 msgid "multiple sources for the same target" msgstr "" -#: builtin/mv.c:223 +#: builtin/mv.c:224 msgid "destination directory does not exist" msgstr "" -#: builtin/mv.c:243 +#: builtin/mv.c:244 #, 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:726 builtin/repack.c:355 +#: builtin/mv.c:257 builtin/remote.c:725 builtin/repack.c:358 #, c-format msgid "renaming '%s' failed" msgstr "" -#: builtin/name-rev.c:258 +#: builtin/name-rev.c:255 msgid "git name-rev [options] <commit>..." msgstr "" -#: builtin/name-rev.c:259 +#: builtin/name-rev.c:256 msgid "git name-rev [options] --all" msgstr "" -#: builtin/name-rev.c:260 +#: builtin/name-rev.c:257 msgid "git name-rev [options] --stdin" msgstr "" -#: builtin/name-rev.c:312 +#: builtin/name-rev.c:309 msgid "print only names (no SHA-1)" msgstr "" -#: builtin/name-rev.c:313 +#: builtin/name-rev.c:310 msgid "only use tags to name the commits" msgstr "" -#: builtin/name-rev.c:315 +#: builtin/name-rev.c:312 msgid "only use refs matching <pattern>" msgstr "" -#: builtin/name-rev.c:317 +#: builtin/name-rev.c:314 msgid "list all commits reachable from all refs" msgstr "" -#: builtin/name-rev.c:318 +#: builtin/name-rev.c:315 msgid "read from stdin" msgstr "" -#: builtin/name-rev.c:319 +#: builtin/name-rev.c:316 msgid "allow to print `undefined` names (default)" msgstr "" -#: builtin/name-rev.c:325 +#: builtin/name-rev.c:322 msgid "dereference tags in the input (internal use)" msgstr "" @@ -7000,7 +7065,7 @@ msgstr "" msgid "failed to finish 'show' for object '%s'" msgstr "" -#: builtin/notes.c:167 builtin/tag.c:373 +#: builtin/notes.c:167 builtin/tag.c:477 #, c-format msgid "could not create file '%s'" msgstr "" @@ -7023,12 +7088,12 @@ msgstr "" msgid "The note contents has been left in %s" msgstr "" -#: builtin/notes.c:248 builtin/tag.c:604 +#: builtin/notes.c:248 builtin/tag.c:692 #, c-format msgid "cannot read '%s'" msgstr "" -#: builtin/notes.c:250 builtin/tag.c:607 +#: builtin/notes.c:250 builtin/tag.c:695 #, c-format msgid "could not open or read '%s'" msgstr "" @@ -7036,7 +7101,7 @@ msgstr "" #: builtin/notes.c:269 builtin/notes.c:320 builtin/notes.c:322 #: builtin/notes.c:382 builtin/notes.c:436 builtin/notes.c:519 #: builtin/notes.c:524 builtin/notes.c:599 builtin/notes.c:641 -#: builtin/notes.c:843 builtin/tag.c:620 +#: builtin/notes.c:843 builtin/tag.c:708 #, c-format msgid "Failed to resolve '%s' as a valid ref." msgstr "" @@ -7081,7 +7146,7 @@ msgid "note contents in a file" msgstr "" #: builtin/notes.c:415 builtin/notes.c:418 builtin/notes.c:572 -#: builtin/notes.c:575 builtin/tag.c:539 +#: builtin/notes.c:575 builtin/tag.c:627 msgid "object" msgstr "" @@ -7191,7 +7256,7 @@ msgstr "" msgid "use notes from <notes_ref>" msgstr "" -#: builtin/notes.c:978 builtin/remote.c:1593 +#: builtin/notes.c:978 builtin/remote.c:1616 #, c-format msgid "Unknown subcommand: %s" msgstr "" @@ -7221,155 +7286,155 @@ msgstr "" msgid "Compressing objects" msgstr "" -#: builtin/pack-objects.c:2530 +#: builtin/pack-objects.c:2526 #, c-format msgid "unsupported index version %s" msgstr "" -#: builtin/pack-objects.c:2534 +#: builtin/pack-objects.c:2530 #, c-format msgid "bad index version '%s'" msgstr "" -#: builtin/pack-objects.c:2557 +#: builtin/pack-objects.c:2553 #, c-format msgid "option %s does not accept negative form" msgstr "" -#: builtin/pack-objects.c:2561 +#: builtin/pack-objects.c:2557 #, c-format msgid "unable to parse value '%s' for option %s" msgstr "" -#: builtin/pack-objects.c:2580 +#: builtin/pack-objects.c:2576 msgid "do not show progress meter" msgstr "" -#: builtin/pack-objects.c:2582 +#: builtin/pack-objects.c:2578 msgid "show progress meter" msgstr "" -#: builtin/pack-objects.c:2584 +#: builtin/pack-objects.c:2580 msgid "show progress meter during object writing phase" msgstr "" -#: builtin/pack-objects.c:2587 +#: builtin/pack-objects.c:2583 msgid "similar to --all-progress when progress meter is shown" msgstr "" -#: builtin/pack-objects.c:2588 +#: builtin/pack-objects.c:2584 msgid "version[,offset]" msgstr "" -#: builtin/pack-objects.c:2589 +#: builtin/pack-objects.c:2585 msgid "write the pack index file in the specified idx format version" msgstr "" -#: builtin/pack-objects.c:2592 +#: builtin/pack-objects.c:2588 msgid "maximum size of each output pack file" msgstr "" -#: builtin/pack-objects.c:2594 +#: builtin/pack-objects.c:2590 msgid "ignore borrowed objects from alternate object store" msgstr "" -#: builtin/pack-objects.c:2596 +#: builtin/pack-objects.c:2592 msgid "ignore packed objects" msgstr "" -#: builtin/pack-objects.c:2598 +#: builtin/pack-objects.c:2594 msgid "limit pack window by objects" msgstr "" -#: builtin/pack-objects.c:2600 +#: builtin/pack-objects.c:2596 msgid "limit pack window by memory in addition to object limit" msgstr "" -#: builtin/pack-objects.c:2602 +#: builtin/pack-objects.c:2598 msgid "maximum length of delta chain allowed in the resulting pack" msgstr "" -#: builtin/pack-objects.c:2604 +#: builtin/pack-objects.c:2600 msgid "reuse existing deltas" msgstr "" -#: builtin/pack-objects.c:2606 +#: builtin/pack-objects.c:2602 msgid "reuse existing objects" msgstr "" -#: builtin/pack-objects.c:2608 +#: builtin/pack-objects.c:2604 msgid "use OFS_DELTA objects" msgstr "" -#: builtin/pack-objects.c:2610 +#: builtin/pack-objects.c:2606 msgid "use threads when searching for best delta matches" msgstr "" -#: builtin/pack-objects.c:2612 +#: builtin/pack-objects.c:2608 msgid "do not create an empty pack output" msgstr "" -#: builtin/pack-objects.c:2614 +#: builtin/pack-objects.c:2610 msgid "read revision arguments from standard input" msgstr "" -#: builtin/pack-objects.c:2616 +#: builtin/pack-objects.c:2612 msgid "limit the objects to those that are not yet packed" msgstr "" -#: builtin/pack-objects.c:2619 +#: builtin/pack-objects.c:2615 msgid "include objects reachable from any reference" msgstr "" -#: builtin/pack-objects.c:2622 +#: builtin/pack-objects.c:2618 msgid "include objects referred by reflog entries" msgstr "" -#: builtin/pack-objects.c:2625 +#: builtin/pack-objects.c:2621 msgid "output pack to stdout" msgstr "" -#: builtin/pack-objects.c:2627 +#: builtin/pack-objects.c:2623 msgid "include tag objects that refer to objects to be packed" msgstr "" -#: builtin/pack-objects.c:2629 +#: builtin/pack-objects.c:2625 msgid "keep unreachable objects" msgstr "" -#: builtin/pack-objects.c:2630 parse-options.h:140 +#: builtin/pack-objects.c:2626 parse-options.h:140 msgid "time" msgstr "" -#: builtin/pack-objects.c:2631 +#: builtin/pack-objects.c:2627 msgid "unpack unreachable objects newer than <time>" msgstr "" -#: builtin/pack-objects.c:2634 +#: builtin/pack-objects.c:2630 msgid "create thin packs" msgstr "" -#: builtin/pack-objects.c:2636 +#: builtin/pack-objects.c:2632 msgid "ignore packs that have companion .keep file" msgstr "" -#: builtin/pack-objects.c:2638 +#: builtin/pack-objects.c:2634 msgid "pack compression level" msgstr "" -#: builtin/pack-objects.c:2640 +#: builtin/pack-objects.c:2636 msgid "do not hide commits by grafts" msgstr "" -#: builtin/pack-objects.c:2642 +#: builtin/pack-objects.c:2638 msgid "use a bitmap index if available to speed up counting objects" msgstr "" -#: builtin/pack-objects.c:2644 +#: builtin/pack-objects.c:2640 msgid "write a bitmap index together with the pack index" msgstr "" -#: builtin/pack-objects.c:2723 +#: builtin/pack-objects.c:2719 msgid "Counting objects" msgstr "" @@ -7421,13 +7486,13 @@ msgstr "" msgid "--delete only accepts plain target ref names" msgstr "" -#: builtin/push.c:140 +#: builtin/push.c:139 msgid "" "\n" "To choose either option permanently, see push.default in 'git help config'." msgstr "" -#: builtin/push.c:143 +#: builtin/push.c:142 #, c-format msgid "" "The upstream branch of your current branch does not match\n" @@ -7442,7 +7507,7 @@ msgid "" "%s" msgstr "" -#: builtin/push.c:158 +#: builtin/push.c:157 #, c-format msgid "" "You are not currently on a branch.\n" @@ -7452,7 +7517,7 @@ msgid "" " git push %s HEAD:<name-of-remote-branch>\n" msgstr "" -#: builtin/push.c:172 +#: builtin/push.c:171 #, c-format msgid "" "The current branch %s has no upstream branch.\n" @@ -7461,12 +7526,12 @@ msgid "" " git push --set-upstream %s %s\n" msgstr "" -#: builtin/push.c:180 +#: builtin/push.c:179 #, c-format msgid "The current branch %s has multiple upstream branches, refusing to push." msgstr "" -#: builtin/push.c:183 +#: builtin/push.c:182 #, c-format msgid "" "You are pushing to remote '%s', which is not the upstream of\n" @@ -7474,7 +7539,7 @@ msgid "" "to update which remote branch." msgstr "" -#: builtin/push.c:206 +#: builtin/push.c:205 msgid "" "push.default is unset; its implicit value has changed in\n" "Git 2.0 from 'matching' to 'simple'. To squelch this message\n" @@ -7499,12 +7564,12 @@ msgid "" "'current' instead of 'simple' if you sometimes use older versions of Git)" msgstr "" -#: builtin/push.c:273 +#: builtin/push.c:272 msgid "" "You didn't specify any refspecs to push, and push.default is \"nothing\"." msgstr "" -#: builtin/push.c:280 +#: builtin/push.c:279 msgid "" "Updates were rejected because the tip of your current branch is behind\n" "its remote counterpart. Integrate the remote changes (e.g.\n" @@ -7512,7 +7577,7 @@ msgid "" "See the 'Note about fast-forwards' in 'git push --help' for details." msgstr "" -#: builtin/push.c:286 +#: builtin/push.c:285 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" @@ -7520,7 +7585,7 @@ msgid "" "See the 'Note about fast-forwards' in 'git push --help' for details." msgstr "" -#: builtin/push.c:292 +#: builtin/push.c:291 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" @@ -7529,33 +7594,33 @@ msgid "" "See the 'Note about fast-forwards' in 'git push --help' for details." msgstr "" -#: builtin/push.c:299 +#: builtin/push.c:298 msgid "Updates were rejected because the tag already exists in the remote." msgstr "" -#: builtin/push.c:302 +#: builtin/push.c:301 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:361 +#: builtin/push.c:360 #, c-format msgid "Pushing to %s\n" msgstr "" -#: builtin/push.c:365 +#: builtin/push.c:364 #, c-format msgid "failed to push some refs to '%s'" msgstr "" -#: builtin/push.c:395 +#: builtin/push.c:394 #, c-format msgid "bad repository '%s'" msgstr "" -#: builtin/push.c:396 +#: builtin/push.c:395 msgid "" "No configured push destination.\n" "Either specify the URL from the command-line or configure a remote " @@ -7568,95 +7633,95 @@ msgid "" " git push <name>\n" msgstr "" -#: builtin/push.c:411 +#: builtin/push.c:410 msgid "--all and --tags are incompatible" msgstr "" -#: builtin/push.c:412 +#: builtin/push.c:411 msgid "--all can't be combined with refspecs" msgstr "" -#: builtin/push.c:417 +#: builtin/push.c:416 msgid "--mirror and --tags are incompatible" msgstr "" -#: builtin/push.c:418 +#: builtin/push.c:417 msgid "--mirror can't be combined with refspecs" msgstr "" -#: builtin/push.c:423 +#: builtin/push.c:422 msgid "--all and --mirror are incompatible" msgstr "" -#: builtin/push.c:483 +#: builtin/push.c:482 msgid "repository" msgstr "" -#: builtin/push.c:484 +#: builtin/push.c:483 msgid "push all refs" msgstr "" -#: builtin/push.c:485 +#: builtin/push.c:484 msgid "mirror all refs" msgstr "" -#: builtin/push.c:487 +#: builtin/push.c:486 msgid "delete refs" msgstr "" -#: builtin/push.c:488 +#: builtin/push.c:487 msgid "push tags (can't be used with --all or --mirror)" msgstr "" -#: builtin/push.c:491 +#: builtin/push.c:490 msgid "force updates" msgstr "" -#: builtin/push.c:493 +#: builtin/push.c:492 msgid "refname>:<expect" msgstr "" -#: builtin/push.c:494 +#: builtin/push.c:493 msgid "require old value of ref to be at this value" msgstr "" -#: builtin/push.c:496 +#: builtin/push.c:495 msgid "check" msgstr "" -#: builtin/push.c:497 +#: builtin/push.c:496 msgid "control recursive pushing of submodules" msgstr "" -#: builtin/push.c:499 +#: builtin/push.c:498 msgid "use thin pack" msgstr "" -#: builtin/push.c:500 builtin/push.c:501 +#: builtin/push.c:499 builtin/push.c:500 msgid "receive pack program" msgstr "" -#: builtin/push.c:502 +#: builtin/push.c:501 msgid "set upstream for git pull/status" msgstr "" -#: builtin/push.c:505 +#: builtin/push.c:504 msgid "prune locally removed refs" msgstr "" -#: builtin/push.c:507 +#: builtin/push.c:506 msgid "bypass pre-push hook" msgstr "" -#: builtin/push.c:508 +#: builtin/push.c:507 msgid "push missing but relevant tags" msgstr "" -#: builtin/push.c:518 +#: builtin/push.c:517 msgid "--delete is incompatible with --all, --mirror and --tags" msgstr "" -#: builtin/push.c:520 +#: builtin/push.c:519 msgid "--delete doesn't make sense without any refs" msgstr "" @@ -7872,12 +7937,12 @@ msgstr "" msgid "specifying branches to track makes sense only with fetch mirrors" msgstr "" -#: builtin/remote.c:185 builtin/remote.c:641 +#: builtin/remote.c:185 builtin/remote.c:640 #, c-format msgid "remote %s already exists." msgstr "" -#: builtin/remote.c:189 builtin/remote.c:645 +#: builtin/remote.c:189 builtin/remote.c:644 #, c-format msgid "'%s' is not a valid remote name" msgstr "" @@ -7887,45 +7952,45 @@ msgstr "" msgid "Could not setup master '%s'" msgstr "" -#: builtin/remote.c:289 +#: builtin/remote.c:288 #, c-format msgid "more than one %s" msgstr "" -#: builtin/remote.c:334 +#: builtin/remote.c:333 #, c-format msgid "Could not get fetch map for refspec %s" msgstr "" -#: builtin/remote.c:435 builtin/remote.c:443 +#: builtin/remote.c:434 builtin/remote.c:442 msgid "(matching)" msgstr "" -#: builtin/remote.c:447 +#: builtin/remote.c:446 msgid "(delete)" msgstr "" -#: builtin/remote.c:590 builtin/remote.c:596 builtin/remote.c:602 +#: builtin/remote.c:589 builtin/remote.c:595 builtin/remote.c:601 #, c-format msgid "Could not append '%s' to '%s'" msgstr "" -#: builtin/remote.c:634 builtin/remote.c:787 builtin/remote.c:885 +#: builtin/remote.c:633 builtin/remote.c:794 builtin/remote.c:894 #, c-format msgid "No such remote: %s" msgstr "" -#: builtin/remote.c:651 +#: builtin/remote.c:650 #, c-format msgid "Could not rename config section '%s' to '%s'" msgstr "" -#: builtin/remote.c:657 builtin/remote.c:794 +#: builtin/remote.c:656 builtin/remote.c:846 #, c-format msgid "Could not remove config section '%s'" msgstr "" -#: builtin/remote.c:672 +#: builtin/remote.c:671 #, c-format msgid "" "Not updating non-default fetch refspec\n" @@ -7933,32 +7998,32 @@ msgid "" "\tPlease update the configuration manually if necessary." msgstr "" -#: builtin/remote.c:678 +#: builtin/remote.c:677 #, c-format msgid "Could not append '%s'" msgstr "" -#: builtin/remote.c:689 +#: builtin/remote.c:688 #, c-format msgid "Could not set '%s'" msgstr "" -#: builtin/remote.c:711 +#: builtin/remote.c:710 #, c-format msgid "deleting '%s' failed" msgstr "" -#: builtin/remote.c:745 +#: builtin/remote.c:744 #, c-format msgid "creating '%s' failed" msgstr "" -#: builtin/remote.c:759 +#: builtin/remote.c:765 #, c-format msgid "Could not remove branch %s" msgstr "" -#: builtin/remote.c:829 +#: builtin/remote.c:832 msgid "" "Note: A branch outside the refs/remotes/ hierarchy was not removed;\n" "to delete it, use:" @@ -7968,363 +8033,419 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: builtin/remote.c:938 +#: builtin/remote.c:947 #, c-format msgid " new (next fetch will store in remotes/%s)" msgstr "" -#: builtin/remote.c:941 +#: builtin/remote.c:950 msgid " tracked" msgstr "" -#: builtin/remote.c:943 +#: builtin/remote.c:952 msgid " stale (use 'git remote prune' to remove)" msgstr "" -#: builtin/remote.c:945 +#: builtin/remote.c:954 msgid " ???" msgstr "" -#: builtin/remote.c:986 +#: builtin/remote.c:995 #, c-format msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch" msgstr "" -#: builtin/remote.c:993 +#: builtin/remote.c:1002 #, c-format msgid "rebases onto remote %s" msgstr "" -#: builtin/remote.c:996 +#: builtin/remote.c:1005 #, c-format msgid " merges with remote %s" msgstr "" -#: builtin/remote.c:997 +#: builtin/remote.c:1006 msgid " and with remote" msgstr "" -#: builtin/remote.c:999 +#: builtin/remote.c:1008 #, c-format msgid "merges with remote %s" msgstr "" -#: builtin/remote.c:1000 +#: builtin/remote.c:1009 msgid " and with remote" msgstr "" -#: builtin/remote.c:1046 +#: builtin/remote.c:1055 msgid "create" msgstr "" -#: builtin/remote.c:1049 +#: builtin/remote.c:1058 msgid "delete" msgstr "" -#: builtin/remote.c:1053 +#: builtin/remote.c:1062 msgid "up to date" msgstr "" -#: builtin/remote.c:1056 +#: builtin/remote.c:1065 msgid "fast-forwardable" msgstr "" -#: builtin/remote.c:1059 +#: builtin/remote.c:1068 msgid "local out of date" msgstr "" -#: builtin/remote.c:1066 +#: builtin/remote.c:1075 #, c-format msgid " %-*s forces to %-*s (%s)" msgstr "" -#: builtin/remote.c:1069 +#: builtin/remote.c:1078 #, c-format msgid " %-*s pushes to %-*s (%s)" msgstr "" -#: builtin/remote.c:1073 +#: builtin/remote.c:1082 #, c-format msgid " %-*s forces to %s" msgstr "" -#: builtin/remote.c:1076 +#: builtin/remote.c:1085 #, c-format msgid " %-*s pushes to %s" msgstr "" -#: builtin/remote.c:1144 +#: builtin/remote.c:1153 msgid "do not query remotes" msgstr "" -#: builtin/remote.c:1171 +#: builtin/remote.c:1180 #, c-format msgid "* remote %s" msgstr "" -#: builtin/remote.c:1172 +#: builtin/remote.c:1181 #, c-format msgid " Fetch URL: %s" msgstr "" -#: builtin/remote.c:1173 builtin/remote.c:1318 +#: builtin/remote.c:1182 builtin/remote.c:1329 msgid "(no URL)" msgstr "" -#: builtin/remote.c:1182 builtin/remote.c:1184 +#: builtin/remote.c:1191 builtin/remote.c:1193 #, c-format msgid " Push URL: %s" msgstr "" -#: builtin/remote.c:1186 builtin/remote.c:1188 builtin/remote.c:1190 +#: builtin/remote.c:1195 builtin/remote.c:1197 builtin/remote.c:1199 #, c-format msgid " HEAD branch: %s" msgstr "" -#: builtin/remote.c:1192 +#: builtin/remote.c:1201 #, c-format msgid "" " HEAD branch (remote HEAD is ambiguous, may be one of the following):\n" msgstr "" -#: builtin/remote.c:1204 +#: builtin/remote.c:1213 #, c-format msgid " Remote branch:%s" msgid_plural " Remote branches:%s" msgstr[0] "" msgstr[1] "" -#: builtin/remote.c:1207 builtin/remote.c:1234 +#: builtin/remote.c:1216 builtin/remote.c:1243 msgid " (status not queried)" msgstr "" -#: builtin/remote.c:1216 +#: builtin/remote.c:1225 msgid " Local branch configured for 'git pull':" msgid_plural " Local branches configured for 'git pull':" msgstr[0] "" msgstr[1] "" -#: builtin/remote.c:1224 +#: builtin/remote.c:1233 msgid " Local refs will be mirrored by 'git push'" msgstr "" -#: builtin/remote.c:1231 +#: builtin/remote.c:1240 #, 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:1252 +#: builtin/remote.c:1261 msgid "set refs/remotes/<name>/HEAD according to remote" msgstr "" -#: builtin/remote.c:1254 +#: builtin/remote.c:1263 msgid "delete refs/remotes/<name>/HEAD" msgstr "" -#: builtin/remote.c:1269 +#: builtin/remote.c:1278 msgid "Cannot determine remote HEAD" msgstr "" -#: builtin/remote.c:1271 +#: builtin/remote.c:1280 msgid "Multiple remote HEAD branches. Please choose one explicitly with:" msgstr "" -#: builtin/remote.c:1281 +#: builtin/remote.c:1290 #, c-format msgid "Could not delete %s" msgstr "" -#: builtin/remote.c:1289 +#: builtin/remote.c:1298 #, c-format msgid "Not a valid ref: %s" msgstr "" -#: builtin/remote.c:1291 +#: builtin/remote.c:1300 #, c-format msgid "Could not setup %s" msgstr "" -#: builtin/remote.c:1307 +#: builtin/remote.c:1318 #, c-format msgid " %s will become dangling!" msgstr "" -#: builtin/remote.c:1308 +#: builtin/remote.c:1319 #, c-format msgid " %s has become dangling!" msgstr "" -#: builtin/remote.c:1314 +#: builtin/remote.c:1325 #, c-format msgid "Pruning %s" msgstr "" -#: builtin/remote.c:1315 +#: builtin/remote.c:1326 #, c-format msgid "URL: %s" msgstr "" -#: builtin/remote.c:1328 +#: builtin/remote.c:1349 #, c-format msgid " * [would prune] %s" msgstr "" -#: builtin/remote.c:1331 +#: builtin/remote.c:1352 #, c-format msgid " * [pruned] %s" msgstr "" -#: builtin/remote.c:1374 +#: builtin/remote.c:1397 msgid "prune remotes after fetching" msgstr "" -#: builtin/remote.c:1440 builtin/remote.c:1514 +#: builtin/remote.c:1463 builtin/remote.c:1537 #, c-format msgid "No such remote '%s'" msgstr "" -#: builtin/remote.c:1460 +#: builtin/remote.c:1483 msgid "add branch" msgstr "" -#: builtin/remote.c:1467 +#: builtin/remote.c:1490 msgid "no remote specified" msgstr "" -#: builtin/remote.c:1489 +#: builtin/remote.c:1512 msgid "manipulate push URLs" msgstr "" -#: builtin/remote.c:1491 +#: builtin/remote.c:1514 msgid "add URL" msgstr "" -#: builtin/remote.c:1493 +#: builtin/remote.c:1516 msgid "delete URLs" msgstr "" -#: builtin/remote.c:1500 +#: builtin/remote.c:1523 msgid "--add --delete doesn't make sense" msgstr "" -#: builtin/remote.c:1540 +#: builtin/remote.c:1563 #, c-format msgid "Invalid old URL pattern: %s" msgstr "" -#: builtin/remote.c:1548 +#: builtin/remote.c:1571 #, c-format msgid "No such URL found: %s" msgstr "" -#: builtin/remote.c:1550 +#: builtin/remote.c:1573 msgid "Will not delete all non-push URLs" msgstr "" -#: builtin/remote.c:1564 +#: builtin/remote.c:1587 msgid "be verbose; must be placed before a subcommand" msgstr "" -#: builtin/repack.c:16 +#: builtin/repack.c:17 msgid "git repack [options]" msgstr "" -#: builtin/repack.c:156 +#: builtin/repack.c:160 msgid "pack everything in a single pack" msgstr "" -#: builtin/repack.c:158 +#: builtin/repack.c:162 msgid "same as -a, and turn unreachable objects loose" msgstr "" -#: builtin/repack.c:161 +#: builtin/repack.c:165 msgid "remove redundant packs, and run git-prune-packed" msgstr "" -#: builtin/repack.c:163 +#: builtin/repack.c:167 msgid "pass --no-reuse-delta to git-pack-objects" msgstr "" -#: builtin/repack.c:165 +#: builtin/repack.c:169 msgid "pass --no-reuse-object to git-pack-objects" msgstr "" -#: builtin/repack.c:167 +#: builtin/repack.c:171 msgid "do not run git-update-server-info" msgstr "" -#: builtin/repack.c:170 +#: builtin/repack.c:174 msgid "pass --local to git-pack-objects" msgstr "" -#: builtin/repack.c:172 +#: builtin/repack.c:176 msgid "write bitmap index" msgstr "" -#: builtin/repack.c:173 +#: builtin/repack.c:177 msgid "approxidate" msgstr "" -#: builtin/repack.c:174 +#: builtin/repack.c:178 msgid "with -A, do not loosen objects older than this" msgstr "" -#: builtin/repack.c:176 +#: builtin/repack.c:180 msgid "size of the window used for delta compression" msgstr "" -#: builtin/repack.c:177 builtin/repack.c:181 +#: builtin/repack.c:181 builtin/repack.c:185 msgid "bytes" msgstr "" -#: builtin/repack.c:178 +#: builtin/repack.c:182 msgid "same as the above, but limit memory size instead of entries count" msgstr "" -#: builtin/repack.c:180 +#: builtin/repack.c:184 msgid "limits the maximum delta depth" msgstr "" -#: builtin/repack.c:182 +#: builtin/repack.c:186 msgid "maximum size of each packfile" msgstr "" -#: builtin/repack.c:184 +#: builtin/repack.c:188 msgid "repack objects in packs marked with .keep" msgstr "" -#: builtin/repack.c:371 +#: builtin/repack.c:374 #, c-format msgid "removing '%s' failed" msgstr "" -#: builtin/replace.c:17 +#: builtin/replace.c:19 msgid "git replace [-f] <object> <replacement>" msgstr "" -#: builtin/replace.c:18 +#: builtin/replace.c:20 +msgid "git replace [-f] --edit <object>" +msgstr "" + +#: builtin/replace.c:21 +msgid "git replace [-f] --graft <commit> [<parent>...]" +msgstr "" + +#: builtin/replace.c:22 msgid "git replace -d <object>..." msgstr "" -#: builtin/replace.c:19 +#: builtin/replace.c:23 msgid "git replace [--format=<format>] [-l [<pattern>]]" msgstr "" -#: builtin/replace.c:174 +#: builtin/replace.c:322 builtin/replace.c:360 builtin/replace.c:388 +#, c-format +msgid "Not a valid object name: '%s'" +msgstr "" + +#: builtin/replace.c:352 +#, c-format +msgid "bad mergetag in commit '%s'" +msgstr "" + +#: builtin/replace.c:354 +#, c-format +msgid "malformed mergetag in commit '%s'" +msgstr "" + +#: builtin/replace.c:365 +#, c-format +msgid "" +"original commit '%s' contains mergetag '%s' that is discarded; use --edit " +"instead of --graft" +msgstr "" + +#: builtin/replace.c:398 +#, c-format +msgid "the original commit '%s' has a gpg signature." +msgstr "" + +#: builtin/replace.c:399 +msgid "the signature will be removed in the replacement commit!" +msgstr "" + +#: builtin/replace.c:405 +#, c-format +msgid "could not write replacement commit for: '%s'" +msgstr "" + +#: builtin/replace.c:429 msgid "list replace refs" msgstr "" -#: builtin/replace.c:175 +#: builtin/replace.c:430 msgid "delete replace refs" msgstr "" -#: builtin/replace.c:176 +#: builtin/replace.c:431 +msgid "edit existing object" +msgstr "" + +#: builtin/replace.c:432 +msgid "change a commit's parents" +msgstr "" + +#: builtin/replace.c:433 msgid "replace the ref if it exists" msgstr "" -#: builtin/replace.c:177 +#: builtin/replace.c:434 +msgid "do not pretty-print contents for --edit" +msgstr "" + +#: builtin/replace.c:435 msgid "use this format" msgstr "" @@ -8392,97 +8513,97 @@ msgstr "" msgid "Cannot do a %s reset in the middle of a merge." msgstr "" -#: builtin/reset.c:273 +#: builtin/reset.c:275 msgid "be quiet, only report errors" msgstr "" -#: builtin/reset.c:275 +#: builtin/reset.c:277 msgid "reset HEAD and index" msgstr "" -#: builtin/reset.c:276 +#: builtin/reset.c:278 msgid "reset only HEAD" msgstr "" -#: builtin/reset.c:278 builtin/reset.c:280 +#: builtin/reset.c:280 builtin/reset.c:282 msgid "reset HEAD, index and working tree" msgstr "" -#: builtin/reset.c:282 +#: builtin/reset.c:284 msgid "reset HEAD but keep local changes" msgstr "" -#: builtin/reset.c:285 +#: builtin/reset.c:287 msgid "record only the fact that removed paths will be added later" msgstr "" -#: builtin/reset.c:302 +#: builtin/reset.c:304 #, c-format msgid "Failed to resolve '%s' as a valid revision." msgstr "" -#: builtin/reset.c:305 builtin/reset.c:313 +#: builtin/reset.c:307 builtin/reset.c:315 #, c-format msgid "Could not parse object '%s'." msgstr "" -#: builtin/reset.c:310 +#: builtin/reset.c:312 #, c-format msgid "Failed to resolve '%s' as a valid tree." msgstr "" -#: builtin/reset.c:319 +#: builtin/reset.c:321 msgid "--patch is incompatible with --{hard,mixed,soft}" msgstr "" -#: builtin/reset.c:328 +#: builtin/reset.c:330 msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead." msgstr "" -#: builtin/reset.c:330 +#: builtin/reset.c:332 #, c-format msgid "Cannot do %s reset with paths." msgstr "" -#: builtin/reset.c:340 +#: builtin/reset.c:342 #, c-format msgid "%s reset is not allowed in a bare repository" msgstr "" -#: builtin/reset.c:344 +#: builtin/reset.c:346 msgid "-N can only be used with --mixed" msgstr "" -#: builtin/reset.c:361 +#: builtin/reset.c:363 msgid "Unstaged changes after reset:" msgstr "" -#: builtin/reset.c:367 +#: builtin/reset.c:369 #, c-format msgid "Could not reset index file to revision '%s'." msgstr "" -#: builtin/reset.c:372 +#: builtin/reset.c:373 msgid "Could not write new index file." msgstr "" -#: builtin/rev-parse.c:359 +#: builtin/rev-parse.c:360 msgid "git rev-parse --parseopt [options] -- [<args>...]" msgstr "" -#: builtin/rev-parse.c:364 +#: builtin/rev-parse.c:365 msgid "keep the `--` passed as an arg" msgstr "" -#: builtin/rev-parse.c:366 +#: builtin/rev-parse.c:367 msgid "stop parsing after the first non-option argument" msgstr "" -#: builtin/rev-parse.c:369 +#: builtin/rev-parse.c:370 msgid "output in stuck long form" msgstr "" -#: builtin/rev-parse.c:497 +#: builtin/rev-parse.c:498 msgid "" "git rev-parse --parseopt [options] -- [<args>...]\n" " or: git rev-parse --sq-quote [<arg>...]\n" @@ -8831,11 +8952,11 @@ msgstr "" msgid "shorten ref output" msgstr "" -#: builtin/symbolic-ref.c:43 builtin/update-ref.c:255 +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:349 msgid "reason" msgstr "" -#: builtin/symbolic-ref.c:43 builtin/update-ref.c:255 +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:349 msgid "reason of the update" msgstr "" @@ -8858,196 +8979,203 @@ msgstr "" msgid "git tag -v <tagname>..." msgstr "" -#: builtin/tag.c:67 +#: builtin/tag.c:69 #, c-format msgid "malformed object at '%s'" msgstr "" -#: builtin/tag.c:239 +#: builtin/tag.c:301 #, c-format msgid "tag name too long: %.*s..." msgstr "" -#: builtin/tag.c:244 +#: builtin/tag.c:306 #, c-format msgid "tag '%s' not found." msgstr "" -#: builtin/tag.c:259 +#: builtin/tag.c:321 #, c-format msgid "Deleted tag '%s' (was %s)\n" msgstr "" -#: builtin/tag.c:271 +#: builtin/tag.c:333 #, c-format msgid "could not verify the tag '%s'" msgstr "" -#: builtin/tag.c:281 +#: builtin/tag.c:343 #, c-format msgid "" "\n" -"Write a tag message\n" +"Write a message for tag:\n" +" %s\n" "Lines starting with '%c' will be ignored.\n" msgstr "" -#: builtin/tag.c:285 +#: builtin/tag.c:347 #, c-format msgid "" "\n" -"Write a tag message\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 "" -#: builtin/tag.c:324 +#: builtin/tag.c:371 +#, c-format +msgid "unsupported sort specification '%s'" +msgstr "" + +#: builtin/tag.c:373 +#, c-format +msgid "unsupported sort specification '%s' in variable '%s'" +msgstr "" + +#: builtin/tag.c:428 msgid "unable to sign the tag" msgstr "" -#: builtin/tag.c:326 +#: builtin/tag.c:430 msgid "unable to write tag file" msgstr "" -#: builtin/tag.c:351 +#: builtin/tag.c:455 msgid "bad object type." msgstr "" -#: builtin/tag.c:364 +#: builtin/tag.c:468 msgid "tag header too big." msgstr "" -#: builtin/tag.c:400 +#: builtin/tag.c:504 msgid "no tag message?" msgstr "" -#: builtin/tag.c:406 +#: builtin/tag.c:510 #, c-format msgid "The tag message has been left in %s\n" msgstr "" -#: builtin/tag.c:455 +#: builtin/tag.c:559 msgid "switch 'points-at' requires an object" msgstr "" -#: builtin/tag.c:457 +#: builtin/tag.c:561 #, c-format msgid "malformed object name '%s'" msgstr "" -#: builtin/tag.c:480 -#, c-format -msgid "unsupported sort specification %s" -msgstr "" - -#: builtin/tag.c:500 +#: builtin/tag.c:588 msgid "list tag names" msgstr "" -#: builtin/tag.c:502 +#: builtin/tag.c:590 msgid "print <n> lines of each tag message" msgstr "" -#: builtin/tag.c:504 +#: builtin/tag.c:592 msgid "delete tags" msgstr "" -#: builtin/tag.c:505 +#: builtin/tag.c:593 msgid "verify tags" msgstr "" -#: builtin/tag.c:507 +#: builtin/tag.c:595 msgid "Tag creation options" msgstr "" -#: builtin/tag.c:509 +#: builtin/tag.c:597 msgid "annotated tag, needs a message" msgstr "" -#: builtin/tag.c:511 +#: builtin/tag.c:599 msgid "tag message" msgstr "" -#: builtin/tag.c:513 +#: builtin/tag.c:601 msgid "annotated and GPG-signed tag" msgstr "" -#: builtin/tag.c:517 +#: builtin/tag.c:605 msgid "use another key to sign the tag" msgstr "" -#: builtin/tag.c:518 +#: builtin/tag.c:606 msgid "replace the tag if exists" msgstr "" -#: builtin/tag.c:519 +#: builtin/tag.c:607 msgid "show tag list in columns" msgstr "" -#: builtin/tag.c:521 +#: builtin/tag.c:609 msgid "sort tags" msgstr "" -#: builtin/tag.c:525 +#: builtin/tag.c:613 msgid "Tag listing options" msgstr "" -#: builtin/tag.c:528 builtin/tag.c:534 +#: builtin/tag.c:616 builtin/tag.c:622 msgid "print only tags that contain the commit" msgstr "" -#: builtin/tag.c:540 +#: builtin/tag.c:628 msgid "print only tags of the object" msgstr "" -#: builtin/tag.c:566 +#: builtin/tag.c:654 msgid "--column and -n are incompatible" msgstr "" -#: builtin/tag.c:578 +#: builtin/tag.c:666 msgid "--sort and -n are incompatible" msgstr "" -#: builtin/tag.c:585 +#: builtin/tag.c:673 msgid "-n option is only allowed with -l." msgstr "" -#: builtin/tag.c:587 +#: builtin/tag.c:675 msgid "--contains option is only allowed with -l." msgstr "" -#: builtin/tag.c:589 +#: builtin/tag.c:677 msgid "--points-at option is only allowed with -l." msgstr "" -#: builtin/tag.c:597 +#: builtin/tag.c:685 msgid "only one -F or -m option is allowed." msgstr "" -#: builtin/tag.c:617 +#: builtin/tag.c:705 msgid "too many params" msgstr "" -#: builtin/tag.c:623 +#: builtin/tag.c:711 #, c-format msgid "'%s' is not a valid tag name." msgstr "" -#: builtin/tag.c:628 +#: builtin/tag.c:716 #, c-format msgid "tag '%s' already exists" msgstr "" -#: builtin/tag.c:646 +#: builtin/tag.c:734 #, c-format msgid "%s: cannot lock the ref" msgstr "" -#: builtin/tag.c:648 +#: builtin/tag.c:736 #, c-format msgid "%s: cannot update the ref" msgstr "" -#: builtin/tag.c:650 +#: builtin/tag.c:738 #, c-format msgid "Updated tag '%s' (was %s)\n" msgstr "" @@ -9056,118 +9184,122 @@ msgstr "" msgid "Unpacking objects" msgstr "" -#: builtin/update-index.c:399 +#: builtin/update-index.c:402 msgid "git update-index [options] [--] [<file>...]" msgstr "" -#: builtin/update-index.c:748 +#: builtin/update-index.c:755 msgid "continue refresh even when index needs update" msgstr "" -#: builtin/update-index.c:751 +#: builtin/update-index.c:758 msgid "refresh: ignore submodules" msgstr "" -#: builtin/update-index.c:754 +#: builtin/update-index.c:761 msgid "do not ignore new files" msgstr "" -#: builtin/update-index.c:756 +#: builtin/update-index.c:763 msgid "let files replace directories and vice-versa" msgstr "" -#: builtin/update-index.c:758 +#: builtin/update-index.c:765 msgid "notice files missing from worktree" msgstr "" -#: builtin/update-index.c:760 +#: builtin/update-index.c:767 msgid "refresh even if index contains unmerged entries" msgstr "" -#: builtin/update-index.c:763 +#: builtin/update-index.c:770 msgid "refresh stat information" msgstr "" -#: builtin/update-index.c:767 +#: builtin/update-index.c:774 msgid "like --refresh, but ignore assume-unchanged setting" msgstr "" -#: builtin/update-index.c:771 +#: builtin/update-index.c:778 msgid "<mode>,<object>,<path>" msgstr "" -#: builtin/update-index.c:772 +#: builtin/update-index.c:779 msgid "add the specified entry to the index" msgstr "" -#: builtin/update-index.c:776 +#: builtin/update-index.c:783 msgid "(+/-)x" msgstr "" -#: builtin/update-index.c:777 +#: builtin/update-index.c:784 msgid "override the executable bit of the listed files" msgstr "" -#: builtin/update-index.c:781 +#: builtin/update-index.c:788 msgid "mark files as \"not changing\"" msgstr "" -#: builtin/update-index.c:784 +#: builtin/update-index.c:791 msgid "clear assumed-unchanged bit" msgstr "" -#: builtin/update-index.c:787 +#: builtin/update-index.c:794 msgid "mark files as \"index-only\"" msgstr "" -#: builtin/update-index.c:790 +#: builtin/update-index.c:797 msgid "clear skip-worktree bit" msgstr "" -#: builtin/update-index.c:793 +#: builtin/update-index.c:800 msgid "add to index only; do not add content to object database" msgstr "" -#: builtin/update-index.c:795 +#: builtin/update-index.c:802 msgid "remove named paths even if present in worktree" msgstr "" -#: builtin/update-index.c:797 +#: builtin/update-index.c:804 msgid "with --stdin: input lines are terminated by null bytes" msgstr "" -#: builtin/update-index.c:799 +#: builtin/update-index.c:806 msgid "read list of paths to be updated from standard input" msgstr "" -#: builtin/update-index.c:803 +#: builtin/update-index.c:810 msgid "add entries from standard input to the index" msgstr "" -#: builtin/update-index.c:807 +#: builtin/update-index.c:814 msgid "repopulate stages #2 and #3 for the listed paths" msgstr "" -#: builtin/update-index.c:811 +#: builtin/update-index.c:818 msgid "only update entries that differ from HEAD" msgstr "" -#: builtin/update-index.c:815 +#: builtin/update-index.c:822 msgid "ignore files missing from worktree" msgstr "" -#: builtin/update-index.c:818 +#: builtin/update-index.c:825 msgid "report actions to standard output" msgstr "" -#: builtin/update-index.c:820 +#: builtin/update-index.c:827 msgid "(for porcelains) forget saved unresolved conflicts" msgstr "" -#: builtin/update-index.c:824 +#: builtin/update-index.c:831 msgid "write index in this format" msgstr "" +#: builtin/update-index.c:833 +msgid "enable or disable split index" +msgstr "" + #: builtin/update-ref.c:9 msgid "git update-ref [options] -d <refname> [<oldval>]" msgstr "" @@ -9180,19 +9312,19 @@ msgstr "" msgid "git update-ref [options] --stdin [-z]" msgstr "" -#: builtin/update-ref.c:256 +#: builtin/update-ref.c:350 msgid "delete the reference" msgstr "" -#: builtin/update-ref.c:258 +#: builtin/update-ref.c:352 msgid "update <refname> not the one it points to" msgstr "" -#: builtin/update-ref.c:259 +#: builtin/update-ref.c:353 msgid "stdin has NUL-terminated arguments" msgstr "" -#: builtin/update-ref.c:260 +#: builtin/update-ref.c:354 msgid "read updates from stdin" msgstr "" @@ -9204,15 +9336,23 @@ msgstr "" msgid "update the info files from scratch" msgstr "" -#: builtin/verify-pack.c:56 +#: builtin/verify-commit.c:17 +msgid "git verify-commit [-v|--verbose] <commit>..." +msgstr "" + +#: builtin/verify-commit.c:75 +msgid "print commit contents" +msgstr "" + +#: builtin/verify-pack.c:55 msgid "git verify-pack [-v|--verbose] [-s|--stat-only] <pack>..." msgstr "" -#: builtin/verify-pack.c:66 +#: builtin/verify-pack.c:65 msgid "verbose" msgstr "" -#: builtin/verify-pack.c:68 +#: builtin/verify-pack.c:67 msgid "show statistics only" msgstr "" @@ -9657,11 +9797,11 @@ msgstr "" msgid "Pull is not possible because you have unmerged files." msgstr "" -#: git-pull.sh:247 +#: git-pull.sh:245 msgid "updating an unborn branch with changes added to the index" msgstr "" -#: git-pull.sh:271 +#: git-pull.sh:269 #, sh-format msgid "" "Warning: fetch updated the current branch head.\n" @@ -9669,11 +9809,11 @@ msgid "" "Warning: commit $orig_head." msgstr "" -#: git-pull.sh:296 +#: git-pull.sh:294 msgid "Cannot merge multiple branches into empty head" msgstr "" -#: git-pull.sh:300 +#: git-pull.sh:298 msgid "Cannot rebase onto multiple branches" msgstr "" @@ -9685,58 +9825,58 @@ msgid "" "\"." msgstr "" -#: git-rebase.sh:164 +#: git-rebase.sh:165 msgid "Applied autostash." msgstr "" -#: git-rebase.sh:167 +#: git-rebase.sh:168 #, sh-format msgid "Cannot store $stash_sha1" msgstr "" -#: git-rebase.sh:168 +#: 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 "" -#: git-rebase.sh:207 +#: git-rebase.sh:208 msgid "The pre-rebase hook refused to rebase." msgstr "" -#: git-rebase.sh:212 +#: git-rebase.sh:213 msgid "It looks like git-am is in progress. Cannot rebase." msgstr "" -#: git-rebase.sh:350 +#: git-rebase.sh:351 msgid "The --exec option must be used with the --interactive option" msgstr "" -#: git-rebase.sh:355 +#: git-rebase.sh:356 msgid "No rebase in progress?" msgstr "" -#: git-rebase.sh:366 +#: git-rebase.sh:367 msgid "The --edit-todo action can only be used during interactive rebase." msgstr "" -#: git-rebase.sh:373 +#: git-rebase.sh:374 msgid "Cannot read HEAD" msgstr "" -#: git-rebase.sh:376 +#: git-rebase.sh:377 msgid "" "You must edit all merge conflicts and then\n" "mark them as resolved using git add" msgstr "" -#: git-rebase.sh:394 +#: git-rebase.sh:395 #, sh-format msgid "Could not move back to $head_name" msgstr "" -#: git-rebase.sh:413 +#: git-rebase.sh:414 #, sh-format msgid "" "It seems that there is already a $state_dir_base directory, and\n" @@ -9749,64 +9889,64 @@ msgid "" "valuable there." msgstr "" -#: git-rebase.sh:464 +#: git-rebase.sh:465 #, sh-format msgid "invalid upstream $upstream_name" msgstr "" -#: git-rebase.sh:488 +#: git-rebase.sh:489 #, sh-format msgid "$onto_name: there are more than one merge bases" msgstr "" -#: git-rebase.sh:491 git-rebase.sh:495 +#: git-rebase.sh:492 git-rebase.sh:496 #, sh-format msgid "$onto_name: there is no merge base" msgstr "" -#: git-rebase.sh:500 +#: git-rebase.sh:501 #, sh-format msgid "Does not point to a valid commit: $onto_name" msgstr "" -#: git-rebase.sh:523 +#: git-rebase.sh:524 #, sh-format msgid "fatal: no such branch: $branch_name" msgstr "" -#: git-rebase.sh:556 +#: git-rebase.sh:557 msgid "Cannot autostash" msgstr "" -#: git-rebase.sh:561 +#: git-rebase.sh:562 #, sh-format msgid "Created autostash: $stash_abbrev" msgstr "" -#: git-rebase.sh:565 +#: git-rebase.sh:566 msgid "Please commit or stash them." msgstr "" -#: git-rebase.sh:585 +#: git-rebase.sh:586 #, sh-format msgid "Current branch $branch_name is up to date." msgstr "" -#: git-rebase.sh:589 +#: git-rebase.sh:590 #, sh-format msgid "Current branch $branch_name is up to date, rebase forced." msgstr "" -#: git-rebase.sh:600 +#: git-rebase.sh:601 #, sh-format msgid "Changes from $mb to $onto:" msgstr "" -#: git-rebase.sh:609 +#: git-rebase.sh:610 msgid "First, rewinding head to replay your work on top of it..." msgstr "" -#: git-rebase.sh:619 +#: git-rebase.sh:620 #, sh-format msgid "Fast-forwarded $branch_name to $onto_name." msgstr "" @@ -9823,23 +9963,23 @@ msgstr "" msgid "Cannot save the current index state" msgstr "" -#: git-stash.sh:123 git-stash.sh:136 +#: git-stash.sh:124 git-stash.sh:137 msgid "Cannot save the current worktree state" msgstr "" -#: git-stash.sh:140 +#: git-stash.sh:141 msgid "No changes selected" msgstr "" -#: git-stash.sh:143 +#: git-stash.sh:144 msgid "Cannot remove temporary index (can't happen)" msgstr "" -#: git-stash.sh:156 +#: git-stash.sh:157 msgid "Cannot record working tree state" msgstr "" -#: git-stash.sh:190 +#: git-stash.sh:191 #, sh-format msgid "Cannot update $ref_stash with $w_commit" msgstr "" @@ -9854,92 +9994,92 @@ msgstr "" #. $ 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:237 +#: git-stash.sh:238 #, sh-format msgid "" "error: unknown option for 'stash save': $option\n" " To provide a message, use git stash save -- '$option'" msgstr "" -#: git-stash.sh:258 +#: git-stash.sh:259 msgid "No local changes to save" msgstr "" -#: git-stash.sh:262 +#: git-stash.sh:263 msgid "Cannot initialize stash" msgstr "" -#: git-stash.sh:266 +#: git-stash.sh:267 msgid "Cannot save the current status" msgstr "" -#: git-stash.sh:284 +#: git-stash.sh:285 msgid "Cannot remove worktree changes" msgstr "" -#: git-stash.sh:383 +#: git-stash.sh:384 msgid "No stash found." msgstr "" -#: git-stash.sh:390 +#: git-stash.sh:391 #, sh-format msgid "Too many revisions specified: $REV" msgstr "" -#: git-stash.sh:396 +#: git-stash.sh:397 #, sh-format msgid "$reference is not valid reference" msgstr "" -#: git-stash.sh:424 +#: git-stash.sh:425 #, sh-format msgid "'$args' is not a stash-like commit" msgstr "" -#: git-stash.sh:435 +#: git-stash.sh:436 #, sh-format msgid "'$args' is not a stash reference" msgstr "" -#: git-stash.sh:443 +#: git-stash.sh:444 msgid "unable to refresh index" msgstr "" -#: git-stash.sh:447 +#: git-stash.sh:448 msgid "Cannot apply a stash in the middle of a merge" msgstr "" -#: git-stash.sh:455 +#: git-stash.sh:456 msgid "Conflicts in index. Try without --index." msgstr "" -#: git-stash.sh:457 +#: git-stash.sh:458 msgid "Could not save index tree" msgstr "" -#: git-stash.sh:491 +#: git-stash.sh:492 msgid "Cannot unstage modified files" msgstr "" -#: git-stash.sh:506 +#: git-stash.sh:507 msgid "Index was not unstashed." msgstr "" -#: git-stash.sh:529 +#: git-stash.sh:530 #, sh-format msgid "Dropped ${REV} ($s)" msgstr "" -#: git-stash.sh:530 +#: git-stash.sh:531 #, sh-format msgid "${REV}: Could not drop stash entry" msgstr "" -#: git-stash.sh:537 +#: git-stash.sh:538 msgid "No branch name specified" msgstr "" -#: git-stash.sh:609 +#: git-stash.sh:610 msgid "(To restore them type \"git stash apply\")" msgstr "" @@ -9958,26 +10098,26 @@ msgstr "" msgid "Clone of '$url' into submodule path '$sm_path' failed" msgstr "" -#: git-submodule.sh:299 +#: git-submodule.sh:296 #, sh-format msgid "Gitdir '$a' is part of the submodule path '$b' or vice versa" msgstr "" -#: git-submodule.sh:409 +#: git-submodule.sh:406 msgid "Relative path can only be used from the toplevel of the working tree" msgstr "" -#: git-submodule.sh:419 +#: git-submodule.sh:416 #, sh-format msgid "repo URL: '$repo' must be absolute or begin with ./|../" msgstr "" -#: git-submodule.sh:436 +#: git-submodule.sh:433 #, sh-format msgid "'$sm_path' already exists in the index" msgstr "" -#: git-submodule.sh:440 +#: git-submodule.sh:437 #, sh-format msgid "" "The following path is ignored by one of your .gitignore files:\n" @@ -9985,235 +10125,235 @@ msgid "" "Use -f if you really want to add it." msgstr "" -#: git-submodule.sh:458 +#: git-submodule.sh:455 #, sh-format msgid "Adding existing repo at '$sm_path' to the index" msgstr "" -#: git-submodule.sh:460 +#: git-submodule.sh:457 #, sh-format msgid "'$sm_path' already exists and is not a valid git repo" msgstr "" -#: git-submodule.sh:468 +#: git-submodule.sh:465 #, sh-format msgid "A git directory for '$sm_name' is found locally with remote(s):" msgstr "" -#: git-submodule.sh:470 +#: git-submodule.sh:467 #, sh-format msgid "" "If you want to reuse this local git directory instead of cloning again from" msgstr "" -#: git-submodule.sh:472 +#: git-submodule.sh:469 #, sh-format msgid "" "use the '--force' option. If the local git directory is not the correct repo" msgstr "" -#: git-submodule.sh:473 +#: git-submodule.sh:470 #, sh-format msgid "" "or you are unsure what this means choose another name with the '--name' " "option." msgstr "" -#: git-submodule.sh:475 +#: git-submodule.sh:472 #, sh-format msgid "Reactivating local git directory for submodule '$sm_name'." msgstr "" -#: git-submodule.sh:487 +#: git-submodule.sh:484 #, sh-format msgid "Unable to checkout submodule '$sm_path'" msgstr "" -#: git-submodule.sh:492 +#: git-submodule.sh:489 #, sh-format msgid "Failed to add submodule '$sm_path'" msgstr "" -#: git-submodule.sh:501 +#: git-submodule.sh:498 #, sh-format msgid "Failed to register submodule '$sm_path'" msgstr "" -#: git-submodule.sh:545 +#: git-submodule.sh:542 #, sh-format msgid "Entering '$prefix$displaypath'" msgstr "" -#: git-submodule.sh:565 +#: git-submodule.sh:562 #, sh-format msgid "Stopping at '$prefix$displaypath'; script returned non-zero status." msgstr "" -#: git-submodule.sh:611 +#: git-submodule.sh:608 #, sh-format msgid "No url found for submodule path '$displaypath' in .gitmodules" msgstr "" -#: git-submodule.sh:620 +#: git-submodule.sh:617 #, sh-format msgid "Failed to register url for submodule path '$displaypath'" msgstr "" -#: git-submodule.sh:622 +#: git-submodule.sh:619 #, sh-format msgid "Submodule '$name' ($url) registered for path '$displaypath'" msgstr "" -#: git-submodule.sh:639 +#: git-submodule.sh:636 #, sh-format msgid "Failed to register update mode for submodule path '$displaypath'" msgstr "" -#: git-submodule.sh:677 +#: git-submodule.sh:674 #, sh-format msgid "Use '.' if you really want to deinitialize all submodules" msgstr "" -#: git-submodule.sh:694 +#: git-submodule.sh:691 #, sh-format msgid "Submodule work tree '$displaypath' contains a .git directory" msgstr "" -#: git-submodule.sh:695 +#: git-submodule.sh:692 #, sh-format msgid "" "(use 'rm -rf' if you really want to remove it including all of its history)" msgstr "" -#: git-submodule.sh:701 +#: git-submodule.sh:698 #, sh-format msgid "" "Submodule work tree '$displaypath' contains local modifications; use '-f' to " "discard them" msgstr "" -#: git-submodule.sh:704 +#: git-submodule.sh:701 #, sh-format msgid "Cleared directory '$displaypath'" msgstr "" -#: git-submodule.sh:705 +#: git-submodule.sh:702 #, sh-format msgid "Could not remove submodule work tree '$displaypath'" msgstr "" -#: git-submodule.sh:708 +#: git-submodule.sh:705 #, sh-format msgid "Could not create empty submodule directory '$displaypath'" msgstr "" -#: git-submodule.sh:717 +#: git-submodule.sh:714 #, sh-format msgid "Submodule '$name' ($url) unregistered for path '$displaypath'" msgstr "" -#: git-submodule.sh:833 +#: git-submodule.sh:830 #, sh-format msgid "" "Submodule path '$displaypath' not initialized\n" "Maybe you want to use 'update --init'?" msgstr "" -#: git-submodule.sh:846 +#: git-submodule.sh:843 #, sh-format msgid "Unable to find current revision in submodule path '$displaypath'" msgstr "" -#: git-submodule.sh:855 +#: git-submodule.sh:852 #, sh-format msgid "Unable to fetch in submodule path '$sm_path'" msgstr "" -#: git-submodule.sh:879 +#: git-submodule.sh:876 #, sh-format msgid "Unable to fetch in submodule path '$displaypath'" msgstr "" -#: git-submodule.sh:893 +#: git-submodule.sh:890 #, sh-format msgid "Unable to checkout '$sha1' in submodule path '$displaypath'" msgstr "" -#: git-submodule.sh:894 +#: git-submodule.sh:891 #, sh-format msgid "Submodule path '$displaypath': checked out '$sha1'" msgstr "" -#: git-submodule.sh:898 +#: git-submodule.sh:895 #, sh-format msgid "Unable to rebase '$sha1' in submodule path '$displaypath'" msgstr "" -#: git-submodule.sh:899 +#: git-submodule.sh:896 #, sh-format msgid "Submodule path '$displaypath': rebased into '$sha1'" msgstr "" -#: git-submodule.sh:904 +#: git-submodule.sh:901 #, sh-format msgid "Unable to merge '$sha1' in submodule path '$displaypath'" msgstr "" -#: git-submodule.sh:905 +#: git-submodule.sh:902 #, sh-format msgid "Submodule path '$displaypath': merged in '$sha1'" msgstr "" -#: git-submodule.sh:910 +#: git-submodule.sh:907 #, sh-format msgid "" "Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'" msgstr "" -#: git-submodule.sh:911 +#: git-submodule.sh:908 #, sh-format msgid "Submodule path '$prefix$sm_path': '$command $sha1'" msgstr "" -#: git-submodule.sh:941 +#: git-submodule.sh:938 #, sh-format msgid "Failed to recurse into submodule path '$displaypath'" msgstr "" -#: git-submodule.sh:1049 +#: git-submodule.sh:1046 msgid "The --cached option cannot be used with the --files option" msgstr "" -#: git-submodule.sh:1097 +#: git-submodule.sh:1098 #, sh-format msgid "unexpected mode $mod_dst" msgstr "" -#: git-submodule.sh:1117 +#: git-submodule.sh:1118 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_src" msgstr "" -#: git-submodule.sh:1120 +#: git-submodule.sh:1121 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_dst" msgstr "" -#: git-submodule.sh:1123 +#: git-submodule.sh:1124 #, sh-format msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst" msgstr "" -#: git-submodule.sh:1148 +#: git-submodule.sh:1149 msgid "blob" msgstr "" -#: git-submodule.sh:1262 +#: git-submodule.sh:1267 #, sh-format msgid "Failed to recurse into submodule path '$sm_path'" msgstr "" -#: git-submodule.sh:1326 +#: git-submodule.sh:1331 #, sh-format msgid "Synchronizing submodule url for '$displaypath'" msgstr "" @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: git 2.0.0\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2014-04-19 12:50+0800\n" -"PO-Revision-Date: 2014-05-07 07:04+0100\n" +"POT-Creation-Date: 2014-08-04 14:48+0800\n" +"PO-Revision-Date: 2014-08-05 13:44+0100\n" "Last-Translator: Peter Krefting <peter@softwolves.pp.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" "Language: sv\n" @@ -22,17 +22,15 @@ msgstr "" msgid "hint: %.*s\n" msgstr "tips: %.*s\n" -#: advice.c:85 +#: advice.c:88 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'." +"Fix them up in the work tree, and then use 'git add/rm <file>'\n" +"as appropriate to mark resolution and make a commit, or use\n" +"'git commit -a'." msgstr "" -"Rätta dem i din arbetskatalog,\n" -"och använd sedan \"git add/rm <fil>\" som\n" -"lämpligt för att ange lösning och checka in,\n" -"eller använd \"git commit -a\"." +"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, eller använd\n" +"\"git commit -a\"." #: archive.c:10 msgid "git archive [options] <tree-ish> [<path>...]" @@ -53,7 +51,7 @@ msgstr "" msgid "git archive --remote <repo> [--exec <cmd>] --list" msgstr "git archive --remote <arkiv> [--exec <kmd>] --list" -#: archive.c:243 builtin/add.c:136 builtin/add.c:428 builtin/rm.c:328 +#: archive.c:243 builtin/add.c:136 builtin/add.c:427 builtin/rm.c:328 #, c-format msgid "pathspec '%s' did not match any files" msgstr "sökvägsangivelsen \"%s\" motsvarade inte nÃ¥gra filer" @@ -66,7 +64,7 @@ msgstr "fmt" msgid "archive format" msgstr "arkivformat" -#: archive.c:329 builtin/log.c:1193 +#: archive.c:329 builtin/log.c:1201 msgid "prefix" msgstr "prefix" @@ -74,9 +72,9 @@ 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:331 builtin/archive.c:88 builtin/blame.c:2258 -#: builtin/blame.c:2259 builtin/config.c:57 builtin/fast-export.c:680 -#: builtin/fast-export.c:682 builtin/grep.c:714 builtin/hash-object.c:77 +#: archive.c:331 builtin/archive.c:88 builtin/blame.c:2517 +#: builtin/blame.c:2518 builtin/config.c:57 builtin/fast-export.c:709 +#: builtin/fast-export.c:711 builtin/grep.c:712 builtin/hash-object.c:77 #: builtin/ls-files.c:489 builtin/ls-files.c:492 builtin/notes.c:412 #: builtin/notes.c:569 builtin/read-tree.c:108 parse-options.h:151 msgid "file" @@ -263,7 +261,7 @@ msgstr "'%s' ser inte ut som en v2-bundle-fil" msgid "unrecognized header: %s%s (%d)" msgstr "okänt huvud: %s%s (%d)" -#: bundle.c:86 builtin/commit.c:706 +#: bundle.c:86 builtin/commit.c:755 #, c-format msgid "could not open '%s'" msgstr "kunde inte öppna \"%s\"" @@ -272,8 +270,8 @@ msgstr "kunde inte öppna \"%s\"" msgid "Repository lacks these prerequisite commits:" msgstr "Arkivet saknar dessa nödvändiga incheckningar:" -#: bundle.c:162 sequencer.c:669 sequencer.c:1123 builtin/log.c:332 -#: builtin/log.c:821 builtin/log.c:1418 builtin/log.c:1644 builtin/merge.c:357 +#: bundle.c:162 sequencer.c:630 sequencer.c:1085 builtin/log.c:330 +#: builtin/log.c:821 builtin/log.c:1428 builtin/log.c:1665 builtin/merge.c:357 #: builtin/shortlog.c:158 msgid "revision walk setup failed" msgstr "misslyckades skapa revisionstraversering" @@ -296,47 +294,47 @@ msgid_plural "The bundle requires these %d refs:" msgstr[0] "Paketet (bundlen) kräver denna referens:" msgstr[1] "Paketet (bundlen) kräver dessa %d referenser:" -#: bundle.c:293 +#: bundle.c:289 msgid "rev-list died" msgstr "rev-list dog" -#: bundle.c:299 builtin/log.c:1329 builtin/shortlog.c:261 +#: bundle.c:295 builtin/log.c:1339 builtin/shortlog.c:261 #, c-format msgid "unrecognized argument: %s" msgstr "okänt argument: %s" -#: bundle.c:334 +#: bundle.c:330 #, c-format msgid "ref '%s' is excluded by the rev-list options" msgstr "referensen \"%s\" exkluderas av argumenten till rev-list" -#: bundle.c:379 +#: bundle.c:375 msgid "Refusing to create empty bundle." msgstr "Vägrar skapa ett tomt paket (bundle)." -#: bundle.c:395 +#: bundle.c:390 msgid "Could not spawn pack-objects" msgstr "Kunde inte starta pack-objects" -#: bundle.c:413 +#: bundle.c:408 msgid "pack-objects died" msgstr "pack-objects misslyckades" -#: bundle.c:416 +#: bundle.c:411 #, c-format msgid "cannot create '%s'" msgstr "kan inte skapa \"%s\"" -#: bundle.c:438 +#: bundle.c:433 msgid "index-pack died" msgstr "index-pack dog" -#: commit.c:54 +#: commit.c:40 #, c-format msgid "could not parse %s" msgstr "kunde inte tolka %s" -#: commit.c:56 +#: commit.c:42 #, c-format msgid "%s %s is not a commit!" msgstr "%s %s är inte en incheckning!" @@ -432,26 +430,26 @@ msgstr[1] "%lu Ã¥r sedan" msgid "failed to read orderfile '%s'" msgstr "kunde inte läsa orderfilen \"%s\"" -#: diffcore-rename.c:517 +#: diffcore-rename.c:514 msgid "Performing inexact rename detection" msgstr "Utför onöjaktig namnbytesdetektering" -#: diff.c:113 +#: diff.c:114 #, c-format msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr " Misslyckades tolka dirstat-avskärningsprocentandel \"%s\"\n" -#: diff.c:118 +#: diff.c:119 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr " Okänd dirstat-parameter \"%s\"\n" -#: diff.c:213 +#: diff.c:214 #, c-format msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "Okänt värde för konfigurationsvariabeln \"diff.submodule\": \"%s\"" -#: diff.c:263 +#: diff.c:267 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" @@ -460,7 +458,16 @@ msgstr "" "Hittade fel i konfigurationsvariabeln \"diff.dirstat\":\n" "%s" -#: diff.c:3495 +#: diff.c:2934 +#, c-format +msgid "external diff died, stopping at %s" +msgstr "extern diff dog, stannar vid %s" + +#: diff.c:3329 +msgid "--follow requires exactly one pathspec" +msgstr "--follow kräver exakt en sökvägsangivelse" + +#: diff.c:3492 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -469,58 +476,58 @@ msgstr "" "Misslyckades tolka argument till flaggan --dirstat/-X;\n" "%s" -#: diff.c:3509 +#: diff.c:3506 #, c-format msgid "Failed to parse --submodule option parameter: '%s'" msgstr "Misslyckades tolka argument till flaggan --submodule: \"%s\"" -#: gpg-interface.c:59 gpg-interface.c:131 +#: gpg-interface.c:73 gpg-interface.c:145 msgid "could not run gpg." msgstr "kunde inte köra gpg." -#: gpg-interface.c:71 +#: gpg-interface.c:85 msgid "gpg did not accept the data" msgstr "gpg godtog inte data" -#: gpg-interface.c:82 +#: gpg-interface.c:96 msgid "gpg failed to sign the data" msgstr "gpg misslyckades signera data" -#: gpg-interface.c:115 +#: gpg-interface.c:129 #, c-format msgid "could not create temporary file '%s': %s" msgstr "kunde inte skapa temporära filen \"%s\": %s" -#: gpg-interface.c:118 +#: gpg-interface.c:132 #, c-format msgid "failed writing detached signature to '%s': %s" msgstr "misslyckades skriva fristÃ¥ende signatur till \"%s\": %s" -#: grep.c:1698 +#: grep.c:1703 #, c-format msgid "'%s': unable to read %s" msgstr "\"%s\" kunde inte läsa %s" -#: grep.c:1715 +#: grep.c:1720 #, c-format msgid "'%s': %s" msgstr "\"%s\": %s" -#: grep.c:1726 +#: grep.c:1731 #, c-format msgid "'%s': short read %s" msgstr "\"%s\": kort läsning %s" -#: help.c:209 +#: help.c:207 #, c-format msgid "available git commands in '%s'" msgstr "git-kommandon tillgängliga i \"%s\"" -#: help.c:216 +#: help.c:214 msgid "git commands available from elsewhere on your $PATH" msgstr "git-kommandon frÃ¥n andra platser i din $PATH" -#: help.c:232 +#: help.c:230 msgid "The most commonly used git commands are:" msgstr "De mest använda git-kommandona är:" @@ -556,7 +563,7 @@ msgstr "automatiskt om %0.1f sekunder..." msgid "git: '%s' is not a git command. See 'git --help'." msgstr "git: \"%s\" är inte ett git-kommando. Se \"git --help\"." -#: help.c:384 help.c:443 +#: help.c:384 help.c:444 msgid "" "\n" "Did you mean this?" @@ -570,16 +577,16 @@ msgstr[1] "" "\n" "Menade du ett av dessa?" -#: help.c:439 +#: help.c:440 #, c-format msgid "%s: %s - %s" msgstr "%s: %s - %s" -#: merge.c:56 +#: merge.c:40 msgid "failed to read the cache" -msgstr "misslyckads läsa cachen" +msgstr "misslyckades läsa cachen" -#: merge.c:110 builtin/checkout.c:357 builtin/checkout.c:558 +#: merge.c:93 builtin/checkout.c:356 builtin/checkout.c:556 #: builtin/clone.c:661 msgid "unable to write new index file" msgstr "kunde inte skriva ny indexfil" @@ -589,7 +596,7 @@ msgstr "kunde inte skriva ny indexfil" msgid "(bad commit)\n" msgstr "(felaktig incheckning)\n" -#: merge-recursive.c:208 +#: merge-recursive.c:210 #, c-format msgid "addinfo_cache failed for path '%s'" msgstr "addinfo_cache misslyckades för sökvägen \"%s\"" @@ -598,64 +605,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:675 +#: merge-recursive.c:692 #, c-format msgid "failed to create path '%s'%s" msgstr "misslyckades skapa sökvägen \"%s\"%s" -#: merge-recursive.c:686 +#: merge-recursive.c:703 #, 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:700 merge-recursive.c:721 +#: merge-recursive.c:717 merge-recursive.c:738 msgid ": perhaps a D/F conflict?" msgstr ": kanske en K/F-konflikt?" -#: merge-recursive.c:711 +#: merge-recursive.c:728 #, c-format msgid "refusing to lose untracked file at '%s'" msgstr "vägrar förlora ospÃ¥rad fil vid \"%s\"" -#: merge-recursive.c:751 +#: merge-recursive.c:768 #, c-format msgid "cannot read object %s '%s'" msgstr "kan inte läsa objektet %s: \"%s\"" -#: merge-recursive.c:753 +#: merge-recursive.c:770 #, c-format msgid "blob expected for %s '%s'" msgstr "blob förväntades för %s \"%s\"" -#: merge-recursive.c:776 builtin/clone.c:317 +#: merge-recursive.c:793 builtin/clone.c:317 #, c-format msgid "failed to open '%s'" msgstr "misslyckades öppna \"%s\"" -#: merge-recursive.c:784 +#: merge-recursive.c:801 #, c-format msgid "failed to symlink '%s'" msgstr "misslyckades skapa symboliska länken \"%s\"" -#: merge-recursive.c:787 +#: merge-recursive.c:804 #, 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:925 +#: merge-recursive.c:942 msgid "Failed to execute internal merge" msgstr "Misslyckades exekvera intern sammanslagning" -#: merge-recursive.c:929 +#: merge-recursive.c:946 #, c-format msgid "Unable to add %s to database" msgstr "Kunde inte lägga till %s till databasen" -#: merge-recursive.c:945 +#: merge-recursive.c:962 msgid "unsupported object type in the tree" msgstr "objekttyp som ej stöds upptäcktes i trädet" -#: merge-recursive.c:1024 merge-recursive.c:1038 +#: merge-recursive.c:1037 merge-recursive.c:1051 #, c-format msgid "" "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left " @@ -664,7 +671,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:1030 merge-recursive.c:1043 +#: merge-recursive.c:1043 merge-recursive.c:1056 #, c-format msgid "" "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left " @@ -673,20 +680,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:1084 +#: merge-recursive.c:1097 msgid "rename" msgstr "namnbyte" -#: merge-recursive.c:1084 +#: merge-recursive.c:1097 msgid "renamed" msgstr "namnbytt" -#: merge-recursive.c:1140 +#: merge-recursive.c:1153 #, 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:1162 +#: merge-recursive.c:1175 #, c-format msgid "" "CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s" @@ -695,195 +702,195 @@ msgstr "" "KONFLIKT (namnbyte/namnbyte): Namnbyte \"%s\"->\"%s\" pÃ¥ grenen \"%s\" " "namnbyte \"%s\"->\"%s\" i \"%s\"%s" -#: merge-recursive.c:1167 +#: merge-recursive.c:1180 msgid " (left unresolved)" msgstr " (lämnad olöst)" -#: merge-recursive.c:1221 +#: merge-recursive.c:1234 #, 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:1251 +#: merge-recursive.c:1264 #, 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:1450 +#: merge-recursive.c:1463 #, 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:1460 +#: merge-recursive.c:1473 #, c-format msgid "Adding merged %s" msgstr "Lägger till sammanslagen %s" -#: merge-recursive.c:1465 merge-recursive.c:1663 +#: merge-recursive.c:1478 merge-recursive.c:1676 #, c-format msgid "Adding as %s instead" -msgstr "Lägger till som %s iställer" +msgstr "Lägger till som %s istället" -#: merge-recursive.c:1516 +#: merge-recursive.c:1529 #, c-format msgid "cannot read object %s" msgstr "kan inte läsa objektet %s" -#: merge-recursive.c:1519 +#: merge-recursive.c:1532 #, c-format msgid "object %s is not a blob" msgstr "objektet %s är inte en blob" -#: merge-recursive.c:1567 +#: merge-recursive.c:1580 msgid "modify" msgstr "ändra" -#: merge-recursive.c:1567 +#: merge-recursive.c:1580 msgid "modified" msgstr "ändrad" -#: merge-recursive.c:1577 +#: merge-recursive.c:1590 msgid "content" msgstr "innehÃ¥ll" -#: merge-recursive.c:1584 +#: merge-recursive.c:1597 msgid "add/add" msgstr "tillägg/tillägg" -#: merge-recursive.c:1618 +#: merge-recursive.c:1631 #, c-format msgid "Skipped %s (merged same as existing)" msgstr "Hoppade över %s (sammanslagen samma som befintlig)" -#: merge-recursive.c:1632 +#: merge-recursive.c:1645 #, c-format msgid "Auto-merging %s" msgstr "SlÃ¥r ihop %s automatiskt" -#: merge-recursive.c:1636 git-submodule.sh:1149 +#: merge-recursive.c:1649 git-submodule.sh:1150 msgid "submodule" msgstr "undermodul" -#: merge-recursive.c:1637 +#: merge-recursive.c:1650 #, c-format msgid "CONFLICT (%s): Merge conflict in %s" msgstr "KONFLIKT (%s): Sammanslagningskonflikt i %s" -#: merge-recursive.c:1727 +#: merge-recursive.c:1740 #, c-format msgid "Removing %s" msgstr "Tar bort %s" -#: merge-recursive.c:1752 +#: merge-recursive.c:1765 msgid "file/directory" msgstr "fil/katalog" -#: merge-recursive.c:1758 +#: merge-recursive.c:1771 msgid "directory/file" msgstr "katalog/fil" -#: merge-recursive.c:1763 +#: merge-recursive.c:1776 #, 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:1773 +#: merge-recursive.c:1786 #, c-format msgid "Adding %s" msgstr "Lägger till %s" -#: merge-recursive.c:1790 +#: merge-recursive.c:1803 msgid "Fatal merge failure, shouldn't happen." msgstr "Ödesdigert sammanslagningsfel, borde inte inträffa." -#: merge-recursive.c:1809 +#: merge-recursive.c:1822 msgid "Already up-to-date!" msgstr "Redan à jour!" -#: merge-recursive.c:1818 +#: merge-recursive.c:1831 #, c-format msgid "merging of trees %s and %s failed" msgstr "sammanslagning av träden %s och %s misslyckades" -#: merge-recursive.c:1848 +#: merge-recursive.c:1861 #, c-format msgid "Unprocessed path??? %s" msgstr "Obehandlad sökväg??? %s" -#: merge-recursive.c:1893 +#: merge-recursive.c:1906 msgid "Merging:" msgstr "SlÃ¥r ihop:" -#: merge-recursive.c:1906 +#: 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:1943 +#: merge-recursive.c:1956 msgid "merge returned no commit" msgstr "sammanslagningen returnerade ingen incheckning" -#: merge-recursive.c:2000 +#: merge-recursive.c:2013 #, c-format msgid "Could not parse object '%s'" msgstr "Kunde inte tolka objektet \"%s\"" -#: merge-recursive.c:2012 builtin/merge.c:668 +#: merge-recursive.c:2024 builtin/merge.c:666 msgid "Unable to write index." msgstr "Kunde inte skriva indexet." -#: notes-utils.c:40 +#: notes-utils.c:41 msgid "Cannot commit uninitialized/unreferenced notes tree" msgstr "Kan inte checka in oinitierat/orefererat anteckningsträd" -#: notes-utils.c:81 +#: notes-utils.c:83 #, c-format msgid "Bad notes.rewriteMode value: '%s'" msgstr "Felaktigt värde för notes.rewriteMode: '%s'" -#: notes-utils.c:91 +#: notes-utils.c:93 #, c-format msgid "Refusing to rewrite notes in %s (outside of refs/notes/)" msgstr "Vägrar skriva över anteckningar i %s (utanför refs/notes/)" #. TRANSLATORS: The first %s is the name of the #. environment variable, the second %s is its value -#: notes-utils.c:118 +#: notes-utils.c:120 #, c-format msgid "Bad %s value: '%s'" msgstr "Felaktigt värde pÃ¥ %s: \"%s\"" -#: object.c:229 +#: object.c:234 #, c-format msgid "unable to parse object: %s" msgstr "kunde inte tolka objektet: %s" -#: parse-options.c:532 +#: parse-options.c:534 msgid "..." msgstr "..." -#: parse-options.c:550 +#: parse-options.c:552 #, c-format msgid "usage: %s" msgstr "användning: %s" #. TRANSLATORS: the colon here should align with the #. one in "usage: %s" translation -#: parse-options.c:554 +#: parse-options.c:556 #, c-format msgid " or: %s" msgstr " eller: %s" -#: parse-options.c:557 +#: parse-options.c:559 #, c-format msgid " %s" msgstr " %s" -#: parse-options.c:591 +#: parse-options.c:593 msgid "-NUM" msgstr "-TAL" @@ -939,12 +946,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:433 +#: pathspec.c:432 #, 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:442 +#: pathspec.c:441 msgid "" "There is nothing to exclude from by :(exclude) patterns.\n" "Perhaps you forgot to add either ':/' or '.' ?" @@ -952,11 +959,11 @@ msgstr "" "Ingenting att exkludera frÃ¥n med :(exkludera)-mönster.\n" "Glömde du kanske att antingen lägga till \":/\" eller \".\"?" -#: progress.c:224 +#: progress.c:225 msgid "done" msgstr "klart" -#: read-cache.c:1238 +#: read-cache.c:1260 #, c-format msgid "" "index.version set, but the value is invalid.\n" @@ -965,7 +972,7 @@ msgstr "" "index.version satt, men värdet är ogiltigt.\n" "Använder version %i" -#: read-cache.c:1248 +#: read-cache.c:1270 #, c-format msgid "" "GIT_INDEX_VERSION set, but the value is invalid.\n" @@ -974,51 +981,51 @@ msgstr "" "GIT_INDEX_VERSION satt, men värdet är ogiltigt.\n" "Använder version %i" -#: remote.c:758 +#: remote.c:753 #, 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:762 +#: remote.c:757 #, c-format msgid "%s usually tracks %s, not %s" msgstr "%s spÃ¥rar vanligtvis %s, inte %s" -#: remote.c:766 +#: remote.c:761 #, c-format msgid "%s tracks both %s and %s" msgstr "%s spÃ¥rar bÃ¥de %s och %s" -#: remote.c:774 +#: remote.c:769 msgid "Internal error" msgstr "Internt fel" -#: remote.c:1948 +#: remote.c:1943 #, 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:1952 +#: remote.c:1947 msgid " (use \"git branch --unset-upstream\" to fixup)\n" msgstr " (använd \"git branch --unset-upstream\" för att rätta)\n" -#: remote.c:1955 +#: remote.c:1950 #, c-format msgid "Your branch is up-to-date with '%s'.\n" msgstr "Din gren är à jour med \"%s\".\n" -#: remote.c:1959 +#: remote.c:1954 #, 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:1965 +#: remote.c:1960 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:1968 +#: remote.c:1963 #, c-format msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n" msgid_plural "" @@ -1028,11 +1035,11 @@ msgstr[0] "" msgstr[1] "" "Din gren ligger efter \"%s\" med %d incheckningar, och kan snabbspolas.\n" -#: remote.c:1976 +#: remote.c:1971 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:1979 +#: remote.c:1974 #, c-format msgid "" "Your branch and '%s' have diverged,\n" @@ -1047,7 +1054,7 @@ msgstr[1] "" "Din gren och \"%s\" har divergerat,\n" "och har %d respektive %d olika incheckningar.\n" -#: remote.c:1989 +#: remote.c:1984 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" @@ -1060,19 +1067,19 @@ msgstr "misslyckades öppna /dev/null" msgid "dup2(%d,%d) failed" msgstr "dup2(%d,%d) misslyckades" -#: sequencer.c:206 builtin/merge.c:786 builtin/merge.c:899 -#: builtin/merge.c:1009 builtin/merge.c:1019 +#: sequencer.c:171 builtin/merge.c:782 builtin/merge.c:893 +#: builtin/merge.c:1003 builtin/merge.c:1013 #, c-format msgid "Could not open '%s' for writing" msgstr "Kunde inte öppna \"%s\" för skrivning" -#: sequencer.c:208 builtin/merge.c:343 builtin/merge.c:789 -#: builtin/merge.c:1011 builtin/merge.c:1024 +#: sequencer.c:173 builtin/merge.c:343 builtin/merge.c:785 +#: builtin/merge.c:1005 builtin/merge.c:1018 #, c-format msgid "Could not write to '%s'" msgstr "Kunde inte skriva till \"%s\"" -#: sequencer.c:229 +#: sequencer.c:194 msgid "" "after resolving the conflicts, mark the corrected paths\n" "with 'git add <paths>' or 'git rm <paths>'" @@ -1080,7 +1087,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:232 +#: sequencer.c:197 msgid "" "after resolving the conflicts, mark the corrected paths\n" "with 'git add <paths>' or 'git rm <paths>'\n" @@ -1090,220 +1097,224 @@ msgstr "" "med \"git add <sökvägar>\" eller \"git rm <sökvägar>\"\n" "och checka in resultatet med \"git commit\"" -#: sequencer.c:245 sequencer.c:879 sequencer.c:962 +#: sequencer.c:210 sequencer.c:841 sequencer.c:924 #, c-format msgid "Could not write to %s" msgstr "Kunde inte skriva till %s" -#: sequencer.c:248 +#: sequencer.c:213 #, c-format msgid "Error wrapping up %s" msgstr "Fel vid ombrytning av %s" -#: sequencer.c:263 +#: sequencer.c:228 msgid "Your local changes would be overwritten by cherry-pick." msgstr "Dina lokala ändringar skulle skrivas över av \"cherry-pick\"." -#: sequencer.c:265 +#: sequencer.c:230 msgid "Your local changes would be overwritten by revert." msgstr "Dina lokala ändringar skulle skrivas över av \"revert\"." -#: sequencer.c:268 +#: sequencer.c:233 msgid "Commit your changes or stash them to proceed." msgstr "Checka in dina ändringar eller använd \"stash\" för att fortsätta." +#: sequencer.c:250 +msgid "Failed to lock HEAD during fast_forward_to" +msgstr "Misslyckades lÃ¥sa HEAD under \"fast_forward_to\"" + #. TRANSLATORS: %s will be "revert" or "cherry-pick" -#: sequencer.c:325 +#: sequencer.c:293 #, c-format msgid "%s: Unable to write new index file" msgstr "%s: Kunde inte skriva ny indexfil" -#: sequencer.c:356 +#: sequencer.c:324 msgid "Could not resolve HEAD commit\n" msgstr "Kunde inte bestämma HEAD:s incheckning\n" -#: sequencer.c:378 +#: sequencer.c:344 msgid "Unable to update cache tree\n" msgstr "Kan inte uppdatera cacheträd\n" -#: sequencer.c:430 +#: sequencer.c:391 #, c-format msgid "Could not parse commit %s\n" msgstr "Kunde inte tolka incheckningen %s\n" -#: sequencer.c:435 +#: sequencer.c:396 #, c-format msgid "Could not parse parent commit %s\n" msgstr "Kunde inte tolka föräldraincheckningen %s\n" -#: sequencer.c:501 +#: sequencer.c:462 msgid "Your index file is unmerged." msgstr "Din indexfil har inte slagits ihop." -#: sequencer.c:520 +#: sequencer.c:481 #, 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:528 +#: sequencer.c:489 #, c-format msgid "Commit %s does not have parent %d" msgstr "Incheckning %s har inte förälder %d" -#: sequencer.c:532 +#: sequencer.c:493 #, 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:545 +#: sequencer.c:506 #, c-format msgid "%s: cannot parse parent commit %s" msgstr "%s: kan inte tolka föräldraincheckningen %s" -#: sequencer.c:549 +#: sequencer.c:510 #, c-format msgid "Cannot get commit message for %s" msgstr "Kan inte hämta incheckningsmeddelande för %s" -#: sequencer.c:635 +#: sequencer.c:596 #, c-format msgid "could not revert %s... %s" msgstr "kunde inte Ã¥ngra %s... %s" -#: sequencer.c:636 +#: sequencer.c:597 #, c-format msgid "could not apply %s... %s" msgstr "kunde inte tillämpa %s... %s" -#: sequencer.c:672 +#: sequencer.c:633 msgid "empty commit set passed" msgstr "den angivna uppsättningen incheckningar är tom" -#: sequencer.c:680 +#: sequencer.c:641 #, c-format msgid "git %s: failed to read the index" msgstr "git %s: misslyckades läsa indexet" -#: sequencer.c:685 +#: sequencer.c:645 #, c-format msgid "git %s: failed to refresh the index" msgstr "git %s: misslyckades uppdatera indexet" -#: sequencer.c:743 +#: sequencer.c:705 #, c-format msgid "Cannot %s during a %s" msgstr "kan inte %s under en %s" -#: sequencer.c:765 +#: sequencer.c:727 #, c-format msgid "Could not parse line %d." msgstr "Kan inte tolka rad %d." -#: sequencer.c:770 +#: sequencer.c:732 msgid "No commits parsed." msgstr "Inga incheckningar lästes." -#: sequencer.c:783 +#: sequencer.c:745 #, c-format msgid "Could not open %s" msgstr "Kunde inte öppna %s" -#: sequencer.c:787 +#: sequencer.c:749 #, c-format msgid "Could not read %s." msgstr "kunde inte läsa %s." -#: sequencer.c:794 +#: sequencer.c:756 #, c-format msgid "Unusable instruction sheet: %s" msgstr "Oanvändbart manus: %s" -#: sequencer.c:824 +#: sequencer.c:786 #, c-format msgid "Invalid key: %s" msgstr "Felaktig nyckel: %s" -#: sequencer.c:827 +#: sequencer.c:789 #, c-format msgid "Invalid value for %s: %s" msgstr "Felaktigt värde för %s: %s" -#: sequencer.c:839 +#: sequencer.c:801 #, c-format msgid "Malformed options sheet: %s" msgstr "Trasigt manus: %s" -#: sequencer.c:860 +#: sequencer.c:822 msgid "a cherry-pick or revert is already in progress" msgstr "en \"cherry-pick\" eller \"revert\" pÃ¥gÃ¥r redan" -#: sequencer.c:861 +#: sequencer.c:823 msgid "try \"git cherry-pick (--continue | --quit | --abort)\"" msgstr "testa \"git cherry-pick (--continue | --quit | --abort)\"" -#: sequencer.c:865 +#: sequencer.c:827 #, c-format msgid "Could not create sequencer directory %s" msgstr "Kunde inte skapa \"sequencer\"-katalogen \"%s\"" -#: sequencer.c:881 sequencer.c:966 +#: sequencer.c:843 sequencer.c:928 #, c-format msgid "Error wrapping up %s." msgstr "Fel vid ombrytning av %s." -#: sequencer.c:900 sequencer.c:1036 +#: sequencer.c:862 sequencer.c:998 msgid "no cherry-pick or revert in progress" msgstr "ingen \"cherry-pick\" eller \"revert\" pÃ¥gÃ¥r" -#: sequencer.c:902 +#: sequencer.c:864 msgid "cannot resolve HEAD" msgstr "kan inte bestämma HEAD" -#: sequencer.c:904 +#: sequencer.c:866 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:926 builtin/apply.c:4061 +#: sequencer.c:888 builtin/apply.c:4062 #, c-format msgid "cannot open %s: %s" msgstr "kan inte öppna %s: %s" -#: sequencer.c:929 +#: sequencer.c:891 #, c-format msgid "cannot read %s: %s" msgstr "kan inte läsa %s: %s" -#: sequencer.c:930 +#: sequencer.c:892 msgid "unexpected end of file" msgstr "oväntat filslut" -#: sequencer.c:936 +#: sequencer.c:898 #, 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:959 +#: sequencer.c:921 #, c-format msgid "Could not format %s." msgstr "Kunde inte formatera %s." -#: sequencer.c:1104 +#: sequencer.c:1066 #, c-format msgid "%s: can't cherry-pick a %s" msgstr "%s: kan inte göra \"cherry-pick\" pÃ¥ typen \"%s\"" -#: sequencer.c:1107 +#: sequencer.c:1069 #, c-format msgid "%s: bad revision" msgstr "%s: felaktig revision" -#: sequencer.c:1141 +#: sequencer.c:1103 msgid "Can't revert as initial commit" msgstr "Kan inte Ã¥ngra som första incheckning" -#: sequencer.c:1142 +#: sequencer.c:1104 msgid "Can't cherry-pick into empty head" msgstr "Kan inte göra \"cherry-pick\" i ett tomt huvud" @@ -1329,21 +1340,21 @@ msgstr "" "Undersök referenserna och ta kanske bort dem. Stäng av meddelandet\n" "genom att köra \"git config advice.objectNameWarning false\"" -#: sha1_name.c:1072 +#: sha1_name.c:1060 msgid "HEAD does not point to a branch" msgstr "HEAD pekar inte pÃ¥ en gren" -#: sha1_name.c:1075 +#: sha1_name.c:1063 #, c-format msgid "No such branch: '%s'" msgstr "Okänd gren: \"%s\"" -#: sha1_name.c:1077 +#: sha1_name.c:1065 #, c-format msgid "No upstream configured for branch '%s'" msgstr "Ingen standarduppström angiven för grenen \"%s\"" -#: sha1_name.c:1081 +#: sha1_name.c:1069 #, 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" @@ -1373,17 +1384,17 @@ msgstr "Kunde inte ta bort .gitmodules-posten för %s" msgid "staging updated .gitmodules failed" msgstr "misslyckades köa uppdaterad .gitmodules" -#: submodule.c:1121 builtin/init-db.c:363 +#: submodule.c:1118 builtin/init-db.c:363 #, c-format msgid "Could not create git link %s" msgstr "Kunde inte skapa gitlänk %s" -#: submodule.c:1132 +#: submodule.c:1129 #, c-format msgid "Could not set core.worktree in %s" msgstr "Kunde inte sätta core.worktree i %s" -#: unpack-trees.c:206 +#: unpack-trees.c:202 msgid "Checking out files" msgstr "Checkar ut filer" @@ -1414,24 +1425,24 @@ msgstr "felaktigt portnummer" #: urlmatch.c:322 msgid "invalid '..' path segment" -msgstr "felaktit \"..\"-sökvägssegment" +msgstr "felaktigt \"..\"-sökvägssegment" -#: wrapper.c:422 +#: wrapper.c:460 #, c-format msgid "unable to access '%s': %s" msgstr "kan inte komma Ã¥t \"%s\": %s" -#: wrapper.c:443 +#: wrapper.c:481 #, c-format msgid "unable to access '%s'" msgstr "kan inte komma Ã¥t \"%s\"" -#: wrapper.c:454 +#: wrapper.c:492 #, c-format msgid "unable to look up current user in the passwd file: %s" msgstr "kan inte slÃ¥ upp aktuell användare i passwd-filen: %s" -#: wrapper.c:455 +#: wrapper.c:493 msgid "no such user" msgstr "okänd användare" @@ -1578,15 +1589,15 @@ msgstr "ospÃ¥rat innehÃ¥ll, " msgid "bug: unhandled diff status %c" msgstr "programfel: diff-status %c ej hanterad" -#: wt-status.c:765 +#: wt-status.c:764 msgid "Submodules changed but not updated:" msgstr "Undermoduler ändrade men inte uppdaterade:" -#: wt-status.c:767 +#: wt-status.c:766 msgid "Submodule changes to be committed:" msgstr "Undermodulers ändringar att checka in:" -#: wt-status.c:846 +#: wt-status.c:845 msgid "" "Do not touch the line above.\n" "Everything below will be removed." @@ -1594,68 +1605,68 @@ msgstr "" "Rör inte raden ovan.\n" "Allt nedan kommer tas bort." -#: wt-status.c:937 +#: wt-status.c:936 msgid "You have unmerged paths." msgstr "Du har ej sammanslagna sökvägar." -#: wt-status.c:940 +#: wt-status.c:939 msgid " (fix conflicts and run \"git commit\")" msgstr " (rätta konflikter och kör \"git commit\")" -#: wt-status.c:943 +#: wt-status.c:942 msgid "All conflicts fixed but you are still merging." msgstr "Alla konflikter har rättats men du är fortfarande i en sammanslagning." -#: wt-status.c:946 +#: wt-status.c:945 msgid " (use \"git commit\" to conclude merge)" msgstr " (använd \"git commit\" för att slutföra sammanslagningen)" -#: wt-status.c:956 +#: wt-status.c:955 msgid "You are in the middle of an am session." msgstr "Du är i mitten av en körning av \"git am\"." -#: wt-status.c:959 +#: wt-status.c:958 msgid "The current patch is empty." msgstr "Aktuell patch är tom." -#: wt-status.c:963 +#: wt-status.c:962 msgid " (fix conflicts and then run \"git am --continue\")" msgstr " (rätta konflikter och kör sedan \"git am --continue\")" -#: wt-status.c:965 +#: wt-status.c:964 msgid " (use \"git am --skip\" to skip this patch)" msgstr " (använd \"git am --skip\" för att hoppa över patchen)" -#: wt-status.c:967 +#: wt-status.c:966 msgid " (use \"git am --abort\" to restore the original branch)" msgstr " (använd \"git am --abort\" för att Ã¥terställa ursprungsgrenen)" -#: wt-status.c:1027 wt-status.c:1044 +#: wt-status.c:1026 wt-status.c:1043 #, c-format msgid "You are currently rebasing branch '%s' on '%s'." msgstr "Du hÃ¥ller pÃ¥ att ombasera grenen \"%s\" ovanpÃ¥ \"%s\"." -#: wt-status.c:1032 wt-status.c:1049 +#: wt-status.c:1031 wt-status.c:1048 msgid "You are currently rebasing." msgstr "Du hÃ¥ller pÃ¥ med en ombasering." -#: wt-status.c:1035 +#: wt-status.c:1034 msgid " (fix conflicts and then run \"git rebase --continue\")" msgstr " (rätta konflikter och kör sedan \"git rebase --continue\")" -#: wt-status.c:1037 +#: wt-status.c:1036 msgid " (use \"git rebase --skip\" to skip this patch)" msgstr " (använd \"git rebase --skip\" för att hoppa över patchen)" -#: wt-status.c:1039 +#: wt-status.c:1038 msgid " (use \"git rebase --abort\" to check out the original branch)" msgstr " (använd \"git rebase --abort\" för att checka ut ursprungsgrenen)" -#: wt-status.c:1052 +#: wt-status.c:1051 msgid " (all conflicts fixed: run \"git rebase --continue\")" msgstr " (alla konflikter rättade: kör \"git rebase --continue\")" -#: wt-status.c:1056 +#: wt-status.c:1055 #, c-format msgid "" "You are currently splitting a commit while rebasing branch '%s' on '%s'." @@ -1663,118 +1674,118 @@ msgstr "" "Du hÃ¥ller pÃ¥ att dela upp en incheckning medan du ombaserar grenen \"%s\" " "ovanpÃ¥ \"%s\"." -#: wt-status.c:1061 +#: wt-status.c:1060 msgid "You are currently splitting a commit during a rebase." msgstr "Du hÃ¥ller pÃ¥ att dela upp en incheckning i en ombasering." -#: wt-status.c:1064 +#: wt-status.c:1063 msgid " (Once your working directory is clean, run \"git rebase --continue\")" msgstr " (SÃ¥ fort din arbetskatalog är ren, kör \"git rebase --continue\")" -#: wt-status.c:1068 +#: wt-status.c:1067 #, c-format msgid "You are currently editing a commit while rebasing branch '%s' on '%s'." msgstr "" "Du hÃ¥ller pÃ¥ att redigera en incheckning medan du ombaserar grenen \"%s\" " "ovanpÃ¥ \"%s\"." -#: wt-status.c:1073 +#: wt-status.c:1072 msgid "You are currently editing a commit during a rebase." msgstr "Du hÃ¥ller pÃ¥ att redigera en incheckning under en ombasering." -#: wt-status.c:1076 +#: wt-status.c:1075 msgid " (use \"git commit --amend\" to amend the current commit)" msgstr "" " (använd \"git commit --amend\" för att lägga till pÃ¥ aktuell incheckning)" -#: wt-status.c:1078 +#: wt-status.c:1077 msgid "" " (use \"git rebase --continue\" once you are satisfied with your changes)" msgstr " (använd \"git rebase --continue\" när du är nöjd med dina ändringar)" -#: wt-status.c:1088 +#: wt-status.c:1087 #, c-format msgid "You are currently cherry-picking commit %s." msgstr "Du hÃ¥ller pÃ¥ med en \"cherry-pick\" av incheckningen %s." -#: wt-status.c:1093 +#: wt-status.c:1092 msgid " (fix conflicts and run \"git cherry-pick --continue\")" msgstr " (rätta konflikter och kör sedan \"git cherry-pick --continue\")" -#: wt-status.c:1096 +#: wt-status.c:1095 msgid " (all conflicts fixed: run \"git cherry-pick --continue\")" msgstr " (alla konflikter rättade: kör \"git cherry-pick --continue\")" -#: wt-status.c:1098 +#: wt-status.c:1097 msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)" msgstr "" " (använd \"git cherry-pick --abort\" för att avbryta \"cherry-pick\"-" "operationen)" -#: wt-status.c:1107 +#: wt-status.c:1106 #, c-format msgid "You are currently reverting commit %s." msgstr "Du hÃ¥ller pÃ¥ med att Ã¥ngra incheckningen %s." -#: wt-status.c:1112 +#: wt-status.c:1111 msgid " (fix conflicts and run \"git revert --continue\")" msgstr " (rätta konflikter och kör sedan \"git revert --continue\")" -#: wt-status.c:1115 +#: wt-status.c:1114 msgid " (all conflicts fixed: run \"git revert --continue\")" msgstr " (alla konflikter rättade: kör \"git revert --continue\")" -#: wt-status.c:1117 +#: wt-status.c:1116 msgid " (use \"git revert --abort\" to cancel the revert operation)" msgstr " (använd \"git revert --abort\" för att avbryta Ã¥ngrandet)" -#: wt-status.c:1128 +#: wt-status.c:1127 #, c-format msgid "You are currently bisecting, started from branch '%s'." msgstr "Du hÃ¥ller pÃ¥ med en \"bisect\", startad frÃ¥n grenen \"%s\"." -#: wt-status.c:1132 +#: wt-status.c:1131 msgid "You are currently bisecting." msgstr "Du hÃ¥ller pÃ¥ med en \"bisect\"." -#: wt-status.c:1135 +#: wt-status.c:1134 msgid " (use \"git bisect reset\" to get back to the original branch)" msgstr "" " (använd \"git bisect reset\" för att komma tillbaka till ursprungsgrenen)" -#: wt-status.c:1310 +#: wt-status.c:1309 msgid "On branch " msgstr "PÃ¥ grenen " -#: wt-status.c:1317 +#: wt-status.c:1316 msgid "rebase in progress; onto " msgstr "ombasering pÃ¥gÃ¥r; ovanpÃ¥" -#: wt-status.c:1324 +#: wt-status.c:1323 msgid "HEAD detached at " msgstr "HEAD frÃ¥nkopplad vid " -#: wt-status.c:1326 +#: wt-status.c:1325 msgid "HEAD detached from " msgstr "HEAD frÃ¥nkopplad frÃ¥n " -#: wt-status.c:1329 +#: wt-status.c:1328 msgid "Not currently on any branch." msgstr "Inte pÃ¥ nÃ¥gon gren för närvarande." -#: wt-status.c:1346 +#: wt-status.c:1345 msgid "Initial commit" msgstr "Första incheckning" -#: wt-status.c:1360 +#: wt-status.c:1359 msgid "Untracked files" msgstr "OspÃ¥rade filer" -#: wt-status.c:1362 +#: wt-status.c:1361 msgid "Ignored files" msgstr "Ignorerade filer" -#: wt-status.c:1366 +#: wt-status.c:1365 #, c-format msgid "" "It took %.2f seconds to enumerate untracked files. 'status -uno'\n" @@ -1786,32 +1797,32 @@ msgstr "" "lägga till nya filer själv (se \"git help status\")." # %s är nästa sträng eller tom. -#: wt-status.c:1372 +#: wt-status.c:1371 #, c-format msgid "Untracked files not listed%s" msgstr "OspÃ¥rade filer visas ej%s" -#: wt-status.c:1374 +#: wt-status.c:1373 msgid " (use -u option to show untracked files)" msgstr " (använd flaggan -u för att visa ospÃ¥rade filer)" -#: wt-status.c:1380 +#: wt-status.c:1379 msgid "No changes" msgstr "Inga ändringar" -#: wt-status.c:1385 +#: wt-status.c:1384 #, c-format msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n" msgstr "" "inga ändringar att checka in (använd \"git add\" och/eller \"git commit -a" "\")\n" -#: wt-status.c:1388 +#: wt-status.c:1387 #, c-format msgid "no changes added to commit\n" msgstr "inga ändringar att checka in\n" -#: wt-status.c:1391 +#: wt-status.c:1390 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " @@ -1820,44 +1831,44 @@ msgstr "" "inget köat för incheckning, men ospÃ¥rade filer finns (spÃ¥ra med \"git add" "\")\n" -#: wt-status.c:1394 +#: wt-status.c:1393 #, c-format msgid "nothing added to commit but untracked files present\n" msgstr "inget köat för incheckning, men ospÃ¥rade filer finns\n" -#: wt-status.c:1397 +#: wt-status.c:1396 #, c-format msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "inget att checka in (skapa/kopiera filer och spÃ¥ra med \"git add\")\n" -#: wt-status.c:1400 wt-status.c:1405 +#: wt-status.c:1399 wt-status.c:1404 #, c-format msgid "nothing to commit\n" msgstr "inget att checka in\n" -#: wt-status.c:1403 +#: wt-status.c:1402 #, c-format msgid "nothing to commit (use -u to show untracked files)\n" msgstr "inget att checka in (använd -u för att visa ospÃ¥rade filer)\n" -#: wt-status.c:1407 +#: wt-status.c:1406 #, c-format msgid "nothing to commit, working directory clean\n" msgstr "inget att checka in, arbetskatalogen ren\n" -#: wt-status.c:1516 +#: wt-status.c:1515 msgid "HEAD (no branch)" msgstr "HEAD (ingen gren)" -#: wt-status.c:1522 +#: wt-status.c:1521 msgid "Initial commit on " msgstr "Första incheckning pÃ¥ " -#: wt-status.c:1554 +#: wt-status.c:1553 msgid "gone" msgstr "försvunnen" -#: wt-status.c:1556 wt-status.c:1564 +#: wt-status.c:1555 wt-status.c:1563 msgid "behind " msgstr "efter " @@ -1888,7 +1899,7 @@ msgstr "ta bort \"%s\"\n" msgid "Unstaged changes after refreshing the index:" msgstr "OspÃ¥rade ändringar efter att ha uppdaterat indexet:" -#: builtin/add.c:193 +#: builtin/add.c:193 builtin/rev-parse.c:781 msgid "Could not read the index" msgstr "Kunde inte läsa indexet" @@ -1919,15 +1930,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:248 builtin/clean.c:876 builtin/fetch.c:93 builtin/mv.c:70 -#: builtin/prune-packed.c:77 builtin/push.c:489 builtin/remote.c:1344 +#: builtin/add.c:248 builtin/clean.c:875 builtin/fetch.c:108 builtin/mv.c:70 +#: builtin/prune-packed.c:77 builtin/push.c:488 builtin/remote.c:1367 #: builtin/rm.c:269 msgid "dry run" msgstr "testkörning" -#: builtin/add.c:249 builtin/apply.c:4410 builtin/check-ignore.c:19 -#: builtin/commit.c:1256 builtin/count-objects.c:95 builtin/fsck.c:612 -#: builtin/log.c:1592 builtin/mv.c:69 builtin/read-tree.c:113 +#: builtin/add.c:249 builtin/apply.c:4411 builtin/check-ignore.c:19 +#: builtin/commit.c:1328 builtin/count-objects.c:95 builtin/fsck.c:606 +#: builtin/log.c:1613 builtin/mv.c:69 builtin/read-tree.c:113 msgid "be verbose" msgstr "var pratsam" @@ -1935,7 +1946,7 @@ msgstr "var pratsam" msgid "interactive picking" msgstr "plocka interaktivt" -#: builtin/add.c:252 builtin/checkout.c:1108 builtin/reset.c:283 +#: builtin/add.c:252 builtin/checkout.c:1102 builtin/reset.c:285 msgid "select hunks interactively" msgstr "välj stycken interaktivt" @@ -1988,30 +1999,30 @@ msgstr "inga filer har lagts till" msgid "adding files failed" msgstr "misslyckades lägga till filer" -#: builtin/add.c:330 +#: builtin/add.c:329 msgid "-A and -u are mutually incompatible" msgstr "-A och -u är ömsesidigt inkompatibla" -#: builtin/add.c:337 +#: builtin/add.c:336 msgid "Option --ignore-missing can only be used together with --dry-run" msgstr "Flaggan --ignore-missing kan endast användas tillsammans med --dry-run" -#: builtin/add.c:358 +#: builtin/add.c:357 #, c-format msgid "Nothing specified, nothing added.\n" msgstr "Inget angivet, inget tillagt.\n" -#: builtin/add.c:359 +#: builtin/add.c:358 #, c-format msgid "Maybe you wanted to say 'git add .'?\n" msgstr "Kanske menade du att skriva \"git add .\"?\n" -#: builtin/add.c:364 builtin/check-ignore.c:172 builtin/clean.c:920 -#: builtin/commit.c:320 builtin/mv.c:90 builtin/reset.c:234 builtin/rm.c:299 +#: builtin/add.c:363 builtin/check-ignore.c:172 builtin/clean.c:919 +#: builtin/commit.c:319 builtin/mv.c:90 builtin/reset.c:234 builtin/rm.c:299 msgid "index file corrupt" msgstr "indexfilen trasig" -#: builtin/add.c:448 builtin/apply.c:4506 builtin/mv.c:280 builtin/rm.c:432 +#: builtin/add.c:446 builtin/apply.c:4506 builtin/mv.c:280 builtin/rm.c:431 msgid "Unable to write new index file" msgstr "Kunde inte skriva ny indexfil" @@ -2029,37 +2040,37 @@ msgstr "okänt alternativ för whitespace: \"%s\"" msgid "unrecognized whitespace ignore option '%s'" msgstr "okänt alternativ för ignore-whitespace: \"%s\"" -#: builtin/apply.c:823 +#: builtin/apply.c:825 #, c-format msgid "Cannot prepare timestamp regexp %s" msgstr "Kan inte förbereda reguljärt uttryck för tidsstämpeln %s" -#: builtin/apply.c:832 +#: builtin/apply.c:834 #, c-format msgid "regexec returned %d for input: %s" msgstr "regexec returnerade %d för indata: %s" -#: builtin/apply.c:913 +#: builtin/apply.c:915 #, c-format msgid "unable to find filename in patch at line %d" msgstr "kan inte hitta filnamn i patchen pÃ¥ rad %d" -#: builtin/apply.c:945 +#: builtin/apply.c:947 #, c-format msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d" msgstr "git apply: dÃ¥lig git-diff - förväntade /dev/null, fick %s pÃ¥ rad %d" -#: builtin/apply.c:949 +#: builtin/apply.c:951 #, c-format msgid "git apply: bad git-diff - inconsistent new filename on line %d" msgstr "git apply: dÃ¥lig git-diff - motsägande nytt filnamn pÃ¥ rad %d" -#: builtin/apply.c:950 +#: builtin/apply.c:952 #, c-format msgid "git apply: bad git-diff - inconsistent old filename on line %d" msgstr "git apply: dÃ¥lig git-diff - motsägande gammalt filnamn pÃ¥ rad %d" -#: builtin/apply.c:957 +#: builtin/apply.c:959 #, c-format msgid "git apply: bad git-diff - expected /dev/null on line %d" msgstr "git apply: dÃ¥lig git-diff - förväntade /dev/null pÃ¥ rad %d" @@ -2174,17 +2185,17 @@ msgstr "" msgid "missing binary patch data for '%s'" msgstr "saknar binära patchdata för \"%s\"" -#: builtin/apply.c:2946 +#: builtin/apply.c:2944 #, c-format msgid "binary patch does not apply to '%s'" msgstr "binärpatchen kan inte tillämpas pÃ¥ \"%s\"" -#: builtin/apply.c:2952 +#: builtin/apply.c:2950 #, c-format msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)" msgstr "binärpatchen pÃ¥ \"%s\" ger felaktigt resultat (förväntade %s, fick %s)" -#: builtin/apply.c:2973 +#: builtin/apply.c:2971 #, c-format msgid "patch failed: %s:%ld" msgstr "patch misslyckades: %s:%ld" @@ -2273,213 +2284,213 @@ msgstr "make_cache_entry misslyckades för sökvägen \"%s\"" msgid "unable to remove %s from index" msgstr "kan inte ta bort %s frÃ¥n indexet" -#: builtin/apply.c:3851 +#: builtin/apply.c:3852 #, c-format msgid "corrupt patch for submodule %s" msgstr "trasig patch för undermodulen %s" -#: builtin/apply.c:3855 +#: builtin/apply.c:3856 #, c-format msgid "unable to stat newly created file '%s'" msgstr "kan inte ta status pÃ¥ nyligen skapade filen \"%s\"" -#: builtin/apply.c:3860 +#: builtin/apply.c:3861 #, c-format msgid "unable to create backing store for newly created file %s" msgstr "kan inte skapa säkerhetsminne för nyligen skapade filen %s" -#: builtin/apply.c:3863 builtin/apply.c:3971 +#: builtin/apply.c:3864 builtin/apply.c:3972 #, c-format msgid "unable to add cache entry for %s" msgstr "kan inte lägga till cachepost för %s" -#: builtin/apply.c:3896 +#: builtin/apply.c:3897 #, c-format msgid "closing file '%s'" msgstr "stänger filen \"%s\"" -#: builtin/apply.c:3945 +#: builtin/apply.c:3946 #, c-format msgid "unable to write file '%s' mode %o" msgstr "kan inte skriva filen \"%s\" läge %o" -#: builtin/apply.c:4032 +#: builtin/apply.c:4033 #, c-format msgid "Applied patch %s cleanly." msgstr "Tillämpade patchen %s rent." -#: builtin/apply.c:4040 +#: builtin/apply.c:4041 msgid "internal error" msgstr "internt fel" -#: builtin/apply.c:4043 +#: builtin/apply.c:4044 #, c-format msgid "Applying patch %%s with %d reject..." msgid_plural "Applying patch %%s with %d rejects..." msgstr[0] "Tillämpade patchen %%s med %d refuserad..." msgstr[1] "Tillämpade patchen %%s med %d refuserade..." -#: builtin/apply.c:4053 +#: builtin/apply.c:4054 #, c-format msgid "truncating .rej filename to %.*s.rej" msgstr "trunkerar .rej-filnamnet till %.*s.rej" -#: builtin/apply.c:4074 +#: builtin/apply.c:4075 #, c-format msgid "Hunk #%d applied cleanly." msgstr "Stycke %d tillämpades rent." -#: builtin/apply.c:4077 +#: builtin/apply.c:4078 #, c-format msgid "Rejected hunk #%d." msgstr "Refuserar stycke %d." -#: builtin/apply.c:4227 +#: builtin/apply.c:4228 msgid "unrecognized input" msgstr "indata känns inte igen" -#: builtin/apply.c:4238 +#: builtin/apply.c:4239 msgid "unable to read index file" msgstr "kan inte läsa indexfilen" -#: builtin/apply.c:4357 builtin/apply.c:4360 builtin/clone.c:90 -#: builtin/fetch.c:78 +#: builtin/apply.c:4358 builtin/apply.c:4361 builtin/clone.c:90 +#: builtin/fetch.c:93 msgid "path" msgstr "sökväg" -#: builtin/apply.c:4358 +#: builtin/apply.c:4359 msgid "don't apply changes matching the given path" msgstr "tillämpa inte ändringar som motsvarar given sökväg" -#: builtin/apply.c:4361 +#: builtin/apply.c:4362 msgid "apply changes matching the given path" msgstr "tillämpa ändringar som motsvarar given sökväg" -#: builtin/apply.c:4363 +#: builtin/apply.c:4364 msgid "num" msgstr "antal" -#: builtin/apply.c:4364 +#: builtin/apply.c:4365 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:4367 +#: builtin/apply.c:4368 msgid "ignore additions made by the patch" msgstr "ignorera tillägg gjorda av patchen" -#: builtin/apply.c:4369 +#: builtin/apply.c:4370 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:4373 +#: builtin/apply.c:4374 msgid "show number of added and deleted lines in decimal notation" msgstr "visa antal tillagda och borttagna rader decimalt" -#: builtin/apply.c:4375 +#: builtin/apply.c:4376 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:4377 +#: builtin/apply.c:4378 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:4379 +#: builtin/apply.c:4380 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:4381 +#: builtin/apply.c:4382 msgid "apply a patch without touching the working tree" msgstr "tillämpa en patch utan att röra arbetskatalogen" -#: builtin/apply.c:4383 +#: builtin/apply.c:4384 msgid "also apply the patch (use with --stat/--summary/--check)" msgstr "tillämpa ocksÃ¥ patchen (använd med --stat/--summary/--check)" -#: builtin/apply.c:4385 +#: builtin/apply.c:4386 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:4387 +#: builtin/apply.c:4388 msgid "build a temporary index based on embedded index information" msgstr "bygg ett temporärt index baserat pÃ¥ inbyggd indexinformation" -#: builtin/apply.c:4389 builtin/checkout-index.c:197 builtin/ls-files.c:455 +#: builtin/apply.c:4390 builtin/checkout-index.c:198 builtin/ls-files.c:455 msgid "paths are separated with NUL character" msgstr "sökvägar avdelas med NUL-tecken" -#: builtin/apply.c:4392 +#: builtin/apply.c:4393 msgid "ensure at least <n> lines of context match" msgstr "se till att Ã¥tminstone <n> rader sammanhang är lika" -#: builtin/apply.c:4393 +#: builtin/apply.c:4394 msgid "action" msgstr "Ã¥tgärd" -#: builtin/apply.c:4394 +#: builtin/apply.c:4395 msgid "detect new or modified lines that have whitespace errors" msgstr "detektera nya eller ändrade rader som har fel i blanktecken" -#: builtin/apply.c:4397 builtin/apply.c:4400 +#: builtin/apply.c:4398 builtin/apply.c:4401 msgid "ignore changes in whitespace when finding context" msgstr "ignorera ändringar i blanktecken för sammanhang" -#: builtin/apply.c:4403 +#: builtin/apply.c:4404 msgid "apply the patch in reverse" msgstr "tillämpa patchen baklänges" -#: builtin/apply.c:4405 +#: builtin/apply.c:4406 msgid "don't expect at least one line of context" msgstr "förvänta inte minst en rad sammanhang" -#: builtin/apply.c:4407 +#: builtin/apply.c:4408 msgid "leave the rejected hunks in corresponding *.rej files" msgstr "lämna refuserade stycken i motsvarande *.rej-filer" -#: builtin/apply.c:4409 +#: builtin/apply.c:4410 msgid "allow overlapping hunks" msgstr "tillÃ¥t överlappande stycken" -#: builtin/apply.c:4412 +#: builtin/apply.c:4413 msgid "tolerate incorrectly detected missing new-line at the end of file" msgstr "tolerera felaktigt detekterade saknade nyradstecken vid filslut" -#: builtin/apply.c:4415 +#: builtin/apply.c:4416 msgid "do not trust the line counts in the hunk headers" msgstr "lite inte pÃ¥ antalet linjer i styckehuvuden" -#: builtin/apply.c:4417 +#: builtin/apply.c:4418 msgid "root" msgstr "rot" -#: builtin/apply.c:4418 +#: builtin/apply.c:4419 msgid "prepend <root> to all filenames" msgstr "lägg till <rot> i alla filnamn" -#: builtin/apply.c:4440 +#: builtin/apply.c:4441 msgid "--3way outside a repository" msgstr "--3way utanför arkiv" -#: builtin/apply.c:4448 +#: builtin/apply.c:4449 msgid "--index outside a repository" msgstr "--index utanför arkiv" -#: builtin/apply.c:4451 +#: builtin/apply.c:4452 msgid "--cached outside a repository" msgstr "--cached utanför arkiv" -#: builtin/apply.c:4467 +#: builtin/apply.c:4468 #, c-format msgid "can't open patch '%s'" msgstr "kan inte öppna patchen \"%s\"" -#: builtin/apply.c:4481 +#: builtin/apply.c:4482 #, 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:4487 builtin/apply.c:4497 +#: builtin/apply.c:4488 builtin/apply.c:4498 #, c-format msgid "%d line adds whitespace errors." msgid_plural "%d lines add whitespace errors." @@ -2533,106 +2544,116 @@ 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:27 +#: builtin/blame.c:30 msgid "git blame [options] [rev-opts] [rev] [--] file" msgstr "git blame [flaggor] [rev-flaggor] [rev] [--] fil" -#: builtin/blame.c:32 +#: builtin/blame.c:35 msgid "[rev-opts] are documented in git-rev-list(1)" msgstr "[rev-flaggor] dokumenteras i git-rev-list(1)" -#: builtin/blame.c:2242 +#: builtin/blame.c:2501 msgid "Show blame entries as we find them, incrementally" msgstr "Visa klandringsposter när vi hittar dem, interaktivt" -#: builtin/blame.c:2243 +#: builtin/blame.c:2502 msgid "Show blank SHA-1 for boundary commits (Default: off)" msgstr "Visa blank SHA-1 för gränsincheckningar (Standard: av)" -#: builtin/blame.c:2244 +#: builtin/blame.c:2503 msgid "Do not treat root commits as boundaries (Default: off)" msgstr "Behandla inte rotincheckningar som gränser (Standard: av)" -#: builtin/blame.c:2245 +#: builtin/blame.c:2504 msgid "Show work cost statistics" msgstr "Visa statistik över arbetskostnad" -#: builtin/blame.c:2246 +#: builtin/blame.c:2505 msgid "Show output score for blame entries" msgstr "Visa utdatapoäng för klandringsposter" -#: builtin/blame.c:2247 +#: builtin/blame.c:2506 msgid "Show original filename (Default: auto)" msgstr "Visa originalfilnamn (Standard: auto)" -#: builtin/blame.c:2248 +#: builtin/blame.c:2507 msgid "Show original linenumber (Default: off)" msgstr "Visa ursprungligt radnummer (Standard: av)" -#: builtin/blame.c:2249 +#: builtin/blame.c:2508 msgid "Show in a format designed for machine consumption" msgstr "Visa i ett format avsett för maskinkonsumtion" -#: builtin/blame.c:2250 +#: builtin/blame.c:2509 msgid "Show porcelain format with per-line commit information" msgstr "Visa porslinsformat med per-rad-incheckningsinformation" -#: builtin/blame.c:2251 +#: builtin/blame.c:2510 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:2252 +#: builtin/blame.c:2511 msgid "Show raw timestamp (Default: off)" msgstr "Visa rÃ¥ tidsstämpel (Standard: av)" -#: builtin/blame.c:2253 +#: builtin/blame.c:2512 msgid "Show long commit SHA1 (Default: off)" msgstr "Visa lÃ¥ng inchecknings-SHA1 (Standard: av)" -#: builtin/blame.c:2254 +#: builtin/blame.c:2513 msgid "Suppress author name and timestamp (Default: off)" msgstr "Undertryck författarnamn och tidsstämpel (Standard: av)" -#: builtin/blame.c:2255 +#: builtin/blame.c:2514 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:2256 +#: builtin/blame.c:2515 msgid "Ignore whitespace differences" msgstr "Ignorera ändringar i blanksteg" -#: builtin/blame.c:2257 +#: builtin/blame.c:2516 msgid "Spend extra cycles to find better match" msgstr "Slösa extra cykler med att hitta bättre träff" -#: builtin/blame.c:2258 +#: builtin/blame.c:2517 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:2259 +#: builtin/blame.c:2518 msgid "Use <file>'s contents as the final image" msgstr "Använd <fil>s innehÃ¥ll som slutgiltig bild" -#: builtin/blame.c:2260 builtin/blame.c:2261 +#: builtin/blame.c:2519 builtin/blame.c:2520 msgid "score" msgstr "poäng" -#: builtin/blame.c:2260 +#: builtin/blame.c:2519 msgid "Find line copies within and across files" msgstr "Hitta kopierade rader inuti och mellan filer" -#: builtin/blame.c:2261 +#: builtin/blame.c:2520 msgid "Find line movements within and across files" msgstr "Hitta flyttade rader inuti och mellan filer" -#: builtin/blame.c:2262 +#: builtin/blame.c:2521 msgid "n,m" msgstr "n,m" -#: builtin/blame.c:2262 +#: builtin/blame.c:2521 msgid "Process only line range n,m, counting from 1" msgstr "Behandla endast radintervallet n,m, med början pÃ¥ 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:2599 +msgid "4 years, 11 months ago" +msgstr "4 Ã¥r, 11 mÃ¥nader sedan" + #: builtin/branch.c:24 msgid "git branch [options] [-r | -a] [--merged | --no-merged]" msgstr "git branch [flaggor] [-r | -a] [--merged | --no-merged]" @@ -2872,9 +2893,9 @@ msgid "act on remote-tracking branches" msgstr "arbeta pÃ¥ fjärrspÃ¥rande grenar" #: builtin/branch.c:817 builtin/branch.c:823 builtin/branch.c:844 -#: builtin/branch.c:850 builtin/commit.c:1494 builtin/commit.c:1495 -#: builtin/commit.c:1496 builtin/commit.c:1497 builtin/tag.c:527 -#: builtin/tag.c:533 +#: builtin/branch.c:850 builtin/commit.c:1573 builtin/commit.c:1574 +#: builtin/commit.c:1575 builtin/commit.c:1576 builtin/tag.c:615 +#: builtin/tag.c:621 msgid "commit" msgstr "incheckning" @@ -2938,7 +2959,7 @@ msgstr "visa grenar i spalter" msgid "Failed to resolve HEAD as a valid ref." msgstr "Misslyckades slÃ¥ upp HEAD som giltig referens" -#: builtin/branch.c:872 builtin/clone.c:635 +#: builtin/branch.c:872 builtin/clone.c:636 msgid "HEAD not found below refs/heads!" msgstr "HEAD hittades inte under refs/heads!" @@ -3124,7 +3145,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:1089 builtin/gc.c:271 +#: builtin/check-ignore.c:18 builtin/checkout.c:1083 builtin/gc.c:285 msgid "suppress progress reporting" msgstr "undertryck förloppsrapportering" @@ -3181,43 +3202,43 @@ msgstr "inga kontakter angavs" msgid "git checkout-index [options] [--] [<file>...]" msgstr "git checkout-index [flaggor] [--] [<fil>...]" -#: builtin/checkout-index.c:187 +#: builtin/checkout-index.c:188 msgid "check out all files in the index" msgstr "checka ut alla filer i indexet" -#: builtin/checkout-index.c:188 +#: builtin/checkout-index.c:189 msgid "force overwrite of existing files" msgstr "tvinga överskrivning av befintliga filer" -#: builtin/checkout-index.c:190 +#: builtin/checkout-index.c:191 msgid "no warning for existing files and files not in index" msgstr "ingen varning för existerande filer och filer ej i indexet" -#: builtin/checkout-index.c:192 +#: builtin/checkout-index.c:193 msgid "don't checkout new files" msgstr "checka inte ut nya filer" -#: builtin/checkout-index.c:194 +#: builtin/checkout-index.c:195 msgid "update stat information in the index file" msgstr "uppdatera stat-information i indexfilen" -#: builtin/checkout-index.c:200 +#: builtin/checkout-index.c:201 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:202 +#: builtin/checkout-index.c:203 msgid "write the content to temporary files" msgstr "skriv innehÃ¥ll till temporära filer" -#: builtin/checkout-index.c:203 builtin/column.c:30 +#: builtin/checkout-index.c:204 builtin/column.c:30 msgid "string" msgstr "sträng" -#: builtin/checkout-index.c:204 +#: builtin/checkout-index.c:205 msgid "when creating files, prepend <string>" msgstr "när filer skapas, lägg till <sträng> först" -#: builtin/checkout-index.c:207 +#: builtin/checkout-index.c:208 msgid "copy out the files from named stage" msgstr "kopiera ut filer frÃ¥n namngiven etapp" @@ -3259,75 +3280,75 @@ msgstr "sökväg \"%s\": kan inte slÃ¥ ihop" msgid "Unable to add merge result for '%s'" msgstr "Kunde inte lägga till sammanslagningsresultat för \"%s\"" -#: builtin/checkout.c:232 builtin/checkout.c:235 builtin/checkout.c:238 -#: builtin/checkout.c:241 +#: builtin/checkout.c:231 builtin/checkout.c:234 builtin/checkout.c:237 +#: builtin/checkout.c:240 #, c-format msgid "'%s' cannot be used with updating paths" msgstr "\"%s\" kan inte användas vid uppdatering av sökvägar" -#: builtin/checkout.c:244 builtin/checkout.c:247 +#: builtin/checkout.c:243 builtin/checkout.c:246 #, c-format msgid "'%s' cannot be used with %s" msgstr "\"%s\" kan inte användas med %s" -#: builtin/checkout.c:250 +#: builtin/checkout.c:249 #, c-format msgid "Cannot update paths and switch to branch '%s' at the same time." msgstr "Kan inte uppdatera sökvägar och växla till grenen \"%s\" samtidigt." -#: builtin/checkout.c:261 builtin/checkout.c:450 +#: builtin/checkout.c:260 builtin/checkout.c:449 msgid "corrupt index file" msgstr "indexfilen är trasig" -#: builtin/checkout.c:321 builtin/checkout.c:328 +#: builtin/checkout.c:320 builtin/checkout.c:327 #, c-format msgid "path '%s' is unmerged" msgstr "sökvägen \"%s\" har inte slagits ihop" -#: builtin/checkout.c:472 +#: builtin/checkout.c:471 msgid "you need to resolve your current index first" msgstr "du mÃ¥ste lösa ditt befintliga index först" -#: builtin/checkout.c:593 +#: builtin/checkout.c:591 #, c-format msgid "Can not do reflog for '%s'\n" msgstr "Kan inte skapa referenslog för \"%s\"\n" -#: builtin/checkout.c:631 +#: builtin/checkout.c:629 msgid "HEAD is now at" msgstr "HEAD är nu pÃ¥" -#: builtin/checkout.c:638 +#: builtin/checkout.c:636 #, c-format msgid "Reset branch '%s'\n" msgstr "Ã…terställ gren \"%s\"\n" -#: builtin/checkout.c:641 +#: builtin/checkout.c:639 #, c-format msgid "Already on '%s'\n" msgstr "Redan pÃ¥ \"%s\"\n" -#: builtin/checkout.c:645 +#: builtin/checkout.c:643 #, c-format msgid "Switched to and reset branch '%s'\n" msgstr "Växlade till och nollställde grenen \"%s\"\n" -#: builtin/checkout.c:647 builtin/checkout.c:1032 +#: builtin/checkout.c:645 builtin/checkout.c:1026 #, c-format msgid "Switched to a new branch '%s'\n" msgstr "Växlade till en ny gren \"%s\"\n" -#: builtin/checkout.c:649 +#: builtin/checkout.c:647 #, c-format msgid "Switched to branch '%s'\n" msgstr "Växlade till grenen \"%s\"\n" -#: builtin/checkout.c:705 +#: builtin/checkout.c:699 #, c-format msgid " ... and %d more.\n" msgstr " ... och %d till.\n" -#: builtin/checkout.c:711 +#: builtin/checkout.c:705 #, c-format msgid "" "Warning: you are leaving %d commit behind, not connected to\n" @@ -3350,7 +3371,7 @@ msgstr[1] "" "\n" "%s\n" -#: builtin/checkout.c:729 +#: builtin/checkout.c:723 #, c-format msgid "" "If you want to keep them by creating a new branch, this may be a good time\n" @@ -3365,139 +3386,139 @@ msgstr "" " git branch nytt_grennamn %s\n" "\n" -#: builtin/checkout.c:759 +#: builtin/checkout.c:753 msgid "internal error in revision walk" msgstr "internt fel vid genomgÃ¥ng av revisioner (revision walk)" -#: builtin/checkout.c:763 +#: builtin/checkout.c:757 msgid "Previous HEAD position was" msgstr "Tidigare position för HEAD var" -#: builtin/checkout.c:790 builtin/checkout.c:1027 +#: builtin/checkout.c:784 builtin/checkout.c:1021 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:934 +#: builtin/checkout.c:928 #, c-format msgid "only one reference expected, %d given." msgstr "endast en referens förväntades, %d gavs." -#: builtin/checkout.c:973 +#: builtin/checkout.c:967 #, c-format msgid "invalid reference: %s" msgstr "felaktig referens: %s" -#: builtin/checkout.c:1002 +#: builtin/checkout.c:996 #, c-format msgid "reference is not a tree: %s" msgstr "referensen är inte ett träd: %s" -#: builtin/checkout.c:1041 +#: builtin/checkout.c:1035 msgid "paths cannot be used with switching branches" msgstr "sökvägar kan inte användas vid byte av gren" -#: builtin/checkout.c:1044 builtin/checkout.c:1048 +#: builtin/checkout.c:1038 builtin/checkout.c:1042 #, c-format msgid "'%s' cannot be used with switching branches" msgstr "\"%s\" kan inte användas vid byte av gren" -#: builtin/checkout.c:1052 builtin/checkout.c:1055 builtin/checkout.c:1060 -#: builtin/checkout.c:1063 +#: builtin/checkout.c:1046 builtin/checkout.c:1049 builtin/checkout.c:1054 +#: builtin/checkout.c:1057 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "\"%s\" kan inte användas med \"%s\"" -#: builtin/checkout.c:1068 +#: builtin/checkout.c:1062 #, c-format msgid "Cannot switch branch to a non-commit '%s'" msgstr "Kan inte växla gren till icke-incheckningen \"%s\"" -#: builtin/checkout.c:1090 builtin/checkout.c:1092 builtin/clone.c:88 +#: builtin/checkout.c:1084 builtin/checkout.c:1086 builtin/clone.c:88 #: builtin/remote.c:159 builtin/remote.c:161 msgid "branch" msgstr "gren" -#: builtin/checkout.c:1091 +#: builtin/checkout.c:1085 msgid "create and checkout a new branch" msgstr "skapa och checka ut en ny gren" -#: builtin/checkout.c:1093 +#: builtin/checkout.c:1087 msgid "create/reset and checkout a branch" msgstr "skapa/nollställ och checka ut en gren" -#: builtin/checkout.c:1094 +#: builtin/checkout.c:1088 msgid "create reflog for new branch" msgstr "skapa reflogg för ny gren" -#: builtin/checkout.c:1095 +#: builtin/checkout.c:1089 msgid "detach the HEAD at named commit" msgstr "koppla frÃ¥n HEAD vid namngiven incheckning" -#: builtin/checkout.c:1096 +#: builtin/checkout.c:1090 msgid "set upstream info for new branch" msgstr "sätt uppströmsinformation för ny gren" -#: builtin/checkout.c:1098 +#: builtin/checkout.c:1092 msgid "new-branch" msgstr "ny-gren" -#: builtin/checkout.c:1098 +#: builtin/checkout.c:1092 msgid "new unparented branch" msgstr "ny gren utan förälder" -#: builtin/checkout.c:1099 +#: builtin/checkout.c:1093 msgid "checkout our version for unmerged files" msgstr "checka ut vÃ¥r version för ej sammanslagna filer" -#: builtin/checkout.c:1101 +#: builtin/checkout.c:1095 msgid "checkout their version for unmerged files" msgstr "checka ut deras version för ej sammanslagna filer" -#: builtin/checkout.c:1103 +#: builtin/checkout.c:1097 msgid "force checkout (throw away local modifications)" msgstr "tvinga utcheckning (kasta bort lokala ändringar)" -#: builtin/checkout.c:1104 +#: builtin/checkout.c:1098 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:1105 builtin/merge.c:225 +#: builtin/checkout.c:1099 builtin/merge.c:225 msgid "update ignored files (default)" msgstr "uppdatera ignorerade filer (standard)" -#: builtin/checkout.c:1106 builtin/log.c:1228 parse-options.h:245 +#: builtin/checkout.c:1100 builtin/log.c:1236 parse-options.h:245 msgid "style" msgstr "stil" -#: builtin/checkout.c:1107 +#: builtin/checkout.c:1101 msgid "conflict style (merge or diff3)" msgstr "konfliktstil (merge eller diff3)" -#: builtin/checkout.c:1110 +#: builtin/checkout.c:1104 msgid "do not limit pathspecs to sparse entries only" msgstr "begränsa inte sökvägar till endast glesa poster" -#: builtin/checkout.c:1112 +#: builtin/checkout.c:1106 msgid "second guess 'git checkout no-such-branch'" msgstr "förutspÃ¥ \"git checkout gren-saknas\"" -#: builtin/checkout.c:1135 +#: builtin/checkout.c:1129 msgid "-b, -B and --orphan are mutually exclusive" msgstr "-b, -B och --orphan är ömsesidigt uteslutande" -#: builtin/checkout.c:1152 +#: builtin/checkout.c:1146 msgid "--track needs a branch name" msgstr "--track behöver ett namn pÃ¥ en gren" -#: builtin/checkout.c:1159 +#: builtin/checkout.c:1153 msgid "Missing branch name; try -b" msgstr "Grennamn saknas; försök med -b" -#: builtin/checkout.c:1196 +#: builtin/checkout.c:1190 msgid "invalid path specification" msgstr "felaktig sökvägsangivelse" -#: builtin/checkout.c:1203 +#: builtin/checkout.c:1197 #, c-format msgid "" "Cannot update paths and switch to branch '%s' at the same time.\n" @@ -3506,12 +3527,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:1208 +#: builtin/checkout.c:1202 #, 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:1212 +#: builtin/checkout.c:1206 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." @@ -3588,30 +3609,30 @@ msgstr "" msgid "Huh (%s)?" msgstr "VadÃ¥ (%s)?" -#: builtin/clean.c:660 +#: builtin/clean.c:659 #, c-format msgid "Input ignore patterns>> " msgstr "Ange ignoreringsmönster>>" -#: builtin/clean.c:697 +#: builtin/clean.c:696 #, c-format msgid "WARNING: Cannot find items matched by: %s" msgstr "VARNING: Hittar inte poster som motsvarar: %s" -#: builtin/clean.c:718 +#: builtin/clean.c:717 msgid "Select items to delete" msgstr "Välj poster att ta bort" -#: builtin/clean.c:758 +#: builtin/clean.c:757 #, c-format msgid "remove %s? " msgstr "ta bort %s?" -#: builtin/clean.c:783 +#: builtin/clean.c:782 msgid "Bye." msgstr "Hej dÃ¥." -#: builtin/clean.c:791 +#: builtin/clean.c:790 msgid "" "clean - start cleaning\n" "filter by pattern - exclude items from deletion\n" @@ -3629,62 +3650,62 @@ msgstr "" "help - denna skärm\n" "? - hjälp för kommandoval" -#: builtin/clean.c:818 +#: builtin/clean.c:817 msgid "*** Commands ***" msgstr "*** Kommandon ***" -#: builtin/clean.c:819 +#: builtin/clean.c:818 msgid "What now" msgstr "Vad nu" -#: builtin/clean.c:827 +#: builtin/clean.c:826 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:844 +#: builtin/clean.c:843 msgid "No more files to clean, exiting." msgstr "Inga fler filer att städa, avslutar." -#: builtin/clean.c:875 +#: builtin/clean.c:874 msgid "do not print names of files removed" msgstr "skriv inte ut namn pÃ¥ borttagna filer" -#: builtin/clean.c:877 +#: builtin/clean.c:876 msgid "force" msgstr "tvinga" -#: builtin/clean.c:878 +#: builtin/clean.c:877 msgid "interactive cleaning" msgstr "städa interaktivt" -#: builtin/clean.c:880 +#: builtin/clean.c:879 msgid "remove whole directories" msgstr "ta bort hela kataloger" -#: builtin/clean.c:881 builtin/describe.c:415 builtin/grep.c:716 -#: builtin/ls-files.c:486 builtin/name-rev.c:314 builtin/show-ref.c:185 +#: builtin/clean.c:880 builtin/describe.c:406 builtin/grep.c:714 +#: builtin/ls-files.c:486 builtin/name-rev.c:311 builtin/show-ref.c:185 msgid "pattern" msgstr "mönster" -#: builtin/clean.c:882 +#: builtin/clean.c:881 msgid "add <pattern> to ignore rules" msgstr "lägg till <mönster> till ignoreringsregler" -#: builtin/clean.c:883 +#: builtin/clean.c:882 msgid "remove ignored files, too" msgstr "ta även bort ignorerade filer" -#: builtin/clean.c:885 +#: builtin/clean.c:884 msgid "remove only ignored files" msgstr "ta endast bort ignorerade filer" -#: builtin/clean.c:903 +#: builtin/clean.c:902 msgid "-x and -X cannot be used together" msgstr "-x och -X kan inte användas samtidigt" -#: builtin/clean.c:907 +#: builtin/clean.c:906 msgid "" "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to " "clean" @@ -3692,7 +3713,7 @@ msgstr "" "clean.requireForce satt till true, men varken -i, -n eller -f angavs; vägrar " "städa" -#: builtin/clean.c:910 +#: builtin/clean.c:909 msgid "" "clean.requireForce defaults to true and neither -i, -n, nor -f given; " "refusing to clean" @@ -3704,8 +3725,8 @@ msgstr "" msgid "git clone [options] [--] <repo> [<dir>]" msgstr "git clone [flaggor] [--] <arkiv> [<kat>]" -#: builtin/clone.c:64 builtin/fetch.c:97 builtin/merge.c:222 -#: builtin/push.c:504 +#: builtin/clone.c:64 builtin/fetch.c:112 builtin/merge.c:222 +#: builtin/push.c:503 msgid "force progress reporting" msgstr "tvinga förloppsrapportering" @@ -3765,7 +3786,7 @@ msgstr "checka ut <gren> istället för fjärrens HEAD" msgid "path to git-upload-pack on the remote" msgstr "sökväg till git-upload-pack pÃ¥ fjärren" -#: builtin/clone.c:92 builtin/fetch.c:98 builtin/grep.c:661 +#: builtin/clone.c:92 builtin/fetch.c:113 builtin/grep.c:659 msgid "depth" msgstr "djup" @@ -3867,95 +3888,95 @@ msgstr "Kontrollerar anslutning..." msgid "remote did not send all necessary objects" msgstr "fjärren sände inte alla nödvändiga objekt" -#: builtin/clone.c:626 +#: builtin/clone.c:627 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:657 +#: builtin/clone.c:658 msgid "unable to checkout working tree" msgstr "kunde inte checka ut arbetskatalogen" -#: builtin/clone.c:765 +#: builtin/clone.c:768 msgid "Too many arguments." msgstr "För mÃ¥nga argument." -#: builtin/clone.c:769 +#: builtin/clone.c:772 msgid "You must specify a repository to clone." msgstr "Du mÃ¥ste ange ett arkiv att klona." -#: builtin/clone.c:780 +#: builtin/clone.c:783 #, c-format msgid "--bare and --origin %s options are incompatible." msgstr "flaggorna --bare och --origin %s är inkompatibla." -#: builtin/clone.c:783 +#: builtin/clone.c:786 msgid "--bare and --separate-git-dir are incompatible." msgstr "flaggorna --bare och --separate-git-dir är inkompatibla." -#: builtin/clone.c:796 +#: builtin/clone.c:799 #, c-format msgid "repository '%s' does not exist" msgstr "arkivet \"%s\" finns inte" -#: builtin/clone.c:802 -msgid "--depth is ignored in local clones; use file:// instead." -msgstr "--depth ignoreras i lokala kloningar; använd file:// istället" - -#: builtin/clone.c:805 -msgid "source repository is shallow, ignoring --local" -msgstr "källarkivet är grunt, ignorerar --local" - -#: builtin/clone.c:810 -msgid "--local is ignored" -msgstr "--local ignoreras" - -#: builtin/clone.c:814 builtin/fetch.c:1119 +#: builtin/clone.c:805 builtin/fetch.c:1143 #, c-format msgid "depth %s is not a positive number" msgstr "djupet %s är inte ett positivt tal" -#: builtin/clone.c:824 +#: builtin/clone.c:815 #, 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:834 +#: builtin/clone.c:825 #, c-format msgid "working tree '%s' already exists." msgstr "arbetsträdet \"%s\" finns redan." -#: builtin/clone.c:847 builtin/clone.c:859 +#: builtin/clone.c:838 builtin/clone.c:850 #, c-format msgid "could not create leading directories of '%s'" msgstr "kunde inte skapa inledande kataloger för \"%s\"" -#: builtin/clone.c:850 +#: builtin/clone.c:841 #, c-format msgid "could not create work tree dir '%s'." msgstr "kunde inte skapa arbetskatalogen \"%s\"" -#: builtin/clone.c:869 +#: builtin/clone.c:860 #, c-format msgid "Cloning into bare repository '%s'...\n" msgstr "Klonar till ett naket arkiv \"%s\"...\n" -#: builtin/clone.c:871 +#: builtin/clone.c:862 #, c-format msgid "Cloning into '%s'...\n" msgstr "Klonar till \"%s\"...\n" +#: builtin/clone.c:898 +msgid "--depth is ignored in local clones; use file:// instead." +msgstr "--depth ignoreras i lokala kloningar; använd file:// istället" + +#: builtin/clone.c:901 +msgid "source repository is shallow, ignoring --local" +msgstr "källarkivet är grunt, ignorerar --local" + #: builtin/clone.c:906 +msgid "--local is ignored" +msgstr "--local ignoreras" + +#: builtin/clone.c:910 #, c-format msgid "Don't know how to clone %s" msgstr "Vet inte hur man klonar %s" -#: builtin/clone.c:957 builtin/clone.c:965 +#: builtin/clone.c:961 builtin/clone.c:969 #, c-format msgid "Remote branch %s not found in upstream %s" msgstr "Fjärrgrenen %s hittades inte i uppströmsarkivet %s" -#: builtin/clone.c:968 +#: builtin/clone.c:972 msgid "You appear to have cloned an empty repository." msgstr "Du verkar ha klonat ett tomt arkiv." @@ -4072,89 +4093,98 @@ msgstr "" msgid "failed to unpack HEAD tree object" msgstr "misslyckades packa upp HEAD:s trädobjekt" -#: builtin/commit.c:330 +#: builtin/commit.c:328 msgid "unable to create temporary index" msgstr "kunde inte skapa temporär indexfil" -#: builtin/commit.c:336 +#: builtin/commit.c:334 msgid "interactive add failed" msgstr "interaktiv tilläggning misslyckades" -#: builtin/commit.c:369 builtin/commit.c:390 builtin/commit.c:440 +#: builtin/commit.c:366 builtin/commit.c:387 builtin/commit.c:435 msgid "unable to write new_index file" msgstr "kunde inte skriva filen new_index" -#: builtin/commit.c:421 +#: builtin/commit.c:418 msgid "cannot do a partial commit during a merge." msgstr "kan inte utföra en delvis incheckning under en sammanslagning." -#: builtin/commit.c:423 +#: builtin/commit.c:420 msgid "cannot do a partial commit during a cherry-pick." msgstr "kan inte utföra en delvis incheckning under en cherry-pick." -#: builtin/commit.c:433 +#: builtin/commit.c:429 msgid "cannot read the index" msgstr "kan inte läsa indexet" -#: builtin/commit.c:453 +#: builtin/commit.c:447 msgid "unable to write temporary index file" msgstr "kunde inte skriva temporär indexfil" -#: builtin/commit.c:544 builtin/commit.c:550 +#: builtin/commit.c:557 builtin/commit.c:563 #, c-format msgid "invalid commit: %s" msgstr "felaktig incheckning: %s" -#: builtin/commit.c:572 +#: builtin/commit.c:585 msgid "malformed --author parameter" msgstr "felformad \"--author\"-flagga" #: builtin/commit.c:592 #, c-format +msgid "invalid date format: %s" +msgstr "felaktigt datumformat: %s" + +#: builtin/commit.c:609 +#, c-format msgid "Malformed ident string: '%s'" msgstr "Felaktig indragningssträng: \"%s\"" -#: builtin/commit.c:629 builtin/commit.c:663 builtin/commit.c:1014 +#: builtin/commit.c:642 +msgid "" +"unable to select a comment character that is not used\n" +"in the current commit message" +msgstr "" +"kunde inte välja ett kommentarstecken som inte använts\n" +"i det befintliga incheckningsmeddelandet" + +#: builtin/commit.c:679 builtin/commit.c:712 builtin/commit.c:1086 #, c-format msgid "could not lookup commit %s" msgstr "kunde inte slÃ¥ upp incheckningen %s" -#: builtin/commit.c:641 builtin/shortlog.c:273 +#: builtin/commit.c:691 builtin/shortlog.c:273 #, c-format msgid "(reading log message from standard input)\n" msgstr "(läser loggmeddelande frÃ¥n standard in)\n" -#: builtin/commit.c:643 +#: builtin/commit.c:693 msgid "could not read log from standard input" msgstr "kunde inte läsa logg frÃ¥n standard in" -#: builtin/commit.c:647 +#: builtin/commit.c:697 #, c-format msgid "could not read log file '%s'" msgstr "kunde inte läsa loggfilen \"%s\"" -#: builtin/commit.c:654 -msgid "commit has empty message" -msgstr "incheckningen har ett tomt meddelande" - -#: builtin/commit.c:670 +#: builtin/commit.c:719 msgid "could not read MERGE_MSG" msgstr "kunde inte läsa MERGE_MSG" -#: builtin/commit.c:674 +#: builtin/commit.c:723 msgid "could not read SQUASH_MSG" msgstr "kunde inte läsa SQUASH_MSG" -#: builtin/commit.c:678 +#: builtin/commit.c:727 #, c-format msgid "could not read '%s'" msgstr "kunde inte läsa \"%s\"" -#: builtin/commit.c:749 +#: builtin/commit.c:798 msgid "could not write commit template" msgstr "kunde inte skriva incheckningsmall" -#: builtin/commit.c:764 +#: builtin/commit.c:816 #, c-format msgid "" "\n" @@ -4169,7 +4199,7 @@ msgstr "" "\t%s\n" "och försöker igen.\n" -#: builtin/commit.c:769 +#: builtin/commit.c:821 #, c-format msgid "" "\n" @@ -4184,7 +4214,7 @@ msgstr "" "\t%s\n" "och försöker igen.\n" -#: builtin/commit.c:782 +#: builtin/commit.c:834 #, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" @@ -4194,7 +4224,7 @@ msgstr "" "med \"%c\" kommer ignoreras, och ett tomt meddelande avbryter " "incheckningen.\n" -#: builtin/commit.c:789 +#: builtin/commit.c:841 #, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" @@ -4205,139 +4235,144 @@ msgstr "" "med \"%c\" kommer behÃ¥llas; du kan själv ta bort dem om du vill.\n" "Ett tomt meddelande avbryter incheckningen.\n" -#: builtin/commit.c:802 +#: builtin/commit.c:855 +#, c-format +msgid "%sAuthor: %.*s <%.*s>" +msgstr "%sFörfattare: %.*s <%.*s>" + +#: builtin/commit.c:863 #, c-format -msgid "%sAuthor: %s" -msgstr "%sFörfattare: %s" +msgid "%sDate: %s" +msgstr "%sDatum: %s" -#: builtin/commit.c:809 +#: builtin/commit.c:870 #, c-format -msgid "%sCommitter: %s" -msgstr "%sIncheckare: %s" +msgid "%sCommitter: %.*s <%.*s>" +msgstr "%sIncheckare: %.*s <%.*s>" -#: builtin/commit.c:829 +#: builtin/commit.c:888 msgid "Cannot read index" msgstr "Kan inte läsa indexet" -#: builtin/commit.c:872 +#: builtin/commit.c:945 msgid "Error building trees" msgstr "Fel vid byggande av träd" -#: builtin/commit.c:887 builtin/tag.c:391 +#: builtin/commit.c:960 builtin/tag.c:495 #, c-format msgid "Please supply the message using either -m or -F option.\n" msgstr "Ange meddelandet en av flaggorna -m eller -F.\n" -#: builtin/commit.c:989 +#: builtin/commit.c:1061 #, c-format msgid "No existing author found with '%s'" msgstr "Hittade ingen befintlig författare med \"%s\"" -#: builtin/commit.c:1004 builtin/commit.c:1244 +#: builtin/commit.c:1076 builtin/commit.c:1316 #, c-format msgid "Invalid untracked files mode '%s'" msgstr "Ogiltigt läge för ospÃ¥rade filer: \"%s\"" -#: builtin/commit.c:1041 +#: builtin/commit.c:1113 msgid "--long and -z are incompatible" msgstr "--long och -z är inkompatibla" -#: builtin/commit.c:1071 +#: builtin/commit.c:1143 msgid "Using both --reset-author and --author does not make sense" msgstr "Kan inte använda bÃ¥de --reset-author och --author" -#: builtin/commit.c:1080 +#: builtin/commit.c:1152 msgid "You have nothing to amend." msgstr "Du har inget att utöka." -#: builtin/commit.c:1083 +#: builtin/commit.c:1155 msgid "You are in the middle of a merge -- cannot amend." msgstr "Du är i mitten av en sammanslagning -- kan inte utöka." -#: builtin/commit.c:1085 +#: builtin/commit.c:1157 msgid "You are in the middle of a cherry-pick -- cannot amend." msgstr "Du är i mitten av en cherry-pick -- kan inte utöka." -#: builtin/commit.c:1088 +#: builtin/commit.c:1160 msgid "Options --squash and --fixup cannot be used together" msgstr "Flaggorna --squash och --fixup kan inte användas samtidigt" -#: builtin/commit.c:1098 +#: builtin/commit.c:1170 msgid "Only one of -c/-C/-F/--fixup can be used." msgstr "Endast en av -c/-C/-F/--fixup kan användas." -#: builtin/commit.c:1100 +#: builtin/commit.c:1172 msgid "Option -m cannot be combined with -c/-C/-F/--fixup." msgstr "Flaggan -m kan inte kombineras med -c/-C/-F/--fixup." -#: builtin/commit.c:1108 +#: builtin/commit.c:1180 msgid "--reset-author can be used only with -C, -c or --amend." msgstr "--reset-author kan endast användas med -C, -c eller --amend." -#: builtin/commit.c:1125 +#: builtin/commit.c:1197 msgid "Only one of --include/--only/--all/--interactive/--patch can be used." msgstr "" "Endast en av --include/--only/--all/--interactive/--patch kan användas." -#: builtin/commit.c:1127 +#: builtin/commit.c:1199 msgid "No paths with --include/--only does not make sense." msgstr "Du mÃ¥ste ange sökvägar tillsammans med --include/--only." -#: builtin/commit.c:1129 +#: builtin/commit.c:1201 msgid "Clever... amending the last one with dirty index." msgstr "Smart... utöka den senaste med smutsigt index." -#: builtin/commit.c:1131 +#: builtin/commit.c:1203 msgid "Explicit paths specified without -i or -o; assuming --only paths..." msgstr "Explicita sökvägar angavs utan -i eller -o; antar --only sökvägar..." -#: builtin/commit.c:1143 builtin/tag.c:639 +#: builtin/commit.c:1215 builtin/tag.c:727 #, c-format msgid "Invalid cleanup mode %s" msgstr "Felaktigt städningsläge %s" -#: builtin/commit.c:1148 +#: builtin/commit.c:1220 msgid "Paths with -a does not make sense." msgstr "Kan inte ange sökvägar med -a." -#: builtin/commit.c:1258 builtin/commit.c:1516 +#: builtin/commit.c:1330 builtin/commit.c:1595 msgid "show status concisely" msgstr "visa koncis status" -#: builtin/commit.c:1260 builtin/commit.c:1518 +#: builtin/commit.c:1332 builtin/commit.c:1597 msgid "show branch information" msgstr "visa information om gren" -#: builtin/commit.c:1262 builtin/commit.c:1520 builtin/push.c:490 +#: builtin/commit.c:1334 builtin/commit.c:1599 builtin/push.c:489 msgid "machine-readable output" msgstr "maskinläsbar utdata" -#: builtin/commit.c:1265 builtin/commit.c:1522 +#: builtin/commit.c:1337 builtin/commit.c:1601 msgid "show status in long format (default)" msgstr "visa status i lÃ¥ngt format (standard)" -#: builtin/commit.c:1268 builtin/commit.c:1525 +#: builtin/commit.c:1340 builtin/commit.c:1604 msgid "terminate entries with NUL" msgstr "terminera poster med NUL" -#: builtin/commit.c:1270 builtin/commit.c:1528 builtin/fast-export.c:674 -#: builtin/fast-export.c:677 builtin/tag.c:514 +#: builtin/commit.c:1342 builtin/commit.c:1607 builtin/fast-export.c:703 +#: builtin/fast-export.c:706 builtin/tag.c:602 msgid "mode" msgstr "läge" -#: builtin/commit.c:1271 builtin/commit.c:1528 +#: builtin/commit.c:1343 builtin/commit.c:1607 msgid "show untracked files, optional modes: all, normal, no. (Default: all)" msgstr "visa ospÃ¥rade filer, valfria lägen: alla, normal, no. (Standard: all)" -#: builtin/commit.c:1274 +#: builtin/commit.c:1346 msgid "show ignored files" msgstr "visa ignorerade filer" -#: builtin/commit.c:1275 parse-options.h:153 +#: builtin/commit.c:1347 parse-options.h:153 msgid "when" msgstr "när" -#: builtin/commit.c:1276 +#: builtin/commit.c:1348 msgid "" "ignore changes to submodules, optional when: all, dirty, untracked. " "(Default: all)" @@ -4345,217 +4380,217 @@ msgstr "" "ignorera ändringar i undermoduler, valfritt när: all, dirty, untracked. " "(Default: all)" -#: builtin/commit.c:1278 +#: builtin/commit.c:1350 msgid "list untracked files in columns" msgstr "visa ospÃ¥rade filer i spalter" -#: builtin/commit.c:1347 +#: builtin/commit.c:1419 msgid "couldn't look up newly created commit" msgstr "kunde inte slÃ¥ upp en precis skapad incheckning" -#: builtin/commit.c:1349 +#: builtin/commit.c:1421 msgid "could not parse newly created commit" msgstr "kunde inte tolka en precis skapad incheckning" -#: builtin/commit.c:1390 +#: builtin/commit.c:1469 msgid "detached HEAD" msgstr "frÃ¥nkopplad HEAD" -#: builtin/commit.c:1392 +#: builtin/commit.c:1471 msgid " (root-commit)" msgstr " (rotincheckning)" -#: builtin/commit.c:1486 +#: builtin/commit.c:1565 msgid "suppress summary after successful commit" msgstr "undertryck sammanfattning efter framgÃ¥ngsrik incheckning" -#: builtin/commit.c:1487 +#: builtin/commit.c:1566 msgid "show diff in commit message template" msgstr "visa diff i mallen för incheckningsmeddelandet" -#: builtin/commit.c:1489 +#: builtin/commit.c:1568 msgid "Commit message options" msgstr "Alternativ för incheckningsmeddelande" -#: builtin/commit.c:1490 builtin/tag.c:512 +#: builtin/commit.c:1569 builtin/tag.c:600 msgid "read message from file" msgstr "läs meddelande frÃ¥n fil" -#: builtin/commit.c:1491 +#: builtin/commit.c:1570 msgid "author" msgstr "författare" -#: builtin/commit.c:1491 +#: builtin/commit.c:1570 msgid "override author for commit" msgstr "överstyr författare för incheckningen" -#: builtin/commit.c:1492 builtin/gc.c:272 +#: builtin/commit.c:1571 builtin/gc.c:286 msgid "date" msgstr "datum" -#: builtin/commit.c:1492 +#: builtin/commit.c:1571 msgid "override date for commit" -msgstr "överstyr datum för inchecknignen" +msgstr "överstyr datum för incheckningen" -#: builtin/commit.c:1493 builtin/merge.c:216 builtin/notes.c:409 -#: builtin/notes.c:566 builtin/tag.c:510 +#: builtin/commit.c:1572 builtin/merge.c:216 builtin/notes.c:409 +#: builtin/notes.c:566 builtin/tag.c:598 msgid "message" msgstr "meddelande" -#: builtin/commit.c:1493 +#: builtin/commit.c:1572 msgid "commit message" msgstr "incheckningsmeddelande" -#: builtin/commit.c:1494 +#: builtin/commit.c:1573 msgid "reuse and edit message from specified commit" msgstr "Ã¥teranvänd och redigera meddelande frÃ¥n angiven incheckning" -#: builtin/commit.c:1495 +#: builtin/commit.c:1574 msgid "reuse message from specified commit" msgstr "Ã¥teranvänd meddelande frÃ¥n angiven incheckning" -#: builtin/commit.c:1496 +#: builtin/commit.c:1575 msgid "use autosquash formatted message to fixup specified commit" msgstr "" "använd autosquash-formaterat meddelande för att fixa angiven incheckning" -#: builtin/commit.c:1497 +#: builtin/commit.c:1576 msgid "use autosquash formatted message to squash specified commit" msgstr "" "använd autosquash-formaterat meddelande för att slÃ¥ ihop med angiven " "incheckning" -#: builtin/commit.c:1498 +#: builtin/commit.c:1577 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:1499 builtin/log.c:1180 builtin/revert.c:86 +#: builtin/commit.c:1578 builtin/log.c:1188 builtin/revert.c:86 msgid "add Signed-off-by:" msgstr "lägg till Signed-off-by:" -#: builtin/commit.c:1500 +#: builtin/commit.c:1579 msgid "use specified template file" msgstr "använd angiven mallfil" -#: builtin/commit.c:1501 +#: builtin/commit.c:1580 msgid "force edit of commit" msgstr "tvinga redigering av incheckning" -#: builtin/commit.c:1502 +#: builtin/commit.c:1581 msgid "default" msgstr "standard" -#: builtin/commit.c:1502 builtin/tag.c:515 +#: builtin/commit.c:1581 builtin/tag.c:603 msgid "how to strip spaces and #comments from message" msgstr "hur blanksteg och #kommentarer skall tas bort frÃ¥n meddelande" -#: builtin/commit.c:1503 +#: builtin/commit.c:1582 msgid "include status in commit message template" msgstr "inkludera status i mallen för incheckningsmeddelandet" -#: builtin/commit.c:1504 builtin/merge.c:223 builtin/revert.c:92 -#: builtin/tag.c:516 +#: builtin/commit.c:1583 builtin/merge.c:223 builtin/revert.c:92 +#: builtin/tag.c:604 msgid "key-id" msgstr "nyckel-id" -#: builtin/commit.c:1505 builtin/merge.c:224 builtin/revert.c:93 +#: builtin/commit.c:1584 builtin/merge.c:224 builtin/revert.c:93 msgid "GPG sign commit" msgstr "GPG-signera incheckning" -#: builtin/commit.c:1508 +#: builtin/commit.c:1587 msgid "Commit contents options" msgstr "Alternativ för incheckningens innehÃ¥ll" -#: builtin/commit.c:1509 +#: builtin/commit.c:1588 msgid "commit all changed files" msgstr "checka in alla ändrade filer" -#: builtin/commit.c:1510 +#: builtin/commit.c:1589 msgid "add specified files to index for commit" msgstr "lägg till angivna filer till indexet för incheckning" -#: builtin/commit.c:1511 +#: builtin/commit.c:1590 msgid "interactively add files" msgstr "lägg till filer interaktivt" -#: builtin/commit.c:1512 +#: builtin/commit.c:1591 msgid "interactively add changes" msgstr "lägg till ändringar interaktivt" -#: builtin/commit.c:1513 +#: builtin/commit.c:1592 msgid "commit only specified files" msgstr "checka endast in angivna filer" -#: builtin/commit.c:1514 +#: builtin/commit.c:1593 msgid "bypass pre-commit hook" msgstr "förbigÃ¥ pre-commit-krok" -#: builtin/commit.c:1515 +#: builtin/commit.c:1594 msgid "show what would be committed" msgstr "visa vad som skulle checkas in" -#: builtin/commit.c:1526 +#: builtin/commit.c:1605 msgid "amend previous commit" msgstr "lägg till föregÃ¥ende incheckning" -#: builtin/commit.c:1527 +#: builtin/commit.c:1606 msgid "bypass post-rewrite hook" msgstr "förbigÃ¥ post-rewrite-krok" -#: builtin/commit.c:1532 +#: builtin/commit.c:1611 msgid "ok to record an empty change" msgstr "ok att registrera en tom ändring" -#: builtin/commit.c:1534 +#: builtin/commit.c:1613 msgid "ok to record a change with an empty message" msgstr "ok att registrera en ändring med tomt meddelande" -#: builtin/commit.c:1562 +#: builtin/commit.c:1641 msgid "could not parse HEAD commit" msgstr "kunde inte tolka HEAD:s incheckning" -#: builtin/commit.c:1601 builtin/merge.c:518 +#: builtin/commit.c:1680 builtin/merge.c:518 #, c-format msgid "could not open '%s' for reading" msgstr "kunde inte öppna \"%s\" för läsning" -#: builtin/commit.c:1608 +#: builtin/commit.c:1687 #, c-format msgid "Corrupt MERGE_HEAD file (%s)" msgstr "Trasig MERGE_HEAD-fil (%s)" -#: builtin/commit.c:1615 +#: builtin/commit.c:1694 msgid "could not read MERGE_MODE" msgstr "kunde inte läsa MERGE_MODE" -#: builtin/commit.c:1634 +#: builtin/commit.c:1713 #, c-format msgid "could not read commit message: %s" msgstr "kunde inte läsa incheckningsmeddelande: %s" -#: builtin/commit.c:1645 +#: builtin/commit.c:1724 #, c-format msgid "Aborting commit; you did not edit the message.\n" msgstr "Avbryter incheckning; meddelandet inte redigerat.\n" -#: builtin/commit.c:1650 +#: builtin/commit.c:1729 #, c-format msgid "Aborting commit due to empty commit message.\n" msgstr "Avbryter pÃ¥ grund av tomt incheckningsmeddelande.\n" -#: builtin/commit.c:1665 builtin/merge.c:857 builtin/merge.c:882 +#: builtin/commit.c:1744 builtin/merge.c:851 builtin/merge.c:876 msgid "failed to write commit object" msgstr "kunde inte skriva incheckningsobjekt" -#: builtin/commit.c:1686 +#: builtin/commit.c:1756 msgid "cannot lock HEAD ref" msgstr "kunde inte lÃ¥sa HEAD-referens" -#: builtin/commit.c:1690 +#: builtin/commit.c:1769 msgid "cannot update HEAD ref" msgstr "kunde inte uppdatera HEAD-referens" -#: builtin/commit.c:1701 +#: builtin/commit.c:1780 msgid "" "Repository has been updated, but unable to write\n" "new_index file. Check that disk is not full or quota is\n" @@ -4588,7 +4623,7 @@ msgstr "använd arkivets konfigurationsfil" #: builtin/config.c:57 msgid "use given config file" -msgstr "använd angiven konfigurationsil" +msgstr "använd angiven konfigurationsfil" #: builtin/config.c:58 msgid "blob-id" @@ -4710,47 +4745,47 @@ msgstr "git describe [flaggor] <incheckning-igt>*" msgid "git describe [options] --dirty" msgstr "git describe [flaggor] --dirty" -#: builtin/describe.c:225 +#: builtin/describe.c:216 #, c-format msgid "annotated tag %s not available" msgstr "den annoterade taggen %s inte tillgänglig" -#: builtin/describe.c:229 +#: builtin/describe.c:220 #, c-format msgid "annotated tag %s has no embedded name" msgstr "den annoterade taggen %s har inget inbäddat namn" -#: builtin/describe.c:231 +#: builtin/describe.c:222 #, c-format msgid "tag '%s' is really '%s' here" msgstr "taggen \"%s\" är i verkligheten \"%s\" här" -#: builtin/describe.c:258 +#: builtin/describe.c:249 #, c-format msgid "Not a valid object name %s" msgstr "Objektnamnet är inte giltigt: %s" -#: builtin/describe.c:261 +#: builtin/describe.c:252 #, c-format msgid "%s is not a valid '%s' object" msgstr "%s är inte ett giltigt \"%s\"-objekt" -#: builtin/describe.c:278 +#: builtin/describe.c:269 #, c-format msgid "no tag exactly matches '%s'" msgstr "ingen tagg motsvarar \"%s\" exakt" -#: builtin/describe.c:280 +#: builtin/describe.c:271 #, c-format msgid "searching to describe %s\n" msgstr "söker för att beskriva %s\n" -#: builtin/describe.c:327 +#: builtin/describe.c:318 #, c-format msgid "finished search at %s\n" msgstr "avslutade sökning pÃ¥ %s\n" -#: builtin/describe.c:354 +#: builtin/describe.c:345 #, c-format msgid "" "No annotated tags can describe '%s'.\n" @@ -4759,7 +4794,7 @@ msgstr "" "Inga annoterade taggar kan beskriva \"%s\".\n" "Det finns dock oannoterade taggar: testa --tags." -#: builtin/describe.c:358 +#: builtin/describe.c:349 #, c-format msgid "" "No tags can describe '%s'.\n" @@ -4768,12 +4803,12 @@ msgstr "" "Inga taggar kan beskriva \"%s\".\n" "Testa --always, eller skapa nÃ¥gra taggar." -#: builtin/describe.c:379 +#: builtin/describe.c:370 #, c-format msgid "traversed %lu commits\n" msgstr "traverserade %lu incheckningar\n" -#: builtin/describe.c:382 +#: builtin/describe.c:373 #, c-format msgid "" "more than %i tags found; listed %i most recent\n" @@ -4782,63 +4817,63 @@ msgstr "" "mer än %i taggar hittades; listar de %i senaste\n" "gav upp sökningen vid %s\n" -#: builtin/describe.c:404 +#: builtin/describe.c:395 msgid "find the tag that comes after the commit" msgstr "hitta taggen som kommer efter incheckningen" -#: builtin/describe.c:405 +#: builtin/describe.c:396 msgid "debug search strategy on stderr" msgstr "felsök sökstrategin pÃ¥ standard fel" -#: builtin/describe.c:406 +#: builtin/describe.c:397 msgid "use any ref" msgstr "använd alla referenser" -#: builtin/describe.c:407 +#: builtin/describe.c:398 msgid "use any tag, even unannotated" msgstr "använd alla taggar, även oannoterade" -#: builtin/describe.c:408 +#: builtin/describe.c:399 msgid "always use long format" msgstr "använd alltid lÃ¥ngt format" -#: builtin/describe.c:409 +#: builtin/describe.c:400 msgid "only follow first parent" msgstr "följ endast första föräldern" -#: builtin/describe.c:412 +#: builtin/describe.c:403 msgid "only output exact matches" msgstr "skriv endast ut exakta träffar" -#: builtin/describe.c:414 +#: builtin/describe.c:405 msgid "consider <n> most recent tags (default: 10)" msgstr "överväg de <n> nyaste taggarna (standard: 10)" -#: builtin/describe.c:416 +#: builtin/describe.c:407 msgid "only consider tags matching <pattern>" msgstr "överväg endast taggar som motsvarar <mönster>" -#: builtin/describe.c:418 builtin/name-rev.c:321 +#: builtin/describe.c:409 builtin/name-rev.c:318 msgid "show abbreviated commit object as fallback" msgstr "visa förkortade incheckningsobjekt som standard" -#: builtin/describe.c:419 +#: builtin/describe.c:410 msgid "mark" msgstr "märke" -#: builtin/describe.c:420 +#: builtin/describe.c:411 msgid "append <mark> on dirty working tree (default: \"-dirty\")" msgstr "lägg till <märke> pÃ¥ lortigt arbetsträd (standard: \"-dirty\")" -#: builtin/describe.c:438 +#: builtin/describe.c:429 msgid "--long is incompatible with --abbrev=0" msgstr "--long är inkompatibel med --abbrev=0" -#: builtin/describe.c:464 +#: builtin/describe.c:455 msgid "No names found, cannot describe anything." msgstr "Inga namn hittades, kan inte beskriva nÃ¥got." -#: builtin/describe.c:484 +#: builtin/describe.c:475 msgid "--dirty is incompatible with commit-ishes" msgstr "--dirty är inkompatibelt med \"commit-ish\"-värden" @@ -4871,46 +4906,54 @@ msgstr "mer än tvÃ¥ blobbar angavs: \"%s\"" msgid "unhandled object '%s' given." msgstr "ej hanterat objekt \"%s\" angavs." -#: builtin/fast-export.c:22 +#: builtin/fast-export.c:23 msgid "git fast-export [rev-list-opts]" msgstr "git fast-export [rev-list-flaggor]" -#: builtin/fast-export.c:673 +#: builtin/fast-export.c:702 msgid "show progress after <n> objects" msgstr "visa förlopp efter <n> objekt" -#: builtin/fast-export.c:675 +#: builtin/fast-export.c:704 msgid "select handling of signed tags" msgstr "välj hantering av signerade taggar" -#: builtin/fast-export.c:678 +#: builtin/fast-export.c:707 msgid "select handling of tags that tag filtered objects" msgstr "välj hantering av taggar som har taggfiltrerade objekt" -#: builtin/fast-export.c:681 +#: builtin/fast-export.c:710 msgid "Dump marks to this file" msgstr "Dump märken till filen" -#: builtin/fast-export.c:683 +#: builtin/fast-export.c:712 msgid "Import marks from this file" msgstr "Importera märken frÃ¥n filen" -#: builtin/fast-export.c:685 +#: builtin/fast-export.c:714 msgid "Fake a tagger when tags lack one" msgstr "Fejka taggare när taggen saknar en" -#: builtin/fast-export.c:687 +#: builtin/fast-export.c:716 msgid "Output full tree for each commit" msgstr "Skriv ut hela trädet för varje incheckning" -#: builtin/fast-export.c:689 +#: builtin/fast-export.c:718 msgid "Use the done feature to terminate the stream" msgstr "Använd done-funktionen för att avsluta strömmen" -#: builtin/fast-export.c:690 +#: builtin/fast-export.c:719 msgid "Skip output of blob data" msgstr "Hoppa över skrivning av blob-data" +#: builtin/fast-export.c:720 +msgid "refspec" +msgstr "referensspecifikation" + +#: builtin/fast-export.c:721 +msgid "Apply refspec to exported refs" +msgstr "Applicera referensspecifikation pÃ¥ exporterade referenser" + #: builtin/fetch.c:20 msgid "git fetch [<options>] [<repository> [<refspec>...]]" msgstr "git fetch [<flaggor>] [<arkiv> [<refspec>...]]" @@ -4927,153 +4970,161 @@ msgstr "git fetch --multiple [<flaggor>] [(<arkiv> | <grupp>)...]" msgid "git fetch --all [<options>]" msgstr "git fetch --all [<flaggor>]" -#: builtin/fetch.c:75 +#: builtin/fetch.c:90 msgid "fetch from all remotes" msgstr "hämta frÃ¥n alla fjärrar" -#: builtin/fetch.c:77 +#: builtin/fetch.c:92 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:79 +#: builtin/fetch.c:94 msgid "path to upload pack on remote end" msgstr "sökväg till upload pack pÃ¥ fjärren" -#: builtin/fetch.c:80 +#: builtin/fetch.c:95 msgid "force overwrite of local branch" msgstr "tvinga överskrivning av lokal gren" -#: builtin/fetch.c:82 +#: builtin/fetch.c:97 msgid "fetch from multiple remotes" msgstr "hämta frÃ¥n flera fjärrar" -#: builtin/fetch.c:84 +#: builtin/fetch.c:99 msgid "fetch all tags and associated objects" msgstr "hämta alla taggar och associerade objekt" -#: builtin/fetch.c:86 +#: builtin/fetch.c:101 msgid "do not fetch all tags (--no-tags)" msgstr "hämta inte alla taggar (--no-tags)" -#: builtin/fetch.c:88 +#: builtin/fetch.c:103 msgid "prune remote-tracking branches no longer on remote" msgstr "rensa fjärrspÃ¥rande grenar ej längre pÃ¥ fjärren" -#: builtin/fetch.c:89 +#: builtin/fetch.c:104 msgid "on-demand" msgstr "on-demand" -#: builtin/fetch.c:90 +#: builtin/fetch.c:105 msgid "control recursive fetching of submodules" msgstr "styr rekursiv hämtning av undermoduler" -#: builtin/fetch.c:94 +#: builtin/fetch.c:109 msgid "keep downloaded pack" msgstr "behÃ¥ll hämtade paket" -#: builtin/fetch.c:96 +#: builtin/fetch.c:111 msgid "allow updating of HEAD ref" msgstr "tillÃ¥t uppdatering av HEAD-referens" -#: builtin/fetch.c:99 +#: builtin/fetch.c:114 msgid "deepen history of shallow clone" msgstr "fördjupa historik för grund klon" -#: builtin/fetch.c:101 +#: builtin/fetch.c:116 msgid "convert to a complete repository" msgstr "konvertera till komplett arkiv" -#: builtin/fetch.c:103 builtin/log.c:1197 +#: builtin/fetch.c:118 builtin/log.c:1205 msgid "dir" msgstr "kat" -#: builtin/fetch.c:104 +#: builtin/fetch.c:119 msgid "prepend this to submodule path output" msgstr "lägg till i början av undermodulens sökvägsutdata" -#: builtin/fetch.c:107 +#: builtin/fetch.c:122 msgid "default mode for recursion" msgstr "standardläge för rekursion" -#: builtin/fetch.c:109 +#: builtin/fetch.c:124 msgid "accept refs that update .git/shallow" msgstr "tar emot referenser som uppdaterar .git/shallow" -#: builtin/fetch.c:347 +#: builtin/fetch.c:125 +msgid "refmap" +msgstr "referenskarta" + +#: builtin/fetch.c:126 +msgid "specify fetch refmap" +msgstr "ange referenskarta för \"fetch\"" + +#: builtin/fetch.c:376 msgid "Couldn't find remote ref HEAD" msgstr "Kunde inte hitta fjärr-referensen HEAD" -#: builtin/fetch.c:411 +#: builtin/fetch.c:440 #, c-format msgid "object %s not found" msgstr "objektet %s hittades inte" -#: builtin/fetch.c:416 +#: builtin/fetch.c:445 msgid "[up to date]" msgstr "[à jour]" -#: builtin/fetch.c:430 +#: builtin/fetch.c:459 #, 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:431 builtin/fetch.c:517 +#: builtin/fetch.c:460 builtin/fetch.c:546 msgid "[rejected]" msgstr "[refuserad]" -#: builtin/fetch.c:442 +#: builtin/fetch.c:471 msgid "[tag update]" msgstr "[uppdaterad tagg]" -#: builtin/fetch.c:444 builtin/fetch.c:479 builtin/fetch.c:497 +#: builtin/fetch.c:473 builtin/fetch.c:508 builtin/fetch.c:526 msgid " (unable to update local ref)" msgstr " (kunde inte uppdatera lokal ref)" -#: builtin/fetch.c:462 +#: builtin/fetch.c:491 msgid "[new tag]" msgstr "[ny tagg]" -#: builtin/fetch.c:465 +#: builtin/fetch.c:494 msgid "[new branch]" msgstr "[ny gren]" -#: builtin/fetch.c:468 +#: builtin/fetch.c:497 msgid "[new ref]" msgstr "[ny ref]" -#: builtin/fetch.c:513 +#: builtin/fetch.c:542 msgid "unable to update local ref" msgstr "kunde inte uppdatera lokal ref" -#: builtin/fetch.c:513 +#: builtin/fetch.c:542 msgid "forced update" msgstr "tvingad uppdatering" -#: builtin/fetch.c:519 +#: builtin/fetch.c:548 msgid "(non-fast-forward)" msgstr "(ej snabbspolad)" -#: builtin/fetch.c:552 builtin/fetch.c:785 +#: builtin/fetch.c:581 builtin/fetch.c:814 #, c-format msgid "cannot open %s: %s\n" msgstr "kan inte öppna %s: %s\n" -#: builtin/fetch.c:561 +#: builtin/fetch.c:590 #, 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:579 +#: builtin/fetch.c:608 #, 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:667 builtin/fetch.c:750 +#: builtin/fetch.c:696 builtin/fetch.c:779 #, c-format msgid "From %.*s\n" msgstr "FrÃ¥n %.*s\n" -#: builtin/fetch.c:678 +#: builtin/fetch.c:707 #, c-format msgid "" "some local refs could not be updated; try running\n" @@ -5082,55 +5133,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:730 +#: builtin/fetch.c:759 #, c-format msgid " (%s will become dangling)" msgstr " (%s kommer bli dinglande)" -#: builtin/fetch.c:731 +#: builtin/fetch.c:760 #, c-format msgid " (%s has become dangling)" msgstr " (%s har blivit dinglande)" -#: builtin/fetch.c:755 +#: builtin/fetch.c:784 msgid "[deleted]" msgstr "[borttagen]" -#: builtin/fetch.c:756 builtin/remote.c:1050 +#: builtin/fetch.c:785 builtin/remote.c:1059 msgid "(none)" msgstr "(ingen)" -#: builtin/fetch.c:775 +#: builtin/fetch.c:804 #, 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:794 +#: builtin/fetch.c:823 #, 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:797 +#: builtin/fetch.c:826 #, c-format msgid "Option \"%s\" is ignored for %s\n" msgstr "Flaggan \"%s\" ignoreras för %s\n" -#: builtin/fetch.c:853 +#: builtin/fetch.c:882 #, c-format msgid "Don't know how to fetch from %s" msgstr "Vet inte hur man hämtar frÃ¥n %s" -#: builtin/fetch.c:1015 +#: builtin/fetch.c:1044 #, c-format msgid "Fetching %s\n" msgstr "Hämtar %s\n" -#: builtin/fetch.c:1017 builtin/remote.c:90 +#: builtin/fetch.c:1046 builtin/remote.c:90 #, c-format msgid "Could not fetch %s" msgstr "Kunde inte hämta %s" -#: builtin/fetch.c:1035 +#: builtin/fetch.c:1064 msgid "" "No remote repository specified. Please, specify either a URL or a\n" "remote name from which new revisions should be fetched." @@ -5138,32 +5189,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:1059 +#: builtin/fetch.c:1087 msgid "You need to specify a tag name." msgstr "Du mÃ¥ste ange namnet pÃ¥ en tagg." -#: builtin/fetch.c:1107 +#: builtin/fetch.c:1131 msgid "--depth and --unshallow cannot be used together" msgstr "--depth och --unshallow kan inte användas samtidigt" -#: builtin/fetch.c:1109 +#: builtin/fetch.c:1133 msgid "--unshallow on a complete repository does not make sense" msgstr "--unshallow kan inte användas pÃ¥ ett komplett arkiv" -#: builtin/fetch.c:1132 +#: builtin/fetch.c:1156 msgid "fetch --all does not take a repository argument" msgstr "fetch --all tar inte namnet pÃ¥ ett arkiv som argument" -#: builtin/fetch.c:1134 +#: builtin/fetch.c:1158 msgid "fetch --all does not make sense with refspecs" msgstr "fetch --all kan inte anges med referensspecifikationer" -#: builtin/fetch.c:1145 +#: builtin/fetch.c:1169 #, c-format msgid "No such remote or remote group: %s" msgstr "Fjärren eller fjärrgruppen finns inte: %s" -#: builtin/fetch.c:1153 +#: builtin/fetch.c:1177 msgid "Fetching a group and specifying refspecs does not make sense" msgstr "Kan inte hämta frÃ¥n grupp och ange referensspecifikationer" @@ -5172,9 +5223,9 @@ msgid "git fmt-merge-msg [-m <message>] [--log[=<n>]|--no-log] [--file <file>]" msgstr "" "git fmt-merge-msg [-m <meddelande>] [--log[=<n>]|--no-log] [--file <fil>]" -#: builtin/fmt-merge-msg.c:663 builtin/fmt-merge-msg.c:666 builtin/grep.c:700 -#: builtin/merge.c:196 builtin/repack.c:175 builtin/repack.c:179 -#: builtin/show-branch.c:654 builtin/show-ref.c:178 builtin/tag.c:501 +#: builtin/fmt-merge-msg.c:663 builtin/fmt-merge-msg.c:666 builtin/grep.c:698 +#: builtin/merge.c:196 builtin/repack.c:179 builtin/repack.c:183 +#: builtin/show-branch.c:654 builtin/show-ref.c:178 builtin/tag.c:589 #: parse-options.h:132 parse-options.h:239 msgid "n" msgstr "n" @@ -5199,43 +5250,43 @@ msgstr "inled meddelande med <text>" msgid "file to read from" msgstr "fil att läsa frÃ¥n" -#: builtin/for-each-ref.c:1063 +#: builtin/for-each-ref.c:1051 msgid "git for-each-ref [options] [<pattern>]" msgstr "git for-each-ref [flaggor] [<mönster>]" -#: builtin/for-each-ref.c:1078 +#: builtin/for-each-ref.c:1066 msgid "quote placeholders suitably for shells" msgstr "citera platshÃ¥llare passande för skal" -#: builtin/for-each-ref.c:1080 +#: builtin/for-each-ref.c:1068 msgid "quote placeholders suitably for perl" msgstr "citera platshÃ¥llare passande för perl" -#: builtin/for-each-ref.c:1082 +#: builtin/for-each-ref.c:1070 msgid "quote placeholders suitably for python" msgstr "citera platshÃ¥llare passande för python" -#: builtin/for-each-ref.c:1084 +#: builtin/for-each-ref.c:1072 msgid "quote placeholders suitably for tcl" msgstr "citera platshÃ¥llare passande för tcl" -#: builtin/for-each-ref.c:1087 +#: builtin/for-each-ref.c:1075 msgid "show only <n> matched refs" msgstr "visa endast <n> träffade refs" -#: builtin/for-each-ref.c:1088 builtin/replace.c:177 +#: builtin/for-each-ref.c:1076 builtin/replace.c:435 msgid "format" msgstr "format" -#: builtin/for-each-ref.c:1088 +#: builtin/for-each-ref.c:1076 msgid "format to use for the output" msgstr "format att använda för utdata" -#: builtin/for-each-ref.c:1089 +#: builtin/for-each-ref.c:1077 msgid "key" msgstr "nyckel" -#: builtin/for-each-ref.c:1090 +#: builtin/for-each-ref.c:1078 msgid "field name to sort on" msgstr "fältnamn att sortera pÃ¥" @@ -5243,55 +5294,55 @@ msgstr "fältnamn att sortera pÃ¥" msgid "Checking connectivity" msgstr "Kontrollerar konnektivitet" -#: builtin/fsck.c:544 +#: builtin/fsck.c:538 msgid "Checking object directories" msgstr "Kontrollerar objektkataloger" -#: builtin/fsck.c:607 +#: builtin/fsck.c:601 msgid "git fsck [options] [<object>...]" msgstr "git fsck [flaggor] [<objekt>...]" -#: builtin/fsck.c:613 +#: builtin/fsck.c:607 msgid "show unreachable objects" msgstr "visa onÃ¥bara objekt" -#: builtin/fsck.c:614 +#: builtin/fsck.c:608 msgid "show dangling objects" msgstr "visa dinglande objekt" -#: builtin/fsck.c:615 +#: builtin/fsck.c:609 msgid "report tags" msgstr "rapportera taggar" -#: builtin/fsck.c:616 +#: builtin/fsck.c:610 msgid "report root nodes" msgstr "rapportera rotnoder" -#: builtin/fsck.c:617 +#: builtin/fsck.c:611 msgid "make index objects head nodes" msgstr "gör indexojekt till huvudnoder" -#: builtin/fsck.c:618 +#: builtin/fsck.c:612 msgid "make reflogs head nodes (default)" msgstr "gör refloggar till huvudnoder (standard)" -#: builtin/fsck.c:619 +#: builtin/fsck.c:613 msgid "also consider packs and alternate objects" msgstr "ta även hänsyn till paket och alternativa objekt" -#: builtin/fsck.c:620 +#: builtin/fsck.c:614 msgid "enable more strict checking" msgstr "aktivera striktare kontroll" -#: builtin/fsck.c:622 +#: builtin/fsck.c:616 msgid "write dangling objects in .git/lost-found" msgstr "skriv dinglande objekt i .git/lost-found" -#: builtin/fsck.c:623 builtin/prune.c:144 +#: builtin/fsck.c:617 builtin/prune.c:144 msgid "show progress" msgstr "visa förlopp" -#: builtin/fsck.c:673 +#: builtin/fsck.c:667 msgid "Checking objects" msgstr "Kontrollerar objekt" @@ -5299,48 +5350,48 @@ msgstr "Kontrollerar objekt" msgid "git gc [options]" msgstr "git gc [flaggor]" -#: builtin/gc.c:90 +#: builtin/gc.c:91 #, c-format msgid "Invalid %s: '%s'" msgstr "Felaktigt %s: \"%s\"" -#: builtin/gc.c:117 +#: builtin/gc.c:118 #, c-format msgid "insanely long object directory %.*s" msgstr "tokigt lÃ¥ng objektkatalog %.*s" -#: builtin/gc.c:273 +#: builtin/gc.c:287 msgid "prune unreferenced objects" msgstr "rensa ej refererade objekt" -#: builtin/gc.c:275 +#: builtin/gc.c:289 msgid "be more thorough (increased runtime)" msgstr "var mer grundlig (ökar körtiden)" -#: builtin/gc.c:276 +#: builtin/gc.c:290 msgid "enable auto-gc mode" msgstr "aktivera auto-gc-läge" -#: builtin/gc.c:277 +#: builtin/gc.c:291 msgid "force running gc even if there may be another gc running" msgstr "tvinga gc-körning även om en annan gc kanske körs" -#: builtin/gc.c:318 +#: builtin/gc.c:332 #, c-format msgid "Auto packing the repository in background for optimum performance.\n" msgstr "Packar arkivet automatiskt i bakgrunden för optimal prestanda.\n" -#: builtin/gc.c:320 +#: builtin/gc.c:334 #, c-format msgid "Auto packing the repository for optimum performance.\n" msgstr "Packar arkivet automatiskt för optimal prestanda.\n" -#: builtin/gc.c:321 +#: builtin/gc.c:335 #, c-format msgid "See \"git help gc\" for manual housekeeping.\n" msgstr "Se \"git help gc\" för manuell hushÃ¥llning.\n" -#: builtin/gc.c:336 +#: builtin/gc.c:353 #, c-format msgid "" "gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)" @@ -5348,7 +5399,7 @@ msgstr "" "gc körs redan pÃ¥ maskinen \"%s\" pid %<PRIuMAX> (använd --force om sÃ¥ inte " "är fallet)" -#: builtin/gc.c:361 +#: builtin/gc.c:375 msgid "" "There are too many unreachable loose objects; run 'git prune' to remove them." msgstr "" @@ -5364,224 +5415,219 @@ msgstr "git grep [flaggor] [-e] <mönster> [<rev>...] [[--] <sökväg>...]" msgid "grep: failed to create thread: %s" msgstr "grep: misslyckades skapa trÃ¥d. %s" -#: builtin/grep.c:365 -#, c-format -msgid "Failed to chdir: %s" -msgstr "Kunde inte byta katalog (chdir): %s" - -#: builtin/grep.c:443 builtin/grep.c:478 +#: builtin/grep.c:441 builtin/grep.c:476 #, c-format msgid "unable to read tree (%s)" msgstr "kunde inte läsa träd (%s)" -#: builtin/grep.c:493 +#: builtin/grep.c:491 #, c-format msgid "unable to grep from object of type %s" msgstr "Kunde inte \"grep\" frÃ¥n objekt av typen %s" -#: builtin/grep.c:549 +#: builtin/grep.c:547 #, c-format msgid "switch `%c' expects a numerical value" msgstr "flaggan \"%c\" antar ett numeriskt värde" -#: builtin/grep.c:566 +#: builtin/grep.c:564 #, c-format msgid "cannot open '%s'" msgstr "kan inte öppna \"%s\"" -#: builtin/grep.c:640 +#: builtin/grep.c:638 msgid "search in index instead of in the work tree" msgstr "sök i indexet istället för i arbetskatalogen" -#: builtin/grep.c:642 +#: builtin/grep.c:640 msgid "find in contents not managed by git" -msgstr "sök i innehÃ¥l som inte hanteras av git" +msgstr "sök i innehÃ¥ll som inte hanteras av git" -#: builtin/grep.c:644 +#: builtin/grep.c:642 msgid "search in both tracked and untracked files" msgstr "sök i bÃ¥de spÃ¥rade och ospÃ¥rade filer" -#: builtin/grep.c:646 +#: builtin/grep.c:644 msgid "search also in ignored files" msgstr "sök även i ignorerade filer" -#: builtin/grep.c:649 +#: builtin/grep.c:647 msgid "show non-matching lines" msgstr "visa rader som inte träffas" -#: builtin/grep.c:651 +#: builtin/grep.c:649 msgid "case insensitive matching" msgstr "skiftlägesokänslig sökning" -#: builtin/grep.c:653 +#: builtin/grep.c:651 msgid "match patterns only at word boundaries" msgstr "matcha endast mönster vid ordgränser" -#: builtin/grep.c:655 +#: builtin/grep.c:653 msgid "process binary files as text" msgstr "hantera binärfiler som text" -#: builtin/grep.c:657 +#: builtin/grep.c:655 msgid "don't match patterns in binary files" msgstr "träffa inte mönster i binärfiler" -#: builtin/grep.c:660 +#: builtin/grep.c:658 msgid "process binary files with textconv filters" msgstr "hantera binärfiler med textconv-filter" -#: builtin/grep.c:662 +#: builtin/grep.c:660 msgid "descend at most <depth> levels" msgstr "gÃ¥ som mest ned <djup> nivÃ¥er" -#: builtin/grep.c:666 +#: builtin/grep.c:664 msgid "use extended POSIX regular expressions" msgstr "använd utökade POSIX-reguljära uttryck" -#: builtin/grep.c:669 +#: builtin/grep.c:667 msgid "use basic POSIX regular expressions (default)" msgstr "använd grundläggande POSIX-reguljära uttryck (standard)" -#: builtin/grep.c:672 +#: builtin/grep.c:670 msgid "interpret patterns as fixed strings" msgstr "tolka mönster som fixerade strängar" -#: builtin/grep.c:675 +#: builtin/grep.c:673 msgid "use Perl-compatible regular expressions" msgstr "använd Perlkompatibla reguljära uttryck" -#: builtin/grep.c:678 +#: builtin/grep.c:676 msgid "show line numbers" msgstr "visa radnummer" -#: builtin/grep.c:679 +#: builtin/grep.c:677 msgid "don't show filenames" msgstr "visa inte filnamn" -#: builtin/grep.c:680 +#: builtin/grep.c:678 msgid "show filenames" msgstr "visa filnamn" -#: builtin/grep.c:682 +#: builtin/grep.c:680 msgid "show filenames relative to top directory" msgstr "visa filnamn relativa till toppkatalogen" -#: builtin/grep.c:684 +#: builtin/grep.c:682 msgid "show only filenames instead of matching lines" msgstr "visa endast filnamn istället för träffade rader" -#: builtin/grep.c:686 +#: builtin/grep.c:684 msgid "synonym for --files-with-matches" msgstr "synonym för --files-with-matches" -#: builtin/grep.c:689 +#: builtin/grep.c:687 msgid "show only the names of files without match" msgstr "visa endast namn pÃ¥ filer utan träffar" -#: builtin/grep.c:691 +#: builtin/grep.c:689 msgid "print NUL after filenames" msgstr "skriv NUL efter filnamn" -#: builtin/grep.c:693 +#: builtin/grep.c:691 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:694 +#: builtin/grep.c:692 msgid "highlight matches" msgstr "ljusmarkera träffar" -#: builtin/grep.c:696 +#: builtin/grep.c:694 msgid "print empty line between matches from different files" msgstr "skriv tomma rader mellan träffar frÃ¥n olika filer" -#: builtin/grep.c:698 +#: builtin/grep.c:696 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:701 +#: builtin/grep.c:699 msgid "show <n> context lines before and after matches" msgstr "visa <n> rader sammanhang före och efter träffar" -#: builtin/grep.c:704 +#: builtin/grep.c:702 msgid "show <n> context lines before matches" msgstr "visa <n> rader sammanhang före träffar" -#: builtin/grep.c:706 +#: builtin/grep.c:704 msgid "show <n> context lines after matches" msgstr "visa <n> rader sammanhang efter träffar" -#: builtin/grep.c:707 +#: builtin/grep.c:705 msgid "shortcut for -C NUM" msgstr "genväg för -C NUM" -#: builtin/grep.c:710 +#: builtin/grep.c:708 msgid "show a line with the function name before matches" msgstr "visa en rad med funktionsnamnet före träffen" -#: builtin/grep.c:712 +#: builtin/grep.c:710 msgid "show the surrounding function" msgstr "visa den omkringliggande funktionen" -#: builtin/grep.c:715 +#: builtin/grep.c:713 msgid "read patterns from file" msgstr "läs mönster frÃ¥n fil" -#: builtin/grep.c:717 +#: builtin/grep.c:715 msgid "match <pattern>" msgstr "träffa <mönster>" -#: builtin/grep.c:719 +#: builtin/grep.c:717 msgid "combine patterns specified with -e" msgstr "kombinera mönster som anges med -e" -#: builtin/grep.c:731 +#: builtin/grep.c:729 msgid "indicate hit with exit status without output" msgstr "ange träff med slutstatuskod utan utdata" -#: builtin/grep.c:733 +#: builtin/grep.c:731 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:735 +#: builtin/grep.c:733 msgid "show parse tree for grep expression" msgstr "visa analysträd för grep-uttryck" -#: builtin/grep.c:739 +#: builtin/grep.c:737 msgid "pager" msgstr "bläddrare" -#: builtin/grep.c:739 +#: builtin/grep.c:737 msgid "show matching files in the pager" msgstr "visa träffade filer i filbläddraren" -#: builtin/grep.c:742 +#: builtin/grep.c:740 msgid "allow calling of grep(1) (ignored by this build)" msgstr "tillÃ¥t anropa grep(1) (ignoreras av detta bygge)" -#: builtin/grep.c:743 builtin/show-ref.c:187 +#: builtin/grep.c:741 builtin/show-ref.c:187 msgid "show usage" msgstr "visa användning" -#: builtin/grep.c:810 +#: builtin/grep.c:808 msgid "no pattern given." msgstr "inget mönster angavs." -#: builtin/grep.c:868 +#: builtin/grep.c:866 msgid "--open-files-in-pager only works on the worktree" msgstr "--open-files-in-pager fungerar endast i arbetskatalogen" -#: builtin/grep.c:891 +#: builtin/grep.c:892 msgid "--cached or --untracked cannot be used with --no-index." msgstr "--cached och --untracked kan inte användas med --no-index." -#: builtin/grep.c:896 +#: builtin/grep.c:897 msgid "--no-index or --untracked cannot be used with revs." msgstr "--no-index och --untracked kan inte användas med revisioner." -#: builtin/grep.c:899 +#: builtin/grep.c:900 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:907 +#: builtin/grep.c:908 msgid "both --cached and trees are given." msgstr "bÃ¥de --cached och träd angavs." @@ -5597,7 +5643,7 @@ msgstr "" msgid "git hash-object --stdin-paths < <list-of-paths>" msgstr "git hash-object --stdin-paths < <sökvägslista>" -#: builtin/hash-object.c:72 builtin/tag.c:521 +#: builtin/hash-object.c:72 builtin/tag.c:609 msgid "type" msgstr "typ" @@ -5741,280 +5787,291 @@ msgstr "användning: %s%s" msgid "`git %s' is aliased to `%s'" msgstr "\"git %s\" är ett alias för \"%s\"" -#: builtin/index-pack.c:184 +#: builtin/index-pack.c:145 +#, c-format +msgid "unable to open %s" +msgstr "kunde inte öppna %s" + +#: builtin/index-pack.c:191 #, c-format msgid "object type mismatch at %s" msgstr "objekttyp stämmer inte överens vid %s" -#: builtin/index-pack.c:204 -msgid "object of unexpected type" -msgstr "objekt av oväntad typ" +#: builtin/index-pack.c:211 +#, c-format +msgid "did not receive expected object %s" +msgstr "emottog inte det förväntade objektet %s" -#: builtin/index-pack.c:244 +#: builtin/index-pack.c:214 +#, c-format +msgid "object %s: expected type %s, found %s" +msgstr "objektet %s: förväntad typ %s, sÃ¥g %s" + +#: builtin/index-pack.c:256 #, c-format msgid "cannot fill %d byte" msgid_plural "cannot fill %d bytes" msgstr[0] "kan inte fylla %d byte" msgstr[1] "kan inte fylla %d byte" -#: builtin/index-pack.c:254 +#: builtin/index-pack.c:266 msgid "early EOF" msgstr "tidigt filslut" -#: builtin/index-pack.c:255 +#: builtin/index-pack.c:267 msgid "read error on input" msgstr "indataläsfel" -#: builtin/index-pack.c:267 +#: builtin/index-pack.c:279 msgid "used more bytes than were available" msgstr "använde fler byte än tillgängligt" -#: builtin/index-pack.c:274 +#: builtin/index-pack.c:286 msgid "pack too large for current definition of off_t" msgstr "paket för stort för nuvarande definition av off_t" -#: builtin/index-pack.c:290 +#: builtin/index-pack.c:302 #, c-format msgid "unable to create '%s'" msgstr "kunde inte skapa \"%s\"" -#: builtin/index-pack.c:295 +#: builtin/index-pack.c:307 #, c-format msgid "cannot open packfile '%s'" msgstr "kan inte öppna paketfilen \"%s\"" -#: builtin/index-pack.c:309 +#: builtin/index-pack.c:321 msgid "pack signature mismatch" msgstr "paketsignatur stämmer inte överens" -#: builtin/index-pack.c:311 +#: builtin/index-pack.c:323 #, c-format msgid "pack version %<PRIu32> unsupported" msgstr "paketversion %<PRIu32> stöds ej" -#: builtin/index-pack.c:329 +#: builtin/index-pack.c:341 #, c-format msgid "pack has bad object at offset %lu: %s" msgstr "paketet har felaktigt objekt vid index %lu: %s" -#: builtin/index-pack.c:451 +#: builtin/index-pack.c:462 #, c-format msgid "inflate returned %d" msgstr "inflate returnerade %d" -#: builtin/index-pack.c:500 +#: builtin/index-pack.c:511 msgid "offset value overflow for delta base object" msgstr "indexvärdespill för deltabasobjekt" -#: builtin/index-pack.c:508 +#: builtin/index-pack.c:519 msgid "delta base offset is out of bound" msgstr "deltabasindex utanför gränsen" -#: builtin/index-pack.c:516 +#: builtin/index-pack.c:527 #, c-format msgid "unknown object type %d" msgstr "okänd objekttyp %d" -#: builtin/index-pack.c:547 +#: builtin/index-pack.c:558 msgid "cannot pread pack file" msgstr "kan inte utföra \"pread\" pÃ¥ paketfil" -#: builtin/index-pack.c:549 +#: builtin/index-pack.c:560 #, c-format msgid "premature end of pack file, %lu byte missing" msgid_plural "premature end of pack file, %lu bytes missing" msgstr[0] "för tidigt slut pÃ¥ paketfilen, %lu byte saknas" msgstr[1] "för tidigt slut pÃ¥ paketfilen, %lu byte saknas" -#: builtin/index-pack.c:575 +#: builtin/index-pack.c:586 msgid "serious inflate inconsistency" msgstr "allvarlig inflate-inkonsekvens" -#: builtin/index-pack.c:666 builtin/index-pack.c:672 builtin/index-pack.c:695 -#: builtin/index-pack.c:729 builtin/index-pack.c:738 +#: builtin/index-pack.c:677 builtin/index-pack.c:683 builtin/index-pack.c:706 +#: builtin/index-pack.c:740 builtin/index-pack.c:749 #, c-format msgid "SHA1 COLLISION FOUND WITH %s !" msgstr "SHA1-KOLLISION UPPTÄCKT VID %s !" -#: builtin/index-pack.c:669 builtin/pack-objects.c:162 +#: builtin/index-pack.c:680 builtin/pack-objects.c:162 #: builtin/pack-objects.c:254 #, c-format msgid "unable to read %s" msgstr "kunde inte läsa %s" -#: builtin/index-pack.c:735 +#: builtin/index-pack.c:746 #, c-format msgid "cannot read existing object %s" msgstr "kan inte läsa befintligt objekt %s" -#: builtin/index-pack.c:749 +#: builtin/index-pack.c:760 #, c-format msgid "invalid blob object %s" msgstr "ogiltigt blob-objekt %s" -#: builtin/index-pack.c:763 +#: builtin/index-pack.c:774 #, c-format msgid "invalid %s" msgstr "ogiltigt %s" -#: builtin/index-pack.c:766 +#: builtin/index-pack.c:777 msgid "Error in object" msgstr "Fel i objekt" -#: builtin/index-pack.c:768 +#: builtin/index-pack.c:779 #, c-format msgid "Not all child objects of %s are reachable" msgstr "Inte alla barnobjekt för %s kan nÃ¥s" -#: builtin/index-pack.c:839 builtin/index-pack.c:869 +#: builtin/index-pack.c:851 builtin/index-pack.c:881 msgid "failed to apply delta" msgstr "misslyckades tillämpa delta" -#: builtin/index-pack.c:1010 +#: builtin/index-pack.c:1022 msgid "Receiving objects" msgstr "Tar emot objekt" -#: builtin/index-pack.c:1010 +#: builtin/index-pack.c:1022 msgid "Indexing objects" msgstr "Skapar index för objekt" -#: builtin/index-pack.c:1036 +#: builtin/index-pack.c:1048 msgid "pack is corrupted (SHA1 mismatch)" msgstr "paketet är trasigt (SHA1 stämmer inte)" -#: builtin/index-pack.c:1041 +#: builtin/index-pack.c:1053 msgid "cannot fstat packfile" msgstr "kan inte utföra \"fstat\" pÃ¥ paketfil" -#: builtin/index-pack.c:1044 +#: builtin/index-pack.c:1056 msgid "pack has junk at the end" msgstr "paket har skräp i slutet" -#: builtin/index-pack.c:1055 +#: builtin/index-pack.c:1067 msgid "confusion beyond insanity in parse_pack_objects()" msgstr "förvirrad bortom vanvett i parse_pack_objects()" -#: builtin/index-pack.c:1078 +#: builtin/index-pack.c:1090 msgid "Resolving deltas" msgstr "Analyserar delta" -#: builtin/index-pack.c:1088 +#: builtin/index-pack.c:1100 #, c-format msgid "unable to create thread: %s" msgstr "kunde inte skapa trÃ¥d: %s" -#: builtin/index-pack.c:1130 +#: builtin/index-pack.c:1142 msgid "confusion beyond insanity" msgstr "förvirrad bortom vanvett" -#: builtin/index-pack.c:1138 +#: builtin/index-pack.c:1150 #, c-format msgid "completed with %d local objects" msgstr "slutfördes med %d lokala objekt" -#: builtin/index-pack.c:1148 +#: builtin/index-pack.c:1160 #, c-format msgid "Unexpected tail checksum for %s (disk corruption?)" msgstr "Oväntad svanschecksumma för %s (trasig disk?)" -#: builtin/index-pack.c:1152 +#: builtin/index-pack.c:1164 #, c-format msgid "pack has %d unresolved delta" msgid_plural "pack has %d unresolved deltas" msgstr[0] "paketet har %d oanalyserat delta" msgstr[1] "paketet har %d oanalyserade delta" -#: builtin/index-pack.c:1177 +#: builtin/index-pack.c:1189 #, c-format msgid "unable to deflate appended object (%d)" msgstr "kunde inte utföra \"deflate\" pÃ¥ tillagt objekt (%d)" -#: builtin/index-pack.c:1256 +#: builtin/index-pack.c:1268 #, c-format msgid "local object %s is corrupt" msgstr "lokalt objekt %s är trasigt" -#: builtin/index-pack.c:1280 +#: builtin/index-pack.c:1292 msgid "error while closing pack file" msgstr "fel vid stängning av paketfil" -#: builtin/index-pack.c:1293 +#: builtin/index-pack.c:1305 #, c-format msgid "cannot write keep file '%s'" msgstr "kan inte ta skriva \"keep\"-fil \"%s\"" -#: builtin/index-pack.c:1301 +#: builtin/index-pack.c:1313 #, c-format msgid "cannot close written keep file '%s'" msgstr "akn inte stänga skriven \"keep\"-fil \"%s\"" -#: builtin/index-pack.c:1314 +#: builtin/index-pack.c:1326 msgid "cannot store pack file" msgstr "kan inte spara paketfil" -#: builtin/index-pack.c:1325 +#: builtin/index-pack.c:1337 msgid "cannot store index file" msgstr "kan inte spara indexfil" -#: builtin/index-pack.c:1358 +#: builtin/index-pack.c:1370 #, c-format msgid "bad pack.indexversion=%<PRIu32>" msgstr "felaktig pack.indexversion=%<PRIu32>" -#: builtin/index-pack.c:1364 +#: builtin/index-pack.c:1376 #, c-format msgid "invalid number of threads specified (%d)" msgstr "felaktigt antal trÃ¥dar angivet (%d)" -#: builtin/index-pack.c:1368 builtin/index-pack.c:1546 +#: builtin/index-pack.c:1380 builtin/index-pack.c:1559 #, c-format msgid "no threads support, ignoring %s" msgstr "trÃ¥dstöd saknas, ignorerar %s" -#: builtin/index-pack.c:1426 +#: builtin/index-pack.c:1438 #, c-format msgid "Cannot open existing pack file '%s'" msgstr "Kan inte öppna befintlig paketfil \"%s\"" -#: builtin/index-pack.c:1428 +#: builtin/index-pack.c:1440 #, c-format msgid "Cannot open existing pack idx file for '%s'" -msgstr "Kan inte öppna befintligt paket-idx-fil för \"%s\"" +msgstr "Kan inte öppna befintlig paket-idx-fil för \"%s\"" -#: builtin/index-pack.c:1475 +#: builtin/index-pack.c:1487 #, 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:1482 +#: builtin/index-pack.c:1494 #, 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:1510 +#: builtin/index-pack.c:1523 msgid "Cannot come back to cwd" msgstr "Kan inte gÃ¥ tillbaka till arbetskatalogen (cwd)" -#: builtin/index-pack.c:1558 builtin/index-pack.c:1561 -#: builtin/index-pack.c:1573 builtin/index-pack.c:1577 +#: builtin/index-pack.c:1571 builtin/index-pack.c:1574 +#: builtin/index-pack.c:1586 builtin/index-pack.c:1590 #, c-format msgid "bad %s" msgstr "felaktig %s" -#: builtin/index-pack.c:1591 +#: builtin/index-pack.c:1604 msgid "--fix-thin cannot be used without --stdin" msgstr "--fix-thin kan inte användas med --stdin" -#: builtin/index-pack.c:1595 builtin/index-pack.c:1605 +#: builtin/index-pack.c:1608 builtin/index-pack.c:1617 #, c-format msgid "packfile name '%s' does not end with '.pack'" msgstr "paketfilnamnet \"%s\" slutar inte med \".pack\"" -#: builtin/index-pack.c:1614 +#: builtin/index-pack.c:1625 msgid "--verify with no packfile name given" msgstr "--verify angavs utan paketfilnamn" @@ -6143,7 +6200,7 @@ msgstr "behörigheter" msgid "specify that the git repository is to be shared amongst several users" msgstr "ange att git-arkivet skall delas bland flera användare" -#: builtin/init-db.c:491 builtin/prune-packed.c:79 builtin/repack.c:168 +#: builtin/init-db.c:491 builtin/prune-packed.c:79 builtin/repack.c:172 msgid "be quiet" msgstr "var tyst" @@ -6183,38 +6240,38 @@ msgstr "git log [<flaggor>] [<versionsintervall>] [[--] <sökväg>...]\n" msgid " or: git show [options] <object>..." msgstr " eller: git show [flaggor] <objekt>..." -#: builtin/log.c:125 +#: builtin/log.c:127 msgid "suppress diff output" msgstr "undertryck diff-utdata" -#: builtin/log.c:126 +#: builtin/log.c:128 msgid "show source" msgstr "visa källkod" -#: builtin/log.c:127 +#: builtin/log.c:129 msgid "Use mail map file" msgstr "Använd e-postmappningsfil" -#: builtin/log.c:128 +#: builtin/log.c:130 msgid "decorate options" msgstr "dekoreringsflaggor" -#: builtin/log.c:231 +#: builtin/log.c:229 #, c-format msgid "Final output: %d %s\n" msgstr "Slututdata: %d %s\n" -#: builtin/log.c:473 builtin/log.c:565 +#: builtin/log.c:470 builtin/log.c:562 #, c-format msgid "Could not read object %s" msgstr "Kunde inte läsa objektet %s" -#: builtin/log.c:589 +#: builtin/log.c:586 #, c-format msgid "Unknown type: %d" msgstr "Okänd typ: %d" -#: builtin/log.c:689 +#: builtin/log.c:687 msgid "format.headers without value" msgstr "format.headers utan värde" @@ -6235,200 +6292,209 @@ msgstr "Behöver precis ett intervall." msgid "Not a range." msgstr "Inte ett intervall." -#: builtin/log.c:911 +#: builtin/log.c:916 msgid "Cover letter needs email format" msgstr "Omslagsbrevet behöver e-postformat" -#: builtin/log.c:987 +#: builtin/log.c:995 #, c-format msgid "insane in-reply-to: %s" msgstr "tokigt in-reply-to: %s" -#: builtin/log.c:1015 +#: builtin/log.c:1023 msgid "git format-patch [options] [<since> | <revision range>]" msgstr "git format-patch [flaggor] [<sedan> | <revisionsintervall>]" -#: builtin/log.c:1060 +#: builtin/log.c:1068 msgid "Two output directories?" msgstr "TvÃ¥ utdatakataloger?" -#: builtin/log.c:1175 +#: builtin/log.c:1183 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:1178 +#: builtin/log.c:1186 msgid "use [PATCH] even with multiple patches" msgstr "använd [PATCH] även för flera patchar" -#: builtin/log.c:1182 +#: builtin/log.c:1190 msgid "print patches to standard out" -msgstr "skriv patcharna pÃ¥ stnadard ut" +msgstr "skriv patcharna pÃ¥ standard ut" -#: builtin/log.c:1184 +#: builtin/log.c:1192 msgid "generate a cover letter" msgstr "generera ett följebrev" -#: builtin/log.c:1186 +#: builtin/log.c:1194 msgid "use simple number sequence for output file names" msgstr "använd enkel nummersekvens för utdatafilnamn" -#: builtin/log.c:1187 +#: builtin/log.c:1195 msgid "sfx" msgstr "sfx" -#: builtin/log.c:1188 +#: builtin/log.c:1196 msgid "use <sfx> instead of '.patch'" msgstr "använd <sfx> istället för \".patch\"" -#: builtin/log.c:1190 +#: builtin/log.c:1198 msgid "start numbering patches at <n> instead of 1" msgstr "börja numrera patchar pÃ¥ <n> istället för 1" -#: builtin/log.c:1192 +#: builtin/log.c:1200 msgid "mark the series as Nth re-roll" msgstr "markera serien som N:te försök" -#: builtin/log.c:1194 +#: builtin/log.c:1202 msgid "Use [<prefix>] instead of [PATCH]" msgstr "Använd [<prefix>] istället för [PATCH]" -#: builtin/log.c:1197 +#: builtin/log.c:1205 msgid "store resulting files in <dir>" msgstr "spara filerna i <katalog>" -#: builtin/log.c:1200 +#: builtin/log.c:1208 msgid "don't strip/add [PATCH]" msgstr "ta inte bort eller lägg till [PATCH]" -#: builtin/log.c:1203 +#: builtin/log.c:1211 msgid "don't output binary diffs" msgstr "skriv inte binära diffar" -#: builtin/log.c:1205 +#: builtin/log.c:1213 msgid "don't include a patch matching a commit upstream" msgstr "ta inte med patchar som motsvarar en uppströmsincheckning" -#: builtin/log.c:1207 +#: builtin/log.c:1215 msgid "show patch format instead of default (patch + stat)" msgstr "visa patchformat istället för standard (patch + stat)" -#: builtin/log.c:1209 +#: builtin/log.c:1217 msgid "Messaging" msgstr "E-post" -#: builtin/log.c:1210 +#: builtin/log.c:1218 msgid "header" msgstr "huvud" -#: builtin/log.c:1211 +#: builtin/log.c:1219 msgid "add email header" msgstr "lägg till e-posthuvud" -#: builtin/log.c:1212 builtin/log.c:1214 +#: builtin/log.c:1220 builtin/log.c:1222 msgid "email" msgstr "epost" -#: builtin/log.c:1212 +#: builtin/log.c:1220 msgid "add To: header" msgstr "Lägg till mottagarhuvud (\"To:\")" -#: builtin/log.c:1214 +#: builtin/log.c:1222 msgid "add Cc: header" msgstr "Lägg till kopiehuvud (\"Cc:\")" -#: builtin/log.c:1216 +#: builtin/log.c:1224 msgid "ident" msgstr "ident" -#: builtin/log.c:1217 +#: builtin/log.c:1225 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:1219 +#: builtin/log.c:1227 msgid "message-id" msgstr "meddelande-id" -#: builtin/log.c:1220 +#: builtin/log.c:1228 msgid "make first mail a reply to <message-id>" msgstr "Gör det första brevet ett svar till <meddelande-id>" -#: builtin/log.c:1221 builtin/log.c:1224 +#: builtin/log.c:1229 builtin/log.c:1232 msgid "boundary" msgstr "gräns" -#: builtin/log.c:1222 +#: builtin/log.c:1230 msgid "attach the patch" msgstr "bifoga patchen" -#: builtin/log.c:1225 +#: builtin/log.c:1233 msgid "inline the patch" msgstr "gör patchen ett inline-objekt" -#: builtin/log.c:1229 +#: builtin/log.c:1237 msgid "enable message threading, styles: shallow, deep" msgstr "aktivera brevtrÃ¥dning, typer: shallow, deep" -#: builtin/log.c:1231 +#: builtin/log.c:1239 msgid "signature" msgstr "signatur" -#: builtin/log.c:1232 +#: builtin/log.c:1240 msgid "add a signature" msgstr "lägg till signatur" -#: builtin/log.c:1233 +#: builtin/log.c:1242 +msgid "add a signature from a file" +msgstr "lägg till signatur frÃ¥n fil" + +#: builtin/log.c:1243 msgid "don't print the patch filenames" msgstr "visa inte filnamn för patchar" -#: builtin/log.c:1307 +#: builtin/log.c:1317 #, c-format msgid "invalid ident line: %s" msgstr "ogiltig ident-rad: %s" -#: builtin/log.c:1322 +#: builtin/log.c:1332 msgid "-n and -k are mutually exclusive." msgstr "-n och -k kan inte användas samtidigt." -#: builtin/log.c:1324 +#: builtin/log.c:1334 msgid "--subject-prefix and -k are mutually exclusive." msgstr "--subject-prefix och -k kan inte användas samtidigt." -#: builtin/log.c:1332 +#: builtin/log.c:1342 msgid "--name-only does not make sense" msgstr "kan inte använda --name-only" -#: builtin/log.c:1334 +#: builtin/log.c:1344 msgid "--name-status does not make sense" msgstr "kan inte använda --name-status" -#: builtin/log.c:1336 +#: builtin/log.c:1346 msgid "--check does not make sense" msgstr "kan inte använda --check" -#: builtin/log.c:1359 +#: builtin/log.c:1369 msgid "standard output, or directory, which one?" msgstr "standard ut, eller katalog, vilken skall det vara?" -#: builtin/log.c:1361 +#: builtin/log.c:1371 #, c-format msgid "Could not create directory '%s'" msgstr "Kunde inte skapa katalogen \"%s\"" -#: builtin/log.c:1509 +#: builtin/log.c:1468 +#, c-format +msgid "unable to read signature file '%s'" +msgstr "kunde inte läsa signaturfil \"%s\"" + +#: builtin/log.c:1531 msgid "Failed to create output files" msgstr "Misslyckades skapa utdatafiler" -#: builtin/log.c:1558 +#: builtin/log.c:1579 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]" msgstr "git cherry [-v] [<uppström> [<huvud> [<gräns>]]]" -#: builtin/log.c:1613 +#: builtin/log.c:1634 #, 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:1626 builtin/log.c:1628 builtin/log.c:1640 +#: builtin/log.c:1647 builtin/log.c:1649 builtin/log.c:1661 #, c-format msgid "Unknown commit %s" msgstr "Okänd incheckning %s" @@ -6639,7 +6705,7 @@ msgstr "strategi" #: builtin/merge.c:213 msgid "merge strategy to use" -msgstr "sammanslagninsstrategi att använda" +msgstr "sammanslagningsstrategi att använda" #: builtin/merge.c:214 msgid "option=value" @@ -6710,33 +6776,33 @@ msgstr "Felaktig branch.%s.mergeoptions-sträng: %s" msgid "git write-tree failed to write a tree" msgstr "git write-tree misslyckades skriva ett träd" -#: builtin/merge.c:681 +#: builtin/merge.c:678 msgid "Not handling anything other than two heads merge." msgstr "Hanterar inte nÃ¥got annat än en sammanslagning av tvÃ¥ huvuden." -#: builtin/merge.c:695 +#: builtin/merge.c:692 #, c-format msgid "Unknown option for merge-recursive: -X%s" msgstr "Felaktig flagga för merge-recursive: -X%s" -#: builtin/merge.c:709 +#: builtin/merge.c:705 #, c-format msgid "unable to write %s" msgstr "kunde inte skriva %s" -#: builtin/merge.c:798 +#: builtin/merge.c:794 #, c-format msgid "Could not read from '%s'" msgstr "Kunde inte läsa frÃ¥n \"%s\"" -#: builtin/merge.c:807 +#: builtin/merge.c:803 #, 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:813 +#: builtin/merge.c:809 #, c-format msgid "" "Please enter a commit message to explain why this merge is necessary,\n" @@ -6752,48 +6818,48 @@ msgstr "" "Rader som inleds med \"%c\" kommer ignoreras, och ett tomt meddelande\n" "avbryter incheckningen.\n" -#: builtin/merge.c:837 +#: builtin/merge.c:833 msgid "Empty commit message." msgstr "Tomt incheckningsmeddelande." -#: builtin/merge.c:849 +#: builtin/merge.c:845 #, c-format msgid "Wonderful.\n" msgstr "Underbart.\n" -#: builtin/merge.c:914 +#: builtin/merge.c:908 #, 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:930 +#: builtin/merge.c:924 #, c-format msgid "'%s' is not a commit" msgstr "\"%s\" är inte en incheckning" -#: builtin/merge.c:971 +#: builtin/merge.c:965 msgid "No current branch." msgstr "Inte pÃ¥ nÃ¥gon gren." -#: builtin/merge.c:973 +#: builtin/merge.c:967 msgid "No remote for the current branch." msgstr "Ingen fjärr för aktuell gren." -#: builtin/merge.c:975 +#: builtin/merge.c:969 msgid "No default upstream defined for the current branch." msgstr "Ingen standarduppström angiven för aktuell gren." -#: builtin/merge.c:980 +#: builtin/merge.c:974 #, 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:1136 +#: builtin/merge.c:1130 msgid "There is no merge to abort (MERGE_HEAD missing)." msgstr "Det finns ingen sammanslagning att avbryta (MERGE_HEAD saknas)." -#: builtin/merge.c:1152 git-pull.sh:31 +#: builtin/merge.c:1146 git-pull.sh:31 msgid "" "You have not concluded your merge (MERGE_HEAD exists).\n" "Please, commit your changes before you can merge." @@ -6801,11 +6867,11 @@ msgstr "" "Du har inte avslutat sammanslagningen (MERGE_HEAD finns).\n" "Checka in dina ändringar innan du kan slÃ¥ ihop." -#: builtin/merge.c:1155 git-pull.sh:34 +#: builtin/merge.c:1149 git-pull.sh:34 msgid "You have not concluded your merge (MERGE_HEAD exists)." msgstr "Du har inte avslutat sammanslagningen (MERGE_HEAD finns)." -#: builtin/merge.c:1159 +#: builtin/merge.c:1153 msgid "" "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n" "Please, commit your changes before you can merge." @@ -6813,102 +6879,102 @@ msgstr "" "Du har inte avslutat din \"cherry-pick\" (CHERRY_PICK_HEAD finns).\n" "Checka in dina ändringar innan du kan slÃ¥ ihop." -#: builtin/merge.c:1162 +#: builtin/merge.c:1156 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:1171 +#: builtin/merge.c:1165 msgid "You cannot combine --squash with --no-ff." msgstr "Du kan inte kombinera --squash med --no-ff." -#: builtin/merge.c:1180 +#: builtin/merge.c:1174 msgid "No commit specified and merge.defaultToUpstream not set." msgstr "Ingen incheckning angiven och merge.defaultToUpstream är ej satt." -#: builtin/merge.c:1212 +#: builtin/merge.c:1206 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:1215 +#: builtin/merge.c:1209 msgid "Squash commit into empty head not supported yet" msgstr "Stöder inte en tillplattningsincheckning pÃ¥ ett tomt huvud ännu" -#: builtin/merge.c:1217 +#: builtin/merge.c:1211 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:1222 +#: builtin/merge.c:1216 #, c-format msgid "%s - not something we can merge" msgstr "%s - inte nÃ¥got vi kan slÃ¥ ihop" -#: builtin/merge.c:1273 +#: builtin/merge.c:1267 #, 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:1276 +#: builtin/merge.c:1270 #, 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:1279 +#: builtin/merge.c:1273 #, c-format msgid "Commit %s does not have a GPG signature." msgstr "Incheckning %s har inte nÃ¥gon GPG-signatur." -#: builtin/merge.c:1282 +#: builtin/merge.c:1276 #, 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:1366 +#: builtin/merge.c:1357 #, c-format msgid "Updating %s..%s\n" msgstr "Uppdaterar %s..%s\n" -#: builtin/merge.c:1405 +#: builtin/merge.c:1396 #, c-format msgid "Trying really trivial in-index merge...\n" msgstr "Försöker riktigt enkel sammanslagning i indexet...\n" -#: builtin/merge.c:1412 +#: builtin/merge.c:1403 #, c-format msgid "Nope.\n" msgstr "Nej.\n" -#: builtin/merge.c:1444 +#: builtin/merge.c:1435 msgid "Not possible to fast-forward, aborting." msgstr "Kan inte snabbspola, avbryter." -#: builtin/merge.c:1467 builtin/merge.c:1546 +#: builtin/merge.c:1458 builtin/merge.c:1537 #, c-format msgid "Rewinding the tree to pristine...\n" msgstr "Ã…terspolar trädet till orört...\n" -#: builtin/merge.c:1471 +#: builtin/merge.c:1462 #, c-format msgid "Trying merge strategy %s...\n" -msgstr "Försöker sammanslagninsstrategin %s...\n" +msgstr "Försöker sammanslagningsstrategin %s...\n" -#: builtin/merge.c:1537 +#: builtin/merge.c:1528 #, c-format msgid "No merge strategy handled the merge.\n" msgstr "Ingen sammanslagningsstrategi hanterade sammanslagningen.\n" -#: builtin/merge.c:1539 +#: builtin/merge.c:1530 #, c-format msgid "Merge with strategy %s failed.\n" msgstr "Sammanslagning med strategin %s misslyckades.\n" -#: builtin/merge.c:1548 +#: builtin/merge.c:1539 #, 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:1560 +#: builtin/merge.c:1551 #, c-format msgid "Automatic merge went well; stopped before committing as requested\n" msgstr "" @@ -7061,79 +7127,79 @@ msgstr "källkatalogen är tom" msgid "not under version control" msgstr "inte versionshanterad" -#: builtin/mv.c:207 +#: builtin/mv.c:208 msgid "destination exists" msgstr "destinationen finns" -#: builtin/mv.c:215 +#: builtin/mv.c:216 #, c-format msgid "overwriting '%s'" msgstr "skriver över \"%s\"" -#: builtin/mv.c:218 +#: builtin/mv.c:219 msgid "Cannot overwrite" msgstr "Kan inte skriva över" -#: builtin/mv.c:221 +#: builtin/mv.c:222 msgid "multiple sources for the same target" msgstr "flera källor för samma mÃ¥l" -#: builtin/mv.c:223 +#: builtin/mv.c:224 msgid "destination directory does not exist" msgstr "destinationskatalogen finns inte" -#: builtin/mv.c:243 +#: builtin/mv.c:244 #, 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:726 builtin/repack.c:355 +#: builtin/mv.c:257 builtin/remote.c:725 builtin/repack.c:358 #, c-format msgid "renaming '%s' failed" msgstr "misslyckades byta namn pÃ¥ \"%s\"" -#: builtin/name-rev.c:258 +#: builtin/name-rev.c:255 msgid "git name-rev [options] <commit>..." msgstr "git name-rev [flaggor] <incheckning>..." -#: builtin/name-rev.c:259 +#: builtin/name-rev.c:256 msgid "git name-rev [options] --all" msgstr "git name-rev [flaggor] --all" -#: builtin/name-rev.c:260 +#: builtin/name-rev.c:257 msgid "git name-rev [options] --stdin" msgstr "git name-rev [flaggor] --stdin" -#: builtin/name-rev.c:312 +#: builtin/name-rev.c:309 msgid "print only names (no SHA-1)" msgstr "skriv endast namn (ingen SHA-1)" -#: builtin/name-rev.c:313 +#: builtin/name-rev.c:310 msgid "only use tags to name the commits" msgstr "använd endast taggar för att namnge incheckningar" -#: builtin/name-rev.c:315 +#: builtin/name-rev.c:312 msgid "only use refs matching <pattern>" msgstr "använd endast referenser som motsvarar <mönster>" -#: builtin/name-rev.c:317 +#: builtin/name-rev.c:314 msgid "list all commits reachable from all refs" msgstr "lista alla incheckningar som kan nÃ¥s alla referenser" -#: builtin/name-rev.c:318 +#: builtin/name-rev.c:315 msgid "read from stdin" msgstr "läs frÃ¥n standard in" -#: builtin/name-rev.c:319 +#: builtin/name-rev.c:316 msgid "allow to print `undefined` names (default)" msgstr "tillÃ¥t att skriva \"odefinierade\" namn (standard)" -#: builtin/name-rev.c:325 +#: builtin/name-rev.c:322 msgid "dereference tags in the input (internal use)" msgstr "avreferera taggar i indata (används internt)" @@ -7263,7 +7329,7 @@ msgstr "kunde inte läsa utdata frÃ¥n \"show\"" msgid "failed to finish 'show' for object '%s'" msgstr "kunde inte avsluta \"show\" för objektet \"%s\"" -#: builtin/notes.c:167 builtin/tag.c:373 +#: builtin/notes.c:167 builtin/tag.c:477 #, c-format msgid "could not create file '%s'" msgstr "kunde inte skapa filen \"%s\"" @@ -7286,12 +7352,12 @@ msgstr "kunde inte skriva anteckningsobjekt" msgid "The note contents has been left in %s" msgstr "Anteckningens innehÃ¥ll har lämnats kvar i %s" -#: builtin/notes.c:248 builtin/tag.c:604 +#: builtin/notes.c:248 builtin/tag.c:692 #, c-format msgid "cannot read '%s'" msgstr "kunde inte läsa \"%s\"" -#: builtin/notes.c:250 builtin/tag.c:607 +#: builtin/notes.c:250 builtin/tag.c:695 #, c-format msgid "could not open or read '%s'" msgstr "kunde inte öppna eller läsa \"%s\"" @@ -7299,7 +7365,7 @@ msgstr "kunde inte öppna eller läsa \"%s\"" #: builtin/notes.c:269 builtin/notes.c:320 builtin/notes.c:322 #: builtin/notes.c:382 builtin/notes.c:436 builtin/notes.c:519 #: builtin/notes.c:524 builtin/notes.c:599 builtin/notes.c:641 -#: builtin/notes.c:843 builtin/tag.c:620 +#: builtin/notes.c:843 builtin/tag.c:708 #, c-format msgid "Failed to resolve '%s' as a valid ref." msgstr "Kunde inte slÃ¥ upp \"%s\" som en giltig referens." @@ -7344,7 +7410,7 @@ msgid "note contents in a file" msgstr "anteckningsinnehÃ¥ll i en fil" #: builtin/notes.c:415 builtin/notes.c:418 builtin/notes.c:572 -#: builtin/notes.c:575 builtin/tag.c:539 +#: builtin/notes.c:575 builtin/tag.c:627 msgid "object" msgstr "objekt" @@ -7464,7 +7530,7 @@ msgstr "anteckningar-ref" msgid "use notes from <notes_ref>" msgstr "använd anteckningar frÃ¥n <anteckningsref>" -#: builtin/notes.c:978 builtin/remote.c:1593 +#: builtin/notes.c:978 builtin/remote.c:1616 #, c-format msgid "Unknown subcommand: %s" msgstr "Okänt underkommando: %s" @@ -7494,155 +7560,155 @@ msgstr "inaktiverar skrivning av bitkarta dÃ¥ nÃ¥gra objekt inte packas" msgid "Compressing objects" msgstr "Komprimerar objekt" -#: builtin/pack-objects.c:2530 +#: builtin/pack-objects.c:2526 #, c-format msgid "unsupported index version %s" msgstr "indexversionen %s stöds ej" -#: builtin/pack-objects.c:2534 +#: builtin/pack-objects.c:2530 #, c-format msgid "bad index version '%s'" msgstr "felaktig indexversion \"%s\"" -#: builtin/pack-objects.c:2557 +#: builtin/pack-objects.c:2553 #, c-format msgid "option %s does not accept negative form" msgstr "flaggan %s godtar inte negativ form" -#: builtin/pack-objects.c:2561 +#: builtin/pack-objects.c:2557 #, c-format msgid "unable to parse value '%s' for option %s" msgstr "kunde inte tolka värdet \"%s\" för flaggan %s" -#: builtin/pack-objects.c:2580 +#: builtin/pack-objects.c:2576 msgid "do not show progress meter" msgstr "visa inte förloppsindikator" -#: builtin/pack-objects.c:2582 +#: builtin/pack-objects.c:2578 msgid "show progress meter" msgstr "visa förloppsindikator" -#: builtin/pack-objects.c:2584 +#: builtin/pack-objects.c:2580 msgid "show progress meter during object writing phase" msgstr "visa förloppsindikator under objektskrivningsfasen" -#: builtin/pack-objects.c:2587 +#: builtin/pack-objects.c:2583 msgid "similar to --all-progress when progress meter is shown" msgstr "som --all-progress när förloppsmätaren visas" -#: builtin/pack-objects.c:2588 +#: builtin/pack-objects.c:2584 msgid "version[,offset]" msgstr "version[,offset]" -#: builtin/pack-objects.c:2589 +#: builtin/pack-objects.c:2585 msgid "write the pack index file in the specified idx format version" msgstr "skriv paketindexfilen i angiven indexformatversion" -#: builtin/pack-objects.c:2592 +#: builtin/pack-objects.c:2588 msgid "maximum size of each output pack file" msgstr "maximal storlek pÃ¥ varje utdatapaketfil" -#: builtin/pack-objects.c:2594 +#: builtin/pack-objects.c:2590 msgid "ignore borrowed objects from alternate object store" msgstr "ignorera lÃ¥nade objekt frÃ¥n alternativa objektlager" -#: builtin/pack-objects.c:2596 +#: builtin/pack-objects.c:2592 msgid "ignore packed objects" msgstr "ignorera packade objekt" -#: builtin/pack-objects.c:2598 +#: builtin/pack-objects.c:2594 msgid "limit pack window by objects" msgstr "begränsa paketfönster efter objekt" -#: builtin/pack-objects.c:2600 +#: builtin/pack-objects.c:2596 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:2602 +#: builtin/pack-objects.c:2598 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:2604 +#: builtin/pack-objects.c:2600 msgid "reuse existing deltas" msgstr "Ã¥teranvänd befintliga delta" -#: builtin/pack-objects.c:2606 +#: builtin/pack-objects.c:2602 msgid "reuse existing objects" msgstr "Ã¥teranvänd befintliga objekt" -#: builtin/pack-objects.c:2608 +#: builtin/pack-objects.c:2604 msgid "use OFS_DELTA objects" msgstr "använd OFS_DELTA-objekt" -#: builtin/pack-objects.c:2610 +#: builtin/pack-objects.c:2606 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:2612 +#: builtin/pack-objects.c:2608 msgid "do not create an empty pack output" msgstr "försök inte skapa tom paketutdata" -#: builtin/pack-objects.c:2614 +#: builtin/pack-objects.c:2610 msgid "read revision arguments from standard input" msgstr "läs revisionsargument frÃ¥n standard in" -#: builtin/pack-objects.c:2616 +#: builtin/pack-objects.c:2612 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:2619 +#: builtin/pack-objects.c:2615 msgid "include objects reachable from any reference" msgstr "inkludera objekt som kan nÃ¥s frÃ¥n nÃ¥gon referens" -#: builtin/pack-objects.c:2622 +#: builtin/pack-objects.c:2618 msgid "include objects referred by reflog entries" msgstr "inkludera objekt som refereras frÃ¥n referensloggposter" -#: builtin/pack-objects.c:2625 +#: builtin/pack-objects.c:2621 msgid "output pack to stdout" msgstr "skriv paket pÃ¥ standard ut" -#: builtin/pack-objects.c:2627 +#: builtin/pack-objects.c:2623 msgid "include tag objects that refer to objects to be packed" msgstr "inkludera taggobjekt som refererar objekt som skall packas" -#: builtin/pack-objects.c:2629 +#: builtin/pack-objects.c:2625 msgid "keep unreachable objects" msgstr "behÃ¥ll onÃ¥bara objekt" -#: builtin/pack-objects.c:2630 parse-options.h:140 +#: builtin/pack-objects.c:2626 parse-options.h:140 msgid "time" msgstr "tid" -#: builtin/pack-objects.c:2631 +#: builtin/pack-objects.c:2627 msgid "unpack unreachable objects newer than <time>" msgstr "packa upp onÃ¥bara objekt nyare än <tid>" -#: builtin/pack-objects.c:2634 +#: builtin/pack-objects.c:2630 msgid "create thin packs" msgstr "skapa tunna paket" -#: builtin/pack-objects.c:2636 +#: builtin/pack-objects.c:2632 msgid "ignore packs that have companion .keep file" msgstr "ignorera paket som har tillhörande .keep-fil" -#: builtin/pack-objects.c:2638 +#: builtin/pack-objects.c:2634 msgid "pack compression level" msgstr "komprimeringsgrad för paket" -#: builtin/pack-objects.c:2640 +#: builtin/pack-objects.c:2636 msgid "do not hide commits by grafts" msgstr "göm inte incheckningar med ympningar (\"grafts\")" -#: builtin/pack-objects.c:2642 +#: builtin/pack-objects.c:2638 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:2644 +#: builtin/pack-objects.c:2640 msgid "write a bitmap index together with the pack index" msgstr "använd bitkartindex tillsammans med packindexet" -#: builtin/pack-objects.c:2723 +#: builtin/pack-objects.c:2719 msgid "Counting objects" msgstr "Räknar objekt" @@ -7694,7 +7760,7 @@ msgstr "taggförkortning utan <tagg>" msgid "--delete only accepts plain target ref names" msgstr "--delete godtar endast enkla mÃ¥lreferensnamn" -#: builtin/push.c:140 +#: builtin/push.c:139 msgid "" "\n" "To choose either option permanently, see push.default in 'git help config'." @@ -7703,7 +7769,7 @@ msgstr "" "För att välja ett av alternativen permanent, se push.default i \"git help " "config\"." -#: builtin/push.c:143 +#: builtin/push.c:142 #, c-format msgid "" "The upstream branch of your current branch does not match\n" @@ -7728,7 +7794,7 @@ msgstr "" " git push %s %s\n" "%s" -#: builtin/push.c:158 +#: builtin/push.c:157 #, c-format msgid "" "You are not currently on a branch.\n" @@ -7743,7 +7809,7 @@ msgstr "" "\n" " git push %s HEAD:<namn-pÃ¥-fjärrgren>\n" -#: builtin/push.c:172 +#: builtin/push.c:171 #, c-format msgid "" "The current branch %s has no upstream branch.\n" @@ -7756,12 +7822,12 @@ msgstr "" "\n" " git push --set-upstream %s %s\n" -#: builtin/push.c:180 +#: builtin/push.c:179 #, 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:183 +#: builtin/push.c:182 #, c-format msgid "" "You are pushing to remote '%s', which is not the upstream of\n" @@ -7772,7 +7838,7 @@ 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:206 +#: builtin/push.c:205 msgid "" "push.default is unset; its implicit value has changed in\n" "Git 2.0 from 'matching' to 'simple'. To squelch this message\n" @@ -7807,7 +7873,7 @@ msgstr "" "\n" " git config --global push.default simple\n" "\n" -"Nör push.default är satt till \"matching\" kommer git att sända lokala " +"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" @@ -7820,14 +7886,14 @@ msgstr "" "liknande läget \"current\" istället för \"simple\" om du ibland använder\n" "äldre versioner av Git.)" -#: builtin/push.c:273 +#: builtin/push.c:272 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:280 +#: builtin/push.c:279 msgid "" "Updates were rejected because the tip of your current branch is behind\n" "its remote counterpart. Integrate the remote changes (e.g.\n" @@ -7839,7 +7905,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:286 +#: builtin/push.c:285 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" @@ -7851,7 +7917,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:292 +#: builtin/push.c:291 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" @@ -7865,11 +7931,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:299 +#: builtin/push.c:298 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:302 +#: builtin/push.c:301 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" @@ -7880,22 +7946,22 @@ msgstr "" "pekar pÃ¥ nÃ¥got som inte är en incheckning, utan att använda flaggan\n" "\"--force\".\n" -#: builtin/push.c:361 +#: builtin/push.c:360 #, c-format msgid "Pushing to %s\n" msgstr "Sänder till %s\n" -#: builtin/push.c:365 +#: builtin/push.c:364 #, c-format msgid "failed to push some refs to '%s'" msgstr "misslyckades sända vissa referenser till \"%s\"" -#: builtin/push.c:395 +#: builtin/push.c:394 #, c-format msgid "bad repository '%s'" msgstr "felaktigt arkiv \"%s\"" -#: builtin/push.c:396 +#: builtin/push.c:395 msgid "" "No configured push destination.\n" "Either specify the URL from the command-line or configure a remote " @@ -7916,95 +7982,95 @@ msgstr "" "\n" " git push <namn>\n" -#: builtin/push.c:411 +#: builtin/push.c:410 msgid "--all and --tags are incompatible" msgstr "--all och --tags är inkompatibla" -#: builtin/push.c:412 +#: builtin/push.c:411 msgid "--all can't be combined with refspecs" msgstr "--all kan inte kombineras med referensspecifikationer" -#: builtin/push.c:417 +#: builtin/push.c:416 msgid "--mirror and --tags are incompatible" msgstr "--mirror och --tags är inkompatibla" -#: builtin/push.c:418 +#: builtin/push.c:417 msgid "--mirror can't be combined with refspecs" msgstr "--mirror kan inte kombineras med referensspecifikationer" -#: builtin/push.c:423 +#: builtin/push.c:422 msgid "--all and --mirror are incompatible" msgstr "--all och --mirror är inkompatibla" -#: builtin/push.c:483 +#: builtin/push.c:482 msgid "repository" msgstr "arkiv" -#: builtin/push.c:484 +#: builtin/push.c:483 msgid "push all refs" msgstr "sänd alla referenser" -#: builtin/push.c:485 +#: builtin/push.c:484 msgid "mirror all refs" msgstr "spegla alla referenser" -#: builtin/push.c:487 +#: builtin/push.c:486 msgid "delete refs" msgstr "ta bort referenser" -#: builtin/push.c:488 +#: builtin/push.c:487 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:491 +#: builtin/push.c:490 msgid "force updates" msgstr "tvinga uppdateringar" -#: builtin/push.c:493 +#: builtin/push.c:492 msgid "refname>:<expect" msgstr "refnamn>:<förvänta" -#: builtin/push.c:494 +#: builtin/push.c:493 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:496 +#: builtin/push.c:495 msgid "check" msgstr "kontrollera" -#: builtin/push.c:497 +#: builtin/push.c:496 msgid "control recursive pushing of submodules" msgstr "styr rekursiv insändning av undermoduler" -#: builtin/push.c:499 +#: builtin/push.c:498 msgid "use thin pack" msgstr "använd tunna paket" -#: builtin/push.c:500 builtin/push.c:501 +#: builtin/push.c:499 builtin/push.c:500 msgid "receive pack program" msgstr "program för att ta emot paket" -#: builtin/push.c:502 +#: builtin/push.c:501 msgid "set upstream for git pull/status" msgstr "ställ in uppström för git pull/status" -#: builtin/push.c:505 +#: builtin/push.c:504 msgid "prune locally removed refs" msgstr "ta bort lokalt borttagna referenser" -#: builtin/push.c:507 +#: builtin/push.c:506 msgid "bypass pre-push hook" msgstr "förbigÃ¥ pre-push-krok" -#: builtin/push.c:508 +#: builtin/push.c:507 msgid "push missing but relevant tags" msgstr "sänd in saknade men relevanta taggar" -#: builtin/push.c:518 +#: builtin/push.c:517 msgid "--delete is incompatible with --all, --mirror and --tags" -msgstr "--delete är imkompatibel med --all, --mirror och --tags" +msgstr "--delete är inkompatibel med --all, --mirror och --tags" -#: builtin/push.c:520 +#: builtin/push.c:519 msgid "--delete doesn't make sense without any refs" msgstr "--delete kan inte användas utan referenser" @@ -8228,12 +8294,12 @@ 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:185 builtin/remote.c:641 +#: builtin/remote.c:185 builtin/remote.c:640 #, c-format msgid "remote %s already exists." msgstr "fjärrarkivet %s finns redan." -#: builtin/remote.c:189 builtin/remote.c:645 +#: builtin/remote.c:189 builtin/remote.c:644 #, c-format msgid "'%s' is not a valid remote name" msgstr "\"%s\" är inte ett giltigt namn pÃ¥ fjärrarkiv" @@ -8243,45 +8309,45 @@ msgstr "\"%s\" är inte ett giltigt namn pÃ¥ fjärrarkiv" msgid "Could not setup master '%s'" msgstr "Kunde inte skapa master \"%s\"" -#: builtin/remote.c:289 +#: builtin/remote.c:288 #, c-format msgid "more than one %s" msgstr "mer än en %s" -#: builtin/remote.c:334 +#: builtin/remote.c:333 #, c-format msgid "Could not get fetch map for refspec %s" msgstr "Kunde inte hämta mappning för referensspecifikation %s" -#: builtin/remote.c:435 builtin/remote.c:443 +#: builtin/remote.c:434 builtin/remote.c:442 msgid "(matching)" msgstr "(matchande)" -#: builtin/remote.c:447 +#: builtin/remote.c:446 msgid "(delete)" msgstr "(ta bort)" -#: builtin/remote.c:590 builtin/remote.c:596 builtin/remote.c:602 +#: builtin/remote.c:589 builtin/remote.c:595 builtin/remote.c:601 #, c-format msgid "Could not append '%s' to '%s'" msgstr "Kunde inte tillämpa \"%s\" pÃ¥ \"%s\"" -#: builtin/remote.c:634 builtin/remote.c:787 builtin/remote.c:885 +#: builtin/remote.c:633 builtin/remote.c:794 builtin/remote.c:894 #, c-format msgid "No such remote: %s" msgstr "Inget sÃ¥dant fjärrarkiv: %s" -#: builtin/remote.c:651 +#: builtin/remote.c:650 #, c-format msgid "Could not rename config section '%s' to '%s'" msgstr "Kunde inte byta namn pÃ¥ konfigurationssektionen \"%s\" till \"%s\"" -#: builtin/remote.c:657 builtin/remote.c:794 +#: builtin/remote.c:656 builtin/remote.c:846 #, c-format msgid "Could not remove config section '%s'" msgstr "Kunde inte ta bort konfigurationssektionen \"%s\"" -#: builtin/remote.c:672 +#: builtin/remote.c:671 #, c-format msgid "" "Not updating non-default fetch refspec\n" @@ -8292,32 +8358,32 @@ msgstr "" "\t%s\n" "\tUppdatera konfigurationen manuellt om nödvändigt." -#: builtin/remote.c:678 +#: builtin/remote.c:677 #, c-format msgid "Could not append '%s'" msgstr "Kunde inte lägga till pÃ¥ \"%s\"" -#: builtin/remote.c:689 +#: builtin/remote.c:688 #, c-format msgid "Could not set '%s'" msgstr "Kunde inte sätta \"%s\"" -#: builtin/remote.c:711 +#: builtin/remote.c:710 #, c-format msgid "deleting '%s' failed" msgstr "misslyckades ta bort \"%s\"" -#: builtin/remote.c:745 +#: builtin/remote.c:744 #, c-format msgid "creating '%s' failed" msgstr "misslyckades skapa \"%s\"" -#: builtin/remote.c:759 +#: builtin/remote.c:765 #, c-format msgid "Could not remove branch %s" msgstr "Kunde inte ta bort grenen %s" -#: builtin/remote.c:829 +#: builtin/remote.c:832 msgid "" "Note: A branch outside the refs/remotes/ hierarchy was not removed;\n" "to delete it, use:" @@ -8331,363 +8397,421 @@ 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:938 +#: builtin/remote.c:947 #, c-format msgid " new (next fetch will store in remotes/%s)" msgstr " ny (nästa hämtning sparar i remotes/%s)" -#: builtin/remote.c:941 +#: builtin/remote.c:950 msgid " tracked" msgstr " spÃ¥rad" -#: builtin/remote.c:943 +#: builtin/remote.c:952 msgid " stale (use 'git remote prune' to remove)" msgstr " förlegad (använd \"git remote prune\" för att ta bort)" -#: builtin/remote.c:945 +#: builtin/remote.c:954 msgid " ???" msgstr " ???" -#: builtin/remote.c:986 +#: builtin/remote.c:995 #, 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:993 +#: builtin/remote.c:1002 #, c-format msgid "rebases onto remote %s" msgstr "ombaseras pÃ¥ fjärren %s" -#: builtin/remote.c:996 +#: builtin/remote.c:1005 #, c-format msgid " merges with remote %s" msgstr " sammanslÃ¥s med fjärren %s" -#: builtin/remote.c:997 +#: builtin/remote.c:1006 msgid " and with remote" msgstr " och med fjärren" -#: builtin/remote.c:999 +#: builtin/remote.c:1008 #, c-format msgid "merges with remote %s" msgstr "sammanslÃ¥s med fjärren %s" -#: builtin/remote.c:1000 +#: builtin/remote.c:1009 msgid " and with remote" msgstr " och med fjärren" -#: builtin/remote.c:1046 +#: builtin/remote.c:1055 msgid "create" msgstr "skapa" -#: builtin/remote.c:1049 +#: builtin/remote.c:1058 msgid "delete" msgstr "ta bort" -#: builtin/remote.c:1053 +#: builtin/remote.c:1062 msgid "up to date" msgstr "à jour" -#: builtin/remote.c:1056 +#: builtin/remote.c:1065 msgid "fast-forwardable" msgstr "kan snabbspolas" -#: builtin/remote.c:1059 +#: builtin/remote.c:1068 msgid "local out of date" msgstr "lokal förÃ¥ldrad" -#: builtin/remote.c:1066 +#: builtin/remote.c:1075 #, c-format msgid " %-*s forces to %-*s (%s)" msgstr " %-*s tvingar till %-*s (%s)" -#: builtin/remote.c:1069 +#: builtin/remote.c:1078 #, c-format msgid " %-*s pushes to %-*s (%s)" msgstr " %-*s sänder till %-*s (%s)" -#: builtin/remote.c:1073 +#: builtin/remote.c:1082 #, c-format msgid " %-*s forces to %s" msgstr " %-*s tvingar till %s" -#: builtin/remote.c:1076 +#: builtin/remote.c:1085 #, c-format msgid " %-*s pushes to %s" msgstr " %-*s sänder till %s" -#: builtin/remote.c:1144 +#: builtin/remote.c:1153 msgid "do not query remotes" msgstr "frÃ¥ga inte fjärrar" -#: builtin/remote.c:1171 +#: builtin/remote.c:1180 #, c-format msgid "* remote %s" msgstr "* fjärr %s" -#: builtin/remote.c:1172 +#: builtin/remote.c:1181 #, c-format msgid " Fetch URL: %s" msgstr " Hämt-URL: %s" -#: builtin/remote.c:1173 builtin/remote.c:1318 +#: builtin/remote.c:1182 builtin/remote.c:1329 msgid "(no URL)" msgstr "(ingen URL)" -#: builtin/remote.c:1182 builtin/remote.c:1184 +#: builtin/remote.c:1191 builtin/remote.c:1193 #, c-format msgid " Push URL: %s" msgstr " Sänd-URL: %s" -#: builtin/remote.c:1186 builtin/remote.c:1188 builtin/remote.c:1190 +#: builtin/remote.c:1195 builtin/remote.c:1197 builtin/remote.c:1199 #, c-format msgid " HEAD branch: %s" msgstr " HEAD-gren: %s" -#: builtin/remote.c:1192 +#: builtin/remote.c:1201 #, 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:1204 +#: builtin/remote.c:1213 #, c-format msgid " Remote branch:%s" msgid_plural " Remote branches:%s" msgstr[0] " Fjärrgren:%s" msgstr[1] " Fjärrgrenar:%s" -#: builtin/remote.c:1207 builtin/remote.c:1234 +#: builtin/remote.c:1216 builtin/remote.c:1243 msgid " (status not queried)" msgstr " (status inte förfrÃ¥gad)" -#: builtin/remote.c:1216 +#: builtin/remote.c:1225 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:1224 +#: builtin/remote.c:1233 msgid " Local refs will be mirrored by 'git push'" msgstr " Lokala referenser speglas av \"git push\"" -#: builtin/remote.c:1231 +#: builtin/remote.c:1240 #, 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:1252 +#: builtin/remote.c:1261 msgid "set refs/remotes/<name>/HEAD according to remote" msgstr "sätt refs/remotes/<namn>/HEAD enligt fjärren" -#: builtin/remote.c:1254 +#: builtin/remote.c:1263 msgid "delete refs/remotes/<name>/HEAD" msgstr "ta bort refs/remotes/<namn>/HEAD" -#: builtin/remote.c:1269 +#: builtin/remote.c:1278 msgid "Cannot determine remote HEAD" msgstr "Kan inte bestämma HEAD pÃ¥ fjärren" -#: builtin/remote.c:1271 +#: builtin/remote.c:1280 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:1281 +#: builtin/remote.c:1290 #, c-format msgid "Could not delete %s" msgstr "Kunde inte ta bort %s" -#: builtin/remote.c:1289 +#: builtin/remote.c:1298 #, c-format msgid "Not a valid ref: %s" msgstr "Inte en giltig referens: %s" -#: builtin/remote.c:1291 +#: builtin/remote.c:1300 #, c-format msgid "Could not setup %s" msgstr "Kunde inte ställa in %s" -#: builtin/remote.c:1307 +#: builtin/remote.c:1318 #, c-format msgid " %s will become dangling!" msgstr " %s kommer bli dinglande!" -#: builtin/remote.c:1308 +#: builtin/remote.c:1319 #, c-format msgid " %s has become dangling!" msgstr " %s har blivit dinglande!" -#: builtin/remote.c:1314 +#: builtin/remote.c:1325 #, c-format msgid "Pruning %s" msgstr "Rensar %s" -#: builtin/remote.c:1315 +#: builtin/remote.c:1326 #, c-format msgid "URL: %s" msgstr "URL: %s" -#: builtin/remote.c:1328 +#: builtin/remote.c:1349 #, c-format msgid " * [would prune] %s" msgstr " * [skulle rensa] %s" -#: builtin/remote.c:1331 +#: builtin/remote.c:1352 #, c-format msgid " * [pruned] %s" msgstr " * [rensad] %s" -#: builtin/remote.c:1374 +#: builtin/remote.c:1397 msgid "prune remotes after fetching" msgstr "rensa fjärrar efter hämtning" -#: builtin/remote.c:1440 builtin/remote.c:1514 +#: builtin/remote.c:1463 builtin/remote.c:1537 #, c-format msgid "No such remote '%s'" msgstr "Ingen sÃ¥dan fjärr \"%s\"" -#: builtin/remote.c:1460 +#: builtin/remote.c:1483 msgid "add branch" msgstr "lägg till gren" -#: builtin/remote.c:1467 +#: builtin/remote.c:1490 msgid "no remote specified" msgstr "ingen fjärr angavs" -#: builtin/remote.c:1489 +#: builtin/remote.c:1512 msgid "manipulate push URLs" msgstr "manipulera URL:ar för sändning" -#: builtin/remote.c:1491 +#: builtin/remote.c:1514 msgid "add URL" msgstr "lägg till URL" -#: builtin/remote.c:1493 +#: builtin/remote.c:1516 msgid "delete URLs" msgstr "ta bort URL:ar" -#: builtin/remote.c:1500 +#: builtin/remote.c:1523 msgid "--add --delete doesn't make sense" msgstr "--add --delete ger ingen mening" -#: builtin/remote.c:1540 +#: builtin/remote.c:1563 #, c-format msgid "Invalid old URL pattern: %s" msgstr "Felaktig gammalt URL-mönster: %s" -#: builtin/remote.c:1548 +#: builtin/remote.c:1571 #, c-format msgid "No such URL found: %s" msgstr "Ingen sÃ¥dan URL hittades: %s" -#: builtin/remote.c:1550 +#: builtin/remote.c:1573 msgid "Will not delete all non-push URLs" msgstr "Kommer inte ta bort alla icke-sänd-URL:er" -#: builtin/remote.c:1564 +#: builtin/remote.c:1587 msgid "be verbose; must be placed before a subcommand" msgstr "var pratsam; mÃ¥ste skrivas före ett underkommando" -#: builtin/repack.c:16 +#: builtin/repack.c:17 msgid "git repack [options]" msgstr "git repack [flaggor]" -#: builtin/repack.c:156 +#: builtin/repack.c:160 msgid "pack everything in a single pack" msgstr "packa allt i ett enda paket" -#: builtin/repack.c:158 +#: builtin/repack.c:162 msgid "same as -a, and turn unreachable objects loose" msgstr "samma som -a, och gör onÃ¥bara objekt lösa" -#: builtin/repack.c:161 +#: builtin/repack.c:165 msgid "remove redundant packs, and run git-prune-packed" msgstr "ta bort överflödiga paket, och kör git-prune-packed" -#: builtin/repack.c:163 +#: builtin/repack.c:167 msgid "pass --no-reuse-delta to git-pack-objects" msgstr "sänd --no-reuse-delta till git-pack-objects" -#: builtin/repack.c:165 +#: builtin/repack.c:169 msgid "pass --no-reuse-object to git-pack-objects" msgstr "sänd --no-reuse-object till git-pack-objects" -#: builtin/repack.c:167 +#: builtin/repack.c:171 msgid "do not run git-update-server-info" msgstr "kör inte git-update-server-info" -#: builtin/repack.c:170 +#: builtin/repack.c:174 msgid "pass --local to git-pack-objects" msgstr "sänd --local till git-pack-objects" -#: builtin/repack.c:172 +#: builtin/repack.c:176 msgid "write bitmap index" msgstr "skriv bitkartindex" -#: builtin/repack.c:173 +#: builtin/repack.c:177 msgid "approxidate" msgstr "cirkadatum" -#: builtin/repack.c:174 +#: builtin/repack.c:178 msgid "with -A, do not loosen objects older than this" msgstr "med -A, lös inte upp objekt äldre än detta" -#: builtin/repack.c:176 +#: builtin/repack.c:180 msgid "size of the window used for delta compression" msgstr "storlek pÃ¥ fönster använt för deltakomprimering" -#: builtin/repack.c:177 builtin/repack.c:181 +#: builtin/repack.c:181 builtin/repack.c:185 msgid "bytes" msgstr "byte" -#: builtin/repack.c:178 +#: builtin/repack.c:182 msgid "same as the above, but limit memory size instead of entries count" msgstr "samma som ovan, men begränsa minnesstorleken istället för postantal" -#: builtin/repack.c:180 +#: builtin/repack.c:184 msgid "limits the maximum delta depth" msgstr "begränsa maximalt deltadjup" -#: builtin/repack.c:182 +#: builtin/repack.c:186 msgid "maximum size of each packfile" msgstr "maximal storlek pÃ¥ varje paketfil" -#: builtin/repack.c:184 +#: builtin/repack.c:188 msgid "repack objects in packs marked with .keep" msgstr "packa om objekt i paket märkta med .keep" -#: builtin/repack.c:371 +#: builtin/repack.c:374 #, c-format msgid "removing '%s' failed" msgstr "misslyckades ta bort \"%s\"" -#: builtin/replace.c:17 +#: builtin/replace.c:19 msgid "git replace [-f] <object> <replacement>" msgstr "git replace [-f] <objekt> <ersättning>" -#: builtin/replace.c:18 +#: builtin/replace.c:20 +msgid "git replace [-f] --edit <object>" +msgstr "git replace [-f] --edit <objekt>" + +#: builtin/replace.c:21 +msgid "git replace [-f] --graft <commit> [<parent>...]" +msgstr "git replace [-f] --graft <incheckning> [<förälder>...]" + +#: builtin/replace.c:22 msgid "git replace -d <object>..." msgstr "git replace -d <objekt>..." -#: builtin/replace.c:19 +#: builtin/replace.c:23 msgid "git replace [--format=<format>] [-l [<pattern>]]" msgstr "git replace [--format=<format>] [-l [<mönster>]]" -#: builtin/replace.c:174 +#: builtin/replace.c:322 builtin/replace.c:360 builtin/replace.c:388 +#, c-format +msgid "Not a valid object name: '%s'" +msgstr "Objektnamnet är inte giltigt: \"%s\"" + +#: builtin/replace.c:352 +#, c-format +msgid "bad mergetag in commit '%s'" +msgstr "felaktig sammanslagningstagg i incheckningen \"%s\"" + +#: builtin/replace.c:354 +#, c-format +msgid "malformed mergetag in commit '%s'" +msgstr "felformad sammanslagningstagg i incheckningen \"%s\"" + +#: builtin/replace.c:365 +#, c-format +msgid "" +"original commit '%s' contains mergetag '%s' that is discarded; use --edit " +"instead of --graft" +msgstr "" +"den ursprungliga incheckningen \"%s\" innehÃ¥ller sammanslagningstaggen \"%s" +"\" som har förkastats; använd --edit istället för --graft" + +#: builtin/replace.c:398 +#, c-format +msgid "the original commit '%s' has a gpg signature." +msgstr "den ursprungliga incheckningen \"%s\" har en gpg-signatur." + +#: builtin/replace.c:399 +msgid "the signature will be removed in the replacement commit!" +msgstr "signaturen kommer att tas bort i ersättningsincheckningen!" + +#: builtin/replace.c:405 +#, c-format +msgid "could not write replacement commit for: '%s'" +msgstr "kunde inte skriva ersättningsincheckning för: \"%s\"" + +#: builtin/replace.c:429 msgid "list replace refs" msgstr "visa ersättningsreferenser" -#: builtin/replace.c:175 +#: builtin/replace.c:430 msgid "delete replace refs" msgstr "ta bort ersättningsreferenser" -#: builtin/replace.c:176 +#: builtin/replace.c:431 +msgid "edit existing object" +msgstr "redigera befintligt objekt" + +#: builtin/replace.c:432 +msgid "change a commit's parents" +msgstr "ändra en inchecknings föräldrar" + +#: builtin/replace.c:433 msgid "replace the ref if it exists" msgstr "ersätt referensen om den finns" -#: builtin/replace.c:177 +#: builtin/replace.c:434 +msgid "do not pretty-print contents for --edit" +msgstr "använd inte snygg visning av innehÃ¥ll för --edit" + +#: builtin/replace.c:435 msgid "use this format" msgstr "använd detta format" @@ -8756,98 +8880,98 @@ msgstr "HEAD är nu pÃ¥ %s" msgid "Cannot do a %s reset in the middle of a merge." msgstr "Kan inte utföra en %s Ã¥terställning mitt i en sammanslagning." -#: builtin/reset.c:273 +#: builtin/reset.c:275 msgid "be quiet, only report errors" msgstr "var tyst, rapportera endast fel" -#: builtin/reset.c:275 +#: builtin/reset.c:277 msgid "reset HEAD and index" msgstr "Ã¥terställ HEAD och index" -#: builtin/reset.c:276 +#: builtin/reset.c:278 msgid "reset only HEAD" msgstr "Ã¥terställ endast HEAD" -#: builtin/reset.c:278 builtin/reset.c:280 +#: builtin/reset.c:280 builtin/reset.c:282 msgid "reset HEAD, index and working tree" msgstr "Ã¥terställ HEAD, index och arbetskatalog" -#: builtin/reset.c:282 +#: builtin/reset.c:284 msgid "reset HEAD but keep local changes" msgstr "Ã¥terställ HEAD men behÃ¥ll lokala ändringar" -#: builtin/reset.c:285 +#: builtin/reset.c:287 msgid "record only the fact that removed paths will be added later" msgstr "registrera endast att borttagna sökvägar kommer läggas till senare" -#: builtin/reset.c:302 +#: builtin/reset.c:304 #, c-format msgid "Failed to resolve '%s' as a valid revision." msgstr "Kunde inte slÃ¥ upp \"%s\" som en giltig revision." -#: builtin/reset.c:305 builtin/reset.c:313 +#: builtin/reset.c:307 builtin/reset.c:315 #, c-format msgid "Could not parse object '%s'." msgstr "Kan inte tolka objektet \"%s\"" -#: builtin/reset.c:310 +#: builtin/reset.c:312 #, c-format msgid "Failed to resolve '%s' as a valid tree." msgstr "Kunde inte slÃ¥ upp \"%s\" som ett giltigt träd." -#: builtin/reset.c:319 +#: builtin/reset.c:321 msgid "--patch is incompatible with --{hard,mixed,soft}" msgstr "--patch är inkompatibel med --{hard,mixed,soft}" -#: builtin/reset.c:328 +#: builtin/reset.c:330 msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead." msgstr "" "--mixed rekommenderas inte med sökvägar; använd \"git reset -- <sökvägar>\"." -#: builtin/reset.c:330 +#: builtin/reset.c:332 #, c-format msgid "Cannot do %s reset with paths." msgstr "Kan inte göra %s Ã¥terställning med sökvägar." -#: builtin/reset.c:340 +#: builtin/reset.c:342 #, c-format msgid "%s reset is not allowed in a bare repository" msgstr "%s Ã¥terställning tillÃ¥ts inte i ett naket arkiv" -#: builtin/reset.c:344 +#: builtin/reset.c:346 msgid "-N can only be used with --mixed" msgstr "-N kan endast användas med --mixed" -#: builtin/reset.c:361 +#: builtin/reset.c:363 msgid "Unstaged changes after reset:" msgstr "Oköade ändringar efter Ã¥terställning:" -#: builtin/reset.c:367 +#: builtin/reset.c:369 #, c-format msgid "Could not reset index file to revision '%s'." msgstr "Kunde inte Ã¥terställa indexfilen till versionen \"%s\"." -#: builtin/reset.c:372 +#: builtin/reset.c:373 msgid "Could not write new index file." msgstr "Kunde inte skriva ny indexfil." -#: builtin/rev-parse.c:359 +#: builtin/rev-parse.c:360 msgid "git rev-parse --parseopt [options] -- [<args>...]" msgstr "git rev-parse --parseopt [options] -- [<argument>...]" -#: builtin/rev-parse.c:364 +#: builtin/rev-parse.c:365 msgid "keep the `--` passed as an arg" msgstr "behÃ¥ll \"--\" sänt som argument" -#: builtin/rev-parse.c:366 +#: builtin/rev-parse.c:367 msgid "stop parsing after the first non-option argument" msgstr "sluta tolka efter första argument som inte är flagga" -#: builtin/rev-parse.c:369 +#: builtin/rev-parse.c:370 msgid "output in stuck long form" msgstr "utdata fast i lÃ¥ng form" -#: builtin/rev-parse.c:497 +#: builtin/rev-parse.c:498 msgid "" "git rev-parse --parseopt [options] -- [<args>...]\n" " or: git rev-parse --sq-quote [<arg>...]\n" @@ -8909,7 +9033,7 @@ msgstr "nummer pÃ¥ förälder" #: builtin/revert.c:89 msgid "merge strategy" -msgstr "sammanslagninsstrategi" +msgstr "sammanslagningsstrategi" #: builtin/revert.c:90 msgid "option" @@ -9126,7 +9250,7 @@ msgstr "namnge incheckningar med deras objektnamn" #: builtin/show-branch.c:664 msgid "show possible merge bases" -msgstr "visa möjliga sammanslaningsbaser" +msgstr "visa möjliga sammanslagningsbaser" #: builtin/show-branch.c:666 msgid "show refs unreachable from any other ref" @@ -9221,11 +9345,11 @@ msgstr "ta bort symbolisk referens" msgid "shorten ref output" msgstr "förkorta ref-utdata" -#: builtin/symbolic-ref.c:43 builtin/update-ref.c:255 +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:349 msgid "reason" msgstr "skäl" -#: builtin/symbolic-ref.c:43 builtin/update-ref.c:255 +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:349 msgid "reason of the update" msgstr "skäl till uppdateringen" @@ -9251,203 +9375,212 @@ msgstr "" msgid "git tag -v <tagname>..." msgstr "git tag -v <taggnamn>..." -#: builtin/tag.c:67 +#: builtin/tag.c:69 #, c-format msgid "malformed object at '%s'" msgstr "felformat objekt vid \"%s\"" -#: builtin/tag.c:239 +#: builtin/tag.c:301 #, c-format msgid "tag name too long: %.*s..." msgstr "taggnamnet för lÃ¥ngt: %.*s..." -#: builtin/tag.c:244 +#: builtin/tag.c:306 #, c-format msgid "tag '%s' not found." msgstr "taggen \"%s\" hittades inte." -#: builtin/tag.c:259 +#: builtin/tag.c:321 #, c-format msgid "Deleted tag '%s' (was %s)\n" msgstr "Tog bort tagg \"%s\" (var %s)\n" -#: builtin/tag.c:271 +#: builtin/tag.c:333 #, c-format msgid "could not verify the tag '%s'" msgstr "kunde inte bekräfta taggen \"%s\"" -#: builtin/tag.c:281 +#: builtin/tag.c:343 #, c-format msgid "" "\n" -"Write a tag message\n" +"Write a message for tag:\n" +" %s\n" "Lines starting with '%c' will be ignored.\n" msgstr "" "\n" -"Skriv ett taggmeddelande\n" +"Skriv ett meddelande för taggen:\n" +" %s\n" "Rader som inleds med \"%c\" ignoreras.\n" -#: builtin/tag.c:285 +#: builtin/tag.c:347 #, c-format msgid "" "\n" -"Write a tag message\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" -"Skriv ett taggmeddelande\n" +"Skriv ett meddelande för taggen:\n" +" %s\n" "Rader som inleds med \"%c\" kommer behÃ¥llas; du kan själv ta bort dem om\n" "du vill.\n" -#: builtin/tag.c:324 +#: builtin/tag.c:371 +#, c-format +msgid "unsupported sort specification '%s'" +msgstr "sorteringsangivelsen \"%s\" stöds ej" + +#: builtin/tag.c:373 +#, c-format +msgid "unsupported sort specification '%s' in variable '%s'" +msgstr "sorteringsangivelsen \"%s\" i variabeln \"%s\" stöds ej" + +#: builtin/tag.c:428 msgid "unable to sign the tag" msgstr "kunde inte signera taggen" -#: builtin/tag.c:326 +#: builtin/tag.c:430 msgid "unable to write tag file" msgstr "kunde inte skriva tagg-filen" -#: builtin/tag.c:351 +#: builtin/tag.c:455 msgid "bad object type." msgstr "felaktig objekttyp" -#: builtin/tag.c:364 +#: builtin/tag.c:468 msgid "tag header too big." msgstr "tagghuvud för stort." -#: builtin/tag.c:400 +#: builtin/tag.c:504 msgid "no tag message?" msgstr "inget taggmeddelande?" -#: builtin/tag.c:406 +#: builtin/tag.c:510 #, c-format msgid "The tag message has been left in %s\n" msgstr "Taggmeddelandet har lämnats i %s\n" -#: builtin/tag.c:455 +#: builtin/tag.c:559 msgid "switch 'points-at' requires an object" -msgstr "flaggan \"points-at\" behöver ett object" +msgstr "flaggan \"points-at\" behöver ett objekt" -#: builtin/tag.c:457 +#: builtin/tag.c:561 #, c-format msgid "malformed object name '%s'" msgstr "felformat objektnamn \"%s\"" -#: builtin/tag.c:480 -#, c-format -msgid "unsupported sort specification %s" -msgstr "sorteringsangivelsen %s stöds ej" - -#: builtin/tag.c:500 +#: builtin/tag.c:588 msgid "list tag names" msgstr "lista taggnamn" -#: builtin/tag.c:502 +#: builtin/tag.c:590 msgid "print <n> lines of each tag message" msgstr "visa <n> rader frÃ¥n varje taggmeddelande" -#: builtin/tag.c:504 +#: builtin/tag.c:592 msgid "delete tags" msgstr "ta bort taggar" -#: builtin/tag.c:505 +#: builtin/tag.c:593 msgid "verify tags" msgstr "verifiera taggar" -#: builtin/tag.c:507 +#: builtin/tag.c:595 msgid "Tag creation options" msgstr "Alternativ för att skapa taggar" -#: builtin/tag.c:509 +#: builtin/tag.c:597 msgid "annotated tag, needs a message" msgstr "annoterad tagg, behöver meddelande" -#: builtin/tag.c:511 +#: builtin/tag.c:599 msgid "tag message" msgstr "taggmeddelande" -#: builtin/tag.c:513 +#: builtin/tag.c:601 msgid "annotated and GPG-signed tag" msgstr "annoterad och GPG-signerad tagg" -#: builtin/tag.c:517 +#: builtin/tag.c:605 msgid "use another key to sign the tag" msgstr "använd annan nyckel för att signera taggen" -#: builtin/tag.c:518 +#: builtin/tag.c:606 msgid "replace the tag if exists" msgstr "ersätt taggen om den finns" -#: builtin/tag.c:519 +#: builtin/tag.c:607 msgid "show tag list in columns" msgstr "lista taggar i spalter" -#: builtin/tag.c:521 +#: builtin/tag.c:609 msgid "sort tags" msgstr "sortera taggar" -#: builtin/tag.c:525 +#: builtin/tag.c:613 msgid "Tag listing options" msgstr "Alternativ för listning av taggar" -#: builtin/tag.c:528 builtin/tag.c:534 +#: builtin/tag.c:616 builtin/tag.c:622 msgid "print only tags that contain the commit" msgstr "visa endast taggar som innehÃ¥ller incheckningen" -#: builtin/tag.c:540 +#: builtin/tag.c:628 msgid "print only tags of the object" msgstr "visa endast taggar för objektet" -#: builtin/tag.c:566 +#: builtin/tag.c:654 msgid "--column and -n are incompatible" msgstr "--column och -n är inkompatibla" -#: builtin/tag.c:578 +#: builtin/tag.c:666 msgid "--sort and -n are incompatible" msgstr "--sort och -n är inkompatibla" -#: builtin/tag.c:585 +#: builtin/tag.c:673 msgid "-n option is only allowed with -l." msgstr "Flaggan -n är endast tillÃ¥ten tillsammans med -l." -#: builtin/tag.c:587 +#: builtin/tag.c:675 msgid "--contains option is only allowed with -l." msgstr "Flaggan --contains är endast tillÃ¥ten tillsammans med -l" -#: builtin/tag.c:589 +#: builtin/tag.c:677 msgid "--points-at option is only allowed with -l." msgstr "Flaggan --points-at är endast tillÃ¥ten tillsammans med -l." -#: builtin/tag.c:597 +#: builtin/tag.c:685 msgid "only one -F or -m option is allowed." msgstr "endast en av flaggorna -F eller -m tillÃ¥ts." -#: builtin/tag.c:617 +#: builtin/tag.c:705 msgid "too many params" msgstr "för mÃ¥nga parametrar" -#: builtin/tag.c:623 +#: builtin/tag.c:711 #, c-format msgid "'%s' is not a valid tag name." msgstr "\"%s\" är inte ett giltigt taggnamn." -#: builtin/tag.c:628 +#: builtin/tag.c:716 #, c-format msgid "tag '%s' already exists" msgstr "taggen \"%s\" finns redan" -#: builtin/tag.c:646 +#: builtin/tag.c:734 #, c-format msgid "%s: cannot lock the ref" msgstr "%s: kan inte lÃ¥sa referensen" -#: builtin/tag.c:648 +#: builtin/tag.c:736 #, c-format msgid "%s: cannot update the ref" msgstr "%s: kan inte uppdatera referensen" -#: builtin/tag.c:650 +#: builtin/tag.c:738 #, c-format msgid "Updated tag '%s' (was %s)\n" msgstr "Uppdaterad tagg \"%s\" (var %s)\n" @@ -9456,118 +9589,122 @@ msgstr "Uppdaterad tagg \"%s\" (var %s)\n" msgid "Unpacking objects" msgstr "Packar upp objekt" -#: builtin/update-index.c:399 +#: builtin/update-index.c:402 msgid "git update-index [options] [--] [<file>...]" msgstr "git update-index [flaggor] [--] [<fil>...]" -#: builtin/update-index.c:748 +#: builtin/update-index.c:755 msgid "continue refresh even when index needs update" msgstr "fortsätt uppdatera även när index inte är à jour" -#: builtin/update-index.c:751 +#: builtin/update-index.c:758 msgid "refresh: ignore submodules" msgstr "refresh: ignorera undermoduler" -#: builtin/update-index.c:754 +#: builtin/update-index.c:761 msgid "do not ignore new files" msgstr "ignorera inte nya filer" -#: builtin/update-index.c:756 +#: builtin/update-index.c:763 msgid "let files replace directories and vice-versa" msgstr "lÃ¥t filer ersätta kataloger och omvänt" -#: builtin/update-index.c:758 +#: builtin/update-index.c:765 msgid "notice files missing from worktree" msgstr "lägg märke till filer som saknas i arbetskatalogen" -#: builtin/update-index.c:760 +#: builtin/update-index.c:767 msgid "refresh even if index contains unmerged entries" msgstr "uppdatera även om indexet innehÃ¥ller ej sammanslagna poster" -#: builtin/update-index.c:763 +#: builtin/update-index.c:770 msgid "refresh stat information" msgstr "uppdatera statusinformation" -#: builtin/update-index.c:767 +#: builtin/update-index.c:774 msgid "like --refresh, but ignore assume-unchanged setting" msgstr "som --refresh, men ignorera assume-unchanged-inställning" -#: builtin/update-index.c:771 +#: builtin/update-index.c:778 msgid "<mode>,<object>,<path>" msgstr "<läge>,<objekt>,<sökväg>" -#: builtin/update-index.c:772 +#: builtin/update-index.c:779 msgid "add the specified entry to the index" msgstr "lägg till angiven post i indexet" -#: builtin/update-index.c:776 +#: builtin/update-index.c:783 msgid "(+/-)x" msgstr "(+/-)x" -#: builtin/update-index.c:777 +#: builtin/update-index.c:784 msgid "override the executable bit of the listed files" msgstr "överstyr exekveringsbiten för angivna filer" -#: builtin/update-index.c:781 +#: builtin/update-index.c:788 msgid "mark files as \"not changing\"" msgstr "markera filer som \"ändras inte\"" -#: builtin/update-index.c:784 +#: builtin/update-index.c:791 msgid "clear assumed-unchanged bit" msgstr "rensa \"assume-unchanged\"-biten" -#: builtin/update-index.c:787 +#: builtin/update-index.c:794 msgid "mark files as \"index-only\"" msgstr "markera filer som \"endast index\"" -#: builtin/update-index.c:790 +#: builtin/update-index.c:797 msgid "clear skip-worktree bit" msgstr "töm \"skip-worktree\"-biten" -#: builtin/update-index.c:793 +#: builtin/update-index.c:800 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:795 +#: builtin/update-index.c:802 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:797 +#: builtin/update-index.c:804 msgid "with --stdin: input lines are terminated by null bytes" msgstr "med --stdin: indatarader termineras med null-byte" -#: builtin/update-index.c:799 +#: builtin/update-index.c:806 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:803 +#: builtin/update-index.c:810 msgid "add entries from standard input to the index" msgstr "lägg poster frÃ¥n standard in till indexet" -#: builtin/update-index.c:807 +#: builtin/update-index.c:814 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:811 +#: builtin/update-index.c:818 msgid "only update entries that differ from HEAD" msgstr "uppdatera endast poster som skiljer sig frÃ¥n HEAD" -#: builtin/update-index.c:815 +#: builtin/update-index.c:822 msgid "ignore files missing from worktree" msgstr "ignorera filer som saknas i arbetskatalogen" -#: builtin/update-index.c:818 +#: builtin/update-index.c:825 msgid "report actions to standard output" -msgstr "raportera Ã¥tgärder pÃ¥ standard ut" +msgstr "rapportera Ã¥tgärder pÃ¥ standard ut" -#: builtin/update-index.c:820 +#: builtin/update-index.c:827 msgid "(for porcelains) forget saved unresolved conflicts" msgstr "(för porslin) glöm sparade olösta konflikter" -#: builtin/update-index.c:824 +#: builtin/update-index.c:831 msgid "write index in this format" msgstr "skriv index i detta format" +#: builtin/update-index.c:833 +msgid "enable or disable split index" +msgstr "aktivera eller inaktivera delat index" + #: builtin/update-ref.c:9 msgid "git update-ref [options] -d <refname> [<oldval>]" msgstr "git update-ref [flaggor] -d <refnamn> [<gammaltvärde>]" @@ -9580,19 +9717,19 @@ msgstr "git update-ref [flaggor] <refnamn> <gammaltvärde> [<nyttvärde>]" msgid "git update-ref [options] --stdin [-z]" msgstr "git update-ref [flaggor] --stdin [-z]" -#: builtin/update-ref.c:256 +#: builtin/update-ref.c:350 msgid "delete the reference" msgstr "ta bort referensen" -#: builtin/update-ref.c:258 +#: builtin/update-ref.c:352 msgid "update <refname> not the one it points to" msgstr "uppdatera <refnamn> inte det den pekar pÃ¥" -#: builtin/update-ref.c:259 +#: builtin/update-ref.c:353 msgid "stdin has NUL-terminated arguments" msgstr "standard in har NUL-terminerade argument" -#: builtin/update-ref.c:260 +#: builtin/update-ref.c:354 msgid "read updates from stdin" msgstr "läs uppdateringar frÃ¥n standard in" @@ -9604,15 +9741,23 @@ msgstr "git update-server-info [--force]" msgid "update the info files from scratch" msgstr "uppdatera informationsfilerna frÃ¥n grunden" -#: builtin/verify-pack.c:56 +#: builtin/verify-commit.c:17 +msgid "git verify-commit [-v|--verbose] <commit>..." +msgstr "git verify-commit [-v|--verbose] <incheckning>..." + +#: builtin/verify-commit.c:75 +msgid "print commit contents" +msgstr "visa innehÃ¥ll för incheckning" + +#: builtin/verify-pack.c:55 msgid "git verify-pack [-v|--verbose] [-s|--stat-only] <pack>..." msgstr "git verify-pack [-v|--verbose] [-s|--stat-only] <paket>..." -#: builtin/verify-pack.c:66 +#: builtin/verify-pack.c:65 msgid "verbose" msgstr "pratsam" -#: builtin/verify-pack.c:68 +#: builtin/verify-pack.c:67 msgid "show statistics only" msgstr "visa endast statistik" @@ -9806,7 +9951,7 @@ msgstr "" #: git-am.sh:181 msgid "Failed to merge in the changes." -msgstr "Misslyckads slÃ¥ ihop ändringarna." +msgstr "Misslyckades slÃ¥ ihop ändringarna." #: git-am.sh:276 msgid "Only one StGIT patch series can be applied at once" @@ -10102,11 +10247,11 @@ msgstr "" msgid "Pull is not possible because you have unmerged files." msgstr "Du kan inte göra en \"pull\" dÃ¥ du har ändringar som inte checkats in." -#: git-pull.sh:247 +#: git-pull.sh:245 msgid "updating an unborn branch with changes added to the index" msgstr "uppdaterar en ofödd gren med ändringar som lagts till i indexet" -#: git-pull.sh:271 +#: git-pull.sh:269 #, sh-format msgid "" "Warning: fetch updated the current branch head.\n" @@ -10117,11 +10262,11 @@ msgstr "" "Varning: snabbspolar din arbetskatalog frÃ¥n\n" "Varning: incheckningen $orig_head." -#: git-pull.sh:296 +#: git-pull.sh:294 msgid "Cannot merge multiple branches into empty head" msgstr "Kan inte slÃ¥ ihop flera grenar i ett tomt huvud." -#: git-pull.sh:300 +#: git-pull.sh:298 msgid "Cannot rebase onto multiple branches" msgstr "Kan inte utföra en \"rebase\" ovanpÃ¥ flera grenar" @@ -10136,16 +10281,16 @@ msgstr "" "Om du vill hoppa över patchen kör du istället \"git rebase --skip\".\n" "För att Ã¥terställa originalgrenen och avbryta kör du \"git rebase --abort\"." -#: git-rebase.sh:164 +#: git-rebase.sh:165 msgid "Applied autostash." msgstr "Tillämpade autostash." -#: git-rebase.sh:167 +#: git-rebase.sh:168 #, sh-format msgid "Cannot store $stash_sha1" msgstr "Kan inte spara $stash_sha1" -#: git-rebase.sh:168 +#: git-rebase.sh:169 msgid "" "Applying autostash resulted in conflicts.\n" "Your changes are safe in the stash.\n" @@ -10155,31 +10300,31 @@ msgstr "" "Dina ändringar är säkra i stashen.\n" "Du kan när som helst använda \"git stash pop\" eller \"git stash drop\".\n" -#: git-rebase.sh:207 +#: git-rebase.sh:208 msgid "The pre-rebase hook refused to rebase." msgstr "Kroken pre-rebase vägrade ombaseringen." -#: git-rebase.sh:212 +#: git-rebase.sh:213 msgid "It looks like git-am is in progress. Cannot rebase." msgstr "Det verkar som en git-am körs. Kan inte ombasera." -#: git-rebase.sh:350 +#: git-rebase.sh:351 msgid "The --exec option must be used with the --interactive option" msgstr "Flaggan --exec mÃ¥ste användas tillsammans med flaggan --interactive" -#: git-rebase.sh:355 +#: git-rebase.sh:356 msgid "No rebase in progress?" msgstr "Ingen ombasering pÃ¥gÃ¥r?" -#: git-rebase.sh:366 +#: git-rebase.sh:367 msgid "The --edit-todo action can only be used during interactive rebase." msgstr "Ã…tgärden --edit-todo kan endast användas under interaktiv ombasering." -#: git-rebase.sh:373 +#: git-rebase.sh:374 msgid "Cannot read HEAD" msgstr "Kan inte läsa HEAD" -#: git-rebase.sh:376 +#: git-rebase.sh:377 msgid "" "You must edit all merge conflicts and then\n" "mark them as resolved using git add" @@ -10187,12 +10332,12 @@ msgstr "" "Du mÃ¥ste redigera alla sammanslagningskonflikter och\n" "därefter markera dem som lösta med git add" -#: git-rebase.sh:394 +#: git-rebase.sh:395 #, sh-format msgid "Could not move back to $head_name" msgstr "Kunde inte flytta tillbaka till $head_name" -#: git-rebase.sh:413 +#: git-rebase.sh:414 #, sh-format msgid "" "It seems that there is already a $state_dir_base directory, and\n" @@ -10213,65 +10358,65 @@ msgstr "" "och kör programmet igen. Jag avslutar ifall du fortfarande har\n" "nÃ¥got av värde där." -#: git-rebase.sh:464 +#: git-rebase.sh:465 #, sh-format msgid "invalid upstream $upstream_name" msgstr "ogiltig uppström $upstream_name" -#: git-rebase.sh:488 +#: git-rebase.sh:489 #, sh-format msgid "$onto_name: there are more than one merge bases" msgstr "$onto_name: mer än en sammanslagningsbas finns" -#: git-rebase.sh:491 git-rebase.sh:495 +#: git-rebase.sh:492 git-rebase.sh:496 #, sh-format msgid "$onto_name: there is no merge base" msgstr "$onto_name: ingen sammanslagningsbas finns" -#: git-rebase.sh:500 +#: git-rebase.sh:501 #, sh-format msgid "Does not point to a valid commit: $onto_name" msgstr "Peka pÃ¥ en giltig incheckning: $onto_name" -#: git-rebase.sh:523 +#: git-rebase.sh:524 #, sh-format msgid "fatal: no such branch: $branch_name" msgstr "ödesdigert: ingen sÃ¥dan gren: $branch_name" -#: git-rebase.sh:556 +#: git-rebase.sh:557 msgid "Cannot autostash" msgstr "Kan inte utföra \"autostash\"" -#: git-rebase.sh:561 +#: git-rebase.sh:562 #, sh-format msgid "Created autostash: $stash_abbrev" msgstr "Skapade autostash: $stash_abbrev" -#: git-rebase.sh:565 +#: git-rebase.sh:566 msgid "Please commit or stash them." msgstr "Checka in eller använd \"stash\" pÃ¥ dem." -#: git-rebase.sh:585 +#: git-rebase.sh:586 #, sh-format msgid "Current branch $branch_name is up to date." msgstr "Aktuell gren $branch_name är à jour." -#: git-rebase.sh:589 +#: git-rebase.sh:590 #, sh-format msgid "Current branch $branch_name is up to date, rebase forced." msgstr "Aktuell gren $branch_name är à jour, ombasering framtvingad." -#: git-rebase.sh:600 +#: git-rebase.sh:601 #, sh-format msgid "Changes from $mb to $onto:" msgstr "Ändringar frÃ¥n $mb till $onto:" -#: git-rebase.sh:609 +#: git-rebase.sh:610 msgid "First, rewinding head to replay your work on top of it..." msgstr "" "Först, spolar tillbaka huvudet för att spela av ditt arbete ovanpÃ¥ det..." -#: git-rebase.sh:619 +#: git-rebase.sh:620 #, sh-format msgid "Fast-forwarded $branch_name to $onto_name." msgstr "Snabbspolade $branch_name till $onto_name." @@ -10288,23 +10433,23 @@ msgstr "Du har inte den första incheckningen ännu" msgid "Cannot save the current index state" msgstr "Kan inte spara aktuellt tillstÃ¥nd för indexet" -#: git-stash.sh:123 git-stash.sh:136 +#: git-stash.sh:124 git-stash.sh:137 msgid "Cannot save the current worktree state" msgstr "Kan inte spara aktuellt tillstÃ¥nd för arbetskatalogen" -#: git-stash.sh:140 +#: git-stash.sh:141 msgid "No changes selected" msgstr "Inga ändringar valda" -#: git-stash.sh:143 +#: git-stash.sh:144 msgid "Cannot remove temporary index (can't happen)" msgstr "Kan inte ta bort temporärt index (kan inte inträffa)" -#: git-stash.sh:156 +#: git-stash.sh:157 msgid "Cannot record working tree state" msgstr "Kan inte registrera tillstÃ¥nd för arbetskatalog" -#: git-stash.sh:190 +#: git-stash.sh:191 #, sh-format msgid "Cannot update $ref_stash with $w_commit" msgstr "Kan inte uppdatera $ref_stash med $w_commit" @@ -10319,7 +10464,7 @@ msgstr "Kan inte uppdatera $ref_stash med $w_commit" #. $ 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:237 +#: git-stash.sh:238 #, sh-format msgid "" "error: unknown option for 'stash save': $option\n" @@ -10328,85 +10473,85 @@ msgstr "" "fel: felaktig flagga för \"stash save\": $option\n" " För att ange ett meddelande, använd git stash save -- \"$option\"" -#: git-stash.sh:258 +#: git-stash.sh:259 msgid "No local changes to save" msgstr "Inga lokala ändringar att spara" -#: git-stash.sh:262 +#: git-stash.sh:263 msgid "Cannot initialize stash" msgstr "Kan inte initiera \"stash\"" -#: git-stash.sh:266 +#: git-stash.sh:267 msgid "Cannot save the current status" msgstr "Kan inte spara aktuell status" -#: git-stash.sh:284 +#: git-stash.sh:285 msgid "Cannot remove worktree changes" msgstr "Kan inte ta bort ändringar i arbetskatalogen" -#: git-stash.sh:383 +#: git-stash.sh:384 msgid "No stash found." msgstr "Ingen \"stash\" hittades." -#: git-stash.sh:390 +#: git-stash.sh:391 #, sh-format msgid "Too many revisions specified: $REV" msgstr "För mÃ¥nga revisioner angivna: $REV" -#: git-stash.sh:396 +#: git-stash.sh:397 #, sh-format msgid "$reference is not valid reference" msgstr "$reference är inte en giltig referens." -#: git-stash.sh:424 +#: git-stash.sh:425 #, sh-format msgid "'$args' is not a stash-like commit" msgstr "\"$args\" är inte en \"stash\"-liknande incheckning" -#: git-stash.sh:435 +#: git-stash.sh:436 #, sh-format msgid "'$args' is not a stash reference" msgstr "\"$args\" är inte en \"stash\"-referens" -#: git-stash.sh:443 +#: git-stash.sh:444 msgid "unable to refresh index" msgstr "kan inte uppdatera indexet" -#: git-stash.sh:447 +#: git-stash.sh:448 msgid "Cannot apply a stash in the middle of a merge" msgstr "Kan inte tillämpa en \"stash\" mitt i en sammanslagning" -#: git-stash.sh:455 +#: git-stash.sh:456 msgid "Conflicts in index. Try without --index." msgstr "Konflikter i indexet. Testa utan --index." -#: git-stash.sh:457 +#: git-stash.sh:458 msgid "Could not save index tree" msgstr "Kunde inte spara indexträd" -#: git-stash.sh:491 +#: git-stash.sh:492 msgid "Cannot unstage modified files" msgstr "Kan inte ta bort ändrade filer ur kön" -#: git-stash.sh:506 +#: git-stash.sh:507 msgid "Index was not unstashed." msgstr "Indexet har inte tagits ur kön." -#: git-stash.sh:529 +#: git-stash.sh:530 #, sh-format msgid "Dropped ${REV} ($s)" msgstr "Kastade ${REV} ($s)" -#: git-stash.sh:530 +#: git-stash.sh:531 #, sh-format msgid "${REV}: Could not drop stash entry" msgstr "${REV}: Kunde inte kasta \"stash\"-post" -#: git-stash.sh:537 +#: git-stash.sh:538 msgid "No branch name specified" msgstr "Inget grennamn angavs" -#: git-stash.sh:609 +#: git-stash.sh:610 msgid "(To restore them type \"git stash apply\")" msgstr "(För att Ã¥terställa dem, skriv \"git stash apply\")" @@ -10426,26 +10571,26 @@ msgstr "" msgid "Clone of '$url' into submodule path '$sm_path' failed" msgstr "Misslyckades klona \"$url\" till undermodulsökvägen \"$sm_path\"" -#: git-submodule.sh:299 +#: git-submodule.sh:296 #, sh-format msgid "Gitdir '$a' is part of the submodule path '$b' or vice versa" msgstr "Gitkatalog \"$a\" ingÃ¥r i undermodulsökvägen \"$b\" eller omvänt" -#: git-submodule.sh:409 +#: git-submodule.sh:406 msgid "Relative path can only be used from the toplevel of the working tree" -msgstr "Relativ sökväg kan enfast användas frÃ¥n arbetskatalogens toppnivÃ¥" +msgstr "Relativ sökväg kan endast användas frÃ¥n arbetskatalogens toppnivÃ¥" -#: git-submodule.sh:419 +#: git-submodule.sh:416 #, sh-format msgid "repo URL: '$repo' must be absolute or begin with ./|../" msgstr "arkiv-URL: \"$repo\" mÃ¥ste vara absolut eller börja med ./|../" -#: git-submodule.sh:436 +#: git-submodule.sh:433 #, sh-format msgid "'$sm_path' already exists in the index" msgstr "\"$sm_path\" finns redan i indexet" -#: git-submodule.sh:440 +#: git-submodule.sh:437 #, sh-format msgid "" "The following path is ignored by one of your .gitignore files:\n" @@ -10456,22 +10601,22 @@ msgstr "" "$sm_path\n" "Använd -f om du verkligen vill lägga till den" -#: git-submodule.sh:458 +#: git-submodule.sh:455 #, sh-format msgid "Adding existing repo at '$sm_path' to the index" msgstr "Lägger till befintligt arkiv i \"$sm_path\" i indexet" -#: git-submodule.sh:460 +#: git-submodule.sh:457 #, sh-format msgid "'$sm_path' already exists and is not a valid git repo" msgstr "\"$sm_path\" finns redan och är inte ett giltigt git-arkiv" -#: git-submodule.sh:468 +#: git-submodule.sh:465 #, sh-format msgid "A git directory for '$sm_name' is found locally with remote(s):" msgstr "En git-katalog för \"$sm_name\" hittades lokalt med fjärr(ar):" -#: git-submodule.sh:470 +#: git-submodule.sh:467 #, sh-format msgid "" "If you want to reuse this local git directory instead of cloning again from" @@ -10479,14 +10624,14 @@ msgstr "" "För att Ã¥teranvända den lokala git-katalogen istället för att pÃ¥ nytt klona " "frÃ¥n" -#: git-submodule.sh:472 +#: git-submodule.sh:469 #, sh-format msgid "" "use the '--force' option. If the local git directory is not the correct repo" msgstr "" "använd flaggan \"--force\". Om den lokala git-katalogen inte är riktigt arkiv" -#: git-submodule.sh:473 +#: git-submodule.sh:470 #, sh-format msgid "" "or you are unsure what this means choose another name with the '--name' " @@ -10495,81 +10640,81 @@ msgstr "" "eller om du är osäker pÃ¥ vad det innebär, välj nytt namn med flaggan \"--name" "\"." -#: git-submodule.sh:475 +#: git-submodule.sh:472 #, sh-format msgid "Reactivating local git directory for submodule '$sm_name'." msgstr "Aktiverar lokal git-katalog för undermodulen \"$sm_name\" pÃ¥ nytt." -#: git-submodule.sh:487 +#: git-submodule.sh:484 #, sh-format msgid "Unable to checkout submodule '$sm_path'" msgstr "Kan inte checka ut undermodulen \"$sm_path\"" -#: git-submodule.sh:492 +#: git-submodule.sh:489 #, sh-format msgid "Failed to add submodule '$sm_path'" msgstr "Misslyckades lägga till undermodulen \"$sm_path\"" -#: git-submodule.sh:501 +#: git-submodule.sh:498 #, sh-format msgid "Failed to register submodule '$sm_path'" msgstr "Misslyckades registrera undermodulen \"$sm_path\"" -#: git-submodule.sh:545 +#: git-submodule.sh:542 #, sh-format msgid "Entering '$prefix$displaypath'" msgstr "GÃ¥r in i \"$prefix$displaypath\"" -#: git-submodule.sh:565 +#: git-submodule.sh:562 #, sh-format msgid "Stopping at '$prefix$displaypath'; script returned non-zero status." msgstr "" "Stoppar pÃ¥ \"$prefix$displaypath\"; skriptet returnerade en status skild " "frÃ¥n noll." -#: git-submodule.sh:611 +#: git-submodule.sh:608 #, sh-format msgid "No url found for submodule path '$displaypath' in .gitmodules" msgstr "" "Hittade ingen url för undermodulsökvägen \"$displaypath\" i .gitmodules" -#: git-submodule.sh:620 +#: git-submodule.sh:617 #, sh-format msgid "Failed to register url for submodule path '$displaypath'" msgstr "Misslyckades registrera url för undermodulsökväg \"$displaypath\"" -#: git-submodule.sh:622 +#: git-submodule.sh:619 #, sh-format msgid "Submodule '$name' ($url) registered for path '$displaypath'" msgstr "" "Undermodulen \"$name\" ($url) registrerad för sökvägen \"$displaypath\"" -#: git-submodule.sh:639 +#: git-submodule.sh:636 #, sh-format msgid "Failed to register update mode for submodule path '$displaypath'" msgstr "" "Misslyckades registrera uppdateringsläge för undermodulsökväg \"$displaypath" "\"" -#: git-submodule.sh:677 +#: git-submodule.sh:674 #, sh-format msgid "Use '.' if you really want to deinitialize all submodules" msgstr "Använd \".\" om du verkligen vill avinitiera alla undermoduler" -#: git-submodule.sh:694 +#: git-submodule.sh:691 #, sh-format msgid "Submodule work tree '$displaypath' contains a .git directory" msgstr "" "Undermodulens arbetskatalog \"$displaypath\" innehÃ¥ller katalogen \".git\"" -#: git-submodule.sh:695 +#: git-submodule.sh:692 #, sh-format msgid "" "(use 'rm -rf' if you really want to remove it including all of its history)" msgstr "" "(använd \"rm -rf\" om du verkligen vill ta bort den och all dess historik)" -#: git-submodule.sh:701 +#: git-submodule.sh:698 #, sh-format msgid "" "Submodule work tree '$displaypath' contains local modifications; use '-f' to " @@ -10578,28 +10723,28 @@ msgstr "" "Undermodulens arbetskatalog \"$displaypath\" har lokala ändringar; \"-f\" " "kastar bort dem" -#: git-submodule.sh:704 +#: git-submodule.sh:701 #, sh-format msgid "Cleared directory '$displaypath'" msgstr "Rensade katalogen \"$displaypath\"" -#: git-submodule.sh:705 +#: git-submodule.sh:702 #, sh-format msgid "Could not remove submodule work tree '$displaypath'" msgstr "Kunde inte ta bort undermodulens arbetskatalog \"$displaypath\"" -#: git-submodule.sh:708 +#: git-submodule.sh:705 #, sh-format msgid "Could not create empty submodule directory '$displaypath'" msgstr "Kunde inte skapa tom undermodulskatalog \"$displaypath\"" -#: git-submodule.sh:717 +#: git-submodule.sh:714 #, sh-format msgid "Submodule '$name' ($url) unregistered for path '$displaypath'" msgstr "" "Undermodulen \"$name\" ($url) avregistrerad för sökvägen \"$displaypath\"" -#: git-submodule.sh:833 +#: git-submodule.sh:830 #, sh-format msgid "" "Submodule path '$displaypath' not initialized\n" @@ -10608,108 +10753,114 @@ msgstr "" "Undermodulen \"$displaypath\" har inte initierats\n" "Kanske du vill köra \"update --init\"?" -#: git-submodule.sh:846 +#: git-submodule.sh:843 #, 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:855 +#: git-submodule.sh:852 #, 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:879 +#: git-submodule.sh:876 #, sh-format msgid "Unable to fetch in submodule path '$displaypath'" msgstr "Kan inte hämta i undermodulsökväg \"$displaypath\"" -#: git-submodule.sh:893 +#: git-submodule.sh:890 #, 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:894 +#: git-submodule.sh:891 #, sh-format msgid "Submodule path '$displaypath': checked out '$sha1'" msgstr "Undermodulsökvägen \"$displaypath\": checkade ut \"$sha1\"" -#: git-submodule.sh:898 +#: git-submodule.sh:895 #, sh-format msgid "Unable to rebase '$sha1' in submodule path '$displaypath'" msgstr "Kan inte ombasera \"$sha1\" i undermodulsökvägen \"$displaypath\"" -#: git-submodule.sh:899 +#: git-submodule.sh:896 #, sh-format msgid "Submodule path '$displaypath': rebased into '$sha1'" msgstr "Undermodulsökvägen \"$displaypath\": ombaserade in i \"$sha1\"" -#: git-submodule.sh:904 +#: git-submodule.sh:901 #, 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:905 +#: git-submodule.sh:902 #, sh-format msgid "Submodule path '$displaypath': merged in '$sha1'" msgstr "Undermodulsökvägen \"$displaypath\": sammanslagen i \"$sha1\"" -#: git-submodule.sh:910 +#: git-submodule.sh:907 #, 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:911 +#: git-submodule.sh:908 #, sh-format msgid "Submodule path '$prefix$sm_path': '$command $sha1'" msgstr "Undermodulsökvägen \"$prefix$sm_path\": \"$command $sha1\"" -#: git-submodule.sh:941 +#: git-submodule.sh:938 #, sh-format msgid "Failed to recurse into submodule path '$displaypath'" msgstr "Misslyckades rekursera in i undermodulsökvägen \"$displaypath\"" -#: git-submodule.sh:1049 +#: git-submodule.sh:1046 msgid "The --cached option cannot be used with the --files option" msgstr "Flaggan --cached kan inte användas med flaggan --files" -#: git-submodule.sh:1097 +#: git-submodule.sh:1098 #, sh-format msgid "unexpected mode $mod_dst" msgstr "oväntat läge $mod_dst" -#: git-submodule.sh:1117 +#: git-submodule.sh:1118 #, 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:1120 +#: git-submodule.sh:1121 #, 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:1123 +#: git-submodule.sh:1124 #, 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:1148 +#: git-submodule.sh:1149 msgid "blob" msgstr "blob" -#: git-submodule.sh:1262 +#: git-submodule.sh:1267 #, sh-format msgid "Failed to recurse into submodule path '$sm_path'" msgstr "Misslyckades rekursera in i undermodulsökvägen \"$sm_path\"" -#: git-submodule.sh:1326 +#: git-submodule.sh:1331 #, sh-format msgid "Synchronizing submodule url for '$displaypath'" msgstr "Synkroniserar undermodul-url för \"$displaypath\"" +#~ msgid "commit has empty message" +#~ msgstr "incheckningen har ett tomt meddelande" + +#~ msgid "Failed to chdir: %s" +#~ msgstr "Kunde inte byta katalog (chdir): %s" + #~ msgid "Tracking not set up: name too long: %s" #~ msgstr "SpÃ¥rning har inte ställts in: namnet för lÃ¥ngt: %s" @@ -6,10 +6,10 @@ # msgid "" msgstr "" -"Project-Id-Version: git v2.0.0-rc0\n" +"Project-Id-Version: git v2.1.0-rc0\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2014-04-19 12:50+0800\n" -"PO-Revision-Date: 2014-04-20 15:20+0700\n" +"POT-Creation-Date: 2014-08-04 14:48+0800\n" +"PO-Revision-Date: 2014-08-05 07:32+0700\n" "Last-Translator: Trần Ngá»c Quân <vnwildman@gmail.com>\n" "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n" "Language: vi\n" @@ -27,12 +27,11 @@ msgstr "" msgid "hint: %.*s\n" msgstr "gợi ý: %.*s\n" -#: advice.c:85 +#: advice.c:88 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'." +"Fix them up in the work tree, and then use 'git add/rm <file>'\n" +"as appropriate to mark resolution and make a commit, or use\n" +"'git commit -a'." msgstr "" "Sá»a chúng trong cây là m việc,\n" "và sau đó dùng lệnh \"git add/rm <táºp-tin>\" dà nh riêng\n" @@ -58,7 +57,7 @@ msgstr "" msgid "git archive --remote <repo> [--exec <cmd>] --list" msgstr "git archive --remote <kho> [--exec <lệnh>] --list" -#: archive.c:243 builtin/add.c:136 builtin/add.c:428 builtin/rm.c:328 +#: archive.c:243 builtin/add.c:136 builtin/add.c:427 builtin/rm.c:328 #, c-format msgid "pathspec '%s' did not match any files" msgstr "đặc tả Ä‘Æ°á»ng dẫn “%s†không khá»›p vá»›i bất kỳ táºp tin nà o" @@ -71,7 +70,7 @@ msgstr "định_dạng" msgid "archive format" msgstr "định dạng lÆ°u trữ" -#: archive.c:329 builtin/log.c:1193 +#: archive.c:329 builtin/log.c:1201 msgid "prefix" msgstr "tiá»n_tố" @@ -79,13 +78,13 @@ 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:331 builtin/archive.c:88 builtin/blame.c:2258 -#: builtin/blame.c:2259 builtin/config.c:57 builtin/fast-export.c:680 -#: builtin/fast-export.c:682 builtin/grep.c:714 builtin/hash-object.c:77 +#: archive.c:331 builtin/archive.c:88 builtin/blame.c:2517 +#: builtin/blame.c:2518 builtin/config.c:57 builtin/fast-export.c:709 +#: builtin/fast-export.c:711 builtin/grep.c:712 builtin/hash-object.c:77 #: builtin/ls-files.c:489 builtin/ls-files.c:492 builtin/notes.c:412 #: builtin/notes.c:569 builtin/read-tree.c:108 parse-options.h:151 msgid "file" -msgstr "táºp-tin" +msgstr "táºp_tin" #: archive.c:332 builtin/archive.c:89 msgid "write the archive to this file" @@ -269,7 +268,7 @@ msgstr "“%s†không giống nhÆ° táºp tin v2 bundle (định dạng dump cá msgid "unrecognized header: %s%s (%d)" msgstr "phần đầu không được thừa nháºn: %s%s (%d)" -#: bundle.c:86 builtin/commit.c:706 +#: bundle.c:86 builtin/commit.c:755 #, c-format msgid "could not open '%s'" msgstr "không thể mở “%sâ€" @@ -278,8 +277,8 @@ 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:162 sequencer.c:669 sequencer.c:1123 builtin/log.c:332 -#: builtin/log.c:821 builtin/log.c:1418 builtin/log.c:1644 builtin/merge.c:357 +#: bundle.c:162 sequencer.c:630 sequencer.c:1085 builtin/log.c:330 +#: builtin/log.c:821 builtin/log.c:1428 builtin/log.c:1665 builtin/merge.c:357 #: builtin/shortlog.c:158 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" @@ -302,47 +301,47 @@ msgid_plural "The bundle requires these %d refs:" msgstr[0] "Lệnh bundle yêu cầu tham chiếu nà y:" msgstr[1] "Lệnh bundle yêu cầu %d tham chiếu (refs) nà y:" -#: bundle.c:293 +#: bundle.c:289 msgid "rev-list died" msgstr "rev-list đã chết" -#: bundle.c:299 builtin/log.c:1329 builtin/shortlog.c:261 +#: bundle.c:295 builtin/log.c:1339 builtin/shortlog.c:261 #, c-format msgid "unrecognized argument: %s" msgstr "đối số không được thừa nháºn: %s" -#: bundle.c:334 +#: bundle.c:330 #, c-format msgid "ref '%s' is excluded by the rev-list options" msgstr "th.chiếu “%s†bị loại trừ bởi các tùy chá»n rev-list" -#: bundle.c:379 +#: bundle.c:375 msgid "Refusing to create empty bundle." msgstr "Từ chối tạo má»™t bundle trống rá»—ng." -#: bundle.c:395 +#: bundle.c:390 msgid "Could not spawn pack-objects" msgstr "Không thể sản sinh đối tượng gói" -#: bundle.c:413 +#: bundle.c:408 msgid "pack-objects died" msgstr "pack-objects đã chết" -#: bundle.c:416 +#: bundle.c:411 #, c-format msgid "cannot create '%s'" msgstr "không thể tạo “%sâ€" -#: bundle.c:438 +#: bundle.c:433 msgid "index-pack died" msgstr "index-pack đã chết" -#: commit.c:54 +#: commit.c:40 #, c-format msgid "could not parse %s" msgstr "không thể phân tÃch cú pháp %s" -#: commit.c:56 +#: commit.c:42 #, c-format msgid "%s %s is not a commit!" msgstr "%s %s không phải là má»™t lần commit!" @@ -438,26 +437,26 @@ msgstr[1] "%lu năm trÆ°á»›c" msgid "failed to read orderfile '%s'" msgstr "gặp lá»—i khi Ä‘á»c táºp-tin-thứ-tá»± “%sâ€" -#: diffcore-rename.c:517 +#: diffcore-rename.c:514 msgid "Performing inexact rename detection" msgstr "Äang thá»±c hiện dò tìm đổi tên không chÃnh xác" -#: diff.c:113 +#: diff.c:114 #, c-format msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr " Gặp lá»—i khi phân tÃch dirstat cắt bá» phần trăm “%sâ€\n" -#: diff.c:118 +#: diff.c:119 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr " Không hiểu đối số dirstat “%sâ€\n" -#: diff.c:213 +#: diff.c:214 #, c-format msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "Không hiểu giá trị cho biến cấu hình “diff.submoduleâ€: “%sâ€" -#: diff.c:263 +#: diff.c:267 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" @@ -466,7 +465,16 @@ msgstr "" "Tìm thấy các lá»—i trong biến cấu hình “diff.dirstatâ€:\n" "%s" -#: diff.c:3495 +#: diff.c:2934 +#, 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:3329 +msgid "--follow requires exactly one pathspec" +msgstr "--follow cần chÃnh xác má»™t đặc tả Ä‘Æ°á»ng dẫn" + +#: diff.c:3492 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -475,58 +483,58 @@ msgstr "" "Gặp lá»—i khi phân tÃch đối số tùy chá»n --dirstat/-X:\n" "%s" -#: diff.c:3509 +#: diff.c:3506 #, 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â€" -#: gpg-interface.c:59 gpg-interface.c:131 +#: gpg-interface.c:73 gpg-interface.c:145 msgid "could not run gpg." msgstr "không thể chạy gpg." -#: gpg-interface.c:71 +#: gpg-interface.c:85 msgid "gpg did not accept the data" msgstr "gpg đã không chấp nháºn dữ liệu" -#: gpg-interface.c:82 +#: gpg-interface.c:96 msgid "gpg failed to sign the data" msgstr "gpg gặp lá»—i khi ký dữ liệu" -#: gpg-interface.c:115 +#: gpg-interface.c:129 #, c-format msgid "could not create temporary file '%s': %s" msgstr "không thể tạo táºp tin tạm thá»i “%sâ€: %s" -#: gpg-interface.c:118 +#: gpg-interface.c:132 #, c-format msgid "failed writing detached signature to '%s': %s" msgstr "gặp lá»—i khi ghi chữ ký Ä‘Ãnh kèm và o “%sâ€: %s" -#: grep.c:1698 +#: grep.c:1703 #, c-format msgid "'%s': unable to read %s" msgstr "“%sâ€: không thể Ä‘á»c %s" -#: grep.c:1715 +#: grep.c:1720 #, c-format msgid "'%s': %s" msgstr "“%sâ€: %s" -#: grep.c:1726 +#: grep.c:1731 #, c-format msgid "'%s': short read %s" msgstr "“%sâ€: Ä‘á»c ngắn %s" -#: help.c:209 +#: help.c:207 #, c-format msgid "available git commands in '%s'" msgstr "các lệnh git sẵn có trong thÆ° mục “%sâ€:" -#: help.c:216 +#: help.c:214 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:232 +#: help.c:230 msgid "The most commonly used git commands are:" msgstr "Những lệnh git hay được dùng nhất là :" @@ -562,7 +570,7 @@ msgstr "trong %0.1f giây má»™t cách tá»± Ä‘á»™ng..." 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:384 help.c:443 +#: help.c:384 help.c:444 msgid "" "\n" "Did you mean this?" @@ -576,16 +584,16 @@ msgstr[1] "" "\n" "Có phải ý bạn là má»™t trong số những cái nà y không?" -#: help.c:439 +#: help.c:440 #, c-format msgid "%s: %s - %s" msgstr "%s: %s - %s" -#: merge.c:56 +#: merge.c:40 msgid "failed to read the cache" msgstr "gặp lá»—i khi Ä‘á»c bá»™ nhá»› đệm" -#: merge.c:110 builtin/checkout.c:357 builtin/checkout.c:558 +#: merge.c:93 builtin/checkout.c:356 builtin/checkout.c:556 #: builtin/clone.c:661 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" @@ -595,7 +603,7 @@ msgstr "không thể ghi táºp tin lÆ°u bảng mục lục má»›i" msgid "(bad commit)\n" msgstr "(commit sai)\n" -#: merge-recursive.c:208 +#: merge-recursive.c:210 #, c-format msgid "addinfo_cache failed for path '%s'" msgstr "addinfo_cache gặp lá»—i đối vá»›i Ä‘Æ°á»ng dẫn “%sâ€" @@ -604,64 +612,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:675 +#: merge-recursive.c:692 #, 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:686 +#: merge-recursive.c:703 #, 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:700 merge-recursive.c:721 +#: merge-recursive.c:717 merge-recursive.c:738 msgid ": perhaps a D/F conflict?" msgstr ": có lẽ là má»™t xung Ä‘á»™t D/F?" -#: merge-recursive.c:711 +#: merge-recursive.c:728 #, 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:751 +#: merge-recursive.c:768 #, c-format msgid "cannot read object %s '%s'" msgstr "không thể Ä‘á»c đối tượng %s “%sâ€" -#: merge-recursive.c:753 +#: merge-recursive.c:770 #, c-format msgid "blob expected for %s '%s'" msgstr "đối tượng blob được mong đợi cho %s “%sâ€" -#: merge-recursive.c:776 builtin/clone.c:317 +#: merge-recursive.c:793 builtin/clone.c:317 #, c-format msgid "failed to open '%s'" msgstr "gặp lá»—i khi mở “%sâ€" -#: merge-recursive.c:784 +#: merge-recursive.c:801 #, 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:787 +#: merge-recursive.c:804 #, 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:925 +#: merge-recursive.c:942 msgid "Failed to execute internal merge" msgstr "Gặp lá»—i khi thá»±c hiện trá»™n ná»™i bá»™" -#: merge-recursive.c:929 +#: merge-recursive.c:946 #, 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:945 +#: merge-recursive.c:962 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:1024 merge-recursive.c:1038 +#: merge-recursive.c:1037 merge-recursive.c:1051 #, c-format msgid "" "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left " @@ -670,7 +678,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:1030 merge-recursive.c:1043 +#: merge-recursive.c:1043 merge-recursive.c:1056 #, c-format msgid "" "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left " @@ -679,20 +687,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:1084 +#: merge-recursive.c:1097 msgid "rename" msgstr "đổi tên" -#: merge-recursive.c:1084 +#: merge-recursive.c:1097 msgid "renamed" msgstr "đã đổi tên" -#: merge-recursive.c:1140 +#: merge-recursive.c:1153 #, 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:1162 +#: merge-recursive.c:1175 #, c-format msgid "" "CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s" @@ -701,199 +709,199 @@ 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:1167 +#: merge-recursive.c:1180 msgid " (left unresolved)" msgstr " (cần giải quyết)" -#: merge-recursive.c:1221 +#: merge-recursive.c:1234 #, 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:1251 +#: merge-recursive.c:1264 #, 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:1450 +#: merge-recursive.c:1463 #, 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:1460 +#: merge-recursive.c:1473 #, c-format msgid "Adding merged %s" msgstr "Thêm hòa trá»™n %s" -#: merge-recursive.c:1465 merge-recursive.c:1663 +#: merge-recursive.c:1478 merge-recursive.c:1676 #, c-format msgid "Adding as %s instead" msgstr "Thay và o đó thêm và o %s" -#: merge-recursive.c:1516 +#: merge-recursive.c:1529 #, c-format msgid "cannot read object %s" msgstr "không thể Ä‘á»c đối tượng %s" -#: merge-recursive.c:1519 +#: merge-recursive.c:1532 #, 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:1567 +#: merge-recursive.c:1580 msgid "modify" msgstr "sá»a đổi" -#: merge-recursive.c:1567 +#: merge-recursive.c:1580 msgid "modified" msgstr "đã sá»a" -#: merge-recursive.c:1577 +#: merge-recursive.c:1590 msgid "content" msgstr "ná»™i dung" -#: merge-recursive.c:1584 +#: merge-recursive.c:1597 msgid "add/add" msgstr "thêm/thêm" -#: merge-recursive.c:1618 +#: merge-recursive.c:1631 #, 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:1632 +#: merge-recursive.c:1645 #, c-format msgid "Auto-merging %s" msgstr "Tá»±-Ä‘á»™ng-hòa-trá»™n %s" -#: merge-recursive.c:1636 git-submodule.sh:1149 +#: merge-recursive.c:1649 git-submodule.sh:1150 msgid "submodule" msgstr "mô-Ä‘un-con" -#: merge-recursive.c:1637 +#: merge-recursive.c:1650 #, c-format msgid "CONFLICT (%s): Merge conflict in %s" msgstr "XUNG ÄỘT (%s): Xung Ä‘á»™t hòa trá»™n trong %s" -#: merge-recursive.c:1727 +#: merge-recursive.c:1740 #, c-format msgid "Removing %s" msgstr "Äang xóa %s" -#: merge-recursive.c:1752 +#: merge-recursive.c:1765 msgid "file/directory" msgstr "táºp-tin/thÆ°-mục" -#: merge-recursive.c:1758 +#: merge-recursive.c:1771 msgid "directory/file" msgstr "thÆ°-mục/táºp tin" -#: merge-recursive.c:1763 +#: merge-recursive.c:1776 #, 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:1773 +#: merge-recursive.c:1786 #, c-format msgid "Adding %s" msgstr "Thêm \"%s\"" -#: merge-recursive.c:1790 +#: merge-recursive.c:1803 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:1809 +#: merge-recursive.c:1822 msgid "Already up-to-date!" msgstr "Äã cáºp nháºt rồi!" -#: merge-recursive.c:1818 +#: merge-recursive.c:1831 #, c-format msgid "merging of trees %s and %s failed" msgstr "hòa trá»™n cây (tree) %s và %s gặp lá»—i" -#: merge-recursive.c:1848 +#: merge-recursive.c:1861 #, c-format msgid "Unprocessed path??? %s" msgstr "ÄÆ°á»ng dẫn chÆ°a được xá» lý??? %s" -#: merge-recursive.c:1893 +#: merge-recursive.c:1906 msgid "Merging:" msgstr "Äang trá»™n:" -#: merge-recursive.c:1906 +#: 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:" msgstr[1] "tìm thấy %u tổ tiên chung:" -#: merge-recursive.c:1943 +#: 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:2000 +#: 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:2012 builtin/merge.c:668 +#: merge-recursive.c:2024 builtin/merge.c:666 msgid "Unable to write index." msgstr "Không thể ghi bảng mục lục" -#: notes-utils.c:40 +#: notes-utils.c:41 msgid "Cannot commit uninitialized/unreferenced notes tree" msgstr "" "Không thể chuyển giao cây ghi chú chÆ°a được khởi tạo hoặc không được tham " "chiếu" -#: notes-utils.c:81 +#: notes-utils.c:83 #, c-format msgid "Bad notes.rewriteMode value: '%s'" msgstr "Giá trị notes.rewriteMode sai: “%sâ€" -#: notes-utils.c:91 +#: notes-utils.c:93 #, c-format msgid "Refusing to rewrite notes in %s (outside of refs/notes/)" msgstr "Từ chối ghi đè ghi chú trong %s (nằm ngoà i refs/notes/)" #. TRANSLATORS: The first %s is the name of the #. environment variable, the second %s is its value -#: notes-utils.c:118 +#: notes-utils.c:120 #, c-format msgid "Bad %s value: '%s'" msgstr "Giá trị %s sai: “%sâ€" -#: object.c:229 +#: object.c:234 #, c-format msgid "unable to parse object: %s" msgstr "không thể phân tÃch đối tượng: “%sâ€" -#: parse-options.c:532 +#: parse-options.c:534 msgid "..." msgstr "..." -#: parse-options.c:550 +#: parse-options.c:552 #, c-format msgid "usage: %s" msgstr "cách dùng: %s" #. TRANSLATORS: the colon here should align with the #. one in "usage: %s" translation -#: parse-options.c:554 +#: parse-options.c:556 #, c-format msgid " or: %s" msgstr " hoặc: %s" -#: parse-options.c:557 +#: parse-options.c:559 #, c-format msgid " %s" msgstr " %s" -#: parse-options.c:591 +#: parse-options.c:593 msgid "-NUM" msgstr "-Sá»" @@ -949,12 +957,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:433 +#: pathspec.c:432 #, 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:442 +#: pathspec.c:441 msgid "" "There is nothing to exclude from by :(exclude) patterns.\n" "Perhaps you forgot to add either ':/' or '.' ?" @@ -962,11 +970,11 @@ msgstr "" "Ở đây không có gì bị loại trừ bởi: các mẫu (loại trừ).\n" "Có lẽ bạn đã quên thêm hoặc là “:/†hoặc là “.â€?" -#: progress.c:224 +#: progress.c:225 msgid "done" msgstr "xong" -#: read-cache.c:1238 +#: read-cache.c:1260 #, c-format msgid "" "index.version set, but the value is invalid.\n" @@ -975,7 +983,7 @@ msgstr "" "index.version được đặt, nhÆ°ng giá trị của nó lại không hợp lệ.\n" "Dùng phiên bản %i" -#: read-cache.c:1248 +#: read-cache.c:1270 #, c-format msgid "" "GIT_INDEX_VERSION set, but the value is invalid.\n" @@ -984,52 +992,52 @@ 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" -#: remote.c:758 +#: remote.c:753 #, 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:762 +#: remote.c:757 #, c-format msgid "%s usually tracks %s, not %s" msgstr "%s thÆ°á»ng theo dõi %s, không phải %s" -#: remote.c:766 +#: remote.c:761 #, c-format msgid "%s tracks both %s and %s" msgstr "%s theo dõi cả %s và %s" -#: remote.c:774 +#: remote.c:769 msgid "Internal error" msgstr "Lá»—i ná»™i bá»™" -#: remote.c:1948 +#: remote.c:1943 #, 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:1952 +#: remote.c:1947 msgid " (use \"git branch --unset-upstream\" to fixup)\n" msgstr " (dùng \" git branch --unset-upstream\" để sá»a)\n" -#: remote.c:1955 +#: remote.c:1950 #, 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:1959 +#: remote.c:1954 #, 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 là đầu của “%s†bởi %d lần chuyển giao.\n" -msgstr[1] "Nhánh của bạn là đầu của “%s†bởi %d lần chuyển giao.\n" +msgstr[0] "Nhánh của bạn đứng trÆ°á»›c “%s†%d lần chuyển giao.\n" +msgstr[1] "Nhánh của bạn đứng trÆ°á»›c “%s†%d lần chuyển giao.\n" -#: remote.c:1965 +#: remote.c:1960 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:1968 +#: remote.c:1963 #, c-format msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n" msgid_plural "" @@ -1041,11 +1049,11 @@ msgstr[1] "" "Nhánh của bạn ở đằng sau “%s†%d lần chuyển giao, và có thể được fast-" "forward.\n" -#: remote.c:1976 +#: remote.c:1971 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:1979 +#: remote.c:1974 #, c-format msgid "" "Your branch and '%s' have diverged,\n" @@ -1058,10 +1066,11 @@ 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" msgstr[1] "" -"Your branch and “%s†have diverged,\n" -"and have %d and %d different commit each, respectively.\n" +"Nhánh của bạn và “%s†bị phân kỳ,\n" +"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:1989 +#: remote.c:1984 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 " @@ -1076,19 +1085,19 @@ msgstr "gặp lá»—i khi mở “/dev/nullâ€" msgid "dup2(%d,%d) failed" msgstr "dup2(%d,%d) gặp lá»—i" -#: sequencer.c:206 builtin/merge.c:786 builtin/merge.c:899 -#: builtin/merge.c:1009 builtin/merge.c:1019 +#: sequencer.c:171 builtin/merge.c:782 builtin/merge.c:893 +#: builtin/merge.c:1003 builtin/merge.c:1013 #, c-format msgid "Could not open '%s' for writing" msgstr "Không thể mở “%s†để ghi" -#: sequencer.c:208 builtin/merge.c:343 builtin/merge.c:789 -#: builtin/merge.c:1011 builtin/merge.c:1024 +#: sequencer.c:173 builtin/merge.c:343 builtin/merge.c:785 +#: builtin/merge.c:1005 builtin/merge.c:1018 #, c-format msgid "Could not write to '%s'" msgstr "Không thể ghi và o “%sâ€" -#: sequencer.c:229 +#: sequencer.c:194 msgid "" "after resolving the conflicts, mark the corrected paths\n" "with 'git add <paths>' or 'git rm <paths>'" @@ -1096,7 +1105,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:232 +#: sequencer.c:197 msgid "" "after resolving the conflicts, mark the corrected paths\n" "with 'git add <paths>' or 'git rm <paths>'\n" @@ -1106,67 +1115,71 @@ 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:245 sequencer.c:879 sequencer.c:962 +#: sequencer.c:210 sequencer.c:841 sequencer.c:924 #, c-format msgid "Could not write to %s" msgstr "Không thể ghi và o %s" -#: sequencer.c:248 +#: sequencer.c:213 #, c-format msgid "Error wrapping up %s" msgstr "Lá»—i bao bá»c %s" -#: sequencer.c:263 +#: sequencer.c:228 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:265 +#: sequencer.c:230 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 revert." -#: sequencer.c:268 +#: sequencer.c:233 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ý." +#: sequencer.c:250 +msgid "Failed to lock HEAD during fast_forward_to" +msgstr "Gặp lá»—i khi khóa HEAD trong quá trình fast_forward_to" + #. TRANSLATORS: %s will be "revert" or "cherry-pick" -#: sequencer.c:325 +#: sequencer.c:293 #, 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:356 +#: sequencer.c:324 msgid "Could not resolve HEAD commit\n" msgstr "Không thể phân giải commit (lần chuyển giao) HEAD\n" -#: sequencer.c:378 +#: sequencer.c:344 msgid "Unable to update cache tree\n" msgstr "Không thể cáºp nháºt cây bá»™ nhá»› đệm\n" -#: sequencer.c:430 +#: sequencer.c:391 #, c-format msgid "Could not parse commit %s\n" msgstr "Không thể phân tÃch commit (lần chuyển giao) %s\n" -#: sequencer.c:435 +#: sequencer.c:396 #, 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:501 +#: sequencer.c:462 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:520 +#: sequencer.c:481 #, 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:528 +#: sequencer.c:489 #, 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:532 +#: sequencer.c:493 #, c-format msgid "Mainline was specified but commit %s is not a merge." msgstr "" @@ -1175,153 +1188,153 @@ msgstr "" #. TRANSLATORS: The first %s will be "revert" or #. "cherry-pick", the second %s a SHA1 -#: sequencer.c:545 +#: sequencer.c:506 #, 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:549 +#: sequencer.c:510 #, 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:635 +#: sequencer.c:596 #, c-format msgid "could not revert %s... %s" msgstr "không thể revert %s... %s" -#: sequencer.c:636 +#: sequencer.c:597 #, c-format msgid "could not apply %s... %s" msgstr "không thể apply (áp dụng miếng vá) %s... %s" -#: sequencer.c:672 +#: sequencer.c:633 msgid "empty commit set passed" msgstr "lần chuyển giao trống rá»—ng đặt là hợp quy cách" -#: sequencer.c:680 +#: sequencer.c:641 #, 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:685 +#: sequencer.c:645 #, 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:743 +#: sequencer.c:705 #, c-format msgid "Cannot %s during a %s" msgstr "Không thể %s trong khi %s" -#: sequencer.c:765 +#: sequencer.c:727 #, c-format msgid "Could not parse line %d." msgstr "Không phân tÃch được dòng %d." -#: sequencer.c:770 +#: sequencer.c:732 msgid "No commits parsed." msgstr "Không có lần chuyển giao nà o được phân tÃch." -#: sequencer.c:783 +#: sequencer.c:745 #, c-format msgid "Could not open %s" msgstr "Không thể mở %s" -#: sequencer.c:787 +#: sequencer.c:749 #, c-format msgid "Could not read %s." msgstr "Không thể Ä‘á»c %s." -#: sequencer.c:794 +#: sequencer.c:756 #, c-format msgid "Unusable instruction sheet: %s" msgstr "Bảng chỉ thị không thể dùng được: %s" -#: sequencer.c:824 +#: sequencer.c:786 #, c-format msgid "Invalid key: %s" msgstr "Khóa không đúng: %s" -#: sequencer.c:827 +#: sequencer.c:789 #, c-format msgid "Invalid value for %s: %s" msgstr "Giá trị không hợp lệ %s: %s" -#: sequencer.c:839 +#: sequencer.c:801 #, c-format msgid "Malformed options sheet: %s" msgstr "Bảng tùy chá»n dị hình: %s" -#: sequencer.c:860 +#: sequencer.c:822 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:861 +#: sequencer.c:823 msgid "try \"git cherry-pick (--continue | --quit | --abort)\"" msgstr "hãy thá» \"git cherry-pick (--continue | --quit | --abort)\"" -#: sequencer.c:865 +#: sequencer.c:827 #, 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:881 sequencer.c:966 +#: sequencer.c:843 sequencer.c:928 #, c-format msgid "Error wrapping up %s." msgstr "Lá»—i bao bá»c %s." -#: sequencer.c:900 sequencer.c:1036 +#: sequencer.c:862 sequencer.c:998 msgid "no cherry-pick or revert in progress" msgstr "không cherry-pick hay revert trong tiến trình" -#: sequencer.c:902 +#: sequencer.c:864 msgid "cannot resolve HEAD" msgstr "không thể phân giải HEAD" -#: sequencer.c:904 +#: sequencer.c:866 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:926 builtin/apply.c:4061 +#: sequencer.c:888 builtin/apply.c:4062 #, c-format msgid "cannot open %s: %s" msgstr "không thể mở %s: %s" -#: sequencer.c:929 +#: sequencer.c:891 #, c-format msgid "cannot read %s: %s" msgstr "không thể Ä‘á»c %s: %s" -#: sequencer.c:930 +#: sequencer.c:892 msgid "unexpected end of file" msgstr "gặp kết thúc táºp tin Ä‘á»™t xuất" -#: sequencer.c:936 +#: sequencer.c:898 #, 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:959 +#: sequencer.c:921 #, c-format msgid "Could not format %s." msgstr "Không thể định dạng “%sâ€." -#: sequencer.c:1104 +#: sequencer.c:1066 #, c-format msgid "%s: can't cherry-pick a %s" msgstr "%s: không thể cherry-pick má»™t %s" -#: sequencer.c:1107 +#: sequencer.c:1069 #, c-format msgid "%s: bad revision" msgstr "%s: Ä‘iểm xét duyệt sai" -#: sequencer.c:1141 +#: sequencer.c:1103 msgid "Can't revert as initial commit" msgstr "Không thể revert má»™t lần chuyển giao khởi tạo" -#: sequencer.c:1142 +#: sequencer.c:1104 msgid "Can't cherry-pick into empty head" msgstr "Không thể cherry-pick và o má»™t đầu (head) trống rá»—ng" @@ -1349,21 +1362,21 @@ msgstr "" "nà y\n" "bằng cách chạy lệnh \"git config advice.objectNameWarning false\"" -#: sha1_name.c:1072 +#: sha1_name.c:1060 msgid "HEAD does not point to a branch" msgstr "HEAD không chỉ đến má»™t nhánh nà o cả" -#: sha1_name.c:1075 +#: sha1_name.c:1063 #, c-format msgid "No such branch: '%s'" msgstr "Không có nhánh nà o nhÆ° thế: “%sâ€" -#: sha1_name.c:1077 +#: sha1_name.c:1065 #, 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â€" -#: sha1_name.c:1081 +#: sha1_name.c:1069 #, c-format msgid "Upstream branch '%s' not stored as a remote-tracking branch" msgstr "" @@ -1394,17 +1407,17 @@ msgstr "Không thể gỡ bá» mục .gitmodules dà nh cho %s" msgid "staging updated .gitmodules failed" msgstr "gặp lá»—i khi tổ chức .gitmodules đã cáºp nháºt" -#: submodule.c:1121 builtin/init-db.c:363 +#: submodule.c:1118 builtin/init-db.c:363 #, c-format msgid "Could not create git link %s" msgstr "Không thể tạo liên kết git “%sâ€" -#: submodule.c:1132 +#: submodule.c:1129 #, c-format msgid "Could not set core.worktree in %s" msgstr "Không thể đặt “core.worktree†trong “%sâ€." -#: unpack-trees.c:206 +#: unpack-trees.c:202 msgid "Checking out files" msgstr "Äang lấy ra các táºp tin" @@ -1437,22 +1450,22 @@ 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:422 +#: wrapper.c:460 #, c-format msgid "unable to access '%s': %s" msgstr "không thể truy cáºp “%sâ€: %s" -#: wrapper.c:443 +#: wrapper.c:481 #, c-format msgid "unable to access '%s'" msgstr "không thể truy cáºp “%sâ€" -#: wrapper.c:454 +#: wrapper.c:492 #, 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:455 +#: wrapper.c:493 msgid "no such user" msgstr "không có ngÆ°á»i dùng nhÆ° váºy" @@ -1601,15 +1614,15 @@ msgstr "ná»™i dung chÆ°a được theo dõi, " msgid "bug: unhandled diff status %c" msgstr "lá»—i: không thể tiếp nháºn trạng thái lệnh diff %c" -#: wt-status.c:765 +#: wt-status.c:764 msgid "Submodules changed but not updated:" msgstr "Những mô-Ä‘un-con đã bị thay đổi nhÆ°ng chÆ°a được cáºp nháºt:" -#: wt-status.c:767 +#: wt-status.c:766 msgid "Submodule changes to be committed:" msgstr "Những mô-Ä‘un-con thay đổi đã được chuyển giao:" -#: wt-status.c:846 +#: wt-status.c:845 msgid "" "Do not touch the line above.\n" "Everything below will be removed." @@ -1617,72 +1630,72 @@ msgstr "" "Không Ä‘á»™ng đến Ä‘Æ°á»ng ở trên.\n" "Má»i thứ phÃa dÆ°á»›i sẽ được xóa bá»." -#: wt-status.c:937 +#: wt-status.c:936 msgid "You have unmerged paths." msgstr "Bạn có những Ä‘Æ°á»ng dẫn chÆ°a được hòa trá»™n." -#: wt-status.c:940 +#: wt-status.c:939 msgid " (fix conflicts and run \"git commit\")" msgstr " (sá»a các xung Ä‘á»™t rồi chạy \"git commit\")" -#: wt-status.c:943 +#: wt-status.c:942 msgid "All conflicts fixed but you are still merging." msgstr "Tất cả các xung Ä‘á»™t đã được giải quyết nhÆ°ng bạn vẫn Ä‘ang hòa trá»™n." -#: wt-status.c:946 +#: wt-status.c:945 msgid " (use \"git commit\" to conclude merge)" msgstr " (dùng \"git commit\" để hoà n tất việc hòa trá»™n)" -#: wt-status.c:956 +#: wt-status.c:955 msgid "You are in the middle of an am session." msgstr "Bạn Ä‘ang ở giữa của má»™t phiên “amâ€." -#: wt-status.c:959 +#: wt-status.c:958 msgid "The current patch is empty." msgstr "Miếng vá hiện tại bị trống rá»—ng." -#: wt-status.c:963 +#: wt-status.c:962 msgid " (fix conflicts and then run \"git am --continue\")" msgstr " (sá»a các xung Ä‘á»™t và sau đó chạy lệnh \"git am --continue\")" -#: wt-status.c:965 +#: wt-status.c:964 msgid " (use \"git am --skip\" to skip this patch)" msgstr " (dùng \"git am --skip\" để bá» qua miếng vá nà y)" -#: wt-status.c:967 +#: wt-status.c:966 msgid " (use \"git am --abort\" to restore the original branch)" msgstr " (dùng \"git am --abort\" để phục hồi lại nhánh nguyên thủy)" -#: wt-status.c:1027 wt-status.c:1044 +#: wt-status.c:1026 wt-status.c:1043 #, c-format msgid "You are currently rebasing branch '%s' on '%s'." msgstr "Bạn hiện nay Ä‘ang thá»±c hiện việc “rebase†nhánh “%s†trên “%sâ€." -#: wt-status.c:1032 wt-status.c:1049 +#: wt-status.c:1031 wt-status.c:1048 msgid "You are currently rebasing." msgstr "Bạn hiện nay Ä‘ang thá»±c hiện việc “rebase†(“cải tổâ€)." -#: wt-status.c:1035 +#: wt-status.c:1034 msgid " (fix conflicts and then run \"git rebase --continue\")" msgstr "" " (sá»a các xung Ä‘á»™t và sau đó chạy lệnh “cải tổ†\"git rebase --continue\")" -#: wt-status.c:1037 +#: wt-status.c:1036 msgid " (use \"git rebase --skip\" to skip this patch)" msgstr " (dùng lệnh “cải tổ†\"git rebase --skip\" để bá» qua lần vá nà y)" -#: wt-status.c:1039 +#: wt-status.c:1038 msgid " (use \"git rebase --abort\" to check out the original branch)" msgstr "" " (dùng lệnh “cải tổ†\"git rebase --abort\" để check-out nhánh nguyên thủy)" -#: wt-status.c:1052 +#: wt-status.c:1051 msgid " (all conflicts fixed: run \"git rebase --continue\")" msgstr "" " (khi tất cả các xung Ä‘á»™t đã sá»a xong: chạy lệnh “cải tổ†\"git rebase --" "continue\")" -#: wt-status.c:1056 +#: wt-status.c:1055 #, c-format msgid "" "You are currently splitting a commit while rebasing branch '%s' on '%s'." @@ -1690,126 +1703,126 @@ msgstr "" "Bạn hiện nay Ä‘ang thá»±c hiện việc chia tách má»™t lần chuyển giao trong khi " "Ä‘ang “rebase†nhánh “%s†trên “%sâ€." -#: wt-status.c:1061 +#: wt-status.c:1060 msgid "You are currently splitting a commit during a rebase." msgstr "" "Bạn hiện tại Ä‘ang cắt đôi má»™t lần chuyển giao trong khi Ä‘ang thá»±c hiện việc " "rebase." -#: wt-status.c:1064 +#: wt-status.c:1063 msgid " (Once your working directory is clean, run \"git rebase --continue\")" msgstr "" " (Má»™t khi thÆ° mục là m việc của bạn đã gá»n gà ng, chạy lệnh “cải tổ†\"git " "rebase --continue\")" -#: wt-status.c:1068 +#: wt-status.c:1067 #, c-format msgid "You are currently editing a commit while rebasing branch '%s' on '%s'." msgstr "" "Bạn hiện nay Ä‘ang thá»±c hiện việc sá»a chữa má»™t lần chuyển giao trong khi Ä‘ang " "rebase nhánh “%s†trên “%sâ€." -#: wt-status.c:1073 +#: wt-status.c:1072 msgid "You are currently editing a commit during a rebase." msgstr "Bạn hiện Ä‘ang sá»a má»™t lần chuyển giao trong khi bạn thá»±c hiện rebase." -#: wt-status.c:1076 +#: wt-status.c:1075 msgid " (use \"git commit --amend\" to amend the current commit)" msgstr " (dùng \"git commit --amend\" để “tu bổ†lần chuyển giao hiện tại)" -#: wt-status.c:1078 +#: wt-status.c:1077 msgid "" " (use \"git rebase --continue\" once you are satisfied with your changes)" msgstr "" " (chạy lệnh “cải tổ†\"git rebase --continue\" má»™t khi bạn cảm thấy hà i " "lòng vá» những thay đổi của mình)" -#: wt-status.c:1088 +#: wt-status.c:1087 #, c-format msgid "You are currently cherry-picking commit %s." msgstr "Bạn hiện nay Ä‘ang thá»±c hiện việc cherry-pick lần chuyển giao %s." -#: wt-status.c:1093 +#: wt-status.c:1092 msgid " (fix conflicts and run \"git cherry-pick --continue\")" msgstr "" " (sá»a các xung Ä‘á»™t và sau đó chạy lệnh \"git cherry-pick --continue\")" -#: wt-status.c:1096 +#: wt-status.c:1095 msgid " (all conflicts fixed: run \"git cherry-pick --continue\")" msgstr "" " (khi tất cả các xung Ä‘á»™t đã sá»a xong: chạy lệnh \"git cherry-pick --" "continue\")" -#: wt-status.c:1098 +#: wt-status.c:1097 msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)" msgstr " (dùng \"git cherry-pick --abort\" để hủy bá» thao tác cherry-pick)" -#: wt-status.c:1107 +#: wt-status.c:1106 #, c-format msgid "You are currently reverting commit %s." msgstr "Bạn hiện nay Ä‘ang thá»±c hiện thao tác revert lần chuyển giao “%sâ€." -#: wt-status.c:1112 +#: wt-status.c:1111 msgid " (fix conflicts and run \"git revert --continue\")" msgstr " (sá»a các xung Ä‘á»™t và sau đó chạy lệnh \"git revert --continue\")" -#: wt-status.c:1115 +#: wt-status.c:1114 msgid " (all conflicts fixed: run \"git revert --continue\")" msgstr "" " (khi tất cả các xung Ä‘á»™t đã sá»a xong: chạy lệnh \"git revert --continue\")" -#: wt-status.c:1117 +#: wt-status.c:1116 msgid " (use \"git revert --abort\" to cancel the revert operation)" msgstr " (dùng \"git revert --abort\" để hủy bá» thao tác revert)" -#: wt-status.c:1128 +#: wt-status.c:1127 #, c-format msgid "You are currently bisecting, started from branch '%s'." msgstr "" "Bạn hiện nay Ä‘ang thá»±c hiện thao tác di chuyển ná»a bÆ°á»›c (bisect), bắt đầu từ " "nhánh “%sâ€." -#: wt-status.c:1132 +#: wt-status.c:1131 msgid "You are currently bisecting." msgstr "Bạn hiện tại Ä‘ang thá»±c hiện việc bisect (di chuyển ná»a bÆ°á»›c)." -#: wt-status.c:1135 +#: wt-status.c:1134 msgid " (use \"git bisect reset\" to get back to the original branch)" msgstr " (dùng \"git bisect reset\" để quay trở lại nhánh nguyên thủy)" -#: wt-status.c:1310 +#: wt-status.c:1309 msgid "On branch " msgstr "Trên nhánh " -#: wt-status.c:1317 +#: wt-status.c:1316 msgid "rebase in progress; onto " msgstr "rebase Ä‘ang được thá»±c hiện: lên trên " -#: wt-status.c:1324 +#: wt-status.c:1323 msgid "HEAD detached at " msgstr "HEAD được tách rá»i tại " -#: wt-status.c:1326 +#: wt-status.c:1325 msgid "HEAD detached from " msgstr "HEAD được tách rá»i từ " -#: wt-status.c:1329 +#: wt-status.c:1328 msgid "Not currently on any branch." msgstr "Hiện tại chẳng ở nhánh nà o cả." -#: wt-status.c:1346 +#: wt-status.c:1345 msgid "Initial commit" msgstr "Lần chuyển giao khởi tạo" -#: wt-status.c:1360 +#: wt-status.c:1359 msgid "Untracked files" msgstr "Những táºp tin chÆ°a được theo dõi" -#: wt-status.c:1362 +#: wt-status.c:1361 msgid "Ignored files" msgstr "Những táºp tin bị lá» Ä‘i" -#: wt-status.c:1366 +#: wt-status.c:1365 #, c-format msgid "" "It took %.2f seconds to enumerate untracked files. 'status -uno'\n" @@ -1821,32 +1834,32 @@ msgstr "" "có lẽ là m nó nhanh hÆ¡n, nhÆ°ng bạn phải cẩn tháºn đừng quên mình phải\n" "tá»± thêm các táºp tin má»›i (xem “git help statusâ€.." -#: wt-status.c:1372 +#: wt-status.c:1371 #, c-format msgid "Untracked files not listed%s" msgstr "Những táºp tin chÆ°a được theo dõi không được liệt kê ra %s" -#: wt-status.c:1374 +#: wt-status.c:1373 msgid " (use -u option to show untracked files)" msgstr " (dùng tùy chá»n -u để hiển thị các táºp tin chÆ°a được theo dõi)" -#: wt-status.c:1380 +#: wt-status.c:1379 msgid "No changes" msgstr "Không có thay đổi nà o" -#: wt-status.c:1385 +#: wt-status.c:1384 #, c-format msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n" msgstr "" "không có thay đổi nà o được thêm và o để chuyển giao (dùng \"git add\" và /hoặc " "\"git commit -a\")\n" -#: wt-status.c:1388 +#: wt-status.c:1387 #, c-format msgid "no changes added to commit\n" msgstr "không có thay đổi nà o được thêm và o để chuyển giao\n" -#: wt-status.c:1391 +#: wt-status.c:1390 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " @@ -1855,49 +1868,49 @@ msgstr "" "không có gì được thêm và o lần chuyển giao nhÆ°ng có những táºp tin chÆ°a được " "theo dõi hiện diện (dùng \"git add\" để Ä‘Æ°a và o theo dõi)\n" -#: wt-status.c:1394 +#: wt-status.c:1393 #, c-format msgid "nothing added to commit but untracked files present\n" msgstr "" "không có gì được thêm và o lần chuyển giao nhÆ°ng có những táºp tin chÆ°a được " "theo dõi hiện diện\n" -#: wt-status.c:1397 +#: wt-status.c:1396 #, c-format msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "" "không có gì để chuyển giao (tạo/sao-chép các táºp tin và dùng \"git add\" để " "Ä‘Æ°a và o theo dõi)\n" -#: wt-status.c:1400 wt-status.c:1405 +#: wt-status.c:1399 wt-status.c:1404 #, c-format msgid "nothing to commit\n" msgstr "không có gì để chuyển giao\n" -#: wt-status.c:1403 +#: wt-status.c:1402 #, c-format msgid "nothing to commit (use -u to show untracked files)\n" msgstr "" "không có gì để chuyển giao (dùng -u xem các táºp tin chÆ°a được theo dõi)\n" -#: wt-status.c:1407 +#: wt-status.c:1406 #, c-format msgid "nothing to commit, working directory clean\n" msgstr "không có gì để chuyển giao, thÆ° mục là m việc sạch sẽ\n" -#: wt-status.c:1516 +#: wt-status.c:1515 msgid "HEAD (no branch)" msgstr "HEAD (không nhánh)" -#: wt-status.c:1522 +#: wt-status.c:1521 msgid "Initial commit on " msgstr "Lần chuyển giao khởi tạo trên " -#: wt-status.c:1554 +#: wt-status.c:1553 msgid "gone" msgstr "đã ra Ä‘i" -#: wt-status.c:1556 wt-status.c:1564 +#: wt-status.c:1555 wt-status.c:1563 msgid "behind " msgstr "đằng sau " @@ -1929,7 +1942,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:193 +#: builtin/add.c:193 builtin/rev-parse.c:781 msgid "Could not read the index" msgstr "Không thể Ä‘á»c bảng mục lục" @@ -1962,15 +1975,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:248 builtin/clean.c:876 builtin/fetch.c:93 builtin/mv.c:70 -#: builtin/prune-packed.c:77 builtin/push.c:489 builtin/remote.c:1344 +#: builtin/add.c:248 builtin/clean.c:875 builtin/fetch.c:108 builtin/mv.c:70 +#: builtin/prune-packed.c:77 builtin/push.c:488 builtin/remote.c:1367 #: builtin/rm.c:269 msgid "dry run" msgstr "chạy thá»" -#: builtin/add.c:249 builtin/apply.c:4410 builtin/check-ignore.c:19 -#: builtin/commit.c:1256 builtin/count-objects.c:95 builtin/fsck.c:612 -#: builtin/log.c:1592 builtin/mv.c:69 builtin/read-tree.c:113 +#: builtin/add.c:249 builtin/apply.c:4411 builtin/check-ignore.c:19 +#: builtin/commit.c:1328 builtin/count-objects.c:95 builtin/fsck.c:606 +#: builtin/log.c:1613 builtin/mv.c:69 builtin/read-tree.c:113 msgid "be verbose" msgstr "chi tiết" @@ -1978,7 +1991,7 @@ msgstr "chi tiết" msgid "interactive picking" msgstr "sá»a bằng cách tÆ°Æ¡ng tác" -#: builtin/add.c:252 builtin/checkout.c:1108 builtin/reset.c:283 +#: builtin/add.c:252 builtin/checkout.c:1102 builtin/reset.c:285 msgid "select hunks interactively" msgstr "chá»n “hunks†theo kiểu tÆ°Æ¡ng tác" @@ -2035,30 +2048,30 @@ msgstr "chÆ°a có táºp tin nà o được thêm và o" msgid "adding files failed" msgstr "thêm táºp tin gặp lá»—i" -#: builtin/add.c:330 +#: builtin/add.c:329 msgid "-A and -u are mutually incompatible" msgstr "-A và -u xung khắc nhau" -#: builtin/add.c:337 +#: builtin/add.c:336 msgid "Option --ignore-missing can only be used together with --dry-run" msgstr "Tùy chá»n --ignore-missing chỉ có thể được dùng cùng vá»›i --dry-run" -#: builtin/add.c:358 +#: builtin/add.c:357 #, c-format msgid "Nothing specified, nothing added.\n" msgstr "Không có gì được chỉ ra, không có gì được thêm và o.\n" -#: builtin/add.c:359 +#: builtin/add.c:358 #, c-format 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:364 builtin/check-ignore.c:172 builtin/clean.c:920 -#: builtin/commit.c:320 builtin/mv.c:90 builtin/reset.c:234 builtin/rm.c:299 +#: builtin/add.c:363 builtin/check-ignore.c:172 builtin/clean.c:919 +#: builtin/commit.c:319 builtin/mv.c:90 builtin/reset.c:234 builtin/rm.c:299 msgid "index file corrupt" msgstr "táºp tin ghi bảng mục lục bị há»ng" -#: builtin/add.c:448 builtin/apply.c:4506 builtin/mv.c:280 builtin/rm.c:432 +#: builtin/add.c:446 builtin/apply.c:4506 builtin/mv.c:280 builtin/rm.c:431 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" @@ -2076,40 +2089,40 @@ msgstr "không nháºn ra tùy chá»n vá» khoảng trắng “%sâ€" msgid "unrecognized whitespace ignore option '%s'" msgstr "không nháºn ra tùy chá»n bá» qua khoảng trắng “%sâ€" -#: builtin/apply.c:823 +#: builtin/apply.c:825 #, c-format msgid "Cannot prepare timestamp regexp %s" msgstr "" "Không thể chuẩn bị biểu thức chÃnh qui dấu vết thá»i gian (timestamp regexp) " "%s" -#: builtin/apply.c:832 +#: builtin/apply.c:834 #, c-format msgid "regexec returned %d for input: %s" msgstr "thi hà nh biểu thức chÃnh quy trả vá» %d cho đầu và o: %s" -#: builtin/apply.c:913 +#: builtin/apply.c:915 #, c-format msgid "unable to find filename in patch at line %d" msgstr "không thể tìm thấy tên táºp tin trong miếng vá tại dòng %d" -#: builtin/apply.c:945 +#: builtin/apply.c:947 #, c-format msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d" msgstr "" "git apply: git-diff sai - cần /dev/null, nhÆ°ng lại nháºn được %s trên dòng %d" -#: builtin/apply.c:949 +#: builtin/apply.c:951 #, c-format msgid "git apply: bad git-diff - inconsistent new filename on line %d" msgstr "git apply: git-diff sai - tên táºp tin má»›i không nhất quán trên dòng %d" -#: builtin/apply.c:950 +#: builtin/apply.c:952 #, c-format msgid "git apply: bad git-diff - inconsistent old filename on line %d" msgstr "git apply: git-diff sai - tên táºp tin cÅ© không nhất quán trên dòng %d" -#: builtin/apply.c:957 +#: builtin/apply.c:959 #, c-format msgid "git apply: bad git-diff - expected /dev/null on line %d" msgstr "git apply: git-diff sai - cần “/dev/null†trên dòng %d" @@ -2223,19 +2236,19 @@ msgstr "" msgid "missing binary patch data for '%s'" msgstr "thiếu dữ liệu của miếng vá định dạng nhị phân cho “%sâ€" -#: builtin/apply.c:2946 +#: builtin/apply.c:2944 #, c-format msgid "binary patch does not apply to '%s'" msgstr "miếng vá định dạng nhị phân không được áp dụng cho “%sâ€" -#: builtin/apply.c:2952 +#: builtin/apply.c:2950 #, c-format msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)" msgstr "" "vá nhị phân cho “%s†tạo ra kết quả không chÃnh xác (mong chá» %s, lại nháºn " "%s)" -#: builtin/apply.c:2973 +#: builtin/apply.c:2971 #, c-format msgid "patch failed: %s:%ld" msgstr "gặp lá»—i khi vá: %s:%ld" @@ -2324,218 +2337,218 @@ msgstr "make_cache_entry gặp lá»—i đối vá»›i Ä‘Æ°á»ng dẫn “%sâ€" msgid "unable to remove %s from index" msgstr "không thể gỡ bá» %s từ mục lục" -#: builtin/apply.c:3851 +#: builtin/apply.c:3852 #, c-format msgid "corrupt patch for submodule %s" msgstr "miếng vá sai há»ng cho mô-Ä‘un-con %s" -#: builtin/apply.c:3855 +#: builtin/apply.c:3856 #, c-format msgid "unable to stat newly created file '%s'" msgstr "không thể lấy thống ká» vá» táºp tin %s má»›i hÆ¡n đã được tạo" -#: builtin/apply.c:3860 +#: builtin/apply.c:3861 #, c-format msgid "unable to create backing store for newly created file %s" msgstr "không thể tạo “kho lÆ°u đằng sau†cho táºp tin được tạo má»›i hÆ¡n %s" -#: builtin/apply.c:3863 builtin/apply.c:3971 +#: builtin/apply.c:3864 builtin/apply.c:3972 #, c-format msgid "unable to add cache entry for %s" msgstr "không thể thêm mục nhá»› đệm cho %s" -#: builtin/apply.c:3896 +#: builtin/apply.c:3897 #, c-format msgid "closing file '%s'" msgstr "Ä‘ang đóng táºp tin “%sâ€" -#: builtin/apply.c:3945 +#: builtin/apply.c:3946 #, c-format msgid "unable to write file '%s' mode %o" msgstr "không thể ghi và o táºp tin “%s†chế Ä‘á»™ %o" -#: builtin/apply.c:4032 +#: builtin/apply.c:4033 #, c-format msgid "Applied patch %s cleanly." msgstr "Äã áp dụng miếng vá %s má»™t cách sạch sẽ." -#: builtin/apply.c:4040 +#: builtin/apply.c:4041 msgid "internal error" msgstr "lá»—i ná»™i bá»™" -#: builtin/apply.c:4043 +#: builtin/apply.c:4044 #, c-format msgid "Applying patch %%s with %d reject..." msgid_plural "Applying patch %%s with %d rejects..." msgstr[0] "Äang áp dụng miếng vá %%s vá»›i %d lần từ chối..." msgstr[1] "Äang áp dụng miếng vá %%s vá»›i %d lần từ chối..." -#: builtin/apply.c:4053 +#: builtin/apply.c:4054 #, c-format msgid "truncating .rej filename to %.*s.rej" msgstr "Ä‘ang cắt ngắn tên táºp tin .rej thà nh %.*s.rej" -#: builtin/apply.c:4074 +#: builtin/apply.c:4075 #, c-format msgid "Hunk #%d applied cleanly." msgstr "Khối nhá»› #%d được áp dụng gá»n gà ng." -#: builtin/apply.c:4077 +#: builtin/apply.c:4078 #, c-format msgid "Rejected hunk #%d." msgstr "Ä‘oạn dữ liệu #%d bị từ chối." -#: builtin/apply.c:4227 +#: builtin/apply.c:4228 msgid "unrecognized input" msgstr "không thừa nháºn đầu và o" -#: builtin/apply.c:4238 +#: builtin/apply.c:4239 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:4357 builtin/apply.c:4360 builtin/clone.c:90 -#: builtin/fetch.c:78 +#: builtin/apply.c:4358 builtin/apply.c:4361 builtin/clone.c:90 +#: builtin/fetch.c:93 msgid "path" msgstr "Ä‘Æ°á»ng-dẫn" -#: builtin/apply.c:4358 +#: builtin/apply.c:4359 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:4361 +#: builtin/apply.c:4362 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:4363 +#: builtin/apply.c:4364 msgid "num" msgstr "số" -#: builtin/apply.c:4364 +#: builtin/apply.c:4365 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:4367 +#: builtin/apply.c:4368 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:4369 +#: builtin/apply.c:4370 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:4373 +#: builtin/apply.c:4374 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:4375 +#: builtin/apply.c:4376 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:4377 +#: builtin/apply.c:4378 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:4379 +#: builtin/apply.c:4380 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:4381 +#: builtin/apply.c:4382 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:4383 +#: builtin/apply.c:4384 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:4385 +#: builtin/apply.c:4386 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:4387 +#: builtin/apply.c:4388 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:4389 builtin/checkout-index.c:197 builtin/ls-files.c:455 +#: builtin/apply.c:4390 builtin/checkout-index.c:198 builtin/ls-files.c:455 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:4392 +#: builtin/apply.c:4393 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:4393 +#: builtin/apply.c:4394 msgid "action" msgstr "hà nh Ä‘á»™ng" -#: builtin/apply.c:4394 +#: builtin/apply.c:4395 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:4397 builtin/apply.c:4400 +#: builtin/apply.c:4398 builtin/apply.c:4401 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:4403 +#: builtin/apply.c:4404 msgid "apply the patch in reverse" msgstr "áp dụng miếng vá theo chiá»u ngược" -#: builtin/apply.c:4405 +#: builtin/apply.c:4406 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:4407 +#: builtin/apply.c:4408 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:4409 +#: builtin/apply.c:4410 msgid "allow overlapping hunks" msgstr "cho phép chồng khối nhá»›" -#: builtin/apply.c:4412 +#: builtin/apply.c:4413 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:4415 +#: builtin/apply.c:4416 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:4417 +#: builtin/apply.c:4418 msgid "root" msgstr "root" -#: builtin/apply.c:4418 +#: builtin/apply.c:4419 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:4440 +#: builtin/apply.c:4441 msgid "--3way outside a repository" msgstr "--3way ở ngoà i má»™t kho chứa" -#: builtin/apply.c:4448 +#: builtin/apply.c:4449 msgid "--index outside a repository" msgstr "--index ở ngoà i má»™t kho chứa" -#: builtin/apply.c:4451 +#: builtin/apply.c:4452 msgid "--cached outside a repository" msgstr "--cached ở ngoà i má»™t kho chứa" -#: builtin/apply.c:4467 +#: builtin/apply.c:4468 #, c-format msgid "can't open patch '%s'" msgstr "không thể mở miếng vá “%sâ€" -#: builtin/apply.c:4481 +#: builtin/apply.c:4482 #, 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" msgstr[1] "đã chấm dứt %d lá»—i khoảng trắng" -#: builtin/apply.c:4487 builtin/apply.c:4497 +#: builtin/apply.c:4488 builtin/apply.c:4498 #, c-format msgid "%d line adds whitespace errors." msgid_plural "%d lines add whitespace errors." @@ -2590,108 +2603,118 @@ 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:27 +#: builtin/blame.c:30 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:32 +#: builtin/blame.c:35 msgid "[rev-opts] are documented in git-rev-list(1)" msgstr "[rev-opts] được mô tả trong git-rev-list(1)" -#: builtin/blame.c:2242 +#: builtin/blame.c:2501 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:2243 +#: builtin/blame.c:2502 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:2244 +#: builtin/blame.c:2503 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:2245 +#: builtin/blame.c:2504 msgid "Show work cost statistics" msgstr "Hiển thị thống kê công sức là m việc" -#: builtin/blame.c:2246 +#: builtin/blame.c:2505 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:2247 +#: builtin/blame.c:2506 msgid "Show original filename (Default: auto)" msgstr "Hiển thị tên táºp tin gốc (Mặc định: auto)" -#: builtin/blame.c:2248 +#: builtin/blame.c:2507 msgid "Show original linenumber (Default: off)" msgstr "Hiển thị số dòng gốc (Mặc định: off)" -#: builtin/blame.c:2249 +#: builtin/blame.c:2508 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:2250 +#: builtin/blame.c:2509 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:2251 +#: builtin/blame.c:2510 msgid "Use the same output mode as git-annotate (Default: off)" msgstr "Dùng cùng chế Ä‘á»™ xuất ra vóigit-annotate (Mặc định: off)" -#: builtin/blame.c:2252 +#: builtin/blame.c:2511 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:2253 +#: builtin/blame.c:2512 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:2254 +#: builtin/blame.c:2513 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:2255 +#: builtin/blame.c:2514 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:2256 +#: builtin/blame.c:2515 msgid "Ignore whitespace differences" msgstr "Bá» qua các khác biệt do khoảng trắng gây ra" -#: builtin/blame.c:2257 +#: builtin/blame.c:2516 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:2258 +#: builtin/blame.c:2517 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:2259 +#: builtin/blame.c:2518 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:2260 builtin/blame.c:2261 +#: builtin/blame.c:2519 builtin/blame.c:2520 msgid "score" msgstr "Ä‘iểm số" -#: builtin/blame.c:2260 +#: builtin/blame.c:2519 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:2261 +#: builtin/blame.c:2520 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:2262 +#: builtin/blame.c:2521 msgid "n,m" msgstr "n,m" -#: builtin/blame.c:2262 +#: builtin/blame.c:2521 msgid "Process only line range n,m, counting from 1" msgstr "Xá» lý chỉ dòng vùng n,m, tÃnh từ 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:2599 +msgid "4 years, 11 months ago" +msgstr "4 năm, 11 tháng trÆ°á»›c" + #: builtin/branch.c:24 msgid "git branch [options] [-r | -a] [--merged | --no-merged]" msgstr "git branch [các-tùy-chá»n] [-r | -a] [--merged | --no-merged]" @@ -2930,9 +2953,9 @@ msgid "act on remote-tracking branches" msgstr "thao tác trên nhánh “remote-trackingâ€" #: builtin/branch.c:817 builtin/branch.c:823 builtin/branch.c:844 -#: builtin/branch.c:850 builtin/commit.c:1494 builtin/commit.c:1495 -#: builtin/commit.c:1496 builtin/commit.c:1497 builtin/tag.c:527 -#: builtin/tag.c:533 +#: builtin/branch.c:850 builtin/commit.c:1573 builtin/commit.c:1574 +#: builtin/commit.c:1575 builtin/commit.c:1576 builtin/tag.c:615 +#: builtin/tag.c:621 msgid "commit" msgstr "lần_chuyển_giao" @@ -2996,7 +3019,7 @@ msgstr "liệt kê các nhánh trong các cá»™t" 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 (ref) hợp lệ." -#: builtin/branch.c:872 builtin/clone.c:635 +#: builtin/branch.c:872 builtin/clone.c:636 msgid "HEAD not found below refs/heads!" msgstr "không tìm thấy HEAD ở dÆ°á»›i refs/heads!" @@ -3184,7 +3207,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:1089 builtin/gc.c:271 +#: builtin/check-ignore.c:18 builtin/checkout.c:1083 builtin/gc.c:285 msgid "suppress progress reporting" msgstr "chặn các báo cáo tiến trình hoạt Ä‘á»™ng" @@ -3241,44 +3264,44 @@ msgstr "chÆ°a chỉ ra danh bạ" msgid "git checkout-index [options] [--] [<file>...]" msgstr "git checkout-index [các-tùy-chá»n] [--] [<táºp-tin>...]" -#: builtin/checkout-index.c:187 +#: builtin/checkout-index.c:188 msgid "check out all files in the index" msgstr "lấy ra toà n bá»™ các táºp tin trong bảng mục lục" -#: builtin/checkout-index.c:188 +#: builtin/checkout-index.c:189 msgid "force overwrite of existing files" msgstr "ép buá»™c ghi đè lên táºp tin đã sẵn có từ trÆ°á»›c" -#: builtin/checkout-index.c:190 +#: builtin/checkout-index.c:191 msgid "no warning for existing files and files not in index" msgstr "" "không cảnh báo cho những táºp tin tồn tại và không có trong bảng mục lục" -#: builtin/checkout-index.c:192 +#: builtin/checkout-index.c:193 msgid "don't checkout new files" msgstr "không checkout các táºp tin má»›i" -#: builtin/checkout-index.c:194 +#: builtin/checkout-index.c:195 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:200 +#: builtin/checkout-index.c:201 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:202 +#: builtin/checkout-index.c:203 msgid "write the content to temporary files" msgstr "ghi ná»™i dung và o táºp tin tạm" -#: builtin/checkout-index.c:203 builtin/column.c:30 +#: builtin/checkout-index.c:204 builtin/column.c:30 msgid "string" msgstr "chuá»—i" -#: builtin/checkout-index.c:204 +#: builtin/checkout-index.c:205 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:207 +#: builtin/checkout-index.c:208 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" @@ -3320,76 +3343,76 @@ msgstr "Ä‘Æ°á»ng dẫn “%sâ€: không thể hòa trá»™n" msgid "Unable to add merge result for '%s'" msgstr "Không thể thêm kết quả hòa trá»™n cho “%sâ€" -#: builtin/checkout.c:232 builtin/checkout.c:235 builtin/checkout.c:238 -#: builtin/checkout.c:241 +#: builtin/checkout.c:231 builtin/checkout.c:234 builtin/checkout.c:237 +#: builtin/checkout.c:240 #, c-format msgid "'%s' cannot be used with updating paths" msgstr "không được dùng “%s†vá»›i các Ä‘Æ°á»ng dẫn cáºp nháºt" -#: builtin/checkout.c:244 builtin/checkout.c:247 +#: builtin/checkout.c:243 builtin/checkout.c:246 #, c-format msgid "'%s' cannot be used with %s" msgstr "không được dùng “%s†vá»›i %s" -#: builtin/checkout.c:250 +#: builtin/checkout.c:249 #, c-format msgid "Cannot update paths and switch to branch '%s' at the same time." msgstr "" "Không thể cáºp nháºt các Ä‘Æ°á»ng dẫn và chuyển đến nhánh “%s†cùng má»™t lúc." -#: builtin/checkout.c:261 builtin/checkout.c:450 +#: builtin/checkout.c:260 builtin/checkout.c:449 msgid "corrupt index file" msgstr "táºp tin ghi bảng mục lục bị há»ng" -#: builtin/checkout.c:321 builtin/checkout.c:328 +#: builtin/checkout.c:320 builtin/checkout.c:327 #, c-format msgid "path '%s' is unmerged" msgstr "Ä‘Æ°á»ng dẫn “%s†không được hòa trá»™n" -#: builtin/checkout.c:472 +#: builtin/checkout.c:471 msgid "you need to resolve your current index first" msgstr "bạn cần phải giải quyết bảng mục lục hiện tại của bạn trÆ°á»›c đã" -#: builtin/checkout.c:593 +#: builtin/checkout.c:591 #, c-format msgid "Can not do reflog for '%s'\n" msgstr "Không thể thá»±c hiện reflog cho “%sâ€\n" -#: builtin/checkout.c:631 +#: builtin/checkout.c:629 msgid "HEAD is now at" msgstr "HEAD hiện giá» tại" -#: builtin/checkout.c:638 +#: builtin/checkout.c:636 #, c-format msgid "Reset branch '%s'\n" msgstr "Äặt lại nhánh “%sâ€\n" -#: builtin/checkout.c:641 +#: builtin/checkout.c:639 #, c-format msgid "Already on '%s'\n" msgstr "Äã sẵn sà ng trên “%sâ€\n" -#: builtin/checkout.c:645 +#: builtin/checkout.c:643 #, 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:647 builtin/checkout.c:1032 +#: builtin/checkout.c:645 builtin/checkout.c:1026 #, c-format msgid "Switched to a new branch '%s'\n" msgstr "Äã chuyển đến nhánh má»›i “%sâ€\n" -#: builtin/checkout.c:649 +#: builtin/checkout.c:647 #, c-format msgid "Switched to branch '%s'\n" msgstr "Äã chuyển đến nhánh “%sâ€\n" -#: builtin/checkout.c:705 +#: builtin/checkout.c:699 #, c-format msgid " ... and %d more.\n" msgstr " ... và nhiá»u hÆ¡n %d.\n" -#: builtin/checkout.c:711 +#: builtin/checkout.c:705 #, c-format msgid "" "Warning: you are leaving %d commit behind, not connected to\n" @@ -3414,7 +3437,7 @@ msgstr[1] "" "\n" "%s\n" -#: builtin/checkout.c:729 +#: builtin/checkout.c:723 #, c-format msgid "" "If you want to keep them by creating a new branch, this may be a good time\n" @@ -3430,141 +3453,141 @@ msgstr "" " git branch tên_nhánh_má»›i %s\n" "\n" -#: builtin/checkout.c:759 +#: builtin/checkout.c:753 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:763 +#: builtin/checkout.c:757 msgid "Previous HEAD position was" msgstr "Vị trà trÆ°á»›c kia của HEAD là " -#: builtin/checkout.c:790 builtin/checkout.c:1027 +#: builtin/checkout.c:784 builtin/checkout.c:1021 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:934 +#: builtin/checkout.c:928 #, 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:973 +#: builtin/checkout.c:967 #, c-format msgid "invalid reference: %s" msgstr "tham chiếu không hợp lệ: %s" -#: builtin/checkout.c:1002 +#: builtin/checkout.c:996 #, 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:1041 +#: builtin/checkout.c:1035 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:1044 builtin/checkout.c:1048 +#: builtin/checkout.c:1038 builtin/checkout.c:1042 #, 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:1052 builtin/checkout.c:1055 builtin/checkout.c:1060 -#: builtin/checkout.c:1063 +#: builtin/checkout.c:1046 builtin/checkout.c:1049 builtin/checkout.c:1054 +#: builtin/checkout.c:1057 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "“%s†không thể được dùng vá»›i “%sâ€" -#: builtin/checkout.c:1068 +#: builtin/checkout.c:1062 #, c-format msgid "Cannot switch branch to a non-commit '%s'" msgstr "Không thể chuyển nhánh đến má»™t non-commit “%sâ€" -#: builtin/checkout.c:1090 builtin/checkout.c:1092 builtin/clone.c:88 +#: builtin/checkout.c:1084 builtin/checkout.c:1086 builtin/clone.c:88 #: builtin/remote.c:159 builtin/remote.c:161 msgid "branch" msgstr "nhánh" -#: builtin/checkout.c:1091 +#: builtin/checkout.c:1085 msgid "create and checkout a new branch" msgstr "tạo và checkout má»™t nhánh má»›i" -#: builtin/checkout.c:1093 +#: builtin/checkout.c:1087 msgid "create/reset and checkout a branch" msgstr "tạo/đặt_lại và checkout má»™t nhánh" -#: builtin/checkout.c:1094 +#: builtin/checkout.c:1088 msgid "create reflog for new branch" msgstr "tạo reflog cho nhánh má»›i" -#: builtin/checkout.c:1095 +#: builtin/checkout.c:1089 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:1096 +#: builtin/checkout.c:1090 msgid "set upstream info for new branch" msgstr "đặt thông tin thượng nguồn cho nhánh má»›i" -#: builtin/checkout.c:1098 +#: builtin/checkout.c:1092 msgid "new-branch" msgstr "nhánh-má»›i" -#: builtin/checkout.c:1098 +#: builtin/checkout.c:1092 msgid "new unparented branch" msgstr "nhánh không cha má»›i" -#: builtin/checkout.c:1099 +#: builtin/checkout.c:1093 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:1101 +#: builtin/checkout.c:1095 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:1103 +#: builtin/checkout.c:1097 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:1104 +#: builtin/checkout.c:1098 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:1105 builtin/merge.c:225 +#: builtin/checkout.c:1099 builtin/merge.c:225 msgid "update ignored files (default)" msgstr "cáºp nháºt các táºp tin bị bá» qua (mặc định)" -#: builtin/checkout.c:1106 builtin/log.c:1228 parse-options.h:245 +#: builtin/checkout.c:1100 builtin/log.c:1236 parse-options.h:245 msgid "style" msgstr "kiểu" -#: builtin/checkout.c:1107 +#: builtin/checkout.c:1101 msgid "conflict style (merge or diff3)" msgstr "xung Ä‘á»™t kiểu (hòa trá»™n hoặc diff3)" -#: builtin/checkout.c:1110 +#: builtin/checkout.c:1104 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:1112 +#: builtin/checkout.c:1106 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:1135 +#: builtin/checkout.c:1129 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:1152 +#: builtin/checkout.c:1146 msgid "--track needs a branch name" msgstr "--track cần tên má»™t nhánh" -#: builtin/checkout.c:1159 +#: builtin/checkout.c:1153 msgid "Missing branch name; try -b" msgstr "Thiếu tên nhánh; hãy thá» -b" -#: builtin/checkout.c:1196 +#: builtin/checkout.c:1190 msgid "invalid path specification" msgstr "Ä‘Æ°á»ng dẫn đã cho không hợp lệ" -#: builtin/checkout.c:1203 +#: builtin/checkout.c:1197 #, c-format msgid "" "Cannot update paths and switch to branch '%s' at the same time.\n" @@ -3574,12 +3597,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:1208 +#: builtin/checkout.c:1202 #, 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:1212 +#: builtin/checkout.c:1206 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." @@ -3655,30 +3678,30 @@ msgstr "" msgid "Huh (%s)?" msgstr "Hả (%s)?" -#: builtin/clean.c:660 +#: builtin/clean.c:659 #, 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:697 +#: builtin/clean.c:696 #, 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:718 +#: builtin/clean.c:717 msgid "Select items to delete" msgstr "Chá»n mục muốn xóa" -#: builtin/clean.c:758 +#: builtin/clean.c:757 #, c-format msgid "remove %s? " msgstr "gỡ bỠ“%sâ€? " -#: builtin/clean.c:783 +#: builtin/clean.c:782 msgid "Bye." msgstr "Tạm biệt." -#: builtin/clean.c:791 +#: builtin/clean.c:790 msgid "" "clean - start cleaning\n" "filter by pattern - exclude items from deletion\n" @@ -3696,62 +3719,62 @@ 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:818 +#: builtin/clean.c:817 msgid "*** Commands ***" msgstr "*** Lệnh ***" -#: builtin/clean.c:819 +#: builtin/clean.c:818 msgid "What now" msgstr "Giá» thì sao" -#: builtin/clean.c:827 +#: builtin/clean.c:826 msgid "Would remove the following item:" msgid_plural "Would remove the following items:" msgstr[0] "Có muốn gỡ bá» mục sau đây không:" msgstr[1] "Có muốn gỡ bá» các mục sau đây không:" -#: builtin/clean.c:844 +#: builtin/clean.c:843 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:875 +#: builtin/clean.c:874 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:877 +#: builtin/clean.c:876 msgid "force" msgstr "ép buá»™c" -#: builtin/clean.c:878 +#: builtin/clean.c:877 msgid "interactive cleaning" msgstr "dá»n bằng kiểu tÆ°Æ¡ng tác" -#: builtin/clean.c:880 +#: builtin/clean.c:879 msgid "remove whole directories" msgstr "gỡ bá» toà n bá»™ thÆ° mục" -#: builtin/clean.c:881 builtin/describe.c:415 builtin/grep.c:716 -#: builtin/ls-files.c:486 builtin/name-rev.c:314 builtin/show-ref.c:185 +#: builtin/clean.c:880 builtin/describe.c:406 builtin/grep.c:714 +#: builtin/ls-files.c:486 builtin/name-rev.c:311 builtin/show-ref.c:185 msgid "pattern" msgstr "mẫu" -#: builtin/clean.c:882 +#: builtin/clean.c:881 msgid "add <pattern> to ignore rules" msgstr "thêm <mẫu> và o trong qui tắc bá» qua" -#: builtin/clean.c:883 +#: builtin/clean.c:882 msgid "remove ignored files, too" msgstr "đồng thá»i gỡ bá» cả các táºp tin bị bá» qua" -#: builtin/clean.c:885 +#: builtin/clean.c:884 msgid "remove only ignored files" msgstr "chỉ gỡ bá» những táºp tin bị bá» qua" -#: builtin/clean.c:903 +#: builtin/clean.c:902 msgid "-x and -X cannot be used together" msgstr "-x và -X không thể dùng cùng nhau" -#: builtin/clean.c:907 +#: builtin/clean.c:906 msgid "" "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to " "clean" @@ -3759,7 +3782,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:910 +#: builtin/clean.c:909 msgid "" "clean.requireForce defaults to true and neither -i, -n, nor -f given; " "refusing to clean" @@ -3771,8 +3794,8 @@ msgstr "" msgid "git clone [options] [--] <repo> [<dir>]" msgstr "git clone [các-tùy-chá»n] [--] <kho> [<t.mục>]" -#: builtin/clone.c:64 builtin/fetch.c:97 builtin/merge.c:222 -#: builtin/push.c:504 +#: builtin/clone.c:64 builtin/fetch.c:112 builtin/merge.c:222 +#: builtin/push.c:503 msgid "force progress reporting" msgstr "ép buá»™c báo cáo tiến triển công việc" @@ -3832,7 +3855,7 @@ msgstr "lấy ra <nhánh> thay cho HEAD của máy chủ" 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:92 builtin/fetch.c:98 builtin/grep.c:661 +#: builtin/clone.c:92 builtin/fetch.c:113 builtin/grep.c:659 msgid "depth" msgstr "Ä‘á»™-sâu" @@ -3934,94 +3957,94 @@ msgstr "Äang kiểm tra kết nối... " 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:626 +#: builtin/clone.c:627 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:657 +#: builtin/clone.c:658 msgid "unable to checkout working tree" msgstr "không thể lấy ra (checkout) cây là m việc" -#: builtin/clone.c:765 +#: builtin/clone.c:768 msgid "Too many arguments." msgstr "Có quá nhiá»u đối số." -#: builtin/clone.c:769 +#: builtin/clone.c:772 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:780 +#: builtin/clone.c:783 #, 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:783 +#: builtin/clone.c:786 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:796 +#: builtin/clone.c:799 #, c-format msgid "repository '%s' does not exist" msgstr "kho chứa “%s†chÆ°a tồn tại" -#: builtin/clone.c:802 -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:805 -msgid "source repository is shallow, ignoring --local" -msgstr "kho nguồn là nông, nên bá» qua --local" - -#: builtin/clone.c:810 -msgid "--local is ignored" -msgstr "--local bị lá» Ä‘i" - -#: builtin/clone.c:814 builtin/fetch.c:1119 +#: builtin/clone.c:805 builtin/fetch.c:1143 #, 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:824 +#: builtin/clone.c:815 #, 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:834 +#: builtin/clone.c:825 #, 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:847 builtin/clone.c:859 +#: builtin/clone.c:838 builtin/clone.c:850 #, 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:850 +#: builtin/clone.c:841 #, 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:869 +#: builtin/clone.c:860 #, 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:871 +#: builtin/clone.c:862 #, c-format msgid "Cloning into '%s'...\n" msgstr "Äang nhân bản thà nh “%sâ€...\n" +#: builtin/clone.c:898 +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:901 +msgid "source repository is shallow, ignoring --local" +msgstr "kho nguồn là nông, nên bá» qua --local" + #: builtin/clone.c:906 +msgid "--local is ignored" +msgstr "--local bị lá» Ä‘i" + +#: builtin/clone.c:910 #, 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:957 builtin/clone.c:965 +#: builtin/clone.c:961 builtin/clone.c:969 #, 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:968 +#: builtin/clone.c:972 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." @@ -4145,91 +4168,100 @@ msgstr "" msgid "failed to unpack HEAD tree object" msgstr "gặp lá»—i khi tháo dỡ HEAD đối tượng cây" -#: builtin/commit.c:330 +#: builtin/commit.c:328 msgid "unable to create temporary index" msgstr "không thể tạo bảng mục lục tạm thá»i" -#: builtin/commit.c:336 +#: builtin/commit.c:334 msgid "interactive add failed" msgstr "gặp lá»—i khi thêm bằng cách tÆ°Æ¡ng" -#: builtin/commit.c:369 builtin/commit.c:390 builtin/commit.c:440 +#: builtin/commit.c:366 builtin/commit.c:387 builtin/commit.c:435 msgid "unable to write new_index file" msgstr "không thể ghi táºp tin lÆ°u bảng mục lục má»›i (new_index)" -#: builtin/commit.c:421 +#: builtin/commit.c:418 msgid "cannot do a partial commit during a merge." msgstr "" "không thể thá»±c hiện việc chuyển giao cục bá»™ trong khi Ä‘ang được hòa trá»™n." -#: builtin/commit.c:423 +#: builtin/commit.c:420 msgid "cannot do a partial commit during a cherry-pick." msgstr "" "không thể thá»±c hiện việc chuyển giao bá»™ pháºn trong khi Ä‘ang cherry-pick." -#: builtin/commit.c:433 +#: builtin/commit.c:429 msgid "cannot read the index" msgstr "không Ä‘á»c được bảng mục lục" -#: builtin/commit.c:453 +#: builtin/commit.c:447 msgid "unable to write temporary index file" msgstr "không thể ghi táºp tin lÆ°u bảng mục lục tạm thá»i" -#: builtin/commit.c:544 builtin/commit.c:550 +#: builtin/commit.c:557 builtin/commit.c:563 #, c-format msgid "invalid commit: %s" msgstr "lần chuyển giao không hợp lệ: %s" -#: builtin/commit.c:572 +#: builtin/commit.c:585 msgid "malformed --author parameter" msgstr "đối số cho --author bị dị hình" #: builtin/commit.c:592 #, c-format +msgid "invalid date format: %s" +msgstr "ngà y tháng không hợp lệ: %s" + +#: builtin/commit.c:609 +#, c-format msgid "Malformed ident string: '%s'" msgstr "Chuá»—i thụt lỠđầu dòng dị hình: “%sâ€" -#: builtin/commit.c:629 builtin/commit.c:663 builtin/commit.c:1014 +#: builtin/commit.c:642 +msgid "" +"unable to select a comment character that is not used\n" +"in the current commit message" +msgstr "" +"không thể chá»n má»™t ký tá»± ghi chú cái mà không được dùng\n" +"trong phần ghi chú hiện tại" + +#: builtin/commit.c:679 builtin/commit.c:712 builtin/commit.c:1086 #, c-format msgid "could not lookup commit %s" msgstr "không thể tìm kiếm commit (lần chuyển giao) %s" -#: builtin/commit.c:641 builtin/shortlog.c:273 +#: builtin/commit.c:691 builtin/shortlog.c:273 #, c-format msgid "(reading log message from standard input)\n" msgstr "(Ä‘ang Ä‘á»c thông Ä‘iệp nháºt ký từ đầu và o tiêu chuẩn)\n" -#: builtin/commit.c:643 +#: builtin/commit.c:693 msgid "could not read log from standard input" msgstr "không thể Ä‘á»c nháºt ký từ đầu và o tiêu chuẩn" -#: builtin/commit.c:647 +#: builtin/commit.c:697 #, c-format msgid "could not read log file '%s'" msgstr "không Ä‘á»c được tệp nháºt ký “%sâ€" -#: builtin/commit.c:654 -msgid "commit has empty message" -msgstr "lần chuyển giao có ghi chú trống rá»—ng" - -#: builtin/commit.c:670 +#: builtin/commit.c:719 msgid "could not read MERGE_MSG" msgstr "không thể Ä‘á»c MERGE_MSG" -#: builtin/commit.c:674 +#: builtin/commit.c:723 msgid "could not read SQUASH_MSG" msgstr "không thể Ä‘á»c SQUASH_MSG" -#: builtin/commit.c:678 +#: builtin/commit.c:727 #, c-format msgid "could not read '%s'" msgstr "Không thể Ä‘á»c “%sâ€." -#: builtin/commit.c:749 +#: builtin/commit.c:798 msgid "could not write commit template" msgstr "không thể ghi mẫu chuyển giao" -#: builtin/commit.c:764 +#: builtin/commit.c:816 #, c-format msgid "" "\n" @@ -4244,7 +4276,7 @@ msgstr "" "\t%s\n" "và thá» lại.\n" -#: builtin/commit.c:769 +#: builtin/commit.c:821 #, c-format msgid "" "\n" @@ -4259,7 +4291,7 @@ msgstr "" "\t%s\n" "và thá» lại.\n" -#: builtin/commit.c:782 +#: builtin/commit.c:834 #, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" @@ -4270,7 +4302,7 @@ msgstr "" "bắt đầu bằng “%c†sẽ được bá» qua, nếu phần chú thÃch rá»—ng sẽ hủy bá» lần " "chuyển giao.\n" -#: builtin/commit.c:789 +#: builtin/commit.c:841 #, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" @@ -4282,149 +4314,154 @@ msgstr "" "bắt đầu bằng “%c†sẽ được bá» qua; bạn có thể xóa chúng Ä‘i nếu muốn thế.\n" "Phần chú thÃch nà y nếu trống rá»—ng sẽ hủy bá» lần chuyển giao.\n" -#: builtin/commit.c:802 +#: builtin/commit.c:855 #, c-format -msgid "%sAuthor: %s" -msgstr "%sTác giả: %s" +msgid "%sAuthor: %.*s <%.*s>" +msgstr "%sTác giả: %.*s <%.*s>" -#: builtin/commit.c:809 +#: builtin/commit.c:863 #, c-format -msgid "%sCommitter: %s" -msgstr "%sNgÆ°á»i chuyển giao: %s" +msgid "%sDate: %s" +msgstr "%sNgà y tháng: %s" -#: builtin/commit.c:829 +#: builtin/commit.c:870 +#, c-format +msgid "%sCommitter: %.*s <%.*s>" +msgstr "%sNgÆ°á»i chuyển giao: %.*s <%.*s>" + +#: builtin/commit.c:888 msgid "Cannot read index" msgstr "Không Ä‘á»c được bảng mục lục" -#: builtin/commit.c:872 +#: builtin/commit.c:945 msgid "Error building trees" msgstr "Gặp lá»—i khi xây dá»±ng cây" -#: builtin/commit.c:887 builtin/tag.c:391 +#: builtin/commit.c:960 builtin/tag.c:495 #, c-format msgid "Please supply the message using either -m or -F option.\n" msgstr "Xin hãy cung cấp lá»i chú giải hoặc là dùng tùy chá»n -m hoặc là -F.\n" -#: builtin/commit.c:989 +#: builtin/commit.c:1061 #, c-format msgid "No existing author found with '%s'" msgstr "Không tìm thấy tác giả có sẵn vá»›i “%sâ€" -#: builtin/commit.c:1004 builtin/commit.c:1244 +#: builtin/commit.c:1076 builtin/commit.c:1316 #, c-format msgid "Invalid untracked files mode '%s'" msgstr "Chế Ä‘á»™ cho các táºp tin chÆ°a được theo dõi không hợp lệ “%sâ€" -#: builtin/commit.c:1041 +#: builtin/commit.c:1113 msgid "--long and -z are incompatible" msgstr "hai tùy chá»n -long và -z không tÆ°Æ¡ng thÃch vá»›i nhau" -#: builtin/commit.c:1071 +#: builtin/commit.c:1143 msgid "Using both --reset-author and --author does not make sense" msgstr "Sá» dụng cả hai tùy chá»n --reset-author và --author không hợp lý" -#: builtin/commit.c:1080 +#: builtin/commit.c:1152 msgid "You have nothing to amend." msgstr "Không có gì để mà “tu bổ†cả." -#: builtin/commit.c:1083 +#: builtin/commit.c:1155 msgid "You are in the middle of a merge -- cannot amend." msgstr "" "Bạn Ä‘ang ở giữa của quá trình hòa trá»™n -- không thể thá»±c hiện việc “tu bổâ€." -#: builtin/commit.c:1085 +#: builtin/commit.c:1157 msgid "You are in the middle of a cherry-pick -- cannot amend." msgstr "" "Bạn Ä‘ang ở giữa của quá trình cherry-pick -- không thể thá»±c hiện việc “tu " "bổâ€." -#: builtin/commit.c:1088 +#: builtin/commit.c:1160 msgid "Options --squash and --fixup cannot be used together" msgstr "Các tùy chá»n --squash và --fixup không thể sá» dụng cùng vá»›i nhau" -#: builtin/commit.c:1098 +#: builtin/commit.c:1170 msgid "Only one of -c/-C/-F/--fixup can be used." msgstr "" "Chỉ được dùng má»™t trong số tùy chá»n trong số các tùy chá»n -c/-C/-F/--fixup" -#: builtin/commit.c:1100 +#: builtin/commit.c:1172 msgid "Option -m cannot be combined with -c/-C/-F/--fixup." msgstr "Tùy chá»n -m không thể được tổ hợp cùng vá»›i -c/-C/-F/--fixup." -#: builtin/commit.c:1108 +#: builtin/commit.c:1180 msgid "--reset-author can be used only with -C, -c or --amend." msgstr "" "--reset-author chỉ có thể được sá» dụng vá»›i tùy chá»n -C, -c hay --amend." -#: builtin/commit.c:1125 +#: builtin/commit.c:1197 msgid "Only one of --include/--only/--all/--interactive/--patch can be used." msgstr "" "Chỉ má»™t trong các tùy chá»n --include/--only/--all/--interactive/--patch được " "sá» dụng." -#: builtin/commit.c:1127 +#: builtin/commit.c:1199 msgid "No paths with --include/--only does not make sense." msgstr "Không Ä‘Æ°á»ng dẫn vá»›i các tùy chá»n --include/--only không hợp lý." -#: builtin/commit.c:1129 +#: builtin/commit.c:1201 msgid "Clever... amending the last one with dirty index." msgstr "Giá»i... “tu bổ†cái cuối vá»›i bảng mục lục bẩn." -#: builtin/commit.c:1131 +#: builtin/commit.c:1203 msgid "Explicit paths specified without -i or -o; assuming --only paths..." msgstr "" "Những Ä‘Æ°á»ng dẫn rõ rà ng được chỉ ra không có tùy chá»n -i cÅ©ng không -o; coi " "là --only những Ä‘Æ°á»ng dẫn" -#: builtin/commit.c:1143 builtin/tag.c:639 +#: builtin/commit.c:1215 builtin/tag.c:727 #, c-format msgid "Invalid cleanup mode %s" msgstr "Chế Ä‘á»™ dá»n dẹp không hợp lệ %s" -#: builtin/commit.c:1148 +#: builtin/commit.c:1220 msgid "Paths with -a does not make sense." msgstr "Các Ä‘Æ°á»ng dẫn vá»›i tùy chá»n -a không hợp lý." -#: builtin/commit.c:1258 builtin/commit.c:1516 +#: builtin/commit.c:1330 builtin/commit.c:1595 msgid "show status concisely" msgstr "hiển thị trạng thái ở dạng súc tÃch" -#: builtin/commit.c:1260 builtin/commit.c:1518 +#: builtin/commit.c:1332 builtin/commit.c:1597 msgid "show branch information" msgstr "hiển thị thông tin nhánh" -#: builtin/commit.c:1262 builtin/commit.c:1520 builtin/push.c:490 +#: builtin/commit.c:1334 builtin/commit.c:1599 builtin/push.c:489 msgid "machine-readable output" msgstr "kết xuất dạng máy-có-thể-Ä‘á»c" -#: builtin/commit.c:1265 builtin/commit.c:1522 +#: builtin/commit.c:1337 builtin/commit.c:1601 msgid "show status in long format (default)" msgstr "hiển thị trạng thái ở định dạng dà i (mặc định)" -#: builtin/commit.c:1268 builtin/commit.c:1525 +#: builtin/commit.c:1340 builtin/commit.c:1604 msgid "terminate entries with NUL" msgstr "chấm dứt các mục bằng NUL" -#: builtin/commit.c:1270 builtin/commit.c:1528 builtin/fast-export.c:674 -#: builtin/fast-export.c:677 builtin/tag.c:514 +#: builtin/commit.c:1342 builtin/commit.c:1607 builtin/fast-export.c:703 +#: builtin/fast-export.c:706 builtin/tag.c:602 msgid "mode" msgstr "chế Ä‘á»™" -#: builtin/commit.c:1271 builtin/commit.c:1528 +#: builtin/commit.c:1343 builtin/commit.c:1607 msgid "show untracked files, optional modes: all, normal, no. (Default: all)" msgstr "" "hiển thị các táºp tin chÆ°a được theo dõi dấu vết, các chế Ä‘á»™ tùy chá»n: all, " "normal, no. (Mặc định: all)" -#: builtin/commit.c:1274 +#: builtin/commit.c:1346 msgid "show ignored files" msgstr "hiển thị các táºp tin ẩn" -#: builtin/commit.c:1275 parse-options.h:153 +#: builtin/commit.c:1347 parse-options.h:153 msgid "when" msgstr "khi" -#: builtin/commit.c:1276 +#: builtin/commit.c:1348 msgid "" "ignore changes to submodules, optional when: all, dirty, untracked. " "(Default: all)" @@ -4432,221 +4469,221 @@ msgstr "" "bá» qua các thay đổi trong mô-Ä‘un-con, tùy chá»n khi: all, dirty, untracked. " "(Mặc định: all)" -#: builtin/commit.c:1278 +#: builtin/commit.c:1350 msgid "list untracked files in columns" msgstr "hiển thị danh sách các táºp-tin chÆ°a được theo dõi trong các cá»™t" -#: builtin/commit.c:1347 +#: builtin/commit.c:1419 msgid "couldn't look up newly created commit" msgstr "không thể tìm thấy lần chuyển giao má»›i hÆ¡n đã được tạo" -#: builtin/commit.c:1349 +#: builtin/commit.c:1421 msgid "could not parse newly created commit" msgstr "" "không thể phân tÃch cú pháp của đối tượng chuyển giao má»›i hÆ¡n đã được tạo" -#: builtin/commit.c:1390 +#: builtin/commit.c:1469 msgid "detached HEAD" msgstr "đã rá»i khá»i HEAD" -#: builtin/commit.c:1392 +#: builtin/commit.c:1471 msgid " (root-commit)" msgstr " (root-commit)" -#: builtin/commit.c:1486 +#: builtin/commit.c:1565 msgid "suppress summary after successful commit" msgstr "không hiển thị tổng kết sau khi chuyển giao thà nh công" -#: builtin/commit.c:1487 +#: builtin/commit.c:1566 msgid "show diff in commit message template" msgstr "hiển thị sá»± khác biệt trong mẫu tin nhắn chuyển giao" -#: builtin/commit.c:1489 +#: builtin/commit.c:1568 msgid "Commit message options" msgstr "Các tùy chá»n ghi chú commit" -#: builtin/commit.c:1490 builtin/tag.c:512 +#: builtin/commit.c:1569 builtin/tag.c:600 msgid "read message from file" msgstr "Ä‘á»c chú thÃch từ táºp tin" -#: builtin/commit.c:1491 +#: builtin/commit.c:1570 msgid "author" msgstr "tác giả" -#: builtin/commit.c:1491 +#: builtin/commit.c:1570 msgid "override author for commit" msgstr "ghi đè tác giả cho commit" -#: builtin/commit.c:1492 builtin/gc.c:272 +#: builtin/commit.c:1571 builtin/gc.c:286 msgid "date" msgstr "ngà y tháng" -#: builtin/commit.c:1492 +#: builtin/commit.c:1571 msgid "override date for commit" msgstr "ghi đè ngà y tháng cho lần chuyển giao" -#: builtin/commit.c:1493 builtin/merge.c:216 builtin/notes.c:409 -#: builtin/notes.c:566 builtin/tag.c:510 +#: builtin/commit.c:1572 builtin/merge.c:216 builtin/notes.c:409 +#: builtin/notes.c:566 builtin/tag.c:598 msgid "message" msgstr "chú thÃch" -#: builtin/commit.c:1493 +#: builtin/commit.c:1572 msgid "commit message" msgstr "chú thÃch của lần chuyển giao" -#: builtin/commit.c:1494 +#: builtin/commit.c:1573 msgid "reuse and edit message from specified commit" msgstr "dùng lại các ghi chú từ lần chuyển giao đã cho nhÆ°ng có cho sá»a chữa" -#: builtin/commit.c:1495 +#: builtin/commit.c:1574 msgid "reuse message from specified commit" msgstr "dùng lại các ghi chú từ lần chuyển giao đã cho" -#: builtin/commit.c:1496 +#: builtin/commit.c:1575 msgid "use autosquash formatted message to fixup specified commit" msgstr "" "dùng ghi chú có định dạng autosquash để sá»a chữa lần chuyển giao đã chỉ ra" -#: builtin/commit.c:1497 +#: builtin/commit.c:1576 msgid "use autosquash formatted message to squash specified commit" msgstr "" "dùng lá»i nhắn có định dạng tá»± Ä‘á»™ng nén để nén lại các lần chuyển giao đã chỉ " "ra" -#: builtin/commit.c:1498 +#: builtin/commit.c:1577 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:1499 builtin/log.c:1180 builtin/revert.c:86 +#: builtin/commit.c:1578 builtin/log.c:1188 builtin/revert.c:86 msgid "add Signed-off-by:" msgstr "(nên dùng) thêm dòng Signed-off-by:" -#: builtin/commit.c:1500 +#: builtin/commit.c:1579 msgid "use specified template file" msgstr "sá» dụng táºp tin mẫu đã cho" -#: builtin/commit.c:1501 +#: builtin/commit.c:1580 msgid "force edit of commit" msgstr "ép buá»™c sá»a lần commit" -#: builtin/commit.c:1502 +#: builtin/commit.c:1581 msgid "default" msgstr "mặc định" -#: builtin/commit.c:1502 builtin/tag.c:515 +#: builtin/commit.c:1581 builtin/tag.c:603 msgid "how to strip spaces and #comments from message" msgstr "là m thế nà o để cắt bá» khoảng trắng và #ghichú từ mẩu tin nhắn" -#: builtin/commit.c:1503 +#: builtin/commit.c:1582 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:1504 builtin/merge.c:223 builtin/revert.c:92 -#: builtin/tag.c:516 +#: builtin/commit.c:1583 builtin/merge.c:223 builtin/revert.c:92 +#: builtin/tag.c:604 msgid "key-id" msgstr "mã-số-khóa" -#: builtin/commit.c:1505 builtin/merge.c:224 builtin/revert.c:93 +#: builtin/commit.c:1584 builtin/merge.c:224 builtin/revert.c:93 msgid "GPG sign commit" msgstr "ký lần chuyển giao dùng GPG" -#: builtin/commit.c:1508 +#: builtin/commit.c:1587 msgid "Commit contents options" msgstr "Các tùy ná»™i dung ghi chú commit" -#: builtin/commit.c:1509 +#: builtin/commit.c:1588 msgid "commit all changed files" msgstr "chuyển giao tất cả các táºp tin có thay đổi" -#: builtin/commit.c:1510 +#: builtin/commit.c:1589 msgid "add specified files to index for commit" msgstr "thêm các táºp tin đã chỉ ra và o bảng mục lục để chuyển giao" -#: builtin/commit.c:1511 +#: builtin/commit.c:1590 msgid "interactively add files" msgstr "thêm các táºp-tin bằng tÆ°Æ¡ng tác" -#: builtin/commit.c:1512 +#: builtin/commit.c:1591 msgid "interactively add changes" msgstr "thêm các thay đổi bằng tÆ°Æ¡ng tác" -#: builtin/commit.c:1513 +#: builtin/commit.c:1592 msgid "commit only specified files" msgstr "chỉ chuyển giao các táºp tin đã chỉ ra" -#: builtin/commit.c:1514 +#: builtin/commit.c:1593 msgid "bypass pre-commit hook" msgstr "vòng qua móc (hook) pre-commit" -#: builtin/commit.c:1515 +#: builtin/commit.c:1594 msgid "show what would be committed" msgstr "hiển thị xem cái gì có thể được chuyển giao" -#: builtin/commit.c:1526 +#: builtin/commit.c:1605 msgid "amend previous commit" msgstr "“tu bổ†(amend) lần commit trÆ°á»›c" -#: builtin/commit.c:1527 +#: builtin/commit.c:1606 msgid "bypass post-rewrite hook" msgstr "vòng qua móc (hook) post-rewrite" -#: builtin/commit.c:1532 +#: builtin/commit.c:1611 msgid "ok to record an empty change" msgstr "ok để ghi lại má»™t thay đổi trống rá»—ng" -#: builtin/commit.c:1534 +#: builtin/commit.c:1613 msgid "ok to record a change with an empty message" msgstr "ok để ghi các thay đổi vá»›i lá»i nhắn trống rá»—ng" -#: builtin/commit.c:1562 +#: builtin/commit.c:1641 msgid "could not parse HEAD commit" msgstr "không thể phân tÃch commit (lần chuyển giao) HEAD" -#: builtin/commit.c:1601 builtin/merge.c:518 +#: builtin/commit.c:1680 builtin/merge.c:518 #, c-format msgid "could not open '%s' for reading" msgstr "không thể mở “%s†để Ä‘á»c" -#: builtin/commit.c:1608 +#: builtin/commit.c:1687 #, c-format msgid "Corrupt MERGE_HEAD file (%s)" msgstr "Táºp tin MERGE_HEAD sai há»ng (%s)" -#: builtin/commit.c:1615 +#: builtin/commit.c:1694 msgid "could not read MERGE_MODE" msgstr "không thể Ä‘á»c MERGE_MODE" -#: builtin/commit.c:1634 +#: builtin/commit.c:1713 #, c-format msgid "could not read commit message: %s" msgstr "không thể Ä‘á»c phần chú thÃch (message) commit (lần chuyển giao): %s" -#: builtin/commit.c:1645 +#: builtin/commit.c:1724 #, c-format msgid "Aborting commit; you did not edit the message.\n" msgstr "" "Äang bá» qua việc chuyển giao; bạn đã không biên soạn phần chú thÃch " "(message).\n" -#: builtin/commit.c:1650 +#: builtin/commit.c:1729 #, c-format msgid "Aborting commit due to empty commit message.\n" msgstr "Bãi bá» việc chuyển giao bởi vì phần chú thÃch của nó trống rá»—ng.\n" -#: builtin/commit.c:1665 builtin/merge.c:857 builtin/merge.c:882 +#: builtin/commit.c:1744 builtin/merge.c:851 builtin/merge.c:876 msgid "failed to write commit object" msgstr "gặp lá»—i khi ghi đối tượng chuyển giao" -#: builtin/commit.c:1686 +#: builtin/commit.c:1756 msgid "cannot lock HEAD ref" msgstr "không thể khóa HEAD ref (tham chiếu)" -#: builtin/commit.c:1690 +#: builtin/commit.c:1769 msgid "cannot update HEAD ref" msgstr "không thể cáºp nháºt ref (tham chiếu) HEAD" -#: builtin/commit.c:1701 +#: builtin/commit.c:1780 msgid "" "Repository has been updated, but unable to write\n" "new_index file. Check that disk is not full or quota is\n" @@ -4801,47 +4838,47 @@ msgstr "git describe [các-tùy-chá»n] <commit-ish>*" msgid "git describe [options] --dirty" msgstr "git describe [các-tùy-chá»n] --dirty" -#: builtin/describe.c:225 +#: builtin/describe.c:216 #, c-format msgid "annotated tag %s not available" msgstr "thẻ đã được ghi chú %s không sẵn để dùng" -#: builtin/describe.c:229 +#: builtin/describe.c:220 #, c-format msgid "annotated tag %s has no embedded name" msgstr "thẻ được chú giải %s không có tên nhúng" -#: builtin/describe.c:231 +#: builtin/describe.c:222 #, c-format msgid "tag '%s' is really '%s' here" msgstr "thẻ “%s†đã thá»±c sá»± ở đây “%s†rồi" -#: builtin/describe.c:258 +#: builtin/describe.c:249 #, c-format msgid "Not a valid object name %s" msgstr "Không phải tên đối tượng %s hợp lệ" -#: builtin/describe.c:261 +#: builtin/describe.c:252 #, c-format msgid "%s is not a valid '%s' object" msgstr "%s không phải là má»™t đối tượng “%s†hợp lệ" -#: builtin/describe.c:278 +#: builtin/describe.c:269 #, c-format msgid "no tag exactly matches '%s'" msgstr "không có thẻ nà o khá»›p chÃnh xác vá»›i “%sâ€" -#: builtin/describe.c:280 +#: builtin/describe.c:271 #, c-format msgid "searching to describe %s\n" msgstr "Äang tìm kiếm để mô tả %s\n" -#: builtin/describe.c:327 +#: builtin/describe.c:318 #, c-format msgid "finished search at %s\n" msgstr "việc tìm kiếm đã kết thúc tại %s\n" -#: builtin/describe.c:354 +#: builtin/describe.c:345 #, c-format msgid "" "No annotated tags can describe '%s'.\n" @@ -4850,7 +4887,7 @@ msgstr "" "Không có thẻ được chú giải nà o được mô tả là “%sâ€.\n" "Tuy nhiên, ở đây có những thẻ không được chú giải: hãy thá» --tags." -#: builtin/describe.c:358 +#: builtin/describe.c:349 #, c-format msgid "" "No tags can describe '%s'.\n" @@ -4859,12 +4896,12 @@ msgstr "" "Không có thẻ (tag) có thể mô tả “%sâ€.\n" "Hãy thá» --always, hoặt tạo má»™t số thẻ." -#: builtin/describe.c:379 +#: builtin/describe.c:370 #, c-format msgid "traversed %lu commits\n" msgstr "đã xuyên %lu qua lần chuyển giao\n" -#: builtin/describe.c:382 +#: builtin/describe.c:373 #, c-format msgid "" "more than %i tags found; listed %i most recent\n" @@ -4873,63 +4910,63 @@ msgstr "" "tìm thấy nhiá»u hÆ¡n %i thẻ (tag); đã liệt kê %i gần đây nhất\n" "bá» Ä‘i tìm kiếm tại %s\n" -#: builtin/describe.c:404 +#: builtin/describe.c:395 msgid "find the tag that comes after the commit" msgstr "tìm các thẻ mà nó đến trÆ°á»›c lần chuyển giao" -#: builtin/describe.c:405 +#: builtin/describe.c:396 msgid "debug search strategy on stderr" msgstr "chiến lược tìm kiếm gỡ lá»—i trên đầu ra lá»—i chuẩn stderr" -#: builtin/describe.c:406 +#: builtin/describe.c:397 msgid "use any ref" msgstr "dùng ref bất kỳ" -#: builtin/describe.c:407 +#: builtin/describe.c:398 msgid "use any tag, even unannotated" msgstr "dùng thẻ bất kỳ, cả khi “unannotatedâ€" -#: builtin/describe.c:408 +#: builtin/describe.c:399 msgid "always use long format" msgstr "luôn dùng định dạng dà i" -#: builtin/describe.c:409 +#: builtin/describe.c:400 msgid "only follow first parent" msgstr "chỉ theo cha mẹ đầu tiên" -#: builtin/describe.c:412 +#: builtin/describe.c:403 msgid "only output exact matches" msgstr "chỉ xuất những gì khá»›p chÃnh xác" -#: builtin/describe.c:414 +#: builtin/describe.c:405 msgid "consider <n> most recent tags (default: 10)" msgstr "coi nhÆ° <n> thẻ gần đây nhất (mặc định: 10)" -#: builtin/describe.c:416 +#: builtin/describe.c:407 msgid "only consider tags matching <pattern>" msgstr "chỉ cân nhắc đến những thẻ khá»›p vá»›i <mẫu>" -#: builtin/describe.c:418 builtin/name-rev.c:321 +#: builtin/describe.c:409 builtin/name-rev.c:318 msgid "show abbreviated commit object as fallback" msgstr "hiển thị đối tượng chuyển giao vắn tắt nhÆ° là fallback" -#: builtin/describe.c:419 +#: builtin/describe.c:410 msgid "mark" msgstr "dấu" -#: builtin/describe.c:420 +#: builtin/describe.c:411 msgid "append <mark> on dirty working tree (default: \"-dirty\")" msgstr "thêm <dấu> trên cây thÆ° mục là m việc bẩn (mặc định \"-dirty\")" -#: builtin/describe.c:438 +#: builtin/describe.c:429 msgid "--long is incompatible with --abbrev=0" msgstr "--long là xung khắc vá»›i tùy chá»n --abbrev=0" -#: builtin/describe.c:464 +#: builtin/describe.c:455 msgid "No names found, cannot describe anything." msgstr "Không tìm thấy các tên, không thể mô tả gì cả." -#: builtin/describe.c:484 +#: builtin/describe.c:475 msgid "--dirty is incompatible with commit-ishes" msgstr "--dirty là xung khắc vá»›i các tùy chá»n commit-ish" @@ -4962,46 +4999,54 @@ msgstr "đã cho nhiá»u hÆ¡n hai đối tượng blob: “%sâ€" msgid "unhandled object '%s' given." msgstr "đã cho đối tượng không thể nắm giữ “%sâ€." -#: builtin/fast-export.c:22 +#: builtin/fast-export.c:23 msgid "git fast-export [rev-list-opts]" msgstr "git fast-export [rev-list-opts]" -#: builtin/fast-export.c:673 +#: builtin/fast-export.c:702 msgid "show progress after <n> objects" msgstr "hiển thị tiến triển sau <n> đối tượng" -#: builtin/fast-export.c:675 +#: builtin/fast-export.c:704 msgid "select handling of signed tags" msgstr "chá»n Ä‘iá»u khiển của thẻ đã ký" -#: builtin/fast-export.c:678 +#: builtin/fast-export.c:707 msgid "select handling of tags that tag filtered objects" msgstr "chá»n sá»± xá» lý của các thẻ, cái mà đánh thẻ các đối tượng được lá»c ra" -#: builtin/fast-export.c:681 +#: builtin/fast-export.c:710 msgid "Dump marks to this file" msgstr "Äổ các đánh dấu nà y và o táºp-tin" -#: builtin/fast-export.c:683 +#: builtin/fast-export.c:712 msgid "Import marks from this file" msgstr "nháºp và o đánh dấu từ táºp tin nà y" -#: builtin/fast-export.c:685 +#: builtin/fast-export.c:714 msgid "Fake a tagger when tags lack one" msgstr "Là m giả má»™t cái thẻ khi thẻ bị thiếu má»™t cái" -#: builtin/fast-export.c:687 +#: builtin/fast-export.c:716 msgid "Output full tree for each commit" msgstr "Xuất ra toà n bá»™ cây cho má»—i lần chuyển giao" -#: builtin/fast-export.c:689 +#: builtin/fast-export.c:718 msgid "Use the done feature to terminate the stream" msgstr "Sá» dụng tÃnh năng done để chấm dứt luồng dữ liệu" -#: builtin/fast-export.c:690 +#: builtin/fast-export.c:719 msgid "Skip output of blob data" msgstr "Bá» qua kết xuất của dữ liệu blob" +#: builtin/fast-export.c:720 +msgid "refspec" +msgstr "refspec" + +#: builtin/fast-export.c:721 +msgid "Apply refspec to exported refs" +msgstr "Ãp dụng refspec cho refs đã xuất" + #: builtin/fetch.c:20 msgid "git fetch [<options>] [<repository> [<refspec>...]]" msgstr "git fetch [<các-tùy-chá»n>] [<kho-chứa> [<refspec>...]]" @@ -5018,155 +5063,163 @@ 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:75 +#: builtin/fetch.c:90 msgid "fetch from all remotes" msgstr "lấy vá» từ tất cả các máy chủ" -#: builtin/fetch.c:77 +#: builtin/fetch.c:92 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:79 +#: builtin/fetch.c:94 msgid "path to upload pack on remote end" msgstr "Ä‘Æ°á»ng dẫn đến gói (pack) tải lên trên máy chủ cuối" -#: builtin/fetch.c:80 +#: builtin/fetch.c:95 msgid "force overwrite of local branch" msgstr "ép buá»™c ghi đè lên nhánh ná»™i bá»™" -#: builtin/fetch.c:82 +#: builtin/fetch.c:97 msgid "fetch from multiple remotes" msgstr "lấy từ nhiá»u máy chủ cùng lúc" -#: builtin/fetch.c:84 +#: builtin/fetch.c:99 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:86 +#: builtin/fetch.c:101 msgid "do not fetch all tags (--no-tags)" msgstr "không lấy tất cả các thẻ (--no-tags)" -#: builtin/fetch.c:88 +#: builtin/fetch.c:103 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:89 +#: builtin/fetch.c:104 msgid "on-demand" msgstr "khi-cần" -#: builtin/fetch.c:90 +#: builtin/fetch.c:105 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:94 +#: builtin/fetch.c:109 msgid "keep downloaded pack" msgstr "giữ các gói đã tải vá»" -#: builtin/fetch.c:96 +#: builtin/fetch.c:111 msgid "allow updating of HEAD ref" msgstr "cho phép cáºp nháºt th.chiếu HEAD" -#: builtin/fetch.c:99 +#: builtin/fetch.c:114 msgid "deepen history of shallow clone" msgstr "là m sâu hÆ¡n lịch sá» của bản sao" -#: builtin/fetch.c:101 +#: builtin/fetch.c:116 msgid "convert to a complete repository" msgstr "chuyển đổi hoà n toà n sang kho git" -#: builtin/fetch.c:103 builtin/log.c:1197 +#: builtin/fetch.c:118 builtin/log.c:1205 msgid "dir" msgstr "tmục" -#: builtin/fetch.c:104 +#: builtin/fetch.c:119 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:107 +#: builtin/fetch.c:122 msgid "default mode for recursion" msgstr "chế Ä‘á»™ mặc định cho đệ qui" -#: builtin/fetch.c:109 +#: builtin/fetch.c:124 msgid "accept refs that update .git/shallow" msgstr "chấp nháºn tham chiếu cáºp nháºt .git/shallow" -#: builtin/fetch.c:347 +#: builtin/fetch.c:125 +msgid "refmap" +msgstr "refmap" + +#: builtin/fetch.c:126 +msgid "specify fetch refmap" +msgstr "chỉ ra refmap cần lấy vá»" + +#: builtin/fetch.c:376 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:411 +#: builtin/fetch.c:440 #, c-format msgid "object %s not found" msgstr "Không tìm thấy đối tượng %s" -#: builtin/fetch.c:416 +#: builtin/fetch.c:445 msgid "[up to date]" msgstr "[đã cáºp nháºt]" -#: builtin/fetch.c:430 +#: builtin/fetch.c:459 #, 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:431 builtin/fetch.c:517 +#: builtin/fetch.c:460 builtin/fetch.c:546 msgid "[rejected]" msgstr "[Bị từ chối]" -#: builtin/fetch.c:442 +#: builtin/fetch.c:471 msgid "[tag update]" msgstr "[cáºp nháºt thẻ]" -#: builtin/fetch.c:444 builtin/fetch.c:479 builtin/fetch.c:497 +#: builtin/fetch.c:473 builtin/fetch.c:508 builtin/fetch.c:526 msgid " (unable to update local ref)" msgstr " (không thể cáºp nháºt tham chiếu (ref) ná»™i bá»™)" -#: builtin/fetch.c:462 +#: builtin/fetch.c:491 msgid "[new tag]" msgstr "[thẻ má»›i]" -#: builtin/fetch.c:465 +#: builtin/fetch.c:494 msgid "[new branch]" msgstr "[nhánh má»›i]" -#: builtin/fetch.c:468 +#: builtin/fetch.c:497 msgid "[new ref]" msgstr "[ref (tham chiếu) má»›i]" -#: builtin/fetch.c:513 +#: builtin/fetch.c:542 msgid "unable to update local ref" msgstr "không thể cáºp nháºt tham chiếu (ref) ná»™i bá»™" -#: builtin/fetch.c:513 +#: builtin/fetch.c:542 msgid "forced update" msgstr "cưỡng bức cáºp nháºt" -#: builtin/fetch.c:519 +#: builtin/fetch.c:548 msgid "(non-fast-forward)" msgstr "(non-fast-forward)" -#: builtin/fetch.c:552 builtin/fetch.c:785 +#: builtin/fetch.c:581 builtin/fetch.c:814 #, c-format msgid "cannot open %s: %s\n" msgstr "không thể mở %s: %s\n" -#: builtin/fetch.c:561 +#: builtin/fetch.c:590 #, 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:579 +#: builtin/fetch.c:608 #, 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:667 builtin/fetch.c:750 +#: builtin/fetch.c:696 builtin/fetch.c:779 #, c-format msgid "From %.*s\n" msgstr "Từ %.*s\n" -#: builtin/fetch.c:678 +#: builtin/fetch.c:707 #, c-format msgid "" "some local refs could not be updated; try running\n" @@ -5175,57 +5228,57 @@ msgstr "" "má»™t số tham chiếu (refs) 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:730 +#: builtin/fetch.c:759 #, 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:731 +#: builtin/fetch.c:760 #, c-format msgid " (%s has become dangling)" msgstr " (%s đã trở thà nh không đầu (không được quản lý))" -#: builtin/fetch.c:755 +#: builtin/fetch.c:784 msgid "[deleted]" msgstr "[đã xóa]" -#: builtin/fetch.c:756 builtin/remote.c:1050 +#: builtin/fetch.c:785 builtin/remote.c:1059 msgid "(none)" msgstr "(không)" -#: builtin/fetch.c:775 +#: builtin/fetch.c:804 #, 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:794 +#: builtin/fetch.c:823 #, 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:797 +#: builtin/fetch.c:826 #, 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:853 +#: builtin/fetch.c:882 #, 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:1015 +#: builtin/fetch.c:1044 #, c-format msgid "Fetching %s\n" msgstr "Äang lấy vá» %s\n" -#: builtin/fetch.c:1017 builtin/remote.c:90 +#: builtin/fetch.c:1046 builtin/remote.c:90 #, c-format msgid "Could not fetch %s" msgstr "không thể lấy vá» %s" -#: builtin/fetch.c:1035 +#: builtin/fetch.c:1064 msgid "" "No remote repository specified. Please, specify either a URL or a\n" "remote name from which new revisions should be fetched." @@ -5233,32 +5286,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:1059 +#: builtin/fetch.c:1087 msgid "You need to specify a tag name." msgstr "Bạn phải định rõ tên thẻ." -#: builtin/fetch.c:1107 +#: builtin/fetch.c:1131 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:1109 +#: builtin/fetch.c:1133 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:1132 +#: builtin/fetch.c:1156 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:1134 +#: builtin/fetch.c:1158 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:1145 +#: builtin/fetch.c:1169 #, 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:1153 +#: builtin/fetch.c:1177 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ý" @@ -5267,9 +5320,9 @@ msgid "git fmt-merge-msg [-m <message>] [--log[=<n>]|--no-log] [--file <file>]" msgstr "" "git fmt-merge-msg [-m <chú_thÃch>] [--log[=<n>]|--no-log] [--file <táºp-tin>]" -#: builtin/fmt-merge-msg.c:663 builtin/fmt-merge-msg.c:666 builtin/grep.c:700 -#: builtin/merge.c:196 builtin/repack.c:175 builtin/repack.c:179 -#: builtin/show-branch.c:654 builtin/show-ref.c:178 builtin/tag.c:501 +#: builtin/fmt-merge-msg.c:663 builtin/fmt-merge-msg.c:666 builtin/grep.c:698 +#: builtin/merge.c:196 builtin/repack.c:179 builtin/repack.c:183 +#: builtin/show-branch.c:654 builtin/show-ref.c:178 builtin/tag.c:589 #: parse-options.h:132 parse-options.h:239 msgid "n" msgstr "n" @@ -5294,43 +5347,43 @@ msgstr "dùng <văn bản thÆ°á»ng> để bắt đầu ghi chú" msgid "file to read from" msgstr "táºp tin để Ä‘á»c dữ liệu từ đó" -#: builtin/for-each-ref.c:1063 +#: builtin/for-each-ref.c:1051 msgid "git for-each-ref [options] [<pattern>]" msgstr "git for-each-ref [các-tùy-chá»n] [<mẫu>]" -#: builtin/for-each-ref.c:1078 +#: builtin/for-each-ref.c:1066 msgid "quote placeholders suitably for shells" msgstr "trÃch dẫn để phù hợp cho hệ vá» (shell)" -#: builtin/for-each-ref.c:1080 +#: builtin/for-each-ref.c:1068 msgid "quote placeholders suitably for perl" msgstr "trÃch dẫn để phù hợp cho perl" -#: builtin/for-each-ref.c:1082 +#: builtin/for-each-ref.c:1070 msgid "quote placeholders suitably for python" msgstr "trÃch dẫn để phù hợp cho python" -#: builtin/for-each-ref.c:1084 +#: builtin/for-each-ref.c:1072 msgid "quote placeholders suitably for tcl" msgstr "trÃch dẫn để phù hợp cho tcl" -#: builtin/for-each-ref.c:1087 +#: builtin/for-each-ref.c:1075 msgid "show only <n> matched refs" msgstr "hiển thị chỉ <n> tham chiếu khá»›p" -#: builtin/for-each-ref.c:1088 builtin/replace.c:177 +#: builtin/for-each-ref.c:1076 builtin/replace.c:435 msgid "format" msgstr "định dạng" -#: builtin/for-each-ref.c:1088 +#: builtin/for-each-ref.c:1076 msgid "format to use for the output" msgstr "định dạng sẽ dùng cho đầu ra" -#: builtin/for-each-ref.c:1089 +#: builtin/for-each-ref.c:1077 msgid "key" msgstr "khóa" -#: builtin/for-each-ref.c:1090 +#: builtin/for-each-ref.c:1078 msgid "field name to sort on" msgstr "tên trÆ°á»ng cần sắp xếp" @@ -5338,55 +5391,55 @@ msgstr "tên trÆ°á»ng cần sắp xếp" msgid "Checking connectivity" msgstr "Äang kiểm tra kết nối" -#: builtin/fsck.c:544 +#: builtin/fsck.c:538 msgid "Checking object directories" msgstr "Äang kiểm tra các thÆ° mục đối tượng" -#: builtin/fsck.c:607 +#: builtin/fsck.c:601 msgid "git fsck [options] [<object>...]" msgstr "git fsck [các-tùy-chá»n] [<đối-tượng>...]" -#: builtin/fsck.c:613 +#: builtin/fsck.c:607 msgid "show unreachable objects" msgstr "hiển thị các đối tượng không thể Ä‘á»c được" -#: builtin/fsck.c:614 +#: builtin/fsck.c:608 msgid "show dangling objects" msgstr "hiển thị các đối tượng không được quản lý" -#: builtin/fsck.c:615 +#: builtin/fsck.c:609 msgid "report tags" msgstr "báo cáo các thẻ" -#: builtin/fsck.c:616 +#: builtin/fsck.c:610 msgid "report root nodes" msgstr "báo cáo node gốc" -#: builtin/fsck.c:617 +#: builtin/fsck.c:611 msgid "make index objects head nodes" msgstr "tạo “ index objects head nodesâ€" -#: builtin/fsck.c:618 +#: builtin/fsck.c:612 msgid "make reflogs head nodes (default)" msgstr "tạo reflogs head nodes (mặc định)" -#: builtin/fsck.c:619 +#: builtin/fsck.c:613 msgid "also consider packs and alternate objects" msgstr "cÅ©ng cân nhắc đến các đối tượng gói và thay thế" -#: builtin/fsck.c:620 +#: builtin/fsck.c:614 msgid "enable more strict checking" msgstr "cho phép kiểm tra hạn chế hÆ¡n" -#: builtin/fsck.c:622 +#: builtin/fsck.c:616 msgid "write dangling objects in .git/lost-found" msgstr "ghi các đối tượng không được quản lý trong .git/lost-found" -#: builtin/fsck.c:623 builtin/prune.c:144 +#: builtin/fsck.c:617 builtin/prune.c:144 msgid "show progress" msgstr "hiển thị quá trình" -#: builtin/fsck.c:673 +#: builtin/fsck.c:667 msgid "Checking objects" msgstr "Äang kiểm tra các đối tượng" @@ -5394,50 +5447,50 @@ msgstr "Äang kiểm tra các đối tượng" msgid "git gc [options]" msgstr "git gc [các-tùy-chá»n]" -#: builtin/gc.c:90 +#: builtin/gc.c:91 #, c-format msgid "Invalid %s: '%s'" msgstr "%s không hợp lệ: “%sâ€" -#: builtin/gc.c:117 +#: builtin/gc.c:118 #, c-format msgid "insanely long object directory %.*s" msgstr "thÆ° mục đối tượng dà i má»™t cách Ä‘iên rồ %.*s" -#: builtin/gc.c:273 +#: builtin/gc.c:287 msgid "prune unreferenced objects" msgstr "xóa bá» các đối tượng không được tham chiếu" -#: builtin/gc.c:275 +#: builtin/gc.c:289 msgid "be more thorough (increased runtime)" msgstr "cẩn tháºn hÆ¡n nữa (tăng thá»i gian chạy)" -#: builtin/gc.c:276 +#: builtin/gc.c:290 msgid "enable auto-gc mode" msgstr "báºt chế Ä‘á»™ auto-gc" -#: builtin/gc.c:277 +#: builtin/gc.c:291 msgid "force running gc even if there may be another gc running" msgstr "buá»™c gc chạy ngay cả khi có tiến trình gc khác Ä‘ang chạy" -#: builtin/gc.c:318 +#: builtin/gc.c:332 #, c-format msgid "Auto packing the repository in background for optimum performance.\n" msgstr "" "Tá»± Ä‘á»™ng đóng gói kho chứa trên ná»n hệ thống để tối Æ°u hóa hiệu suất là m " "việc.\n" -#: builtin/gc.c:320 +#: builtin/gc.c:334 #, c-format msgid "Auto packing the repository for optimum performance.\n" msgstr "Tá»± Ä‘á»™ng đóng gói kho chứa để tối Æ°u hóa hiệu suất là m việc.\n" -#: builtin/gc.c:321 +#: builtin/gc.c:335 #, c-format msgid "See \"git help gc\" for manual housekeeping.\n" msgstr "Xem \"git help gc\" để có hÆ°á»›ng dẫn cụ thể vá» cách dá»n dẹp kho git.\n" -#: builtin/gc.c:336 +#: builtin/gc.c:353 #, c-format msgid "" "gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)" @@ -5445,7 +5498,7 @@ msgstr "" "gc Ä‘ang được thá»±c hiện trên máy “%s†pid %<PRIuMAX> (dùng --force nếu không " "phải thế)" -#: builtin/gc.c:361 +#: builtin/gc.c:375 msgid "" "There are too many unreachable loose objects; run 'git prune' to remove them." msgstr "" @@ -5461,227 +5514,222 @@ msgstr "git grep [các-tùy-chá»n] [-e] <mẫu> [<rev>...] [[--] <Ä‘Æ°á»ng-dẠmsgid "grep: failed to create thread: %s" msgstr "grep: gặp lá»—i tạo tuyến (thread): %s" -#: builtin/grep.c:365 -#, c-format -msgid "Failed to chdir: %s" -msgstr "Gặp lá»—i vá»›i lệnh chdir: %s" - -#: builtin/grep.c:443 builtin/grep.c:478 +#: builtin/grep.c:441 builtin/grep.c:476 #, c-format msgid "unable to read tree (%s)" msgstr "không thể Ä‘á»c cây (%s)" -#: builtin/grep.c:493 +#: builtin/grep.c:491 #, 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:549 +#: builtin/grep.c:547 #, 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:566 +#: builtin/grep.c:564 #, c-format msgid "cannot open '%s'" msgstr "không mở được “%sâ€" -#: builtin/grep.c:640 +#: builtin/grep.c:638 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:642 +#: builtin/grep.c:640 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:644 +#: builtin/grep.c:642 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:646 +#: builtin/grep.c:644 msgid "search also in ignored files" msgstr "tìm cả trong các táºp tin đã bị lá» Ä‘i" -#: builtin/grep.c:649 +#: builtin/grep.c:647 msgid "show non-matching lines" msgstr "hiển thị những dòng không khá»›p vá»›i mẫu" -#: builtin/grep.c:651 +#: builtin/grep.c:649 msgid "case insensitive matching" msgstr "phân biệt HOA/thÆ°á»ng" -#: builtin/grep.c:653 +#: builtin/grep.c:651 msgid "match patterns only at word boundaries" msgstr "chỉ khá»›p mẫu tại Ä‘Æ°á»ng ranh giá»›i từ" -#: builtin/grep.c:655 +#: builtin/grep.c:653 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:657 +#: builtin/grep.c:655 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:660 +#: builtin/grep.c:658 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:662 +#: builtin/grep.c:660 msgid "descend at most <depth> levels" msgstr "giảm xuống Ãt nhất mức <sâu>" -#: builtin/grep.c:666 +#: builtin/grep.c:664 msgid "use extended POSIX regular expressions" msgstr "dùng biểu thức chÃnh qui POSIX có mở rá»™ng" -#: builtin/grep.c:669 +#: builtin/grep.c:667 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:672 +#: builtin/grep.c:670 msgid "interpret patterns as fixed strings" msgstr "diá»…n dịch các mẫu nhÆ° là chuá»—i cố định" -#: builtin/grep.c:675 +#: builtin/grep.c:673 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:678 +#: builtin/grep.c:676 msgid "show line numbers" msgstr "hiển thị số của dòng" -#: builtin/grep.c:679 +#: builtin/grep.c:677 msgid "don't show filenames" msgstr "không hiển thị tên táºp tin" -#: builtin/grep.c:680 +#: builtin/grep.c:678 msgid "show filenames" msgstr "hiển thị các tên táºp tin" -#: builtin/grep.c:682 +#: builtin/grep.c:680 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:684 +#: builtin/grep.c:682 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:686 +#: builtin/grep.c:684 msgid "synonym for --files-with-matches" msgstr "đồng nghÄ©a vá»›i --files-with-matches" -#: builtin/grep.c:689 +#: builtin/grep.c:687 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:691 +#: builtin/grep.c:689 msgid "print NUL after filenames" msgstr "thêm NUL và o sau tên táºp tin" -#: builtin/grep.c:693 +#: builtin/grep.c:691 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:694 +#: builtin/grep.c:692 msgid "highlight matches" msgstr "tô sáng cái khá»›p" -#: builtin/grep.c:696 +#: builtin/grep.c:694 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:698 +#: builtin/grep.c:696 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:701 +#: builtin/grep.c:699 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:704 +#: builtin/grep.c:702 msgid "show <n> context lines before matches" msgstr "hiển thị <n> dòng ná»™i dung trÆ°á»›c khá»›p" -#: builtin/grep.c:706 +#: builtin/grep.c:704 msgid "show <n> context lines after matches" msgstr "hiển thị <n> dòng ná»™i dung sau khá»›p" -#: builtin/grep.c:707 +#: builtin/grep.c:705 msgid "shortcut for -C NUM" msgstr "dạng viết tắt của -C Sá»" -#: builtin/grep.c:710 +#: builtin/grep.c:708 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:712 +#: builtin/grep.c:710 msgid "show the surrounding function" msgstr "hiển thị hà m bao quanh" -#: builtin/grep.c:715 +#: builtin/grep.c:713 msgid "read patterns from file" msgstr "Ä‘á»c mẫu từ táºp-tin" -#: builtin/grep.c:717 +#: builtin/grep.c:715 msgid "match <pattern>" msgstr "match <mẫu>" -#: builtin/grep.c:719 +#: builtin/grep.c:717 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:731 +#: builtin/grep.c:729 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:733 +#: builtin/grep.c:731 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:735 +#: builtin/grep.c:733 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:739 +#: builtin/grep.c:737 msgid "pager" msgstr "giấy" -#: builtin/grep.c:739 +#: builtin/grep.c:737 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:742 +#: builtin/grep.c:740 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:743 builtin/show-ref.c:187 +#: builtin/grep.c:741 builtin/show-ref.c:187 msgid "show usage" msgstr "hiển thị cách dùng" -#: builtin/grep.c:810 +#: builtin/grep.c:808 msgid "no pattern given." msgstr "chÆ°a chỉ ra mẫu." -#: builtin/grep.c:868 +#: builtin/grep.c:866 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:891 +#: builtin/grep.c:892 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:896 +#: builtin/grep.c:897 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:899 +#: builtin/grep.c:900 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:907 +#: builtin/grep.c:908 msgid "both --cached and trees are given." msgstr "cả hai --cached và các cây phải được chỉ ra." @@ -5697,7 +5745,7 @@ msgstr "" msgid "git hash-object --stdin-paths < <list-of-paths>" msgstr "git hash-object --stdin-paths < <danh-sách-Ä‘Æ°á»ng-dẫn>" -#: builtin/hash-object.c:72 builtin/tag.c:521 +#: builtin/hash-object.c:72 builtin/tag.c:609 msgid "type" msgstr "kiểu" @@ -5841,280 +5889,291 @@ msgstr "cách dùng: %s%s" msgid "`git %s' is aliased to `%s'" msgstr "“git %s†được đặt bà danh thà nh “%sâ€" -#: builtin/index-pack.c:184 +#: builtin/index-pack.c:145 +#, c-format +msgid "unable to open %s" +msgstr "không thể mở %s" + +#: builtin/index-pack.c:191 #, c-format msgid "object type mismatch at %s" msgstr "kiểu đối tượng không khá»›p tại %s" -#: builtin/index-pack.c:204 -msgid "object of unexpected type" -msgstr "đối tượng của kiểu không mong đợi" +#: builtin/index-pack.c:211 +#, c-format +msgid "did not receive expected object %s" +msgstr "Không thể lấy vỠđối tượng cần %s" + +#: builtin/index-pack.c:214 +#, c-format +msgid "object %s: expected type %s, found %s" +msgstr "đối tượng %s: cần kiểu %s nhÆ°ng lại nháºn được %s" -#: builtin/index-pack.c:244 +#: builtin/index-pack.c:256 #, c-format msgid "cannot fill %d byte" msgid_plural "cannot fill %d bytes" msgstr[0] "không thể Ä‘iá»n và o %d byte" msgstr[1] "không thể Ä‘iá»n và o %d byte" -#: builtin/index-pack.c:254 +#: builtin/index-pack.c:266 msgid "early EOF" msgstr "gặp kết thúc EOF quá sá»›m" -#: builtin/index-pack.c:255 +#: builtin/index-pack.c:267 msgid "read error on input" msgstr "lá»—i Ä‘á»c ở đầu và o" -#: builtin/index-pack.c:267 +#: builtin/index-pack.c:279 msgid "used more bytes than were available" msgstr "sá» dụng nhiá»u hÆ¡n số lượng byte mà nó sẵn có" -#: builtin/index-pack.c:274 +#: builtin/index-pack.c:286 msgid "pack too large for current definition of off_t" msgstr "pack quá lá»›n so vá»›i định nghÄ©a hiện tại của kiểu off_t" -#: builtin/index-pack.c:290 +#: builtin/index-pack.c:302 #, c-format msgid "unable to create '%s'" msgstr "không thể tạo “%sâ€" -#: builtin/index-pack.c:295 +#: builtin/index-pack.c:307 #, c-format msgid "cannot open packfile '%s'" msgstr "không thể mở packfile “%sâ€" -#: builtin/index-pack.c:309 +#: builtin/index-pack.c:321 msgid "pack signature mismatch" msgstr "chữ ký cho pack không khá»›p" -#: builtin/index-pack.c:311 +#: builtin/index-pack.c:323 #, c-format msgid "pack version %<PRIu32> unsupported" msgstr "không há»— trợ phiên bản pack %<PRIu32>" -#: builtin/index-pack.c:329 +#: builtin/index-pack.c:341 #, c-format msgid "pack has bad object at offset %lu: %s" msgstr "pack có đối tượng sai khoảng bù (offset) %lu: %s" -#: builtin/index-pack.c:451 +#: builtin/index-pack.c:462 #, c-format msgid "inflate returned %d" msgstr "xả nén trả vá» %d" -#: builtin/index-pack.c:500 +#: builtin/index-pack.c:511 msgid "offset value overflow for delta base object" msgstr "trà n giá trị khoảng bù cho đối tượng delta cÆ¡ sở" -#: builtin/index-pack.c:508 +#: builtin/index-pack.c:519 msgid "delta base offset is out of bound" msgstr "khoảng bù cÆ¡ sở cho delta nằm ngoà i phạm vi" -#: builtin/index-pack.c:516 +#: builtin/index-pack.c:527 #, c-format msgid "unknown object type %d" msgstr "không hiểu kiểu đối tượng %d" -#: builtin/index-pack.c:547 +#: builtin/index-pack.c:558 msgid "cannot pread pack file" msgstr "không thể chạy hà m pread cho táºp tin pack" -#: builtin/index-pack.c:549 +#: builtin/index-pack.c:560 #, c-format msgid "premature end of pack file, %lu byte missing" msgid_plural "premature end of pack file, %lu bytes missing" msgstr[0] "táºp tin pack bị kết thúc sá»›m, thiếu %lu byte" msgstr[1] "táºp tin pack bị kết thúc sá»›m, thiếu %lu byte" -#: builtin/index-pack.c:575 +#: builtin/index-pack.c:586 msgid "serious inflate inconsistency" msgstr "sá»± mâu thuẫn xả nén nghiêm trá»ng" -#: builtin/index-pack.c:666 builtin/index-pack.c:672 builtin/index-pack.c:695 -#: builtin/index-pack.c:729 builtin/index-pack.c:738 +#: builtin/index-pack.c:677 builtin/index-pack.c:683 builtin/index-pack.c:706 +#: builtin/index-pack.c:740 builtin/index-pack.c:749 #, c-format msgid "SHA1 COLLISION FOUND WITH %s !" msgstr "Sá»° VA CHẠM SHA1 Äà XẢY RA VỚI %s!" -#: builtin/index-pack.c:669 builtin/pack-objects.c:162 +#: builtin/index-pack.c:680 builtin/pack-objects.c:162 #: builtin/pack-objects.c:254 #, c-format msgid "unable to read %s" msgstr "không thể Ä‘á»c %s" -#: builtin/index-pack.c:735 +#: builtin/index-pack.c:746 #, c-format msgid "cannot read existing object %s" msgstr "không thể Ä‘á»c đối tượng đã tồn tại %s" -#: builtin/index-pack.c:749 +#: builtin/index-pack.c:760 #, c-format msgid "invalid blob object %s" msgstr "đối tượng blob không hợp lệ %s" -#: builtin/index-pack.c:763 +#: builtin/index-pack.c:774 #, c-format msgid "invalid %s" msgstr "%s không hợp lệ" -#: builtin/index-pack.c:766 +#: builtin/index-pack.c:777 msgid "Error in object" msgstr "Lá»—i trong đối tượng" -#: builtin/index-pack.c:768 +#: builtin/index-pack.c:779 #, c-format msgid "Not all child objects of %s are reachable" msgstr "Không phải tất cả các đối tượng con của %s là có thể vá»›i tá»›i được" -#: builtin/index-pack.c:839 builtin/index-pack.c:869 +#: builtin/index-pack.c:851 builtin/index-pack.c:881 msgid "failed to apply delta" msgstr "gặp lá»—i khi áp dụng delta" -#: builtin/index-pack.c:1010 +#: builtin/index-pack.c:1022 msgid "Receiving objects" msgstr "Äang nháºn vá» các đối tượng" -#: builtin/index-pack.c:1010 +#: builtin/index-pack.c:1022 msgid "Indexing objects" msgstr "Các đối tượng bảng mục lục" -#: builtin/index-pack.c:1036 +#: builtin/index-pack.c:1048 msgid "pack is corrupted (SHA1 mismatch)" msgstr "pack bị sai há»ng (SHA1 không khá»›p)" -#: builtin/index-pack.c:1041 +#: builtin/index-pack.c:1053 msgid "cannot fstat packfile" msgstr "không thể lấy thông tin thống kê packfile" -#: builtin/index-pack.c:1044 +#: builtin/index-pack.c:1056 msgid "pack has junk at the end" msgstr "pack có phần thừa ở cuối" -#: builtin/index-pack.c:1055 +#: builtin/index-pack.c:1067 msgid "confusion beyond insanity in parse_pack_objects()" msgstr "lá»™n xá»™n hÆ¡n cả Ä‘iên rồ khi chạy hà m parse_pack_objects()" -#: builtin/index-pack.c:1078 +#: builtin/index-pack.c:1090 msgid "Resolving deltas" msgstr "Äang phân giải các delta" -#: builtin/index-pack.c:1088 +#: builtin/index-pack.c:1100 #, c-format msgid "unable to create thread: %s" msgstr "không thể tạo tuyến: %s" -#: builtin/index-pack.c:1130 +#: builtin/index-pack.c:1142 msgid "confusion beyond insanity" msgstr "lá»™n xá»™n hÆ¡n cả Ä‘iên rồ" -#: builtin/index-pack.c:1138 +#: builtin/index-pack.c:1150 #, c-format msgid "completed with %d local objects" msgstr "đầy đủ vá»›i %d đối tượng ná»™i bá»™" -#: builtin/index-pack.c:1148 +#: builtin/index-pack.c:1160 #, c-format msgid "Unexpected tail checksum for %s (disk corruption?)" msgstr "Tổng kiểm tra tail không nhÆ° mong đợi cho %s (Ä‘Ä©a há»ng?)" -#: builtin/index-pack.c:1152 +#: builtin/index-pack.c:1164 #, c-format msgid "pack has %d unresolved delta" msgid_plural "pack has %d unresolved deltas" msgstr[0] "pack có %d delta chÆ°a được giải quyết" msgstr[1] "pack có %d delta chÆ°a được giải quyết" -#: builtin/index-pack.c:1177 +#: builtin/index-pack.c:1189 #, c-format msgid "unable to deflate appended object (%d)" msgstr "không thể xả nén đối tượng nối thêm (%d)" -#: builtin/index-pack.c:1256 +#: builtin/index-pack.c:1268 #, c-format msgid "local object %s is corrupt" msgstr "đối tượng ná»™i bá»™ %s bị há»ng" -#: builtin/index-pack.c:1280 +#: builtin/index-pack.c:1292 msgid "error while closing pack file" msgstr "gặp lá»—i trong khi đóng táºp tin gói (pack)" -#: builtin/index-pack.c:1293 +#: builtin/index-pack.c:1305 #, c-format msgid "cannot write keep file '%s'" msgstr "không thể ghi táºp tin giữ lại “%sâ€" -#: builtin/index-pack.c:1301 +#: builtin/index-pack.c:1313 #, c-format msgid "cannot close written keep file '%s'" msgstr "không thể đóng táºp tin giữ lại đã được ghi “%sâ€" -#: builtin/index-pack.c:1314 +#: builtin/index-pack.c:1326 msgid "cannot store pack file" msgstr "không thể lÆ°u táºp tin pack" -#: builtin/index-pack.c:1325 +#: builtin/index-pack.c:1337 msgid "cannot store index file" msgstr "không thể lÆ°u trữ táºp tin ghi mục lục" -#: builtin/index-pack.c:1358 +#: builtin/index-pack.c:1370 #, c-format msgid "bad pack.indexversion=%<PRIu32>" msgstr "sai pack.indexversion=%<PRIu32>" -#: builtin/index-pack.c:1364 +#: builtin/index-pack.c:1376 #, 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:1368 builtin/index-pack.c:1546 +#: builtin/index-pack.c:1380 builtin/index-pack.c:1559 #, c-format msgid "no threads support, ignoring %s" msgstr "không há»— trợ Ä‘a tuyến, bá» qua %s" -#: builtin/index-pack.c:1426 +#: builtin/index-pack.c:1438 #, c-format msgid "Cannot open existing pack file '%s'" msgstr "Không thể mở táºp tin pack đã sẵn có “%sâ€" -#: builtin/index-pack.c:1428 +#: builtin/index-pack.c:1440 #, c-format msgid "Cannot open existing pack idx file for '%s'" msgstr "Không thể mở táºp tin “pack idx†cho “%sâ€" -#: builtin/index-pack.c:1475 +#: builtin/index-pack.c:1487 #, c-format msgid "non delta: %d object" msgid_plural "non delta: %d objects" msgstr[0] "không delta: %d đối tượng" msgstr[1] "không delta: %d đối tượng" -#: builtin/index-pack.c:1482 +#: builtin/index-pack.c:1494 #, 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" msgstr[1] "chiá»u dà i xÃch = %d: %lu đối tượng" -#: builtin/index-pack.c:1510 +#: builtin/index-pack.c:1523 msgid "Cannot come back to cwd" msgstr "Không thể quay lại cwd" -#: builtin/index-pack.c:1558 builtin/index-pack.c:1561 -#: builtin/index-pack.c:1573 builtin/index-pack.c:1577 +#: builtin/index-pack.c:1571 builtin/index-pack.c:1574 +#: builtin/index-pack.c:1586 builtin/index-pack.c:1590 #, c-format msgid "bad %s" msgstr "%s sai" -#: builtin/index-pack.c:1591 +#: builtin/index-pack.c:1604 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:1595 builtin/index-pack.c:1605 +#: builtin/index-pack.c:1608 builtin/index-pack.c:1617 #, c-format msgid "packfile name '%s' does not end with '.pack'" msgstr "tên táºp tin packfile “%s†không được kết thúc bằng Ä‘uôi “.packâ€" -#: builtin/index-pack.c:1614 +#: builtin/index-pack.c:1625 msgid "--verify with no packfile name given" msgstr "dùng tùy chá»n --verify mà không Ä‘Æ°a ra tên packfile" @@ -6229,8 +6288,8 @@ msgstr "không nói chuyện được vá»›i lệnh cwd" #: builtin/init-db.c:465 msgid "" -"git init [-q | --quiet] [--bare] [--template=<template-directory>] [--shared" -"[=<permissions>]] [directory]" +"git init [-q | --quiet] [--bare] [--template=<template-directory>] [--" +"shared[=<permissions>]] [directory]" msgstr "" "git init [-q | --quiet] [--bare] [--template=<thÆ°-mục-tạm>] [--shared[=<các-" "quyá»n>]] [thÆ°-mục]" @@ -6243,7 +6302,7 @@ msgstr "các quyá»n" msgid "specify that the git repository is to be shared amongst several users" msgstr "chỉ ra cái mà kho git được chia sẻ giữa nhiá»u ngÆ°á»i dùng" -#: builtin/init-db.c:491 builtin/prune-packed.c:79 builtin/repack.c:168 +#: builtin/init-db.c:491 builtin/prune-packed.c:79 builtin/repack.c:172 msgid "be quiet" msgstr "im lặng" @@ -6283,38 +6342,38 @@ msgstr "git log [<các-tùy-chá»n>] [<vùng xem xét>] [[--] <Ä‘Æ°á»ng-dẫn>. msgid " or: git show [options] <object>..." msgstr " hay: git show [các-tùy-chá»n] <đối-tượng>..." -#: builtin/log.c:125 +#: builtin/log.c:127 msgid "suppress diff output" msgstr "chặn má»i kết xuất từ diff" -#: builtin/log.c:126 +#: builtin/log.c:128 msgid "show source" msgstr "hiển thị mã nguồn" -#: builtin/log.c:127 +#: builtin/log.c:129 msgid "Use mail map file" msgstr "Sá» dụng táºp tin ánh xạ thÆ°" -#: builtin/log.c:128 +#: builtin/log.c:130 msgid "decorate options" msgstr "các tùy chá»n trang trÃ" -#: builtin/log.c:231 +#: builtin/log.c:229 #, c-format msgid "Final output: %d %s\n" msgstr "Kết xuất cuối cùng: %d %s\n" -#: builtin/log.c:473 builtin/log.c:565 +#: builtin/log.c:470 builtin/log.c:562 #, c-format msgid "Could not read object %s" msgstr "Không thể Ä‘á»c đối tượng %s" -#: builtin/log.c:589 +#: builtin/log.c:586 #, c-format msgid "Unknown type: %d" msgstr "Không nháºn ra kiểu: %d" -#: builtin/log.c:689 +#: builtin/log.c:687 msgid "format.headers without value" msgstr "format.headers không có giá trị cụ thể" @@ -6335,195 +6394,204 @@ msgstr "Cần chÃnh xác má»™t vùng." msgid "Not a range." msgstr "Không phải là má»™t vùng." -#: builtin/log.c:911 +#: builtin/log.c:916 msgid "Cover letter needs email format" msgstr "“Cover letter†cần cho định dạng thÆ°" -#: builtin/log.c:987 +#: builtin/log.c:995 #, c-format msgid "insane in-reply-to: %s" msgstr "in-reply-to Ä‘iên rồ: %s" -#: builtin/log.c:1015 +#: builtin/log.c:1023 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:1060 +#: builtin/log.c:1068 msgid "Two output directories?" msgstr "Hai thÆ° mục kết xuất?" -#: builtin/log.c:1175 +#: builtin/log.c:1183 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:1178 +#: builtin/log.c:1186 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:1182 +#: builtin/log.c:1190 msgid "print patches to standard out" msgstr "hiển thị miếng vá ra đầu ra chuẩn" -#: builtin/log.c:1184 +#: builtin/log.c:1192 msgid "generate a cover letter" msgstr "tạo bì thÆ°" -#: builtin/log.c:1186 +#: builtin/log.c:1194 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:1187 +#: builtin/log.c:1195 msgid "sfx" msgstr "sfx" -#: builtin/log.c:1188 +#: builtin/log.c:1196 msgid "use <sfx> instead of '.patch'" msgstr "sá» dụng <sfx> thay cho “.patchâ€" -#: builtin/log.c:1190 +#: builtin/log.c:1198 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:1192 +#: builtin/log.c:1200 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:1194 +#: builtin/log.c:1202 msgid "Use [<prefix>] instead of [PATCH]" msgstr "Dùng [<tiá»n-tố>] thay cho [VÃ]" -#: builtin/log.c:1197 +#: builtin/log.c:1205 msgid "store resulting files in <dir>" msgstr "lÆ°u các táºp tin kết quả trong <t.mục>" -#: builtin/log.c:1200 +#: builtin/log.c:1208 msgid "don't strip/add [PATCH]" msgstr "không strip/add [VÃ]" -#: builtin/log.c:1203 +#: builtin/log.c:1211 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:1205 +#: builtin/log.c:1213 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:1207 +#: builtin/log.c:1215 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:1209 +#: builtin/log.c:1217 msgid "Messaging" msgstr "Lá»i nhắn" -#: builtin/log.c:1210 +#: builtin/log.c:1218 msgid "header" msgstr "đầu Ä‘á» thÆ°" -#: builtin/log.c:1211 +#: builtin/log.c:1219 msgid "add email header" msgstr "thêm đầu Ä‘á» thÆ°" -#: builtin/log.c:1212 builtin/log.c:1214 +#: builtin/log.c:1220 builtin/log.c:1222 msgid "email" msgstr "thÆ° Ä‘iện tá»" -#: builtin/log.c:1212 +#: builtin/log.c:1220 msgid "add To: header" msgstr "thêm To: đầu Ä‘á» thÆ°" -#: builtin/log.c:1214 +#: builtin/log.c:1222 msgid "add Cc: header" msgstr "thêm Cc: đầu Ä‘á» thÆ°" -#: builtin/log.c:1216 +#: builtin/log.c:1224 msgid "ident" msgstr "thụt lá»" -#: builtin/log.c:1217 +#: builtin/log.c:1225 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:1219 +#: builtin/log.c:1227 msgid "message-id" msgstr "message-id" -#: builtin/log.c:1220 +#: builtin/log.c:1228 msgid "make first mail a reply to <message-id>" msgstr "dùng thÆ° đầu tiên để trả lá»i <message-id>" -#: builtin/log.c:1221 builtin/log.c:1224 +#: builtin/log.c:1229 builtin/log.c:1232 msgid "boundary" msgstr "ranh giá»›i" -#: builtin/log.c:1222 +#: builtin/log.c:1230 msgid "attach the patch" msgstr "Ä‘Ãnh kèm miếng vá" -#: builtin/log.c:1225 +#: builtin/log.c:1233 msgid "inline the patch" msgstr "dùng miếng vá là m ná»™i dung" -#: builtin/log.c:1229 +#: builtin/log.c:1237 msgid "enable message threading, styles: shallow, deep" msgstr "cho phép luồng lá»i nhắn, kiểu: “shallowâ€, “deepâ€" -#: builtin/log.c:1231 +#: builtin/log.c:1239 msgid "signature" msgstr "chữ ký" -#: builtin/log.c:1232 +#: builtin/log.c:1240 msgid "add a signature" msgstr "thêm chữ ký" -#: builtin/log.c:1233 +#: builtin/log.c:1242 +msgid "add a signature from a file" +msgstr "thêm chữ ký từ má»™t táºp tin" + +#: builtin/log.c:1243 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:1307 +#: builtin/log.c:1317 #, c-format msgid "invalid ident line: %s" msgstr "dòng thụt lá» không hợp lệ: %s" -#: builtin/log.c:1322 +#: builtin/log.c:1332 msgid "-n and -k are mutually exclusive." msgstr "-n và -k loại từ lẫn nhau." -#: builtin/log.c:1324 +#: builtin/log.c:1334 msgid "--subject-prefix and -k are mutually exclusive." msgstr "--subject-prefix và -k xung khắc nhau." -#: builtin/log.c:1332 +#: builtin/log.c:1342 msgid "--name-only does not make sense" msgstr "--name-only không hợp lý" -#: builtin/log.c:1334 +#: builtin/log.c:1344 msgid "--name-status does not make sense" msgstr "--name-status không hợp lý" -#: builtin/log.c:1336 +#: builtin/log.c:1346 msgid "--check does not make sense" msgstr "--check không hợp lý" -#: builtin/log.c:1359 +#: builtin/log.c:1369 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:1361 +#: builtin/log.c:1371 #, c-format msgid "Could not create directory '%s'" msgstr "Không thể tạo thÆ° mục “%sâ€" -#: builtin/log.c:1509 +#: builtin/log.c:1468 +#, c-format +msgid "unable to read signature file '%s'" +msgstr "không thể Ä‘á»c táºp tin chữ ký “%sâ€" + +#: builtin/log.c:1531 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:1558 +#: builtin/log.c:1579 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]" msgstr "git cherry [-v] [<thượng-nguồn> [<head> [<giá»›i-hạn>]]]" -#: builtin/log.c:1613 +#: builtin/log.c:1634 #, c-format msgid "" "Could not find a tracked remote branch, please specify <upstream> manually.\n" @@ -6531,7 +6599,7 @@ 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:1626 builtin/log.c:1628 builtin/log.c:1640 +#: builtin/log.c:1647 builtin/log.c:1649 builtin/log.c:1661 #, c-format msgid "Unknown commit %s" msgstr "Không hiểu lần chuyển giao %s" @@ -6816,33 +6884,33 @@ msgstr "Chuá»—i branch.%s.mergeoptions sai: %s" 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/merge.c:681 +#: builtin/merge.c:678 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:695 +#: builtin/merge.c:692 #, 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:709 +#: builtin/merge.c:705 #, c-format msgid "unable to write %s" msgstr "không thể ghi %s" -#: builtin/merge.c:798 +#: builtin/merge.c:794 #, c-format msgid "Could not read from '%s'" msgstr "Không thể Ä‘á»c từ “%sâ€" -#: builtin/merge.c:807 +#: builtin/merge.c:803 #, 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:813 +#: builtin/merge.c:809 #, c-format msgid "" "Please enter a commit message to explain why this merge is necessary,\n" @@ -6860,50 +6928,50 @@ msgstr "" "rá»—ng\n" "sẽ hủy bá» lần chuyển giao.\n" -#: builtin/merge.c:837 +#: builtin/merge.c:833 msgid "Empty commit message." msgstr "Chú thÃch của lần commit (chuyển giao) bị trống rá»—ng." -#: builtin/merge.c:849 +#: builtin/merge.c:845 #, c-format msgid "Wonderful.\n" msgstr "Thần kỳ.\n" -#: builtin/merge.c:914 +#: builtin/merge.c:908 #, 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:930 +#: builtin/merge.c:924 #, 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:971 +#: builtin/merge.c:965 msgid "No current branch." msgstr "không phải nhánh hiện hà nh" -#: builtin/merge.c:973 +#: builtin/merge.c:967 msgid "No remote for the current branch." msgstr "Không có máy chủ cho nhánh hiện hà nh." -#: builtin/merge.c:975 +#: builtin/merge.c:969 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:980 +#: builtin/merge.c:974 #, 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:1136 +#: builtin/merge.c:1130 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:1152 git-pull.sh:31 +#: builtin/merge.c:1146 git-pull.sh:31 msgid "" "You have not concluded your merge (MERGE_HEAD exists).\n" "Please, commit your changes before you can merge." @@ -6911,11 +6979,11 @@ msgstr "" "Bạn chÆ°a kết thúc việc hòa trá»™ng (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:1155 git-pull.sh:34 +#: builtin/merge.c:1149 git-pull.sh:34 msgid "You have not concluded your merge (MERGE_HEAD exists)." msgstr "Bạn chÆ°a kết thúc việc hòa trá»™ng (MERGE_HEAD vẫn tồn tại)." -#: builtin/merge.c:1159 +#: builtin/merge.c:1153 msgid "" "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n" "Please, commit your changes before you can merge." @@ -6923,103 +6991,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:1162 +#: builtin/merge.c:1156 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:1171 +#: builtin/merge.c:1165 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:1180 +#: builtin/merge.c:1174 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:1212 +#: builtin/merge.c:1206 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:1215 +#: builtin/merge.c:1209 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:1217 +#: builtin/merge.c:1211 msgid "Non-fast-forward commit does not make sense into an empty head" msgstr "" "Chuyển giao không-fast-forward không hợp lý ở trong má»™t head trống rá»—ng" -#: builtin/merge.c:1222 +#: builtin/merge.c:1216 #, 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:1273 +#: builtin/merge.c:1267 #, 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:1276 +#: builtin/merge.c:1270 #, 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:1279 +#: builtin/merge.c:1273 #, 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:1282 +#: builtin/merge.c:1276 #, 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:1366 +#: builtin/merge.c:1357 #, c-format msgid "Updating %s..%s\n" msgstr "Äang cáºp nháºt %s..%s\n" -#: builtin/merge.c:1405 +#: builtin/merge.c:1396 #, 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:1412 +#: builtin/merge.c:1403 #, c-format msgid "Nope.\n" msgstr "Không.\n" -#: builtin/merge.c:1444 +#: builtin/merge.c:1435 msgid "Not possible to fast-forward, aborting." msgstr "Thá»±c hiện lệnh fast-forward là không thể được, Ä‘ang bá» qua." -#: builtin/merge.c:1467 builtin/merge.c:1546 +#: builtin/merge.c:1458 builtin/merge.c:1537 #, 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:1471 +#: builtin/merge.c:1462 #, c-format msgid "Trying merge strategy %s...\n" msgstr "Äang thá» chiến lược hòa trá»™n %s...\n" -#: builtin/merge.c:1537 +#: builtin/merge.c:1528 #, 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:1539 +#: builtin/merge.c:1530 #, 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:1548 +#: builtin/merge.c:1539 #, 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:1560 +#: builtin/merge.c:1551 #, c-format msgid "Automatic merge went well; stopped before committing as requested\n" msgstr "" @@ -7175,80 +7243,80 @@ msgstr "thÆ° mục nguồn là trống rá»—ng" msgid "not under version control" msgstr "không nằm dÆ°á»›i sá»± quản lý mã nguồn" -#: builtin/mv.c:207 +#: builtin/mv.c:208 msgid "destination exists" msgstr "Ä‘Ãch đã tồn tại sẵn rồi" -#: builtin/mv.c:215 +#: builtin/mv.c:216 #, c-format msgid "overwriting '%s'" msgstr "Ä‘ang ghi đè lên “%sâ€" -#: builtin/mv.c:218 +#: builtin/mv.c:219 msgid "Cannot overwrite" msgstr "Không thể ghi đè" -#: builtin/mv.c:221 +#: builtin/mv.c:222 msgid "multiple sources for the same target" msgstr "Nhiá»u nguồn cho cùng má»™t Ä‘Ãch" -#: builtin/mv.c:223 +#: builtin/mv.c:224 msgid "destination directory does not exist" msgstr "thÆ° mục Ä‘Ãch không tồn tại" -#: builtin/mv.c:243 +#: builtin/mv.c:244 #, 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:726 builtin/repack.c:355 +#: builtin/mv.c:257 builtin/remote.c:725 builtin/repack.c:358 #, c-format msgid "renaming '%s' failed" msgstr "gặp lá»—i khi đổi tên “%sâ€" -#: builtin/name-rev.c:258 +#: builtin/name-rev.c:255 msgid "git name-rev [options] <commit>..." msgstr "git name-rev [các-tùy-chá»n] <commit>..." -#: builtin/name-rev.c:259 +#: builtin/name-rev.c:256 msgid "git name-rev [options] --all" msgstr "git name-rev [các-tùy-chá»n] --all" -#: builtin/name-rev.c:260 +#: builtin/name-rev.c:257 msgid "git name-rev [options] --stdin" msgstr "git name-rev [các-tùy-chá»n] --stdin" -#: builtin/name-rev.c:312 +#: builtin/name-rev.c:309 msgid "print only names (no SHA-1)" msgstr "chỉ hiển thị tên (không SHA-1)" -#: builtin/name-rev.c:313 +#: builtin/name-rev.c:310 msgid "only use tags to name the commits" msgstr "chỉ dùng các thẻ để đặt tên cho các lần chuyển giao" -#: builtin/name-rev.c:315 +#: builtin/name-rev.c:312 msgid "only use refs matching <pattern>" msgstr "chỉ sá» dụng các tham chiếu (refs) khá»›p vá»›i <mẫu>" -#: builtin/name-rev.c:317 +#: builtin/name-rev.c:314 msgid "list all commits reachable from all refs" msgstr "" "liệt kê tất cả các lần chuyển giao có thể Ä‘á»c được từ tất cả các tham chiếu" -#: builtin/name-rev.c:318 +#: builtin/name-rev.c:315 msgid "read from stdin" msgstr "Ä‘á»c từ đầu và o tiêu chuẩn" -#: builtin/name-rev.c:319 +#: builtin/name-rev.c:316 msgid "allow to print `undefined` names (default)" msgstr "cho phép in các tên “chÆ°a định nghÄ©a†(mặc định)" -#: builtin/name-rev.c:325 +#: builtin/name-rev.c:322 msgid "dereference tags in the input (internal use)" msgstr "bãi bá» tham chiếu các thẻ trong đầu và o (dùng ná»™i bá»™)" @@ -7376,7 +7444,7 @@ msgstr "không thể Ä‘á»c kết xuất “showâ€" msgid "failed to finish 'show' for object '%s'" msgstr "gặp lá»—i khi hoà n thà nh “show†cho đối tượng “%sâ€" -#: builtin/notes.c:167 builtin/tag.c:373 +#: builtin/notes.c:167 builtin/tag.c:477 #, c-format msgid "could not create file '%s'" msgstr "không thể tạo táºp tin “%sâ€" @@ -7400,12 +7468,12 @@ msgstr "không thể ghi đối tượng ghi chú (note)" msgid "The note contents has been left in %s" msgstr "Ná»™i dung ghi chú còn lại %s" -#: builtin/notes.c:248 builtin/tag.c:604 +#: builtin/notes.c:248 builtin/tag.c:692 #, c-format msgid "cannot read '%s'" msgstr "không thể Ä‘á»c “%sâ€" -#: builtin/notes.c:250 builtin/tag.c:607 +#: builtin/notes.c:250 builtin/tag.c:695 #, c-format msgid "could not open or read '%s'" msgstr "không thể mở hay Ä‘á»c “%sâ€" @@ -7413,7 +7481,7 @@ msgstr "không thể mở hay Ä‘á»c “%sâ€" #: builtin/notes.c:269 builtin/notes.c:320 builtin/notes.c:322 #: builtin/notes.c:382 builtin/notes.c:436 builtin/notes.c:519 #: builtin/notes.c:524 builtin/notes.c:599 builtin/notes.c:641 -#: builtin/notes.c:843 builtin/tag.c:620 +#: builtin/notes.c:843 builtin/tag.c:708 #, 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 (ref) hợp lệ." @@ -7426,7 +7494,7 @@ msgstr "Gặp lá»—i khi Ä‘á»c đối tượng “%sâ€." #: builtin/notes.c:276 #, c-format 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'." +msgstr "không thể Ä‘á»c dữ liệu ghi chú từ đối tượng không-blob “%sâ€." #: builtin/notes.c:316 #, c-format @@ -7458,7 +7526,7 @@ msgid "note contents in a file" msgstr "ná»™i dung ghi chú (note) nằm trong má»™t táºp tin" #: builtin/notes.c:415 builtin/notes.c:418 builtin/notes.c:572 -#: builtin/notes.c:575 builtin/tag.c:539 +#: builtin/notes.c:575 builtin/tag.c:627 msgid "object" msgstr "đối tượng" @@ -7578,7 +7646,7 @@ msgstr "notes-ref" msgid "use notes from <notes_ref>" msgstr "dùng “notes†từ <notes_ref>" -#: builtin/notes.c:978 builtin/remote.c:1593 +#: builtin/notes.c:978 builtin/remote.c:1616 #, c-format msgid "Unknown subcommand: %s" msgstr "Không hiểu câu lệnh con: %s" @@ -7612,156 +7680,156 @@ msgstr "tắt ghi bitmap, nhÆ° váºy má»™t số đối tượng sẽ không Ä‘Æ° msgid "Compressing objects" msgstr "Äang nén các đối tượng" -#: builtin/pack-objects.c:2530 +#: builtin/pack-objects.c:2526 #, 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:2534 +#: builtin/pack-objects.c:2530 #, c-format msgid "bad index version '%s'" msgstr "phiên bản mục lục sai “%sâ€" -#: builtin/pack-objects.c:2557 +#: builtin/pack-objects.c:2553 #, c-format msgid "option %s does not accept negative form" msgstr "tùy chá»n %s không chấp nháºn dạng thức âm" -#: builtin/pack-objects.c:2561 +#: builtin/pack-objects.c:2557 #, c-format 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" -#: builtin/pack-objects.c:2580 +#: builtin/pack-objects.c:2576 msgid "do not show progress meter" msgstr "không hiển thị bá»™ Ä‘o tiến trình" -#: builtin/pack-objects.c:2582 +#: builtin/pack-objects.c:2578 msgid "show progress meter" msgstr "hiển thị bá»™ Ä‘o tiến trình" -#: builtin/pack-objects.c:2584 +#: builtin/pack-objects.c:2580 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:2587 +#: builtin/pack-objects.c:2583 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:2588 +#: builtin/pack-objects.c:2584 msgid "version[,offset]" msgstr "phiên bản[,offset]" -#: builtin/pack-objects.c:2589 +#: builtin/pack-objects.c:2585 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:2592 +#: builtin/pack-objects.c:2588 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:2594 +#: builtin/pack-objects.c:2590 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:2596 +#: builtin/pack-objects.c:2592 msgid "ignore packed objects" msgstr "bá» qua các đối tượng đóng gói" -#: builtin/pack-objects.c:2598 +#: builtin/pack-objects.c:2594 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:2600 +#: builtin/pack-objects.c:2596 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:2602 +#: builtin/pack-objects.c:2598 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:2604 +#: builtin/pack-objects.c:2600 msgid "reuse existing deltas" msgstr "dùng lại các delta sẵn có" -#: builtin/pack-objects.c:2606 +#: builtin/pack-objects.c:2602 msgid "reuse existing objects" msgstr "dùng lại các đối tượng sẵn có" -#: builtin/pack-objects.c:2608 +#: builtin/pack-objects.c:2604 msgid "use OFS_DELTA objects" msgstr "dùng các đối tượng OFS_DELTA" -#: builtin/pack-objects.c:2610 +#: builtin/pack-objects.c:2606 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:2612 +#: builtin/pack-objects.c:2608 msgid "do not create an empty pack output" msgstr "không thể tạo kết xuất gói (pack) trống rá»—ng" -#: builtin/pack-objects.c:2614 +#: builtin/pack-objects.c:2610 msgid "read revision arguments from standard input" msgstr " Ä‘á»c tham số “revision†từ thiết bị nháºp chuẩn" -#: builtin/pack-objects.c:2616 +#: builtin/pack-objects.c:2612 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:2619 +#: builtin/pack-objects.c:2615 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:2622 +#: builtin/pack-objects.c:2618 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:2625 +#: builtin/pack-objects.c:2621 msgid "output pack to stdout" msgstr "xuất gói ra đầu ra tiêu chuẩn" -#: builtin/pack-objects.c:2627 +#: builtin/pack-objects.c:2623 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:2629 +#: builtin/pack-objects.c:2625 msgid "keep unreachable objects" msgstr "giữ lại các đối tượng không thể Ä‘á»c được" -#: builtin/pack-objects.c:2630 parse-options.h:140 +#: builtin/pack-objects.c:2626 parse-options.h:140 msgid "time" msgstr "thá»i-gian" -#: builtin/pack-objects.c:2631 +#: builtin/pack-objects.c:2627 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:2634 +#: builtin/pack-objects.c:2630 msgid "create thin packs" msgstr "tạo gói nhẹ" -#: builtin/pack-objects.c:2636 +#: builtin/pack-objects.c:2632 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:2638 +#: builtin/pack-objects.c:2634 msgid "pack compression level" msgstr "mức nén gói" -#: builtin/pack-objects.c:2640 +#: builtin/pack-objects.c:2636 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:2642 +#: builtin/pack-objects.c:2638 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:2644 +#: builtin/pack-objects.c:2640 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:2723 +#: builtin/pack-objects.c:2719 msgid "Counting objects" msgstr "Äang đếm các đối tượng" @@ -7813,7 +7881,7 @@ msgstr "dùng tốc ký tag không có <thẻ>" msgid "--delete only accepts plain target ref names" msgstr "--delete chỉ chấp nháºn các tên tham chiếu (ref) dạng thÆ°á»ng" -#: builtin/push.c:140 +#: builtin/push.c:139 msgid "" "\n" "To choose either option permanently, see push.default in 'git help config'." @@ -7822,7 +7890,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:142 #, c-format msgid "" "The upstream branch of your current branch does not match\n" @@ -7847,7 +7915,7 @@ msgstr "" " git push %s %s\n" "%s" -#: builtin/push.c:158 +#: builtin/push.c:157 #, c-format msgid "" "You are not currently on a branch.\n" @@ -7862,7 +7930,7 @@ msgstr "" "\n" " git push %s HEAD:<tên-của-nhánh-máy-chủ>\n" -#: builtin/push.c:172 +#: builtin/push.c:171 #, c-format msgid "" "The current branch %s has no upstream branch.\n" @@ -7876,12 +7944,12 @@ msgstr "" "\n" " git push --set-upstream %s %s\n" -#: builtin/push.c:180 +#: builtin/push.c:179 #, 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:182 #, c-format msgid "" "You are pushing to remote '%s', which is not the upstream of\n" @@ -7893,7 +7961,7 @@ 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 +#: builtin/push.c:205 msgid "" "push.default is unset; its implicit value has changed in\n" "Git 2.0 from 'matching' to 'simple'. To squelch this message\n" @@ -7939,14 +8007,14 @@ msgstr "" "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:272 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 để push, và push.default là \"không là " "gì cả\"." -#: builtin/push.c:280 +#: builtin/push.c:279 msgid "" "Updates were rejected because the tip of your current branch is behind\n" "its remote counterpart. Integrate the remote changes (e.g.\n" @@ -7959,7 +8027,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:285 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" @@ -7972,7 +8040,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:291 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" @@ -7987,11 +8055,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:298 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:301 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" @@ -8003,22 +8071,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:360 #, c-format msgid "Pushing to %s\n" msgstr "Äang đẩy lên %s\n" -#: builtin/push.c:365 +#: builtin/push.c:364 #, 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 (ref) đến “%sâ€" -#: builtin/push.c:395 +#: builtin/push.c:394 #, c-format msgid "bad repository '%s'" msgstr "repository (kho) sai “%sâ€" -#: builtin/push.c:396 +#: builtin/push.c:395 msgid "" "No configured push destination.\n" "Either specify the URL from the command-line or configure a remote " @@ -8039,95 +8107,95 @@ msgstr "" "\n" " git push <tên>\n" -#: builtin/push.c:411 +#: builtin/push.c:410 msgid "--all and --tags are incompatible" msgstr "--all và --tags xung khắc nhau" -#: builtin/push.c:412 +#: builtin/push.c:411 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:416 msgid "--mirror and --tags are incompatible" msgstr "--mirror và --tags xung khắc nhau" -#: builtin/push.c:418 +#: builtin/push.c:417 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:422 msgid "--all and --mirror are incompatible" msgstr "--all và --mirror xung khắc nhau" -#: builtin/push.c:483 +#: builtin/push.c:482 msgid "repository" msgstr "kho" -#: builtin/push.c:484 +#: builtin/push.c:483 msgid "push all refs" msgstr "đẩy tất cả các tham chiếu" -#: builtin/push.c:485 +#: builtin/push.c:484 msgid "mirror all refs" msgstr "mirror tất cả các tham chiếu" -#: builtin/push.c:487 +#: builtin/push.c:486 msgid "delete refs" msgstr "xóa các tham chiếu" -#: builtin/push.c:488 +#: builtin/push.c:487 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:491 +#: builtin/push.c:490 msgid "force updates" msgstr "ép buá»™c cáºp nháºt" -#: builtin/push.c:493 +#: builtin/push.c:492 msgid "refname>:<expect" msgstr "tên-tham-chiếu>:<cần" -#: builtin/push.c:494 +#: builtin/push.c:493 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:496 +#: builtin/push.c:495 msgid "check" msgstr "kiểm tra" -#: builtin/push.c:497 +#: builtin/push.c:496 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:499 +#: builtin/push.c:498 msgid "use thin pack" msgstr "tạo gói nhẹ" -#: builtin/push.c:500 builtin/push.c:501 +#: builtin/push.c:499 builtin/push.c:500 msgid "receive pack program" msgstr "chÆ°Æ¡ng trình nháºn gói" -#: builtin/push.c:502 +#: builtin/push.c:501 msgid "set upstream for git pull/status" msgstr "đặt thượng nguồn cho git pull/status" -#: builtin/push.c:505 +#: builtin/push.c:504 msgid "prune locally removed refs" msgstr "xén tỉa những tham chiếu (refs) bị gỡ bá»" -#: builtin/push.c:507 +#: builtin/push.c:506 msgid "bypass pre-push hook" msgstr "vòng qua móc tiá»n-đẩy (pre-push)" -#: builtin/push.c:508 +#: builtin/push.c:507 msgid "push missing but relevant tags" msgstr "push phần bị thiếu nhÆ°ng nhÆ°ng các thẻ lại thÃch hợp" -#: builtin/push.c:518 +#: builtin/push.c:517 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:520 +#: builtin/push.c:519 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 (refs) nà o" @@ -8353,12 +8421,12 @@ 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:185 builtin/remote.c:641 +#: builtin/remote.c:185 builtin/remote.c:640 #, c-format msgid "remote %s already exists." msgstr "máy chủ %s đã tồn tại rồi." -#: builtin/remote.c:189 builtin/remote.c:645 +#: builtin/remote.c:189 builtin/remote.c:644 #, c-format msgid "'%s' is not a valid remote name" msgstr "“%s†không phải tên máy chủ hợp lệ" @@ -8368,45 +8436,45 @@ msgstr "“%s†không phải tên máy chủ hợp lệ" msgid "Could not setup master '%s'" msgstr "Không thể cà i đặt nhánh master “%sâ€" -#: builtin/remote.c:289 +#: builtin/remote.c:288 #, c-format msgid "more than one %s" msgstr "nhiá»u hÆ¡n má»™t %s" -#: builtin/remote.c:334 +#: builtin/remote.c:333 #, 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:435 builtin/remote.c:443 +#: builtin/remote.c:434 builtin/remote.c:442 msgid "(matching)" msgstr "(khá»›p)" -#: builtin/remote.c:447 +#: builtin/remote.c:446 msgid "(delete)" msgstr "(xóa)" -#: builtin/remote.c:590 builtin/remote.c:596 builtin/remote.c:602 +#: builtin/remote.c:589 builtin/remote.c:595 builtin/remote.c:601 #, c-format msgid "Could not append '%s' to '%s'" msgstr "Không thể nối thêm “%s†và o “%sâ€" -#: builtin/remote.c:634 builtin/remote.c:787 builtin/remote.c:885 +#: builtin/remote.c:633 builtin/remote.c:794 builtin/remote.c:894 #, c-format msgid "No such remote: %s" msgstr "Không có máy chủ nà o nhÆ° thế: %s" -#: builtin/remote.c:651 +#: builtin/remote.c:650 #, 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:657 builtin/remote.c:794 +#: builtin/remote.c:656 builtin/remote.c:846 #, 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:672 +#: builtin/remote.c:671 #, c-format msgid "" "Not updating non-default fetch refspec\n" @@ -8417,32 +8485,32 @@ 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:678 +#: builtin/remote.c:677 #, c-format msgid "Could not append '%s'" msgstr "Không thể nối thêm “%sâ€" -#: builtin/remote.c:689 +#: builtin/remote.c:688 #, c-format msgid "Could not set '%s'" msgstr "Không thể đặt “%sâ€" -#: builtin/remote.c:711 +#: builtin/remote.c:710 #, c-format msgid "deleting '%s' failed" msgstr "gặp lá»—i khi xoá “%sâ€" -#: builtin/remote.c:745 +#: builtin/remote.c:744 #, c-format msgid "creating '%s' failed" msgstr "gặp lá»—i khi tạo “%sâ€" -#: builtin/remote.c:759 +#: builtin/remote.c:765 #, c-format msgid "Could not remove branch %s" msgstr "Không thể gỡ bá» nhánh “%sâ€" -#: builtin/remote.c:829 +#: builtin/remote.c:832 msgid "" "Note: A branch outside the refs/remotes/ hierarchy was not removed;\n" "to delete it, use:" @@ -8457,363 +8525,421 @@ msgstr[1] "" "Ä‘i;\n" "để xóa Ä‘i, sá» dụng:" -#: builtin/remote.c:938 +#: builtin/remote.c:947 #, 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:941 +#: builtin/remote.c:950 msgid " tracked" msgstr " được theo dõi" -#: builtin/remote.c:943 +#: builtin/remote.c:952 msgid " stale (use 'git remote prune' to remove)" msgstr " cÅ© rÃch (dùng “git remote prune†để gỡ bá»)" -#: builtin/remote.c:945 +#: builtin/remote.c:954 msgid " ???" msgstr " ???" -#: builtin/remote.c:986 +#: builtin/remote.c:995 #, 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:993 +#: builtin/remote.c:1002 #, c-format msgid "rebases onto remote %s" msgstr "thá»±c hiện rebase trên máy chủ %s" -#: builtin/remote.c:996 +#: builtin/remote.c:1005 #, c-format msgid " merges with remote %s" msgstr " hòa trá»™n vá»›i máy chủ %s" -#: builtin/remote.c:997 +#: builtin/remote.c:1006 msgid " and with remote" msgstr " và vá»›i máy chủ" -#: builtin/remote.c:999 +#: builtin/remote.c:1008 #, c-format msgid "merges with remote %s" msgstr "hòa trá»™n vá»›i máy chủ %s" -#: builtin/remote.c:1000 +#: builtin/remote.c:1009 msgid " and with remote" msgstr " và vá»›i máy chủ" -#: builtin/remote.c:1046 +#: builtin/remote.c:1055 msgid "create" msgstr "tạo" -#: builtin/remote.c:1049 +#: builtin/remote.c:1058 msgid "delete" msgstr "xoá" -#: builtin/remote.c:1053 +#: builtin/remote.c:1062 msgid "up to date" msgstr "đã cáºp nháºt" -#: builtin/remote.c:1056 +#: builtin/remote.c:1065 msgid "fast-forwardable" msgstr "có-thể-fast-forward" -#: builtin/remote.c:1059 +#: builtin/remote.c:1068 msgid "local out of date" msgstr "dữ liệu ná»™i bá»™ đã cÅ©" -#: builtin/remote.c:1066 +#: builtin/remote.c:1075 #, c-format msgid " %-*s forces to %-*s (%s)" msgstr " %-*s ép buá»™c thà nh %-*s (%s)" -#: builtin/remote.c:1069 +#: builtin/remote.c:1078 #, c-format msgid " %-*s pushes to %-*s (%s)" msgstr " %-*s đẩy lên thà nh %-*s (%s)" -#: builtin/remote.c:1073 +#: builtin/remote.c:1082 #, c-format msgid " %-*s forces to %s" msgstr " %-*s ép buá»™c thà nh %s" -#: builtin/remote.c:1076 +#: builtin/remote.c:1085 #, c-format msgid " %-*s pushes to %s" msgstr " %-*s đẩy lên thà nh %s" -#: builtin/remote.c:1144 +#: builtin/remote.c:1153 msgid "do not query remotes" msgstr "không truy vấn các máy chủ" -#: builtin/remote.c:1171 +#: builtin/remote.c:1180 #, c-format msgid "* remote %s" msgstr "* máy chủ %s" -#: builtin/remote.c:1172 +#: builtin/remote.c:1181 #, c-format msgid " Fetch URL: %s" msgstr " URL để lấy vá»: %s" -#: builtin/remote.c:1173 builtin/remote.c:1318 +#: builtin/remote.c:1182 builtin/remote.c:1329 msgid "(no URL)" msgstr "(không có URL)" -#: builtin/remote.c:1182 builtin/remote.c:1184 +#: builtin/remote.c:1191 builtin/remote.c:1193 #, c-format msgid " Push URL: %s" msgstr " URL để đẩy lên: %s" -#: builtin/remote.c:1186 builtin/remote.c:1188 builtin/remote.c:1190 +#: builtin/remote.c:1195 builtin/remote.c:1197 builtin/remote.c:1199 #, c-format msgid " HEAD branch: %s" msgstr " Nhánh HEAD: %s" -#: builtin/remote.c:1192 +#: builtin/remote.c:1201 #, 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:1204 +#: builtin/remote.c:1213 #, c-format msgid " Remote branch:%s" msgid_plural " Remote branches:%s" msgstr[0] " Nhánh trên máy chủ:%s" msgstr[1] " Những nhánh trên máy chủ:%s" -#: builtin/remote.c:1207 builtin/remote.c:1234 +#: builtin/remote.c:1216 builtin/remote.c:1243 msgid " (status not queried)" msgstr " (trạng thái không được yêu cầu)" -#: builtin/remote.c:1216 +#: builtin/remote.c:1225 msgid " Local branch configured for 'git pull':" msgid_plural " Local branches configured for 'git pull':" msgstr[0] " Nhánh ná»™i bá»™ đã được cấu hình cho lệnh “git pullâ€:" msgstr[1] " Những nhánh ná»™i bá»™ đã được cấu hình cho lệnh “git pullâ€:" -#: builtin/remote.c:1224 +#: builtin/remote.c:1233 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:1231 +#: builtin/remote.c:1240 #, c-format msgid " Local ref configured for 'git push'%s:" msgid_plural " Local refs configured for 'git push'%s:" msgstr[0] " Tham chiếu ná»™i bá»™ được cấu hình cho lệnh “git pushâ€%s:" msgstr[1] " Những tham chiếu ná»™i bá»™ được cấu hình cho lệnh “git pushâ€%s:" -#: builtin/remote.c:1252 +#: builtin/remote.c:1261 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:1254 +#: builtin/remote.c:1263 msgid "delete refs/remotes/<name>/HEAD" msgstr "xóa refs/remotes/<tên>/HEAD" -#: builtin/remote.c:1269 +#: builtin/remote.c:1278 msgid "Cannot determine remote HEAD" msgstr "Không thể xác định được HEAD máy chủ" -#: builtin/remote.c:1271 +#: builtin/remote.c:1280 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:1281 +#: builtin/remote.c:1290 #, c-format msgid "Could not delete %s" msgstr "Không thể xóa bá» %s" -#: builtin/remote.c:1289 +#: builtin/remote.c:1298 #, c-format msgid "Not a valid ref: %s" msgstr "Không phải là tham chiếu hợp lệ: %s" -#: builtin/remote.c:1291 +#: builtin/remote.c:1300 #, c-format msgid "Could not setup %s" msgstr "Không thể cà i đặt %s" -#: builtin/remote.c:1307 +#: builtin/remote.c:1318 #, 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:1308 +#: builtin/remote.c:1319 #, c-format msgid " %s has become dangling!" msgstr " %s đã trở thà nh không đầu (không được quản lý)!" -#: builtin/remote.c:1314 +#: builtin/remote.c:1325 #, c-format msgid "Pruning %s" msgstr "Äang xén bá»›t %s" -#: builtin/remote.c:1315 +#: builtin/remote.c:1326 #, c-format msgid "URL: %s" msgstr "URL: %s" -#: builtin/remote.c:1328 +#: builtin/remote.c:1349 #, c-format msgid " * [would prune] %s" msgstr " * [nên xén bá»›t] %s" -#: builtin/remote.c:1331 +#: builtin/remote.c:1352 #, c-format msgid " * [pruned] %s" msgstr " *[đã bị xén] %s" -#: builtin/remote.c:1374 +#: builtin/remote.c:1397 msgid "prune remotes after fetching" msgstr "cắt máy chủ sau khi lấy vá»" -#: builtin/remote.c:1440 builtin/remote.c:1514 +#: builtin/remote.c:1463 builtin/remote.c:1537 #, c-format msgid "No such remote '%s'" msgstr "Không có máy chủ nà o có tên “%sâ€" -#: builtin/remote.c:1460 +#: builtin/remote.c:1483 msgid "add branch" msgstr "thêm nhánh" -#: builtin/remote.c:1467 +#: builtin/remote.c:1490 msgid "no remote specified" msgstr "chÆ°a chỉ ra máy chủ nà o" -#: builtin/remote.c:1489 +#: builtin/remote.c:1512 msgid "manipulate push URLs" msgstr "đẩy các “URL†bằng tay" -#: builtin/remote.c:1491 +#: builtin/remote.c:1514 msgid "add URL" msgstr "thêm URL" -#: builtin/remote.c:1493 +#: builtin/remote.c:1516 msgid "delete URLs" msgstr "xóa URLs" -#: builtin/remote.c:1500 +#: builtin/remote.c:1523 msgid "--add --delete doesn't make sense" msgstr "--add --delete không hợp lý" -#: builtin/remote.c:1540 +#: builtin/remote.c:1563 #, c-format msgid "Invalid old URL pattern: %s" msgstr "Kiểu mẫu URL cÅ© không hợp lệ: %s" -#: builtin/remote.c:1548 +#: builtin/remote.c:1571 #, c-format msgid "No such URL found: %s" msgstr "Không tìm thấy URL nhÆ° váºy: %s" -#: builtin/remote.c:1550 +#: builtin/remote.c:1573 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:1564 +#: builtin/remote.c:1587 msgid "be verbose; must be placed before a subcommand" msgstr "chi tiết; phải được đặt trÆ°á»›c má»™t lệnh-con" -#: builtin/repack.c:16 +#: builtin/repack.c:17 msgid "git repack [options]" msgstr "git repack [các-tùy-chá»n]" -#: builtin/repack.c:156 +#: builtin/repack.c:160 msgid "pack everything in a single pack" msgstr "đóng gói má»i thứ trong má»™t gói Ä‘Æ¡n" -#: builtin/repack.c:158 +#: builtin/repack.c:162 msgid "same as -a, and turn unreachable objects loose" msgstr "giống vá»›i -a, và chỉnh sá»a các đối tượng không Ä‘á»c được thiếu sót" -#: builtin/repack.c:161 +#: builtin/repack.c:165 msgid "remove redundant packs, and run git-prune-packed" msgstr "xóa bá» các gói dÆ° thừa, và chạy git-prune-packed" -#: builtin/repack.c:163 +#: builtin/repack.c:167 msgid "pass --no-reuse-delta to git-pack-objects" msgstr "chuyển --no-reuse-delta cho git-pack-objects" -#: builtin/repack.c:165 +#: builtin/repack.c:169 msgid "pass --no-reuse-object to git-pack-objects" msgstr "chuyển --no-reuse-object cho git-pack-objects" -#: builtin/repack.c:167 +#: builtin/repack.c:171 msgid "do not run git-update-server-info" msgstr "không chạy git-update-server-info" -#: builtin/repack.c:170 +#: builtin/repack.c:174 msgid "pass --local to git-pack-objects" msgstr "chuyển --local cho git-pack-objects" -#: builtin/repack.c:172 +#: builtin/repack.c:176 msgid "write bitmap index" msgstr "ghi mục lục ánh xạ" -#: builtin/repack.c:173 +#: builtin/repack.c:177 msgid "approxidate" msgstr "ngà y Æ°á»›c tÃnh" -#: builtin/repack.c:174 +#: builtin/repack.c:178 msgid "with -A, do not loosen objects older than this" msgstr "vá»›i -A, các đối tượng cÅ© hÆ¡n khoảng thá»i gian nà y thì không bị mất" -#: builtin/repack.c:176 +#: builtin/repack.c:180 msgid "size of the window used for delta compression" msgstr "kÃch thÆ°á»›c cá»a sổ được dùng cho nén “deltaâ€" -#: builtin/repack.c:177 builtin/repack.c:181 +#: builtin/repack.c:181 builtin/repack.c:185 msgid "bytes" msgstr "byte" -#: builtin/repack.c:178 +#: builtin/repack.c:182 msgid "same as the above, but limit memory size instead of entries count" msgstr "giống nhÆ° trên, nhÆ°ng giá»›i hạn kÃch thÆ°á»›c bá»™ nhá»› hay vì số lượng" -#: builtin/repack.c:180 +#: builtin/repack.c:184 msgid "limits the maximum delta depth" msgstr "giá»›i hạn Ä‘á»™ sâu tối Ä‘a của “deltaâ€" -#: builtin/repack.c:182 +#: builtin/repack.c:186 msgid "maximum size of each packfile" msgstr "kcÃh thÆ°á»›c tối Ä‘a cho từng táºp tin gói" -#: builtin/repack.c:184 +#: builtin/repack.c:188 msgid "repack objects in packs marked with .keep" msgstr "đóng gói lại các đối tượng trong các gói đã đánh dấu bằng .keep" -#: builtin/repack.c:371 +#: builtin/repack.c:374 #, c-format msgid "removing '%s' failed" msgstr "gặp lá»—i khi xóa bỠ“%sâ€" -#: builtin/replace.c:17 +#: builtin/replace.c:19 msgid "git replace [-f] <object> <replacement>" msgstr "git replace [-f] <đối-tượng> <thay-thế>" -#: builtin/replace.c:18 +#: builtin/replace.c:20 +msgid "git replace [-f] --edit <object>" +msgstr "git replace [-f] --edit <đối tượng>" + +#: builtin/replace.c:21 +msgid "git replace [-f] --graft <commit> [<parent>...]" +msgstr "git replace [-f] --graft <lần_chuyển_giao> [<cha_mẹ>...]" + +#: builtin/replace.c:22 msgid "git replace -d <object>..." msgstr "git replace -d <đối tượng>..." -#: builtin/replace.c:19 +#: builtin/replace.c:23 msgid "git replace [--format=<format>] [-l [<pattern>]]" msgstr "git replace [--format=<định_dạng>] [-l [<mẫu>]]" -#: builtin/replace.c:174 +#: builtin/replace.c:322 builtin/replace.c:360 builtin/replace.c:388 +#, c-format +msgid "Not a valid object name: '%s'" +msgstr "Không phải là tên đối tượng hợp lệ: “%sâ€" + +#: builtin/replace.c:352 +#, c-format +msgid "bad mergetag in commit '%s'" +msgstr "thẻ hòa trá»™n sai trong lần chuyển giao “%sâ€" + +#: builtin/replace.c:354 +#, c-format +msgid "malformed mergetag in commit '%s'" +msgstr "thẻ hòa trá»™n không đúng dạng ở lần chuyển giao “%sâ€" + +#: builtin/replace.c:365 +#, c-format +msgid "" +"original commit '%s' contains mergetag '%s' that is discarded; use --edit " +"instead of --graft" +msgstr "" +"lần chuyển giao gốc “%s†có chứa thẻ hòa trá»™n “%s†cái mà bị loại bá»; dùng " +"tùy chá»n --edit thay cho --graft" + +#: builtin/replace.c:398 +#, c-format +msgid "the original commit '%s' has a gpg signature." +msgstr "lần chuyển giao gốc “%s†có chữ ký GPG." + +#: builtin/replace.c:399 +msgid "the signature will be removed in the replacement commit!" +msgstr "chữ ký sẽ được bá» Ä‘i trong lần chuyển giao thay thế!" + +#: builtin/replace.c:405 +#, c-format +msgid "could not write replacement commit for: '%s'" +msgstr "không thể ghi lần chuyển giao thay thế cho: “%sâ€" + +#: builtin/replace.c:429 msgid "list replace refs" msgstr "liệt kê các refs thay thế" -#: builtin/replace.c:175 +#: builtin/replace.c:430 msgid "delete replace refs" msgstr "xóa tham chiếu (refs) thay thế" -#: builtin/replace.c:176 +#: builtin/replace.c:431 +msgid "edit existing object" +msgstr "sá»a đối tượng sẵn có" + +#: builtin/replace.c:432 +msgid "change a commit's parents" +msgstr "thay đổi cha mẹ của lần chuyển giao" + +#: builtin/replace.c:433 msgid "replace the ref if it exists" msgstr "thay thế tham chiếu (ref) nếu nó đã sẵn có" -#: builtin/replace.c:177 +#: builtin/replace.c:434 +msgid "do not pretty-print contents for --edit" +msgstr "đừng in đẹp các ná»™i dung cho --edit" + +#: builtin/replace.c:435 msgid "use this format" msgstr "dùng định dạng nà y" @@ -8882,99 +9008,99 @@ msgstr "HEAD hiện giá» tại %s" msgid "Cannot do a %s reset in the middle of a merge." msgstr "Không thể thá»±c hiện má»™t %s reset ở giữa của quá trình hòa trá»™n." -#: builtin/reset.c:273 +#: builtin/reset.c:275 msgid "be quiet, only report errors" msgstr "là m việc ở chế Ä‘á»™ im lặng, chỉ hiển thị khi có lá»—i" -#: builtin/reset.c:275 +#: builtin/reset.c:277 msgid "reset HEAD and index" msgstr "đặt lại (reset) HEAD và bảng mục lục" -#: builtin/reset.c:276 +#: builtin/reset.c:278 msgid "reset only HEAD" msgstr "chỉ đặt lại (reset) HEAD" -#: builtin/reset.c:278 builtin/reset.c:280 +#: builtin/reset.c:280 builtin/reset.c:282 msgid "reset HEAD, index and working tree" msgstr "đặt lại HEAD, bảng mục lục và cây là m việc" -#: builtin/reset.c:282 +#: builtin/reset.c:284 msgid "reset HEAD but keep local changes" msgstr "đặt lại HEAD nhÆ°ng giữ lại các thay đổi ná»™i bá»™" -#: builtin/reset.c:285 +#: builtin/reset.c:287 msgid "record only the fact that removed paths will be added later" msgstr "chỉ ghi lại những Ä‘Æ°á»ng dẫn thá»±c sá»± sẽ được thêm và o sau nà y" -#: builtin/reset.c:302 +#: builtin/reset.c:304 #, c-format msgid "Failed to resolve '%s' as a valid revision." msgstr "Gặp lá»—i khi phân giải “%s†nhÆ° là điểm xét duyệt hợp lệ." -#: builtin/reset.c:305 builtin/reset.c:313 +#: builtin/reset.c:307 builtin/reset.c:315 #, c-format msgid "Could not parse object '%s'." msgstr "không thể phân tÃch đối tượng “%sâ€." -#: builtin/reset.c:310 +#: builtin/reset.c:312 #, c-format msgid "Failed to resolve '%s' as a valid tree." msgstr "Gặp lá»—i khi phân giải “%s†nhÆ° là má»™t cây (tree) hợp lệ." -#: builtin/reset.c:319 +#: builtin/reset.c:321 msgid "--patch is incompatible with --{hard,mixed,soft}" msgstr "--patch xung khắc vá»›i --{hard,mixed,soft}" -#: builtin/reset.c:328 +#: builtin/reset.c:330 msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead." msgstr "" "--mixed vá»›i các Ä‘Æ°á»ng dẫn không còn dùng nữa; hãy thay thế bằng lệnh “git " "reset -- <Ä‘Æ°á»ng_dẫn>â€." -#: builtin/reset.c:330 +#: builtin/reset.c:332 #, c-format msgid "Cannot do %s reset with paths." msgstr "Không thể thá»±c hiện lệnh %s reset vá»›i các Ä‘Æ°á»ng dẫn." -#: builtin/reset.c:340 +#: builtin/reset.c:342 #, c-format msgid "%s reset is not allowed in a bare repository" msgstr "%s reset không được phép trên kho thuần" -#: builtin/reset.c:344 +#: builtin/reset.c:346 msgid "-N can only be used with --mixed" msgstr "-N chỉ được dùng khi có --mixed" -#: builtin/reset.c:361 +#: builtin/reset.c:363 msgid "Unstaged changes after reset:" msgstr "Những thay đổi được Ä‘Æ°a ra khá»i bệ phóng sau khi reset:" -#: builtin/reset.c:367 +#: builtin/reset.c:369 #, c-format msgid "Could not reset index file to revision '%s'." msgstr "Không thể đặt lại (reset) bảng mục lục thà nh Ä‘iểm xét duyệt “%sâ€." -#: builtin/reset.c:372 +#: builtin/reset.c:373 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-parse.c:359 +#: builtin/rev-parse.c:360 msgid "git rev-parse --parseopt [options] -- [<args>...]" msgstr "git rev-parse --parseopt [các-tùy-chá»n] -- [<th.số>...]" -#: builtin/rev-parse.c:364 +#: builtin/rev-parse.c:365 msgid "keep the `--` passed as an arg" msgstr "giữ lại “--†chuyển sang là m tham số" -#: builtin/rev-parse.c:366 +#: builtin/rev-parse.c:367 msgid "stop parsing after the first non-option argument" msgstr "dừng phân tÃch sau đối số đầu tiên không có tùy chá»n" -#: builtin/rev-parse.c:369 +#: builtin/rev-parse.c:370 msgid "output in stuck long form" msgstr "kết xuất trong định dạng gáºy dà i" -#: builtin/rev-parse.c:497 +#: builtin/rev-parse.c:498 msgid "" "git rev-parse --parseopt [options] -- [<args>...]\n" " or: git rev-parse --sq-quote [<arg>...]\n" @@ -9287,11 +9413,11 @@ msgstr "hiển thị <n> các mục “ref-log†gần nhất kể từ ná»n ( #: builtin/show-ref.c:10 msgid "" -"git show-ref [-q|--quiet] [--verify] [--head] [-d|--dereference] [-s|--hash" -"[=<n>]] [--abbrev[=<n>]] [--tags] [--heads] [--] [pattern*] " +"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] [--] [mẫu*] " +"git show-ref [-q|--quiet] [--verify] [--head] [-d|--dereference] [-s|--" +"hash[=<n>]] [--abbrev[=<n>]] [--tags] [--heads] [--] [mẫu*] " #: builtin/show-ref.c:11 msgid "git show-ref --exclude-existing[=pattern] < ref-list" @@ -9355,11 +9481,11 @@ msgstr "xóa tham chiếu (ref) tượng trÆ°ng" msgid "shorten ref output" msgstr "là m ngắn kết xuất ref (tham chiếu)" -#: builtin/symbolic-ref.c:43 builtin/update-ref.c:255 +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:349 msgid "reason" msgstr "lý do" -#: builtin/symbolic-ref.c:43 builtin/update-ref.c:255 +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:349 msgid "reason of the update" msgstr "lý do cáºp nháºt" @@ -9385,203 +9511,212 @@ msgstr "" msgid "git tag -v <tagname>..." msgstr "git tag -v <tên-thẻ>..." -#: builtin/tag.c:67 +#: builtin/tag.c:69 #, c-format msgid "malformed object at '%s'" msgstr "đối tượng dị hình tại “%sâ€" -#: builtin/tag.c:239 +#: builtin/tag.c:301 #, c-format msgid "tag name too long: %.*s..." msgstr "tên thẻ quá dà i: %.*s..." -#: builtin/tag.c:244 +#: builtin/tag.c:306 #, c-format msgid "tag '%s' not found." msgstr "không tìm thấy tìm thấy thẻ “%sâ€." -#: builtin/tag.c:259 +#: builtin/tag.c:321 #, c-format msgid "Deleted tag '%s' (was %s)\n" msgstr "Thẻ đã bị xóa “%s†(trÆ°á»›c là %s)\n" -#: builtin/tag.c:271 +#: builtin/tag.c:333 #, c-format msgid "could not verify the tag '%s'" msgstr "không thể thẩm tra thẻ “%sâ€" -#: builtin/tag.c:281 +#: builtin/tag.c:343 #, c-format msgid "" "\n" -"Write a tag message\n" +"Write a message for tag:\n" +" %s\n" "Lines starting with '%c' will be ignored.\n" msgstr "" "\n" "Viết các ghi chú cho (thẻ) tag\n" +" %s\n" "Những dòng được bắt đầu bằng “%c†sẽ được bá» qua.\n" -#: builtin/tag.c:285 +#: builtin/tag.c:347 #, c-format msgid "" "\n" -"Write a tag message\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" "Viết các ghi chú cho (thẻ) tag\n" -"Những dòng được bắt đầu bằng “%c†sẽ được bá» qua; bạn có thể xóa chúng Ä‘i " +" %s\n" +"Những dòng được bắt đầu bằng “%c†sẽ được giữ lại; bạn có thể xóa chúng Ä‘i " "nếu muốn.\n" -#: builtin/tag.c:324 +#: builtin/tag.c:371 +#, c-format +msgid "unsupported sort specification '%s'" +msgstr "không há»— trợ đặc tả sắp xếp “%sâ€" + +#: builtin/tag.c:373 +#, c-format +msgid "unsupported sort specification '%s' in variable '%s'" +msgstr "không há»— trợ đặc tả sắp xếp “%s†trong biến “%sâ€" + +#: builtin/tag.c:428 msgid "unable to sign the tag" msgstr "không thể ký thẻ" -#: builtin/tag.c:326 +#: builtin/tag.c:430 msgid "unable to write tag file" msgstr "không thể ghi và o táºp tin lÆ°u thẻ" -#: builtin/tag.c:351 +#: builtin/tag.c:455 msgid "bad object type." msgstr "kiểu đối tượng sai." -#: builtin/tag.c:364 +#: builtin/tag.c:468 msgid "tag header too big." msgstr "đầu thẻ (tag) quá lá»›n." -#: builtin/tag.c:400 +#: builtin/tag.c:504 msgid "no tag message?" msgstr "không có chú thÃch gì cho cho thẻ à ?" -#: builtin/tag.c:406 +#: builtin/tag.c:510 #, c-format msgid "The tag message has been left in %s\n" msgstr "Ná»™i dung ghi chú còn lại %s\n" -#: builtin/tag.c:455 +#: builtin/tag.c:559 msgid "switch 'points-at' requires an object" msgstr "chuyển đến “points-at†yêu cần má»™t đối tượng" -#: builtin/tag.c:457 +#: builtin/tag.c:561 #, c-format msgid "malformed object name '%s'" msgstr "tên đối tượng dị hình “%sâ€" -#: builtin/tag.c:480 -#, c-format -msgid "unsupported sort specification %s" -msgstr "không há»— trợ đặc tả sắp xếp %s" - -#: builtin/tag.c:500 +#: builtin/tag.c:588 msgid "list tag names" msgstr "chỉ liệt kê tên các thẻ" -#: builtin/tag.c:502 +#: builtin/tag.c:590 msgid "print <n> lines of each tag message" msgstr "hiển thị <n> dòng cho má»—i ghi chú" -#: builtin/tag.c:504 +#: builtin/tag.c:592 msgid "delete tags" msgstr "xóa thẻ" -#: builtin/tag.c:505 +#: builtin/tag.c:593 msgid "verify tags" msgstr "thẩm tra thẻ" -#: builtin/tag.c:507 +#: builtin/tag.c:595 msgid "Tag creation options" msgstr "Tùy chá»n tạo tag" -#: builtin/tag.c:509 +#: builtin/tag.c:597 msgid "annotated tag, needs a message" msgstr "để chú giải cho thẻ, cần má»™t lá»i ghi chú" -#: builtin/tag.c:511 +#: builtin/tag.c:599 msgid "tag message" msgstr "tin nhắn cho thẻ (tag)" -#: builtin/tag.c:513 +#: builtin/tag.c:601 msgid "annotated and GPG-signed tag" msgstr "thẻ chú giải và ký kiểu GPG" -#: builtin/tag.c:517 +#: builtin/tag.c:605 msgid "use another key to sign the tag" msgstr "dùng kháo khác để ký thẻ" -#: builtin/tag.c:518 +#: builtin/tag.c:606 msgid "replace the tag if exists" msgstr "thay thế nếu tag đó đã có trÆ°á»›c" -#: builtin/tag.c:519 +#: builtin/tag.c:607 msgid "show tag list in columns" msgstr "hiển thị danh sách thẻ trong các cá»™t" -#: builtin/tag.c:521 +#: builtin/tag.c:609 msgid "sort tags" msgstr "sắp xếp các thẻ" -#: builtin/tag.c:525 +#: builtin/tag.c:613 msgid "Tag listing options" msgstr "Các tùy chá»n liệt kê thẻ" -#: builtin/tag.c:528 builtin/tag.c:534 +#: builtin/tag.c:616 builtin/tag.c:622 msgid "print only tags that contain the commit" msgstr "chỉ hiển thị những nhánh mà nó chứa lần chuyển giao" -#: builtin/tag.c:540 +#: builtin/tag.c:628 msgid "print only tags of the object" msgstr "chỉ hiển thị các thẻ của đối tượng" -#: builtin/tag.c:566 +#: builtin/tag.c:654 msgid "--column and -n are incompatible" msgstr "--column và -n xung khắc nhau" -#: builtin/tag.c:578 +#: builtin/tag.c:666 msgid "--sort and -n are incompatible" msgstr "--sort và -n xung khắc nhau" -#: builtin/tag.c:585 +#: builtin/tag.c:673 msgid "-n option is only allowed with -l." msgstr "tùy chá»n -n chỉ cho phép dùng vá»›i -l." -#: builtin/tag.c:587 +#: builtin/tag.c:675 msgid "--contains option is only allowed with -l." msgstr "tùy chá»n --contains chỉ cho phép dùng vá»›i -l." -#: builtin/tag.c:589 +#: builtin/tag.c:677 msgid "--points-at option is only allowed with -l." msgstr "tùy chá»n --points-at chỉ cho phép dùng vá»›i -l." -#: builtin/tag.c:597 +#: builtin/tag.c:685 msgid "only one -F or -m option is allowed." msgstr "chỉ có má»™t tùy chá»n -F hoặc -m là được phép." -#: builtin/tag.c:617 +#: builtin/tag.c:705 msgid "too many params" msgstr "quá nhiá»u đối số" -#: builtin/tag.c:623 +#: builtin/tag.c:711 #, c-format msgid "'%s' is not a valid tag name." msgstr "“%s†không phải thẻ hợp lệ." -#: builtin/tag.c:628 +#: builtin/tag.c:716 #, c-format msgid "tag '%s' already exists" msgstr "Thẻ “%s†đã tồn tại rồi" -#: builtin/tag.c:646 +#: builtin/tag.c:734 #, c-format msgid "%s: cannot lock the ref" msgstr "%s: không thể khóa ref (tham chiếu)" -#: builtin/tag.c:648 +#: builtin/tag.c:736 #, c-format msgid "%s: cannot update the ref" msgstr "%s: không thể cáºp nháºt ref (tham chiếu)" -#: builtin/tag.c:650 +#: builtin/tag.c:738 #, c-format msgid "Updated tag '%s' (was %s)\n" msgstr "Äã cáºp nháºt thẻ “%s†(trÆ°á»›c là %s)\n" @@ -9590,122 +9725,126 @@ 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:399 +#: builtin/update-index.c:402 msgid "git update-index [options] [--] [<file>...]" msgstr "git update-index [các-tùy-chá»n] [<táºp-tin>...]" -#: builtin/update-index.c:748 +#: builtin/update-index.c:755 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:751 +#: builtin/update-index.c:758 msgid "refresh: ignore submodules" msgstr "refresh: lá» Ä‘i mô-Ä‘un-con" -#: builtin/update-index.c:754 +#: builtin/update-index.c:761 msgid "do not ignore new files" msgstr "không bá» qua các táºp tin má»›i tạo" -#: builtin/update-index.c:756 +#: builtin/update-index.c:763 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:758 +#: builtin/update-index.c:765 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:760 +#: builtin/update-index.c:767 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:763 +#: builtin/update-index.c:770 msgid "refresh stat information" msgstr "lấy lại thông tin thống kê" -#: builtin/update-index.c:767 +#: builtin/update-index.c:774 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:771 +#: builtin/update-index.c:778 msgid "<mode>,<object>,<path>" msgstr "<chế_Ä‘á»™>,<đối_tượng>,<Ä‘Æ°á»ng_dẫn>" -#: builtin/update-index.c:772 +#: builtin/update-index.c:779 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:776 +#: builtin/update-index.c:783 msgid "(+/-)x" msgstr "(+/-)x" -#: builtin/update-index.c:777 +#: builtin/update-index.c:784 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:781 +#: builtin/update-index.c:788 msgid "mark files as \"not changing\"" msgstr "Äánh dấu các táºp tin là \"không thay đổi\"" -#: builtin/update-index.c:784 +#: builtin/update-index.c:791 msgid "clear assumed-unchanged bit" msgstr "xóa bÃt assumed-unchanged" -#: builtin/update-index.c:787 +#: builtin/update-index.c:794 msgid "mark files as \"index-only\"" msgstr "đánh dấu các táºp tin là “chỉ-Ä‘á»câ€" -#: builtin/update-index.c:790 +#: builtin/update-index.c:797 msgid "clear skip-worktree bit" msgstr "xóa bÃt skip-worktree" -#: builtin/update-index.c:793 +#: builtin/update-index.c:800 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:795 +#: builtin/update-index.c:802 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:797 +#: builtin/update-index.c:804 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:799 +#: builtin/update-index.c:806 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:803 +#: builtin/update-index.c:810 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:807 +#: builtin/update-index.c:814 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:811 +#: builtin/update-index.c:818 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:815 +#: builtin/update-index.c:822 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:818 +#: builtin/update-index.c:825 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:820 +#: builtin/update-index.c:827 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:824 +#: builtin/update-index.c:831 msgid "write index in this format" msgstr "ghi mục lục ở định dạng nà y" +#: builtin/update-index.c:833 +msgid "enable or disable split index" +msgstr "báºt/tắt chia cắt bảng mục lục" + #: builtin/update-ref.c:9 msgid "git update-ref [options] -d <refname> [<oldval>]" msgstr "git update-ref [các-tùy-chá»n] -d <refname> [<biến-cÅ©>]" @@ -9718,19 +9857,19 @@ msgstr "git update-ref [các-tùy-chá»n] <refname> <biến-má»›i> [<biến-c msgid "git update-ref [options] --stdin [-z]" msgstr "git update-ref [các-tùy-chá»n] --stdin [-z]" -#: builtin/update-ref.c:256 +#: builtin/update-ref.c:350 msgid "delete the reference" msgstr "xóa tham chiếu" -#: builtin/update-ref.c:258 +#: builtin/update-ref.c:352 msgid "update <refname> not the one it points to" msgstr "cáºp nháºt <tên-tham-chiếu> không phải cái nó chỉ tá»›i" -#: builtin/update-ref.c:259 +#: builtin/update-ref.c:353 msgid "stdin has NUL-terminated arguments" msgstr "đầu và o tiêu chuẩn có các đối số được chấm dứt bởi NUL" -#: builtin/update-ref.c:260 +#: builtin/update-ref.c:354 msgid "read updates from stdin" msgstr "Ä‘á»c cáºp nháºt từ đầu và o tiêu chuẩn" @@ -9742,15 +9881,23 @@ msgstr "git update-server-info [--force]" msgid "update the info files from scratch" msgstr "cáºp nháºt các táºp tin thông tin từ Ä‘iểm xuất phát" -#: builtin/verify-pack.c:56 +#: builtin/verify-commit.c:17 +msgid "git verify-commit [-v|--verbose] <commit>..." +msgstr "git verify-commit [-v|--verbose] <lần_chuyển_giao>..." + +#: builtin/verify-commit.c:75 +msgid "print commit contents" +msgstr "hiển thị ná»™i dung của lần chuyển giao" + +#: builtin/verify-pack.c:55 msgid "git verify-pack [-v|--verbose] [-s|--stat-only] <pack>..." msgstr "git verify-pack [-v|--verbose] [-s|--stat-only] <gói>..." -#: builtin/verify-pack.c:66 +#: builtin/verify-pack.c:65 msgid "verbose" msgstr "chi tiết" -#: builtin/verify-pack.c:68 +#: builtin/verify-pack.c:67 msgid "show statistics only" msgstr "chỉ hiển thị thống kê" @@ -10251,13 +10398,13 @@ msgid "Pull is not possible because you have unmerged files." msgstr "" "Full là không thể thá»±c hiện bởi vì bạn có những táºp tin chÆ°a được hòa trá»™n." -#: git-pull.sh:247 +#: git-pull.sh:245 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" -#: git-pull.sh:271 +#: git-pull.sh:269 #, sh-format msgid "" "Warning: fetch updated the current branch head.\n" @@ -10268,11 +10415,11 @@ msgstr "" "Cảnh báo: Ä‘ang fast-forward cây là m việc của bạn từ\n" "Cảnh báo: commit $orig_head." -#: git-pull.sh:296 +#: git-pull.sh:294 msgid "Cannot merge multiple branches into empty head" msgstr "Không thể hòa trá»™n nhiá»u nhánh và trong má»™t head trống rá»—ng" -#: git-pull.sh:300 +#: git-pull.sh:298 msgid "Cannot rebase onto multiple branches" msgstr "Không thể thá»±c hiện lệnh rebase (cÆ¡ cấu lại) trên nhiá»u nhánh" @@ -10289,16 +10436,16 @@ msgstr "" "Äể phục hồi lại thà nh nhánh nguyên thủy và dừng việc vá lại thì chạy \"git " "rebase --abort\"." -#: git-rebase.sh:164 +#: git-rebase.sh:165 msgid "Applied autostash." msgstr "Äã áp dụng autostash." -#: git-rebase.sh:167 +#: git-rebase.sh:168 #, sh-format msgid "Cannot store $stash_sha1" msgstr "Không thể lÆ°u $stash_sha1" -#: git-rebase.sh:168 +#: git-rebase.sh:169 msgid "" "Applying autostash resulted in conflicts.\n" "Your changes are safe in the stash.\n" @@ -10309,35 +10456,35 @@ msgstr "" "Bạn có thể chạy lệnh \"git stash pop\" hay \"git stash drop\" bất kỳ lúc " "nà o.\n" -#: git-rebase.sh:207 +#: git-rebase.sh:208 msgid "The pre-rebase hook refused to rebase." msgstr "Móc (hook) pre-rebase từ chối rebase." -#: git-rebase.sh:212 +#: git-rebase.sh:213 msgid "It looks like git-am is in progress. Cannot rebase." msgstr "" "Hình nhÆ° Ä‘ang trong quá trình thá»±c hiện lệnh git-am. Không thể chạy lệnh " "rebase." -#: git-rebase.sh:350 +#: git-rebase.sh:351 msgid "The --exec option must be used with the --interactive option" msgstr "Tùy chá»n --exec phải được sá» dụng cùng vá»›i tùy chá»n --interactive" -#: git-rebase.sh:355 +#: git-rebase.sh:356 msgid "No rebase in progress?" msgstr "Không có tiến trình rebase nà o phải không?" -#: git-rebase.sh:366 +#: git-rebase.sh:367 msgid "The --edit-todo action can only be used during interactive rebase." msgstr "" "Hà nh Ä‘á»™ng “--edit-todo†chỉ có thể dùng trong quá trình “rebase†(sá»a lịch " "sá») tÆ°Æ¡ng tác." -#: git-rebase.sh:373 +#: git-rebase.sh:374 msgid "Cannot read HEAD" msgstr "Không thể Ä‘á»c HEAD" -#: git-rebase.sh:376 +#: git-rebase.sh:377 msgid "" "You must edit all merge conflicts and then\n" "mark them as resolved using git add" @@ -10345,12 +10492,12 @@ msgstr "" "Bạn phải sá»a tất cả các lần hòa trá»™n xung Ä‘á»™t và sau\n" "đó đánh dấu chúng là cần xá» lý sá» dụng lệnh git add" -#: git-rebase.sh:394 +#: git-rebase.sh:395 #, sh-format msgid "Could not move back to $head_name" msgstr "Không thể quay trở lại $head_name" -#: git-rebase.sh:413 +#: git-rebase.sh:414 #, sh-format msgid "" "It seems that there is already a $state_dir_base directory, and\n" @@ -10373,65 +10520,65 @@ msgstr "" "\n" "TÔI: là lệnh bạn vừa gá»i!" -#: git-rebase.sh:464 +#: git-rebase.sh:465 #, sh-format msgid "invalid upstream $upstream_name" msgstr "thượng nguồn không hợp lệ $upstream_name" -#: git-rebase.sh:488 +#: git-rebase.sh:489 #, sh-format msgid "$onto_name: there are more than one merge bases" msgstr "$onto_name: ở đây có nhiá»u hÆ¡n má»™t ná»n móng hòa trá»™n" -#: git-rebase.sh:491 git-rebase.sh:495 +#: git-rebase.sh:492 git-rebase.sh:496 #, sh-format msgid "$onto_name: there is no merge base" msgstr "$onto_name: ở đây không có ná»n móng hòa trá»™n nà o" -#: git-rebase.sh:500 +#: git-rebase.sh:501 #, sh-format msgid "Does not point to a valid commit: $onto_name" msgstr "Không chỉ đến má»™t lần chuyển giao không hợp lệ: $onto_name" -#: git-rebase.sh:523 +#: git-rebase.sh:524 #, sh-format msgid "fatal: no such branch: $branch_name" msgstr "nghiêm trá»ng: không có nhánh nhÆ° thế: $branch_name" -#: git-rebase.sh:556 +#: git-rebase.sh:557 msgid "Cannot autostash" msgstr "Không thể autostash" -#: git-rebase.sh:561 +#: git-rebase.sh:562 #, sh-format msgid "Created autostash: $stash_abbrev" msgstr "Äã tạo autostash: $stash_abbrev" -#: git-rebase.sh:565 +#: git-rebase.sh:566 msgid "Please commit or stash them." msgstr "Xin hãy commit hoặc tạm cất (stash) chúng." -#: git-rebase.sh:585 +#: git-rebase.sh:586 #, sh-format msgid "Current branch $branch_name is up to date." msgstr "Nhánh hiện tại $branch_name đã được cáºp nháºt rồi." -#: git-rebase.sh:589 +#: git-rebase.sh:590 #, sh-format msgid "Current branch $branch_name is up to date, rebase forced." msgstr "Nhánh hiện tại $branch_name đã được cáºp nháºt rồi, lệnh rebase ép buá»™c." -#: git-rebase.sh:600 +#: git-rebase.sh:601 #, sh-format msgid "Changes from $mb to $onto:" msgstr "Thay đổi từ $mb thà nh $onto:" -#: git-rebase.sh:609 +#: git-rebase.sh:610 msgid "First, rewinding head to replay your work on top of it..." msgstr "" "TrÆ°á»›c tiên, di chuyển head để xem lại các công việc trên đỉnh của nó..." -#: git-rebase.sh:619 +#: git-rebase.sh:620 #, sh-format msgid "Fast-forwarded $branch_name to $onto_name." msgstr "Fast-forward $branch_name thà nh $onto_name." @@ -10449,23 +10596,23 @@ msgstr "Bạn chÆ°a còn có lần chuyển giao khởi tạo" msgid "Cannot save the current index state" msgstr "Không thể ghi lại trạng thái bảng mục lục hiện hà nh" -#: git-stash.sh:123 git-stash.sh:136 +#: git-stash.sh:124 git-stash.sh:137 msgid "Cannot save the current worktree state" msgstr "Không thể ghi lại trạng thái cây-là m-việc hiện hà nh" -#: git-stash.sh:140 +#: git-stash.sh:141 msgid "No changes selected" msgstr "ChÆ°a có thay đổi nà o được chá»n" -#: git-stash.sh:143 +#: git-stash.sh:144 msgid "Cannot remove temporary index (can't happen)" msgstr "Không thể gỡ bá» bảng mục lục tạm thá»i (không thể xảy ra)" -#: git-stash.sh:156 +#: git-stash.sh:157 msgid "Cannot record working tree state" msgstr "Không thể ghi lại trạng thái cây là m việc hiện hà nh" -#: git-stash.sh:190 +#: git-stash.sh:191 #, sh-format msgid "Cannot update $ref_stash with $w_commit" msgstr "Không thể cáºp nháºt $ref_stash vá»›i $w_commit" @@ -10480,7 +10627,7 @@ msgstr "Không thể cáºp nháºt $ref_stash vá»›i $w_commit" #. $ 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:237 +#: git-stash.sh:238 #, sh-format msgid "" "error: unknown option for 'stash save': $option\n" @@ -10490,85 +10637,85 @@ msgstr "" " Äể có thể dùng lá»i chú thÃch có chứa -- ở đầu,\n" " dùng git stash save -- \"$option\"" -#: git-stash.sh:258 +#: git-stash.sh:259 msgid "No local changes to save" msgstr "Không có thay đổi ná»™i bá»™ nà o được ghi lại" -#: git-stash.sh:262 +#: git-stash.sh:263 msgid "Cannot initialize stash" msgstr "Không thể khởi tạo stash" -#: git-stash.sh:266 +#: git-stash.sh:267 msgid "Cannot save the current status" msgstr "Không thể ghi lại trạng thái hiện hà nh" -#: git-stash.sh:284 +#: git-stash.sh:285 msgid "Cannot remove worktree changes" msgstr "Không thể gỡ bá» các thay đổi cây-là m-việc" -#: git-stash.sh:383 +#: git-stash.sh:384 msgid "No stash found." msgstr "Không tìm thấy lần chuyển giao cất Ä‘i (stash) nà o." -#: git-stash.sh:390 +#: git-stash.sh:391 #, sh-format msgid "Too many revisions specified: $REV" msgstr "Chỉ ra quá nhiá»u Ä‘iểm xét duyệt: $REV" -#: git-stash.sh:396 +#: git-stash.sh:397 #, sh-format msgid "$reference is not valid reference" msgstr "$reference không phải là tham chiếu hợp lệ" -#: git-stash.sh:424 +#: git-stash.sh:425 #, sh-format msgid "'$args' is not a stash-like commit" msgstr "“$args†không phải là lần chuyển giao kiểu-stash (cất Ä‘i)" -#: git-stash.sh:435 +#: git-stash.sh:436 #, sh-format msgid "'$args' is not a stash reference" msgstr "â€$args†không phải tham chiếu đến stash" -#: git-stash.sh:443 +#: git-stash.sh:444 msgid "unable to refresh index" msgstr "không thể là m tÆ°Æ¡i má»›i bảng mục lục" -#: git-stash.sh:447 +#: git-stash.sh:448 msgid "Cannot apply a stash in the middle of a merge" msgstr "Không thể áp dụng má»™t stash ở giữa của quá trình hòa trá»™n" -#: git-stash.sh:455 +#: git-stash.sh:456 msgid "Conflicts in index. Try without --index." msgstr "Xung Ä‘á»™t trong bảng mục lục. Hãy thá» mà không dùng tùy chá»n --index." -#: git-stash.sh:457 +#: git-stash.sh:458 msgid "Could not save index tree" msgstr "Không thể ghi lại cây chỉ mục" -#: git-stash.sh:491 +#: git-stash.sh:492 msgid "Cannot unstage modified files" msgstr "Không thể bá» ra khá»i bệ phóng các táºp tin đã được sá»a chữa" -#: git-stash.sh:506 +#: git-stash.sh:507 msgid "Index was not unstashed." msgstr "Bảng mục lục đã không được bá» stash." -#: git-stash.sh:529 +#: git-stash.sh:530 #, sh-format msgid "Dropped ${REV} ($s)" msgstr "Äã xóa ${REV} ($s)" -#: git-stash.sh:530 +#: git-stash.sh:531 #, sh-format msgid "${REV}: Could not drop stash entry" msgstr "${REV}: Không thể xóa bá» mục stash" -#: git-stash.sh:537 +#: git-stash.sh:538 msgid "No branch name specified" msgstr "ChÆ°a chỉ ra tên của nhánh" -#: git-stash.sh:609 +#: git-stash.sh:610 msgid "(To restore them type \"git stash apply\")" msgstr "(Äể phục hồi lại chúng hãy gõ \"git stash apply\")" @@ -10589,30 +10736,30 @@ msgstr "" msgid "Clone of '$url' into submodule path '$sm_path' failed" msgstr "Nhân bản “$url†và o Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$sm_path†gặp lá»—i" -#: git-submodule.sh:299 +#: git-submodule.sh:296 #, sh-format msgid "Gitdir '$a' is part of the submodule path '$b' or vice versa" msgstr "" "Gitdir “$a†là bá»™ pháºn của Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$b†hoặc \"vice versa\"" -#: git-submodule.sh:409 +#: git-submodule.sh:406 msgid "Relative path can only be used from the toplevel of the working tree" msgstr "" "ÄÆ°á»ng dẫn tÆ°Æ¡ng đối chỉ có thể dùng từ thÆ° mục ở mức cao nhất của cây là m " "việc" -#: git-submodule.sh:419 +#: git-submodule.sh:416 #, sh-format msgid "repo URL: '$repo' must be absolute or begin with ./|../" msgstr "" "repo URL: “$repo†phải là đưá»ng dẫn tuyệt đối hoặc là bắt đầu bằng ./|../" -#: git-submodule.sh:436 +#: git-submodule.sh:433 #, sh-format msgid "'$sm_path' already exists in the index" msgstr "â€$sm_path†thá»±c sá»± đã tồn tại ở bảng mục lục rồi" -#: git-submodule.sh:440 +#: git-submodule.sh:437 #, sh-format msgid "" "The following path is ignored by one of your .gitignore files:\n" @@ -10624,36 +10771,36 @@ msgstr "" "$sm_path\n" "Sá» dụng -f nếu bạn thá»±c sá»± muốn thêm nó và o." -#: git-submodule.sh:458 +#: git-submodule.sh:455 #, sh-format msgid "Adding existing repo at '$sm_path' to the index" msgstr "Äang thêm repo có sẵn tại “$sm_path†và o bảng mục lục" -#: git-submodule.sh:460 +#: git-submodule.sh:457 #, sh-format msgid "'$sm_path' already exists and is not a valid git repo" msgstr "â€$sm_path†đã tồn tại từ trÆ°á»›c và không phải là má»™t kho git hợp lệ" -#: git-submodule.sh:468 +#: git-submodule.sh:465 #, sh-format msgid "A git directory for '$sm_name' is found locally with remote(s):" msgstr "" "ThÆ° mục git cho “$sm_name†được tìm thấy má»™t cách cục bá»™ vá»›i các máy chủ:" -#: git-submodule.sh:470 +#: git-submodule.sh:467 #, sh-format msgid "" "If you want to reuse this local git directory instead of cloning again from" msgstr "Nếu bạn muốn dùng lại thÆ° mục git ná»™i bá»™ nà y thay vì nhân bản từ nó" -#: git-submodule.sh:472 +#: git-submodule.sh:469 #, sh-format msgid "" "use the '--force' option. If the local git directory is not the correct repo" msgstr "" "dùng tùy chá»n “--forceâ€. Nếu thÆ° mục git ná»™i bá»™ không phải là repo (kho) đúng" -#: git-submodule.sh:473 +#: git-submodule.sh:470 #, sh-format msgid "" "or you are unsure what this means choose another name with the '--name' " @@ -10662,71 +10809,71 @@ msgstr "" "hay bạn không chắc chắn Ä‘iá»u đó có nghÄ©a gì chá»n tên khác vá»›i tùy chá»n “--" "nameâ€." -#: git-submodule.sh:475 +#: git-submodule.sh:472 #, sh-format msgid "Reactivating local git directory for submodule '$sm_name'." msgstr "" "Phục hồi sá»± hoạt Ä‘á»™ng của thÆ° mục git ná»™i bá»™ cho mô-Ä‘un-con “$sm_nameâ€." -#: git-submodule.sh:487 +#: git-submodule.sh:484 #, sh-format msgid "Unable to checkout submodule '$sm_path'" msgstr "Không thể lấy ra mô-Ä‘un-con “$sm_pathâ€" -#: git-submodule.sh:492 +#: git-submodule.sh:489 #, sh-format msgid "Failed to add submodule '$sm_path'" msgstr "Gặp lá»—i khi thêm mô-Ä‘un-con “$sm_pathâ€" -#: git-submodule.sh:501 +#: git-submodule.sh:498 #, sh-format msgid "Failed to register submodule '$sm_path'" msgstr "Gặp lá»—i khi đăng ký vá»›i hệ thống mô-Ä‘un-con “$sm_pathâ€" -#: git-submodule.sh:545 +#: git-submodule.sh:542 #, sh-format msgid "Entering '$prefix$displaypath'" msgstr "Äang và o “$prefix$displaypathâ€" -#: git-submodule.sh:565 +#: git-submodule.sh:562 #, sh-format msgid "Stopping at '$prefix$displaypath'; script returned non-zero status." msgstr "" "Dừng lại tại “$prefix$displaypathâ€; script trả vá» trạng thái khác không." -#: git-submodule.sh:611 +#: git-submodule.sh:608 #, sh-format msgid "No url found for submodule path '$displaypath' in .gitmodules" msgstr "" "Không tìm thấy url cho Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$displaypath†trong .gitmodules" -#: git-submodule.sh:620 +#: git-submodule.sh:617 #, sh-format msgid "Failed to register url for submodule path '$displaypath'" msgstr "Gặp lá»—i khi đăng ký url cho Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$displaypathâ€" -#: git-submodule.sh:622 +#: git-submodule.sh:619 #, sh-format msgid "Submodule '$name' ($url) registered for path '$displaypath'" msgstr "Mô-Ä‘un-con “$name†($url) được đăng ký cho Ä‘Æ°á»ng dẫn “$displaypathâ€" -#: git-submodule.sh:639 +#: git-submodule.sh:636 #, sh-format msgid "Failed to register update mode for submodule path '$displaypath'" msgstr "" "Gặp lá»—i khi đăng ký chế Ä‘á»™ cáºp nháºt cho Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$displaypathâ€" -#: git-submodule.sh:677 +#: git-submodule.sh:674 #, sh-format msgid "Use '.' if you really want to deinitialize all submodules" msgstr "Dùng “.†nếu bạn thá»±c sá»± muốn gỡ bá» má»i mô-Ä‘un-con" -#: git-submodule.sh:694 +#: git-submodule.sh:691 #, sh-format msgid "Submodule work tree '$displaypath' contains a .git directory" msgstr "Cây là m việc mô-Ä‘un-con “$displaypath†có chứa thÆ° mục .git" -#: git-submodule.sh:695 +#: git-submodule.sh:692 #, sh-format msgid "" "(use 'rm -rf' if you really want to remove it including all of its history)" @@ -10734,7 +10881,7 @@ msgstr "" "(dùng “rm -rf†nếu bạn thá»±c sá»± muốn gỡ bá» nó cùng vá»›i tất cả lịch sá» của " "chúng)" -#: git-submodule.sh:701 +#: git-submodule.sh:698 #, sh-format msgid "" "Submodule work tree '$displaypath' contains local modifications; use '-f' to " @@ -10743,27 +10890,27 @@ msgstr "" "Cây là m việc mô-Ä‘un-con “$displaypath†chứa các thay đổi ná»™i bá»™; hãy dùng “-" "f†để loại bá» chúng Ä‘i" -#: git-submodule.sh:704 +#: git-submodule.sh:701 #, sh-format msgid "Cleared directory '$displaypath'" msgstr "Äã tạo thÆ° mục “$displaypathâ€" -#: git-submodule.sh:705 +#: git-submodule.sh:702 #, sh-format msgid "Could not remove submodule work tree '$displaypath'" msgstr "Không thể gỡ bá» cây là m việc mô-Ä‘un-con “$displaypathâ€" -#: git-submodule.sh:708 +#: git-submodule.sh:705 #, sh-format msgid "Could not create empty submodule directory '$displaypath'" msgstr "Không thể tạo thÆ° mục mô-Ä‘un-con rá»—ng “$displaypathâ€" -#: git-submodule.sh:717 +#: git-submodule.sh:714 #, sh-format 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:833 +#: git-submodule.sh:830 #, sh-format msgid "" "Submodule path '$displaypath' not initialized\n" @@ -10772,55 +10919,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:846 +#: git-submodule.sh:843 #, 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:855 +#: git-submodule.sh:852 #, 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:879 +#: git-submodule.sh:876 #, 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:893 +#: git-submodule.sh:890 #, 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:894 +#: git-submodule.sh:891 #, sh-format msgid "Submodule path '$displaypath': checked out '$sha1'" msgstr "ÄÆ°á»ng dẫn mô-Ä‘un-con “$displaypathâ€: đã checkout “$sha1â€" -#: git-submodule.sh:898 +#: git-submodule.sh:895 #, 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:899 +#: git-submodule.sh:896 #, 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:904 +#: git-submodule.sh:901 #, 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:905 +#: git-submodule.sh:902 #, 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:910 +#: git-submodule.sh:907 #, sh-format msgid "" "Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'" @@ -10828,56 +10975,62 @@ 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:911 +#: git-submodule.sh:908 #, 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:941 +#: git-submodule.sh:938 #, 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:1049 +#: git-submodule.sh:1046 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:1097 +#: git-submodule.sh:1098 #, sh-format msgid "unexpected mode $mod_dst" msgstr "chế Ä‘á»™ không nhÆ° mong chá» $mod_dst" -#: git-submodule.sh:1117 +#: git-submodule.sh:1118 #, 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:1120 +#: git-submodule.sh:1121 #, 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:1123 +#: git-submodule.sh:1124 #, 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:1148 +#: git-submodule.sh:1149 msgid "blob" msgstr "blob" -#: git-submodule.sh:1262 +#: git-submodule.sh:1267 #, 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:1326 +#: git-submodule.sh:1331 #, sh-format msgid "Synchronizing submodule url for '$displaypath'" msgstr "Url Mô-Ä‘un-con đồng bá»™ hóa cho “$displaypathâ€" +#~ msgid "commit has empty message" +#~ msgstr "lần chuyển giao có ghi chú trống rá»—ng" + +#~ msgid "Failed to chdir: %s" +#~ msgstr "Gặp lá»—i vá»›i lệnh chdir: %s" + #~ msgid "key id" #~ msgstr "id của khóa" diff --git a/po/zh_CN.po b/po/zh_CN.po index 06cc173aca..7cb670e3e4 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: Git\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2014-04-23 12:50+0800\n" -"PO-Revision-Date: 2014-04-23 12:53+0800\n" +"POT-Creation-Date: 2014-08-04 14:48+0800\n" +"PO-Revision-Date: 2014-08-04 16:16+0800\n" "Last-Translator: Jiang Xin <worldhello.net@gmail.com>\n" "Language-Team: GitHub <https://github.com/gotgit/git/>\n" "Language: zh_CN\n" @@ -27,16 +27,14 @@ msgstr "" msgid "hint: %.*s\n" msgstr "æ示:%.*s\n" -#: advice.c:85 +#: advice.c:88 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'." +"Fix them up in the work tree, and then use 'git add/rm <file>'\n" +"as appropriate to mark resolution and make a commit, or use\n" +"'git commit -a'." msgstr "" -"请先在工作区改æ£æ–‡ä»¶ï¼Œç„¶åŽé…Œæƒ…使用\n" -"'git add/rm <file>' æ ‡è®°è§£å†³æ–¹æ¡ˆï¼Œ\n" -"或使用 'git commit -a'。" +"请在工作区改æ£æ–‡ä»¶ï¼Œç„¶åŽé…Œæƒ…使用 'git add/rm <file>' å‘½ä»¤æ ‡è®°\n" +"解决方案并æ交,或者使用 'git commit -a'。" #: archive.c:10 msgid "git archive [options] <tree-ish> [<path>...]" @@ -56,7 +54,7 @@ msgstr "" msgid "git archive --remote <repo> [--exec <cmd>] --list" msgstr "git archive --remote <版本库> [--exec <命令>] --list" -#: archive.c:243 builtin/add.c:136 builtin/add.c:428 builtin/rm.c:328 +#: archive.c:243 builtin/add.c:136 builtin/add.c:427 builtin/rm.c:328 #, c-format msgid "pathspec '%s' did not match any files" msgstr "路径规则 '%s' 未匹é…任何文件" @@ -69,7 +67,7 @@ msgstr "æ ¼å¼" msgid "archive format" msgstr "å½’æ¡£æ ¼å¼" -#: archive.c:329 builtin/log.c:1193 +#: archive.c:329 builtin/log.c:1201 msgid "prefix" msgstr "å‰ç¼€" @@ -77,9 +75,9 @@ msgstr "å‰ç¼€" msgid "prepend prefix to each pathname in the archive" msgstr "为归档ä¸æ¯ä¸ªè·¯å¾„ååŠ ä¸Šå‰ç¼€" -#: archive.c:331 builtin/archive.c:88 builtin/blame.c:2265 -#: builtin/blame.c:2266 builtin/config.c:57 builtin/fast-export.c:680 -#: builtin/fast-export.c:682 builtin/grep.c:714 builtin/hash-object.c:77 +#: archive.c:331 builtin/archive.c:88 builtin/blame.c:2517 +#: builtin/blame.c:2518 builtin/config.c:57 builtin/fast-export.c:709 +#: builtin/fast-export.c:711 builtin/grep.c:712 builtin/hash-object.c:77 #: builtin/ls-files.c:489 builtin/ls-files.c:492 builtin/notes.c:412 #: builtin/notes.c:569 builtin/read-tree.c:108 parse-options.h:151 msgid "file" @@ -262,7 +260,7 @@ msgstr "'%s' ä¸åƒæ˜¯ä¸€ä¸ª v2 版本的包文件" msgid "unrecognized header: %s%s (%d)" msgstr "未能识别的包头:%s%s (%d)" -#: bundle.c:86 builtin/commit.c:706 +#: bundle.c:86 builtin/commit.c:755 #, c-format msgid "could not open '%s'" msgstr "ä¸èƒ½æ‰“å¼€ '%s'" @@ -271,8 +269,8 @@ msgstr "ä¸èƒ½æ‰“å¼€ '%s'" msgid "Repository lacks these prerequisite commits:" msgstr "版本库缺少这些必备的æ交:" -#: bundle.c:162 sequencer.c:669 sequencer.c:1123 builtin/log.c:332 -#: builtin/log.c:821 builtin/log.c:1418 builtin/log.c:1644 builtin/merge.c:357 +#: bundle.c:162 sequencer.c:630 sequencer.c:1085 builtin/log.c:330 +#: builtin/log.c:821 builtin/log.c:1428 builtin/log.c:1665 builtin/merge.c:357 #: builtin/shortlog.c:158 msgid "revision walk setup failed" msgstr "版本é历设置失败" @@ -295,47 +293,47 @@ msgid_plural "The bundle requires these %d refs:" msgstr[0] "这个包需è¦è¿™ä¸ªå¼•ç”¨ï¼š" msgstr[1] "è¿™ä¸ªåŒ…éœ€è¦ %d 个引用:" -#: bundle.c:293 +#: bundle.c:289 msgid "rev-list died" msgstr "rev-list 终æ¢" -#: bundle.c:299 builtin/log.c:1329 builtin/shortlog.c:261 +#: bundle.c:295 builtin/log.c:1339 builtin/shortlog.c:261 #, c-format msgid "unrecognized argument: %s" msgstr "未能识别的å‚数:%s" -#: bundle.c:334 +#: bundle.c:330 #, c-format msgid "ref '%s' is excluded by the rev-list options" msgstr "引用 '%s' 被 rev-list 选项排除" -#: bundle.c:379 +#: bundle.c:375 msgid "Refusing to create empty bundle." msgstr "ä¸èƒ½åˆ›å»ºç©ºåŒ…。" -#: bundle.c:395 +#: bundle.c:390 msgid "Could not spawn pack-objects" msgstr "ä¸èƒ½ç”Ÿæˆ pack-objects 进程" -#: bundle.c:413 +#: bundle.c:408 msgid "pack-objects died" msgstr "pack-objects 终æ¢" -#: bundle.c:416 +#: bundle.c:411 #, c-format msgid "cannot create '%s'" msgstr "ä¸èƒ½åˆ›å»º '%s'" -#: bundle.c:438 +#: bundle.c:433 msgid "index-pack died" msgstr "index-pack 终æ¢" -#: commit.c:54 +#: commit.c:40 #, c-format msgid "could not parse %s" msgstr "ä¸èƒ½è§£æž %s" -#: commit.c:56 +#: commit.c:42 #, c-format msgid "%s %s is not a commit!" msgstr "%s %s ä¸æ˜¯ä¸€ä¸ªæ交!" @@ -431,28 +429,28 @@ msgstr[1] "%lu å¹´å‰" msgid "failed to read orderfile '%s'" msgstr "æ— æ³•è¯»å–排åºæ–‡ä»¶ '%s'" -#: diffcore-rename.c:517 +#: diffcore-rename.c:514 msgid "Performing inexact rename detection" msgstr "æ£åœ¨è¿›è¡Œéžç²¾ç¡®çš„é‡å‘½å检测" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: diff.c:113 +#: diff.c:114 #, c-format msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr " æ— æ³•è§£æž dirstat 截æ¢ï¼ˆcut-off)百分比 '%s'\n" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: diff.c:118 +#: diff.c:119 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr " 未知的 dirstat å‚æ•° '%s'\n" -#: diff.c:213 +#: diff.c:214 #, c-format msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "é…ç½®å˜é‡ 'diff.submodule' 未知的å–值:'%s'" -#: diff.c:263 +#: diff.c:267 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" @@ -461,7 +459,16 @@ msgstr "" "å‘现é…ç½®å˜é‡ 'diff.dirstat' ä¸çš„错误:\n" "%s" -#: diff.c:3495 +#: diff.c:2934 +#, c-format +msgid "external diff died, stopping at %s" +msgstr "外部 diff 退出,åœæ¢åœ¨ %s" + +#: diff.c:3329 +msgid "--follow requires exactly one pathspec" +msgstr "--follow å‚æ•°åŽåªè·Ÿä¸€ä¸ª pathspec" + +#: diff.c:3492 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -470,58 +477,58 @@ msgstr "" "æ— æ³•è§£æž --dirstat/-X 选项的å‚数:\n" "%s" -#: diff.c:3509 +#: diff.c:3506 #, c-format msgid "Failed to parse --submodule option parameter: '%s'" msgstr "æ— æ³•è§£æž --submodule 选项的å‚数:'%s'" -#: gpg-interface.c:59 gpg-interface.c:131 +#: gpg-interface.c:73 gpg-interface.c:145 msgid "could not run gpg." msgstr "ä¸èƒ½æ‰§è¡Œ gpg。" -#: gpg-interface.c:71 +#: gpg-interface.c:85 msgid "gpg did not accept the data" msgstr "gpg 没有接å—æ•°æ®" -#: gpg-interface.c:82 +#: gpg-interface.c:96 msgid "gpg failed to sign the data" msgstr "gpg æ— æ³•ä¸ºæ•°æ®ç¾å" -#: gpg-interface.c:115 +#: gpg-interface.c:129 #, c-format msgid "could not create temporary file '%s': %s" msgstr "ä¸èƒ½åˆ›å»ºä¸´æ—¶æ–‡ä»¶ '%s':%s" -#: gpg-interface.c:118 +#: gpg-interface.c:132 #, c-format msgid "failed writing detached signature to '%s': %s" msgstr "æ— æ³•å°†åˆ†ç¦»å¼ç¾å写入 '%s':%s" -#: grep.c:1698 +#: grep.c:1703 #, c-format msgid "'%s': unable to read %s" msgstr "'%s'ï¼šæ— æ³•è¯»å– %s" -#: grep.c:1715 +#: grep.c:1720 #, c-format msgid "'%s': %s" msgstr "'%s':%s" -#: grep.c:1726 +#: grep.c:1731 #, c-format msgid "'%s': short read %s" msgstr "'%s':读å–ä¸å®Œæ•´ %s" -#: help.c:209 +#: help.c:207 #, c-format msgid "available git commands in '%s'" msgstr "在 '%s' 下å¯ç”¨çš„ git 命令" -#: help.c:216 +#: help.c:214 msgid "git commands available from elsewhere on your $PATH" msgstr "在 $PATH 路径ä¸çš„其他地方å¯ç”¨çš„ git 命令" -#: help.c:232 +#: help.c:230 msgid "The most commonly used git commands are:" msgstr "最常用的 git 命令有:" @@ -557,7 +564,7 @@ msgstr "在 %0.1f 秒钟åŽè‡ªåŠ¨è¿è¡Œ..." msgid "git: '%s' is not a git command. See 'git --help'." msgstr "git:'%s' ä¸æ˜¯ä¸€ä¸ª git 命令。å‚è§ 'git --help'。" -#: help.c:384 help.c:443 +#: help.c:384 help.c:444 msgid "" "\n" "Did you mean this?" @@ -571,16 +578,16 @@ msgstr[1] "" "\n" "您指的是这其ä¸çš„æŸä¸€ä¸ªä¹ˆï¼Ÿ" -#: help.c:439 +#: help.c:440 #, c-format msgid "%s: %s - %s" msgstr "%s:%s - %s" -#: merge.c:56 +#: merge.c:40 msgid "failed to read the cache" msgstr "æ— æ³•è¯»å–缓å˜" -#: merge.c:110 builtin/checkout.c:357 builtin/checkout.c:558 +#: merge.c:93 builtin/checkout.c:356 builtin/checkout.c:556 #: builtin/clone.c:661 msgid "unable to write new index file" msgstr "æ— æ³•å†™æ–°çš„ç´¢å¼•æ–‡ä»¶" @@ -590,7 +597,7 @@ msgstr "æ— æ³•å†™æ–°çš„ç´¢å¼•æ–‡ä»¶" msgid "(bad commit)\n" msgstr "(åæ交)\n" -#: merge-recursive.c:208 +#: merge-recursive.c:210 #, c-format msgid "addinfo_cache failed for path '%s'" msgstr "为路径 '%s' addinfo_cache 失败" @@ -599,64 +606,64 @@ msgstr "为路径 '%s' addinfo_cache 失败" msgid "error building trees" msgstr "æ— æ³•åˆ›å»ºæ ‘" -#: merge-recursive.c:675 +#: merge-recursive.c:692 #, c-format msgid "failed to create path '%s'%s" msgstr "æ— æ³•åˆ›å»ºè·¯å¾„ '%s'%s" -#: merge-recursive.c:686 +#: merge-recursive.c:703 #, c-format msgid "Removing %s to make room for subdirectory\n" msgstr "åˆ é™¤ %s 以便为å目录留出空间\n" -#: merge-recursive.c:700 merge-recursive.c:721 +#: merge-recursive.c:717 merge-recursive.c:738 msgid ": perhaps a D/F conflict?" msgstr ":å¯èƒ½æ˜¯ä¸€ä¸ªç›®å½•/文件冲çªï¼Ÿ" -#: merge-recursive.c:711 +#: merge-recursive.c:728 #, c-format msgid "refusing to lose untracked file at '%s'" msgstr "æ‹’ç»ä¸¢å¼ƒ '%s' ä¸çš„未跟踪文件" -#: merge-recursive.c:751 +#: merge-recursive.c:768 #, c-format msgid "cannot read object %s '%s'" msgstr "ä¸èƒ½è¯»å–对象 %s '%s'" -#: merge-recursive.c:753 +#: merge-recursive.c:770 #, c-format msgid "blob expected for %s '%s'" msgstr "%s '%s' 应为数æ®ï¼ˆblob)对象" -#: merge-recursive.c:776 builtin/clone.c:317 +#: merge-recursive.c:793 builtin/clone.c:317 #, c-format msgid "failed to open '%s'" msgstr "æ— æ³•æ‰“å¼€ '%s'" -#: merge-recursive.c:784 +#: merge-recursive.c:801 #, c-format msgid "failed to symlink '%s'" msgstr "æ— æ³•åˆ›å»ºç¬¦å·é“¾æŽ¥ '%s'" -#: merge-recursive.c:787 +#: merge-recursive.c:804 #, c-format msgid "do not know what to do with %06o %s '%s'" msgstr "ä¸çŸ¥é“å¦‚ä½•å¤„ç† %06o %s '%s'" -#: merge-recursive.c:925 +#: merge-recursive.c:942 msgid "Failed to execute internal merge" msgstr "æ— æ³•æ‰§è¡Œå†…éƒ¨åˆå¹¶" -#: merge-recursive.c:929 +#: merge-recursive.c:946 #, c-format msgid "Unable to add %s to database" msgstr "ä¸èƒ½æ·»åŠ %s 至对象库" -#: merge-recursive.c:945 +#: merge-recursive.c:962 msgid "unsupported object type in the tree" msgstr "åœ¨æ ‘ä¸æœ‰ä¸æ”¯æŒçš„对象类型" -#: merge-recursive.c:1024 merge-recursive.c:1038 +#: merge-recursive.c:1037 merge-recursive.c:1051 #, c-format msgid "" "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left " @@ -665,7 +672,7 @@ msgstr "" "冲çªï¼ˆ%1$s/åˆ é™¤ï¼‰ï¼š%2$s 在 %3$s ä¸è¢«åˆ 除,在 %5$s ä¸è¢« %4$s。%7$s 在 %6$s ä¸" "的版本被ä¿ç•™ã€‚" -#: merge-recursive.c:1030 merge-recursive.c:1043 +#: merge-recursive.c:1043 merge-recursive.c:1056 #, c-format msgid "" "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left " @@ -674,20 +681,20 @@ msgstr "" "冲çªï¼ˆ%1$s/åˆ é™¤ï¼‰ï¼š%2$s 在 %3$s ä¸è¢«åˆ 除,在 %5$s ä¸è¢« %4$s。%7$s 在 %6$s ä¸" "的版本ä¿ç•™äºŽ %8$s ä¸ã€‚" -#: merge-recursive.c:1084 +#: merge-recursive.c:1097 msgid "rename" msgstr "é‡å‘½å" -#: merge-recursive.c:1084 +#: merge-recursive.c:1097 msgid "renamed" msgstr "é‡å‘½å" -#: merge-recursive.c:1140 +#: merge-recursive.c:1153 #, c-format msgid "%s is a directory in %s adding as %s instead" msgstr "%s 是 %s ä¸çš„一个目录而以 %s 为åè¢«æ·»åŠ " -#: merge-recursive.c:1162 +#: merge-recursive.c:1175 #, c-format msgid "" "CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s" @@ -696,196 +703,196 @@ msgstr "" "冲çªï¼ˆé‡å‘½å/é‡å‘½å):在分支 \"%3$s\" ä¸é‡å‘½å \"%1$s\"->\"%2$s\",在分支 " "\"%6$s\" ä¸é‡å‘½å \"%4$s\"->\"%5$s\"%7$s" -#: merge-recursive.c:1167 +#: merge-recursive.c:1180 msgid " (left unresolved)" msgstr "(留下未解决)" -#: merge-recursive.c:1221 +#: merge-recursive.c:1234 #, 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:1251 +#: merge-recursive.c:1264 #, c-format msgid "Renaming %s to %s and %s to %s instead" msgstr "而是é‡å‘½å %s 至 %sï¼Œä»¥åŠ %s 至 %s" -#: merge-recursive.c:1450 +#: merge-recursive.c:1463 #, 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:1460 +#: merge-recursive.c:1473 #, c-format msgid "Adding merged %s" msgstr "æ·»åŠ åˆå¹¶åŽçš„ %s" -#: merge-recursive.c:1465 merge-recursive.c:1663 +#: merge-recursive.c:1478 merge-recursive.c:1676 #, c-format msgid "Adding as %s instead" msgstr "而是以 %s 为åæ·»åŠ " -#: merge-recursive.c:1516 +#: merge-recursive.c:1529 #, c-format msgid "cannot read object %s" msgstr "ä¸èƒ½è¯»å–对象 %s" -#: merge-recursive.c:1519 +#: merge-recursive.c:1532 #, c-format msgid "object %s is not a blob" msgstr "对象 %s ä¸æ˜¯ä¸€ä¸ªæ•°æ®ï¼ˆblob)对象" -#: merge-recursive.c:1567 +#: merge-recursive.c:1580 msgid "modify" msgstr "修改" -#: merge-recursive.c:1567 +#: merge-recursive.c:1580 msgid "modified" msgstr "修改" -#: merge-recursive.c:1577 +#: merge-recursive.c:1590 msgid "content" msgstr "内容" -#: merge-recursive.c:1584 +#: merge-recursive.c:1597 msgid "add/add" msgstr "æ·»åŠ /æ·»åŠ " -#: merge-recursive.c:1618 +#: merge-recursive.c:1631 #, c-format msgid "Skipped %s (merged same as existing)" msgstr "略过 %s(已ç»åšè¿‡ç›¸åŒåˆå¹¶ï¼‰" -#: merge-recursive.c:1632 +#: merge-recursive.c:1645 #, c-format msgid "Auto-merging %s" msgstr "自动åˆå¹¶ %s" -#: merge-recursive.c:1636 git-submodule.sh:1149 +#: merge-recursive.c:1649 git-submodule.sh:1150 msgid "submodule" msgstr "å模组" -#: merge-recursive.c:1637 +#: merge-recursive.c:1650 #, c-format msgid "CONFLICT (%s): Merge conflict in %s" msgstr "冲çªï¼ˆ%s):åˆå¹¶å†²çªäºŽ %s" -#: merge-recursive.c:1727 +#: merge-recursive.c:1740 #, c-format msgid "Removing %s" msgstr "åˆ é™¤ %s" -#: merge-recursive.c:1752 +#: merge-recursive.c:1765 msgid "file/directory" msgstr "文件/目录" -#: merge-recursive.c:1758 +#: merge-recursive.c:1771 msgid "directory/file" msgstr "目录/文件" -#: merge-recursive.c:1763 +#: merge-recursive.c:1776 #, 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:1773 +#: merge-recursive.c:1786 #, c-format msgid "Adding %s" msgstr "æ·»åŠ %s" -#: merge-recursive.c:1790 +#: merge-recursive.c:1803 msgid "Fatal merge failure, shouldn't happen." msgstr "严é‡çš„åˆå¹¶é”™è¯¯ï¼Œä¸åº”å‘生。" -#: merge-recursive.c:1809 +#: merge-recursive.c:1822 msgid "Already up-to-date!" msgstr "å·²ç»æ˜¯æœ€æ–°çš„ï¼" -#: merge-recursive.c:1818 +#: merge-recursive.c:1831 #, c-format msgid "merging of trees %s and %s failed" msgstr "æ— æ³•åˆå¹¶æ ‘ %s å’Œ %s" -#: merge-recursive.c:1848 +#: merge-recursive.c:1861 #, c-format msgid "Unprocessed path??? %s" msgstr "未处ç†çš„路径??? %s" -#: merge-recursive.c:1893 +#: merge-recursive.c:1906 msgid "Merging:" msgstr "åˆå¹¶ï¼š" -#: merge-recursive.c:1906 +#: 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:1943 +#: merge-recursive.c:1956 msgid "merge returned no commit" msgstr "åˆå¹¶æœªè¿”回æ交" -#: merge-recursive.c:2000 +#: merge-recursive.c:2013 #, c-format msgid "Could not parse object '%s'" msgstr "ä¸èƒ½è§£æžå¯¹è±¡ '%s'" -#: merge-recursive.c:2012 builtin/merge.c:668 +#: merge-recursive.c:2024 builtin/merge.c:666 msgid "Unable to write index." msgstr "ä¸èƒ½å†™å…¥ç´¢å¼•ã€‚" -#: notes-utils.c:40 +#: notes-utils.c:41 msgid "Cannot commit uninitialized/unreferenced notes tree" msgstr "ä¸èƒ½æ交未åˆå§‹åŒ–/æœªå¼•ç”¨çš„æ³¨è§£æ ‘" -#: notes-utils.c:81 +#: notes-utils.c:83 #, c-format msgid "Bad notes.rewriteMode value: '%s'" msgstr "åçš„ notes.rewriteMode 值:'%s'" -#: notes-utils.c:91 +#: notes-utils.c:93 #, c-format msgid "Refusing to rewrite notes in %s (outside of refs/notes/)" msgstr "æ‹’ç»å‘ %s(在 refs/notes/ 之外)写入注解" #. TRANSLATORS: The first %s is the name of the #. environment variable, the second %s is its value -#: notes-utils.c:118 +#: notes-utils.c:120 #, c-format msgid "Bad %s value: '%s'" msgstr "åçš„ %s 值:'%s'" -#: object.c:229 +#: object.c:234 #, c-format msgid "unable to parse object: %s" msgstr "ä¸èƒ½è§£æžå¯¹è±¡ï¼š%s" -#: parse-options.c:532 +#: parse-options.c:534 msgid "..." msgstr "..." -#: parse-options.c:550 +#: parse-options.c:552 #, c-format msgid "usage: %s" msgstr "用法:%s" #. TRANSLATORS: the colon here should align with the #. one in "usage: %s" translation -#: parse-options.c:554 +#: parse-options.c:556 #, c-format msgid " or: %s" msgstr " 或:%s" # 译者:为ä¿è¯åœ¨è¾“出ä¸å¯¹é½ï¼Œæ³¨æ„调整å¥ä¸ç©ºæ ¼ï¼ -#: parse-options.c:557 +#: parse-options.c:559 #, c-format msgid " %s" msgstr " %s" -#: parse-options.c:591 +#: parse-options.c:593 msgid "-NUM" msgstr "-æ•°å—" @@ -938,12 +945,12 @@ msgstr "路径规则 '%s' 在å模组 '%.*s' ä¸" msgid "%s: pathspec magic not supported by this command: %s" msgstr "%s:路径规则神奇å‰ç¼€ä¸è¢«æ¤å‘½ä»¤æ”¯æŒï¼š%s" -#: pathspec.c:433 +#: pathspec.c:432 #, c-format msgid "pathspec '%s' is beyond a symbolic link" msgstr "路径规则 '%s' ä½äºŽç¬¦å·é“¾æŽ¥ä¸" -#: pathspec.c:442 +#: pathspec.c:441 msgid "" "There is nothing to exclude from by :(exclude) patterns.\n" "Perhaps you forgot to add either ':/' or '.' ?" @@ -951,11 +958,11 @@ msgstr "" "没有为 :(exclude) 模å¼æä¾›è¦å¿½ç•¥çš„内容。也许您忘记了\n" "æ·»åŠ ':/' 或 '.' ?" -#: progress.c:224 +#: progress.c:225 msgid "done" msgstr "完æˆ" -#: read-cache.c:1238 +#: read-cache.c:1260 #, c-format msgid "" "index.version set, but the value is invalid.\n" @@ -964,7 +971,7 @@ msgstr "" "设置了 index.version,但是å–å€¼æ— æ•ˆã€‚\n" "使用版本 %i" -#: read-cache.c:1248 +#: read-cache.c:1270 #, c-format msgid "" "GIT_INDEX_VERSION set, but the value is invalid.\n" @@ -973,51 +980,51 @@ msgstr "" "设置了 GIT_INDEX_VERSION,但是å–å€¼æ— æ•ˆã€‚\n" "使用版本 %i" -#: remote.c:758 +#: remote.c:753 #, c-format msgid "Cannot fetch both %s and %s to %s" msgstr "ä¸èƒ½åŒæ—¶èŽ·å– %s å’Œ %s 至 %s" -#: remote.c:762 +#: remote.c:757 #, c-format msgid "%s usually tracks %s, not %s" msgstr "%s 通常跟踪 %sï¼Œè€Œéž %s" -#: remote.c:766 +#: remote.c:761 #, c-format msgid "%s tracks both %s and %s" msgstr "%s åŒæ—¶è·Ÿè¸ª %s å’Œ %s" -#: remote.c:774 +#: remote.c:769 msgid "Internal error" msgstr "内部错误" -#: remote.c:1948 +#: remote.c:1943 #, c-format msgid "Your branch is based on '%s', but the upstream is gone.\n" msgstr "您的分支基于 '%s',但æ¤ä¸Šæ¸¸åˆ†æ”¯å·²ç»ä¸å˜åœ¨ã€‚\n" -#: remote.c:1952 +#: remote.c:1947 msgid " (use \"git branch --unset-upstream\" to fixup)\n" msgstr " (使用 \"git branch --unset-upstream\" æ¥ä¿®å¤ï¼‰\n" -#: remote.c:1955 +#: remote.c:1950 #, c-format msgid "Your branch is up-to-date with '%s'.\n" msgstr "您的分支与上游分支 '%s' 一致。\n" -#: remote.c:1959 +#: remote.c:1954 #, 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:1965 +#: remote.c:1960 msgid " (use \"git push\" to publish your local commits)\n" msgstr " (使用 \"git push\" æ¥å‘布您的本地æ交)\n" -#: remote.c:1968 +#: remote.c:1963 #, c-format msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n" msgid_plural "" @@ -1026,11 +1033,11 @@ msgstr[0] "您的分支è½åŽ '%s' å…± %d 个æ交,并且å¯ä»¥å¿«è¿›ã€‚\n" msgstr[1] "您的分支è½åŽ '%s' å…± %d 个æ交,并且å¯ä»¥å¿«è¿›ã€‚\n" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: remote.c:1976 +#: remote.c:1971 msgid " (use \"git pull\" to update your local branch)\n" msgstr " (使用 \"git pull\" æ¥æ›´æ–°æ‚¨çš„本地分支)\n" -#: remote.c:1979 +#: remote.c:1974 #, c-format msgid "" "Your branch and '%s' have diverged,\n" @@ -1046,7 +1053,7 @@ msgstr[1] "" "并且分别有 %d å’Œ %d 处ä¸åŒçš„æ交。\n" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: remote.c:1989 +#: remote.c:1984 msgid " (use \"git pull\" to merge the remote branch into yours)\n" msgstr " (使用 \"git pull\" æ¥åˆå¹¶è¿œç¨‹åˆ†æ”¯ï¼‰\n" @@ -1059,19 +1066,19 @@ msgstr "ä¸èƒ½æ‰“å¼€ /dev/null" msgid "dup2(%d,%d) failed" msgstr "ä¸èƒ½è°ƒç”¨ dup2(%d,%d)" -#: sequencer.c:206 builtin/merge.c:786 builtin/merge.c:899 -#: builtin/merge.c:1009 builtin/merge.c:1019 +#: sequencer.c:171 builtin/merge.c:782 builtin/merge.c:893 +#: builtin/merge.c:1003 builtin/merge.c:1013 #, c-format msgid "Could not open '%s' for writing" msgstr "ä¸èƒ½ä¸ºå†™å…¥æ‰“å¼€ '%s'" -#: sequencer.c:208 builtin/merge.c:343 builtin/merge.c:789 -#: builtin/merge.c:1011 builtin/merge.c:1024 +#: sequencer.c:173 builtin/merge.c:343 builtin/merge.c:785 +#: builtin/merge.c:1005 builtin/merge.c:1018 #, c-format msgid "Could not write to '%s'" msgstr "ä¸èƒ½å†™å…¥ '%s'" -#: sequencer.c:229 +#: sequencer.c:194 msgid "" "after resolving the conflicts, mark the corrected paths\n" "with 'git add <paths>' or 'git rm <paths>'" @@ -1079,7 +1086,7 @@ msgstr "" "冲çªè§£å†³å®Œæ¯•åŽï¼Œç”¨ 'git add <paths>' 或 'git rm <paths>'\n" "å‘½ä»¤æ ‡è®°ä¿®æ£åŽçš„文件" -#: sequencer.c:232 +#: sequencer.c:197 msgid "" "after resolving the conflicts, mark the corrected paths\n" "with 'git add <paths>' or 'git rm <paths>'\n" @@ -1088,220 +1095,224 @@ msgstr "" "冲çªè§£å†³å®Œæ¯•åŽï¼Œç”¨ 'git add <paths>' 或 'git rm <paths>'\n" "对修æ£åŽçš„文件åšæ ‡è®°ï¼Œç„¶åŽç”¨ 'git commit' æ交" -#: sequencer.c:245 sequencer.c:879 sequencer.c:962 +#: sequencer.c:210 sequencer.c:841 sequencer.c:924 #, c-format msgid "Could not write to %s" msgstr "ä¸èƒ½å†™å…¥ %s" -#: sequencer.c:248 +#: sequencer.c:213 #, c-format msgid "Error wrapping up %s" msgstr "错误收尾 %s" -#: sequencer.c:263 +#: sequencer.c:228 msgid "Your local changes would be overwritten by cherry-pick." msgstr "您的本地修改将被拣选æ“作覆盖。" -#: sequencer.c:265 +#: sequencer.c:230 msgid "Your local changes would be overwritten by revert." msgstr "您的本地修改将被还原æ“作覆盖。" -#: sequencer.c:268 +#: sequencer.c:233 msgid "Commit your changes or stash them to proceed." msgstr "æ交您的修改或ä¿å˜è¿›åº¦åŽå†ç»§ç»ã€‚" +#: sequencer.c:250 +msgid "Failed to lock HEAD during fast_forward_to" +msgstr "åœ¨å¿«è¿›æ—¶æ— æ³•ä¸º HEAD åŠ é”" + #. TRANSLATORS: %s will be "revert" or "cherry-pick" -#: sequencer.c:325 +#: sequencer.c:293 #, c-format msgid "%s: Unable to write new index file" msgstr "%sï¼šæ— æ³•å†™å…¥æ–°ç´¢å¼•æ–‡ä»¶" -#: sequencer.c:356 +#: sequencer.c:324 msgid "Could not resolve HEAD commit\n" msgstr "ä¸èƒ½è§£æž HEAD æ交\n" -#: sequencer.c:378 +#: sequencer.c:344 msgid "Unable to update cache tree\n" msgstr "ä¸èƒ½æ›´æ–°ç¼“å˜\n" -#: sequencer.c:430 +#: sequencer.c:391 #, c-format msgid "Could not parse commit %s\n" msgstr "ä¸èƒ½è§£æžæ交 %s\n" -#: sequencer.c:435 +#: sequencer.c:396 #, c-format msgid "Could not parse parent commit %s\n" msgstr "ä¸èƒ½è§£æžçˆ¶æ交 %s\n" -#: sequencer.c:501 +#: sequencer.c:462 msgid "Your index file is unmerged." msgstr "您的索引文件未完æˆåˆå¹¶ã€‚" -#: sequencer.c:520 +#: sequencer.c:481 #, c-format msgid "Commit %s is a merge but no -m option was given." msgstr "æ交 %s 是一个åˆå¹¶æ交但未æä¾› -m 选项。" -#: sequencer.c:528 +#: sequencer.c:489 #, c-format msgid "Commit %s does not have parent %d" msgstr "æ交 %s 没有父æ交 %d" -#: sequencer.c:532 +#: sequencer.c:493 #, 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:545 +#: sequencer.c:506 #, c-format msgid "%s: cannot parse parent commit %s" msgstr "%s:ä¸èƒ½è§£æžçˆ¶æ交 %s" -#: sequencer.c:549 +#: sequencer.c:510 #, c-format msgid "Cannot get commit message for %s" msgstr "ä¸èƒ½å¾—到 %s çš„æ交说明" -#: sequencer.c:635 +#: sequencer.c:596 #, c-format msgid "could not revert %s... %s" msgstr "ä¸èƒ½è¿˜åŽŸ %s... %s" -#: sequencer.c:636 +#: sequencer.c:597 #, c-format msgid "could not apply %s... %s" msgstr "ä¸èƒ½åº”用 %s... %s" -#: sequencer.c:672 +#: sequencer.c:633 msgid "empty commit set passed" msgstr "æ供了空的æ交集" -#: sequencer.c:680 +#: sequencer.c:641 #, c-format msgid "git %s: failed to read the index" msgstr "git %sï¼šæ— æ³•è¯»å–索引" -#: sequencer.c:685 +#: sequencer.c:645 #, c-format msgid "git %s: failed to refresh the index" msgstr "git %sï¼šæ— æ³•åˆ·æ–°ç´¢å¼•" -#: sequencer.c:743 +#: sequencer.c:705 #, c-format msgid "Cannot %s during a %s" msgstr "æ— æ³• %s 在一个 %s 过程ä¸" -#: sequencer.c:765 +#: sequencer.c:727 #, c-format msgid "Could not parse line %d." msgstr "ä¸èƒ½è§£æžç¬¬ %d 行。" -#: sequencer.c:770 +#: sequencer.c:732 msgid "No commits parsed." msgstr "没有æ交被解æžã€‚" -#: sequencer.c:783 +#: sequencer.c:745 #, c-format msgid "Could not open %s" msgstr "ä¸èƒ½æ‰“å¼€ %s" -#: sequencer.c:787 +#: sequencer.c:749 #, c-format msgid "Could not read %s." msgstr "ä¸èƒ½è¯»å– %s。" -#: sequencer.c:794 +#: sequencer.c:756 #, c-format msgid "Unusable instruction sheet: %s" msgstr "æ— ç”¨çš„æŒ‡ä»¤è¡¨å•ï¼š%s" -#: sequencer.c:824 +#: sequencer.c:786 #, c-format msgid "Invalid key: %s" msgstr "æ— æ•ˆé”®å:%s" -#: sequencer.c:827 +#: sequencer.c:789 #, c-format msgid "Invalid value for %s: %s" msgstr "%s çš„å€¼æ— æ•ˆï¼š%s" -#: sequencer.c:839 +#: sequencer.c:801 #, c-format msgid "Malformed options sheet: %s" msgstr "éžæ³•çš„选项表å•ï¼š%s" -#: sequencer.c:860 +#: sequencer.c:822 msgid "a cherry-pick or revert is already in progress" msgstr "一个拣选或还原æ“作已在进行" -#: sequencer.c:861 +#: sequencer.c:823 msgid "try \"git cherry-pick (--continue | --quit | --abort)\"" msgstr "å°è¯• \"git cherry-pick (--continue | --quit | --abort)\"" -#: sequencer.c:865 +#: sequencer.c:827 #, c-format msgid "Could not create sequencer directory %s" msgstr "ä¸èƒ½åˆ›å»ºåºåˆ—目录 %s" -#: sequencer.c:881 sequencer.c:966 +#: sequencer.c:843 sequencer.c:928 #, c-format msgid "Error wrapping up %s." msgstr "错误收尾 %s。" -#: sequencer.c:900 sequencer.c:1036 +#: sequencer.c:862 sequencer.c:998 msgid "no cherry-pick or revert in progress" msgstr "拣选或还原æ“作并未进行" -#: sequencer.c:902 +#: sequencer.c:864 msgid "cannot resolve HEAD" msgstr "ä¸èƒ½è§£æž HEAD" -#: sequencer.c:904 +#: sequencer.c:866 msgid "cannot abort from a branch yet to be born" msgstr "ä¸èƒ½ä»Žå°šæœªå»ºç«‹çš„分支终æ¢" -#: sequencer.c:926 builtin/apply.c:4061 +#: sequencer.c:888 builtin/apply.c:4062 #, c-format msgid "cannot open %s: %s" msgstr "ä¸èƒ½æ‰“å¼€ %s:%s" -#: sequencer.c:929 +#: sequencer.c:891 #, c-format msgid "cannot read %s: %s" msgstr "ä¸èƒ½è¯»å– %s:%s" -#: sequencer.c:930 +#: sequencer.c:892 msgid "unexpected end of file" msgstr "æ„外的文件结æŸ" -#: sequencer.c:936 +#: sequencer.c:898 #, c-format msgid "stored pre-cherry-pick HEAD file '%s' is corrupt" msgstr "ä¿å˜æ‹£é€‰æ交å‰çš„ HEAD 文件 '%s' æŸå" -#: sequencer.c:959 +#: sequencer.c:921 #, c-format msgid "Could not format %s." msgstr "ä¸èƒ½æ ¼å¼åŒ– %s。" -#: sequencer.c:1104 +#: sequencer.c:1066 #, c-format msgid "%s: can't cherry-pick a %s" msgstr "%s:ä¸èƒ½æ‹£é€‰ä¸€ä¸ª%s" -#: sequencer.c:1107 +#: sequencer.c:1069 #, c-format msgid "%s: bad revision" msgstr "%s:错误的版本" -#: sequencer.c:1141 +#: sequencer.c:1103 msgid "Can't revert as initial commit" msgstr "ä¸èƒ½ä½œä¸ºåˆå§‹æ交还原" -#: sequencer.c:1142 +#: sequencer.c:1104 msgid "Can't cherry-pick into empty head" msgstr "ä¸èƒ½æ‹£é€‰åˆ°ç©ºåˆ†æ”¯" @@ -1326,21 +1337,21 @@ msgstr "" "å¯èƒ½éœ€è¦åˆ 除它们。用 \"git config advice.objectNameWarning false\"\n" "命令关é—本消æ¯é€šçŸ¥ã€‚" -#: sha1_name.c:1072 +#: sha1_name.c:1060 msgid "HEAD does not point to a branch" msgstr "HEAD 没有指å‘一个分支" -#: sha1_name.c:1075 +#: sha1_name.c:1063 #, c-format msgid "No such branch: '%s'" msgstr "没有æ¤åˆ†æ”¯ï¼š'%s'" -#: sha1_name.c:1077 +#: sha1_name.c:1065 #, c-format msgid "No upstream configured for branch '%s'" msgstr "尚未给分支 '%s' 设置上游" -#: sha1_name.c:1081 +#: sha1_name.c:1069 #, c-format msgid "Upstream branch '%s' not stored as a remote-tracking branch" msgstr "上游分支 '%s' 没有å˜å‚¨ä¸ºä¸€ä¸ªè¿œç¨‹è·Ÿè¸ªåˆ†æ”¯" @@ -1368,17 +1379,17 @@ msgstr "æ— æ³•ç§»é™¤ %s çš„ .gitmodules æ¡ç›®" msgid "staging updated .gitmodules failed" msgstr "å°†æ›´æ–°åŽ .gitmodules æ·»åŠ æš‚å˜åŒºå¤±è´¥" -#: submodule.c:1121 builtin/init-db.c:363 +#: submodule.c:1118 builtin/init-db.c:363 #, c-format msgid "Could not create git link %s" msgstr "ä¸èƒ½åˆ›å»º git link %s" -#: submodule.c:1132 +#: submodule.c:1129 #, c-format msgid "Could not set core.worktree in %s" msgstr "ä¸èƒ½åœ¨ %s ä¸è®¾ç½® core.worktree" -#: unpack-trees.c:206 +#: unpack-trees.c:202 msgid "Checking out files" msgstr "æ£åœ¨æ£€å‡ºæ–‡ä»¶" @@ -1411,22 +1422,22 @@ msgstr "æ— æ•ˆçš„ç«¯å£å·" msgid "invalid '..' path segment" msgstr "æ— æ•ˆçš„ '..' 路径片段" -#: wrapper.c:422 +#: wrapper.c:460 #, c-format msgid "unable to access '%s': %s" msgstr "ä¸èƒ½è®¿é—® '%s':%s" -#: wrapper.c:443 +#: wrapper.c:481 #, c-format msgid "unable to access '%s'" msgstr "ä¸èƒ½è®¿é—® '%s'" -#: wrapper.c:454 +#: wrapper.c:492 #, c-format msgid "unable to look up current user in the passwd file: %s" msgstr "æ— æ³•åœ¨å£ä»¤æ–‡ä»¶ä¸æŸ¥è¯¢åˆ°å½“å‰ç”¨æˆ·ï¼š%s" -#: wrapper.c:455 +#: wrapper.c:493 msgid "no such user" msgstr "æ— æ¤ç”¨æˆ·" @@ -1580,15 +1591,15 @@ msgstr "未跟踪的内容, " msgid "bug: unhandled diff status %c" msgstr "bugï¼šæ— æ³•å¤„ç†çš„å·®å¼‚çŠ¶æ€ %c" -#: wt-status.c:765 +#: wt-status.c:764 msgid "Submodules changed but not updated:" msgstr "å模组已修改但尚未更新:" -#: wt-status.c:767 +#: wt-status.c:766 msgid "Submodule changes to be committed:" msgstr "è¦æ交的å模组å˜æ›´ï¼š" -#: wt-status.c:846 +#: wt-status.c:845 msgid "" "Do not touch the line above.\n" "Everything below will be removed." @@ -1596,198 +1607,198 @@ msgstr "" "ä¸è¦æ”¹åŠ¨ä¸Šé¢çš„一行。\n" "下é¢çš„所有内容å‡å°†è¢«åˆ 除。" -#: wt-status.c:937 +#: wt-status.c:936 msgid "You have unmerged paths." msgstr "您有尚未åˆå¹¶çš„路径。" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: wt-status.c:940 +#: wt-status.c:939 msgid " (fix conflicts and run \"git commit\")" msgstr " (解决冲çªå¹¶è¿è¡Œ \"git commit\")" -#: wt-status.c:943 +#: wt-status.c:942 msgid "All conflicts fixed but you are still merging." msgstr "所有冲çªå·²è§£å†³ä½†æ‚¨ä»å¤„于åˆå¹¶ä¸ã€‚" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: wt-status.c:946 +#: wt-status.c:945 msgid " (use \"git commit\" to conclude merge)" msgstr " (使用 \"git commit\" 结æŸåˆå¹¶ï¼‰" -#: wt-status.c:956 +#: wt-status.c:955 msgid "You are in the middle of an am session." msgstr "您æ£å¤„于 am æ“作过程ä¸ã€‚" -#: wt-status.c:959 +#: wt-status.c:958 msgid "The current patch is empty." msgstr "当å‰çš„è¡¥ä¸ä¸ºç©ºã€‚" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: wt-status.c:963 +#: wt-status.c:962 msgid " (fix conflicts and then run \"git am --continue\")" msgstr " (解决冲çªï¼Œç„¶åŽè¿è¡Œ \"git am --continue\")" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: wt-status.c:965 +#: wt-status.c:964 msgid " (use \"git am --skip\" to skip this patch)" msgstr " (使用 \"git am --skip\" 跳过æ¤è¡¥ä¸ï¼‰" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: wt-status.c:967 +#: wt-status.c:966 msgid " (use \"git am --abort\" to restore the original branch)" msgstr " (使用 \"git am --abort\" æ¢å¤åŽŸæœ‰åˆ†æ”¯ï¼‰" -#: wt-status.c:1027 wt-status.c:1044 +#: wt-status.c:1026 wt-status.c:1043 #, c-format msgid "You are currently rebasing branch '%s' on '%s'." msgstr "您在执行将分支 '%s' å˜åŸºåˆ° '%s' çš„æ“作。" -#: wt-status.c:1032 wt-status.c:1049 +#: wt-status.c:1031 wt-status.c:1048 msgid "You are currently rebasing." msgstr "您在执行å˜åŸºæ“作。" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: wt-status.c:1035 +#: wt-status.c:1034 msgid " (fix conflicts and then run \"git rebase --continue\")" msgstr " (解决冲çªï¼Œç„¶åŽè¿è¡Œ \"git rebase --continue\")" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: wt-status.c:1037 +#: wt-status.c:1036 msgid " (use \"git rebase --skip\" to skip this patch)" msgstr " (使用 \"git rebase --skip\" 跳过æ¤è¡¥ä¸ï¼‰" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: wt-status.c:1039 +#: wt-status.c:1038 msgid " (use \"git rebase --abort\" to check out the original branch)" msgstr " (使用 \"git rebase --abort\" 以检出原有分支)" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: wt-status.c:1052 +#: wt-status.c:1051 msgid " (all conflicts fixed: run \"git rebase --continue\")" msgstr " (所有冲çªå·²è§£å†³ï¼šè¿è¡Œ \"git rebase --continue\")" -#: wt-status.c:1056 +#: wt-status.c:1055 #, c-format msgid "" "You are currently splitting a commit while rebasing branch '%s' on '%s'." msgstr "您在执行将分支 '%s' å˜åŸºåˆ° '%s' çš„æ“作时拆分æ交。" -#: wt-status.c:1061 +#: wt-status.c:1060 msgid "You are currently splitting a commit during a rebase." msgstr "您在执行å˜åŸºæ“作时拆分æ交。" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: wt-status.c:1064 +#: wt-status.c:1063 msgid " (Once your working directory is clean, run \"git rebase --continue\")" msgstr " (一旦您工作目录æ交干净åŽï¼Œè¿è¡Œ \"git rebase --continue\")" -#: wt-status.c:1068 +#: wt-status.c:1067 #, c-format msgid "You are currently editing a commit while rebasing branch '%s' on '%s'." msgstr "您在执行将分支 '%s' å˜åŸºåˆ° '%s' çš„æ“作时编辑æ交。" -#: wt-status.c:1073 +#: wt-status.c:1072 msgid "You are currently editing a commit during a rebase." msgstr "您在执行å˜åŸºæ“作时编辑æ交。" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: wt-status.c:1076 +#: wt-status.c:1075 msgid " (use \"git commit --amend\" to amend the current commit)" msgstr " (使用 \"git commit --amend\" 修补当å‰æ交)" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: wt-status.c:1078 +#: wt-status.c:1077 msgid "" " (use \"git rebase --continue\" once you are satisfied with your changes)" msgstr " (当您对您的修改满æ„åŽæ‰§è¡Œ \"git rebase --continue\")" -#: wt-status.c:1088 +#: wt-status.c:1087 #, c-format msgid "You are currently cherry-picking commit %s." msgstr "您在执行拣选æ交 %s çš„æ“作。" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: wt-status.c:1093 +#: wt-status.c:1092 msgid " (fix conflicts and run \"git cherry-pick --continue\")" msgstr " (解决冲çªå¹¶è¿è¡Œ \"git cherry-pick --continue\")" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: wt-status.c:1096 +#: wt-status.c:1095 msgid " (all conflicts fixed: run \"git cherry-pick --continue\")" msgstr " (所有冲çªå·²è§£å†³ï¼šè¿è¡Œ \"git cherry-pick --continue\")" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: wt-status.c:1098 +#: wt-status.c:1097 msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)" msgstr " (使用 \"git cherry-pick --abort\" 以å–消拣选æ“作)" -#: wt-status.c:1107 +#: wt-status.c:1106 #, c-format msgid "You are currently reverting commit %s." msgstr "您在执行å转æ交 %s çš„æ“作。" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: wt-status.c:1112 +#: wt-status.c:1111 msgid " (fix conflicts and run \"git revert --continue\")" msgstr " (解决冲çªå¹¶è¿è¡Œ \"git revert --continue\")" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: wt-status.c:1115 +#: wt-status.c:1114 msgid " (all conflicts fixed: run \"git revert --continue\")" msgstr " (所有冲çªå·²è§£å†³ï¼šè¿è¡Œ \"git revert --continue\")" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: wt-status.c:1117 +#: wt-status.c:1116 msgid " (use \"git revert --abort\" to cancel the revert operation)" msgstr " (使用 \"git revert --abort\" 以å–消å转æ交æ“作)" -#: wt-status.c:1128 +#: wt-status.c:1127 #, c-format msgid "You are currently bisecting, started from branch '%s'." msgstr "您在执行从分支 '%s' 开始的二分查找æ“作。" -#: wt-status.c:1132 +#: wt-status.c:1131 msgid "You are currently bisecting." msgstr "您在执行二分查找æ“作。" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: wt-status.c:1135 +#: wt-status.c:1134 msgid " (use \"git bisect reset\" to get back to the original branch)" msgstr " (使用 \"git bisect reset\" 以回到原有分支)" -#: wt-status.c:1310 +#: wt-status.c:1309 msgid "On branch " msgstr "ä½äºŽåˆ†æ”¯ " -#: wt-status.c:1317 +#: wt-status.c:1316 msgid "rebase in progress; onto " msgstr "å˜åŸºæ“作æ£åœ¨è¿›è¡Œä¸ï¼›è‡³ " -#: wt-status.c:1324 +#: wt-status.c:1323 msgid "HEAD detached at " msgstr "头指针分离于 " -#: wt-status.c:1326 +#: wt-status.c:1325 msgid "HEAD detached from " msgstr "头指针分离自 " -#: wt-status.c:1329 +#: wt-status.c:1328 msgid "Not currently on any branch." msgstr "当å‰ä¸åœ¨ä»»ä½•åˆ†æ”¯ä¸Šã€‚" -#: wt-status.c:1346 +#: wt-status.c:1345 msgid "Initial commit" msgstr "åˆå§‹æ交" -#: wt-status.c:1360 +#: wt-status.c:1359 msgid "Untracked files" msgstr "未跟踪的文件" -#: wt-status.c:1362 +#: wt-status.c:1361 msgid "Ignored files" msgstr "忽略的文件" -#: wt-status.c:1366 +#: wt-status.c:1365 #, c-format msgid "" "It took %.2f seconds to enumerate untracked files. 'status -uno'\n" @@ -1797,80 +1808,80 @@ msgstr "" "耗费了 %.2f 秒以枚举未跟踪的文件。'status -uno' 也许能æ高速度,\n" "但您需è¦å°å¿ƒä¸è¦å¿˜äº†æ·»åŠ 新文件(å‚è§ 'git help status')。" -#: wt-status.c:1372 +#: wt-status.c:1371 #, c-format msgid "Untracked files not listed%s" msgstr "未跟踪的文件没有列出%s" # 译者:ä¸æ–‡å—符串拼接,å¯åˆ 除å‰å¯¼ç©ºæ ¼ -#: wt-status.c:1374 +#: wt-status.c:1373 msgid " (use -u option to show untracked files)" msgstr "(使用 -u å‚数显示未跟踪的文件)" -#: wt-status.c:1380 +#: wt-status.c:1379 msgid "No changes" msgstr "没有修改" -#: wt-status.c:1385 +#: wt-status.c:1384 #, c-format msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n" msgstr "ä¿®æ”¹å°šæœªåŠ å…¥æ交(使用 \"git add\" å’Œ/或 \"git commit -a\")\n" -#: wt-status.c:1388 +#: wt-status.c:1387 #, c-format msgid "no changes added to commit\n" msgstr "ä¿®æ”¹å°šæœªåŠ å…¥æ交\n" -#: wt-status.c:1391 +#: wt-status.c:1390 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " "track)\n" msgstr "æ交为空,但是å˜åœ¨å°šæœªè·Ÿè¸ªçš„文件(使用 \"git add\" 建立跟踪)\n" -#: wt-status.c:1394 +#: wt-status.c:1393 #, c-format msgid "nothing added to commit but untracked files present\n" msgstr "æ交为空,但是å˜åœ¨å°šæœªè·Ÿè¸ªçš„文件\n" # 译者:ä¸æ–‡å—符串拼接,å¯åˆ 除å‰å¯¼ç©ºæ ¼ -#: wt-status.c:1397 +#: wt-status.c:1396 #, c-format msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "æ— æ–‡ä»¶è¦æ交(创建/æ‹·è´æ–‡ä»¶å¹¶ä½¿ç”¨ \"git add\" 建立跟踪)\n" -#: wt-status.c:1400 wt-status.c:1405 +#: wt-status.c:1399 wt-status.c:1404 #, c-format msgid "nothing to commit\n" msgstr "æ— æ–‡ä»¶è¦æ交\n" # 译者:ä¸æ–‡å—符串拼接,å¯åˆ 除å‰å¯¼ç©ºæ ¼ -#: wt-status.c:1403 +#: wt-status.c:1402 #, c-format msgid "nothing to commit (use -u to show untracked files)\n" msgstr "æ— æ–‡ä»¶è¦æ交(使用 -u 显示未跟踪的文件)\n" # 译者:ä¸æ–‡å—符串拼接,å¯åˆ 除å‰å¯¼ç©ºæ ¼ -#: wt-status.c:1407 +#: wt-status.c:1406 #, c-format msgid "nothing to commit, working directory clean\n" msgstr "æ— æ–‡ä»¶è¦æ交,干净的工作区\n" -#: wt-status.c:1516 +#: wt-status.c:1515 msgid "HEAD (no branch)" msgstr "HEAD(éžåˆ†æ”¯ï¼‰" # 译者:注æ„ä¿æŒå¥å°¾ç©ºæ ¼ -#: wt-status.c:1522 +#: wt-status.c:1521 msgid "Initial commit on " msgstr "åˆå§‹æ交于 " -#: wt-status.c:1554 +#: wt-status.c:1553 msgid "gone" msgstr "丢失" # 译者:注æ„ä¿æŒå¥å°¾ç©ºæ ¼ -#: wt-status.c:1556 wt-status.c:1564 +#: wt-status.c:1555 wt-status.c:1563 msgid "behind " msgstr "è½åŽ " @@ -1901,7 +1912,7 @@ msgstr "åˆ é™¤ '%s'\n" msgid "Unstaged changes after refreshing the index:" msgstr "刷新索引之åŽå°šæœªè¢«æš‚å˜çš„å˜æ›´ï¼š" -#: builtin/add.c:193 +#: builtin/add.c:193 builtin/rev-parse.c:781 msgid "Could not read the index" msgstr "ä¸èƒ½è¯»å–索引" @@ -1932,15 +1943,15 @@ msgstr "ä¸èƒ½åº”用 '%s'" msgid "The following paths are ignored by one of your .gitignore files:\n" msgstr "ä¸‹åˆ—è·¯å¾„æ ¹æ®æ‚¨çš„一个 .gitignore 文件而被忽略:\n" -#: builtin/add.c:248 builtin/clean.c:876 builtin/fetch.c:93 builtin/mv.c:70 -#: builtin/prune-packed.c:77 builtin/push.c:489 builtin/remote.c:1344 +#: builtin/add.c:248 builtin/clean.c:875 builtin/fetch.c:108 builtin/mv.c:70 +#: builtin/prune-packed.c:77 builtin/push.c:488 builtin/remote.c:1367 #: builtin/rm.c:269 msgid "dry run" msgstr "æ¼”ä¹ " -#: builtin/add.c:249 builtin/apply.c:4410 builtin/check-ignore.c:19 -#: builtin/commit.c:1256 builtin/count-objects.c:95 builtin/fsck.c:612 -#: builtin/log.c:1592 builtin/mv.c:69 builtin/read-tree.c:113 +#: builtin/add.c:249 builtin/apply.c:4411 builtin/check-ignore.c:19 +#: builtin/commit.c:1328 builtin/count-objects.c:95 builtin/fsck.c:606 +#: builtin/log.c:1613 builtin/mv.c:69 builtin/read-tree.c:113 msgid "be verbose" msgstr "冗长输出" @@ -1948,7 +1959,7 @@ msgstr "冗长输出" msgid "interactive picking" msgstr "交互å¼æ‹£é€‰" -#: builtin/add.c:252 builtin/checkout.c:1108 builtin/reset.c:283 +#: builtin/add.c:252 builtin/checkout.c:1102 builtin/reset.c:285 msgid "select hunks interactively" msgstr "交互å¼æŒ‘选数æ®å—" @@ -2001,30 +2012,30 @@ msgstr "æ²¡æœ‰æ–‡ä»¶è¢«æ·»åŠ " msgid "adding files failed" msgstr "æ·»åŠ æ–‡ä»¶å¤±è´¥" -#: builtin/add.c:330 +#: builtin/add.c:329 msgid "-A and -u are mutually incompatible" msgstr "-A å’Œ -u 选项互斥" -#: builtin/add.c:337 +#: builtin/add.c:336 msgid "Option --ignore-missing can only be used together with --dry-run" msgstr "选项 --ignore-missing åªèƒ½å’Œ --dry-run åŒæ—¶ä½¿ç”¨" -#: builtin/add.c:358 +#: builtin/add.c:357 #, c-format msgid "Nothing specified, nothing added.\n" msgstr "æ²¡æœ‰æŒ‡å®šæ–‡ä»¶ï¼Œä¹Ÿæ²¡æœ‰æ–‡ä»¶è¢«æ·»åŠ ã€‚\n" -#: builtin/add.c:359 +#: builtin/add.c:358 #, c-format msgid "Maybe you wanted to say 'git add .'?\n" msgstr "也许您想è¦æ‰§è¡Œ 'git add .'?\n" -#: builtin/add.c:364 builtin/check-ignore.c:172 builtin/clean.c:920 -#: builtin/commit.c:320 builtin/mv.c:90 builtin/reset.c:234 builtin/rm.c:299 +#: builtin/add.c:363 builtin/check-ignore.c:172 builtin/clean.c:919 +#: builtin/commit.c:319 builtin/mv.c:90 builtin/reset.c:234 builtin/rm.c:299 msgid "index file corrupt" msgstr "索引文件æŸå" -#: builtin/add.c:448 builtin/apply.c:4506 builtin/mv.c:280 builtin/rm.c:432 +#: builtin/add.c:446 builtin/apply.c:4506 builtin/mv.c:280 builtin/rm.c:431 msgid "Unable to write new index file" msgstr "æ— æ³•å†™å…¥æ–°ç´¢å¼•æ–‡ä»¶" @@ -2042,37 +2053,37 @@ msgstr "未能识别的空白å—符选项 '%s'" msgid "unrecognized whitespace ignore option '%s'" msgstr "未能识别的空白å—符忽略选项 '%s'" -#: builtin/apply.c:823 +#: builtin/apply.c:825 #, c-format msgid "Cannot prepare timestamp regexp %s" msgstr "æ— æ³•å‡†å¤‡æ—¶é—´æˆ³æ£åˆ™è¡¨è¾¾å¼ %s" -#: builtin/apply.c:832 +#: builtin/apply.c:834 #, c-format msgid "regexec returned %d for input: %s" msgstr "regexec 返回 %d,输入为:%s" -#: builtin/apply.c:913 +#: builtin/apply.c:915 #, c-format msgid "unable to find filename in patch at line %d" msgstr "ä¸èƒ½åœ¨è¡¥ä¸çš„第 %d 行找到文件å" -#: builtin/apply.c:945 +#: builtin/apply.c:947 #, c-format msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d" msgstr "git apply:错误的 git-diff - 应为 /dev/null,但在第 %2$d 行得到 %1$s" -#: builtin/apply.c:949 +#: builtin/apply.c:951 #, c-format msgid "git apply: bad git-diff - inconsistent new filename on line %d" msgstr "git apply:错误的 git-diff - 第 %d 行上新文件åä¸ä¸€è‡´" -#: builtin/apply.c:950 +#: builtin/apply.c:952 #, c-format msgid "git apply: bad git-diff - inconsistent old filename on line %d" msgstr "git apply:错误的 git-diff - 第 %d 行上旧文件åä¸ä¸€è‡´" -#: builtin/apply.c:957 +#: builtin/apply.c:959 #, c-format msgid "git apply: bad git-diff - expected /dev/null on line %d" msgstr "git apply:错误的 git-diff - 第 %d 行处应为 /dev/null" @@ -2182,17 +2193,17 @@ msgstr "" msgid "missing binary patch data for '%s'" msgstr "缺失 '%s' 的二进制补ä¸æ•°æ®" -#: builtin/apply.c:2946 +#: builtin/apply.c:2944 #, c-format msgid "binary patch does not apply to '%s'" msgstr "二进制补ä¸æœªåº”用到 '%s'" -#: builtin/apply.c:2952 +#: builtin/apply.c:2950 #, c-format msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)" msgstr "到 '%s' 的二进制补ä¸äº§ç”Ÿäº†ä¸æ£ç¡®çš„结果(应为 %s,å´ä¸º %s)" -#: builtin/apply.c:2973 +#: builtin/apply.c:2971 #, c-format msgid "patch failed: %s:%ld" msgstr "打补ä¸å¤±è´¥ï¼š%s:%ld" @@ -2281,213 +2292,213 @@ msgstr "对路径 '%s' çš„ make_cache_entry æ“作失败" msgid "unable to remove %s from index" msgstr "ä¸èƒ½ä»Žç´¢å¼•ä¸ç§»é™¤ %s" -#: builtin/apply.c:3851 +#: builtin/apply.c:3852 #, c-format msgid "corrupt patch for submodule %s" msgstr "å模组 %s æŸåçš„è¡¥ä¸" -#: builtin/apply.c:3855 +#: builtin/apply.c:3856 #, c-format msgid "unable to stat newly created file '%s'" msgstr "ä¸èƒ½æžšä¸¾æ–°å»ºæ–‡ä»¶ '%s' 的状æ€" -#: builtin/apply.c:3860 +#: builtin/apply.c:3861 #, c-format msgid "unable to create backing store for newly created file %s" msgstr "ä¸èƒ½ä¸ºæ–°å»ºæ–‡ä»¶ %s 创建åŽç«¯å˜å‚¨" -#: builtin/apply.c:3863 builtin/apply.c:3971 +#: builtin/apply.c:3864 builtin/apply.c:3972 #, c-format msgid "unable to add cache entry for %s" msgstr "æ— æ³•ä¸º %s æ·»åŠ ç¼“å˜æ¡ç›®" -#: builtin/apply.c:3896 +#: builtin/apply.c:3897 #, c-format msgid "closing file '%s'" msgstr "å…³é—文件 '%s'" -#: builtin/apply.c:3945 +#: builtin/apply.c:3946 #, c-format msgid "unable to write file '%s' mode %o" msgstr "ä¸èƒ½å†™æ–‡ä»¶ '%s' æƒé™ %o" -#: builtin/apply.c:4032 +#: builtin/apply.c:4033 #, c-format msgid "Applied patch %s cleanly." msgstr "æˆåŠŸåº”ç”¨è¡¥ä¸ %s。" -#: builtin/apply.c:4040 +#: builtin/apply.c:4041 msgid "internal error" msgstr "内部错误" -#: builtin/apply.c:4043 +#: builtin/apply.c:4044 #, c-format msgid "Applying patch %%s with %d reject..." msgid_plural "Applying patch %%s with %d rejects..." msgstr[0] "应用 %%s 个补ä¸ï¼Œå…¶ä¸ %d 个被拒ç»..." msgstr[1] "应用 %%s 个补ä¸ï¼Œå…¶ä¸ %d 个被拒ç»..." -#: builtin/apply.c:4053 +#: builtin/apply.c:4054 #, c-format msgid "truncating .rej filename to %.*s.rej" msgstr "æˆªçŸ .rej 文件å为 %.*s.rej" -#: builtin/apply.c:4074 +#: builtin/apply.c:4075 #, c-format msgid "Hunk #%d applied cleanly." msgstr "第 #%d 个片段æˆåŠŸåº”用。" -#: builtin/apply.c:4077 +#: builtin/apply.c:4078 #, c-format msgid "Rejected hunk #%d." msgstr "æ‹’ç»ç¬¬ #%d 个片段。" -#: builtin/apply.c:4227 +#: builtin/apply.c:4228 msgid "unrecognized input" msgstr "未能识别的输入" -#: builtin/apply.c:4238 +#: builtin/apply.c:4239 msgid "unable to read index file" msgstr "æ— æ³•è¯»å–索引文件" -#: builtin/apply.c:4357 builtin/apply.c:4360 builtin/clone.c:90 -#: builtin/fetch.c:78 +#: builtin/apply.c:4358 builtin/apply.c:4361 builtin/clone.c:90 +#: builtin/fetch.c:93 msgid "path" msgstr "路径" -#: builtin/apply.c:4358 +#: builtin/apply.c:4359 msgid "don't apply changes matching the given path" msgstr "ä¸è¦åº”用与给出路径å‘匹é…çš„å˜æ›´" -#: builtin/apply.c:4361 +#: builtin/apply.c:4362 msgid "apply changes matching the given path" msgstr "应用与给出路径å‘匹é…çš„å˜æ›´" -#: builtin/apply.c:4363 +#: builtin/apply.c:4364 msgid "num" msgstr "æ•°å—" -#: builtin/apply.c:4364 +#: builtin/apply.c:4365 msgid "remove <num> leading slashes from traditional diff paths" msgstr "ä»Žä¼ ç»Ÿçš„ diff 路径ä¸ç§»é™¤æŒ‡å®šæ•°é‡çš„å‰å¯¼æ–œçº¿" -#: builtin/apply.c:4367 +#: builtin/apply.c:4368 msgid "ignore additions made by the patch" msgstr "忽略补ä¸ä¸çš„æ·»åŠ çš„æ–‡ä»¶" -#: builtin/apply.c:4369 +#: builtin/apply.c:4370 msgid "instead of applying the patch, output diffstat for the input" msgstr "ä¸åº”用补ä¸ï¼Œè€Œæ˜¯æ˜¾ç¤ºè¾“入的差异统计(diffstat)" -#: builtin/apply.c:4373 +#: builtin/apply.c:4374 msgid "show number of added and deleted lines in decimal notation" msgstr "以åè¿›åˆ¶æ•°æ˜¾ç¤ºæ·»åŠ å’Œåˆ é™¤çš„è¡Œæ•°" -#: builtin/apply.c:4375 +#: builtin/apply.c:4376 msgid "instead of applying the patch, output a summary for the input" msgstr "ä¸åº”用补ä¸ï¼Œè€Œæ˜¯æ˜¾ç¤ºè¾“入的概è¦" -#: builtin/apply.c:4377 +#: builtin/apply.c:4378 msgid "instead of applying the patch, see if the patch is applicable" msgstr "ä¸åº”用补ä¸ï¼Œè€Œæ˜¯æŸ¥çœ‹è¡¥ä¸æ˜¯å¦å¯åº”用" -#: builtin/apply.c:4379 +#: builtin/apply.c:4380 msgid "make sure the patch is applicable to the current index" msgstr "确认补ä¸å¯ä»¥åº”用到当å‰ç´¢å¼•" -#: builtin/apply.c:4381 +#: builtin/apply.c:4382 msgid "apply a patch without touching the working tree" msgstr "应用补ä¸è€Œä¸ä¿®æ”¹å·¥ä½œåŒº" -#: builtin/apply.c:4383 +#: builtin/apply.c:4384 msgid "also apply the patch (use with --stat/--summary/--check)" msgstr "还应用æ¤è¡¥ä¸ï¼ˆä¸Ž --stat/--summary/--check 选项åŒæ—¶ä½¿ç”¨ï¼‰" -#: builtin/apply.c:4385 +#: builtin/apply.c:4386 msgid "attempt three-way merge if a patch does not apply" msgstr "如果一个补ä¸ä¸èƒ½åº”用则å°è¯•ä¸‰è·¯åˆå¹¶" -#: builtin/apply.c:4387 +#: builtin/apply.c:4388 msgid "build a temporary index based on embedded index information" msgstr "创建一个临时索引基于嵌入的索引信æ¯" -#: builtin/apply.c:4389 builtin/checkout-index.c:197 builtin/ls-files.c:455 +#: builtin/apply.c:4390 builtin/checkout-index.c:198 builtin/ls-files.c:455 msgid "paths are separated with NUL character" msgstr "路径以 NUL å—符分隔" -#: builtin/apply.c:4392 +#: builtin/apply.c:4393 msgid "ensure at least <n> lines of context match" msgstr "ç¡®ä¿è‡³å°‘åŒ¹é… <n> 行上下文" -#: builtin/apply.c:4393 +#: builtin/apply.c:4394 msgid "action" msgstr "动作" -#: builtin/apply.c:4394 +#: builtin/apply.c:4395 msgid "detect new or modified lines that have whitespace errors" msgstr "检查新增和修改的行ä¸é—´çš„空白å—符滥用" -#: builtin/apply.c:4397 builtin/apply.c:4400 +#: builtin/apply.c:4398 builtin/apply.c:4401 msgid "ignore changes in whitespace when finding context" msgstr "查找上下文时忽略空白å—符的å˜æ›´" -#: builtin/apply.c:4403 +#: builtin/apply.c:4404 msgid "apply the patch in reverse" msgstr "åå‘应用补ä¸" -#: builtin/apply.c:4405 +#: builtin/apply.c:4406 msgid "don't expect at least one line of context" msgstr "æ— éœ€è‡³å°‘ä¸€è¡Œä¸Šä¸‹æ–‡" -#: builtin/apply.c:4407 +#: builtin/apply.c:4408 msgid "leave the rejected hunks in corresponding *.rej files" msgstr "将拒ç»çš„è¡¥ä¸ç‰‡æ®µä¿å˜åœ¨å¯¹åº”çš„ *.rej 文件ä¸" -#: builtin/apply.c:4409 +#: builtin/apply.c:4410 msgid "allow overlapping hunks" msgstr "å…许é‡å çš„è¡¥ä¸ç‰‡æ®µ" -#: builtin/apply.c:4412 +#: builtin/apply.c:4413 msgid "tolerate incorrectly detected missing new-line at the end of file" msgstr "å…许ä¸æ£ç¡®çš„文件末尾æ¢è¡Œç¬¦" -#: builtin/apply.c:4415 +#: builtin/apply.c:4416 msgid "do not trust the line counts in the hunk headers" msgstr "ä¸ä¿¡ä»»è¡¥ä¸ç‰‡æ®µçš„头信æ¯ä¸çš„è¡Œå·" -#: builtin/apply.c:4417 +#: builtin/apply.c:4418 msgid "root" msgstr "æ ¹ç›®å½•" -#: builtin/apply.c:4418 +#: builtin/apply.c:4419 msgid "prepend <root> to all filenames" msgstr "为所有文件åå‰æ·»åŠ <æ ¹ç›®å½•>" -#: builtin/apply.c:4440 +#: builtin/apply.c:4441 msgid "--3way outside a repository" msgstr "--3way 在一个版本库之外" -#: builtin/apply.c:4448 +#: builtin/apply.c:4449 msgid "--index outside a repository" msgstr "--index 在一个版本库之外" -#: builtin/apply.c:4451 +#: builtin/apply.c:4452 msgid "--cached outside a repository" msgstr "--cached 在一个版本库之外" -#: builtin/apply.c:4467 +#: builtin/apply.c:4468 #, c-format msgid "can't open patch '%s'" msgstr "ä¸èƒ½æ‰“å¼€è¡¥ä¸ '%s'" -#: builtin/apply.c:4481 +#: builtin/apply.c:4482 #, c-format msgid "squelched %d whitespace error" msgid_plural "squelched %d whitespace errors" msgstr[0] "抑制下ä»æœ‰ %d 个空白å—符误用" msgstr[1] "抑制下ä»æœ‰ %d 个空白å—符误用" -#: builtin/apply.c:4487 builtin/apply.c:4497 +#: builtin/apply.c:4488 builtin/apply.c:4498 #, c-format msgid "%d line adds whitespace errors." msgid_plural "%d lines add whitespace errors." @@ -2541,103 +2552,103 @@ msgstr "执行 'git bisect next'" msgid "update BISECT_HEAD instead of checking out the current commit" msgstr "æ›´æ–° BISECT_HEAD 而éžæ£€å‡ºå½“å‰æ交" -#: builtin/blame.c:27 +#: builtin/blame.c:30 msgid "git blame [options] [rev-opts] [rev] [--] file" msgstr "git blame [选项] [版本选项] [版本] [--] 文件" -#: builtin/blame.c:32 +#: builtin/blame.c:35 msgid "[rev-opts] are documented in git-rev-list(1)" msgstr "[版本选项] 的文档记录在 git-rev-list(1) ä¸" -#: builtin/blame.c:2249 +#: builtin/blame.c:2501 msgid "Show blame entries as we find them, incrementally" msgstr "增é‡å¼åœ°æ˜¾ç¤ºå‘现的 blame æ¡ç›®" -#: builtin/blame.c:2250 +#: builtin/blame.c:2502 msgid "Show blank SHA-1 for boundary commits (Default: off)" msgstr "边界æ交显示空的 SHA-1(默认:关é—)" -#: builtin/blame.c:2251 +#: builtin/blame.c:2503 msgid "Do not treat root commits as boundaries (Default: off)" msgstr "ä¸æŠŠæ ¹æ交作为边界(默认:关é—)" -#: builtin/blame.c:2252 +#: builtin/blame.c:2504 msgid "Show work cost statistics" msgstr "显示命令消耗统计" -#: builtin/blame.c:2253 +#: builtin/blame.c:2505 msgid "Show output score for blame entries" msgstr "æ˜¾ç¤ºåˆ¤æ– blame æ¡ç›®ä½ç§»çš„得分诊æ–ä¿¡æ¯" -#: builtin/blame.c:2254 +#: builtin/blame.c:2506 msgid "Show original filename (Default: auto)" msgstr "显示原始文件å(默认:自动)" -#: builtin/blame.c:2255 +#: builtin/blame.c:2507 msgid "Show original linenumber (Default: off)" msgstr "显示原始的行å·ï¼ˆé»˜è®¤ï¼šå…³é—)" -#: builtin/blame.c:2256 +#: builtin/blame.c:2508 msgid "Show in a format designed for machine consumption" msgstr "显示为一个适åˆæœºå™¨è¯»å–çš„æ ¼å¼" -#: builtin/blame.c:2257 +#: builtin/blame.c:2509 msgid "Show porcelain format with per-line commit information" msgstr "为æ¯ä¸€è¡Œæ˜¾ç¤ºæœºå™¨é€‚用的æ交信æ¯" -#: builtin/blame.c:2258 +#: builtin/blame.c:2510 msgid "Use the same output mode as git-annotate (Default: off)" msgstr "使用和 git-annotate 相åŒçš„输出模å¼ï¼ˆé»˜è®¤ï¼šå…³é—)" -#: builtin/blame.c:2259 +#: builtin/blame.c:2511 msgid "Show raw timestamp (Default: off)" msgstr "显示原始时间戳(默认:关é—)" -#: builtin/blame.c:2260 +#: builtin/blame.c:2512 msgid "Show long commit SHA1 (Default: off)" msgstr "显示长的SHA1æ交å·ï¼ˆé»˜è®¤ï¼šå…³é—)" -#: builtin/blame.c:2261 +#: builtin/blame.c:2513 msgid "Suppress author name and timestamp (Default: off)" msgstr "éšè—作者åå—和时间戳(默认:关é—)" -#: builtin/blame.c:2262 +#: builtin/blame.c:2514 msgid "Show author email instead of name (Default: off)" msgstr "显示作者的邮箱而ä¸æ˜¯åå—(默认:关é—)" -#: builtin/blame.c:2263 +#: builtin/blame.c:2515 msgid "Ignore whitespace differences" msgstr "忽略空白差异" -#: builtin/blame.c:2264 +#: builtin/blame.c:2516 msgid "Spend extra cycles to find better match" msgstr "花费é¢å¤–的循环æ¥æ‰¾åˆ°æ›´å¥½çš„匹é…" -#: builtin/blame.c:2265 +#: builtin/blame.c:2517 msgid "Use revisions from <file> instead of calling git-rev-list" msgstr "使用æ¥è‡ª <file> 的修订集而ä¸æ˜¯è°ƒç”¨ git-rev-list" -#: builtin/blame.c:2266 +#: builtin/blame.c:2518 msgid "Use <file>'s contents as the final image" msgstr "使用 <file> 的内容作为最终的图片" -#: builtin/blame.c:2267 builtin/blame.c:2268 +#: builtin/blame.c:2519 builtin/blame.c:2520 msgid "score" msgstr "得分" -#: builtin/blame.c:2267 +#: builtin/blame.c:2519 msgid "Find line copies within and across files" msgstr "找到文件内åŠè·¨æ–‡ä»¶çš„行拷è´" -#: builtin/blame.c:2268 +#: builtin/blame.c:2520 msgid "Find line movements within and across files" msgstr "找到文件内åŠè·¨æ–‡ä»¶çš„行移动" -#: builtin/blame.c:2269 +#: builtin/blame.c:2521 msgid "n,m" msgstr "n,m" -#: builtin/blame.c:2269 +#: builtin/blame.c:2521 msgid "Process only line range n,m, counting from 1" msgstr "åªå¤„ç†è¡ŒèŒƒå›´åœ¨ n å’Œ m 之间的,从 1 开始" @@ -2647,7 +2658,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:2347 +#: builtin/blame.c:2599 msgid "4 years, 11 months ago" msgstr "4 å¹´ 11 个月å‰" @@ -2891,9 +2902,9 @@ msgid "act on remote-tracking branches" msgstr "作用于远程跟踪分支" #: builtin/branch.c:817 builtin/branch.c:823 builtin/branch.c:844 -#: builtin/branch.c:850 builtin/commit.c:1494 builtin/commit.c:1495 -#: builtin/commit.c:1496 builtin/commit.c:1497 builtin/tag.c:527 -#: builtin/tag.c:533 +#: builtin/branch.c:850 builtin/commit.c:1573 builtin/commit.c:1574 +#: builtin/commit.c:1575 builtin/commit.c:1576 builtin/tag.c:615 +#: builtin/tag.c:621 msgid "commit" msgstr "æ交" @@ -2957,7 +2968,7 @@ msgstr "以列的方å¼æ˜¾ç¤ºåˆ†æ”¯" msgid "Failed to resolve HEAD as a valid ref." msgstr "æ— æ³•å°† HEAD 解æžä¸ºæœ‰æ•ˆå¼•ç”¨ã€‚" -#: builtin/branch.c:872 builtin/clone.c:635 +#: builtin/branch.c:872 builtin/clone.c:636 msgid "HEAD not found below refs/heads!" msgstr "HEAD 没有ä½äºŽ /refs/heads 之下ï¼" @@ -3138,7 +3149,7 @@ msgstr "ä»Žæ ‡å‡†è¾“å…¥è¯»å‡ºæ–‡ä»¶å" msgid "terminate input and output records by a NUL character" msgstr "输入和输出的记录使用 NUL å—符终结" -#: builtin/check-ignore.c:18 builtin/checkout.c:1089 builtin/gc.c:271 +#: builtin/check-ignore.c:18 builtin/checkout.c:1083 builtin/gc.c:285 msgid "suppress progress reporting" msgstr "ä¸æ˜¾ç¤ºè¿›åº¦æŠ¥å‘Š" @@ -3195,43 +3206,43 @@ msgstr "未指定è”系地å€" msgid "git checkout-index [options] [--] [<file>...]" msgstr "git checkout-index [选项] [--] [<文件>...]" -#: builtin/checkout-index.c:187 +#: builtin/checkout-index.c:188 msgid "check out all files in the index" msgstr "检出索引区的所有文件" -#: builtin/checkout-index.c:188 +#: builtin/checkout-index.c:189 msgid "force overwrite of existing files" msgstr "强制覆盖现有的文件" -#: builtin/checkout-index.c:190 +#: builtin/checkout-index.c:191 msgid "no warning for existing files and files not in index" msgstr "å˜åœ¨æˆ–ä¸åœ¨ç´¢å¼•ä¸çš„文件都没有è¦å‘Š" -#: builtin/checkout-index.c:192 +#: builtin/checkout-index.c:193 msgid "don't checkout new files" msgstr "ä¸æ£€å‡ºæ–°æ–‡ä»¶" -#: builtin/checkout-index.c:194 +#: builtin/checkout-index.c:195 msgid "update stat information in the index file" msgstr "更新索引ä¸æ–‡ä»¶çš„状æ€ä¿¡æ¯" -#: builtin/checkout-index.c:200 +#: builtin/checkout-index.c:201 msgid "read list of paths from the standard input" msgstr "ä»Žæ ‡å‡†è¾“å…¥è¯»å–路径列表" -#: builtin/checkout-index.c:202 +#: builtin/checkout-index.c:203 msgid "write the content to temporary files" msgstr "将内容写入临时文件" -#: builtin/checkout-index.c:203 builtin/column.c:30 +#: builtin/checkout-index.c:204 builtin/column.c:30 msgid "string" msgstr "å—符串" -#: builtin/checkout-index.c:204 +#: builtin/checkout-index.c:205 msgid "when creating files, prepend <string>" msgstr "在创建文件时,在å‰é¢åŠ 上<å—符串>" -#: builtin/checkout-index.c:207 +#: builtin/checkout-index.c:208 msgid "copy out the files from named stage" msgstr "从指定暂å˜åŒºä¸æ‹·å‡ºæ–‡ä»¶" @@ -3273,76 +3284,76 @@ msgstr "path '%s'ï¼šæ— æ³•åˆå¹¶" msgid "Unable to add merge result for '%s'" msgstr "æ— æ³•ä¸º '%s' æ·»åŠ åˆå¹¶ç»“æžœ" -#: builtin/checkout.c:232 builtin/checkout.c:235 builtin/checkout.c:238 -#: builtin/checkout.c:241 +#: builtin/checkout.c:231 builtin/checkout.c:234 builtin/checkout.c:237 +#: builtin/checkout.c:240 #, c-format msgid "'%s' cannot be used with updating paths" msgstr "'%s' ä¸èƒ½åœ¨æ›´æ–°è·¯å¾„时使用" -#: builtin/checkout.c:244 builtin/checkout.c:247 +#: builtin/checkout.c:243 builtin/checkout.c:246 #, c-format msgid "'%s' cannot be used with %s" msgstr "'%s' ä¸èƒ½å’Œ %s åŒæ—¶ä½¿ç”¨" -#: builtin/checkout.c:250 +#: builtin/checkout.c:249 #, c-format msgid "Cannot update paths and switch to branch '%s' at the same time." msgstr "ä¸èƒ½åŒæ—¶æ›´æ–°è·¯å¾„并切æ¢åˆ°åˆ†æ”¯'%s'。" -#: builtin/checkout.c:261 builtin/checkout.c:450 +#: builtin/checkout.c:260 builtin/checkout.c:449 msgid "corrupt index file" msgstr "æŸå的索引文件" -#: builtin/checkout.c:321 builtin/checkout.c:328 +#: builtin/checkout.c:320 builtin/checkout.c:327 #, c-format msgid "path '%s' is unmerged" msgstr "路径 '%s' 未åˆå¹¶" -#: builtin/checkout.c:472 +#: builtin/checkout.c:471 msgid "you need to resolve your current index first" msgstr "您需è¦å…ˆè§£å†³å½“å‰ç´¢å¼•çš„冲çª" -#: builtin/checkout.c:593 +#: builtin/checkout.c:591 #, c-format msgid "Can not do reflog for '%s'\n" msgstr "ä¸èƒ½å¯¹ '%s' 执行 reflog æ“作\n" -#: builtin/checkout.c:631 +#: builtin/checkout.c:629 msgid "HEAD is now at" msgstr "HEAD ç›®å‰ä½äºŽ" -#: builtin/checkout.c:638 +#: builtin/checkout.c:636 #, c-format msgid "Reset branch '%s'\n" msgstr "é‡ç½®åˆ†æ”¯ '%s'\n" -#: builtin/checkout.c:641 +#: builtin/checkout.c:639 #, c-format msgid "Already on '%s'\n" msgstr "å·²ç»ä½äºŽ '%s'\n" -#: builtin/checkout.c:645 +#: builtin/checkout.c:643 #, c-format msgid "Switched to and reset branch '%s'\n" msgstr "切æ¢å¹¶é‡ç½®åˆ†æ”¯ '%s'\n" -#: builtin/checkout.c:647 builtin/checkout.c:1032 +#: builtin/checkout.c:645 builtin/checkout.c:1026 #, c-format msgid "Switched to a new branch '%s'\n" msgstr "切æ¢åˆ°ä¸€ä¸ªæ–°åˆ†æ”¯ '%s'\n" -#: builtin/checkout.c:649 +#: builtin/checkout.c:647 #, c-format msgid "Switched to branch '%s'\n" msgstr "切æ¢åˆ°åˆ†æ”¯ '%s'\n" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: builtin/checkout.c:705 +#: builtin/checkout.c:699 #, c-format msgid " ... and %d more.\n" msgstr " ... åŠå…¶å®ƒ %d 个。\n" -#: builtin/checkout.c:711 +#: builtin/checkout.c:705 #, c-format msgid "" "Warning: you are leaving %d commit behind, not connected to\n" @@ -3363,7 +3374,7 @@ msgstr[1] "" "\n" "%s\n" -#: builtin/checkout.c:729 +#: builtin/checkout.c:723 #, c-format msgid "" "If you want to keep them by creating a new branch, this may be a good time\n" @@ -3378,139 +3389,139 @@ msgstr "" " git branch new_branch_name %s\n" "\n" -#: builtin/checkout.c:759 +#: builtin/checkout.c:753 msgid "internal error in revision walk" msgstr "在版本é历时é‡åˆ°å†…部错误" -#: builtin/checkout.c:763 +#: builtin/checkout.c:757 msgid "Previous HEAD position was" msgstr "之å‰çš„ HEAD ä½ç½®æ˜¯" -#: builtin/checkout.c:790 builtin/checkout.c:1027 +#: builtin/checkout.c:784 builtin/checkout.c:1021 msgid "You are on a branch yet to be born" msgstr "您ä½äºŽä¸€ä¸ªå°šæœªåˆå§‹åŒ–的分支" -#: builtin/checkout.c:934 +#: builtin/checkout.c:928 #, c-format msgid "only one reference expected, %d given." msgstr "åªè¦ä¸€ä¸ªå¼•ç”¨ï¼Œå´ç»™å‡ºäº† %d 个" -#: builtin/checkout.c:973 +#: builtin/checkout.c:967 #, c-format msgid "invalid reference: %s" msgstr "æ— æ•ˆå¼•ç”¨ï¼š%s" -#: builtin/checkout.c:1002 +#: builtin/checkout.c:996 #, c-format msgid "reference is not a tree: %s" msgstr "引用ä¸æ˜¯ä¸€ä¸ªæ ‘:%s" -#: builtin/checkout.c:1041 +#: builtin/checkout.c:1035 msgid "paths cannot be used with switching branches" msgstr "路径ä¸èƒ½å’Œåˆ‡æ¢åˆ†æ”¯åŒæ—¶ä½¿ç”¨" -#: builtin/checkout.c:1044 builtin/checkout.c:1048 +#: builtin/checkout.c:1038 builtin/checkout.c:1042 #, c-format msgid "'%s' cannot be used with switching branches" msgstr "'%s' ä¸èƒ½å’Œåˆ‡æ¢åˆ†æ”¯åŒæ—¶ä½¿ç”¨" -#: builtin/checkout.c:1052 builtin/checkout.c:1055 builtin/checkout.c:1060 -#: builtin/checkout.c:1063 +#: builtin/checkout.c:1046 builtin/checkout.c:1049 builtin/checkout.c:1054 +#: builtin/checkout.c:1057 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "'%s' ä¸èƒ½å’Œ '%s' åŒæ—¶ä½¿ç”¨" -#: builtin/checkout.c:1068 +#: builtin/checkout.c:1062 #, c-format msgid "Cannot switch branch to a non-commit '%s'" msgstr "ä¸èƒ½åˆ‡æ¢åˆ†æ”¯åˆ°ä¸€ä¸ªéžæ交 '%s'" -#: builtin/checkout.c:1090 builtin/checkout.c:1092 builtin/clone.c:88 +#: builtin/checkout.c:1084 builtin/checkout.c:1086 builtin/clone.c:88 #: builtin/remote.c:159 builtin/remote.c:161 msgid "branch" msgstr "分支" -#: builtin/checkout.c:1091 +#: builtin/checkout.c:1085 msgid "create and checkout a new branch" msgstr "创建并检出一个新的分支" -#: builtin/checkout.c:1093 +#: builtin/checkout.c:1087 msgid "create/reset and checkout a branch" msgstr "创建/é‡ç½®å¹¶æ£€å‡ºä¸€ä¸ªåˆ†æ”¯" -#: builtin/checkout.c:1094 +#: builtin/checkout.c:1088 msgid "create reflog for new branch" msgstr "为新的分支创建引用日志" -#: builtin/checkout.c:1095 +#: builtin/checkout.c:1089 msgid "detach the HEAD at named commit" msgstr "æˆä¸ºæŒ‡å‘该æ交的分离头指针" -#: builtin/checkout.c:1096 +#: builtin/checkout.c:1090 msgid "set upstream info for new branch" msgstr "为新的分支设置上游信æ¯" -#: builtin/checkout.c:1098 +#: builtin/checkout.c:1092 msgid "new-branch" msgstr "新分支" -#: builtin/checkout.c:1098 +#: builtin/checkout.c:1092 msgid "new unparented branch" msgstr "新的没有父æ交的分支" -#: builtin/checkout.c:1099 +#: builtin/checkout.c:1093 msgid "checkout our version for unmerged files" msgstr "对尚未åˆå¹¶çš„文件检出我们的版本" -#: builtin/checkout.c:1101 +#: builtin/checkout.c:1095 msgid "checkout their version for unmerged files" msgstr "对尚未åˆå¹¶çš„文件检出他们的版本" -#: builtin/checkout.c:1103 +#: builtin/checkout.c:1097 msgid "force checkout (throw away local modifications)" msgstr "强制检出(丢弃本地修改)" -#: builtin/checkout.c:1104 +#: builtin/checkout.c:1098 msgid "perform a 3-way merge with the new branch" msgstr "和新的分支执行三路åˆå¹¶" -#: builtin/checkout.c:1105 builtin/merge.c:225 +#: builtin/checkout.c:1099 builtin/merge.c:225 msgid "update ignored files (default)" msgstr "更新忽略的文件(默认)" -#: builtin/checkout.c:1106 builtin/log.c:1228 parse-options.h:245 +#: builtin/checkout.c:1100 builtin/log.c:1236 parse-options.h:245 msgid "style" msgstr "é£Žæ ¼" -#: builtin/checkout.c:1107 +#: builtin/checkout.c:1101 msgid "conflict style (merge or diff3)" msgstr "冲çªè¾“å‡ºé£Žæ ¼ï¼ˆmerge 或 diff3)" -#: builtin/checkout.c:1110 +#: builtin/checkout.c:1104 msgid "do not limit pathspecs to sparse entries only" msgstr "对路径ä¸åšç¨€ç–检出的é™åˆ¶" -#: builtin/checkout.c:1112 +#: builtin/checkout.c:1106 msgid "second guess 'git checkout no-such-branch'" msgstr "å†è€…猜测'git checkout no-such-branch'" -#: builtin/checkout.c:1135 +#: builtin/checkout.c:1129 msgid "-b, -B and --orphan are mutually exclusive" msgstr "-bã€-B å’Œ --orphan 是互斥的" -#: builtin/checkout.c:1152 +#: builtin/checkout.c:1146 msgid "--track needs a branch name" msgstr "--track 需è¦ä¸€ä¸ªåˆ†æ”¯å" -#: builtin/checkout.c:1159 +#: builtin/checkout.c:1153 msgid "Missing branch name; try -b" msgstr "缺少分支åï¼›å°è¯• -b" -#: builtin/checkout.c:1196 +#: builtin/checkout.c:1190 msgid "invalid path specification" msgstr "æ— æ•ˆçš„è·¯å¾„è§„æ ¼" -#: builtin/checkout.c:1203 +#: builtin/checkout.c:1197 #, c-format msgid "" "Cannot update paths and switch to branch '%s' at the same time.\n" @@ -3519,12 +3530,12 @@ msgstr "" "ä¸èƒ½åŒæ—¶æ›´æ–°è·¯å¾„并切æ¢åˆ°åˆ†æ”¯'%s'。\n" "您是想è¦æ£€å‡º '%s' 但其未能解æžä¸ºæ交么?" -#: builtin/checkout.c:1208 +#: builtin/checkout.c:1202 #, c-format msgid "git checkout: --detach does not take a path argument '%s'" msgstr "git checkout:--detach ä¸èƒ½æŽ¥æ”¶è·¯å¾„å‚æ•° '%s'" -#: builtin/checkout.c:1212 +#: builtin/checkout.c:1206 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." @@ -3599,30 +3610,30 @@ msgstr "" msgid "Huh (%s)?" msgstr "嗯(%s)?" -#: builtin/clean.c:660 +#: builtin/clean.c:659 #, c-format msgid "Input ignore patterns>> " msgstr "输入模版以排除æ¡ç›®>> " -#: builtin/clean.c:697 +#: builtin/clean.c:696 #, c-format msgid "WARNING: Cannot find items matched by: %s" msgstr "è¦å‘Šï¼šæ— 法找到和 %s 匹é…çš„æ¡ç›®" -#: builtin/clean.c:718 +#: builtin/clean.c:717 msgid "Select items to delete" msgstr "选择è¦åˆ 除的æ¡ç›®" -#: builtin/clean.c:758 +#: builtin/clean.c:757 #, c-format msgid "remove %s? " msgstr "åˆ é™¤ %s?" -#: builtin/clean.c:783 +#: builtin/clean.c:782 msgid "Bye." msgstr "å†è§ã€‚" -#: builtin/clean.c:791 +#: builtin/clean.c:790 msgid "" "clean - start cleaning\n" "filter by pattern - exclude items from deletion\n" @@ -3640,69 +3651,69 @@ msgstr "" "help - 显示本帮助\n" "? - 显示如何在æ示符下选择的帮助" -#: builtin/clean.c:818 +#: builtin/clean.c:817 msgid "*** Commands ***" msgstr "*** 命令 ***" -#: builtin/clean.c:819 +#: builtin/clean.c:818 msgid "What now" msgstr "请选择" -#: builtin/clean.c:827 +#: builtin/clean.c:826 msgid "Would remove the following item:" msgid_plural "Would remove the following items:" msgstr[0] "å°†åˆ é™¤å¦‚ä¸‹æ¡ç›®ï¼š" msgstr[1] "å°†åˆ é™¤å¦‚ä¸‹æ¡ç›®ï¼š" -#: builtin/clean.c:844 +#: builtin/clean.c:843 msgid "No more files to clean, exiting." msgstr "没有è¦æ¸…ç†çš„文件,退出。" -#: builtin/clean.c:875 +#: builtin/clean.c:874 msgid "do not print names of files removed" msgstr "ä¸æ‰“å°åˆ 除文件的å称" -#: builtin/clean.c:877 +#: builtin/clean.c:876 msgid "force" msgstr "强制" -#: builtin/clean.c:878 +#: builtin/clean.c:877 msgid "interactive cleaning" msgstr "交互å¼æ¸…除" -#: builtin/clean.c:880 +#: builtin/clean.c:879 msgid "remove whole directories" msgstr "åˆ é™¤æ•´ä¸ªç›®å½•" -#: builtin/clean.c:881 builtin/describe.c:415 builtin/grep.c:716 -#: builtin/ls-files.c:486 builtin/name-rev.c:314 builtin/show-ref.c:185 +#: builtin/clean.c:880 builtin/describe.c:406 builtin/grep.c:714 +#: builtin/ls-files.c:486 builtin/name-rev.c:311 builtin/show-ref.c:185 msgid "pattern" msgstr "模å¼" -#: builtin/clean.c:882 +#: builtin/clean.c:881 msgid "add <pattern> to ignore rules" msgstr "æ·»åŠ <模å¼>到忽略规则" -#: builtin/clean.c:883 +#: builtin/clean.c:882 msgid "remove ignored files, too" msgstr "ä¹Ÿåˆ é™¤å¿½ç•¥çš„æ–‡ä»¶" -#: builtin/clean.c:885 +#: builtin/clean.c:884 msgid "remove only ignored files" msgstr "åªåˆ 除忽略的文件" -#: builtin/clean.c:903 +#: builtin/clean.c:902 msgid "-x and -X cannot be used together" msgstr "-x å’Œ -X ä¸èƒ½åŒæ—¶ä½¿ç”¨" -#: builtin/clean.c:907 +#: builtin/clean.c:906 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:910 +#: builtin/clean.c:909 msgid "" "clean.requireForce defaults to true and neither -i, -n, nor -f given; " "refusing to clean" @@ -3713,8 +3724,8 @@ msgstr "" msgid "git clone [options] [--] <repo> [<dir>]" msgstr "git clone [选项] [--] <版本库> [<路径>]" -#: builtin/clone.c:64 builtin/fetch.c:97 builtin/merge.c:222 -#: builtin/push.c:504 +#: builtin/clone.c:64 builtin/fetch.c:112 builtin/merge.c:222 +#: builtin/push.c:503 msgid "force progress reporting" msgstr "强制显示进度报告" @@ -3774,7 +3785,7 @@ msgstr "检出<分支>而ä¸æ˜¯è¿œç¨‹HEAD" msgid "path to git-upload-pack on the remote" msgstr "远程 git-upload-pack 路径" -#: builtin/clone.c:92 builtin/fetch.c:98 builtin/grep.c:661 +#: builtin/clone.c:92 builtin/fetch.c:113 builtin/grep.c:659 msgid "depth" msgstr "深度" @@ -3876,94 +3887,94 @@ msgstr "检查连接... " msgid "remote did not send all necessary objects" msgstr "远程没有å‘é€æ‰€æœ‰å¿…须的对象" -#: builtin/clone.c:626 +#: builtin/clone.c:627 msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n" msgstr "远程 HEAD 指å‘一个ä¸å˜åœ¨çš„å¼•ç”¨ï¼Œæ— æ³•æ£€å‡ºã€‚\n" -#: builtin/clone.c:657 +#: builtin/clone.c:658 msgid "unable to checkout working tree" msgstr "ä¸èƒ½æ£€å‡ºå·¥ä½œåŒº" -#: builtin/clone.c:765 +#: builtin/clone.c:768 msgid "Too many arguments." msgstr "太多å‚数。" -#: builtin/clone.c:769 +#: builtin/clone.c:772 msgid "You must specify a repository to clone." msgstr "您必须指定一个版本库æ¥å…‹éš†ã€‚" -#: builtin/clone.c:780 +#: builtin/clone.c:783 #, c-format msgid "--bare and --origin %s options are incompatible." msgstr "--bare å’Œ --origin %s 选项ä¸å…¼å®¹ã€‚" -#: builtin/clone.c:783 +#: builtin/clone.c:786 msgid "--bare and --separate-git-dir are incompatible." msgstr "--bare å’Œ --separate-git-dir 选项ä¸å…¼å®¹ã€‚" -#: builtin/clone.c:796 +#: builtin/clone.c:799 #, c-format msgid "repository '%s' does not exist" msgstr "版本库 '%s' ä¸å˜åœ¨" -#: builtin/clone.c:802 -msgid "--depth is ignored in local clones; use file:// instead." -msgstr "--depth 在本地克隆被忽略,改为 file:// å议试试。" - -#: builtin/clone.c:805 -msgid "source repository is shallow, ignoring --local" -msgstr "æºç‰ˆæœ¬åº“是浅克隆,忽略 --local" - -#: builtin/clone.c:810 -msgid "--local is ignored" -msgstr "--local 被忽略" - -#: builtin/clone.c:814 builtin/fetch.c:1119 +#: builtin/clone.c:805 builtin/fetch.c:1143 #, c-format msgid "depth %s is not a positive number" msgstr "深度 %s ä¸æ˜¯ä¸€ä¸ªæ£æ•°" -#: builtin/clone.c:824 +#: builtin/clone.c:815 #, c-format msgid "destination path '%s' already exists and is not an empty directory." msgstr "ç›®æ ‡è·¯å¾„ '%s' å·²ç»å˜åœ¨ï¼Œå¹¶ä¸”ä¸æ˜¯ä¸€ä¸ªç©ºç›®å½•ã€‚" -#: builtin/clone.c:834 +#: builtin/clone.c:825 #, c-format msgid "working tree '%s' already exists." msgstr "工作区 '%s' å·²ç»å˜åœ¨ã€‚" -#: builtin/clone.c:847 builtin/clone.c:859 +#: builtin/clone.c:838 builtin/clone.c:850 #, c-format msgid "could not create leading directories of '%s'" msgstr "ä¸èƒ½ä¸º '%s' 创建先导目录" -#: builtin/clone.c:850 +#: builtin/clone.c:841 #, c-format msgid "could not create work tree dir '%s'." msgstr "ä¸èƒ½ä¸º '%s' 创建工作区目录。" -#: builtin/clone.c:869 +#: builtin/clone.c:860 #, c-format msgid "Cloning into bare repository '%s'...\n" msgstr "克隆到裸版本库 '%s'...\n" -#: builtin/clone.c:871 +#: builtin/clone.c:862 #, c-format msgid "Cloning into '%s'...\n" msgstr "æ£å…‹éš†åˆ° '%s'...\n" +#: builtin/clone.c:898 +msgid "--depth is ignored in local clones; use file:// instead." +msgstr "--depth 在本地克隆被忽略,改为 file:// å议试试。" + +#: builtin/clone.c:901 +msgid "source repository is shallow, ignoring --local" +msgstr "æºç‰ˆæœ¬åº“是浅克隆,忽略 --local" + #: builtin/clone.c:906 +msgid "--local is ignored" +msgstr "--local 被忽略" + +#: builtin/clone.c:910 #, c-format msgid "Don't know how to clone %s" msgstr "ä¸çŸ¥é“如何克隆 %s" -#: builtin/clone.c:957 builtin/clone.c:965 +#: builtin/clone.c:961 builtin/clone.c:969 #, c-format msgid "Remote branch %s not found in upstream %s" msgstr "远程分支 %s 在上游 %s 未å‘现" -#: builtin/clone.c:968 +#: builtin/clone.c:972 msgid "You appear to have cloned an empty repository." msgstr "您似乎克隆了一个空版本库。" @@ -4077,89 +4088,96 @@ msgstr "" msgid "failed to unpack HEAD tree object" msgstr "æ— æ³•è§£åŒ… HEAD æ ‘å¯¹è±¡" -#: builtin/commit.c:330 +#: builtin/commit.c:328 msgid "unable to create temporary index" msgstr "ä¸èƒ½åˆ›å»ºä¸´æ—¶ç´¢å¼•" -#: builtin/commit.c:336 +#: builtin/commit.c:334 msgid "interactive add failed" msgstr "交互å¼æ·»åŠ 失败" -#: builtin/commit.c:369 builtin/commit.c:390 builtin/commit.c:440 +#: builtin/commit.c:366 builtin/commit.c:387 builtin/commit.c:435 msgid "unable to write new_index file" msgstr "æ— æ³•å†™ new_index 文件" -#: builtin/commit.c:421 +#: builtin/commit.c:418 msgid "cannot do a partial commit during a merge." msgstr "在åˆå¹¶è¿‡ç¨‹ä¸ä¸èƒ½åšéƒ¨åˆ†æ交。" -#: builtin/commit.c:423 +#: builtin/commit.c:420 msgid "cannot do a partial commit during a cherry-pick." msgstr "在拣选过程ä¸ä¸èƒ½åšéƒ¨åˆ†æ交。" -#: builtin/commit.c:433 +#: builtin/commit.c:429 msgid "cannot read the index" msgstr "æ— æ³•è¯»å–索引" -#: builtin/commit.c:453 +#: builtin/commit.c:447 msgid "unable to write temporary index file" msgstr "æ— æ³•å†™ä¸´æ—¶ç´¢å¼•æ–‡ä»¶" -#: builtin/commit.c:544 builtin/commit.c:550 +#: builtin/commit.c:557 builtin/commit.c:563 #, c-format msgid "invalid commit: %s" msgstr "æ— æ•ˆçš„æ交:%s" -#: builtin/commit.c:572 +#: builtin/commit.c:585 msgid "malformed --author parameter" msgstr "éžæ³•çš„ --author å‚æ•°" #: builtin/commit.c:592 #, c-format +msgid "invalid date format: %s" +msgstr "æ— æ•ˆçš„æ—¥æœŸæ ¼å¼ï¼š%s" + +#: builtin/commit.c:609 +#, c-format msgid "Malformed ident string: '%s'" msgstr "éžæ³•çš„身份å—符串:'%s'" -#: builtin/commit.c:629 builtin/commit.c:663 builtin/commit.c:1014 +#: builtin/commit.c:642 +msgid "" +"unable to select a comment character that is not used\n" +"in the current commit message" +msgstr "æ— æ³•é€‰æ‹©ä¸€ä¸ªæœªè¢«å½“å‰æ交说明使用的注释å—符" + +#: builtin/commit.c:679 builtin/commit.c:712 builtin/commit.c:1086 #, c-format msgid "could not lookup commit %s" msgstr "ä¸èƒ½æŸ¥è¯¢æ交 %s" -#: builtin/commit.c:641 builtin/shortlog.c:273 +#: builtin/commit.c:691 builtin/shortlog.c:273 #, c-format msgid "(reading log message from standard input)\n" msgstr "(æ£ä»Žæ ‡å‡†è¾“å…¥ä¸è¯»å–日志信æ¯ï¼‰\n" -#: builtin/commit.c:643 +#: builtin/commit.c:693 msgid "could not read log from standard input" msgstr "ä¸èƒ½ä»Žæ ‡å‡†è¾“å…¥ä¸è¯»å–日志信æ¯" -#: builtin/commit.c:647 +#: builtin/commit.c:697 #, c-format msgid "could not read log file '%s'" msgstr "ä¸èƒ½è¯»å–日志文件 '%s'" -#: builtin/commit.c:654 -msgid "commit has empty message" -msgstr "æ交说明为空" - -#: builtin/commit.c:670 +#: builtin/commit.c:719 msgid "could not read MERGE_MSG" msgstr "ä¸èƒ½è¯»å– MERGE_MSG" -#: builtin/commit.c:674 +#: builtin/commit.c:723 msgid "could not read SQUASH_MSG" msgstr "ä¸èƒ½è¯»å– SQUASH_MSG" -#: builtin/commit.c:678 +#: builtin/commit.c:727 #, c-format msgid "could not read '%s'" msgstr "ä¸èƒ½è¯»å– '%s'" -#: builtin/commit.c:749 +#: builtin/commit.c:798 msgid "could not write commit template" msgstr "ä¸èƒ½å†™æ交模版" -#: builtin/commit.c:764 +#: builtin/commit.c:816 #, c-format msgid "" "\n" @@ -4173,7 +4191,7 @@ msgstr "" "\t%s\n" "然åŽé‡è¯•ã€‚\n" -#: builtin/commit.c:769 +#: builtin/commit.c:821 #, c-format msgid "" "\n" @@ -4187,7 +4205,7 @@ msgstr "" "\t%s\n" "然åŽé‡è¯•ã€‚\n" -#: builtin/commit.c:782 +#: builtin/commit.c:834 #, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" @@ -4196,7 +4214,7 @@ msgstr "" "请为您的å˜æ›´è¾“å…¥æ交说明。以 '%c' 开始的行将被忽略,而一个空的æ交\n" "说明将会终æ¢æ交。\n" -#: builtin/commit.c:789 +#: builtin/commit.c:841 #, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" @@ -4207,355 +4225,361 @@ msgstr "" "也å¯ä»¥åˆ 除它们。一个空的æ交说明将会终æ¢æ交。\n" # 译者:为ä¿è¯åœ¨è¾“出ä¸å¯¹é½ï¼Œæ³¨æ„调整å¥ä¸ç©ºæ ¼ï¼ -#: builtin/commit.c:802 +#: builtin/commit.c:855 +#, c-format +msgid "%sAuthor: %.*s <%.*s>" +msgstr "%s作者: %.*s <%.*s>" + +# 译者:为ä¿è¯åœ¨è¾“出ä¸å¯¹é½ï¼Œæ³¨æ„调整å¥ä¸ç©ºæ ¼ï¼ +#: builtin/commit.c:863 #, c-format -msgid "%sAuthor: %s" -msgstr "%s作者: %s" +msgid "%sDate: %s" +msgstr "%s日期: %s" # 译者:为ä¿è¯åœ¨è¾“出ä¸å¯¹é½ï¼Œæ³¨æ„调整å¥ä¸ç©ºæ ¼ï¼ -#: builtin/commit.c:809 +#: builtin/commit.c:870 #, c-format -msgid "%sCommitter: %s" -msgstr "%sæ交者: %s" +msgid "%sCommitter: %.*s <%.*s>" +msgstr "%sæ交者:%.*s <%.*s>" -#: builtin/commit.c:829 +#: builtin/commit.c:888 msgid "Cannot read index" msgstr "æ— æ³•è¯»å–索引" -#: builtin/commit.c:872 +#: builtin/commit.c:945 msgid "Error building trees" msgstr "æ— æ³•åˆ›å»ºæ ‘å¯¹è±¡" -#: builtin/commit.c:887 builtin/tag.c:391 +#: builtin/commit.c:960 builtin/tag.c:495 #, c-format msgid "Please supply the message using either -m or -F option.\n" msgstr "请使用 -m 或 -F 选项æä¾›æ交说明。\n" -#: builtin/commit.c:989 +#: builtin/commit.c:1061 #, c-format msgid "No existing author found with '%s'" msgstr "æ²¡æœ‰æ‰¾åˆ°åŒ¹é… '%s' 的作者" -#: builtin/commit.c:1004 builtin/commit.c:1244 +#: builtin/commit.c:1076 builtin/commit.c:1316 #, c-format msgid "Invalid untracked files mode '%s'" msgstr "æ— æ•ˆçš„æœªè¿½è¸ªæ–‡ä»¶å‚æ•° '%s'" -#: builtin/commit.c:1041 +#: builtin/commit.c:1113 msgid "--long and -z are incompatible" msgstr "--long å’Œ -z 选项ä¸å…¼å®¹" -#: builtin/commit.c:1071 +#: builtin/commit.c:1143 msgid "Using both --reset-author and --author does not make sense" msgstr "åŒæ—¶ä½¿ç”¨ --reset-author å’Œ --author 没有æ„义" -#: builtin/commit.c:1080 +#: builtin/commit.c:1152 msgid "You have nothing to amend." msgstr "您没有å¯ä¿®è¡¥çš„æ交。" -#: builtin/commit.c:1083 +#: builtin/commit.c:1155 msgid "You are in the middle of a merge -- cannot amend." msgstr "您æ£å¤„于一个åˆå¹¶è¿‡ç¨‹ä¸ -- æ— æ³•ä¿®è¡¥æ交。" -#: builtin/commit.c:1085 +#: builtin/commit.c:1157 msgid "You are in the middle of a cherry-pick -- cannot amend." msgstr "您æ£å¤„äºŽä¸€ä¸ªæ‹£é€‰è¿‡ç¨‹ä¸ -- æ— æ³•ä¿®è¡¥æ交。" -#: builtin/commit.c:1088 +#: builtin/commit.c:1160 msgid "Options --squash and --fixup cannot be used together" msgstr "选项 --squash å’Œ --fixup ä¸èƒ½åŒæ—¶ä½¿ç”¨" -#: builtin/commit.c:1098 +#: builtin/commit.c:1170 msgid "Only one of -c/-C/-F/--fixup can be used." msgstr "åªèƒ½ç”¨ä¸€ä¸ª -c/-C/-F/--fixup 选项。" -#: builtin/commit.c:1100 +#: builtin/commit.c:1172 msgid "Option -m cannot be combined with -c/-C/-F/--fixup." msgstr "选项 -m ä¸èƒ½å’Œ -c/-C/-F/--fixup åŒæ—¶ä½¿ç”¨ã€‚" -#: builtin/commit.c:1108 +#: builtin/commit.c:1180 msgid "--reset-author can be used only with -C, -c or --amend." msgstr "--reset-author åªèƒ½å’Œ -Cã€-c 或 --amend åŒæ—¶ä½¿ç”¨ã€‚" -#: builtin/commit.c:1125 +#: builtin/commit.c:1197 msgid "Only one of --include/--only/--all/--interactive/--patch can be used." msgstr "åªèƒ½ç”¨ä¸€ä¸ª --include/--only/--all/--interactive/--patch 选项。" -#: builtin/commit.c:1127 +#: builtin/commit.c:1199 msgid "No paths with --include/--only does not make sense." msgstr "å‚æ•° --include/--only ä¸è·Ÿè·¯å¾„没有æ„义。" -#: builtin/commit.c:1129 +#: builtin/commit.c:1201 msgid "Clever... amending the last one with dirty index." msgstr "èªæ˜Ž... 在索引ä¸å¹²å‡€ä¸‹ä¿®è¡¥æœ€åŽçš„æ交。" -#: builtin/commit.c:1131 +#: builtin/commit.c:1203 msgid "Explicit paths specified without -i or -o; assuming --only paths..." msgstr "指定了明确的路径而没有使用 -i 或 -o 选项,认为是 --only paths..." -#: builtin/commit.c:1143 builtin/tag.c:639 +#: builtin/commit.c:1215 builtin/tag.c:727 #, c-format msgid "Invalid cleanup mode %s" msgstr "æ— æ•ˆçš„æ¸…ç†æ¨¡å¼ %s" -#: builtin/commit.c:1148 +#: builtin/commit.c:1220 msgid "Paths with -a does not make sense." msgstr "路径和 -a 选项åŒæ—¶ä½¿ç”¨æ²¡æœ‰æ„义。" -#: builtin/commit.c:1258 builtin/commit.c:1516 +#: builtin/commit.c:1330 builtin/commit.c:1595 msgid "show status concisely" msgstr "以简æ´çš„æ ¼å¼æ˜¾ç¤ºçŠ¶æ€" -#: builtin/commit.c:1260 builtin/commit.c:1518 +#: builtin/commit.c:1332 builtin/commit.c:1597 msgid "show branch information" msgstr "显示分支信æ¯" -#: builtin/commit.c:1262 builtin/commit.c:1520 builtin/push.c:490 +#: builtin/commit.c:1334 builtin/commit.c:1599 builtin/push.c:489 msgid "machine-readable output" msgstr "机器å¯è¯»çš„输出" -#: builtin/commit.c:1265 builtin/commit.c:1522 +#: builtin/commit.c:1337 builtin/commit.c:1601 msgid "show status in long format (default)" msgstr "ä»¥é•¿æ ¼å¼æ˜¾ç¤ºçŠ¶æ€ï¼ˆé»˜è®¤ï¼‰" -#: builtin/commit.c:1268 builtin/commit.c:1525 +#: builtin/commit.c:1340 builtin/commit.c:1604 msgid "terminate entries with NUL" msgstr "æ¡ç›®ä»¥NULå—符结尾" -#: builtin/commit.c:1270 builtin/commit.c:1528 builtin/fast-export.c:674 -#: builtin/fast-export.c:677 builtin/tag.c:514 +#: builtin/commit.c:1342 builtin/commit.c:1607 builtin/fast-export.c:703 +#: builtin/fast-export.c:706 builtin/tag.c:602 msgid "mode" msgstr "模å¼" -#: builtin/commit.c:1271 builtin/commit.c:1528 +#: builtin/commit.c:1343 builtin/commit.c:1607 msgid "show untracked files, optional modes: all, normal, no. (Default: all)" msgstr "显示未跟踪的文件,“模å¼â€çš„å¯é€‰å‚数:allã€normalã€no。(默认:all)" -#: builtin/commit.c:1274 +#: builtin/commit.c:1346 msgid "show ignored files" msgstr "显示忽略的文件" -#: builtin/commit.c:1275 parse-options.h:153 +#: builtin/commit.c:1347 parse-options.h:153 msgid "when" msgstr "何时" -#: builtin/commit.c:1276 +#: builtin/commit.c:1348 msgid "" "ignore changes to submodules, optional when: all, dirty, untracked. " "(Default: all)" msgstr "" "忽略å模组的更改,“何时â€çš„å¯é€‰å‚数:allã€dirtyã€untracked。(默认:all)" -#: builtin/commit.c:1278 +#: builtin/commit.c:1350 msgid "list untracked files in columns" msgstr "以列的方å¼æ˜¾ç¤ºæœªè·Ÿè¸ªçš„文件" -#: builtin/commit.c:1347 +#: builtin/commit.c:1419 msgid "couldn't look up newly created commit" msgstr "æ— æ³•æ‰¾åˆ°æ–°åˆ›å»ºçš„æ交" -#: builtin/commit.c:1349 +#: builtin/commit.c:1421 msgid "could not parse newly created commit" msgstr "ä¸èƒ½è§£æžæ–°åˆ›å»ºçš„æ交" -#: builtin/commit.c:1390 +#: builtin/commit.c:1469 msgid "detached HEAD" msgstr "分离头指针" # 译者:ä¸æ–‡å—符串拼接,å¯åˆ 除å‰å¯¼ç©ºæ ¼ -#: builtin/commit.c:1392 +#: builtin/commit.c:1471 msgid " (root-commit)" msgstr "ï¼ˆæ ¹æ交)" -#: builtin/commit.c:1486 +#: builtin/commit.c:1565 msgid "suppress summary after successful commit" msgstr "æ交æˆåŠŸåŽä¸æ˜¾ç¤ºæ¦‚è¿°ä¿¡æ¯" -#: builtin/commit.c:1487 +#: builtin/commit.c:1566 msgid "show diff in commit message template" msgstr "在æ交说明模æ¿é‡Œæ˜¾ç¤ºå·®å¼‚" -#: builtin/commit.c:1489 +#: builtin/commit.c:1568 msgid "Commit message options" msgstr "æ交说明选项" -#: builtin/commit.c:1490 builtin/tag.c:512 +#: builtin/commit.c:1569 builtin/tag.c:600 msgid "read message from file" msgstr "从文件ä¸è¯»å–æ交说明" -#: builtin/commit.c:1491 +#: builtin/commit.c:1570 msgid "author" msgstr "作者" -#: builtin/commit.c:1491 +#: builtin/commit.c:1570 msgid "override author for commit" msgstr "æ交时覆盖作者" -#: builtin/commit.c:1492 builtin/gc.c:272 +#: builtin/commit.c:1571 builtin/gc.c:286 msgid "date" msgstr "日期" -#: builtin/commit.c:1492 +#: builtin/commit.c:1571 msgid "override date for commit" msgstr "æ交时覆盖日期" -#: builtin/commit.c:1493 builtin/merge.c:216 builtin/notes.c:409 -#: builtin/notes.c:566 builtin/tag.c:510 +#: builtin/commit.c:1572 builtin/merge.c:216 builtin/notes.c:409 +#: builtin/notes.c:566 builtin/tag.c:598 msgid "message" msgstr "说明" -#: builtin/commit.c:1493 +#: builtin/commit.c:1572 msgid "commit message" msgstr "æ交说明" -#: builtin/commit.c:1494 +#: builtin/commit.c:1573 msgid "reuse and edit message from specified commit" msgstr "é‡ç”¨å¹¶ç¼–辑指定æ交的æ交说明" -#: builtin/commit.c:1495 +#: builtin/commit.c:1574 msgid "reuse message from specified commit" msgstr "é‡ç”¨æŒ‡å®šæ交的æ交说明" -#: builtin/commit.c:1496 +#: builtin/commit.c:1575 msgid "use autosquash formatted message to fixup specified commit" msgstr "使用 autosquash æ ¼å¼çš„æ交说明用以修æ£æŒ‡å®šçš„æ交" -#: builtin/commit.c:1497 +#: builtin/commit.c:1576 msgid "use autosquash formatted message to squash specified commit" msgstr "使用 autosquash æ ¼å¼çš„æ交说明用以压缩至指定的æ交" -#: builtin/commit.c:1498 +#: builtin/commit.c:1577 msgid "the commit is authored by me now (used with -C/-c/--amend)" msgstr "现在将该æ交的作者改为我(和 -C/-c/--amend å‚数共用)" -#: builtin/commit.c:1499 builtin/log.c:1180 builtin/revert.c:86 +#: builtin/commit.c:1578 builtin/log.c:1188 builtin/revert.c:86 msgid "add Signed-off-by:" msgstr "æ·»åŠ Signed-off-by: ç¾å" -#: builtin/commit.c:1500 +#: builtin/commit.c:1579 msgid "use specified template file" msgstr "使用指定的模æ¿æ–‡ä»¶" -#: builtin/commit.c:1501 +#: builtin/commit.c:1580 msgid "force edit of commit" msgstr "强制编辑æ交" # 译者:å¯é€‰å€¼ï¼Œä¸èƒ½ç¿»è¯‘(或是原文ä¸ç¬”误,应为 mode) -#: builtin/commit.c:1502 +#: builtin/commit.c:1581 msgid "default" msgstr "default" -#: builtin/commit.c:1502 builtin/tag.c:515 +#: builtin/commit.c:1581 builtin/tag.c:603 msgid "how to strip spaces and #comments from message" msgstr "è®¾ç½®å¦‚ä½•åˆ é™¤æäº¤è¯´æ˜Žé‡Œçš„ç©ºæ ¼å’Œ#注释" -#: builtin/commit.c:1503 +#: builtin/commit.c:1582 msgid "include status in commit message template" msgstr "在æ交说明模æ¿é‡ŒåŒ…å«çŠ¶æ€ä¿¡æ¯" -#: builtin/commit.c:1504 builtin/merge.c:223 builtin/revert.c:92 -#: builtin/tag.c:516 +#: builtin/commit.c:1583 builtin/merge.c:223 builtin/revert.c:92 +#: builtin/tag.c:604 msgid "key-id" msgstr "key-id" -#: builtin/commit.c:1505 builtin/merge.c:224 builtin/revert.c:93 +#: builtin/commit.c:1584 builtin/merge.c:224 builtin/revert.c:93 msgid "GPG sign commit" msgstr "GPG æ交ç¾å" -#: builtin/commit.c:1508 +#: builtin/commit.c:1587 msgid "Commit contents options" msgstr "æ交内容选项" -#: builtin/commit.c:1509 +#: builtin/commit.c:1588 msgid "commit all changed files" msgstr "æ交所有改动的文件" -#: builtin/commit.c:1510 +#: builtin/commit.c:1589 msgid "add specified files to index for commit" msgstr "æ·»åŠ æŒ‡å®šçš„æ–‡ä»¶åˆ°ç´¢å¼•åŒºç‰å¾…æ交" -#: builtin/commit.c:1511 +#: builtin/commit.c:1590 msgid "interactively add files" msgstr "交互å¼æ·»åŠ 文件" -#: builtin/commit.c:1512 +#: builtin/commit.c:1591 msgid "interactively add changes" msgstr "交互å¼æ·»åŠ å˜æ›´" -#: builtin/commit.c:1513 +#: builtin/commit.c:1592 msgid "commit only specified files" msgstr "åªæ交指定的文件" -#: builtin/commit.c:1514 +#: builtin/commit.c:1593 msgid "bypass pre-commit hook" msgstr "绕过 pre-commit é’©å" -#: builtin/commit.c:1515 +#: builtin/commit.c:1594 msgid "show what would be committed" msgstr "显示将è¦æ交的内容" -#: builtin/commit.c:1526 +#: builtin/commit.c:1605 msgid "amend previous commit" msgstr "修改先å‰çš„æ交" -#: builtin/commit.c:1527 +#: builtin/commit.c:1606 msgid "bypass post-rewrite hook" msgstr "绕过 post-rewrite é’©å" -#: builtin/commit.c:1532 +#: builtin/commit.c:1611 msgid "ok to record an empty change" msgstr "å…许一个空æ交" -#: builtin/commit.c:1534 +#: builtin/commit.c:1613 msgid "ok to record a change with an empty message" msgstr "å…许空的æ交说明" -#: builtin/commit.c:1562 +#: builtin/commit.c:1641 msgid "could not parse HEAD commit" msgstr "ä¸èƒ½è§£æž HEAD æ交" -#: builtin/commit.c:1601 builtin/merge.c:518 +#: builtin/commit.c:1680 builtin/merge.c:518 #, c-format msgid "could not open '%s' for reading" msgstr "ä¸èƒ½ä¸ºè¯»å…¥æ‰“å¼€ '%s'" -#: builtin/commit.c:1608 +#: builtin/commit.c:1687 #, c-format msgid "Corrupt MERGE_HEAD file (%s)" msgstr "æŸåçš„ MERGE_HEAD 文件(%s)" -#: builtin/commit.c:1615 +#: builtin/commit.c:1694 msgid "could not read MERGE_MODE" msgstr "ä¸èƒ½è¯»å– MERGE_MODE" -#: builtin/commit.c:1634 +#: builtin/commit.c:1713 #, c-format msgid "could not read commit message: %s" msgstr "ä¸èƒ½è¯»å–æ交说明:%s" -#: builtin/commit.c:1645 +#: builtin/commit.c:1724 #, c-format msgid "Aborting commit; you did not edit the message.\n" msgstr "终æ¢æ交;您未更改æ¥è‡ªæ¨¡ç‰ˆçš„æ交说明。\n" -#: builtin/commit.c:1650 +#: builtin/commit.c:1729 #, c-format msgid "Aborting commit due to empty commit message.\n" msgstr "终æ¢æäº¤å› ä¸ºæ交说明为空。\n" -#: builtin/commit.c:1665 builtin/merge.c:857 builtin/merge.c:882 +#: builtin/commit.c:1744 builtin/merge.c:851 builtin/merge.c:876 msgid "failed to write commit object" msgstr "æ— æ³•å†™æ交对象" -#: builtin/commit.c:1686 +#: builtin/commit.c:1756 msgid "cannot lock HEAD ref" msgstr "æ— æ³•é”定 HEAD 引用" -#: builtin/commit.c:1690 +#: builtin/commit.c:1769 msgid "cannot update HEAD ref" msgstr "æ— æ³•æ›´æ–° HEAD 引用" -#: builtin/commit.c:1701 +#: builtin/commit.c:1780 msgid "" "Repository has been updated, but unable to write\n" "new_index file. Check that disk is not full or quota is\n" @@ -4708,47 +4732,47 @@ msgstr "git describe [选项] <æ交å·>*" msgid "git describe [options] --dirty" msgstr "git describe [选项] --dirty" -#: builtin/describe.c:225 +#: builtin/describe.c:216 #, c-format msgid "annotated tag %s not available" msgstr "注释 tag %s æ— æ•ˆ" -#: builtin/describe.c:229 +#: builtin/describe.c:220 #, c-format msgid "annotated tag %s has no embedded name" msgstr "注释 tag %s 没有嵌入å称" -#: builtin/describe.c:231 +#: builtin/describe.c:222 #, c-format msgid "tag '%s' is really '%s' here" msgstr "tag '%s' 的确是在 '%s'" -#: builtin/describe.c:258 +#: builtin/describe.c:249 #, c-format msgid "Not a valid object name %s" msgstr "ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„对象å %s" -#: builtin/describe.c:261 +#: builtin/describe.c:252 #, c-format msgid "%s is not a valid '%s' object" msgstr "%s ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„ '%s' 对象" -#: builtin/describe.c:278 +#: builtin/describe.c:269 #, c-format msgid "no tag exactly matches '%s'" msgstr "没有 tag å‡†ç¡®åŒ¹é… '%s'" -#: builtin/describe.c:280 +#: builtin/describe.c:271 #, c-format msgid "searching to describe %s\n" msgstr "æœç´¢æè¿° %s\n" -#: builtin/describe.c:327 +#: builtin/describe.c:318 #, c-format msgid "finished search at %s\n" msgstr "完æˆæœç´¢ %s\n" -#: builtin/describe.c:354 +#: builtin/describe.c:345 #, c-format msgid "" "No annotated tags can describe '%s'.\n" @@ -4757,7 +4781,7 @@ msgstr "" "没有注释 tag 能æè¿° '%s'。\n" "然而,有éžæ³¨é‡Š tag:å°è¯• --tags。" -#: builtin/describe.c:358 +#: builtin/describe.c:349 #, c-format msgid "" "No tags can describe '%s'.\n" @@ -4766,12 +4790,12 @@ msgstr "" "没有注释 tag 能æè¿° '%s'。\n" "å°è¯• --always,或者创建一些 tag。" -#: builtin/describe.c:379 +#: builtin/describe.c:370 #, c-format msgid "traversed %lu commits\n" msgstr "å·²é历 %lu 个æ交\n" -#: builtin/describe.c:382 +#: builtin/describe.c:373 #, c-format msgid "" "more than %i tags found; listed %i most recent\n" @@ -4780,63 +4804,63 @@ msgstr "" "å‘现多于 %i 个 tag,列出最近的 %i 个\n" "在 %s 放弃æœç´¢\n" -#: builtin/describe.c:404 +#: builtin/describe.c:395 msgid "find the tag that comes after the commit" msgstr "寻找æ交之åŽçš„ tag(用于æè¿°æ交)" -#: builtin/describe.c:405 +#: builtin/describe.c:396 msgid "debug search strategy on stderr" msgstr "åœ¨æ ‡å‡†é”™è¯¯ä¸Šè°ƒè¯•æœç´¢ç–ç•¥" -#: builtin/describe.c:406 +#: builtin/describe.c:397 msgid "use any ref" msgstr "使用任æ„引用" -#: builtin/describe.c:407 +#: builtin/describe.c:398 msgid "use any tag, even unannotated" msgstr "ä½¿ç”¨ä»»æ„ tag,å³ä½¿æœªå¸¦æ³¨è§£" -#: builtin/describe.c:408 +#: builtin/describe.c:399 msgid "always use long format" msgstr "始终使用长æ交å·æ ¼å¼" -#: builtin/describe.c:409 +#: builtin/describe.c:400 msgid "only follow first parent" msgstr "åªè·Ÿéšç¬¬ä¸€ä¸ªçˆ¶æ交" -#: builtin/describe.c:412 +#: builtin/describe.c:403 msgid "only output exact matches" msgstr "åªè¾“出精确匹é…" -#: builtin/describe.c:414 +#: builtin/describe.c:405 msgid "consider <n> most recent tags (default: 10)" msgstr "考虑最近 <n> 个 tags(默认:10)" -#: builtin/describe.c:416 +#: builtin/describe.c:407 msgid "only consider tags matching <pattern>" msgstr "åªè€ƒè™‘åŒ¹é… <模å¼> çš„ tags" -#: builtin/describe.c:418 builtin/name-rev.c:321 +#: builtin/describe.c:409 builtin/name-rev.c:318 msgid "show abbreviated commit object as fallback" msgstr "显示简写的æ交å·ä½œä¸ºåŽå¤‡" -#: builtin/describe.c:419 +#: builtin/describe.c:410 msgid "mark" msgstr "æ ‡è®°" -#: builtin/describe.c:420 +#: builtin/describe.c:411 msgid "append <mark> on dirty working tree (default: \"-dirty\")" msgstr "若工作区è„(有å˜æ›´ï¼‰åœ¨ç»“å°¾æ·»åŠ <æ ‡è®°>(默认:\"-dirty\")" -#: builtin/describe.c:438 +#: builtin/describe.c:429 msgid "--long is incompatible with --abbrev=0" msgstr "--long 与 --abbrev=0 ä¸å…¼å®¹" -#: builtin/describe.c:464 +#: builtin/describe.c:455 msgid "No names found, cannot describe anything." msgstr "没有å‘现åç§°ï¼Œæ— æ³•æ述任何东西。" -#: builtin/describe.c:484 +#: builtin/describe.c:475 msgid "--dirty is incompatible with commit-ishes" msgstr "--dirty ä¸èƒ½ä¸Žæ交åŒæ—¶ä½¿ç”¨" @@ -4869,46 +4893,54 @@ msgstr "æ供了超过两个数æ®ï¼ˆblob)对象:'%s'" msgid "unhandled object '%s' given." msgstr "æ— æ³•å¤„ç†çš„对象 '%s'。" -#: builtin/fast-export.c:22 +#: builtin/fast-export.c:23 msgid "git fast-export [rev-list-opts]" msgstr "git fast-export [rev-list-opts]" -#: builtin/fast-export.c:673 +#: builtin/fast-export.c:702 msgid "show progress after <n> objects" msgstr "在 <n> 个对象之åŽæ˜¾ç¤ºè¿›åº¦" -#: builtin/fast-export.c:675 +#: builtin/fast-export.c:704 msgid "select handling of signed tags" msgstr "选择如何处ç†ç¾å tags" -#: builtin/fast-export.c:678 +#: builtin/fast-export.c:707 msgid "select handling of tags that tag filtered objects" msgstr "选择当 tag 指å‘被过滤时 tags 的处ç†æ–¹å¼" -#: builtin/fast-export.c:681 +#: builtin/fast-export.c:710 msgid "Dump marks to this file" msgstr "æŠŠæ ‡è®°å˜å‚¨åˆ°è¿™ä¸ªæ–‡ä»¶" -#: builtin/fast-export.c:683 +#: builtin/fast-export.c:712 msgid "Import marks from this file" msgstr "ä»Žè¿™ä¸ªæ–‡ä»¶å¯¼å…¥æ ‡è®°" -#: builtin/fast-export.c:685 +#: builtin/fast-export.c:714 msgid "Fake a tagger when tags lack one" msgstr "当 tags ç¼ºå°‘æ ‡è®°è€…å—段时,å‡è£…æ供一个" -#: builtin/fast-export.c:687 +#: builtin/fast-export.c:716 msgid "Output full tree for each commit" msgstr "æ¯æ¬¡æäº¤éƒ½è¾“å‡ºæ•´ä¸ªæ ‘" -#: builtin/fast-export.c:689 +#: builtin/fast-export.c:718 msgid "Use the done feature to terminate the stream" msgstr "使用 done 功能æ¥ç»ˆæ¢æµ" -#: builtin/fast-export.c:690 +#: builtin/fast-export.c:719 msgid "Skip output of blob data" msgstr "跳过数æ®å¯¹è±¡çš„输出" +#: builtin/fast-export.c:720 +msgid "refspec" +msgstr "引用表达å¼" + +#: builtin/fast-export.c:721 +msgid "Apply refspec to exported refs" +msgstr "对导出的引用应用引用表达å¼" + #: builtin/fetch.c:20 msgid "git fetch [<options>] [<repository> [<refspec>...]]" msgstr "git fetch [<选项>] [<版本库> [<引用规则>...]]" @@ -4925,155 +4957,163 @@ msgstr "git fetch --multiple [<选项>] [(<版本库> | <组>)...]" msgid "git fetch --all [<options>]" msgstr "git fetch --all [<选项>]" -#: builtin/fetch.c:75 +#: builtin/fetch.c:90 msgid "fetch from all remotes" msgstr "从所有的远程抓å–" -#: builtin/fetch.c:77 +#: builtin/fetch.c:92 msgid "append to .git/FETCH_HEAD instead of overwriting" msgstr "è¿½åŠ åˆ° .git/FETCH_HEAD 而ä¸æ˜¯è¦†ç›–它" -#: builtin/fetch.c:79 +#: builtin/fetch.c:94 msgid "path to upload pack on remote end" msgstr "ä¸Šä¼ åŒ…åˆ°è¿œç¨‹çš„è·¯å¾„" -#: builtin/fetch.c:80 +#: builtin/fetch.c:95 msgid "force overwrite of local branch" msgstr "强制覆盖本地分支" -#: builtin/fetch.c:82 +#: builtin/fetch.c:97 msgid "fetch from multiple remotes" msgstr "从多个远程抓å–" -#: builtin/fetch.c:84 +#: builtin/fetch.c:99 msgid "fetch all tags and associated objects" msgstr "抓å–所有的 tags 和关è”对象" -#: builtin/fetch.c:86 +#: builtin/fetch.c:101 msgid "do not fetch all tags (--no-tags)" msgstr "ä¸æŠ“å–任何 tags (--no-tags)" -#: builtin/fetch.c:88 +#: builtin/fetch.c:103 msgid "prune remote-tracking branches no longer on remote" msgstr "清除远程已ç»ä¸å˜åœ¨çš„分支的跟踪分支" # 译者:å¯é€‰å€¼ï¼Œä¸èƒ½ç¿»è¯‘ -#: builtin/fetch.c:89 +#: builtin/fetch.c:104 msgid "on-demand" msgstr "on-demand" -#: builtin/fetch.c:90 +#: builtin/fetch.c:105 msgid "control recursive fetching of submodules" msgstr "控制å模组的递归抓å–" -#: builtin/fetch.c:94 +#: builtin/fetch.c:109 msgid "keep downloaded pack" msgstr "ä¿æŒä¸‹è½½åŒ…" -#: builtin/fetch.c:96 +#: builtin/fetch.c:111 msgid "allow updating of HEAD ref" msgstr "å…许更新 HEAD 引用" -#: builtin/fetch.c:99 +#: builtin/fetch.c:114 msgid "deepen history of shallow clone" msgstr "深化浅克隆的历å²" -#: builtin/fetch.c:101 +#: builtin/fetch.c:116 msgid "convert to a complete repository" msgstr "转æ¢ä¸ºä¸€ä¸ªå®Œæ•´çš„版本库" -#: builtin/fetch.c:103 builtin/log.c:1197 +#: builtin/fetch.c:118 builtin/log.c:1205 msgid "dir" msgstr "目录" -#: builtin/fetch.c:104 +#: builtin/fetch.c:119 msgid "prepend this to submodule path output" msgstr "在å模组路径输出的å‰é¢åŠ 上æ¤ç›®å½•" -#: builtin/fetch.c:107 +#: builtin/fetch.c:122 msgid "default mode for recursion" msgstr "递归的默认模å¼" -#: builtin/fetch.c:109 +#: builtin/fetch.c:124 msgid "accept refs that update .git/shallow" msgstr "接å—æ›´æ–° .git/shallow 的引用" -#: builtin/fetch.c:347 +#: builtin/fetch.c:125 +msgid "refmap" +msgstr "å¼•ç”¨æ˜ å°„" + +#: builtin/fetch.c:126 +msgid "specify fetch refmap" +msgstr "指定获å–æ“ä½œçš„å¼•ç”¨æ˜ å°„" + +#: builtin/fetch.c:376 msgid "Couldn't find remote ref HEAD" msgstr "æ— æ³•å‘现远程 HEAD 引用" -#: builtin/fetch.c:411 +#: builtin/fetch.c:440 #, c-format msgid "object %s not found" msgstr "对象 %s 未å‘现" -#: builtin/fetch.c:416 +#: builtin/fetch.c:445 msgid "[up to date]" msgstr "[最新]" -#: builtin/fetch.c:430 +#: builtin/fetch.c:459 #, c-format msgid "! %-*s %-*s -> %s (can't fetch in current branch)" msgstr "! %-*s %-*s -> %s (在当å‰åˆ†æ”¯ä¸‹ä¸èƒ½èŽ·å–)" -#: builtin/fetch.c:431 builtin/fetch.c:517 +#: builtin/fetch.c:460 builtin/fetch.c:546 msgid "[rejected]" msgstr "[已拒ç»]" -#: builtin/fetch.c:442 +#: builtin/fetch.c:471 msgid "[tag update]" msgstr "[tagæ›´æ–°]" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: builtin/fetch.c:444 builtin/fetch.c:479 builtin/fetch.c:497 +#: builtin/fetch.c:473 builtin/fetch.c:508 builtin/fetch.c:526 msgid " (unable to update local ref)" msgstr " (ä¸èƒ½æ›´æ–°æœ¬åœ°å¼•ç”¨ï¼‰" -#: builtin/fetch.c:462 +#: builtin/fetch.c:491 msgid "[new tag]" msgstr "[æ–°tag]" -#: builtin/fetch.c:465 +#: builtin/fetch.c:494 msgid "[new branch]" msgstr "[新分支]" -#: builtin/fetch.c:468 +#: builtin/fetch.c:497 msgid "[new ref]" msgstr "[新引用]" -#: builtin/fetch.c:513 +#: builtin/fetch.c:542 msgid "unable to update local ref" msgstr "ä¸èƒ½æ›´æ–°æœ¬åœ°å¼•ç”¨" -#: builtin/fetch.c:513 +#: builtin/fetch.c:542 msgid "forced update" msgstr "强制更新" -#: builtin/fetch.c:519 +#: builtin/fetch.c:548 msgid "(non-fast-forward)" msgstr "(éžå¿«è¿›å¼ï¼‰" -#: builtin/fetch.c:552 builtin/fetch.c:785 +#: builtin/fetch.c:581 builtin/fetch.c:814 #, c-format msgid "cannot open %s: %s\n" msgstr "æ— æ³•æ‰“å¼€ %s:%s\n" -#: builtin/fetch.c:561 +#: builtin/fetch.c:590 #, c-format msgid "%s did not send all necessary objects\n" msgstr "%s 未å‘é€æ‰€æœ‰å¿…须的对象\n" -#: builtin/fetch.c:579 +#: builtin/fetch.c:608 #, c-format msgid "reject %s because shallow roots are not allowed to be updated" msgstr "æ‹’ç» %s å› ä¸ºæµ…å…‹éš†ä¸å…许被更新" -#: builtin/fetch.c:667 builtin/fetch.c:750 +#: builtin/fetch.c:696 builtin/fetch.c:779 #, c-format msgid "From %.*s\n" msgstr "æ¥è‡ª %.*s\n" -#: builtin/fetch.c:678 +#: builtin/fetch.c:707 #, c-format msgid "" "some local refs could not be updated; try running\n" @@ -5083,87 +5123,87 @@ msgstr "" " 'git remote prune %s' æ¥åˆ 除旧的ã€æœ‰å†²çªçš„分支" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: builtin/fetch.c:730 +#: builtin/fetch.c:759 #, c-format msgid " (%s will become dangling)" msgstr " (%s å°†æˆä¸ºæ‘‡æ‘†çŠ¶æ€ï¼‰" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: builtin/fetch.c:731 +#: builtin/fetch.c:760 #, c-format msgid " (%s has become dangling)" msgstr " (%s å·²æˆä¸ºæ‘‡æ‘†çŠ¶æ€ï¼‰" -#: builtin/fetch.c:755 +#: builtin/fetch.c:784 msgid "[deleted]" msgstr "[å·²åˆ é™¤]" -#: builtin/fetch.c:756 builtin/remote.c:1050 +#: builtin/fetch.c:785 builtin/remote.c:1059 msgid "(none)" msgstr "ï¼ˆæ— ï¼‰" -#: builtin/fetch.c:775 +#: builtin/fetch.c:804 #, c-format msgid "Refusing to fetch into current branch %s of non-bare repository" msgstr "æ‹’ç»èŽ·å–到éžè£¸ç‰ˆæœ¬åº“的当å‰åˆ†æ”¯ %s" -#: builtin/fetch.c:794 +#: builtin/fetch.c:823 #, c-format msgid "Option \"%s\" value \"%s\" is not valid for %s" msgstr "选项 \"%s\" 的值 \"%s\" 对于 %s æ˜¯æ— æ•ˆçš„" -#: builtin/fetch.c:797 +#: builtin/fetch.c:826 #, c-format msgid "Option \"%s\" is ignored for %s\n" msgstr "选项 \"%s\" 为 %s 所忽略\n" -#: builtin/fetch.c:853 +#: builtin/fetch.c:882 #, c-format msgid "Don't know how to fetch from %s" msgstr "ä¸çŸ¥é“如何从 %s 获å–" -#: builtin/fetch.c:1015 +#: builtin/fetch.c:1044 #, c-format msgid "Fetching %s\n" msgstr "æ£åœ¨èŽ·å– %s\n" -#: builtin/fetch.c:1017 builtin/remote.c:90 +#: builtin/fetch.c:1046 builtin/remote.c:90 #, c-format msgid "Could not fetch %s" msgstr "ä¸èƒ½èŽ·å– %s" -#: builtin/fetch.c:1035 +#: builtin/fetch.c:1064 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:1059 +#: builtin/fetch.c:1087 msgid "You need to specify a tag name." msgstr "您需è¦æŒ‡å®šä¸€ä¸ª tag å称。" -#: builtin/fetch.c:1107 +#: builtin/fetch.c:1131 msgid "--depth and --unshallow cannot be used together" msgstr "--depth å’Œ --unshallow ä¸èƒ½åŒæ—¶ä½¿ç”¨" -#: builtin/fetch.c:1109 +#: builtin/fetch.c:1133 msgid "--unshallow on a complete repository does not make sense" msgstr "对于一个完整的版本库,å‚æ•° --unshallow 没有æ„义" -#: builtin/fetch.c:1132 +#: builtin/fetch.c:1156 msgid "fetch --all does not take a repository argument" msgstr "fetch --all ä¸èƒ½å¸¦ä¸€ä¸ªç‰ˆæœ¬åº“å‚æ•°" -#: builtin/fetch.c:1134 +#: builtin/fetch.c:1158 msgid "fetch --all does not make sense with refspecs" msgstr "fetch --all 带引用规则没有任何æ„义" -#: builtin/fetch.c:1145 +#: builtin/fetch.c:1169 #, c-format msgid "No such remote or remote group: %s" msgstr "æ²¡æœ‰è¿™æ ·çš„è¿œç¨‹æˆ–è¿œç¨‹ç»„ï¼š%s" -#: builtin/fetch.c:1153 +#: builtin/fetch.c:1177 msgid "Fetching a group and specifying refspecs does not make sense" msgstr "获å–组并指定引用规则没有æ„义" @@ -5172,9 +5212,9 @@ msgid "git fmt-merge-msg [-m <message>] [--log[=<n>]|--no-log] [--file <file>]" msgstr "" "git fmt-merge-msg [-m <message>] [--log[=<n>]|--no-log] [--file <file>]" -#: builtin/fmt-merge-msg.c:663 builtin/fmt-merge-msg.c:666 builtin/grep.c:700 -#: builtin/merge.c:196 builtin/repack.c:175 builtin/repack.c:179 -#: builtin/show-branch.c:654 builtin/show-ref.c:178 builtin/tag.c:501 +#: builtin/fmt-merge-msg.c:663 builtin/fmt-merge-msg.c:666 builtin/grep.c:698 +#: builtin/merge.c:196 builtin/repack.c:179 builtin/repack.c:183 +#: builtin/show-branch.c:654 builtin/show-ref.c:178 builtin/tag.c:589 #: parse-options.h:132 parse-options.h:239 msgid "n" msgstr "n" @@ -5199,43 +5239,43 @@ msgstr "使用 <文本> 作为æ交说明的开始" msgid "file to read from" msgstr "从文件ä¸è¯»å–" -#: builtin/for-each-ref.c:1063 +#: builtin/for-each-ref.c:1051 msgid "git for-each-ref [options] [<pattern>]" msgstr "git for-each-ref [选项] [<模å¼>]" -#: builtin/for-each-ref.c:1078 +#: builtin/for-each-ref.c:1066 msgid "quote placeholders suitably for shells" msgstr "引用å ä½ç¬¦é€‚用于 shells" -#: builtin/for-each-ref.c:1080 +#: builtin/for-each-ref.c:1068 msgid "quote placeholders suitably for perl" msgstr "引用å ä½ç¬¦é€‚用于 perl" -#: builtin/for-each-ref.c:1082 +#: builtin/for-each-ref.c:1070 msgid "quote placeholders suitably for python" msgstr "引用å ä½ç¬¦é€‚用于 python" -#: builtin/for-each-ref.c:1084 +#: builtin/for-each-ref.c:1072 msgid "quote placeholders suitably for tcl" msgstr "引用å ä½ç¬¦é€‚用于 tcl" -#: builtin/for-each-ref.c:1087 +#: builtin/for-each-ref.c:1075 msgid "show only <n> matched refs" msgstr "åªæ˜¾ç¤º <n> 个匹é…的引用" -#: builtin/for-each-ref.c:1088 builtin/replace.c:177 +#: builtin/for-each-ref.c:1076 builtin/replace.c:435 msgid "format" msgstr "æ ¼å¼" -#: builtin/for-each-ref.c:1088 +#: builtin/for-each-ref.c:1076 msgid "format to use for the output" msgstr "è¾“å‡ºæ ¼å¼" -#: builtin/for-each-ref.c:1089 +#: builtin/for-each-ref.c:1077 msgid "key" msgstr "key" -#: builtin/for-each-ref.c:1090 +#: builtin/for-each-ref.c:1078 msgid "field name to sort on" msgstr "排åºçš„å—段å" @@ -5243,55 +5283,55 @@ msgstr "排åºçš„å—段å" msgid "Checking connectivity" msgstr "检查连接ä¸" -#: builtin/fsck.c:544 +#: builtin/fsck.c:538 msgid "Checking object directories" msgstr "检查对象目录ä¸" -#: builtin/fsck.c:607 +#: builtin/fsck.c:601 msgid "git fsck [options] [<object>...]" msgstr "git fsck [选项] [<对象>...]" -#: builtin/fsck.c:613 +#: builtin/fsck.c:607 msgid "show unreachable objects" msgstr "显示ä¸å¯è¾¾çš„对象" -#: builtin/fsck.c:614 +#: builtin/fsck.c:608 msgid "show dangling objects" msgstr "显示摇摆的对象" -#: builtin/fsck.c:615 +#: builtin/fsck.c:609 msgid "report tags" msgstr "报告 tags" -#: builtin/fsck.c:616 +#: builtin/fsck.c:610 msgid "report root nodes" msgstr "æŠ¥å‘Šæ ¹èŠ‚ç‚¹" -#: builtin/fsck.c:617 +#: builtin/fsck.c:611 msgid "make index objects head nodes" msgstr "将索引亦作为检查的头节点" -#: builtin/fsck.c:618 +#: builtin/fsck.c:612 msgid "make reflogs head nodes (default)" msgstr "将引用日志作为检查的头节点(默认)" -#: builtin/fsck.c:619 +#: builtin/fsck.c:613 msgid "also consider packs and alternate objects" msgstr "也考虑包和备用对象" -#: builtin/fsck.c:620 +#: builtin/fsck.c:614 msgid "enable more strict checking" msgstr "å¯ç”¨æ›´ä¸¥æ ¼çš„检查" -#: builtin/fsck.c:622 +#: builtin/fsck.c:616 msgid "write dangling objects in .git/lost-found" msgstr "将摇摆对象写入 .git/lost-found ä¸" -#: builtin/fsck.c:623 builtin/prune.c:144 +#: builtin/fsck.c:617 builtin/prune.c:144 msgid "show progress" msgstr "显示进度" -#: builtin/fsck.c:673 +#: builtin/fsck.c:667 msgid "Checking objects" msgstr "检查对象ä¸" @@ -5299,55 +5339,55 @@ msgstr "检查对象ä¸" msgid "git gc [options]" msgstr "git gc [选项]" -#: builtin/gc.c:90 +#: builtin/gc.c:91 #, c-format msgid "Invalid %s: '%s'" msgstr "æ— æ•ˆçš„ %s:'%s'" -#: builtin/gc.c:117 +#: builtin/gc.c:118 #, c-format msgid "insanely long object directory %.*s" msgstr "ä¸æ£å¸¸çš„长对象目录 %.*s" -#: builtin/gc.c:273 +#: builtin/gc.c:287 msgid "prune unreferenced objects" msgstr "清除未引用的对象" -#: builtin/gc.c:275 +#: builtin/gc.c:289 msgid "be more thorough (increased runtime)" msgstr "æ›´å½»åº•ï¼ˆå¢žåŠ è¿è¡Œæ—¶é—´ï¼‰" -#: builtin/gc.c:276 +#: builtin/gc.c:290 msgid "enable auto-gc mode" msgstr "å¯ç”¨è‡ªåŠ¨åžƒåœ¾å›žæ”¶æ¨¡å¼" -#: builtin/gc.c:277 +#: builtin/gc.c:291 msgid "force running gc even if there may be another gc running" msgstr "强制执行 gc å³ä½¿å¦å¤–一个 gc æ£åœ¨æ‰§è¡Œ" -#: builtin/gc.c:318 +#: builtin/gc.c:332 #, c-format msgid "Auto packing the repository in background for optimum performance.\n" msgstr "自动在åŽå°æ‰§è¡Œç‰ˆæœ¬åº“打包以求最佳性能。\n" -#: builtin/gc.c:320 +#: builtin/gc.c:334 #, c-format msgid "Auto packing the repository for optimum performance.\n" msgstr "自动打包版本库以求最佳性能。\n" -#: builtin/gc.c:321 +#: builtin/gc.c:335 #, c-format msgid "See \"git help gc\" for manual housekeeping.\n" msgstr "手工维护å‚è§ \"git help gc\"。\n" -#: builtin/gc.c:336 +#: builtin/gc.c:353 #, c-format msgid "" "gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)" msgstr "" "å·²ç»æœ‰ä¸€ä¸ª gc æ£è¿è¡Œåœ¨æœºå™¨ '%s' pid %<PRIuMAX> (如果ä¸æ˜¯ï¼Œä½¿ç”¨ --force)" -#: builtin/gc.c:361 +#: builtin/gc.c:375 msgid "" "There are too many unreachable loose objects; run 'git prune' to remove them." msgstr "有太多ä¸å¯è¾¾çš„æ¾æ•£å¯¹è±¡ï¼Œè¿è¡Œ 'git prune' åˆ é™¤å®ƒä»¬ã€‚" @@ -5361,225 +5401,220 @@ msgstr "git grep [选项] [-e] <模å¼> [<修订>...] [[--] <路径>...]" msgid "grep: failed to create thread: %s" msgstr "grepï¼šæ— æ³•åˆ›å»ºçº¿ç¨‹ï¼š%s" -#: builtin/grep.c:365 -#, c-format -msgid "Failed to chdir: %s" -msgstr "æ— æ³•åˆ‡æ¢ç›®å½•ï¼š%s" - -#: builtin/grep.c:443 builtin/grep.c:478 +#: builtin/grep.c:441 builtin/grep.c:476 #, c-format msgid "unable to read tree (%s)" msgstr "æ— æ³•è¯»å–æ ‘ï¼ˆ%s)" -#: builtin/grep.c:493 +#: builtin/grep.c:491 #, c-format msgid "unable to grep from object of type %s" msgstr "æ— æ³•æŠ“å–æ¥è‡ªäºŽ %s 类型的对象" -#: builtin/grep.c:549 +#: builtin/grep.c:547 #, c-format msgid "switch `%c' expects a numerical value" msgstr "开关 `%c' 期望一个数å—值" -#: builtin/grep.c:566 +#: builtin/grep.c:564 #, c-format msgid "cannot open '%s'" msgstr "ä¸èƒ½æ‰“å¼€ '%s'" -#: builtin/grep.c:640 +#: builtin/grep.c:638 msgid "search in index instead of in the work tree" msgstr "在索引区æœç´¢è€Œä¸æ˜¯åœ¨å·¥ä½œåŒº" -#: builtin/grep.c:642 +#: builtin/grep.c:640 msgid "find in contents not managed by git" msgstr "在未被 git 管ç†çš„内容ä¸æŸ¥æ‰¾" # 译者:ä¸æ–‡å—符串拼接,å¯åˆ 除å‰å¯¼ç©ºæ ¼ -#: builtin/grep.c:644 +#: builtin/grep.c:642 msgid "search in both tracked and untracked files" msgstr "在跟踪和未跟踪的文件ä¸æœç´¢" -#: builtin/grep.c:646 +#: builtin/grep.c:644 msgid "search also in ignored files" msgstr "也在忽略的文件ä¸æœç´¢" -#: builtin/grep.c:649 +#: builtin/grep.c:647 msgid "show non-matching lines" msgstr "显示未匹é…çš„è¡Œ" -#: builtin/grep.c:651 +#: builtin/grep.c:649 msgid "case insensitive matching" msgstr "ä¸åŒºåˆ†å¤§å°å†™åŒ¹é…" -#: builtin/grep.c:653 +#: builtin/grep.c:651 msgid "match patterns only at word boundaries" msgstr "åªåœ¨å•è¯è¾¹ç•ŒåŒ¹é…模å¼" -#: builtin/grep.c:655 +#: builtin/grep.c:653 msgid "process binary files as text" msgstr "把二进制文件当åšæ–‡æœ¬å¤„ç†" -#: builtin/grep.c:657 +#: builtin/grep.c:655 msgid "don't match patterns in binary files" msgstr "ä¸åœ¨äºŒè¿›åˆ¶æ–‡ä»¶ä¸åŒ¹é…模å¼" -#: builtin/grep.c:660 +#: builtin/grep.c:658 msgid "process binary files with textconv filters" msgstr "用 textconv 过滤器处ç†äºŒè¿›åˆ¶æ–‡ä»¶" -#: builtin/grep.c:662 +#: builtin/grep.c:660 msgid "descend at most <depth> levels" msgstr "最多以指定的深度å‘下寻找" -#: builtin/grep.c:666 +#: builtin/grep.c:664 msgid "use extended POSIX regular expressions" msgstr "使用扩展的 POSIX æ£åˆ™è¡¨è¾¾å¼" -#: builtin/grep.c:669 +#: builtin/grep.c:667 msgid "use basic POSIX regular expressions (default)" msgstr "使用基本的 POSIX æ£åˆ™è¡¨è¾¾å¼ï¼ˆé»˜è®¤ï¼‰" -#: builtin/grep.c:672 +#: builtin/grep.c:670 msgid "interpret patterns as fixed strings" msgstr "把模å¼è§£æžä¸ºå›ºå®šçš„å—符串" -#: builtin/grep.c:675 +#: builtin/grep.c:673 msgid "use Perl-compatible regular expressions" msgstr "使用 Perl 兼容的æ£åˆ™è¡¨è¾¾å¼" -#: builtin/grep.c:678 +#: builtin/grep.c:676 msgid "show line numbers" msgstr "显示行å·" -#: builtin/grep.c:679 +#: builtin/grep.c:677 msgid "don't show filenames" msgstr "ä¸æ˜¾ç¤ºæ–‡ä»¶å" -#: builtin/grep.c:680 +#: builtin/grep.c:678 msgid "show filenames" msgstr "显示文件å" -#: builtin/grep.c:682 +#: builtin/grep.c:680 msgid "show filenames relative to top directory" msgstr "显示相对于顶级目录的文件å" -#: builtin/grep.c:684 +#: builtin/grep.c:682 msgid "show only filenames instead of matching lines" msgstr "åªæ˜¾ç¤ºæ–‡ä»¶å而ä¸æ˜¾ç¤ºåŒ¹é…çš„è¡Œ" -#: builtin/grep.c:686 +#: builtin/grep.c:684 msgid "synonym for --files-with-matches" msgstr "å’Œ --files-with-matches åŒä¹‰" -#: builtin/grep.c:689 +#: builtin/grep.c:687 msgid "show only the names of files without match" msgstr "åªæ˜¾ç¤ºæœªåŒ¹é…的文件å" -#: builtin/grep.c:691 +#: builtin/grep.c:689 msgid "print NUL after filenames" msgstr "在文件ååŽè¾“出 NUL å—符" -#: builtin/grep.c:693 +#: builtin/grep.c:691 msgid "show the number of matches instead of matching lines" msgstr "显示总匹é…行数,而ä¸æ˜¾ç¤ºåŒ¹é…çš„è¡Œ" -#: builtin/grep.c:694 +#: builtin/grep.c:692 msgid "highlight matches" msgstr "高亮显示匹é…项" -#: builtin/grep.c:696 +#: builtin/grep.c:694 msgid "print empty line between matches from different files" msgstr "在ä¸åŒæ–‡ä»¶çš„匹é…项之间打å°ç©ºè¡Œ" -#: builtin/grep.c:698 +#: builtin/grep.c:696 msgid "show filename only once above matches from same file" msgstr "åªåœ¨åŒä¸€æ–‡ä»¶çš„匹é…项的上é¢æ˜¾ç¤ºä¸€æ¬¡æ–‡ä»¶å" -#: builtin/grep.c:701 +#: builtin/grep.c:699 msgid "show <n> context lines before and after matches" msgstr "显示匹é…项å‰åŽçš„ <n> 行上下文" -#: builtin/grep.c:704 +#: builtin/grep.c:702 msgid "show <n> context lines before matches" msgstr "显示匹é…é¡¹å‰ <n> 行上下文" -#: builtin/grep.c:706 +#: builtin/grep.c:704 msgid "show <n> context lines after matches" msgstr "显示匹é…é¡¹åŽ <n> 行上下文" -#: builtin/grep.c:707 +#: builtin/grep.c:705 msgid "shortcut for -C NUM" msgstr "å¿«æ·é”® -C æ•°å—" -#: builtin/grep.c:710 +#: builtin/grep.c:708 msgid "show a line with the function name before matches" msgstr "在匹é…çš„å‰é¢æ˜¾ç¤ºä¸€è¡Œå‡½æ•°å" -#: builtin/grep.c:712 +#: builtin/grep.c:710 msgid "show the surrounding function" msgstr "显示所在函数的å‰åŽå†…容" -#: builtin/grep.c:715 +#: builtin/grep.c:713 msgid "read patterns from file" msgstr "从文件读å–模å¼" -#: builtin/grep.c:717 +#: builtin/grep.c:715 msgid "match <pattern>" msgstr "åŒ¹é… <模å¼>" -#: builtin/grep.c:719 +#: builtin/grep.c:717 msgid "combine patterns specified with -e" msgstr "组åˆç”¨ -e å‚数设定的模å¼" -#: builtin/grep.c:731 +#: builtin/grep.c:729 msgid "indicate hit with exit status without output" msgstr "ä¸è¾“出,而用退出ç æ ‡è¯†å‘½ä¸çŠ¶æ€" -#: builtin/grep.c:733 +#: builtin/grep.c:731 msgid "show only matches from files that match all patterns" msgstr "åªæ˜¾ç¤ºåŒ¹é…所有模å¼çš„文件ä¸çš„匹é…" -#: builtin/grep.c:735 +#: builtin/grep.c:733 msgid "show parse tree for grep expression" msgstr "显示 grep 表达å¼çš„解æžæ ‘" -#: builtin/grep.c:739 +#: builtin/grep.c:737 msgid "pager" msgstr "分页" -#: builtin/grep.c:739 +#: builtin/grep.c:737 msgid "show matching files in the pager" msgstr "分页显示匹é…的文件" -#: builtin/grep.c:742 +#: builtin/grep.c:740 msgid "allow calling of grep(1) (ignored by this build)" msgstr "å…许调用 grep(1)(本次构建忽略)" -#: builtin/grep.c:743 builtin/show-ref.c:187 +#: builtin/grep.c:741 builtin/show-ref.c:187 msgid "show usage" msgstr "显示用法" -#: builtin/grep.c:810 +#: builtin/grep.c:808 msgid "no pattern given." msgstr "未æ供模å¼åŒ¹é…。" -#: builtin/grep.c:868 +#: builtin/grep.c:866 msgid "--open-files-in-pager only works on the worktree" msgstr "--open-files-in-pager 仅用于工作区" -#: builtin/grep.c:891 +#: builtin/grep.c:892 msgid "--cached or --untracked cannot be used with --no-index." msgstr "--cached 或 --untracked ä¸èƒ½ä¸Ž --no-index åŒæ—¶ä½¿ç”¨ã€‚" -#: builtin/grep.c:896 +#: builtin/grep.c:897 msgid "--no-index or --untracked cannot be used with revs." msgstr "--no-index 或 --untracked ä¸èƒ½å’Œç‰ˆæœ¬åŒæ—¶ä½¿ç”¨ã€‚" -#: builtin/grep.c:899 +#: builtin/grep.c:900 msgid "--[no-]exclude-standard cannot be used for tracked contents." msgstr "--[no-]exclude-standard ä¸èƒ½ç”¨äºŽå·²è·Ÿè¸ªå†…容。" -#: builtin/grep.c:907 +#: builtin/grep.c:908 msgid "both --cached and trees are given." msgstr "åŒæ—¶ç»™å‡ºäº† --cached å’Œæ ‘å¯¹è±¡ã€‚" @@ -5595,7 +5630,7 @@ msgstr "" msgid "git hash-object --stdin-paths < <list-of-paths>" msgstr "git hash-object --stdin-paths < <路径列表>" -#: builtin/hash-object.c:72 builtin/tag.c:521 +#: builtin/hash-object.c:72 builtin/tag.c:609 msgid "type" msgstr "类型" @@ -5739,280 +5774,291 @@ msgstr "用法:%s%s" msgid "`git %s' is aliased to `%s'" msgstr "`git %s' 是 `%s' 的别å" -#: builtin/index-pack.c:184 +#: builtin/index-pack.c:145 +#, c-format +msgid "unable to open %s" +msgstr "ä¸èƒ½æ‰“å¼€ %s" + +#: builtin/index-pack.c:191 #, c-format msgid "object type mismatch at %s" msgstr "%s 的对象类型ä¸åŒ¹é…" -#: builtin/index-pack.c:204 -msgid "object of unexpected type" -msgstr "æ„外的类型的对象" +#: builtin/index-pack.c:211 +#, c-format +msgid "did not receive expected object %s" +msgstr "未能获å–期望的对象 %s" -#: builtin/index-pack.c:244 +#: builtin/index-pack.c:214 +#, c-format +msgid "object %s: expected type %s, found %s" +msgstr "对象 %s:期待类型 %s,å´æ˜¯ %s" + +#: builtin/index-pack.c:256 #, c-format msgid "cannot fill %d byte" msgid_plural "cannot fill %d bytes" msgstr[0] "æ— æ³•å¡«å…… %d å—节" msgstr[1] "æ— æ³•å¡«å…… %d å—节" -#: builtin/index-pack.c:254 +#: builtin/index-pack.c:266 msgid "early EOF" msgstr "过早的文件结æŸç¬¦ï¼ˆEOF)" -#: builtin/index-pack.c:255 +#: builtin/index-pack.c:267 msgid "read error on input" msgstr "输入上的读错误" -#: builtin/index-pack.c:267 +#: builtin/index-pack.c:279 msgid "used more bytes than were available" msgstr "用掉了超过å¯ç”¨çš„å—节" -#: builtin/index-pack.c:274 +#: builtin/index-pack.c:286 msgid "pack too large for current definition of off_t" msgstr "åŒ…å¤ªå¤§è¶…è¿‡äº†å½“å‰ off_t 的定义" -#: builtin/index-pack.c:290 +#: builtin/index-pack.c:302 #, c-format msgid "unable to create '%s'" msgstr "ä¸èƒ½åˆ›å»º '%s'" -#: builtin/index-pack.c:295 +#: builtin/index-pack.c:307 #, c-format msgid "cannot open packfile '%s'" msgstr "æ— æ³•æ‰“å¼€åŒ…æ–‡ä»¶ '%s'" -#: builtin/index-pack.c:309 +#: builtin/index-pack.c:321 msgid "pack signature mismatch" msgstr "包ç¾åä¸åŒ¹é…" -#: builtin/index-pack.c:311 +#: builtin/index-pack.c:323 #, c-format msgid "pack version %<PRIu32> unsupported" msgstr "ä¸æ”¯æŒåŒ…版本 %<PRIu32>" -#: builtin/index-pack.c:329 +#: builtin/index-pack.c:341 #, c-format msgid "pack has bad object at offset %lu: %s" msgstr "包ä¸æœ‰é”™è¯¯çš„对象ä½äºŽ %lu:%s" -#: builtin/index-pack.c:451 +#: builtin/index-pack.c:462 #, c-format msgid "inflate returned %d" msgstr "解压缩返回 %d" -#: builtin/index-pack.c:500 +#: builtin/index-pack.c:511 msgid "offset value overflow for delta base object" msgstr "å移值覆盖了 delta 基准对象" -#: builtin/index-pack.c:508 +#: builtin/index-pack.c:519 msgid "delta base offset is out of bound" msgstr "delta 基准å移越界" -#: builtin/index-pack.c:516 +#: builtin/index-pack.c:527 #, c-format msgid "unknown object type %d" msgstr "未知对象类型 %d" -#: builtin/index-pack.c:547 +#: builtin/index-pack.c:558 msgid "cannot pread pack file" msgstr "æ— æ³•è¯»å–包文件" -#: builtin/index-pack.c:549 +#: builtin/index-pack.c:560 #, c-format msgid "premature end of pack file, %lu byte missing" msgid_plural "premature end of pack file, %lu bytes missing" msgstr[0] "包文件过早结æŸï¼Œç¼ºå°‘ %lu å—节" msgstr[1] "包文件过早结æŸï¼Œç¼ºå°‘ %lu å—节" -#: builtin/index-pack.c:575 +#: builtin/index-pack.c:586 msgid "serious inflate inconsistency" msgstr "解压缩严é‡çš„ä¸ä¸€è‡´" -#: builtin/index-pack.c:666 builtin/index-pack.c:672 builtin/index-pack.c:695 -#: builtin/index-pack.c:729 builtin/index-pack.c:738 +#: builtin/index-pack.c:677 builtin/index-pack.c:683 builtin/index-pack.c:706 +#: builtin/index-pack.c:740 builtin/index-pack.c:749 #, c-format msgid "SHA1 COLLISION FOUND WITH %s !" msgstr "å‘现 %s 出现 SHA1 冲çªï¼" -#: builtin/index-pack.c:669 builtin/pack-objects.c:162 +#: builtin/index-pack.c:680 builtin/pack-objects.c:162 #: builtin/pack-objects.c:254 #, c-format msgid "unable to read %s" msgstr "ä¸èƒ½è¯» %s" -#: builtin/index-pack.c:735 +#: builtin/index-pack.c:746 #, c-format msgid "cannot read existing object %s" msgstr "ä¸èƒ½è¯»å–现å˜å¯¹è±¡ %s" -#: builtin/index-pack.c:749 +#: builtin/index-pack.c:760 #, c-format msgid "invalid blob object %s" msgstr "æ— æ•ˆçš„æ•°æ®ï¼ˆblob)对象 %s" -#: builtin/index-pack.c:763 +#: builtin/index-pack.c:774 #, c-format msgid "invalid %s" msgstr "æ— æ•ˆçš„ %s" -#: builtin/index-pack.c:766 +#: builtin/index-pack.c:777 msgid "Error in object" msgstr "对象ä¸å‡ºé”™" -#: builtin/index-pack.c:768 +#: builtin/index-pack.c:779 #, c-format msgid "Not all child objects of %s are reachable" msgstr "%s 的所有å对象并éžéƒ½å¯è¾¾" -#: builtin/index-pack.c:839 builtin/index-pack.c:869 +#: builtin/index-pack.c:851 builtin/index-pack.c:881 msgid "failed to apply delta" msgstr "æ— æ³•åº”ç”¨ delta" -#: builtin/index-pack.c:1010 +#: builtin/index-pack.c:1022 msgid "Receiving objects" msgstr "接收对象ä¸" -#: builtin/index-pack.c:1010 +#: builtin/index-pack.c:1022 msgid "Indexing objects" msgstr "索引对象ä¸" -#: builtin/index-pack.c:1036 +#: builtin/index-pack.c:1048 msgid "pack is corrupted (SHA1 mismatch)" msgstr "包冲çªï¼ˆSHA1 ä¸åŒ¹é…)" -#: builtin/index-pack.c:1041 +#: builtin/index-pack.c:1053 msgid "cannot fstat packfile" msgstr "ä¸èƒ½æžšä¸¾åŒ…文件状æ€" -#: builtin/index-pack.c:1044 +#: builtin/index-pack.c:1056 msgid "pack has junk at the end" msgstr "包的结尾有垃圾数æ®" -#: builtin/index-pack.c:1055 +#: builtin/index-pack.c:1067 msgid "confusion beyond insanity in parse_pack_objects()" msgstr "parse_pack_objects() ä¸é‡åˆ°ä¸å¯ç†å–»çš„问题" -#: builtin/index-pack.c:1078 +#: builtin/index-pack.c:1090 msgid "Resolving deltas" msgstr "å¤„ç† delta ä¸" -#: builtin/index-pack.c:1088 +#: builtin/index-pack.c:1100 #, c-format msgid "unable to create thread: %s" msgstr "ä¸èƒ½åˆ›å»ºçº¿ç¨‹ï¼š%s" -#: builtin/index-pack.c:1130 +#: builtin/index-pack.c:1142 msgid "confusion beyond insanity" msgstr "ä¸å¯ç†å–»" -#: builtin/index-pack.c:1138 +#: builtin/index-pack.c:1150 #, c-format msgid "completed with %d local objects" msgstr "å®Œæˆ %d 个本地对象" -#: builtin/index-pack.c:1148 +#: builtin/index-pack.c:1160 #, c-format msgid "Unexpected tail checksum for %s (disk corruption?)" msgstr "对 %s çš„å°¾éƒ¨æ ¡éªŒå‡ºçŽ°æ„外(ç£ç›˜æŸå?)" -#: builtin/index-pack.c:1152 +#: builtin/index-pack.c:1164 #, c-format msgid "pack has %d unresolved delta" msgid_plural "pack has %d unresolved deltas" msgstr[0] "包有 %d 个未解决的 delta" msgstr[1] "包有 %d 个未解决的 delta" -#: builtin/index-pack.c:1177 +#: builtin/index-pack.c:1189 #, c-format msgid "unable to deflate appended object (%d)" msgstr "ä¸èƒ½åŽ‹ç¼©é™„åŠ å¯¹è±¡ï¼ˆ%d)" -#: builtin/index-pack.c:1256 +#: builtin/index-pack.c:1268 #, c-format msgid "local object %s is corrupt" msgstr "本地对象 %s å·²æŸå" -#: builtin/index-pack.c:1280 +#: builtin/index-pack.c:1292 msgid "error while closing pack file" msgstr "å…³é—包文件时出错" -#: builtin/index-pack.c:1293 +#: builtin/index-pack.c:1305 #, c-format msgid "cannot write keep file '%s'" msgstr "æ— æ³•å†™ä¿ç•™æ–‡ä»¶ '%s'" -#: builtin/index-pack.c:1301 +#: builtin/index-pack.c:1313 #, c-format msgid "cannot close written keep file '%s'" msgstr "æ— æ³•å…³é—ä¿ç•™æ–‡ä»¶ '%s'" -#: builtin/index-pack.c:1314 +#: builtin/index-pack.c:1326 msgid "cannot store pack file" msgstr "æ— æ³•å˜å‚¨åŒ…文件" -#: builtin/index-pack.c:1325 +#: builtin/index-pack.c:1337 msgid "cannot store index file" msgstr "æ— æ³•å˜å‚¨ç´¢å¼•æ–‡ä»¶" -#: builtin/index-pack.c:1358 +#: builtin/index-pack.c:1370 #, c-format msgid "bad pack.indexversion=%<PRIu32>" msgstr "åçš„ pack.indexversion=%<PRIu32>" -#: builtin/index-pack.c:1364 +#: builtin/index-pack.c:1376 #, c-format msgid "invalid number of threads specified (%d)" msgstr "æŒ‡å®šçš„çº¿ç¨‹æ•°æ— æ•ˆï¼ˆ%d)" -#: builtin/index-pack.c:1368 builtin/index-pack.c:1546 +#: builtin/index-pack.c:1380 builtin/index-pack.c:1559 #, c-format msgid "no threads support, ignoring %s" msgstr "没有线程支æŒï¼Œå¿½ç•¥ %s" -#: builtin/index-pack.c:1426 +#: builtin/index-pack.c:1438 #, c-format msgid "Cannot open existing pack file '%s'" msgstr "æ— æ³•æ‰“å¼€çŽ°å˜åŒ…文件 '%s'" -#: builtin/index-pack.c:1428 +#: builtin/index-pack.c:1440 #, c-format msgid "Cannot open existing pack idx file for '%s'" msgstr "æ— æ³•ä¸º %s 打开包索引文件" -#: builtin/index-pack.c:1475 +#: builtin/index-pack.c:1487 #, 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:1482 +#: builtin/index-pack.c:1494 #, 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:1510 +#: builtin/index-pack.c:1523 msgid "Cannot come back to cwd" msgstr "æ— æ³•è¿”å›žå½“å‰å·¥ä½œç›®å½•" -#: builtin/index-pack.c:1558 builtin/index-pack.c:1561 -#: builtin/index-pack.c:1573 builtin/index-pack.c:1577 +#: builtin/index-pack.c:1571 builtin/index-pack.c:1574 +#: builtin/index-pack.c:1586 builtin/index-pack.c:1590 #, c-format msgid "bad %s" msgstr "错误选项 %s" -#: builtin/index-pack.c:1591 +#: builtin/index-pack.c:1604 msgid "--fix-thin cannot be used without --stdin" msgstr "--fix-thin ä¸èƒ½å’Œ --stdin åŒæ—¶ä½¿ç”¨" -#: builtin/index-pack.c:1595 builtin/index-pack.c:1605 +#: builtin/index-pack.c:1608 builtin/index-pack.c:1617 #, c-format msgid "packfile name '%s' does not end with '.pack'" msgstr "包å '%s' 没有以 '.pack' 结尾" -#: builtin/index-pack.c:1614 +#: builtin/index-pack.c:1625 msgid "--verify with no packfile name given" msgstr "--verify 没有æ供包åå‚æ•°" @@ -6142,7 +6188,7 @@ msgstr "æƒé™" msgid "specify that the git repository is to be shared amongst several users" msgstr "指定 git 版本库是多个用户之间共享的" -#: builtin/init-db.c:491 builtin/prune-packed.c:79 builtin/repack.c:168 +#: builtin/init-db.c:491 builtin/prune-packed.c:79 builtin/repack.c:172 msgid "be quiet" msgstr "ä¿æŒå®‰é™" @@ -6182,38 +6228,38 @@ msgstr "git log [<选项>] [<版本范围>] [[--] <路径>...]\n" msgid " or: git show [options] <object>..." msgstr " 或者:git show [选项] <对象>..." -#: builtin/log.c:125 +#: builtin/log.c:127 msgid "suppress diff output" msgstr "ä¸æ˜¾ç¤ºå·®å¼‚输出" -#: builtin/log.c:126 +#: builtin/log.c:128 msgid "show source" msgstr "显示æº" -#: builtin/log.c:127 +#: builtin/log.c:129 msgid "Use mail map file" msgstr "ä½¿ç”¨é‚®ä»¶æ˜ å°„æ–‡ä»¶" -#: builtin/log.c:128 +#: builtin/log.c:130 msgid "decorate options" msgstr "修饰选项" -#: builtin/log.c:231 +#: builtin/log.c:229 #, c-format msgid "Final output: %d %s\n" msgstr "最终输出:%d %s\n" -#: builtin/log.c:473 builtin/log.c:565 +#: builtin/log.c:470 builtin/log.c:562 #, c-format msgid "Could not read object %s" msgstr "ä¸èƒ½è¯»å–对象 %s" -#: builtin/log.c:589 +#: builtin/log.c:586 #, c-format msgid "Unknown type: %d" msgstr "未知类型:%d" -#: builtin/log.c:689 +#: builtin/log.c:687 msgid "format.headers without value" msgstr "format.headers 没有值" @@ -6234,200 +6280,209 @@ msgstr "åªéœ€è¦ä¸€ä¸ªèŒƒå›´ã€‚" msgid "Not a range." msgstr "ä¸æ˜¯ä¸€ä¸ªèŒƒå›´ã€‚" -#: builtin/log.c:911 +#: builtin/log.c:916 msgid "Cover letter needs email format" msgstr "ä¿¡å°éœ€è¦é‚®ä»¶åœ°å€æ ¼å¼" -#: builtin/log.c:987 +#: builtin/log.c:995 #, c-format msgid "insane in-reply-to: %s" msgstr "ä¸æ£å¸¸çš„ in-reply-to:%s" -#: builtin/log.c:1015 +#: builtin/log.c:1023 msgid "git format-patch [options] [<since> | <revision range>]" msgstr "git format-patch [选项] [<从> | <修订集范围>]" -#: builtin/log.c:1060 +#: builtin/log.c:1068 msgid "Two output directories?" msgstr "两个输出目录?" -#: builtin/log.c:1175 +#: builtin/log.c:1183 msgid "use [PATCH n/m] even with a single patch" msgstr "使用 [PATCH n/m],å³ä½¿åªæœ‰ä¸€ä¸ªè¡¥ä¸" -#: builtin/log.c:1178 +#: builtin/log.c:1186 msgid "use [PATCH] even with multiple patches" msgstr "使用 [PATCH],å³ä½¿æœ‰å¤šä¸ªè¡¥ä¸" -#: builtin/log.c:1182 +#: builtin/log.c:1190 msgid "print patches to standard out" msgstr "打å°è¡¥ä¸åˆ°æ ‡å‡†è¾“出" -#: builtin/log.c:1184 +#: builtin/log.c:1192 msgid "generate a cover letter" msgstr "生æˆä¸€å°é™„ä¿¡" -#: builtin/log.c:1186 +#: builtin/log.c:1194 msgid "use simple number sequence for output file names" msgstr "使用简å•çš„æ•°å—åºåˆ—作为输出文件å" -#: builtin/log.c:1187 +#: builtin/log.c:1195 msgid "sfx" msgstr "åŽç¼€" -#: builtin/log.c:1188 +#: builtin/log.c:1196 msgid "use <sfx> instead of '.patch'" msgstr "使用 <åŽç¼€> 代替 '.patch'" -#: builtin/log.c:1190 +#: builtin/log.c:1198 msgid "start numbering patches at <n> instead of 1" msgstr "è¡¥ä¸ä»¥ <n> 开始编å·ï¼Œè€Œä¸æ˜¯1" -#: builtin/log.c:1192 +#: builtin/log.c:1200 msgid "mark the series as Nth re-roll" msgstr "æ ‡è®°è¡¥ä¸ç³»åˆ—æ˜¯ç¬¬å‡ æ¬¡é‡åˆ¶" -#: builtin/log.c:1194 +#: builtin/log.c:1202 msgid "Use [<prefix>] instead of [PATCH]" msgstr "使用 [<å‰ç¼€>] 代替 [PATCH]" -#: builtin/log.c:1197 +#: builtin/log.c:1205 msgid "store resulting files in <dir>" msgstr "把结果文件å˜å‚¨åœ¨ <dir>" -#: builtin/log.c:1200 +#: builtin/log.c:1208 msgid "don't strip/add [PATCH]" msgstr "ä¸åˆ 除/æ·»åŠ [PATCH]" -#: builtin/log.c:1203 +#: builtin/log.c:1211 msgid "don't output binary diffs" msgstr "ä¸è¾“出二进制差异" -#: builtin/log.c:1205 +#: builtin/log.c:1213 msgid "don't include a patch matching a commit upstream" msgstr "ä¸åŒ…å«å·²åœ¨ä¸Šæ¸¸æ交ä¸çš„è¡¥ä¸" -#: builtin/log.c:1207 +#: builtin/log.c:1215 msgid "show patch format instead of default (patch + stat)" msgstr "显示纯补ä¸æ ¼å¼è€Œéžé»˜è®¤çš„(补ä¸+状æ€ï¼‰" -#: builtin/log.c:1209 +#: builtin/log.c:1217 msgid "Messaging" msgstr "邮件å‘é€" -#: builtin/log.c:1210 +#: builtin/log.c:1218 msgid "header" msgstr "header" -#: builtin/log.c:1211 +#: builtin/log.c:1219 msgid "add email header" msgstr "æ·»åŠ é‚®ä»¶å¤´" -#: builtin/log.c:1212 builtin/log.c:1214 +#: builtin/log.c:1220 builtin/log.c:1222 msgid "email" msgstr "邮件地å€" -#: builtin/log.c:1212 +#: builtin/log.c:1220 msgid "add To: header" msgstr "æ·»åŠ æ”¶ä»¶äºº" -#: builtin/log.c:1214 +#: builtin/log.c:1222 msgid "add Cc: header" msgstr "æ·»åŠ æŠ„é€" -#: builtin/log.c:1216 +#: builtin/log.c:1224 msgid "ident" msgstr "ident" -#: builtin/log.c:1217 +#: builtin/log.c:1225 msgid "set From address to <ident> (or committer ident if absent)" msgstr "设置 From 地å€ä¸º <ident>(如若ä¸æ供,用æ交者IDåšä¸ºåœ°å€ï¼‰" -#: builtin/log.c:1219 +#: builtin/log.c:1227 msgid "message-id" msgstr "message-id" -#: builtin/log.c:1220 +#: builtin/log.c:1228 msgid "make first mail a reply to <message-id>" msgstr "使第一å°é‚®ä»¶ä½œä¸ºå¯¹ <message-id> 的回å¤" -#: builtin/log.c:1221 builtin/log.c:1224 +#: builtin/log.c:1229 builtin/log.c:1232 msgid "boundary" msgstr "边界" -#: builtin/log.c:1222 +#: builtin/log.c:1230 msgid "attach the patch" msgstr "附件方å¼æ·»åŠ è¡¥ä¸" -#: builtin/log.c:1225 +#: builtin/log.c:1233 msgid "inline the patch" msgstr "内è”显示补ä¸" -#: builtin/log.c:1229 +#: builtin/log.c:1237 msgid "enable message threading, styles: shallow, deep" msgstr "å¯ç”¨é‚®ä»¶çº¿ç´¢ï¼Œé£Žæ ¼ï¼šæµ…,深" -#: builtin/log.c:1231 +#: builtin/log.c:1239 msgid "signature" msgstr "ç¾å" -#: builtin/log.c:1232 +#: builtin/log.c:1240 msgid "add a signature" msgstr "æ·»åŠ ä¸€ä¸ªç¾å" -#: builtin/log.c:1233 +#: builtin/log.c:1242 +msgid "add a signature from a file" +msgstr "ä»Žæ–‡ä»¶æ·»åŠ ä¸€ä¸ªç¾å" + +#: builtin/log.c:1243 msgid "don't print the patch filenames" msgstr "ä¸è¦æ‰“å°è¡¥ä¸æ–‡ä»¶å" -#: builtin/log.c:1307 +#: builtin/log.c:1317 #, c-format msgid "invalid ident line: %s" msgstr "包å«æ— æ•ˆçš„èº«ä»½æ ‡è¯†ï¼š%s" -#: builtin/log.c:1322 +#: builtin/log.c:1332 msgid "-n and -k are mutually exclusive." msgstr "-n å’Œ -k 互斥。" -#: builtin/log.c:1324 +#: builtin/log.c:1334 msgid "--subject-prefix and -k are mutually exclusive." msgstr "--subject-prefix å’Œ -k 互斥。" -#: builtin/log.c:1332 +#: builtin/log.c:1342 msgid "--name-only does not make sense" msgstr "--name-only æ— æ„义" -#: builtin/log.c:1334 +#: builtin/log.c:1344 msgid "--name-status does not make sense" msgstr "--name-status æ— æ„义" -#: builtin/log.c:1336 +#: builtin/log.c:1346 msgid "--check does not make sense" msgstr "--check æ— æ„义" -#: builtin/log.c:1359 +#: builtin/log.c:1369 msgid "standard output, or directory, which one?" msgstr "æ ‡å‡†è¾“å‡ºæˆ–ç›®å½•ï¼Œå“ªä¸€ä¸ªï¼Ÿ" -#: builtin/log.c:1361 +#: builtin/log.c:1371 #, c-format msgid "Could not create directory '%s'" msgstr "ä¸èƒ½åˆ›å»ºç›®å½• '%s'" -#: builtin/log.c:1509 +#: builtin/log.c:1468 +#, c-format +msgid "unable to read signature file '%s'" +msgstr "æ— æ³•è¯»å–ç¾å文件 '%s'" + +#: builtin/log.c:1531 msgid "Failed to create output files" msgstr "æ— æ³•åˆ›å»ºè¾“å‡ºæ–‡ä»¶" -#: builtin/log.c:1558 +#: builtin/log.c:1579 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]" msgstr "git cherry [-v] [<上游> [<头> [<é™åˆ¶>]]]" -#: builtin/log.c:1613 +#: builtin/log.c:1634 #, c-format msgid "" "Could not find a tracked remote branch, please specify <upstream> manually.\n" msgstr "ä¸èƒ½æ‰¾åˆ°è·Ÿè¸ªçš„远程分支,请手工指定 <upstream>。\n" -#: builtin/log.c:1626 builtin/log.c:1628 builtin/log.c:1640 +#: builtin/log.c:1647 builtin/log.c:1649 builtin/log.c:1661 #, c-format msgid "Unknown commit %s" msgstr "未知æ交 %s" @@ -6709,31 +6764,31 @@ msgstr "åçš„ branch.%s.mergeoptions å—符串:%s" msgid "git write-tree failed to write a tree" msgstr "git write-tree æ— æ³•å†™å…¥ä¸€æ ‘å¯¹è±¡" -#: builtin/merge.c:681 +#: builtin/merge.c:678 msgid "Not handling anything other than two heads merge." msgstr "ä¸èƒ½å¤„ç†ä¸¤ä¸ªå¤´åˆå¹¶ä¹‹å¤–的任何æ“作。" -#: builtin/merge.c:695 +#: builtin/merge.c:692 #, c-format msgid "Unknown option for merge-recursive: -X%s" msgstr "merge-recursive 的未知选项:-X%s" -#: builtin/merge.c:709 +#: builtin/merge.c:705 #, c-format msgid "unable to write %s" msgstr "ä¸èƒ½å†™ %s" -#: builtin/merge.c:798 +#: builtin/merge.c:794 #, c-format msgid "Could not read from '%s'" msgstr "ä¸èƒ½ä»Ž '%s' 读å–" -#: builtin/merge.c:807 +#: builtin/merge.c:803 #, c-format msgid "Not committing merge; use 'git commit' to complete the merge.\n" msgstr "未æ交åˆå¹¶ï¼Œä½¿ç”¨ 'git commit' 完æˆæ¤æ¬¡åˆå¹¶ã€‚\n" -#: builtin/merge.c:813 +#: builtin/merge.c:809 #, c-format msgid "" "Please enter a commit message to explain why this merge is necessary,\n" @@ -6747,47 +6802,47 @@ msgstr "" "\n" "以 '%c' 开头的行将被忽略,而且空æ交说明将会终æ¢æ交。\n" -#: builtin/merge.c:837 +#: builtin/merge.c:833 msgid "Empty commit message." msgstr "空æ交信æ¯ã€‚" -#: builtin/merge.c:849 +#: builtin/merge.c:845 #, c-format msgid "Wonderful.\n" msgstr "太棒了。\n" -#: builtin/merge.c:914 +#: builtin/merge.c:908 #, c-format msgid "Automatic merge failed; fix conflicts and then commit the result.\n" msgstr "自动åˆå¹¶å¤±è´¥ï¼Œä¿®æ£å†²çªç„¶åŽæ交修æ£çš„结果。\n" -#: builtin/merge.c:930 +#: builtin/merge.c:924 #, c-format msgid "'%s' is not a commit" msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªæ交" -#: builtin/merge.c:971 +#: builtin/merge.c:965 msgid "No current branch." msgstr "没有当å‰åˆ†æ”¯ã€‚" -#: builtin/merge.c:973 +#: builtin/merge.c:967 msgid "No remote for the current branch." msgstr "当å‰åˆ†æ”¯æ²¡æœ‰å¯¹åº”的远程版本库。" -#: builtin/merge.c:975 +#: builtin/merge.c:969 msgid "No default upstream defined for the current branch." msgstr "当å‰åˆ†æ”¯æ²¡æœ‰å®šä¹‰é»˜è®¤çš„上游分支。" -#: builtin/merge.c:980 +#: builtin/merge.c:974 #, c-format msgid "No remote-tracking branch for %s from %s" msgstr "对于 %s 没有æ¥è‡ª %s 的远程跟踪分支" -#: builtin/merge.c:1136 +#: builtin/merge.c:1130 msgid "There is no merge to abort (MERGE_HEAD missing)." msgstr "没有è¦ç»ˆæ¢çš„åˆå¹¶ï¼ˆMERGE_HEAD 丢失)。" -#: builtin/merge.c:1152 git-pull.sh:31 +#: builtin/merge.c:1146 git-pull.sh:31 msgid "" "You have not concluded your merge (MERGE_HEAD exists).\n" "Please, commit your changes before you can merge." @@ -6795,11 +6850,11 @@ msgstr "" "您尚未结æŸæ‚¨çš„åˆå¹¶ï¼ˆå˜åœ¨ MERGE_HEAD)。\n" "请在åˆå¹¶å‰å…ˆæ交您的修改。" -#: builtin/merge.c:1155 git-pull.sh:34 +#: builtin/merge.c:1149 git-pull.sh:34 msgid "You have not concluded your merge (MERGE_HEAD exists)." msgstr "您尚未结æŸæ‚¨çš„åˆå¹¶ï¼ˆå˜åœ¨ MERGE_HEAD)。" -#: builtin/merge.c:1159 +#: builtin/merge.c:1153 msgid "" "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n" "Please, commit your changes before you can merge." @@ -6807,100 +6862,100 @@ msgstr "" "您尚未结æŸæ‚¨çš„拣选(å˜åœ¨ CHERRY_PICK_HEAD)。\n" "请在åˆå¹¶å‰å…ˆæ交您的修改。" -#: builtin/merge.c:1162 +#: builtin/merge.c:1156 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)." msgstr "您尚未结æŸæ‚¨çš„拣选(å˜åœ¨ CHERRY_PICK_HEAD)。" -#: builtin/merge.c:1171 +#: builtin/merge.c:1165 msgid "You cannot combine --squash with --no-ff." msgstr "您ä¸èƒ½å°† --squash 与 --no-ff åŒæ—¶ä½¿ç”¨ã€‚" -#: builtin/merge.c:1180 +#: builtin/merge.c:1174 msgid "No commit specified and merge.defaultToUpstream not set." msgstr "未指定æ交并且 merge.defaultToUpstream 未设置。" -#: builtin/merge.c:1212 +#: builtin/merge.c:1206 msgid "Can merge only exactly one commit into empty head" msgstr "åªèƒ½å°†ä¸€ä¸ªæ交åˆå¹¶åˆ°ç©ºåˆ†æ”¯ä¸Š" -#: builtin/merge.c:1215 +#: builtin/merge.c:1209 msgid "Squash commit into empty head not supported yet" msgstr "å°šä¸æ”¯æŒåˆ°ç©ºåˆ†æ”¯çš„压缩æ交" -#: builtin/merge.c:1217 +#: builtin/merge.c:1211 msgid "Non-fast-forward commit does not make sense into an empty head" msgstr "到空分支的éžå¿«è¿›å¼æ交没有æ„义" -#: builtin/merge.c:1222 +#: builtin/merge.c:1216 #, c-format msgid "%s - not something we can merge" msgstr "%s - ä¸èƒ½è¢«åˆå¹¶" -#: builtin/merge.c:1273 +#: builtin/merge.c:1267 #, c-format msgid "Commit %s has an untrusted GPG signature, allegedly by %s." msgstr "æ交 %s 有一个éžå¯ä¿¡çš„声称æ¥è‡ª %s çš„ GPG ç¾å。" -#: builtin/merge.c:1276 +#: builtin/merge.c:1270 #, c-format msgid "Commit %s has a bad GPG signature allegedly by %s." msgstr "æ交 %s 有一个错误的声称æ¥è‡ª %s çš„ GPG ç¾å。" -#: builtin/merge.c:1279 +#: builtin/merge.c:1273 #, c-format msgid "Commit %s does not have a GPG signature." msgstr "æ交 %s 没有一个 GPG ç¾å。" -#: builtin/merge.c:1282 +#: builtin/merge.c:1276 #, c-format msgid "Commit %s has a good GPG signature by %s\n" msgstr "æ交 %s 有一个æ¥è‡ª %s 的好的 GPG ç¾å。\n" -#: builtin/merge.c:1366 +#: builtin/merge.c:1357 #, c-format msgid "Updating %s..%s\n" msgstr "æ›´æ–° %s..%s\n" -#: builtin/merge.c:1405 +#: builtin/merge.c:1396 #, c-format msgid "Trying really trivial in-index merge...\n" msgstr "å°è¯•éžå¸¸å°çš„索引内åˆå¹¶...\n" -#: builtin/merge.c:1412 +#: builtin/merge.c:1403 #, c-format msgid "Nope.\n" msgstr "æ— ã€‚\n" -#: builtin/merge.c:1444 +#: builtin/merge.c:1435 msgid "Not possible to fast-forward, aborting." msgstr "æ— æ³•å¿«è¿›ï¼Œç»ˆæ¢ã€‚" -#: builtin/merge.c:1467 builtin/merge.c:1546 +#: builtin/merge.c:1458 builtin/merge.c:1537 #, c-format msgid "Rewinding the tree to pristine...\n" msgstr "å°†æ ‘å›žæ»šè‡³åŽŸå§‹çŠ¶æ€...\n" -#: builtin/merge.c:1471 +#: builtin/merge.c:1462 #, c-format msgid "Trying merge strategy %s...\n" msgstr "å°è¯•åˆå¹¶ç–ç•¥ %s...\n" -#: builtin/merge.c:1537 +#: builtin/merge.c:1528 #, c-format msgid "No merge strategy handled the merge.\n" msgstr "没有åˆå¹¶ç–略处ç†æ¤åˆå¹¶ã€‚\n" -#: builtin/merge.c:1539 +#: builtin/merge.c:1530 #, c-format msgid "Merge with strategy %s failed.\n" msgstr "使用ç–ç•¥ %s åˆå¹¶å¤±è´¥ã€‚\n" -#: builtin/merge.c:1548 +#: builtin/merge.c:1539 #, c-format msgid "Using the %s to prepare resolving by hand.\n" msgstr "使用 %s 以准备手工解决。\n" -#: builtin/merge.c:1560 +#: builtin/merge.c:1551 #, c-format msgid "Automatic merge went well; stopped before committing as requested\n" msgstr "自动åˆå¹¶è¿›å±•é¡ºåˆ©ï¼ŒæŒ‰è¦æ±‚在æ交å‰åœæ¢\n" @@ -7051,79 +7106,79 @@ msgstr "æºç›®å½•ä¸ºç©º" msgid "not under version control" msgstr "ä¸åœ¨ç‰ˆæœ¬æŽ§åˆ¶ä¹‹ä¸‹" -#: builtin/mv.c:207 +#: builtin/mv.c:208 msgid "destination exists" msgstr "ç›®æ ‡å·²å˜åœ¨" -#: builtin/mv.c:215 +#: builtin/mv.c:216 #, c-format msgid "overwriting '%s'" msgstr "覆盖 '%s'" -#: builtin/mv.c:218 +#: builtin/mv.c:219 msgid "Cannot overwrite" msgstr "ä¸èƒ½è¦†ç›–" -#: builtin/mv.c:221 +#: builtin/mv.c:222 msgid "multiple sources for the same target" msgstr "åŒä¸€ç›®æ ‡å…·æœ‰å¤šä¸ªæº" -#: builtin/mv.c:223 +#: builtin/mv.c:224 msgid "destination directory does not exist" msgstr "ç›®æ ‡ç›®å½•ä¸å˜åœ¨" -#: builtin/mv.c:243 +#: builtin/mv.c:244 #, 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:726 builtin/repack.c:355 +#: builtin/mv.c:257 builtin/remote.c:725 builtin/repack.c:358 #, c-format msgid "renaming '%s' failed" msgstr "é‡å‘½å '%s' 失败" -#: builtin/name-rev.c:258 +#: builtin/name-rev.c:255 msgid "git name-rev [options] <commit>..." msgstr "git name-rev [选项] <æ交>..." -#: builtin/name-rev.c:259 +#: builtin/name-rev.c:256 msgid "git name-rev [options] --all" msgstr "git name-rev [选项] --all" -#: builtin/name-rev.c:260 +#: builtin/name-rev.c:257 msgid "git name-rev [options] --stdin" msgstr "git name-rev [选项] --stdin" -#: builtin/name-rev.c:312 +#: builtin/name-rev.c:309 msgid "print only names (no SHA-1)" msgstr "åªæ‰“å°åç§°ï¼ˆæ— SHA-1)" -#: builtin/name-rev.c:313 +#: builtin/name-rev.c:310 msgid "only use tags to name the commits" msgstr "åªä½¿ç”¨ tags æ¥å‘½åæ交" -#: builtin/name-rev.c:315 +#: builtin/name-rev.c:312 msgid "only use refs matching <pattern>" msgstr "åªä½¿ç”¨å’Œ <模å¼> 相匹é…的引用" -#: builtin/name-rev.c:317 +#: builtin/name-rev.c:314 msgid "list all commits reachable from all refs" msgstr "列出å¯ä»¥ä»Žæ‰€æœ‰å¼•ç”¨è®¿é—®çš„æ交" -#: builtin/name-rev.c:318 +#: builtin/name-rev.c:315 msgid "read from stdin" msgstr "ä»Žæ ‡å‡†è¾“å…¥è¯»å–" -#: builtin/name-rev.c:319 +#: builtin/name-rev.c:316 msgid "allow to print `undefined` names (default)" msgstr "å…è®¸æ‰“å° `未定义` çš„å称(默认)" -#: builtin/name-rev.c:325 +#: builtin/name-rev.c:322 msgid "dereference tags in the input (internal use)" msgstr "åå‘解æžè¾“å…¥ä¸çš„ tags(内部使用)" @@ -7250,7 +7305,7 @@ msgstr "ä¸èƒ½è¯»å– 'show' 的输出" msgid "failed to finish 'show' for object '%s'" msgstr "æ— æ³•ä¸ºå¯¹è±¡ '%s' å®Œæˆ 'show'" -#: builtin/notes.c:167 builtin/tag.c:373 +#: builtin/notes.c:167 builtin/tag.c:477 #, c-format msgid "could not create file '%s'" msgstr "ä¸èƒ½åˆ›å»ºæ–‡ä»¶ '%s'" @@ -7273,12 +7328,12 @@ msgstr "ä¸èƒ½å†™æ³¨è§£å¯¹è±¡" msgid "The note contents has been left in %s" msgstr "注解内容被留在文件 %s ä¸" -#: builtin/notes.c:248 builtin/tag.c:604 +#: builtin/notes.c:248 builtin/tag.c:692 #, c-format msgid "cannot read '%s'" msgstr "ä¸èƒ½è¯»å– '%s'" -#: builtin/notes.c:250 builtin/tag.c:607 +#: builtin/notes.c:250 builtin/tag.c:695 #, c-format msgid "could not open or read '%s'" msgstr "ä¸èƒ½æ‰“å¼€æˆ–è¯»å– '%s'" @@ -7286,7 +7341,7 @@ msgstr "ä¸èƒ½æ‰“å¼€æˆ–è¯»å– '%s'" #: builtin/notes.c:269 builtin/notes.c:320 builtin/notes.c:322 #: builtin/notes.c:382 builtin/notes.c:436 builtin/notes.c:519 #: builtin/notes.c:524 builtin/notes.c:599 builtin/notes.c:641 -#: builtin/notes.c:843 builtin/tag.c:620 +#: builtin/notes.c:843 builtin/tag.c:708 #, c-format msgid "Failed to resolve '%s' as a valid ref." msgstr "æ— æ³•è§£æž '%s' 为一个有效引用。" @@ -7331,7 +7386,7 @@ msgid "note contents in a file" msgstr "注解内容到一个文件ä¸" #: builtin/notes.c:415 builtin/notes.c:418 builtin/notes.c:572 -#: builtin/notes.c:575 builtin/tag.c:539 +#: builtin/notes.c:575 builtin/tag.c:627 msgid "object" msgstr "对象" @@ -7443,7 +7498,7 @@ msgstr "注解引用" msgid "use notes from <notes_ref>" msgstr "从 <注解引用> 使用注解" -#: builtin/notes.c:978 builtin/remote.c:1593 +#: builtin/notes.c:978 builtin/remote.c:1616 #, c-format msgid "Unknown subcommand: %s" msgstr "未知å命令:%s" @@ -7473,155 +7528,155 @@ msgstr "ç¦ç”¨ bitmap å†™å…¥ï¼Œå› ä¸ºä¸€äº›å¯¹è±¡å°†ä¸ä¼šè¢«æ‰“包" msgid "Compressing objects" msgstr "压缩对象ä¸" -#: builtin/pack-objects.c:2530 +#: builtin/pack-objects.c:2526 #, c-format msgid "unsupported index version %s" msgstr "ä¸æ”¯æŒçš„索引版本 %s" -#: builtin/pack-objects.c:2534 +#: builtin/pack-objects.c:2530 #, c-format msgid "bad index version '%s'" msgstr "å的索引版本 '%s'" -#: builtin/pack-objects.c:2557 +#: builtin/pack-objects.c:2553 #, c-format msgid "option %s does not accept negative form" msgstr "选项 %s ä¸æŽ¥å—å¦å®šæ ¼å¼" -#: builtin/pack-objects.c:2561 +#: builtin/pack-objects.c:2557 #, c-format msgid "unable to parse value '%s' for option %s" msgstr "ä¸èƒ½è§£æžé€‰é¡¹ %1$s 的值 '%2$s'" -#: builtin/pack-objects.c:2580 +#: builtin/pack-objects.c:2576 msgid "do not show progress meter" msgstr "ä¸æ˜¾ç¤ºè¿›åº¦è¡¨" -#: builtin/pack-objects.c:2582 +#: builtin/pack-objects.c:2578 msgid "show progress meter" msgstr "显示进度表" -#: builtin/pack-objects.c:2584 +#: builtin/pack-objects.c:2580 msgid "show progress meter during object writing phase" msgstr "在对象写入阶段显示进度表" -#: builtin/pack-objects.c:2587 +#: builtin/pack-objects.c:2583 msgid "similar to --all-progress when progress meter is shown" msgstr "当进度表显示时类似于 --all-progress" -#: builtin/pack-objects.c:2588 +#: builtin/pack-objects.c:2584 msgid "version[,offset]" msgstr "版本[,å移]" -#: builtin/pack-objects.c:2589 +#: builtin/pack-objects.c:2585 msgid "write the pack index file in the specified idx format version" msgstr "用指定的 idx æ ¼å¼ç‰ˆæœ¬æ¥å†™åŒ…索引文件" -#: builtin/pack-objects.c:2592 +#: builtin/pack-objects.c:2588 msgid "maximum size of each output pack file" msgstr "æ¯ä¸ªè¾“出包的最大尺寸" -#: builtin/pack-objects.c:2594 +#: builtin/pack-objects.c:2590 msgid "ignore borrowed objects from alternate object store" msgstr "忽略从替代对象å˜å‚¨é‡Œå€Ÿç”¨å¯¹è±¡" -#: builtin/pack-objects.c:2596 +#: builtin/pack-objects.c:2592 msgid "ignore packed objects" msgstr "忽略包对象" -#: builtin/pack-objects.c:2598 +#: builtin/pack-objects.c:2594 msgid "limit pack window by objects" msgstr "é™åˆ¶æ‰“包窗å£çš„对象数" -#: builtin/pack-objects.c:2600 +#: builtin/pack-objects.c:2596 msgid "limit pack window by memory in addition to object limit" msgstr "除对象数é‡é™åˆ¶å¤–设置打包窗å£çš„内å˜é™åˆ¶" -#: builtin/pack-objects.c:2602 +#: builtin/pack-objects.c:2598 msgid "maximum length of delta chain allowed in the resulting pack" msgstr "打包å…许的 delta 链的最大长度" -#: builtin/pack-objects.c:2604 +#: builtin/pack-objects.c:2600 msgid "reuse existing deltas" msgstr "é‡ç”¨å·²å˜åœ¨çš„ deltas" -#: builtin/pack-objects.c:2606 +#: builtin/pack-objects.c:2602 msgid "reuse existing objects" msgstr "é‡ç”¨å·²å˜åœ¨çš„对象" -#: builtin/pack-objects.c:2608 +#: builtin/pack-objects.c:2604 msgid "use OFS_DELTA objects" msgstr "使用 OFS_DELTA 对象" -#: builtin/pack-objects.c:2610 +#: builtin/pack-objects.c:2606 msgid "use threads when searching for best delta matches" msgstr "使用线程查询最佳 delta 匹é…" -#: builtin/pack-objects.c:2612 +#: builtin/pack-objects.c:2608 msgid "do not create an empty pack output" msgstr "ä¸åˆ›å»ºç©ºçš„包输出" -#: builtin/pack-objects.c:2614 +#: builtin/pack-objects.c:2610 msgid "read revision arguments from standard input" msgstr "ä»Žæ ‡å‡†è¾“å…¥è¯»å–修订å·å‚æ•°" -#: builtin/pack-objects.c:2616 +#: builtin/pack-objects.c:2612 msgid "limit the objects to those that are not yet packed" msgstr "é™åˆ¶é‚£äº›å°šæœªæ‰“包的对象" -#: builtin/pack-objects.c:2619 +#: builtin/pack-objects.c:2615 msgid "include objects reachable from any reference" msgstr "包括å¯ä»¥ä»Žä»»ä½•å¼•ç”¨è®¿é—®åˆ°çš„对象" -#: builtin/pack-objects.c:2622 +#: builtin/pack-objects.c:2618 msgid "include objects referred by reflog entries" msgstr "包括被引用日志引用到的对象" -#: builtin/pack-objects.c:2625 +#: builtin/pack-objects.c:2621 msgid "output pack to stdout" msgstr "è¾“å‡ºåŒ…åˆ°æ ‡å‡†è¾“å‡º" -#: builtin/pack-objects.c:2627 +#: builtin/pack-objects.c:2623 msgid "include tag objects that refer to objects to be packed" msgstr "包括引用了打包对象的 tag" -#: builtin/pack-objects.c:2629 +#: builtin/pack-objects.c:2625 msgid "keep unreachable objects" msgstr "ç»´æŒä¸å¯è¾¾çš„对象" -#: builtin/pack-objects.c:2630 parse-options.h:140 +#: builtin/pack-objects.c:2626 parse-options.h:140 msgid "time" msgstr "时间" -#: builtin/pack-objects.c:2631 +#: builtin/pack-objects.c:2627 msgid "unpack unreachable objects newer than <time>" msgstr "将比给定 <时间> æ–°çš„æ— æ³•è®¿é—®çš„å¯¹è±¡è§£åŒ…" -#: builtin/pack-objects.c:2634 +#: builtin/pack-objects.c:2630 msgid "create thin packs" msgstr "创建精简包" -#: builtin/pack-objects.c:2636 +#: builtin/pack-objects.c:2632 msgid "ignore packs that have companion .keep file" msgstr "忽略é…有 .keep 文件的包" -#: builtin/pack-objects.c:2638 +#: builtin/pack-objects.c:2634 msgid "pack compression level" msgstr "打包压缩级别" -#: builtin/pack-objects.c:2640 +#: builtin/pack-objects.c:2636 msgid "do not hide commits by grafts" msgstr "显示被å«æŽ¥éšè—çš„æ交" -#: builtin/pack-objects.c:2642 +#: builtin/pack-objects.c:2638 msgid "use a bitmap index if available to speed up counting objects" msgstr "使用 bitmap 索引(如果有的è¯ï¼‰ä»¥æ高对象计数时的速度" -#: builtin/pack-objects.c:2644 +#: builtin/pack-objects.c:2640 msgid "write a bitmap index together with the pack index" msgstr "在建立包索引的åŒæ—¶åˆ›å»º bitmap 索引" -#: builtin/pack-objects.c:2723 +#: builtin/pack-objects.c:2719 msgid "Counting objects" msgstr "对象计数ä¸" @@ -7673,7 +7728,7 @@ msgstr "tag 简写没有跟 <tag> å‚æ•°" msgid "--delete only accepts plain target ref names" msgstr "--delete åªæŽ¥å—简å•çš„ç›®æ ‡å¼•ç”¨å" -#: builtin/push.c:140 +#: builtin/push.c:139 msgid "" "\n" "To choose either option permanently, see push.default in 'git help config'." @@ -7681,7 +7736,7 @@ msgstr "" "\n" "为了永久地选择任一选项,å‚è§ 'git help config' ä¸çš„ push.default。" -#: builtin/push.c:143 +#: builtin/push.c:142 #, c-format msgid "" "The upstream branch of your current branch does not match\n" @@ -7705,7 +7760,7 @@ msgstr "" " git push %s %s\n" "%s" -#: builtin/push.c:158 +#: builtin/push.c:157 #, c-format msgid "" "You are not currently on a branch.\n" @@ -7719,7 +7774,7 @@ msgstr "" "\n" " git push %s HEAD:<name-of-remote-branch>\n" -#: builtin/push.c:172 +#: builtin/push.c:171 #, c-format msgid "" "The current branch %s has no upstream branch.\n" @@ -7732,12 +7787,12 @@ msgstr "" "\n" " git push --set-upstream %s %s\n" -#: builtin/push.c:180 +#: builtin/push.c:179 #, c-format msgid "The current branch %s has multiple upstream branches, refusing to push." msgstr "当å‰åˆ†æ”¯ %s 有多个上游分支,拒ç»æŽ¨é€ã€‚" -#: builtin/push.c:183 +#: builtin/push.c:182 #, c-format msgid "" "You are pushing to remote '%s', which is not the upstream of\n" @@ -7748,7 +7803,7 @@ msgstr "" "而没有告诉我è¦æŽ¨é€ä»€ä¹ˆã€æ›´æ–°å“ªä¸ªè¿œç¨‹åˆ†æ”¯ã€‚" # 译者:å—符串首行行首è¦æ·»åŠ “warning: â€å—串,故æ¤é¦–è¡Œè¦è¾ƒå…¶ä½™è¡ŒçŸ -#: builtin/push.c:206 +#: builtin/push.c:205 msgid "" "push.default is unset; its implicit value has changed in\n" "Git 2.0 from 'matching' to 'simple'. To squelch this message\n" @@ -7791,12 +7846,12 @@ msgstr "" "('simple' 模å¼ç”± Git 1.7.11 版本引入。如果您有时è¦ä½¿ç”¨è€ç‰ˆæœ¬çš„ Git,\n" "为ä¿æŒå…¼å®¹ï¼Œè¯·ç”¨ 'current' 代替 'simple')" -#: builtin/push.c:273 +#: builtin/push.c:272 msgid "" "You didn't specify any refspecs to push, and push.default is \"nothing\"." msgstr "您没有为推é€æŒ‡å®šä»»ä½•å¼•ç”¨è§„则,并且 push.default 为 \"nothing\"。" -#: builtin/push.c:280 +#: builtin/push.c:279 msgid "" "Updates were rejected because the tip of your current branch is behind\n" "its remote counterpart. Integrate the remote changes (e.g.\n" @@ -7807,7 +7862,7 @@ msgstr "" "å†æ¬¡æŽ¨é€å‰ï¼Œå…ˆä¸Žè¿œç¨‹å˜æ›´åˆå¹¶ï¼ˆå¦‚ 'git pull ...')。详è§\n" "'git push --help' ä¸çš„ 'Note about fast-forwards' å°èŠ‚。" -#: builtin/push.c:286 +#: builtin/push.c:285 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" @@ -7818,7 +7873,7 @@ msgstr "" "检出该分支并整åˆè¿œç¨‹å˜æ›´ï¼ˆå¦‚ 'git pull ...'),然åŽå†æŽ¨é€ã€‚详è§\n" "'git push --help' ä¸çš„ 'Note about fast-forwards' å°èŠ‚。" -#: builtin/push.c:292 +#: builtin/push.c:291 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" @@ -7831,11 +7886,11 @@ msgstr "" "(如 'git pull ...')。\n" "è¯¦è§ 'git push --help' ä¸çš„ 'Note about fast-forwards' å°èŠ‚。" -#: builtin/push.c:299 +#: builtin/push.c:298 msgid "Updates were rejected because the tag already exists in the remote." msgstr "更新被拒ç»å› 为 tag 在远程已ç»å˜åœ¨ã€‚" -#: builtin/push.c:302 +#: builtin/push.c:301 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" @@ -7844,22 +7899,22 @@ msgstr "" "如果ä¸ä½¿ç”¨ '--force' å‚数,您ä¸èƒ½æ›´æ–°ä¸€ä¸ªæŒ‡å‘éžæ交对象的远程引用,\n" "也ä¸èƒ½æ›´æ–°è¿œç¨‹å¼•ç”¨è®©å…¶æŒ‡å‘一个éžæ交对象。\n" -#: builtin/push.c:361 +#: builtin/push.c:360 #, c-format msgid "Pushing to %s\n" msgstr "推é€åˆ° %s\n" -#: builtin/push.c:365 +#: builtin/push.c:364 #, c-format msgid "failed to push some refs to '%s'" msgstr "æ— æ³•æŽ¨é€ä¸€äº›å¼•ç”¨åˆ° '%s'" -#: builtin/push.c:395 +#: builtin/push.c:394 #, c-format msgid "bad repository '%s'" msgstr "å的版本库 '%s'" -#: builtin/push.c:396 +#: builtin/push.c:395 msgid "" "No configured push destination.\n" "Either specify the URL from the command-line or configure a remote " @@ -7880,95 +7935,95 @@ msgstr "" "\n" " git push <name>\n" -#: builtin/push.c:411 +#: builtin/push.c:410 msgid "--all and --tags are incompatible" msgstr "--all å’Œ --tags ä¸å…¼å®¹" -#: builtin/push.c:412 +#: builtin/push.c:411 msgid "--all can't be combined with refspecs" msgstr "--all ä¸èƒ½å’Œå¼•ç”¨è§„则åŒæ—¶ä½¿ç”¨" -#: builtin/push.c:417 +#: builtin/push.c:416 msgid "--mirror and --tags are incompatible" msgstr "--mirror å’Œ --tags ä¸å…¼å®¹" -#: builtin/push.c:418 +#: builtin/push.c:417 msgid "--mirror can't be combined with refspecs" msgstr "--mirror ä¸èƒ½å’Œå¼•ç”¨è§„则åŒæ—¶ä½¿ç”¨" -#: builtin/push.c:423 +#: builtin/push.c:422 msgid "--all and --mirror are incompatible" msgstr "--all å’Œ --mirror ä¸å…¼å®¹" -#: builtin/push.c:483 +#: builtin/push.c:482 msgid "repository" msgstr "版本库" -#: builtin/push.c:484 +#: builtin/push.c:483 msgid "push all refs" msgstr "推é€æ‰€æœ‰å¼•ç”¨" -#: builtin/push.c:485 +#: builtin/push.c:484 msgid "mirror all refs" msgstr "é•œåƒæ‰€æœ‰å¼•ç”¨" -#: builtin/push.c:487 +#: builtin/push.c:486 msgid "delete refs" msgstr "åˆ é™¤å¼•ç”¨" -#: builtin/push.c:488 +#: builtin/push.c:487 msgid "push tags (can't be used with --all or --mirror)" msgstr "æŽ¨é€ tags(ä¸èƒ½ä½¿ç”¨ --all or --mirror)" -#: builtin/push.c:491 +#: builtin/push.c:490 msgid "force updates" msgstr "强制更新" -#: builtin/push.c:493 +#: builtin/push.c:492 msgid "refname>:<expect" msgstr "引用å>:<期望值" -#: builtin/push.c:494 +#: builtin/push.c:493 msgid "require old value of ref to be at this value" msgstr "è¦æ±‚引用旧的å–值为设定值" -#: builtin/push.c:496 +#: builtin/push.c:495 msgid "check" msgstr "检查" -#: builtin/push.c:497 +#: builtin/push.c:496 msgid "control recursive pushing of submodules" msgstr "控制å模组的递归推é€" -#: builtin/push.c:499 +#: builtin/push.c:498 msgid "use thin pack" msgstr "使用精简打包" -#: builtin/push.c:500 builtin/push.c:501 +#: builtin/push.c:499 builtin/push.c:500 msgid "receive pack program" msgstr "接收包程åº" -#: builtin/push.c:502 +#: builtin/push.c:501 msgid "set upstream for git pull/status" msgstr "设置 git pull/status 的上游" -#: builtin/push.c:505 +#: builtin/push.c:504 msgid "prune locally removed refs" msgstr "æ¸…é™¤æœ¬åœ°åˆ é™¤çš„å¼•ç”¨" -#: builtin/push.c:507 +#: builtin/push.c:506 msgid "bypass pre-push hook" msgstr "绕过 pre-push é’©å" -#: builtin/push.c:508 +#: builtin/push.c:507 msgid "push missing but relevant tags" msgstr "推é€ç¼ºå¤±çš„有关的 tags" -#: builtin/push.c:518 +#: builtin/push.c:517 msgid "--delete is incompatible with --all, --mirror and --tags" msgstr "--delete 与 --allã€--mirror åŠ --tags ä¸å…¼å®¹" -#: builtin/push.c:520 +#: builtin/push.c:519 msgid "--delete doesn't make sense without any refs" msgstr "--delete 未接任何引用没有æ„义" @@ -8191,12 +8246,12 @@ msgstr "指定一个 master 分支并使用 --mirror 选项没有æ„义" msgid "specifying branches to track makes sense only with fetch mirrors" msgstr "指定è¦è·Ÿè¸ªçš„分支åªåœ¨ä¸ŽèŽ·å–é•œåƒåŒæ—¶ä½¿ç”¨æ‰æœ‰æ„义" -#: builtin/remote.c:185 builtin/remote.c:641 +#: builtin/remote.c:185 builtin/remote.c:640 #, c-format msgid "remote %s already exists." msgstr "远程 %s å·²ç»å˜åœ¨ã€‚" -#: builtin/remote.c:189 builtin/remote.c:645 +#: builtin/remote.c:189 builtin/remote.c:644 #, c-format msgid "'%s' is not a valid remote name" msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„远程å称" @@ -8206,45 +8261,45 @@ msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„远程å称" msgid "Could not setup master '%s'" msgstr "æ— æ³•è®¾ç½® master '%s'" -#: builtin/remote.c:289 +#: builtin/remote.c:288 #, c-format msgid "more than one %s" msgstr "多于一个 %s" -#: builtin/remote.c:334 +#: builtin/remote.c:333 #, c-format msgid "Could not get fetch map for refspec %s" msgstr "æ— æ³•å¾—åˆ°å¼•ç”¨è§„åˆ™ %s 的获å–列表" -#: builtin/remote.c:435 builtin/remote.c:443 +#: builtin/remote.c:434 builtin/remote.c:442 msgid "(matching)" msgstr "(匹é…)" -#: builtin/remote.c:447 +#: builtin/remote.c:446 msgid "(delete)" msgstr "ï¼ˆåˆ é™¤ï¼‰" -#: builtin/remote.c:590 builtin/remote.c:596 builtin/remote.c:602 +#: builtin/remote.c:589 builtin/remote.c:595 builtin/remote.c:601 #, c-format msgid "Could not append '%s' to '%s'" msgstr "ä¸èƒ½æ·»åŠ '%s' 至 '%s'" -#: builtin/remote.c:634 builtin/remote.c:787 builtin/remote.c:885 +#: builtin/remote.c:633 builtin/remote.c:794 builtin/remote.c:894 #, c-format msgid "No such remote: %s" msgstr "æ²¡æœ‰è¿™æ ·çš„è¿œç¨‹ï¼š%s" -#: builtin/remote.c:651 +#: builtin/remote.c:650 #, c-format msgid "Could not rename config section '%s' to '%s'" msgstr "ä¸èƒ½é‡å‘½åé…ç½®å°èŠ‚ '%s' 到 '%s'" -#: builtin/remote.c:657 builtin/remote.c:794 +#: builtin/remote.c:656 builtin/remote.c:846 #, c-format msgid "Could not remove config section '%s'" msgstr "ä¸èƒ½ç§»é™¤é…ç½®å°èŠ‚ '%s'" -#: builtin/remote.c:672 +#: builtin/remote.c:671 #, c-format msgid "" "Not updating non-default fetch refspec\n" @@ -8255,32 +8310,32 @@ msgstr "" "\t%s\n" "\t如果必è¦è¯·æ‰‹åŠ¨æ›´æ–°é…置。" -#: builtin/remote.c:678 +#: builtin/remote.c:677 #, c-format msgid "Could not append '%s'" msgstr "ä¸èƒ½è¿½åŠ '%s'" -#: builtin/remote.c:689 +#: builtin/remote.c:688 #, c-format msgid "Could not set '%s'" msgstr "ä¸èƒ½è®¾ç½® '%s'" -#: builtin/remote.c:711 +#: builtin/remote.c:710 #, c-format msgid "deleting '%s' failed" msgstr "åˆ é™¤ '%s' 失败" -#: builtin/remote.c:745 +#: builtin/remote.c:744 #, c-format msgid "creating '%s' failed" msgstr "创建 '%s' 失败" -#: builtin/remote.c:759 +#: builtin/remote.c:765 #, c-format msgid "Could not remove branch %s" msgstr "æ— æ³•ç§»é™¤åˆ†æ”¯ %s" -#: builtin/remote.c:829 +#: builtin/remote.c:832 msgid "" "Note: A branch outside the refs/remotes/ hierarchy was not removed;\n" "to delete it, use:" @@ -8290,126 +8345,126 @@ msgid_plural "" msgstr[0] "注æ„:ref/remotes 层级之外的一个分支未被移除。è¦åˆ 除它,使用:" msgstr[1] "注æ„:ref/remotes 层级之外的一些分支未被移除。è¦åˆ 除它们,使用:" -#: builtin/remote.c:938 +#: builtin/remote.c:947 #, c-format msgid " new (next fetch will store in remotes/%s)" msgstr " 新的(下一次获å–å°†å˜å‚¨äºŽ remotes/%s)" -#: builtin/remote.c:941 +#: builtin/remote.c:950 msgid " tracked" msgstr " 已跟踪" -#: builtin/remote.c:943 +#: builtin/remote.c:952 msgid " stale (use 'git remote prune' to remove)" msgstr " 过时(使用 'git remote prune' æ¥ç§»é™¤ï¼‰" -#: builtin/remote.c:945 +#: builtin/remote.c:954 msgid " ???" msgstr " ???" -#: builtin/remote.c:986 +#: builtin/remote.c:995 #, c-format msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch" msgstr "æ— æ•ˆçš„ branch.%s.merge,ä¸èƒ½å˜åŸºåˆ°ä¸€ä¸ªä»¥ä¸Šçš„分支" -#: builtin/remote.c:993 +#: builtin/remote.c:1002 #, c-format msgid "rebases onto remote %s" msgstr "å˜åŸºåˆ°è¿œç¨‹ %s" -#: builtin/remote.c:996 +#: builtin/remote.c:1005 #, c-format msgid " merges with remote %s" msgstr " 与远程 %s åˆå¹¶" -#: builtin/remote.c:997 +#: builtin/remote.c:1006 msgid " and with remote" msgstr " 且有远程" -#: builtin/remote.c:999 +#: builtin/remote.c:1008 #, c-format msgid "merges with remote %s" msgstr "与远程 %s åˆå¹¶" -#: builtin/remote.c:1000 +#: builtin/remote.c:1009 msgid " and with remote" msgstr " 且有远程" -#: builtin/remote.c:1046 +#: builtin/remote.c:1055 msgid "create" msgstr "创建" -#: builtin/remote.c:1049 +#: builtin/remote.c:1058 msgid "delete" msgstr "åˆ é™¤" -#: builtin/remote.c:1053 +#: builtin/remote.c:1062 msgid "up to date" msgstr "最新" -#: builtin/remote.c:1056 +#: builtin/remote.c:1065 msgid "fast-forwardable" msgstr "å¯å¿«è¿›" -#: builtin/remote.c:1059 +#: builtin/remote.c:1068 msgid "local out of date" msgstr "本地已过时" -#: builtin/remote.c:1066 +#: builtin/remote.c:1075 #, c-format msgid " %-*s forces to %-*s (%s)" msgstr " %-*s 强制推é€è‡³ %-*s (%s)" -#: builtin/remote.c:1069 +#: builtin/remote.c:1078 #, c-format msgid " %-*s pushes to %-*s (%s)" msgstr " %-*s 推é€è‡³ %-*s (%s)" -#: builtin/remote.c:1073 +#: builtin/remote.c:1082 #, c-format msgid " %-*s forces to %s" msgstr " %-*s 强制推é€è‡³ %s" -#: builtin/remote.c:1076 +#: builtin/remote.c:1085 #, c-format msgid " %-*s pushes to %s" msgstr " %-*s 推é€è‡³ %s" -#: builtin/remote.c:1144 +#: builtin/remote.c:1153 msgid "do not query remotes" msgstr "ä¸æŸ¥è¯¢è¿œç¨‹" -#: builtin/remote.c:1171 +#: builtin/remote.c:1180 #, c-format msgid "* remote %s" msgstr "* 远程 %s" -#: builtin/remote.c:1172 +#: builtin/remote.c:1181 #, c-format msgid " Fetch URL: %s" msgstr " 获å–地å€ï¼š%s" -#: builtin/remote.c:1173 builtin/remote.c:1318 +#: builtin/remote.c:1182 builtin/remote.c:1329 msgid "(no URL)" msgstr "(æ— URL)" -#: builtin/remote.c:1182 builtin/remote.c:1184 +#: builtin/remote.c:1191 builtin/remote.c:1193 #, c-format msgid " Push URL: %s" msgstr " 推é€åœ°å€ï¼š%s" -#: builtin/remote.c:1186 builtin/remote.c:1188 builtin/remote.c:1190 +#: builtin/remote.c:1195 builtin/remote.c:1197 builtin/remote.c:1199 #, c-format msgid " HEAD branch: %s" msgstr " HEAD分支:%s" -#: builtin/remote.c:1192 +#: builtin/remote.c:1201 #, c-format msgid "" " HEAD branch (remote HEAD is ambiguous, may be one of the following):\n" msgstr " HEAD 分支(远程 HEAD 模糊,å¯èƒ½æ˜¯ä¸‹åˆ—ä¸çš„一个):\n" -#: builtin/remote.c:1204 +#: builtin/remote.c:1213 #, c-format msgid " Remote branch:%s" msgid_plural " Remote branches:%s" @@ -8417,239 +8472,295 @@ msgstr[0] " 远程分支:%s" msgstr[1] " 远程分支:%s" # 译者:ä¸æ–‡å—符串拼接,å¯åˆ 除å‰å¯¼ç©ºæ ¼ -#: builtin/remote.c:1207 builtin/remote.c:1234 +#: builtin/remote.c:1216 builtin/remote.c:1243 msgid " (status not queried)" msgstr "(状æ€æœªæŸ¥è¯¢ï¼‰" -#: builtin/remote.c:1216 +#: builtin/remote.c:1225 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:1224 +#: builtin/remote.c:1233 msgid " Local refs will be mirrored by 'git push'" msgstr " 本地引用将在 'git push' 时被镜åƒ" -#: builtin/remote.c:1231 +#: builtin/remote.c:1240 #, 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:1252 +#: builtin/remote.c:1261 msgid "set refs/remotes/<name>/HEAD according to remote" msgstr "æ ¹æ®è¿œç¨‹è®¾ç½® refs/remotes/<å称>/HEAD" -#: builtin/remote.c:1254 +#: builtin/remote.c:1263 msgid "delete refs/remotes/<name>/HEAD" msgstr "åˆ é™¤ refs/remotes/<å称>/HEAD" -#: builtin/remote.c:1269 +#: builtin/remote.c:1278 msgid "Cannot determine remote HEAD" msgstr "æ— æ³•ç¡®å®šè¿œç¨‹ HEAD" -#: builtin/remote.c:1271 +#: builtin/remote.c:1280 msgid "Multiple remote HEAD branches. Please choose one explicitly with:" msgstr "多个远程 HEAD 分支。请明确地选择一个用命令:" -#: builtin/remote.c:1281 +#: builtin/remote.c:1290 #, c-format msgid "Could not delete %s" msgstr "æ— æ³•åˆ é™¤ %s" -#: builtin/remote.c:1289 +#: builtin/remote.c:1298 #, c-format msgid "Not a valid ref: %s" msgstr "ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆå¼•ç”¨ï¼š%s" -#: builtin/remote.c:1291 +#: builtin/remote.c:1300 #, c-format msgid "Could not setup %s" msgstr "ä¸èƒ½è®¾ç½® %s" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: builtin/remote.c:1307 +#: builtin/remote.c:1318 #, c-format msgid " %s will become dangling!" msgstr " %s å°†æˆä¸ºæ‘‡æ‘†çŠ¶æ€ï¼" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: builtin/remote.c:1308 +#: builtin/remote.c:1319 #, c-format msgid " %s has become dangling!" msgstr " %s å·²æˆä¸ºæ‘‡æ‘†çŠ¶æ€ï¼" -#: builtin/remote.c:1314 +#: builtin/remote.c:1325 #, c-format msgid "Pruning %s" msgstr "修剪 %s" -#: builtin/remote.c:1315 +#: builtin/remote.c:1326 #, c-format msgid "URL: %s" msgstr "URL:%s" -#: builtin/remote.c:1328 +#: builtin/remote.c:1349 #, c-format msgid " * [would prune] %s" msgstr " * [å°†åˆ é™¤] %s" -#: builtin/remote.c:1331 +#: builtin/remote.c:1352 #, c-format msgid " * [pruned] %s" msgstr " * [å·²åˆ é™¤] %s" -#: builtin/remote.c:1374 +#: builtin/remote.c:1397 msgid "prune remotes after fetching" msgstr "抓å–åŽæ¸…除远程" -#: builtin/remote.c:1440 builtin/remote.c:1514 +#: builtin/remote.c:1463 builtin/remote.c:1537 #, c-format msgid "No such remote '%s'" msgstr "没有æ¤è¿œç¨‹ '%s'" -#: builtin/remote.c:1460 +#: builtin/remote.c:1483 msgid "add branch" msgstr "æ·»åŠ åˆ†æ”¯" -#: builtin/remote.c:1467 +#: builtin/remote.c:1490 msgid "no remote specified" msgstr "未指定远程" -#: builtin/remote.c:1489 +#: builtin/remote.c:1512 msgid "manipulate push URLs" msgstr "æ“ä½œæŽ¨é€ URLS" -#: builtin/remote.c:1491 +#: builtin/remote.c:1514 msgid "add URL" msgstr "æ·»åŠ URL" -#: builtin/remote.c:1493 +#: builtin/remote.c:1516 msgid "delete URLs" msgstr "åˆ é™¤ URLS" -#: builtin/remote.c:1500 +#: builtin/remote.c:1523 msgid "--add --delete doesn't make sense" msgstr "--add --delete æ— æ„义" -#: builtin/remote.c:1540 +#: builtin/remote.c:1563 #, c-format msgid "Invalid old URL pattern: %s" msgstr "æ— æ•ˆçš„æ—§URL匹é…模版:%s" -#: builtin/remote.c:1548 +#: builtin/remote.c:1571 #, c-format msgid "No such URL found: %s" msgstr "未找到æ¤URL:%s" -#: builtin/remote.c:1550 +#: builtin/remote.c:1573 msgid "Will not delete all non-push URLs" msgstr "å°†ä¸ä¼šåˆ 除所有éžæŽ¨é€URL地å€" -#: builtin/remote.c:1564 +#: builtin/remote.c:1587 msgid "be verbose; must be placed before a subcommand" msgstr "冗长输出;必须置于å命令之å‰" -#: builtin/repack.c:16 +#: builtin/repack.c:17 msgid "git repack [options]" msgstr "git repack [选项]" -#: builtin/repack.c:156 +#: builtin/repack.c:160 msgid "pack everything in a single pack" msgstr "所有内容打包到一个包文件ä¸" -#: builtin/repack.c:158 +#: builtin/repack.c:162 msgid "same as -a, and turn unreachable objects loose" msgstr "å’Œ -a 相åŒï¼Œå¹¶å°†ä¸å¯è¾¾çš„对象设为æ¾æ•£å¯¹è±¡" -#: builtin/repack.c:161 +#: builtin/repack.c:165 msgid "remove redundant packs, and run git-prune-packed" msgstr "åˆ é™¤å¤šä½™çš„åŒ…ï¼Œè¿è¡Œ git-prune-packed" -#: builtin/repack.c:163 +#: builtin/repack.c:167 msgid "pass --no-reuse-delta to git-pack-objects" msgstr "å‘ git-pack-objects ä¼ é€’å‚æ•° --no-reuse-delta" -#: builtin/repack.c:165 +#: builtin/repack.c:169 msgid "pass --no-reuse-object to git-pack-objects" msgstr "å‘ git-pack-objects ä¼ é€’å‚æ•° --no-reuse-object" -#: builtin/repack.c:167 +#: builtin/repack.c:171 msgid "do not run git-update-server-info" msgstr "ä¸è¿è¡Œ git-update-server-info" -#: builtin/repack.c:170 +#: builtin/repack.c:174 msgid "pass --local to git-pack-objects" msgstr "å‘ git-pack-objects ä¼ é€’å‚æ•° --local" -#: builtin/repack.c:172 +#: builtin/repack.c:176 msgid "write bitmap index" msgstr "写 bitmap 索引" -#: builtin/repack.c:173 +#: builtin/repack.c:177 msgid "approxidate" msgstr "近似日期" -#: builtin/repack.c:174 +#: builtin/repack.c:178 msgid "with -A, do not loosen objects older than this" msgstr "使用 -A,ä¸è¦å°†æ—©äºŽç»™å®šæ—¶é—´çš„对象过期" -#: builtin/repack.c:176 +#: builtin/repack.c:180 msgid "size of the window used for delta compression" msgstr "用于增é‡åŽ‹ç¼©çš„窗å£å€¼" -#: builtin/repack.c:177 builtin/repack.c:181 +#: builtin/repack.c:181 builtin/repack.c:185 msgid "bytes" msgstr "å—节" -#: builtin/repack.c:178 +#: builtin/repack.c:182 msgid "same as the above, but limit memory size instead of entries count" msgstr "和上é¢çš„相似,但é™åˆ¶å†…å˜å¤§å°è€Œéžæ¡ç›®æ•°" -#: builtin/repack.c:180 +#: builtin/repack.c:184 msgid "limits the maximum delta depth" msgstr "é™åˆ¶æœ€å¤§å¢žé‡æ·±åº¦" -#: builtin/repack.c:182 +#: builtin/repack.c:186 msgid "maximum size of each packfile" msgstr "æ¯ä¸ªåŒ…的最大尺寸" -#: builtin/repack.c:184 +#: builtin/repack.c:188 msgid "repack objects in packs marked with .keep" msgstr "å¯¹æ ‡è®°ä¸º .keep 的包ä¸çš„对象é‡æ–°æ‰“包" -#: builtin/repack.c:371 +#: builtin/repack.c:374 #, c-format msgid "removing '%s' failed" msgstr "åˆ é™¤ '%s' 失败" -#: builtin/replace.c:17 +#: builtin/replace.c:19 msgid "git replace [-f] <object> <replacement>" msgstr "git replace [-f] <对象> <替æ¢ç‰©>" -#: builtin/replace.c:18 +#: builtin/replace.c:20 +msgid "git replace [-f] --edit <object>" +msgstr "git replace [-f] --edit <对象>" + +#: builtin/replace.c:21 +msgid "git replace [-f] --graft <commit> [<parent>...]" +msgstr "git replace [-f] --graft <æ交> [<父æ交>...]" + +#: builtin/replace.c:22 msgid "git replace -d <object>..." msgstr "git replace -d <对象>..." -#: builtin/replace.c:19 +#: builtin/replace.c:23 msgid "git replace [--format=<format>] [-l [<pattern>]]" msgstr "git replace [--format=<æ ¼å¼>] [-l [<模å¼>]]" -#: builtin/replace.c:174 +#: builtin/replace.c:322 builtin/replace.c:360 builtin/replace.c:388 +#, c-format +msgid "Not a valid object name: '%s'" +msgstr "ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„对象å:'%s'" + +#: builtin/replace.c:352 +#, c-format +msgid "bad mergetag in commit '%s'" +msgstr "æ交 '%s' ä¸æŸåçš„ mergetag" + +#: builtin/replace.c:354 +#, c-format +msgid "malformed mergetag in commit '%s'" +msgstr "æ交 '%s' ä¸éžæ³•çš„ mergetag" + +#: builtin/replace.c:365 +#, c-format +msgid "" +"original commit '%s' contains mergetag '%s' that is discarded; use --edit " +"instead of --graft" +msgstr "原始æ交 '%s' 包å«å·²ç»ä¸¢å¼ƒçš„ mergetag '%s',使用 --edit 代替 --graft" + +#: builtin/replace.c:398 +#, c-format +msgid "the original commit '%s' has a gpg signature." +msgstr "原始æ交 '%s' ä¸åŒ…å«ä¸€ä¸ª GPG ç¾å" + +#: builtin/replace.c:399 +msgid "the signature will be removed in the replacement commit!" +msgstr "在替æ¢çš„æ交ä¸ç¾å将被移除ï¼" + +#: builtin/replace.c:405 +#, c-format +msgid "could not write replacement commit for: '%s'" +msgstr "ä¸èƒ½ä¸º '%s' 写替æ¢æ交" + +#: builtin/replace.c:429 msgid "list replace refs" msgstr "列出替æ¢çš„引用" -#: builtin/replace.c:175 +#: builtin/replace.c:430 msgid "delete replace refs" msgstr "åˆ é™¤æ›¿æ¢çš„引用" -#: builtin/replace.c:176 +#: builtin/replace.c:431 +msgid "edit existing object" +msgstr "编辑现å˜çš„对象" + +#: builtin/replace.c:432 +msgid "change a commit's parents" +msgstr "修改一个æ交的父æ交" + +#: builtin/replace.c:433 msgid "replace the ref if it exists" msgstr "如果å˜åœ¨åˆ™æ›¿æ¢å¼•ç”¨" -#: builtin/replace.c:177 +#: builtin/replace.c:434 +msgid "do not pretty-print contents for --edit" +msgstr "ä¸è¦ä¸º --edit æ“作美观显示内容" + +#: builtin/replace.c:435 msgid "use this format" msgstr "使用æ¤æ ¼å¼" @@ -8718,99 +8829,99 @@ msgstr "HEAD 现在ä½äºŽ %s" msgid "Cannot do a %s reset in the middle of a merge." msgstr "在åˆå¹¶è¿‡ç¨‹ä¸ä¸èƒ½åš%sé‡ç½®æ“作。" -#: builtin/reset.c:273 +#: builtin/reset.c:275 msgid "be quiet, only report errors" msgstr "安é™æ¨¡å¼ï¼ŒåªæŠ¥å‘Šé”™è¯¯" -#: builtin/reset.c:275 +#: builtin/reset.c:277 msgid "reset HEAD and index" msgstr "é‡ç½® HEAD 和索引" -#: builtin/reset.c:276 +#: builtin/reset.c:278 msgid "reset only HEAD" msgstr "åªé‡ç½® HEAD" -#: builtin/reset.c:278 builtin/reset.c:280 +#: builtin/reset.c:280 builtin/reset.c:282 msgid "reset HEAD, index and working tree" msgstr "é‡ç½® HEADã€ç´¢å¼•å’Œå·¥ä½œåŒº" -#: builtin/reset.c:282 +#: builtin/reset.c:284 msgid "reset HEAD but keep local changes" msgstr "é‡ç½® HEAD 但ä¿å˜æœ¬åœ°å˜æ›´" -#: builtin/reset.c:285 +#: builtin/reset.c:287 msgid "record only the fact that removed paths will be added later" msgstr "å°†åˆ é™¤çš„è·¯å¾„æ ‡è®°ä¸ºç¨åŽæ·»åŠ " -#: builtin/reset.c:302 +#: builtin/reset.c:304 #, c-format msgid "Failed to resolve '%s' as a valid revision." msgstr "æ— æ³•å°† '%s' 解æžä¸ºä¸€ä¸ªæœ‰æ•ˆçš„版本。" -#: builtin/reset.c:305 builtin/reset.c:313 +#: builtin/reset.c:307 builtin/reset.c:315 #, c-format msgid "Could not parse object '%s'." msgstr "ä¸èƒ½è§£æžå¯¹è±¡ '%s'。" -#: builtin/reset.c:310 +#: builtin/reset.c:312 #, c-format msgid "Failed to resolve '%s' as a valid tree." msgstr "æ— æ³•å°† '%s' 解æžä¸ºä¸€ä¸ªæœ‰æ•ˆçš„æ ‘å¯¹è±¡ã€‚" -#: builtin/reset.c:319 +#: builtin/reset.c:321 msgid "--patch is incompatible with --{hard,mixed,soft}" msgstr "--patch 与 --{hardã€mixedã€soft} 选项ä¸å…¼å®¹" -#: builtin/reset.c:328 +#: builtin/reset.c:330 msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead." msgstr "--mixed 带路径已弃用,而是用 'git reset -- <paths>'。" # 译者:汉å—ä¹‹é—´æ— ç©ºæ ¼ï¼Œæ•…åˆ é™¤%så‰åŽç©ºæ ¼ -#: builtin/reset.c:330 +#: builtin/reset.c:332 #, c-format msgid "Cannot do %s reset with paths." msgstr "ä¸èƒ½å¸¦è·¯å¾„进行%sé‡ç½®ã€‚" # 译者:汉å—ä¹‹é—´æ— ç©ºæ ¼ï¼Œæ•…åˆ é™¤%så‰åŽç©ºæ ¼ -#: builtin/reset.c:340 +#: builtin/reset.c:342 #, c-format msgid "%s reset is not allowed in a bare repository" msgstr "ä¸èƒ½å¯¹è£¸ç‰ˆæœ¬åº“进行%sé‡ç½®" -#: builtin/reset.c:344 +#: builtin/reset.c:346 msgid "-N can only be used with --mixed" msgstr "-N åªèƒ½å’Œ --mixed åŒæ—¶ä½¿ç”¨" -#: builtin/reset.c:361 +#: builtin/reset.c:363 msgid "Unstaged changes after reset:" msgstr "é‡ç½®åŽæ’¤å‡ºæš‚å˜åŒºçš„å˜æ›´ï¼š" -#: builtin/reset.c:367 +#: builtin/reset.c:369 #, c-format msgid "Could not reset index file to revision '%s'." msgstr "ä¸èƒ½é‡ç½®ç´¢å¼•æ–‡ä»¶è‡³ç‰ˆæœ¬ '%s'。" -#: builtin/reset.c:372 +#: builtin/reset.c:373 msgid "Could not write new index file." msgstr "ä¸èƒ½å†™å…¥æ–°çš„索引文件。" -#: builtin/rev-parse.c:359 +#: builtin/rev-parse.c:360 msgid "git rev-parse --parseopt [options] -- [<args>...]" msgstr "git rev-parse --parseopt [选项] -- [<å‚æ•°>...]" -#: builtin/rev-parse.c:364 +#: builtin/rev-parse.c:365 msgid "keep the `--` passed as an arg" msgstr "ä¿æŒ `--` 作为一个å‚æ•°ä¼ é€’" -#: builtin/rev-parse.c:366 +#: builtin/rev-parse.c:367 msgid "stop parsing after the first non-option argument" msgstr "é‡åˆ°ç¬¬ä¸€ä¸ªéžé€‰é¡¹å‚æ•°åŽåœæ¢è§£æž" -#: builtin/rev-parse.c:369 +#: builtin/rev-parse.c:370 msgid "output in stuck long form" msgstr "ä»¥å›ºå®šé•¿æ ¼å¼è¾“出" -#: builtin/rev-parse.c:497 +#: builtin/rev-parse.c:498 msgid "" "git rev-parse --parseopt [options] -- [<args>...]\n" " or: git rev-parse --sq-quote [<arg>...]\n" @@ -9176,11 +9287,11 @@ msgstr "åˆ é™¤ç¬¦å·å¼•ç”¨" msgid "shorten ref output" msgstr "简çŸçš„引用输出" -#: builtin/symbolic-ref.c:43 builtin/update-ref.c:255 +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:349 msgid "reason" msgstr "åŽŸå› " -#: builtin/symbolic-ref.c:43 builtin/update-ref.c:255 +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:349 msgid "reason of the update" msgstr "æ›´æ–°çš„åŽŸå› " @@ -9205,202 +9316,211 @@ msgstr "" msgid "git tag -v <tagname>..." msgstr "git tag -v <æ ‡ç¾å>..." -#: builtin/tag.c:67 +#: builtin/tag.c:69 #, c-format msgid "malformed object at '%s'" msgstr "éžæ³•çš„对象于 '%s'" -#: builtin/tag.c:239 +#: builtin/tag.c:301 #, c-format msgid "tag name too long: %.*s..." msgstr "tag åå—太长:%.*s..." -#: builtin/tag.c:244 +#: builtin/tag.c:306 #, c-format msgid "tag '%s' not found." msgstr "tag '%s' 未å‘现。" -#: builtin/tag.c:259 +#: builtin/tag.c:321 #, c-format msgid "Deleted tag '%s' (was %s)\n" msgstr "å·²åˆ é™¤ tag '%s'(曾为 %s)\n" -#: builtin/tag.c:271 +#: builtin/tag.c:333 #, c-format msgid "could not verify the tag '%s'" msgstr "ä¸èƒ½æ ¡éªŒ tag '%s'" -#: builtin/tag.c:281 +#: builtin/tag.c:343 #, c-format msgid "" "\n" -"Write a tag message\n" +"Write a message for tag:\n" +" %s\n" "Lines starting with '%c' will be ignored.\n" msgstr "" "\n" -"输入一个 tag 说明\n" +"输入一个 tag 说明:\n" +" %s\n" "以 '%c' 开头的行将被忽略。\n" -#: builtin/tag.c:285 +#: builtin/tag.c:347 #, c-format msgid "" "\n" -"Write a tag message\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" -"输入一个 tag 说明\n" +"输入一个 tag 说明:\n" +" %s\n" "以 '%c' 开头的行将被ä¿ç•™ï¼Œå¦‚果您愿æ„也å¯ä»¥åˆ 除它们。\n" -#: builtin/tag.c:324 +#: builtin/tag.c:371 +#, c-format +msgid "unsupported sort specification '%s'" +msgstr "ä¸æ”¯æŒçš„排åºè§„æ ¼ '%s'" + +#: builtin/tag.c:373 +#, c-format +msgid "unsupported sort specification '%s' in variable '%s'" +msgstr "ä¸æ”¯æŒå˜é‡ '%2$s' 的排åºè§„æ ¼ '%1$s'" + +#: builtin/tag.c:428 msgid "unable to sign the tag" msgstr "æ— æ³•ç¾ç½² tag" -#: builtin/tag.c:326 +#: builtin/tag.c:430 msgid "unable to write tag file" msgstr "æ— æ³•å†™ tag 文件" -#: builtin/tag.c:351 +#: builtin/tag.c:455 msgid "bad object type." msgstr "å的对象类型。" -#: builtin/tag.c:364 +#: builtin/tag.c:468 msgid "tag header too big." msgstr "tag 头信æ¯å¤ªå¤§ã€‚" -#: builtin/tag.c:400 +#: builtin/tag.c:504 msgid "no tag message?" msgstr "æ— tag 说明?" -#: builtin/tag.c:406 +#: builtin/tag.c:510 #, c-format msgid "The tag message has been left in %s\n" msgstr "tag 说明被ä¿ç•™åœ¨ %s\n" -#: builtin/tag.c:455 +#: builtin/tag.c:559 msgid "switch 'points-at' requires an object" msgstr "开关 'points-at' 需è¦ä¸€ä¸ªå¯¹è±¡" -#: builtin/tag.c:457 +#: builtin/tag.c:561 #, c-format msgid "malformed object name '%s'" msgstr "éžæ³•çš„对象å '%s'" -#: builtin/tag.c:480 -#, c-format -msgid "unsupported sort specification %s" -msgstr "ä¸æ”¯æŒçš„排åºè§„æ ¼ %s" - -#: builtin/tag.c:500 +#: builtin/tag.c:588 msgid "list tag names" msgstr "列出tagå称" -#: builtin/tag.c:502 +#: builtin/tag.c:590 msgid "print <n> lines of each tag message" msgstr "æ¯ä¸ª tag ä¿¡æ¯æ‰“å° <n> è¡Œ" -#: builtin/tag.c:504 +#: builtin/tag.c:592 msgid "delete tags" msgstr "åˆ é™¤ tags" -#: builtin/tag.c:505 +#: builtin/tag.c:593 msgid "verify tags" msgstr "éªŒè¯ tags" -#: builtin/tag.c:507 +#: builtin/tag.c:595 msgid "Tag creation options" msgstr "Tag 创建选项" -#: builtin/tag.c:509 +#: builtin/tag.c:597 msgid "annotated tag, needs a message" msgstr "注解 tag,需è¦ä¸€ä¸ªè¯´æ˜Ž" -#: builtin/tag.c:511 +#: builtin/tag.c:599 msgid "tag message" msgstr "tag 说明" -#: builtin/tag.c:513 +#: builtin/tag.c:601 msgid "annotated and GPG-signed tag" msgstr "注解并 GPG ç¾åçš„ tag" -#: builtin/tag.c:517 +#: builtin/tag.c:605 msgid "use another key to sign the tag" msgstr "使用å¦å¤–çš„ç§é’¥ç¾å tag" -#: builtin/tag.c:518 +#: builtin/tag.c:606 msgid "replace the tag if exists" msgstr "如果å˜åœ¨ï¼Œæ›¿æ¢çŽ°æœ‰çš„ tag" -#: builtin/tag.c:519 +#: builtin/tag.c:607 msgid "show tag list in columns" msgstr "以列的方å¼æ˜¾ç¤º tag" -#: builtin/tag.c:521 +#: builtin/tag.c:609 msgid "sort tags" msgstr "æŽ’åº tags" -#: builtin/tag.c:525 +#: builtin/tag.c:613 msgid "Tag listing options" msgstr "Tag 列表选项" -#: builtin/tag.c:528 builtin/tag.c:534 +#: builtin/tag.c:616 builtin/tag.c:622 msgid "print only tags that contain the commit" msgstr "åªæ‰“å°åŒ…å«æ交的tags" -#: builtin/tag.c:540 +#: builtin/tag.c:628 msgid "print only tags of the object" msgstr "åªæ‰“å°tags对象" -#: builtin/tag.c:566 +#: builtin/tag.c:654 msgid "--column and -n are incompatible" msgstr "--column å’Œ -n ä¸å…¼å®¹" -#: builtin/tag.c:578 +#: builtin/tag.c:666 msgid "--sort and -n are incompatible" msgstr "--sort å’Œ -n ä¸å…¼å®¹" -#: builtin/tag.c:585 +#: builtin/tag.c:673 msgid "-n option is only allowed with -l." msgstr "-n 选项åªå…许和 -l åŒæ—¶ä½¿ç”¨ã€‚" -#: builtin/tag.c:587 +#: builtin/tag.c:675 msgid "--contains option is only allowed with -l." msgstr "--contains 选项åªå…许和 -l åŒæ—¶ä½¿ç”¨ã€‚" -#: builtin/tag.c:589 +#: builtin/tag.c:677 msgid "--points-at option is only allowed with -l." msgstr "--points-at 选项åªå…许和 -l åŒæ—¶ä½¿ç”¨ã€‚" -#: builtin/tag.c:597 +#: builtin/tag.c:685 msgid "only one -F or -m option is allowed." msgstr "åªå…许一个 -F 或 -m 选项。" -#: builtin/tag.c:617 +#: builtin/tag.c:705 msgid "too many params" msgstr "太多å‚æ•°" -#: builtin/tag.c:623 +#: builtin/tag.c:711 #, c-format msgid "'%s' is not a valid tag name." msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„tagå称。" -#: builtin/tag.c:628 +#: builtin/tag.c:716 #, c-format msgid "tag '%s' already exists" msgstr "tag '%s' å·²å˜åœ¨" -#: builtin/tag.c:646 +#: builtin/tag.c:734 #, c-format msgid "%s: cannot lock the ref" msgstr "%s:ä¸èƒ½é”定引用" -#: builtin/tag.c:648 +#: builtin/tag.c:736 #, c-format msgid "%s: cannot update the ref" msgstr "%s:ä¸èƒ½æ›´æ–°å¼•ç”¨" -#: builtin/tag.c:650 +#: builtin/tag.c:738 #, c-format msgid "Updated tag '%s' (was %s)\n" msgstr "已更新tag '%s'(曾为 %s)\n" @@ -9409,118 +9529,122 @@ msgstr "已更新tag '%s'(曾为 %s)\n" msgid "Unpacking objects" msgstr "展开对象ä¸" -#: builtin/update-index.c:399 +#: builtin/update-index.c:402 msgid "git update-index [options] [--] [<file>...]" msgstr "git update-index [选项] [--] [<文件>...]" -#: builtin/update-index.c:748 +#: builtin/update-index.c:755 msgid "continue refresh even when index needs update" msgstr "当索引需è¦æ›´æ–°æ—¶ç»§ç»åˆ·æ–°" -#: builtin/update-index.c:751 +#: builtin/update-index.c:758 msgid "refresh: ignore submodules" msgstr "刷新:忽略å模组" -#: builtin/update-index.c:754 +#: builtin/update-index.c:761 msgid "do not ignore new files" msgstr "ä¸å¿½ç•¥æ–°çš„文件" -#: builtin/update-index.c:756 +#: builtin/update-index.c:763 msgid "let files replace directories and vice-versa" msgstr "让文件替æ¢ç›®å½•ï¼ˆå之亦然)" -#: builtin/update-index.c:758 +#: builtin/update-index.c:765 msgid "notice files missing from worktree" msgstr "通知文件从工作区丢失" -#: builtin/update-index.c:760 +#: builtin/update-index.c:767 msgid "refresh even if index contains unmerged entries" msgstr "å³ä½¿ç´¢å¼•åŒºåŒ…å«æœªåˆå¹¶çš„æ¡ç›®ä¹Ÿæ‰§è¡Œåˆ·æ–°" -#: builtin/update-index.c:763 +#: builtin/update-index.c:770 msgid "refresh stat information" msgstr "刷新统计信æ¯" -#: builtin/update-index.c:767 +#: builtin/update-index.c:774 msgid "like --refresh, but ignore assume-unchanged setting" msgstr "类似于 --refresh,但是忽略 assume-unchanged 设置" -#: builtin/update-index.c:771 +#: builtin/update-index.c:778 msgid "<mode>,<object>,<path>" msgstr "<mode>,<object>,<path>" -#: builtin/update-index.c:772 +#: builtin/update-index.c:779 msgid "add the specified entry to the index" msgstr "æ·»åŠ æŒ‡å®šçš„æ¡ç›®åˆ°ç´¢å¼•åŒº" -#: builtin/update-index.c:776 +#: builtin/update-index.c:783 msgid "(+/-)x" msgstr "(+/-)x" -#: builtin/update-index.c:777 +#: builtin/update-index.c:784 msgid "override the executable bit of the listed files" msgstr "覆盖列表里文件的å¯æ‰§è¡Œä½" -#: builtin/update-index.c:781 +#: builtin/update-index.c:788 msgid "mark files as \"not changing\"" msgstr "æŠŠæ–‡ä»¶æ ‡è®°ä¸º \"没有å˜æ›´\"" -#: builtin/update-index.c:784 +#: builtin/update-index.c:791 msgid "clear assumed-unchanged bit" msgstr "清除 assumed-unchanged ä½" -#: builtin/update-index.c:787 +#: builtin/update-index.c:794 msgid "mark files as \"index-only\"" msgstr "æŠŠæ–‡ä»¶æ ‡è®°ä¸º \"仅索引\"" -#: builtin/update-index.c:790 +#: builtin/update-index.c:797 msgid "clear skip-worktree bit" msgstr "清除 skip-worktree ä½" -#: builtin/update-index.c:793 +#: builtin/update-index.c:800 msgid "add to index only; do not add content to object database" msgstr "åªæ·»åŠ 到索引区;ä¸æ·»åŠ 对象到对象库" -#: builtin/update-index.c:795 +#: builtin/update-index.c:802 msgid "remove named paths even if present in worktree" msgstr "å³ä½¿å˜åœ¨å·¥ä½œåŒºé‡Œï¼Œä¹Ÿåˆ 除路径" -#: builtin/update-index.c:797 +#: builtin/update-index.c:804 msgid "with --stdin: input lines are terminated by null bytes" msgstr "æºå¸¦ --stdin:输入的行以 null å—符终æ¢" -#: builtin/update-index.c:799 +#: builtin/update-index.c:806 msgid "read list of paths to be updated from standard input" msgstr "ä»Žæ ‡å‡†è¾“å…¥ä¸è¯»å–需è¦æ›´æ–°çš„路径列表" -#: builtin/update-index.c:803 +#: builtin/update-index.c:810 msgid "add entries from standard input to the index" msgstr "ä»Žæ ‡å‡†è¾“å…¥æ·»åŠ æ¡ç›®åˆ°ç´¢å¼•åŒº" -#: builtin/update-index.c:807 +#: builtin/update-index.c:814 msgid "repopulate stages #2 and #3 for the listed paths" msgstr "为指定文件é‡æ–°ç”Ÿæˆç¬¬2和第3æš‚å˜åŒº" -#: builtin/update-index.c:811 +#: builtin/update-index.c:818 msgid "only update entries that differ from HEAD" msgstr "åªæ›´æ–°ä¸Ž HEAD ä¸åŒçš„æ¡ç›®" -#: builtin/update-index.c:815 +#: builtin/update-index.c:822 msgid "ignore files missing from worktree" msgstr "忽略工作区丢失的文件" -#: builtin/update-index.c:818 +#: builtin/update-index.c:825 msgid "report actions to standard output" msgstr "åœ¨æ ‡å‡†è¾“å‡ºæ˜¾ç¤ºæ“作" -#: builtin/update-index.c:820 +#: builtin/update-index.c:827 msgid "(for porcelains) forget saved unresolved conflicts" msgstr "(for porcelains) 忘记ä¿å˜çš„未解决的冲çª" -#: builtin/update-index.c:824 +#: builtin/update-index.c:831 msgid "write index in this format" msgstr "以这ç§æ ¼å¼å†™å…¥ç´¢å¼•åŒº" +#: builtin/update-index.c:833 +msgid "enable or disable split index" +msgstr "å¯ç”¨æˆ–ç¦ç”¨ç´¢å¼•æ‹†åˆ†" + #: builtin/update-ref.c:9 msgid "git update-ref [options] -d <refname> [<oldval>]" msgstr "git update-ref [选项] -d <引用å> [<旧值>]" @@ -9533,19 +9657,19 @@ msgstr "git update-ref [选项] <引用å> <新值> [<旧值>]" msgid "git update-ref [options] --stdin [-z]" msgstr "git update-ref [选项] --stdin [-z]" -#: builtin/update-ref.c:256 +#: builtin/update-ref.c:350 msgid "delete the reference" msgstr "åˆ é™¤å¼•ç”¨" -#: builtin/update-ref.c:258 +#: builtin/update-ref.c:352 msgid "update <refname> not the one it points to" msgstr "æ›´æ–° <引用å> 本身而ä¸æ˜¯å®ƒæŒ‡å‘的引用" -#: builtin/update-ref.c:259 +#: builtin/update-ref.c:353 msgid "stdin has NUL-terminated arguments" msgstr "æ ‡å‡†è¾“å…¥æœ‰ä»¥ NUL å—符终æ¢çš„å‚æ•°" -#: builtin/update-ref.c:260 +#: builtin/update-ref.c:354 msgid "read updates from stdin" msgstr "ä»Žæ ‡å‡†è¾“å…¥è¯»å–æ›´æ–°" @@ -9557,15 +9681,23 @@ msgstr "git update-server-info [--force]" msgid "update the info files from scratch" msgstr "从头开始更新文件信æ¯" -#: builtin/verify-pack.c:56 +#: builtin/verify-commit.c:17 +msgid "git verify-commit [-v|--verbose] <commit>..." +msgstr "git verify-commit [-v|--verbose] <æ交>..." + +#: builtin/verify-commit.c:75 +msgid "print commit contents" +msgstr "打å°æ交内容" + +#: builtin/verify-pack.c:55 msgid "git verify-pack [-v|--verbose] [-s|--stat-only] <pack>..." msgstr "git verify-pack [-v|--verbose] [-s|--stat-only] <pack>..." -#: builtin/verify-pack.c:66 +#: builtin/verify-pack.c:65 msgid "verbose" msgstr "冗长输出" -#: builtin/verify-pack.c:68 +#: builtin/verify-pack.c:67 msgid "show statistics only" msgstr "åªæ˜¾ç¤ºç»Ÿè®¡" @@ -10046,11 +10178,11 @@ msgstr "" msgid "Pull is not possible because you have unmerged files." msgstr "Pull ä¸å¯ç”¨ï¼Œå› 为您尚有未åˆå¹¶çš„文件。" -#: git-pull.sh:247 +#: git-pull.sh:245 msgid "updating an unborn branch with changes added to the index" msgstr "更新尚未诞生的分支,å˜æ›´æ·»åŠ 至索引" -#: git-pull.sh:271 +#: git-pull.sh:269 #, sh-format msgid "" "Warning: fetch updated the current branch head.\n" @@ -10060,11 +10192,11 @@ msgstr "" "è¦å‘Šï¼šfetch 更新了当å‰çš„分支。您的工作区\n" "è¦å‘Šï¼šä»ŽåŽŸæ交 $orig_head 快进。" -#: git-pull.sh:296 +#: git-pull.sh:294 msgid "Cannot merge multiple branches into empty head" msgstr "æ— æ³•å°†å¤šä¸ªåˆ†æ”¯åˆå¹¶åˆ°ç©ºåˆ†æ”¯" -#: git-pull.sh:300 +#: git-pull.sh:298 msgid "Cannot rebase onto multiple branches" msgstr "æ— æ³•å˜åŸºåˆ°å¤šä¸ªåˆ†æ”¯" @@ -10079,16 +10211,16 @@ msgstr "" "如果您想跳过æ¤è¡¥ä¸ï¼Œåˆ™æ‰§è¡Œ \"git rebase --skip\"。\n" "è¦æ¢å¤åŽŸåˆ†æ”¯å¹¶åœæ¢å˜åŸºï¼Œæ‰§è¡Œ \"git rebase --abort\"。" -#: git-rebase.sh:164 +#: git-rebase.sh:165 msgid "Applied autostash." msgstr "æˆåŠŸåº”用 autostash。" -#: git-rebase.sh:167 +#: git-rebase.sh:168 #, sh-format msgid "Cannot store $stash_sha1" msgstr "æ— æ³•ä¿å˜ $stash_sha1" -#: git-rebase.sh:168 +#: git-rebase.sh:169 msgid "" "Applying autostash resulted in conflicts.\n" "Your changes are safe in the stash.\n" @@ -10098,31 +10230,31 @@ msgstr "" "您的修改安全地ä¿å˜åœ¨ stash ä¸ã€‚\n" "您å¯ä»¥åœ¨ä»»ä½•æ—¶å€™è¿è¡Œ \"git stash pop\" 或 \"git stash drop\"。\n" -#: git-rebase.sh:207 +#: git-rebase.sh:208 msgid "The pre-rebase hook refused to rebase." msgstr "é’©å pre-rebase æ‹’ç»å˜åŸºæ“作。" -#: git-rebase.sh:212 +#: git-rebase.sh:213 msgid "It looks like git-am is in progress. Cannot rebase." msgstr "似乎æ£å¤„于在 git-am 的执行过程ä¸ã€‚æ— æ³•å˜åŸºã€‚" -#: git-rebase.sh:350 +#: git-rebase.sh:351 msgid "The --exec option must be used with the --interactive option" msgstr "选项 --exec 必须和选项 --interactive åŒæ—¶ä½¿ç”¨" -#: git-rebase.sh:355 +#: git-rebase.sh:356 msgid "No rebase in progress?" msgstr "没有æ£åœ¨è¿›è¡Œçš„å˜åŸºï¼Ÿ" -#: git-rebase.sh:366 +#: git-rebase.sh:367 msgid "The --edit-todo action can only be used during interactive rebase." msgstr "动作 --edit-todo åªèƒ½ç”¨åœ¨äº¤äº’å¼å˜åŸºè¿‡ç¨‹ä¸ã€‚" -#: git-rebase.sh:373 +#: git-rebase.sh:374 msgid "Cannot read HEAD" msgstr "ä¸èƒ½è¯»å– HEAD" -#: git-rebase.sh:376 +#: git-rebase.sh:377 msgid "" "You must edit all merge conflicts and then\n" "mark them as resolved using git add" @@ -10130,12 +10262,12 @@ msgstr "" "您必须编辑所有的åˆå¹¶å†²çªï¼Œç„¶åŽé€šè¿‡ git add\n" "å‘½ä»¤å°†å®ƒä»¬æ ‡è®°ä¸ºå·²è§£å†³" -#: git-rebase.sh:394 +#: git-rebase.sh:395 #, sh-format msgid "Could not move back to $head_name" msgstr "æ— æ³•ç§»å›ž $head_name" -#: git-rebase.sh:413 +#: git-rebase.sh:414 #, sh-format msgid "" "It seems that there is already a $state_dir_base directory, and\n" @@ -10154,64 +10286,64 @@ msgstr "" "\t$cmd_clear_stale_rebase\n" "然åŽå†é‡æ–°æ‰§è¡Œå˜åŸºæ“作。 为é¿å…丢失é‡è¦æ•°æ®ï¼Œæˆ‘å·²ç»åœæ¢å½“å‰æ“作。" -#: git-rebase.sh:464 +#: git-rebase.sh:465 #, sh-format msgid "invalid upstream $upstream_name" msgstr "æ— æ•ˆçš„ä¸Šæ¸¸ $upstream_name" -#: git-rebase.sh:488 +#: git-rebase.sh:489 #, sh-format msgid "$onto_name: there are more than one merge bases" msgstr "$onto_name: 有一个以上的åˆå¹¶åŸºå‡†" -#: git-rebase.sh:491 git-rebase.sh:495 +#: git-rebase.sh:492 git-rebase.sh:496 #, sh-format msgid "$onto_name: there is no merge base" msgstr "$onto_name: 没有åˆå¹¶åŸºå‡†" -#: git-rebase.sh:500 +#: git-rebase.sh:501 #, sh-format msgid "Does not point to a valid commit: $onto_name" msgstr "没有指å‘一个有效的æ交:$onto_name" -#: git-rebase.sh:523 +#: git-rebase.sh:524 #, sh-format msgid "fatal: no such branch: $branch_name" msgstr "严é‡é”™è¯¯ï¼šæ— æ¤åˆ†æ”¯ï¼š$branch_name" -#: git-rebase.sh:556 +#: git-rebase.sh:557 msgid "Cannot autostash" msgstr "æ— æ³• autostash" -#: git-rebase.sh:561 +#: git-rebase.sh:562 #, sh-format msgid "Created autostash: $stash_abbrev" msgstr "创建了 autostash: $stash_abbrev" -#: git-rebase.sh:565 +#: git-rebase.sh:566 msgid "Please commit or stash them." msgstr "请æ交或为它们ä¿å˜è¿›åº¦ã€‚" -#: git-rebase.sh:585 +#: git-rebase.sh:586 #, sh-format msgid "Current branch $branch_name is up to date." msgstr "当å‰åˆ†æ”¯ $branch_name 是最新的。" -#: git-rebase.sh:589 +#: git-rebase.sh:590 #, sh-format msgid "Current branch $branch_name is up to date, rebase forced." msgstr "当å‰åˆ†æ”¯ $branch_name 是最新的,强制å˜åŸºã€‚" -#: git-rebase.sh:600 +#: git-rebase.sh:601 #, sh-format msgid "Changes from $mb to $onto:" msgstr "å˜æ›´ä»Ž $mb 到 $onto:" -#: git-rebase.sh:609 +#: git-rebase.sh:610 msgid "First, rewinding head to replay your work on top of it..." msgstr "首先,é‡ç½®å¤´æŒ‡é’ˆä»¥ä¾¿åœ¨ä¸Šé¢é‡æ”¾æ‚¨çš„工作..." -#: git-rebase.sh:619 +#: git-rebase.sh:620 #, sh-format msgid "Fast-forwarded $branch_name to $onto_name." msgstr "å¿«è¿› $branch_name 至 $onto_name。" @@ -10228,23 +10360,23 @@ msgstr "您尚未建立åˆå§‹æ交" msgid "Cannot save the current index state" msgstr "æ— æ³•ä¿å˜å½“å‰ç´¢å¼•çŠ¶æ€" -#: git-stash.sh:123 git-stash.sh:136 +#: git-stash.sh:124 git-stash.sh:137 msgid "Cannot save the current worktree state" msgstr "æ— æ³•ä¿å˜å½“å‰å·¥ä½œåŒºçŠ¶æ€" -#: git-stash.sh:140 +#: git-stash.sh:141 msgid "No changes selected" msgstr "没有选择å˜æ›´" -#: git-stash.sh:143 +#: git-stash.sh:144 msgid "Cannot remove temporary index (can't happen)" msgstr "æ— æ³•åˆ é™¤ä¸´æ—¶ç´¢å¼•ï¼ˆä¸åº”å‘生)" -#: git-stash.sh:156 +#: git-stash.sh:157 msgid "Cannot record working tree state" msgstr "ä¸èƒ½è®°å½•å·¥ä½œåŒºçŠ¶æ€" -#: git-stash.sh:190 +#: git-stash.sh:191 #, sh-format msgid "Cannot update $ref_stash with $w_commit" msgstr "æ— æ³•ç”¨ $w_commit æ›´æ–° $ref_stash" @@ -10259,7 +10391,7 @@ msgstr "æ— æ³•ç”¨ $w_commit æ›´æ–° $ref_stash" #. $ 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:237 +#: git-stash.sh:238 #, sh-format msgid "" "error: unknown option for 'stash save': $option\n" @@ -10268,85 +10400,85 @@ msgstr "" "错误:'stash save' 的未知选项:$option\n" " è¦æ供一个æè¿°ä¿¡æ¯ï¼Œä½¿ç”¨ git stash save -- '$option'" -#: git-stash.sh:258 +#: git-stash.sh:259 msgid "No local changes to save" msgstr "没有è¦ä¿å˜çš„本地修改" -#: git-stash.sh:262 +#: git-stash.sh:263 msgid "Cannot initialize stash" msgstr "æ— æ³•åˆå§‹åŒ– stash" -#: git-stash.sh:266 +#: git-stash.sh:267 msgid "Cannot save the current status" msgstr "æ— æ³•ä¿å˜å½“å‰çŠ¶æ€" -#: git-stash.sh:284 +#: git-stash.sh:285 msgid "Cannot remove worktree changes" msgstr "æ— æ³•åˆ é™¤å·¥ä½œåŒºå˜æ›´" -#: git-stash.sh:383 +#: git-stash.sh:384 msgid "No stash found." msgstr "未å‘现 stash。" -#: git-stash.sh:390 +#: git-stash.sh:391 #, sh-format msgid "Too many revisions specified: $REV" msgstr "指定了太多的版本:$REV" -#: git-stash.sh:396 +#: git-stash.sh:397 #, sh-format msgid "$reference is not valid reference" msgstr "$reference ä¸æ˜¯æœ‰æ•ˆçš„引用" -#: git-stash.sh:424 +#: git-stash.sh:425 #, sh-format msgid "'$args' is not a stash-like commit" msgstr "'$args' ä¸æ˜¯ stash æ ·æ交" -#: git-stash.sh:435 +#: git-stash.sh:436 #, sh-format msgid "'$args' is not a stash reference" msgstr "'$args' ä¸æ˜¯ä¸€ä¸ª stash 引用" -#: git-stash.sh:443 +#: git-stash.sh:444 msgid "unable to refresh index" msgstr "æ— æ³•åˆ·æ–°ç´¢å¼•" -#: git-stash.sh:447 +#: git-stash.sh:448 msgid "Cannot apply a stash in the middle of a merge" msgstr "æ— æ³•åœ¨åˆå¹¶è¿‡ç¨‹ä¸æ¢å¤è¿›åº¦" -#: git-stash.sh:455 +#: git-stash.sh:456 msgid "Conflicts in index. Try without --index." msgstr "索引ä¸æœ‰å†²çªã€‚å°è¯•ä¸ä½¿ç”¨ --index。" -#: git-stash.sh:457 +#: git-stash.sh:458 msgid "Could not save index tree" msgstr "ä¸èƒ½ä¿å˜ç´¢å¼•æ ‘" -#: git-stash.sh:491 +#: git-stash.sh:492 msgid "Cannot unstage modified files" msgstr "æ— æ³•è¿˜åŽŸä¿®æ”¹çš„æ–‡ä»¶" -#: git-stash.sh:506 +#: git-stash.sh:507 msgid "Index was not unstashed." msgstr "索引的进度没有被æ¢å¤ã€‚" -#: git-stash.sh:529 +#: git-stash.sh:530 #, sh-format msgid "Dropped ${REV} ($s)" msgstr "丢弃了 ${REV} ($s)" -#: git-stash.sh:530 +#: git-stash.sh:531 #, sh-format msgid "${REV}: Could not drop stash entry" msgstr "${REV}:ä¸èƒ½ä¸¢å¼ƒè¿›åº¦æ¡ç›®" -#: git-stash.sh:537 +#: git-stash.sh:538 msgid "No branch name specified" msgstr "未指定分支å" -#: git-stash.sh:609 +#: git-stash.sh:610 msgid "(To restore them type \"git stash apply\")" msgstr "(为æ¢å¤æ•°æ®è¾“å…¥ \"git stash apply\")" @@ -10365,26 +10497,26 @@ msgstr "未在 .gitmodules ä¸å‘现路径 '$sm_path' çš„åæ¨¡ç»„æ˜ å°„" msgid "Clone of '$url' into submodule path '$sm_path' failed" msgstr "æ— æ³•å…‹éš† '$url' 到å模组路径 '$sm_path'" -#: git-submodule.sh:299 +#: git-submodule.sh:296 #, sh-format msgid "Gitdir '$a' is part of the submodule path '$b' or vice versa" msgstr "Gitdir '$a' 在å模组路径 '$b' 之下或相å" -#: git-submodule.sh:409 +#: git-submodule.sh:406 msgid "Relative path can only be used from the toplevel of the working tree" msgstr "åªèƒ½åœ¨å·¥ä½œåŒºçš„顶级目录ä¸ä½¿ç”¨ç›¸å¯¹è·¯å¾„" -#: git-submodule.sh:419 +#: git-submodule.sh:416 #, sh-format msgid "repo URL: '$repo' must be absolute or begin with ./|../" msgstr "版本库URL:'$repo' 必须是ç»å¯¹è·¯å¾„或以 ./|../ 起始" -#: git-submodule.sh:436 +#: git-submodule.sh:433 #, sh-format msgid "'$sm_path' already exists in the index" msgstr "'$sm_path' å·²ç»å˜åœ¨äºŽç´¢å¼•ä¸" -#: git-submodule.sh:440 +#: git-submodule.sh:437 #, sh-format msgid "" "The following path is ignored by one of your .gitignore files:\n" @@ -10395,134 +10527,134 @@ msgstr "" "$sm_path\n" "å¦‚æžœæ‚¨ç¡®å®žæƒ³æ·»åŠ å®ƒï¼Œä½¿ç”¨ -f å‚数。" -#: git-submodule.sh:458 +#: git-submodule.sh:455 #, sh-format msgid "Adding existing repo at '$sm_path' to the index" msgstr "æ·»åŠ ä½äºŽ '$sm_path' 的现å˜ç‰ˆæœ¬åº“到索引" -#: git-submodule.sh:460 +#: git-submodule.sh:457 #, sh-format msgid "'$sm_path' already exists and is not a valid git repo" msgstr "'$sm_path' å·²å˜åœ¨ä¸”ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„ git 版本库" -#: git-submodule.sh:468 +#: git-submodule.sh:465 #, sh-format msgid "A git directory for '$sm_name' is found locally with remote(s):" msgstr "本地å‘现 '$sm_name' 的一个 git 目录,与其对应的远程版本库:" -#: git-submodule.sh:470 +#: git-submodule.sh:467 #, sh-format msgid "" "If you want to reuse this local git directory instead of cloning again from" msgstr "如果您想é‡ç”¨æ¤æœ¬åœ° git 目录而ä¸æ˜¯é‡æ–°å…‹éš†è‡ª" -#: git-submodule.sh:472 +#: git-submodule.sh:469 #, sh-format msgid "" "use the '--force' option. If the local git directory is not the correct repo" msgstr "使用 '--force' å‚数。如果本地 git 目录ä¸æ˜¯æ£ç¡®çš„版本库" -#: git-submodule.sh:473 +#: git-submodule.sh:470 #, sh-format msgid "" "or you are unsure what this means choose another name with the '--name' " "option." msgstr "或者您ä¸ç¡®å®šå…¶ä¸å«ä¹‰ä½¿ç”¨ '--name' å‚数选择å¦å¤–一个å称。" -#: git-submodule.sh:475 +#: git-submodule.sh:472 #, sh-format msgid "Reactivating local git directory for submodule '$sm_name'." msgstr "激活本地 git 目录到å模组 '$sm_name'。" -#: git-submodule.sh:487 +#: git-submodule.sh:484 #, sh-format msgid "Unable to checkout submodule '$sm_path'" msgstr "ä¸èƒ½æ£€å‡ºå模组 '$sm_path'" -#: git-submodule.sh:492 +#: git-submodule.sh:489 #, sh-format msgid "Failed to add submodule '$sm_path'" msgstr "æ— æ³•æ·»åŠ å模组 '$sm_path'" -#: git-submodule.sh:501 +#: git-submodule.sh:498 #, sh-format msgid "Failed to register submodule '$sm_path'" msgstr "æ— æ³•æ³¨å†Œå模组 '$sm_path'" -#: git-submodule.sh:545 +#: git-submodule.sh:542 #, sh-format msgid "Entering '$prefix$displaypath'" msgstr "æ£åœ¨è¿›å…¥ '$prefix$displaypath'" -#: git-submodule.sh:565 +#: git-submodule.sh:562 #, sh-format msgid "Stopping at '$prefix$displaypath'; script returned non-zero status." msgstr "åœæ¢äºŽ '$prefix$displaypath',脚本返回éžé›¶å€¼ã€‚" -#: git-submodule.sh:611 +#: git-submodule.sh:608 #, sh-format msgid "No url found for submodule path '$displaypath' in .gitmodules" msgstr "在 .gitmodules ä¸æœªæ‰¾åˆ°å模组路径 '$displaypath' çš„ url" -#: git-submodule.sh:620 +#: git-submodule.sh:617 #, sh-format msgid "Failed to register url for submodule path '$displaypath'" msgstr "æ— æ³•ä¸ºå模组路径 '$displaypath' 注册 url" -#: git-submodule.sh:622 +#: git-submodule.sh:619 #, sh-format msgid "Submodule '$name' ($url) registered for path '$displaypath'" msgstr "å模组 '$name' ($url) 未对路径 '$displaypath' 注册" -#: git-submodule.sh:639 +#: git-submodule.sh:636 #, sh-format msgid "Failed to register update mode for submodule path '$displaypath'" msgstr "æ— æ³•ä¸ºå模组路径 '$displaypath' 注册更新模å¼" -#: git-submodule.sh:677 +#: git-submodule.sh:674 #, sh-format msgid "Use '.' if you really want to deinitialize all submodules" msgstr "使用 '.' 如果您真的想è¦å¯¹æ‰€æœ‰å模组å–消åˆå§‹åŒ–" -#: git-submodule.sh:694 +#: git-submodule.sh:691 #, sh-format msgid "Submodule work tree '$displaypath' contains a .git directory" msgstr "å模组工作区 '$displaypath' 包å«ä¸€ä¸ª .git 目录" -#: git-submodule.sh:695 +#: git-submodule.sh:692 #, sh-format msgid "" "(use 'rm -rf' if you really want to remove it including all of its history)" msgstr "(使用 'rm -rf' å‘½ä»¤å¦‚æžœæ‚¨çœŸçš„æƒ³åˆ é™¤å®ƒåŠå…¶å…¨éƒ¨åŽ†å²ï¼‰" -#: git-submodule.sh:701 +#: git-submodule.sh:698 #, sh-format msgid "" "Submodule work tree '$displaypath' contains local modifications; use '-f' to " "discard them" msgstr "å模组工作区 '$displaypath' 包å«æœ¬åœ°ä¿®æ”¹ï¼›ä½¿ç”¨ '-f' 丢弃它们" -#: git-submodule.sh:704 +#: git-submodule.sh:701 #, sh-format msgid "Cleared directory '$displaypath'" msgstr "已清除目录 '$displaypath'" -#: git-submodule.sh:705 +#: git-submodule.sh:702 #, sh-format msgid "Could not remove submodule work tree '$displaypath'" msgstr "æ— æ³•ç§»é™¤å模组工作区 '$displaypath'" -#: git-submodule.sh:708 +#: git-submodule.sh:705 #, sh-format msgid "Could not create empty submodule directory '$displaypath'" msgstr "ä¸èƒ½åˆ›å»ºç©ºçš„å模组目录 '$displaypath'" -#: git-submodule.sh:717 +#: git-submodule.sh:714 #, sh-format msgid "Submodule '$name' ($url) unregistered for path '$displaypath'" msgstr "å模组 '$name' ($url) 未对路径 '$displaypath' 注册" -#: git-submodule.sh:833 +#: git-submodule.sh:830 #, sh-format msgid "" "Submodule path '$displaypath' not initialized\n" @@ -10531,108 +10663,114 @@ msgstr "" "å模组路径 '$displaypath' 没有åˆå§‹åŒ–\n" "也许您想用 'update --init'?" -#: git-submodule.sh:846 +#: git-submodule.sh:843 #, sh-format msgid "Unable to find current revision in submodule path '$displaypath'" msgstr "æ— æ³•åœ¨å模组路径 '$displaypath' ä¸æ‰¾åˆ°å½“å‰ç‰ˆæœ¬" -#: git-submodule.sh:855 +#: git-submodule.sh:852 #, sh-format msgid "Unable to fetch in submodule path '$sm_path'" msgstr "æ— æ³•åœ¨å模组路径 '$sm_path' ä¸èŽ·å–" -#: git-submodule.sh:879 +#: git-submodule.sh:876 #, sh-format msgid "Unable to fetch in submodule path '$displaypath'" msgstr "æ— æ³•åœ¨å模组路径 '$displaypath' ä¸èŽ·å–" -#: git-submodule.sh:893 +#: git-submodule.sh:890 #, sh-format msgid "Unable to checkout '$sha1' in submodule path '$displaypath'" msgstr "æ— æ³•åœ¨å模组路径 '$displaypath' ä¸æ£€å‡º '$sha1'" -#: git-submodule.sh:894 +#: git-submodule.sh:891 #, sh-format msgid "Submodule path '$displaypath': checked out '$sha1'" msgstr "å模组路径 '$displaypath':检出 '$sha1'" -#: git-submodule.sh:898 +#: git-submodule.sh:895 #, sh-format msgid "Unable to rebase '$sha1' in submodule path '$displaypath'" msgstr "æ— æ³•åœ¨å模组路径 '$displaypath' ä¸å˜åŸº '$sha1'" -#: git-submodule.sh:899 +#: git-submodule.sh:896 #, sh-format msgid "Submodule path '$displaypath': rebased into '$sha1'" msgstr "å模组路径 '$displaypath':å˜åŸºè‡³ '$sha1'" -#: git-submodule.sh:904 +#: git-submodule.sh:901 #, sh-format msgid "Unable to merge '$sha1' in submodule path '$displaypath'" msgstr "æ— æ³•åˆå¹¶ '$sha1' 到å模组路径 '$displaypath' ä¸" -#: git-submodule.sh:905 +#: git-submodule.sh:902 #, sh-format msgid "Submodule path '$displaypath': merged in '$sha1'" msgstr "å模组路径 '$displaypath':已åˆå¹¶å…¥ '$sha1'" -#: git-submodule.sh:910 +#: git-submodule.sh:907 #, sh-format msgid "" "Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'" msgstr "在å模组路径 '$prefix$sm_path' ä¸æ‰§è¡Œ '$command $sha1' 失败" -#: git-submodule.sh:911 +#: git-submodule.sh:908 #, sh-format msgid "Submodule path '$prefix$sm_path': '$command $sha1'" msgstr "å模组路径 '$prefix$sm_path': '$command $sha1'" -#: git-submodule.sh:941 +#: git-submodule.sh:938 #, sh-format msgid "Failed to recurse into submodule path '$displaypath'" msgstr "æ— æ³•é€’å½’è¿›å模组路径 '$displaypath'" -#: git-submodule.sh:1049 +#: git-submodule.sh:1046 msgid "The --cached option cannot be used with the --files option" msgstr "选项 --cached ä¸èƒ½å’Œé€‰é¡¹ --files åŒæ—¶ä½¿ç”¨" -#: git-submodule.sh:1097 +#: git-submodule.sh:1098 #, sh-format msgid "unexpected mode $mod_dst" msgstr "æ„å¤–çš„æ¨¡å¼ $mod_dst" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: git-submodule.sh:1117 +#: git-submodule.sh:1118 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_src" msgstr " è¦å‘Šï¼š$display_name 未包å«æ交 $sha1_src" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: git-submodule.sh:1120 +#: git-submodule.sh:1121 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_dst" msgstr " è¦å‘Šï¼š$display_name 未包å«æ交 $sha1_dst" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: git-submodule.sh:1123 +#: git-submodule.sh:1124 #, 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:1148 +#: git-submodule.sh:1149 msgid "blob" msgstr "æ•°æ®å¯¹è±¡" -#: git-submodule.sh:1262 +#: git-submodule.sh:1267 #, sh-format msgid "Failed to recurse into submodule path '$sm_path'" msgstr "æ— æ³•é€’å½’è¿›å模组路径 '$sm_path'" -#: git-submodule.sh:1326 +#: git-submodule.sh:1331 #, sh-format msgid "Synchronizing submodule url for '$displaypath'" msgstr "为 '$displaypath' åŒæ¥å模组 url" +#~ msgid "commit has empty message" +#~ msgstr "æ交说明为空" + +#~ msgid "Failed to chdir: %s" +#~ msgstr "æ— æ³•åˆ‡æ¢ç›®å½•ï¼š%s" + #~ msgid "key id" #~ msgstr "key id" @@ -24,6 +24,11 @@ static size_t commit_formats_len; static size_t commit_formats_alloc; static struct cmt_fmt_map *find_commit_format(const char *sought); +int commit_format_is_empty(enum cmit_fmt fmt) +{ + return fmt == CMIT_FMT_USERFORMAT && !*user_format; +} + static void save_user_format(struct rev_info *rev, const char *cp, int is_tformat) { free(user_format); @@ -65,7 +70,9 @@ static int git_pretty_formats_config(const char *var, const char *value, void *c commit_format->name = xstrdup(name); commit_format->format = CMIT_FMT_USERFORMAT; - git_config_string(&fmt, var, value); + if (git_config_string(&fmt, var, value)) + return -1; + if (starts_with(fmt, "format:") || starts_with(fmt, "tformat:")) { commit_format->is_tformat = fmt[0] == 't'; fmt = strchr(fmt, ':') + 1; @@ -146,7 +153,7 @@ void get_commit_format(const char *arg, struct rev_info *rev) struct cmt_fmt_map *commit_format; rev->use_terminator = 0; - if (!arg || !*arg) { + if (!arg) { rev->commit_format = CMIT_FMT_DEFAULT; return; } @@ -155,7 +162,7 @@ void get_commit_format(const char *arg, struct rev_info *rev) return; } - if (strchr(arg, '%')) { + if (!*arg || strchr(arg, '%')) { save_user_format(rev, arg, 1); return; } @@ -547,31 +554,11 @@ static void add_merge_info(const struct pretty_print_context *pp, strbuf_addch(sb, '\n'); } -static char *get_header(const struct commit *commit, const char *msg, - const char *key) +static char *get_header(const char *msg, const char *key) { - int key_len = strlen(key); - const char *line = msg; - - while (line) { - const char *eol = strchrnul(line, '\n'), *next; - - if (line == eol) - return NULL; - if (!*eol) { - warning("malformed commit (header is missing newline): %s", - sha1_to_hex(commit->object.sha1)); - next = NULL; - } else - next = eol + 1; - if (eol - line > key_len && - !strncmp(line, key, key_len) && - line[key_len] == ' ') { - return xmemdupz(line + key_len + 1, eol - line - key_len - 1); - } - line = next; - } - return NULL; + size_t len; + const char *v = find_commit_header(msg, key, &len); + return v ? xmemdupz(v, len) : NULL; } static char *replace_encoding_header(char *buf, const char *encoding) @@ -617,11 +604,10 @@ const char *logmsg_reencode(const struct commit *commit, if (!output_encoding || !*output_encoding) { if (commit_encoding) - *commit_encoding = - get_header(commit, msg, "encoding"); + *commit_encoding = get_header(msg, "encoding"); return msg; } - encoding = get_header(commit, msg, "encoding"); + encoding = get_header(msg, "encoding"); if (commit_encoding) *commit_encoding = encoding; use_encoding = encoding ? encoding : utf8; @@ -731,9 +717,12 @@ static size_t format_person_part(struct strbuf *sb, char part, case 'r': /* date, relative */ strbuf_addstr(sb, show_ident_date(&s, DATE_RELATIVE)); return placeholder_len; - case 'i': /* date, ISO 8601 */ + case 'i': /* date, ISO 8601-like */ strbuf_addstr(sb, show_ident_date(&s, DATE_ISO8601)); return placeholder_len; + case 'I': /* date, ISO 8601 strict */ + strbuf_addstr(sb, show_ident_date(&s, DATE_ISO8601_STRICT)); + return placeholder_len; } skip: @@ -1190,6 +1179,10 @@ static size_t format_commit_one(struct strbuf *sb, /* in UTF-8 */ load_ref_decorations(DECORATE_SHORT_REFS); format_decorations(sb, commit, c->auto_color); return 1; + case 'D': + load_ref_decorations(DECORATE_SHORT_REFS); + format_decorations_extended(sb, commit, c->auto_color, "", ", ", ""); + return 1; case 'g': /* reflog info */ switch(placeholder[1]) { case 'd': /* reflog selector */ @@ -1388,9 +1381,7 @@ static size_t format_and_pad_commit(struct strbuf *sb, /* in UTF-8 */ * convert it back to chars */ padding = padding - len + local_sb.len; - strbuf_grow(sb, padding); - strbuf_setlen(sb, sb_len + padding); - memset(sb->buf + sb_len, ' ', sb->len - sb_len); + strbuf_addchars(sb, ' ', padding); memcpy(sb->buf + sb_len + offset, local_sb.buf, local_sb.len); } @@ -1665,10 +1656,8 @@ void pp_remainder(struct pretty_print_context *pp, first = 0; strbuf_grow(sb, linelen + indent + 20); - if (indent) { - memset(sb->buf + sb->len, ' ', indent); - strbuf_setlen(sb, sb->len + indent); - } + if (indent) + strbuf_addchars(sb, ' ', indent); strbuf_add(sb, line, linelen); strbuf_addch(sb, '\n'); } @@ -6,7 +6,7 @@ static char *do_askpass(const char *cmd, const char *prompt) { - struct child_process pass; + struct child_process pass = CHILD_PROCESS_INIT; const char *args[3]; static struct strbuf buffer = STRBUF_INIT; int err = 0; @@ -15,7 +15,6 @@ static char *do_askpass(const char *cmd, const char *prompt) args[1] = prompt; args[2] = NULL; - memset(&pass, 0, sizeof(pass)); pass.argv = args; pass.out = -1; diff --git a/reachable.c b/reachable.c index 654a8c58d6..6f6835bf27 100644 --- a/reachable.c +++ b/reachable.c @@ -229,6 +229,9 @@ void mark_reachable_objects(struct rev_info *revs, int mark_reflog, /* Add all external refs */ for_each_ref(add_one_ref, revs); + /* detached HEAD is not included in the list above */ + head_ref(add_one_ref, revs); + /* Add all reflog info */ if (mark_reflog) for_each_reflog(add_one_reflog, revs); diff --git a/read-cache.c b/read-cache.c index 5d3c8bd4aa..2fc1182f22 100644 --- a/read-cache.c +++ b/read-cache.c @@ -1064,6 +1064,14 @@ static struct cache_entry *refresh_cache_ent(struct index_state *istate, return ce; } + if (has_symlink_leading_path(ce->name, ce_namelen(ce))) { + if (ignore_missing) + return ce; + if (err) + *err = ENOENT; + return NULL; + } + if (lstat(ce->name, &st) < 0) { if (ignore_missing && errno == ENOENT) return ce; @@ -1238,24 +1246,16 @@ static struct cache_entry *refresh_cache_entry(struct cache_entry *ce, #define INDEX_FORMAT_DEFAULT 3 -static int index_format_config(const char *var, const char *value, void *cb) -{ - unsigned int *version = cb; - if (!strcmp(var, "index.version")) { - *version = git_config_int(var, value); - return 0; - } - return 1; -} - static unsigned int get_index_format_default(void) { char *envversion = getenv("GIT_INDEX_VERSION"); char *endp; + int value; unsigned int version = INDEX_FORMAT_DEFAULT; if (!envversion) { - git_config(index_format_config, &version); + if (!git_config_get_int("index.version", &value)) + version = value; if (version < INDEX_FORMAT_LB || INDEX_FORMAT_UB < version) { warning(_("index.version set, but the value is invalid.\n" "Using version %i"), INDEX_FORMAT_DEFAULT); @@ -1465,6 +1465,21 @@ static struct cache_entry *create_from_disk(struct ondisk_cache_entry *ondisk, return ce; } +static void check_ce_order(struct cache_entry *ce, struct cache_entry *next_ce) +{ + int name_compare = strcmp(ce->name, next_ce->name); + if (0 < name_compare) + die("unordered stage entries in index"); + if (!name_compare) { + if (!ce_stage(ce)) + die("multiple stage entries for merged file '%s'", + ce->name); + if (ce_stage(ce) > ce_stage(next_ce)) + die("unordered stage entries for '%s'", + ce->name); + } +} + /* remember to discard_cache() before reading a different cache! */ int do_read_index(struct index_state *istate, const char *path, int must_exist) { @@ -1526,6 +1541,9 @@ int do_read_index(struct index_state *istate, const char *path, int must_exist) ce = create_from_disk(disk_ce, &consumed, previous_name); set_index_entry(istate, i, ce); + if (i > 0) + check_ce_order(istate->cache[i - 1], ce); + src_offset += consumed; } strbuf_release(&previous_name_buf); @@ -2172,7 +2190,6 @@ int read_index_unmerged(struct index_state *istate) if (add_index_entry(istate, new_ce, 0)) return error("%s: cannot drop to stage #0", new_ce->name); - i = index_name_pos(istate, new_ce->name, len); } return unmerged; } diff --git a/reflog-walk.c b/reflog-walk.c index 9ce8b53ccc..0e5174b605 100644 --- a/reflog-walk.c +++ b/reflog-walk.c @@ -133,7 +133,7 @@ struct reflog_walk_info { struct commit_reflog *last_commit_reflog; }; -void init_reflog_walk(struct reflog_walk_info** info) +void init_reflog_walk(struct reflog_walk_info **info) { *info = xcalloc(1, sizeof(struct reflog_walk_info)); } diff --git a/reflog-walk.h b/reflog-walk.h index 50265f51c5..a9bd60e32d 100644 --- a/reflog-walk.h +++ b/reflog-walk.h @@ -5,7 +5,7 @@ struct reflog_walk_info; -extern void init_reflog_walk(struct reflog_walk_info** info); +extern void init_reflog_walk(struct reflog_walk_info **info); extern int add_reflog_for_walk(struct reflog_walk_info *info, struct commit *commit, const char *name); extern void fake_reflog_parent(struct reflog_walk_info *info, @@ -25,6 +25,11 @@ static unsigned char refname_disposition[256] = { }; /* + * Used as a flag to ref_transaction_delete when a loose ref is being + * pruned. + */ +#define REF_ISPRUNING 0x0100 +/* * Try to read one refname component from the front of refname. * Return the length of the component found, or -1 if the component is * not legal. It is legal if it is something reasonable to have under @@ -779,37 +784,32 @@ static void prime_ref_dir(struct ref_dir *dir) prime_ref_dir(get_ref_dir(entry)); } } -/* - * Return true iff refname1 and refname2 conflict with each other. - * Two reference names conflict if one of them exactly matches the - * leading components of the other; e.g., "foo/bar" conflicts with - * both "foo" and with "foo/bar/baz" but not with "foo/bar" or - * "foo/barbados". - */ -static int names_conflict(const char *refname1, const char *refname2) + +static int entry_matches(struct ref_entry *entry, const char *refname) { - for (; *refname1 && *refname1 == *refname2; refname1++, refname2++) - ; - return (*refname1 == '\0' && *refname2 == '/') - || (*refname1 == '/' && *refname2 == '\0'); + return refname && !strcmp(entry->name, refname); } -struct name_conflict_cb { - const char *refname; - const char *oldrefname; - const char *conflicting_refname; +struct nonmatching_ref_data { + const char *skip; + struct ref_entry *found; }; -static int name_conflict_fn(struct ref_entry *entry, void *cb_data) +static int nonmatching_ref_fn(struct ref_entry *entry, void *vdata) { - struct name_conflict_cb *data = (struct name_conflict_cb *)cb_data; - if (data->oldrefname && !strcmp(data->oldrefname, entry->name)) + struct nonmatching_ref_data *data = vdata; + + if (entry_matches(entry, data->skip)) return 0; - if (names_conflict(data->refname, entry->name)) { - data->conflicting_refname = entry->name; - return 1; - } - return 0; + + data->found = entry; + return 1; +} + +static void report_refname_conflict(struct ref_entry *entry, + const char *refname) +{ + error("'%s' exists; cannot create '%s'", entry->name, refname); } /* @@ -818,21 +818,84 @@ static int name_conflict_fn(struct ref_entry *entry, void *cb_data) * oldrefname is non-NULL, ignore potential conflicts with oldrefname * (e.g., because oldrefname is scheduled for deletion in the same * operation). + * + * Two reference names conflict if one of them exactly matches the + * leading components of the other; e.g., "foo/bar" conflicts with + * both "foo" and with "foo/bar/baz" but not with "foo/bar" or + * "foo/barbados". */ static int is_refname_available(const char *refname, const char *oldrefname, struct ref_dir *dir) { - struct name_conflict_cb data; - data.refname = refname; - data.oldrefname = oldrefname; - data.conflicting_refname = NULL; + const char *slash; + size_t len; + int pos; + char *dirname; - sort_ref_dir(dir); - if (do_for_each_entry_in_dir(dir, 0, name_conflict_fn, &data)) { - error("'%s' exists; cannot create '%s'", - data.conflicting_refname, refname); + for (slash = strchr(refname, '/'); slash; slash = strchr(slash + 1, '/')) { + /* + * We are still at a leading dir of the refname; we are + * looking for a conflict with a leaf entry. + * + * If we find one, we still must make sure it is + * not "oldrefname". + */ + pos = search_ref_dir(dir, refname, slash - refname); + if (pos >= 0) { + struct ref_entry *entry = dir->entries[pos]; + if (entry_matches(entry, oldrefname)) + return 1; + report_refname_conflict(entry, refname); + return 0; + } + + + /* + * Otherwise, we can try to continue our search with + * the next component; if we come up empty, we know + * there is nothing under this whole prefix. + */ + pos = search_ref_dir(dir, refname, slash + 1 - refname); + if (pos < 0) + return 1; + + dir = get_ref_dir(dir->entries[pos]); + } + + /* + * We are at the leaf of our refname; we want to + * make sure there are no directories which match it. + */ + len = strlen(refname); + dirname = xmallocz(len + 1); + sprintf(dirname, "%s/", refname); + pos = search_ref_dir(dir, dirname, len + 1); + free(dirname); + + if (pos >= 0) { + /* + * We found a directory named "refname". It is a + * problem iff it contains any ref that is not + * "oldrefname". + */ + struct ref_entry *entry = dir->entries[pos]; + struct ref_dir *dir = get_ref_dir(entry); + struct nonmatching_ref_data data; + + data.skip = oldrefname; + sort_ref_dir(dir); + if (!do_for_each_entry_in_dir(dir, 0, nonmatching_ref_fn, &data)) + return 1; + + report_refname_conflict(data.found, refname); return 0; } + + /* + * There is no point in searching for another leaf + * node which matches it; such an entry would be the + * ref we are looking for, not a conflict. + */ return 1; } @@ -2068,7 +2131,10 @@ int dwim_log(const char *str, int len, unsigned char *sha1, char **log) return logs_found; } -/* This function should make sure errno is meaningful on error */ +/* + * Locks a "refs/" ref returning the lock on success and NULL on failure. + * On failure errno is set to something meaningful. + */ static struct ref_lock *lock_ref_sha1_basic(const char *refname, const unsigned char *old_sha1, int flags, int *type_p) @@ -2169,15 +2235,6 @@ static struct ref_lock *lock_ref_sha1_basic(const char *refname, return NULL; } -struct ref_lock *lock_ref_sha1(const char *refname, const unsigned char *old_sha1) -{ - char refpath[PATH_MAX]; - if (check_refname_format(refname, 0)) - return NULL; - strcpy(refpath, mkpath("refs/%s", refname)); - return lock_ref_sha1_basic(refpath, old_sha1, 0, NULL); -} - struct ref_lock *lock_any_ref_for_update(const char *refname, const unsigned char *old_sha1, int flags, int *type_p) @@ -2191,25 +2248,12 @@ struct ref_lock *lock_any_ref_for_update(const char *refname, * Write an entry to the packed-refs file for the specified refname. * If peeled is non-NULL, write it as the entry's peeled value. */ -static void write_packed_entry(int fd, char *refname, unsigned char *sha1, +static void write_packed_entry(FILE *fh, char *refname, unsigned char *sha1, unsigned char *peeled) { - char line[PATH_MAX + 100]; - int len; - - len = snprintf(line, sizeof(line), "%s %s\n", - sha1_to_hex(sha1), refname); - /* this should not happen but just being defensive */ - if (len > sizeof(line)) - die("too long a refname '%s'", refname); - write_or_die(fd, line, len); - - if (peeled) { - if (snprintf(line, sizeof(line), "^%s\n", - sha1_to_hex(peeled)) != PEELED_LINE_LENGTH) - die("internal error"); - write_or_die(fd, line, PEELED_LINE_LENGTH); - } + fprintf_or_die(fh, "%s %s\n", sha1_to_hex(sha1), refname); + if (peeled) + fprintf_or_die(fh, "^%s\n", sha1_to_hex(peeled)); } /* @@ -2217,13 +2261,12 @@ static void write_packed_entry(int fd, char *refname, unsigned char *sha1, */ static int write_packed_entry_fn(struct ref_entry *entry, void *cb_data) { - int *fd = cb_data; enum peel_status peel_status = peel_entry(entry, 0); if (peel_status != PEEL_PEELED && peel_status != PEEL_NON_TAG) error("internal error: %s is not a valid packed reference!", entry->name); - write_packed_entry(*fd, entry->name, entry->u.value.sha1, + write_packed_entry(cb_data, entry->name, entry->u.value.sha1, peel_status == PEEL_PEELED ? entry->u.value.peeled : NULL); return 0; @@ -2259,15 +2302,22 @@ int commit_packed_refs(void) get_packed_ref_cache(&ref_cache); int error = 0; int save_errno = 0; + FILE *out; if (!packed_ref_cache->lock) die("internal error: packed-refs not locked"); - write_or_die(packed_ref_cache->lock->fd, - PACKED_REFS_HEADER, strlen(PACKED_REFS_HEADER)); + out = fdopen(packed_ref_cache->lock->fd, "w"); + if (!out) + die_errno("unable to fdopen packed-refs descriptor"); + + fprintf_or_die(out, "%s", PACKED_REFS_HEADER); do_for_each_entry_in_dir(get_packed_ref_dir(packed_ref_cache), - 0, write_packed_entry_fn, - &packed_ref_cache->lock->fd); + 0, write_packed_entry_fn, out); + if (fclose(out)) + die_errno("write error"); + packed_ref_cache->lock->fd = -1; + if (commit_lock_file(packed_ref_cache->lock)) { save_errno = errno; error = -1; @@ -2387,13 +2437,25 @@ static void try_remove_empty_parents(char *name) /* make sure nobody touched the ref, and unlink */ static void prune_ref(struct ref_to_prune *r) { - struct ref_lock *lock = lock_ref_sha1(r->name + 5, r->sha1); + struct ref_transaction *transaction; + struct strbuf err = STRBUF_INIT; - if (lock) { - unlink_or_warn(git_path("%s", r->name)); - unlock_ref(lock); - try_remove_empty_parents(r->name); + if (check_refname_format(r->name, 0)) + return; + + transaction = ref_transaction_begin(&err); + if (!transaction || + ref_transaction_delete(transaction, r->name, r->sha1, + REF_ISPRUNING, 1, &err) || + ref_transaction_commit(transaction, NULL, &err)) { + ref_transaction_free(transaction); + error("%s", err.buf); + strbuf_release(&err); + return; } + ref_transaction_free(transaction); + strbuf_release(&err); + try_remove_empty_parents(r->name); } static void prune_refs(struct ref_to_prune *r) @@ -2536,11 +2598,6 @@ int repack_without_refs(const char **refnames, int n, struct strbuf *err) return ret; } -static int repack_without_ref(const char *refname) -{ - return repack_without_refs(&refname, 1, NULL); -} - static int delete_ref_loose(struct ref_lock *lock, int flag) { if (!(flag & REF_ISPACKED) || flag & REF_ISSYMREF) { @@ -2558,24 +2615,22 @@ static int delete_ref_loose(struct ref_lock *lock, int flag) int delete_ref(const char *refname, const unsigned char *sha1, int delopt) { - struct ref_lock *lock; - int ret = 0, flag = 0; - - lock = lock_ref_sha1_basic(refname, sha1, delopt, &flag); - if (!lock) + struct ref_transaction *transaction; + struct strbuf err = STRBUF_INIT; + + transaction = ref_transaction_begin(&err); + if (!transaction || + ref_transaction_delete(transaction, refname, sha1, delopt, + sha1 && !is_null_sha1(sha1), &err) || + ref_transaction_commit(transaction, NULL, &err)) { + error("%s", err.buf); + ref_transaction_free(transaction); + strbuf_release(&err); return 1; - ret |= delete_ref_loose(lock, flag); - - /* removing the loose one could have resurrected an earlier - * packed one. Also, if it was not loose we need to repack - * without it. - */ - ret |= repack_without_ref(lock->ref_name); - - unlink_or_warn(git_path("logs/%s", lock->ref_name)); - clear_loose_ref_cache(&ref_cache); - unlock_ref(lock); - return ret; + } + ref_transaction_free(transaction); + strbuf_release(&err); + return 0; } /* @@ -3104,7 +3159,7 @@ static int read_ref_at_ent_oldest(unsigned char *osha1, unsigned char *nsha1, return 1; } -int read_ref_at(const char *refname, unsigned long at_time, int cnt, +int read_ref_at(const char *refname, unsigned int flags, unsigned long at_time, int cnt, unsigned char *sha1, char **msg, unsigned long *cutoff_time, int *cutoff_tz, int *cutoff_cnt) { @@ -3122,8 +3177,12 @@ int read_ref_at(const char *refname, unsigned long at_time, int cnt, for_each_reflog_ent_reverse(refname, read_ref_at_ent, &cb); - if (!cb.reccnt) - die("Log for %s is empty.", refname); + if (!cb.reccnt) { + if (flags & GET_SHA1_QUIETLY) + exit(128); + else + die("Log for %s is empty.", refname); + } if (cb.found_it) return 0; @@ -3332,43 +3391,6 @@ int for_each_reflog(each_ref_fn fn, void *cb_data) return retval; } -static struct ref_lock *update_ref_lock(const char *refname, - const unsigned char *oldval, - int flags, int *type_p, - enum action_on_err onerr) -{ - struct ref_lock *lock; - lock = lock_any_ref_for_update(refname, oldval, flags, type_p); - if (!lock) { - const char *str = "Cannot lock the ref '%s'."; - switch (onerr) { - case UPDATE_REFS_MSG_ON_ERR: error(str, refname); break; - case UPDATE_REFS_DIE_ON_ERR: die(str, refname); break; - case UPDATE_REFS_QUIET_ON_ERR: break; - } - } - return lock; -} - -static int update_ref_write(const char *action, const char *refname, - const unsigned char *sha1, struct ref_lock *lock, - struct strbuf *err, enum action_on_err onerr) -{ - if (write_ref_sha1(lock, sha1, action) < 0) { - const char *str = "Cannot update the ref '%s'."; - if (err) - strbuf_addf(err, str, refname); - - switch (onerr) { - case UPDATE_REFS_MSG_ON_ERR: error(str, refname); break; - case UPDATE_REFS_DIE_ON_ERR: die(str, refname); break; - case UPDATE_REFS_QUIET_ON_ERR: break; - } - return 1; - } - return 0; -} - /** * Information needed for a single ref update. Set new_sha1 to the * new value or to zero to delete the ref. To check the old value @@ -3386,6 +3408,21 @@ struct ref_update { }; /* + * Transaction states. + * OPEN: The transaction is in a valid state and can accept new updates. + * An OPEN transaction can be committed. + * CLOSED: A closed transaction is no longer active and no other operations + * than free can be used on it in this state. + * A transaction can either become closed by successfully committing + * an active transaction or if there is a failure while building + * the transaction thus rendering it failed/inactive. + */ +enum ref_transaction_state { + REF_TRANSACTION_OPEN = 0, + REF_TRANSACTION_CLOSED = 1 +}; + +/* * Data structure for holding a reference transaction, which can * consist of checks and updates to multiple references, carried out * as atomically as possible. This structure is opaque to callers. @@ -3394,9 +3431,10 @@ struct ref_transaction { struct ref_update **updates; size_t alloc; size_t nr; + enum ref_transaction_state state; }; -struct ref_transaction *ref_transaction_begin(void) +struct ref_transaction *ref_transaction_begin(struct strbuf *err) { return xcalloc(1, sizeof(struct ref_transaction)); } @@ -3436,6 +3474,9 @@ int ref_transaction_update(struct ref_transaction *transaction, { struct ref_update *update; + if (transaction->state != REF_TRANSACTION_OPEN) + die("BUG: update called for transaction that is not open"); + if (have_old && !old_sha1) die("BUG: have_old is true but old_sha1 is NULL"); @@ -3448,44 +3489,84 @@ int ref_transaction_update(struct ref_transaction *transaction, return 0; } -void ref_transaction_create(struct ref_transaction *transaction, - const char *refname, - const unsigned char *new_sha1, - int flags) +int ref_transaction_create(struct ref_transaction *transaction, + const char *refname, + const unsigned char *new_sha1, + int flags, + struct strbuf *err) { - struct ref_update *update = add_update(transaction, refname); + struct ref_update *update; + + if (transaction->state != REF_TRANSACTION_OPEN) + die("BUG: create called for transaction that is not open"); + + if (!new_sha1 || is_null_sha1(new_sha1)) + die("BUG: create ref with null new_sha1"); + + update = add_update(transaction, refname); - assert(!is_null_sha1(new_sha1)); hashcpy(update->new_sha1, new_sha1); hashclr(update->old_sha1); update->flags = flags; update->have_old = 1; + return 0; } -void ref_transaction_delete(struct ref_transaction *transaction, - const char *refname, - const unsigned char *old_sha1, - int flags, int have_old) +int ref_transaction_delete(struct ref_transaction *transaction, + const char *refname, + const unsigned char *old_sha1, + int flags, int have_old, + struct strbuf *err) { - struct ref_update *update = add_update(transaction, refname); + struct ref_update *update; + + if (transaction->state != REF_TRANSACTION_OPEN) + die("BUG: delete called for transaction that is not open"); + + if (have_old && !old_sha1) + die("BUG: have_old is true but old_sha1 is NULL"); + update = add_update(transaction, refname); update->flags = flags; update->have_old = have_old; if (have_old) { assert(!is_null_sha1(old_sha1)); hashcpy(update->old_sha1, old_sha1); } + return 0; } int update_ref(const char *action, const char *refname, const unsigned char *sha1, const unsigned char *oldval, int flags, enum action_on_err onerr) { - struct ref_lock *lock; - lock = update_ref_lock(refname, oldval, flags, NULL, onerr); - if (!lock) + struct ref_transaction *t; + struct strbuf err = STRBUF_INIT; + + t = ref_transaction_begin(&err); + if (!t || + ref_transaction_update(t, refname, sha1, oldval, flags, + !!oldval, &err) || + ref_transaction_commit(t, action, &err)) { + const char *str = "update_ref failed for ref '%s': %s"; + + ref_transaction_free(t); + switch (onerr) { + case UPDATE_REFS_MSG_ON_ERR: + error(str, refname, err.buf); + break; + case UPDATE_REFS_DIE_ON_ERR: + die(str, refname, err.buf); + break; + case UPDATE_REFS_QUIET_ON_ERR: + break; + } + strbuf_release(&err); return 1; - return update_ref_write(action, refname, sha1, lock, NULL, onerr); + } + strbuf_release(&err); + ref_transaction_free(t); + return 0; } static int ref_update_compare(const void *r1, const void *r2) @@ -3519,8 +3600,13 @@ int ref_transaction_commit(struct ref_transaction *transaction, int n = transaction->nr; struct ref_update **updates = transaction->updates; - if (!n) + if (transaction->state != REF_TRANSACTION_OPEN) + die("BUG: commit called for transaction that is not open"); + + if (!n) { + transaction->state = REF_TRANSACTION_CLOSED; return 0; + } /* Allocate work space */ delnames = xmalloc(sizeof(*delnames) * n); @@ -3535,12 +3621,12 @@ int ref_transaction_commit(struct ref_transaction *transaction, for (i = 0; i < n; i++) { struct ref_update *update = updates[i]; - update->lock = update_ref_lock(update->refname, - (update->have_old ? - update->old_sha1 : NULL), - update->flags, - &update->type, - UPDATE_REFS_QUIET_ON_ERR); + update->lock = lock_any_ref_for_update(update->refname, + (update->have_old ? + update->old_sha1 : + NULL), + update->flags, + &update->type); if (!update->lock) { if (err) strbuf_addf(err, "Cannot lock the ref '%s'.", @@ -3555,14 +3641,15 @@ int ref_transaction_commit(struct ref_transaction *transaction, struct ref_update *update = updates[i]; if (!is_null_sha1(update->new_sha1)) { - ret = update_ref_write(msg, - update->refname, - update->new_sha1, - update->lock, err, - UPDATE_REFS_QUIET_ON_ERR); - update->lock = NULL; /* freed by update_ref_write */ - if (ret) + ret = write_ref_sha1(update->lock, update->new_sha1, + msg); + update->lock = NULL; /* freed by write_ref_sha1 */ + if (ret) { + if (err) + strbuf_addf(err, "Cannot update the ref '%s'.", + update->refname); goto cleanup; + } } } @@ -3571,8 +3658,9 @@ int ref_transaction_commit(struct ref_transaction *transaction, struct ref_update *update = updates[i]; if (update->lock) { - delnames[delnum++] = update->lock->ref_name; ret |= delete_ref_loose(update->lock, update->type); + if (!(update->flags & REF_ISPRUNING)) + delnames[delnum++] = update->lock->ref_name; } } @@ -3582,6 +3670,8 @@ int ref_transaction_commit(struct ref_transaction *transaction, clear_loose_ref_cache(&ref_cache); cleanup: + transaction->state = REF_TRANSACTION_CLOSED; + for (i = 0; i < n; i++) if (updates[i]->lock) unlock_ref(updates[i]->lock); @@ -10,6 +10,38 @@ struct ref_lock { int force_write; }; +/* + * A ref_transaction represents a collection of ref updates + * that should succeed or fail together. + * + * Calling sequence + * ---------------- + * - Allocate and initialize a `struct ref_transaction` by calling + * `ref_transaction_begin()`. + * + * - List intended ref updates by calling functions like + * `ref_transaction_update()` and `ref_transaction_create()`. + * + * - Call `ref_transaction_commit()` to execute the transaction. + * If this succeeds, the ref updates will have taken place and + * the transaction cannot be rolled back. + * + * - At any time call `ref_transaction_free()` to discard the + * transaction and free associated resources. In particular, + * this rolls back the transaction if it has not been + * successfully committed. + * + * Error handling + * -------------- + * + * On error, transaction functions append a message about what + * went wrong to the 'err' argument. The message mentions what + * ref was being updated (if any) when the error occurred so it + * can be passed to 'die' or 'error' as-is. + * + * The message is appended to err without first clearing err. + * err will not be '\n' terminated. + */ struct ref_transaction; /* @@ -77,7 +109,7 @@ static inline const char *has_glob_specials(const char *pattern) extern int for_each_rawref(each_ref_fn, void *); extern void warn_dangling_symref(FILE *fp, const char *msg_fmt, const char *refname); -extern void warn_dangling_symrefs(FILE *fp, const char *msg_fmt, const struct string_list* refnames); +extern void warn_dangling_symrefs(FILE *fp, const char *msg_fmt, const struct string_list *refnames); /* * Lock the packed-refs file for writing. Flags is passed to @@ -141,14 +173,17 @@ extern int is_branch(const char *refname); extern int peel_ref(const char *refname, unsigned char *sha1); /* - * Locks a "refs/" ref returning the lock on success and NULL on failure. - * On failure errno is set to something meaningful. + * Flags controlling lock_any_ref_for_update(), ref_transaction_update(), + * ref_transaction_create(), etc. + * REF_NODEREF: act on the ref directly, instead of dereferencing + * symbolic references. + * + * Flags >= 0x100 are reserved for internal use. */ -extern struct ref_lock *lock_ref_sha1(const char *refname, const unsigned char *old_sha1); - -/** Locks any ref (for 'HEAD' type refs). */ #define REF_NODEREF 0x01 -/* errno is set to something meaningful on failure */ +/* + * This function sets errno to something meaningful on failure. + */ extern struct ref_lock *lock_any_ref_for_update(const char *refname, const unsigned char *old_sha1, int flags, int *type_p); @@ -171,7 +206,8 @@ extern int write_ref_sha1(struct ref_lock *lock, const unsigned char *sha1, cons int log_ref_setup(const char *refname, char *logfile, int bufsize); /** Reads log for the value of ref during at_time. **/ -extern int read_ref_at(const char *refname, unsigned long at_time, int cnt, +extern int read_ref_at(const char *refname, unsigned int flags, + unsigned long at_time, int cnt, unsigned char *sha1, char **msg, unsigned long *cutoff_time, int *cutoff_tz, int *cutoff_cnt); @@ -232,7 +268,7 @@ enum action_on_err { * Begin a reference transaction. The reference transaction must * be freed by calling ref_transaction_free(). */ -struct ref_transaction *ref_transaction_begin(void); +struct ref_transaction *ref_transaction_begin(struct strbuf *err); /* * The following functions add a reference check or update to a @@ -250,7 +286,7 @@ struct ref_transaction *ref_transaction_begin(void); * it must not have existed beforehand. * Function returns 0 on success and non-zero on failure. A failure to update * means that the transaction as a whole has failed and will need to be - * rolled back. On failure the err buffer will be updated. + * rolled back. */ int ref_transaction_update(struct ref_transaction *transaction, const char *refname, @@ -264,28 +300,34 @@ int ref_transaction_update(struct ref_transaction *transaction, * that the reference should have after the update; it must not be the * null SHA-1. It is verified that the reference does not exist * already. + * Function returns 0 on success and non-zero on failure. A failure to create + * means that the transaction as a whole has failed and will need to be + * rolled back. */ -void ref_transaction_create(struct ref_transaction *transaction, - const char *refname, - const unsigned char *new_sha1, - int flags); +int ref_transaction_create(struct ref_transaction *transaction, + const char *refname, + const unsigned char *new_sha1, + int flags, + struct strbuf *err); /* * Add a reference deletion to transaction. If have_old is true, then * old_sha1 holds the value that the reference should have had before * the update (which must not be the null SHA-1). + * Function returns 0 on success and non-zero on failure. A failure to delete + * means that the transaction as a whole has failed and will need to be + * rolled back. */ -void ref_transaction_delete(struct ref_transaction *transaction, - const char *refname, - const unsigned char *old_sha1, - int flags, int have_old); +int ref_transaction_delete(struct ref_transaction *transaction, + const char *refname, + const unsigned char *old_sha1, + int flags, int have_old, + struct strbuf *err); /* * Commit all of the changes that have been queued in transaction, as * atomically as possible. Return a nonzero value if there is a * problem. - * If err is non-NULL we will add an error string to it to explain why - * the transaction failed. The string does not end in newline. */ int ref_transaction_commit(struct ref_transaction *transaction, const char *msg, struct strbuf *err); diff --git a/remote-curl.c b/remote-curl.c index 0fcf2ce5ff..dd63bc27ab 100644 --- a/remote-curl.c +++ b/remote-curl.c @@ -25,7 +25,8 @@ struct options { update_shallow : 1, followtags : 1, dry_run : 1, - thin : 1; + thin : 1, + push_cert : 1; }; static struct options options; static struct string_list cas_options = STRING_LIST_INIT_DUP; @@ -106,6 +107,14 @@ static int set_option(const char *name, const char *value) else return -1; return 0; + } else if (!strcmp(name, "pushcert")) { + if (!strcmp(value, "true")) + options.push_cert = 1; + else if (!strcmp(value, "false")) + options.push_cert = 0; + else + return -1; + return 0; } else { return 1 /* unsupported */; } @@ -221,7 +230,7 @@ static int show_http_message(struct strbuf *type, struct strbuf *charset, return 0; } -static struct discovery* discover_refs(const char *service, int for_push) +static struct discovery *discover_refs(const char *service, int for_push) { struct strbuf exp = STRBUF_INIT; struct strbuf type = STRBUF_INIT; @@ -623,10 +632,9 @@ static int rpc_service(struct rpc_state *rpc, struct discovery *heads) const char *svc = rpc->service_name; struct strbuf buf = STRBUF_INIT; struct strbuf *preamble = rpc->stdin_preamble; - struct child_process client; + struct child_process client = CHILD_PROCESS_INIT; int err = 0; - memset(&client, 0, sizeof(client)); client.in = -1; client.out = -1; client.git_cmd = 1; @@ -863,6 +871,7 @@ static int push_git(struct discovery *heads, int nr_spec, char **specs) int i, err; struct argv_array args; struct string_list_item *cas_option; + struct strbuf preamble = STRBUF_INIT; argv_array_init(&args); argv_array_pushl(&args, "send-pack", "--stateless-rpc", "--helper-status", @@ -872,6 +881,8 @@ static int push_git(struct discovery *heads, int nr_spec, char **specs) argv_array_push(&args, "--thin"); if (options.dry_run) argv_array_push(&args, "--dry-run"); + if (options.push_cert) + argv_array_push(&args, "--signed"); if (options.verbosity == 0) argv_array_push(&args, "--quiet"); else if (options.verbosity > 1) @@ -880,17 +891,22 @@ static int push_git(struct discovery *heads, int nr_spec, char **specs) for_each_string_list_item(cas_option, &cas_options) argv_array_push(&args, cas_option->string); argv_array_push(&args, url.buf); + + argv_array_push(&args, "--stdin"); for (i = 0; i < nr_spec; i++) - argv_array_push(&args, specs[i]); + packet_buf_write(&preamble, "%s\n", specs[i]); + packet_buf_flush(&preamble); memset(&rpc, 0, sizeof(rpc)); rpc.service_name = "git-receive-pack", rpc.argv = args.argv; + rpc.stdin_preamble = &preamble; err = rpc_service(&rpc, heads); if (rpc.result.len) write_or_die(1, rpc.result.buf, rpc.result.len); strbuf_release(&rpc.result); + strbuf_release(&preamble); argv_array_clear(&args); return err; } diff --git a/remote-testsvn.c b/remote-testsvn.c index 686e07d317..48bf6eb93b 100644 --- a/remote-testsvn.c +++ b/remote-testsvn.c @@ -175,7 +175,7 @@ static int cmd_import(const char *line) char *note_msg; unsigned char head_sha1[20]; unsigned int startrev; - struct child_process svndump_proc; + struct child_process svndump_proc = CHILD_PROCESS_INIT; const char *command = "svnrdump"; if (read_ref(private_ref, head_sha1)) @@ -200,7 +200,6 @@ static int cmd_import(const char *line) if(dumpin_fd < 0) die_errno("Couldn't open svn dump file %s.", url); } else { - memset(&svndump_proc, 0, sizeof(struct child_process)); svndump_proc.out = -1; argv_array_push(&svndump_proc.args, command); argv_array_push(&svndump_proc.args, "dump"); @@ -42,6 +42,7 @@ struct rewrites { static struct remote **remotes; static int remotes_alloc; static int remotes_nr; +static struct hashmap remotes_hash; static struct branch **branches; static int branches_alloc; @@ -136,26 +137,51 @@ static void add_url_alias(struct remote *remote, const char *url) add_pushurl_alias(remote, url); } +struct remotes_hash_key { + const char *str; + int len; +}; + +static int remotes_hash_cmp(const struct remote *a, const struct remote *b, const struct remotes_hash_key *key) +{ + if (key) + return strncmp(a->name, key->str, key->len) || a->name[key->len]; + else + return strcmp(a->name, b->name); +} + +static inline void init_remotes_hash(void) +{ + if (!remotes_hash.cmpfn) + hashmap_init(&remotes_hash, (hashmap_cmp_fn)remotes_hash_cmp, 0); +} + static struct remote *make_remote(const char *name, int len) { - struct remote *ret; - int i; + struct remote *ret, *replaced; + struct remotes_hash_key lookup; + struct hashmap_entry lookup_entry; - for (i = 0; i < remotes_nr; i++) { - if (len ? (!strncmp(name, remotes[i]->name, len) && - !remotes[i]->name[len]) : - !strcmp(name, remotes[i]->name)) - return remotes[i]; - } + if (!len) + len = strlen(name); + + init_remotes_hash(); + lookup.str = name; + lookup.len = len; + hashmap_entry_init(&lookup_entry, memhash(name, len)); + + if ((ret = hashmap_get(&remotes_hash, &lookup_entry, &lookup)) != NULL) + return ret; ret = xcalloc(1, sizeof(struct remote)); ret->prune = -1; /* unspecified */ ALLOC_GROW(remotes, remotes_nr + 1, remotes_alloc); remotes[remotes_nr++] = ret; - if (len) - ret->name = xstrndup(name, len); - else - ret->name = xstrdup(name); + ret->name = xstrndup(name, len); + + hashmap_entry_init(ret, lookup_entry.hash); + replaced = hashmap_put(&remotes_hash, ret); + assert(replaced == NULL); /* no previous entry overwritten */ return ret; } @@ -717,13 +743,16 @@ struct remote *pushremote_get(const char *name) int remote_is_configured(const char *name) { - int i; + struct remotes_hash_key lookup; + struct hashmap_entry lookup_entry; read_config(); - for (i = 0; i < remotes_nr; i++) - if (!strcmp(name, remotes[i]->name)) - return 1; - return 0; + 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; } int for_each_remote(each_remote_fn fn, void *priv) @@ -833,21 +862,14 @@ static int match_name_with_pattern(const char *key, const char *name, ret = !strncmp(name, key, klen) && namelen >= klen + ksuffixlen && !memcmp(name + namelen - ksuffixlen, kstar + 1, ksuffixlen); if (ret && value) { + struct strbuf sb = STRBUF_INIT; const char *vstar = strchr(value, '*'); - size_t vlen; - size_t vsuffixlen; if (!vstar) die("Value '%s' of pattern has no '*'", value); - vlen = vstar - value; - vsuffixlen = strlen(vstar + 1); - *result = xmalloc(vlen + vsuffixlen + - strlen(name) - - klen - ksuffixlen + 1); - strncpy(*result, value, vlen); - strncpy(*result + vlen, - name + klen, namelen - klen - ksuffixlen); - strcpy(*result + vlen + namelen - klen - ksuffixlen, - vstar + 1); + strbuf_add(&sb, value, vstar - value); + strbuf_add(&sb, name + klen, namelen - klen - ksuffixlen); + strbuf_addstr(&sb, vstar + 1); + *result = strbuf_detach(&sb, NULL); } return ret; } @@ -1893,7 +1915,8 @@ int stat_tracking_info(struct branch *branch, int *num_ours, int *num_theirs) init_revisions(&revs, NULL); setup_revisions(rev_argc, rev_argv, &revs, NULL); - prepare_revision_walk(&revs); + if (prepare_revision_walk(&revs)) + die("revision walk setup failed"); /* ... and count the commits on each side. */ *num_ours = 0; @@ -1920,7 +1943,7 @@ int stat_tracking_info(struct branch *branch, int *num_ours, int *num_theirs) int format_tracking_info(struct branch *branch, struct strbuf *sb) { int ours, theirs; - const char *base; + char *base; int upstream_is_gone = 0; switch (stat_tracking_info(branch, &ours, &theirs)) { @@ -1936,8 +1959,7 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb) break; } - base = branch->merge[0]->dst; - base = shorten_unambiguous_ref(base, 0); + base = shorten_unambiguous_ref(branch->merge[0]->dst, 0); if (upstream_is_gone) { strbuf_addf(sb, _("Your branch is based on '%s', but the upstream is gone.\n"), @@ -1983,6 +2005,7 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb) strbuf_addf(sb, _(" (use \"git pull\" to merge the remote branch into yours)\n")); } + free(base); return 1; } @@ -2,6 +2,7 @@ #define REMOTE_H #include "parse-options.h" +#include "hashmap.h" enum { REMOTE_CONFIG, @@ -10,6 +11,8 @@ enum { }; struct remote { + struct hashmap_entry ent; /* must be first */ + const char *name; int origin; @@ -573,15 +573,11 @@ static int do_plain_rerere(struct string_list *rr, int fd) return write_rr(rr, fd); } -static int git_rerere_config(const char *var, const char *value, void *cb) +static void git_rerere_config(void) { - if (!strcmp(var, "rerere.enabled")) - rerere_enabled = git_config_bool(var, value); - else if (!strcmp(var, "rerere.autoupdate")) - rerere_autoupdate = git_config_bool(var, value); - else - return git_default_config(var, value, cb); - return 0; + git_config_get_bool("rerere.enabled", &rerere_enabled); + git_config_get_bool("rerere.autoupdate", &rerere_autoupdate); + git_config(git_default_config, NULL); } static int is_rerere_enabled(void) @@ -606,7 +602,7 @@ int setup_rerere(struct string_list *merge_rr, int flags) { int fd; - git_config(git_rerere_config, NULL); + git_rerere_config(); if (!is_rerere_enabled()) return -1; @@ -699,24 +695,6 @@ static void unlink_rr_item(const char *name) rmdir(git_path("rr-cache/%s", name)); } -struct rerere_gc_config_cb { - int cutoff_noresolve; - int cutoff_resolve; -}; - -static int git_rerere_gc_config(const char *var, const char *value, void *cb) -{ - struct rerere_gc_config_cb *cf = cb; - - if (!strcmp(var, "gc.rerereresolved")) - cf->cutoff_resolve = git_config_int(var, value); - else if (!strcmp(var, "gc.rerereunresolved")) - cf->cutoff_noresolve = git_config_int(var, value); - else - return git_default_config(var, value, cb); - return 0; -} - void rerere_gc(struct string_list *rr) { struct string_list to_remove = STRING_LIST_INIT_DUP; @@ -724,9 +702,12 @@ void rerere_gc(struct string_list *rr) struct dirent *e; int i, cutoff; time_t now = time(NULL), then; - struct rerere_gc_config_cb cf = { 15, 60 }; + int cutoff_noresolve = 15; + int cutoff_resolve = 60; - git_config(git_rerere_gc_config, &cf); + git_config_get_int("gc.rerereresolved", &cutoff_resolve); + git_config_get_int("gc.rerereunresolved", &cutoff_noresolve); + git_config(git_default_config, NULL); dir = opendir(git_path("rr-cache")); if (!dir) die_errno("unable to open rr-cache directory"); @@ -736,12 +717,12 @@ void rerere_gc(struct string_list *rr) then = rerere_last_used_at(e->d_name); if (then) { - cutoff = cf.cutoff_resolve; + cutoff = cutoff_resolve; } else { then = rerere_created_at(e->d_name); if (!then) continue; - cutoff = cf.cutoff_noresolve; + cutoff = cutoff_noresolve; } if (then < now - cutoff * 86400) string_list_append(&to_remove, e->d_name); @@ -24,6 +24,6 @@ extern void rerere_clear(struct string_list *); extern void rerere_gc(struct string_list *); #define OPT_RERERE_AUTOUPDATE(v) OPT_UYN(0, "rerere-autoupdate", (v), \ - "update the index with reused conflict resolution if possible") + N_("update the index with reused conflict resolution if possible")) #endif diff --git a/revision.c b/revision.c index 2571ada6bf..e498b7c339 100644 --- a/revision.c +++ b/revision.c @@ -473,7 +473,7 @@ static int rev_compare_tree(struct rev_info *revs, * If we are simplifying by decoration, then the commit * is worth showing if it has a tag pointing at it. */ - if (lookup_decoration(&name_decoration, &commit->object)) + if (get_name_decoration(&commit->object)) return REV_TREE_DIFFERENT; /* * A commit that is not pointed by a tag is uninteresting @@ -1397,7 +1397,7 @@ static void prepare_show_merge(struct rev_info *revs) continue; if (ce_path_match(ce, &revs->prune_data, NULL)) { prune_num++; - prune = xrealloc(prune, sizeof(*prune) * prune_num); + REALLOC_ARRAY(prune, prune_num); prune[prune_num-2] = ce->name; prune[prune_num-1] = NULL; } @@ -1825,7 +1825,7 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg } else if (!strcmp(arg, "--pretty")) { revs->verbose_header = 1; revs->pretty_given = 1; - get_commit_format(arg+8, revs); + get_commit_format(NULL, revs); } else if (starts_with(arg, "--pretty=") || starts_with(arg, "--format=")) { /* * Detached form ("--pretty X" as opposed to "--pretty=X") diff --git a/run-command.c b/run-command.c index 35a3ebf07b..761f0fde40 100644 --- a/run-command.c +++ b/run-command.c @@ -8,6 +8,12 @@ # define SHELL_PATH "/bin/sh" #endif +void child_process_init(struct child_process *child) +{ + memset(child, 0, sizeof(*child)); + argv_array_init(&child->args); +} + struct child_to_clean { pid_t pid; struct child_to_clean *next; @@ -555,31 +561,21 @@ int run_command(struct child_process *cmd) return finish_command(cmd); } -static void prepare_run_command_v_opt(struct child_process *cmd, - const char **argv, - int opt) -{ - memset(cmd, 0, sizeof(*cmd)); - cmd->argv = argv; - cmd->no_stdin = opt & RUN_COMMAND_NO_STDIN ? 1 : 0; - cmd->git_cmd = opt & RUN_GIT_CMD ? 1 : 0; - cmd->stdout_to_stderr = opt & RUN_COMMAND_STDOUT_TO_STDERR ? 1 : 0; - cmd->silent_exec_failure = opt & RUN_SILENT_EXEC_FAILURE ? 1 : 0; - cmd->use_shell = opt & RUN_USING_SHELL ? 1 : 0; - cmd->clean_on_exit = opt & RUN_CLEAN_ON_EXIT ? 1 : 0; -} - int run_command_v_opt(const char **argv, int opt) { - struct child_process cmd; - prepare_run_command_v_opt(&cmd, argv, opt); - return run_command(&cmd); + return run_command_v_opt_cd_env(argv, opt, NULL, NULL); } int run_command_v_opt_cd_env(const char **argv, int opt, const char *dir, const char *const *env) { - struct child_process cmd; - prepare_run_command_v_opt(&cmd, argv, opt); + struct child_process cmd = CHILD_PROCESS_INIT; + cmd.argv = argv; + cmd.no_stdin = opt & RUN_COMMAND_NO_STDIN ? 1 : 0; + cmd.git_cmd = opt & RUN_GIT_CMD ? 1 : 0; + cmd.stdout_to_stderr = opt & RUN_COMMAND_STDOUT_TO_STDERR ? 1 : 0; + cmd.silent_exec_failure = opt & RUN_SILENT_EXEC_FAILURE ? 1 : 0; + cmd.use_shell = opt & RUN_USING_SHELL ? 1 : 0; + cmd.clean_on_exit = opt & RUN_CLEAN_ON_EXIT ? 1 : 0; cmd.dir = dir; cmd.env = env; return run_command(&cmd); @@ -763,14 +759,13 @@ char *find_hook(const char *name) int run_hook_ve(const char *const *env, const char *name, va_list args) { - struct child_process hook; + struct child_process hook = CHILD_PROCESS_INIT; const char *p; p = find_hook(name); if (!p) return 0; - memset(&hook, 0, sizeof(hook)); argv_array_push(&hook.args, p); while ((p = va_arg(args, const char *))) argv_array_push(&hook.args, p); diff --git a/run-command.h b/run-command.h index ea73de309b..1b135d1c96 100644 --- a/run-command.h +++ b/run-command.h @@ -44,6 +44,9 @@ struct child_process { unsigned clean_on_exit:1; }; +#define CHILD_PROCESS_INIT { NULL, ARGV_ARRAY_INIT } +void child_process_init(struct child_process *); + int start_command(struct child_process *); int finish_command(struct child_process *); int run_command(struct child_process *); diff --git a/send-pack.c b/send-pack.c index 6129b0fd8e..949cb61aa0 100644 --- a/send-pack.c +++ b/send-pack.c @@ -11,6 +11,7 @@ #include "transport.h" #include "version.h" #include "sha1-array.h" +#include "gpg-interface.h" static int feed_object(const unsigned char *sha1, int fd, int negative) { @@ -47,7 +48,7 @@ static int pack_objects(int fd, struct ref *refs, struct sha1_array *extra, stru NULL, NULL, }; - struct child_process po; + struct child_process po = CHILD_PROCESS_INIT; int i; i = 4; @@ -59,7 +60,6 @@ static int pack_objects(int fd, struct ref *refs, struct sha1_array *extra, stru argv[i++] = "-q"; if (args->progress) argv[i++] = "--progress"; - memset(&po, 0, sizeof(po)); po.argv = argv; po.in = -1; po.out = args->stateless_rpc ? -1 : fd; @@ -190,6 +190,94 @@ static void advertise_shallow_grafts_buf(struct strbuf *sb) for_each_commit_graft(advertise_shallow_grafts_cb, sb); } +static int ref_update_to_be_sent(const struct ref *ref, const struct send_pack_args *args) +{ + if (!ref->peer_ref && !args->send_mirror) + return 0; + + /* Check for statuses set by set_ref_status_for_push() */ + switch (ref->status) { + case REF_STATUS_REJECT_NONFASTFORWARD: + case REF_STATUS_REJECT_ALREADY_EXISTS: + case REF_STATUS_REJECT_FETCH_FIRST: + case REF_STATUS_REJECT_NEEDS_FORCE: + case REF_STATUS_REJECT_STALE: + case REF_STATUS_REJECT_NODELETE: + case REF_STATUS_UPTODATE: + return 0; + default: + return 1; + } +} + +/* + * the beginning of the next line, or the end of buffer. + * + * NEEDSWORK: perhaps move this to git-compat-util.h or somewhere and + * convert many similar uses found by "git grep -A4 memchr". + */ +static const char *next_line(const char *line, size_t len) +{ + const char *nl = memchr(line, '\n', len); + if (!nl) + return line + len; /* incomplete line */ + return nl + 1; +} + +static int generate_push_cert(struct strbuf *req_buf, + const struct ref *remote_refs, + struct send_pack_args *args, + const char *cap_string, + const char *push_cert_nonce) +{ + const struct ref *ref; + char *signing_key = xstrdup(get_signing_key()); + const char *cp, *np; + struct strbuf cert = STRBUF_INIT; + int update_seen = 0; + + strbuf_addf(&cert, "certificate version 0.1\n"); + strbuf_addf(&cert, "pusher %s ", signing_key); + datestamp(&cert); + strbuf_addch(&cert, '\n'); + if (args->url && *args->url) { + char *anon_url = transport_anonymize_url(args->url); + strbuf_addf(&cert, "pushee %s\n", anon_url); + free(anon_url); + } + if (push_cert_nonce[0]) + strbuf_addf(&cert, "nonce %s\n", push_cert_nonce); + strbuf_addstr(&cert, "\n"); + + for (ref = remote_refs; ref; ref = ref->next) { + if (!ref_update_to_be_sent(ref, args)) + continue; + update_seen = 1; + strbuf_addf(&cert, "%s %s %s\n", + sha1_to_hex(ref->old_sha1), + sha1_to_hex(ref->new_sha1), + ref->name); + } + if (!update_seen) + goto free_return; + + if (sign_buffer(&cert, &cert, signing_key)) + die(_("failed to sign the push certificate")); + + packet_buf_write(req_buf, "push-cert%c%s", 0, cap_string); + for (cp = cert.buf; cp < cert.buf + cert.len; cp = np) { + np = next_line(cp, cert.buf + cert.len - cp); + packet_buf_write(req_buf, + "%.*s", (int)(np - cp), cp); + } + packet_buf_write(req_buf, "push-cert-end\n"); + +free_return: + free(signing_key); + strbuf_release(&cert); + return update_seen; +} + int send_pack(struct send_pack_args *args, int fd[], struct child_process *conn, struct ref *remote_refs, @@ -198,8 +286,9 @@ int send_pack(struct send_pack_args *args, int in = fd[0]; int out = fd[1]; struct strbuf req_buf = STRBUF_INIT; + struct strbuf cap_buf = STRBUF_INIT; struct ref *ref; - int new_refs; + int need_pack_data = 0; int allow_deleting_refs = 0; int status_report = 0; int use_sideband = 0; @@ -208,6 +297,7 @@ int send_pack(struct send_pack_args *args, unsigned cmds_sent = 0; int ret; struct async demux; + const char *push_cert_nonce = NULL; /* Does the other end support the reporting? */ if (server_supports("report-status")) @@ -224,6 +314,14 @@ int send_pack(struct send_pack_args *args, agent_supported = 1; if (server_supports("no-thin")) args->use_thin_pack = 0; + if (args->push_cert) { + int len; + + push_cert_nonce = server_feature_value("push-cert", &len); + if (!push_cert_nonce) + die(_("the receiving end does not support --signed push")); + push_cert_nonce = xmemdupz(push_cert_nonce, len); + } if (!remote_refs) { fprintf(stderr, "No refs in common and none specified; doing nothing.\n" @@ -231,64 +329,71 @@ int send_pack(struct send_pack_args *args, return 0; } + if (status_report) + strbuf_addstr(&cap_buf, " report-status"); + if (use_sideband) + strbuf_addstr(&cap_buf, " side-band-64k"); + if (quiet_supported && (args->quiet || !args->progress)) + strbuf_addstr(&cap_buf, " quiet"); + if (agent_supported) + strbuf_addf(&cap_buf, " agent=%s", git_user_agent_sanitized()); + + /* + * NEEDSWORK: why does delete-refs have to be so specific to + * send-pack machinery that set_ref_status_for_push() cannot + * set this bit for us??? + */ + for (ref = remote_refs; ref; ref = ref->next) + if (ref->deletion && !allow_deleting_refs) + ref->status = REF_STATUS_REJECT_NODELETE; + if (!args->dry_run) advertise_shallow_grafts_buf(&req_buf); + if (!args->dry_run && args->push_cert) + cmds_sent = generate_push_cert(&req_buf, remote_refs, args, + cap_buf.buf, push_cert_nonce); + /* - * Finally, tell the other end! + * Clear the status for each ref and see if we need to send + * the pack data. */ - new_refs = 0; for (ref = remote_refs; ref; ref = ref->next) { - if (!ref->peer_ref && !args->send_mirror) + if (!ref_update_to_be_sent(ref, args)) continue; - /* Check for statuses set by set_ref_status_for_push() */ - switch (ref->status) { - case REF_STATUS_REJECT_NONFASTFORWARD: - case REF_STATUS_REJECT_ALREADY_EXISTS: - case REF_STATUS_REJECT_FETCH_FIRST: - case REF_STATUS_REJECT_NEEDS_FORCE: - case REF_STATUS_REJECT_STALE: - case REF_STATUS_UPTODATE: - continue; - default: - ; /* do nothing */ - } + if (!ref->deletion) + need_pack_data = 1; - if (ref->deletion && !allow_deleting_refs) { - ref->status = REF_STATUS_REJECT_NODELETE; + if (args->dry_run || !status_report) + ref->status = REF_STATUS_OK; + else + ref->status = REF_STATUS_EXPECTING_REPORT; + } + + /* + * Finally, tell the other end! + */ + for (ref = remote_refs; ref; ref = ref->next) { + char *old_hex, *new_hex; + + if (args->dry_run || args->push_cert) continue; - } - if (!ref->deletion) - new_refs++; + if (!ref_update_to_be_sent(ref, args)) + continue; - if (args->dry_run) { - ref->status = REF_STATUS_OK; + old_hex = sha1_to_hex(ref->old_sha1); + new_hex = sha1_to_hex(ref->new_sha1); + if (!cmds_sent) { + packet_buf_write(&req_buf, + "%s %s %s%c%s", + old_hex, new_hex, ref->name, 0, + cap_buf.buf); + cmds_sent = 1; } else { - char *old_hex = sha1_to_hex(ref->old_sha1); - char *new_hex = sha1_to_hex(ref->new_sha1); - int quiet = quiet_supported && (args->quiet || !args->progress); - - if (!cmds_sent && (status_report || use_sideband || - quiet || agent_supported)) { - packet_buf_write(&req_buf, - "%s %s %s%c%s%s%s%s%s", - old_hex, new_hex, ref->name, 0, - status_report ? " report-status" : "", - use_sideband ? " side-band-64k" : "", - quiet ? " quiet" : "", - agent_supported ? " agent=" : "", - agent_supported ? git_user_agent_sanitized() : "" - ); - } - else - packet_buf_write(&req_buf, "%s %s %s", - old_hex, new_hex, ref->name); - ref->status = status_report ? - REF_STATUS_EXPECTING_REPORT : - REF_STATUS_OK; - cmds_sent++; + packet_buf_write(&req_buf, "%s %s %s", + old_hex, new_hex, ref->name); } } @@ -302,6 +407,7 @@ int send_pack(struct send_pack_args *args, packet_flush(out); } strbuf_release(&req_buf); + strbuf_release(&cap_buf); if (use_sideband && cmds_sent) { memset(&demux, 0, sizeof(demux)); @@ -313,7 +419,7 @@ int send_pack(struct send_pack_args *args, in = demux.out; } - if (new_refs && cmds_sent) { + if (need_pack_data && cmds_sent) { if (pack_objects(out, remote_refs, extra_have, args) < 0) { for (ref = remote_refs; ref; ref = ref->next) ref->status = REF_STATUS_NONE; diff --git a/send-pack.h b/send-pack.h index 8e843924cf..5635457746 100644 --- a/send-pack.h +++ b/send-pack.h @@ -2,6 +2,7 @@ #define SEND_PACK_H struct send_pack_args { + const char *url; unsigned verbose:1, quiet:1, porcelain:1, @@ -11,6 +12,7 @@ struct send_pack_args { use_thin_pack:1, use_ofs_delta:1, dry_run:1, + push_cert:1, stateless_rpc:1; }; diff --git a/sequencer.c b/sequencer.c index 3c060e0547..5e8a207474 100644 --- a/sequencer.c +++ b/sequencer.c @@ -237,23 +237,33 @@ static int error_dirty_index(struct replay_opts *opts) static int fast_forward_to(const unsigned char *to, const unsigned char *from, int unborn, struct replay_opts *opts) { - struct ref_lock *ref_lock; + struct ref_transaction *transaction; struct strbuf sb = STRBUF_INIT; - int ret; + struct strbuf err = STRBUF_INIT; read_cache(); if (checkout_fast_forward(from, to, 1)) exit(128); /* the callee should have complained already */ - ref_lock = lock_any_ref_for_update("HEAD", unborn ? null_sha1 : from, - 0, NULL); - if (!ref_lock) - return error(_("Failed to lock HEAD during fast_forward_to")); strbuf_addf(&sb, "%s: fast-forward", action_name(opts)); - ret = write_ref_sha1(ref_lock, to, sb.buf); + + transaction = ref_transaction_begin(&err); + if (!transaction || + ref_transaction_update(transaction, "HEAD", + to, unborn ? null_sha1 : from, + 0, 1, &err) || + ref_transaction_commit(transaction, sb.buf, &err)) { + ref_transaction_free(transaction); + error("%s", err.buf); + strbuf_release(&sb); + strbuf_release(&err); + return -1; + } strbuf_release(&sb); - return ret; + strbuf_release(&err); + ref_transaction_free(transaction); + return 0; } static int do_recursive_merge(struct commit *base, struct commit *next, diff --git a/server-info.c b/server-info.c index 9ec744e9f2..31f4a749fb 100644 --- a/server-info.c +++ b/server-info.c @@ -4,45 +4,80 @@ #include "commit.h" #include "tag.h" -/* refs */ -static FILE *info_ref_fp; +/* + * Create the file "path" by writing to a temporary file and renaming + * it into place. The contents of the file come from "generate", which + * should return non-zero if it encounters an error. + */ +static int update_info_file(char *path, int (*generate)(FILE *)) +{ + char *tmp = mkpathdup("%s_XXXXXX", path); + int ret = -1; + int fd = -1; + FILE *fp = NULL; + + safe_create_leading_directories(path); + fd = mkstemp(tmp); + if (fd < 0) + goto out; + fp = fdopen(fd, "w"); + if (!fp) + goto out; + ret = generate(fp); + if (ret) + goto out; + if (fclose(fp)) + goto out; + if (adjust_shared_perm(tmp) < 0) + goto out; + if (rename(tmp, path) < 0) + goto out; + ret = 0; + +out: + if (ret) { + error("unable to update %s: %s", path, strerror(errno)); + if (fp) + fclose(fp); + else if (fd >= 0) + close(fd); + unlink(tmp); + } + free(tmp); + return ret; +} static int add_info_ref(const char *path, const unsigned char *sha1, int flag, void *cb_data) { + FILE *fp = cb_data; struct object *o = parse_object(sha1); if (!o) return -1; - fprintf(info_ref_fp, "%s %s\n", sha1_to_hex(sha1), path); + if (fprintf(fp, "%s %s\n", sha1_to_hex(sha1), path) < 0) + return -1; + if (o->type == OBJ_TAG) { o = deref_tag(o, path, 0); if (o) - fprintf(info_ref_fp, "%s %s^{}\n", - sha1_to_hex(o->sha1), path); + if (fprintf(fp, "%s %s^{}\n", + sha1_to_hex(o->sha1), path) < 0) + return -1; } return 0; } +static int generate_info_refs(FILE *fp) +{ + return for_each_ref(add_info_ref, fp); +} + static int update_info_refs(int force) { - char *path0 = git_pathdup("info/refs"); - int len = strlen(path0); - char *path1 = xmalloc(len + 2); - - strcpy(path1, path0); - strcpy(path1 + len, "+"); - - safe_create_leading_directories(path0); - info_ref_fp = fopen(path1, "w"); - if (!info_ref_fp) - return error("unable to update %s", path1); - for_each_ref(add_info_ref, NULL); - fclose(info_ref_fp); - adjust_shared_perm(path1); - rename(path1, path0); - free(path0); - free(path1); - return 0; + char *path = git_pathdup("info/refs"); + int ret = update_info_file(path, generate_info_refs); + free(path); + return ret; } /* packs */ @@ -198,36 +233,36 @@ static void init_pack_info(const char *infofile, int force) info[i]->new_num = i; } -static void write_pack_info_file(FILE *fp) +static void free_pack_info(void) { int i; for (i = 0; i < num_pack; i++) - fprintf(fp, "P %s\n", info[i]->p->pack_name + objdirlen + 6); - fputc('\n', fp); + free(info[i]); + free(info); } -static int update_info_packs(int force) +static int write_pack_info_file(FILE *fp) { - char infofile[PATH_MAX]; - char name[PATH_MAX]; - int namelen; - FILE *fp; + int i; + for (i = 0; i < num_pack; i++) { + if (fprintf(fp, "P %s\n", info[i]->p->pack_name + objdirlen + 6) < 0) + return -1; + } + if (fputc('\n', fp) == EOF) + return -1; + return 0; +} - namelen = sprintf(infofile, "%s/info/packs", get_object_directory()); - strcpy(name, infofile); - strcpy(name + namelen, "+"); +static int update_info_packs(int force) +{ + char *infofile = mkpathdup("%s/info/packs", get_object_directory()); + int ret; init_pack_info(infofile, force); - - safe_create_leading_directories(name); - fp = fopen(name, "w"); - if (!fp) - return error("cannot open %s", name); - write_pack_info_file(fp); - fclose(fp); - adjust_shared_perm(name); - rename(name, infofile); - return 0; + ret = update_info_file(infofile, write_pack_info_file); + free_pack_info(); + free(infofile); + return ret; } /* public */ @@ -387,7 +387,7 @@ const char *read_gitfile(const char *path) } static const char *setup_explicit_git_dir(const char *gitdirenv, - char *cwd, int len, + struct strbuf *cwd, int *nongit_ok) { const char *work_tree_env = getenv(GIT_WORK_TREE_ENVIRONMENT); @@ -434,16 +434,16 @@ static const char *setup_explicit_git_dir(const char *gitdirenv, if (is_absolute_path(git_work_tree_cfg)) set_git_work_tree(git_work_tree_cfg); else { - char core_worktree[PATH_MAX]; + char *core_worktree; if (chdir(gitdirenv)) die_errno("Could not chdir to '%s'", gitdirenv); if (chdir(git_work_tree_cfg)) die_errno("Could not chdir to '%s'", git_work_tree_cfg); - if (!getcwd(core_worktree, PATH_MAX)) - die_errno("Could not get directory '%s'", git_work_tree_cfg); - if (chdir(cwd)) + core_worktree = xgetcwd(); + if (chdir(cwd->buf)) die_errno("Could not come back to cwd"); set_git_work_tree(core_worktree); + free(core_worktree); } } else if (!git_env_bool(GIT_IMPLICIT_WORK_TREE_ENVIRONMENT, 1)) { @@ -459,21 +459,20 @@ static const char *setup_explicit_git_dir(const char *gitdirenv, worktree = get_git_work_tree(); /* both get_git_work_tree() and cwd are already normalized */ - if (!strcmp(cwd, worktree)) { /* cwd == worktree */ + if (!strcmp(cwd->buf, worktree)) { /* cwd == worktree */ set_git_dir(gitdirenv); free(gitfile); return NULL; } - offset = dir_inside_of(cwd, worktree); + offset = dir_inside_of(cwd->buf, worktree); if (offset >= 0) { /* cwd inside worktree? */ set_git_dir(real_path(gitdirenv)); if (chdir(worktree)) die_errno("Could not chdir to '%s'", worktree); - cwd[len++] = '/'; - cwd[len] = '\0'; + strbuf_addch(cwd, '/'); free(gitfile); - return cwd + offset; + return cwd->buf + offset; } /* cwd outside worktree */ @@ -483,7 +482,7 @@ static const char *setup_explicit_git_dir(const char *gitdirenv, } static const char *setup_discovered_git_dir(const char *gitdir, - char *cwd, int offset, int len, + struct strbuf *cwd, int offset, int *nongit_ok) { if (check_repository_format_gently(gitdir, nongit_ok)) @@ -491,17 +490,17 @@ static const char *setup_discovered_git_dir(const char *gitdir, /* --work-tree is set without --git-dir; use discovered one */ if (getenv(GIT_WORK_TREE_ENVIRONMENT) || git_work_tree_cfg) { - if (offset != len && !is_absolute_path(gitdir)) + if (offset != cwd->len && !is_absolute_path(gitdir)) gitdir = xstrdup(real_path(gitdir)); - if (chdir(cwd)) + if (chdir(cwd->buf)) die_errno("Could not come back to cwd"); - return setup_explicit_git_dir(gitdir, cwd, len, nongit_ok); + return setup_explicit_git_dir(gitdir, cwd, nongit_ok); } /* #16.2, #17.2, #20.2, #21.2, #24, #25, #28, #29 (see t1510) */ if (is_bare_repository_cfg > 0) { - set_git_dir(offset == len ? gitdir : real_path(gitdir)); - if (chdir(cwd)) + set_git_dir(offset == cwd->len ? gitdir : real_path(gitdir)); + if (chdir(cwd->buf)) die_errno("Could not come back to cwd"); return NULL; } @@ -512,18 +511,18 @@ static const char *setup_discovered_git_dir(const char *gitdir, set_git_dir(gitdir); inside_git_dir = 0; inside_work_tree = 1; - if (offset == len) + if (offset == cwd->len) return NULL; /* Make "offset" point to past the '/', and add a '/' at the end */ offset++; - cwd[len++] = '/'; - cwd[len] = 0; - return cwd + offset; + strbuf_addch(cwd, '/'); + return cwd->buf + offset; } /* #16.1, #17.1, #20.1, #21.1, #22.1 (see t1510) */ -static const char *setup_bare_git_dir(char *cwd, int offset, int len, int *nongit_ok) +static const char *setup_bare_git_dir(struct strbuf *cwd, int offset, + int *nongit_ok) { int root_len; @@ -536,20 +535,20 @@ static const char *setup_bare_git_dir(char *cwd, int offset, int len, int *nongi if (getenv(GIT_WORK_TREE_ENVIRONMENT) || git_work_tree_cfg) { const char *gitdir; - gitdir = offset == len ? "." : xmemdupz(cwd, offset); - if (chdir(cwd)) + gitdir = offset == cwd->len ? "." : xmemdupz(cwd->buf, offset); + if (chdir(cwd->buf)) die_errno("Could not come back to cwd"); - return setup_explicit_git_dir(gitdir, cwd, len, nongit_ok); + return setup_explicit_git_dir(gitdir, cwd, nongit_ok); } inside_git_dir = 1; inside_work_tree = 0; - if (offset != len) { - if (chdir(cwd)) + if (offset != cwd->len) { + if (chdir(cwd->buf)) die_errno("Cannot come back to cwd"); - root_len = offset_1st_component(cwd); - cwd[offset > root_len ? offset : root_len] = '\0'; - set_git_dir(cwd); + root_len = offset_1st_component(cwd->buf); + strbuf_setlen(cwd, offset > root_len ? offset : root_len); + set_git_dir(cwd->buf); } else set_git_dir("."); @@ -617,14 +616,23 @@ static const char *setup_git_directory_gently_1(int *nongit_ok) { const char *env_ceiling_dirs = getenv(CEILING_DIRECTORIES_ENVIRONMENT); struct string_list ceiling_dirs = STRING_LIST_INIT_DUP; - static char cwd[PATH_MAX + 1]; + static struct strbuf cwd = STRBUF_INIT; const char *gitdirenv, *ret; char *gitfile; - int len, offset, offset_parent, ceil_offset = -1; + int offset, offset_parent, ceil_offset = -1; dev_t current_device = 0; int one_filesystem = 1; /* + * We may have read an incomplete configuration before + * setting-up the git directory. If so, clear the cache so + * that the next queries to the configuration reload complete + * configuration (including the per-repo config file that we + * ignored previously). + */ + git_config_clear(); + + /* * Let's assume that we are in a git repository. * If it turns out later that we are somewhere else, the value will be * updated accordingly. @@ -632,9 +640,9 @@ static const char *setup_git_directory_gently_1(int *nongit_ok) if (nongit_ok) *nongit_ok = 0; - if (!getcwd(cwd, sizeof(cwd) - 1)) + if (strbuf_getcwd(&cwd)) die_errno("Unable to read current working directory"); - offset = len = strlen(cwd); + offset = cwd.len; /* * If GIT_DIR is set explicitly, we're not going @@ -643,7 +651,7 @@ static const char *setup_git_directory_gently_1(int *nongit_ok) */ gitdirenv = getenv(GIT_DIR_ENVIRONMENT); if (gitdirenv) - return setup_explicit_git_dir(gitdirenv, cwd, len, nongit_ok); + return setup_explicit_git_dir(gitdirenv, &cwd, nongit_ok); if (env_ceiling_dirs) { int empty_entry_found = 0; @@ -651,11 +659,11 @@ static const char *setup_git_directory_gently_1(int *nongit_ok) string_list_split(&ceiling_dirs, env_ceiling_dirs, PATH_SEP, -1); filter_string_list(&ceiling_dirs, 0, canonicalize_ceiling_entry, &empty_entry_found); - ceil_offset = longest_ancestor_length(cwd, &ceiling_dirs); + ceil_offset = longest_ancestor_length(cwd.buf, &ceiling_dirs); string_list_clear(&ceiling_dirs, 0); } - if (ceil_offset < 0 && has_dos_drive_prefix(cwd)) + if (ceil_offset < 0 && has_dos_drive_prefix(cwd.buf)) ceil_offset = 1; /* @@ -683,7 +691,7 @@ static const char *setup_git_directory_gently_1(int *nongit_ok) if (gitdirenv) { ret = setup_discovered_git_dir(gitdirenv, - cwd, offset, len, + &cwd, offset, nongit_ok); free(gitfile); return ret; @@ -691,29 +699,31 @@ static const char *setup_git_directory_gently_1(int *nongit_ok) free(gitfile); if (is_git_directory(".")) - return setup_bare_git_dir(cwd, offset, len, nongit_ok); + return setup_bare_git_dir(&cwd, offset, nongit_ok); offset_parent = offset; - while (--offset_parent > ceil_offset && cwd[offset_parent] != '/'); + while (--offset_parent > ceil_offset && cwd.buf[offset_parent] != '/'); if (offset_parent <= ceil_offset) - return setup_nongit(cwd, nongit_ok); + return setup_nongit(cwd.buf, nongit_ok); if (one_filesystem) { - dev_t parent_device = get_device_or_die("..", cwd, offset); + dev_t parent_device = get_device_or_die("..", cwd.buf, + offset); if (parent_device != current_device) { if (nongit_ok) { - if (chdir(cwd)) + if (chdir(cwd.buf)) die_errno("Cannot come back to cwd"); *nongit_ok = 1; return NULL; } - cwd[offset] = '\0'; + strbuf_setlen(&cwd, offset); die("Not a git repository (or any parent up to mount point %s)\n" - "Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).", cwd); + "Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).", + cwd.buf); } } if (chdir("..")) { - cwd[offset] = '\0'; - die_errno("Cannot change to '%s/..'", cwd); + strbuf_setlen(&cwd, offset); + die_errno("Cannot change to '%s/..'", cwd.buf); } offset = offset_parent; } diff --git a/sh-i18n--envsubst.c b/sh-i18n--envsubst.c index 6dd03a974a..2842a22d7f 100644 --- a/sh-i18n--envsubst.c +++ b/sh-i18n--envsubst.c @@ -208,11 +208,8 @@ string_list_append (string_list_ty *slp, const char *s) /* Grow the list. */ if (slp->nitems >= slp->nitems_max) { - size_t nbytes; - slp->nitems_max = slp->nitems_max * 2 + 4; - nbytes = slp->nitems_max * sizeof (slp->item[0]); - slp->item = (const char **) xrealloc (slp->item, nbytes); + REALLOC_ARRAY(slp->item, slp->nitems_max); } /* Add the string to the end of the list. */ diff --git a/sha1_file.c b/sha1_file.c index 7b2612f733..6f18c22ab1 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -350,7 +350,7 @@ static void link_alt_odb_entries(const char *alt, int len, int sep, return; } - strbuf_addstr(&objdirbuf, absolute_path(get_object_directory())); + strbuf_add_absolute_path(&objdirbuf, get_object_directory()); normalize_path_copy(objdirbuf.buf, objdirbuf.buf); alt_copy = xmemdupz(alt, len); @@ -1939,7 +1939,9 @@ static void *unpack_compressed_entry(struct packed_git *p, git_zstream stream; unsigned char *buffer, *in; - buffer = xmallocz(size); + buffer = xmallocz_gently(size); + if (!buffer) + return NULL; memset(&stream, 0, sizeof(stream)); stream.next_out = buffer; stream.avail_out = size + 1; diff --git a/sha1_name.c b/sha1_name.c index 63ee66fedd..5b004f513b 100644 --- a/sha1_name.c +++ b/sha1_name.c @@ -432,7 +432,8 @@ static inline int upstream_mark(const char *string, int len) static int get_sha1_1(const char *name, int len, unsigned char *sha1, unsigned lookup_flags); static int interpret_nth_prior_checkout(const char *name, int namelen, struct strbuf *buf); -static int get_sha1_basic(const char *str, int len, unsigned char *sha1) +static int get_sha1_basic(const char *str, int len, unsigned char *sha1, + unsigned int flags) { static const char *warn_msg = "refname '%.*s' is ambiguous."; static const char *object_name_msg = N_( @@ -511,7 +512,7 @@ static int get_sha1_basic(const char *str, int len, unsigned char *sha1) if (!refs_found) return -1; - if (warn_ambiguous_refs && + if (warn_ambiguous_refs && !(flags & GET_SHA1_QUIETLY) && (refs_found > 1 || !get_short_sha1(str, len, tmp_sha1, GET_SHA1_QUIETLY))) warning(warn_msg, len, str); @@ -545,7 +546,7 @@ static int get_sha1_basic(const char *str, int len, unsigned char *sha1) return -1; } } - if (read_ref_at(real_ref, at_time, nth, sha1, NULL, + if (read_ref_at(real_ref, flags, at_time, nth, sha1, NULL, &co_time, &co_tz, &co_cnt)) { if (!len) { if (starts_with(real_ref, "refs/heads/")) { @@ -557,11 +558,16 @@ static int get_sha1_basic(const char *str, int len, unsigned char *sha1) len = 4; } } - if (at_time) - warning("Log for '%.*s' only goes " - "back to %s.", len, str, - show_date(co_time, co_tz, DATE_RFC2822)); - else { + if (at_time) { + if (!(flags & GET_SHA1_QUIETLY)) { + warning("Log for '%.*s' only goes " + "back to %s.", len, str, + show_date(co_time, co_tz, DATE_RFC2822)); + } + } else { + if (flags & GET_SHA1_QUIETLY) { + exit(128); + } die("Log for '%.*s' only has %d entries.", len, str, co_cnt); } @@ -801,7 +807,7 @@ static int get_sha1_1(const char *name, int len, unsigned char *sha1, unsigned l if (!ret) return 0; - ret = get_sha1_basic(name, len, sha1); + ret = get_sha1_basic(name, len, sha1, lookup_flags); if (!ret) return 0; @@ -839,7 +845,7 @@ static int handle_one_ref(const char *path, } if (object->type != OBJ_COMMIT) return 0; - commit_list_insert_by_date((struct commit *)object, list); + commit_list_insert((struct commit *)object, list); return 0; } @@ -1366,6 +1372,7 @@ static int get_sha1_with_context_1(const char *name, if (!only_to_die && namelen > 2 && name[1] == '/') { struct commit_list *list = NULL; for_each_ref(handle_one_ref, &list); + commit_list_sort_by_date(&list); return get_sha1_oneline(name + 2, sha1, list); } if (namelen < 3 || @@ -392,8 +392,7 @@ static uint32_t *paint_alloc(struct paint_info *info) void *p; if (!info->slab_count || info->free + size > info->end) { info->slab_count++; - info->slab = xrealloc(info->slab, - info->slab_count * sizeof(*info->slab)); + REALLOC_ARRAY(info->slab, info->slab_count); info->free = xmalloc(COMMIT_SLAB_SIZE); info->slab[info->slab_count - 1] = info->free; info->end = info->free + COMMIT_SLAB_SIZE; @@ -204,6 +204,13 @@ void strbuf_adddup(struct strbuf *sb, size_t pos, size_t len) strbuf_setlen(sb, sb->len + len); } +void strbuf_addchars(struct strbuf *sb, int c, size_t n) +{ + strbuf_grow(sb, n); + memset(sb->buf + sb->len, c, n); + strbuf_setlen(sb, sb->len + n); +} + void strbuf_addf(struct strbuf *sb, const char *fmt, ...) { va_list ap; @@ -406,6 +413,27 @@ int strbuf_readlink(struct strbuf *sb, const char *path, size_t hint) return -1; } +int strbuf_getcwd(struct strbuf *sb) +{ + size_t oldalloc = sb->alloc; + size_t guessed_len = 128; + + for (;; guessed_len *= 2) { + strbuf_grow(sb, guessed_len); + if (getcwd(sb->buf, sb->alloc)) { + strbuf_setlen(sb, strlen(sb->buf)); + return 0; + } + if (errno != ERANGE) + break; + } + if (oldalloc == 0) + strbuf_release(sb); + else + strbuf_reset(sb); + return -1; +} + int strbuf_getwholeline(struct strbuf *sb, FILE *fp, int term) { int ch; @@ -555,6 +583,31 @@ void strbuf_humanise_bytes(struct strbuf *buf, off_t bytes) } } +void strbuf_add_absolute_path(struct strbuf *sb, const char *path) +{ + if (!*path) + die("The empty string is not a valid path"); + if (!is_absolute_path(path)) { + struct stat cwd_stat, pwd_stat; + size_t orig_len = sb->len; + char *cwd = xgetcwd(); + char *pwd = getenv("PWD"); + if (pwd && strcmp(pwd, cwd) && + !stat(cwd, &cwd_stat) && + (cwd_stat.st_dev || cwd_stat.st_ino) && + !stat(pwd, &pwd_stat) && + pwd_stat.st_dev == cwd_stat.st_dev && + pwd_stat.st_ino == cwd_stat.st_ino) + strbuf_addstr(sb, pwd); + else + strbuf_addstr(sb, cwd); + if (sb->len > orig_len && !is_dir_sep(sb->buf[sb->len - 1])) + strbuf_addch(sb, '/'); + free(cwd); + } + strbuf_addstr(sb, path); +} + int printf_ln(const char *fmt, ...) { int ret; @@ -138,6 +138,7 @@ static inline void strbuf_addbuf(struct strbuf *sb, const struct strbuf *sb2) strbuf_add(sb, sb2->buf, sb2->len); } extern void strbuf_adddup(struct strbuf *sb, size_t pos, size_t len); +extern void strbuf_addchars(struct strbuf *sb, int c, size_t n); typedef size_t (*expand_fn_t) (struct strbuf *sb, const char *placeholder, void *context); extern void strbuf_expand(struct strbuf *sb, const char *format, expand_fn_t fn, void *context); @@ -174,6 +175,7 @@ extern size_t strbuf_fread(struct strbuf *, size_t, FILE *); extern ssize_t strbuf_read(struct strbuf *, int fd, size_t hint); extern int 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); +extern int strbuf_getcwd(struct strbuf *sb); extern int strbuf_getwholeline(struct strbuf *, FILE *, int); extern int strbuf_getline(struct strbuf *, FILE *, int); @@ -189,6 +191,8 @@ extern void strbuf_addstr_urlencode(struct strbuf *, const char *, int reserved); extern void strbuf_humanise_bytes(struct strbuf *buf, off_t bytes); +extern void strbuf_add_absolute_path(struct strbuf *sb, const char *path); + __attribute__((format (printf,1,2))) extern int printf_ln(const char *fmt, ...); __attribute__((format (printf,2,3))) diff --git a/string-list.c b/string-list.c index db38b62b46..c5aa0765e8 100644 --- a/string-list.c +++ b/string-list.c @@ -43,8 +43,7 @@ static int add_entry(int insert_at, struct string_list *list, const char *string if (list->nr + 1 >= list->alloc) { list->alloc += 32; - list->items = xrealloc(list->items, list->alloc - * sizeof(struct string_list_item)); + REALLOC_ARRAY(list->items, list->alloc); } if (index < list->nr) memmove(list->items + index + 1, list->items + index, diff --git a/submodule.c b/submodule.c index c3a61e70f9..0690dc50d0 100644 --- a/submodule.c +++ b/submodule.c @@ -433,13 +433,12 @@ static int submodule_needs_pushing(const char *path, const unsigned char sha1[20 return 0; if (for_each_remote_ref_submodule(path, has_remote, NULL) > 0) { - struct child_process cp; + struct child_process cp = CHILD_PROCESS_INIT; const char *argv[] = {"rev-list", NULL, "--not", "--remotes", "-n", "1" , NULL}; struct strbuf buf = STRBUF_INIT; int needs_pushing = 0; argv[1] = sha1_to_hex(sha1); - memset(&cp, 0, sizeof(cp)); cp.argv = argv; cp.env = local_repo_env; cp.git_cmd = 1; @@ -524,10 +523,9 @@ static int push_submodule(const char *path) return 1; if (for_each_remote_ref_submodule(path, has_remote, NULL) > 0) { - struct child_process cp; + struct child_process cp = CHILD_PROCESS_INIT; const char *argv[] = {"push", NULL}; - memset(&cp, 0, sizeof(cp)); cp.argv = argv; cp.env = local_repo_env; cp.git_cmd = 1; @@ -569,12 +567,11 @@ static int is_submodule_commit_present(const char *path, unsigned char sha1[20]) if (!add_submodule_odb(path) && lookup_commit_reference(sha1)) { /* Even if the submodule is checked out and the commit is * present, make sure it is reachable from a ref. */ - struct child_process cp; + struct child_process cp = CHILD_PROCESS_INIT; const char *argv[] = {"rev-list", "-n", "1", NULL, "--not", "--all", NULL}; struct strbuf buf = STRBUF_INIT; argv[3] = sha1_to_hex(sha1); - memset(&cp, 0, sizeof(cp)); cp.argv = argv; cp.env = local_repo_env; cp.git_cmd = 1; @@ -695,7 +692,7 @@ int fetch_populated_submodules(const struct argv_array *options, int quiet) { int i, result = 0; - struct child_process cp; + struct child_process cp = CHILD_PROCESS_INIT; struct argv_array argv = ARGV_ARRAY_INIT; struct string_list_item *name_for_path; const char *work_tree = get_git_work_tree(); @@ -711,7 +708,6 @@ int fetch_populated_submodules(const struct argv_array *options, argv_array_push(&argv, "--recurse-submodules-default"); /* default value, "--submodule-prefix" and its value are added later */ - memset(&cp, 0, sizeof(cp)); cp.env = local_repo_env; cp.git_cmd = 1; cp.no_stdin = 1; @@ -794,7 +790,7 @@ out: unsigned is_submodule_modified(const char *path, int ignore_untracked) { ssize_t len; - struct child_process cp; + struct child_process cp = CHILD_PROCESS_INIT; const char *argv[] = { "status", "--porcelain", @@ -821,7 +817,6 @@ unsigned is_submodule_modified(const char *path, int ignore_untracked) if (ignore_untracked) argv[2] = "-uno"; - memset(&cp, 0, sizeof(cp)); cp.argv = argv; cp.env = local_repo_env; cp.git_cmd = 1; @@ -862,7 +857,7 @@ unsigned is_submodule_modified(const char *path, int ignore_untracked) int submodule_uses_gitfile(const char *path) { - struct child_process cp; + struct child_process cp = CHILD_PROCESS_INIT; const char *argv[] = { "submodule", "foreach", @@ -883,7 +878,6 @@ int submodule_uses_gitfile(const char *path) strbuf_release(&buf); /* Now test that all nested submodules use a gitfile too */ - memset(&cp, 0, sizeof(cp)); cp.argv = argv; cp.env = local_repo_env; cp.git_cmd = 1; @@ -901,7 +895,7 @@ int ok_to_remove_submodule(const char *path) { struct stat st; ssize_t len; - struct child_process cp; + struct child_process cp = CHILD_PROCESS_INIT; const char *argv[] = { "status", "--porcelain", @@ -918,7 +912,6 @@ int ok_to_remove_submodule(const char *path) if (!submodule_uses_gitfile(path)) return 0; - memset(&cp, 0, sizeof(cp)); cp.argv = argv; cp.env = local_repo_env; cp.git_cmd = 1; diff --git a/t/lib-credential.sh b/t/lib-credential.sh index 9e7d7962b0..d8e41f7ddd 100755 --- a/t/lib-credential.sh +++ b/t/lib-credential.sh @@ -278,12 +278,10 @@ helper_test_timeout() { ' } -cat >askpass <<\EOF -#!/bin/sh +write_script askpass <<\EOF echo >&2 askpass: $* what=$(echo $1 | cut -d" " -f1 | tr A-Z a-z | tr -cd a-z) echo "askpass-$what" EOF -chmod +x askpass GIT_ASKPASS="$PWD/askpass" export GIT_ASKPASS diff --git a/t/lib-httpd/apache.conf b/t/lib-httpd/apache.conf index b384d79935..7713dd2609 100644 --- a/t/lib-httpd/apache.conf +++ b/t/lib-httpd/apache.conf @@ -68,6 +68,7 @@ LockFile accept.lock PassEnv GIT_VALGRIND PassEnv GIT_VALGRIND_OPTIONS +PassEnv GNUPGHOME Alias /dumb/ www/ Alias /auth/dumb/ www/auth/dumb/ diff --git a/t/t0005-signals.sh b/t/t0005-signals.sh index 981437b3a8..aeea50c633 100755 --- a/t/t0005-signals.sh +++ b/t/t0005-signals.sh @@ -27,4 +27,26 @@ test_expect_success !MINGW 'signals are propagated using shell convention' ' test_expect_code 143 git sigterm ' +large_git () { + for i in $(test_seq 1 100) + do + git diff --cached --binary || return + done +} + +test_expect_success 'create blob' ' + test-genrandom foo 16384 >file && + git add file +' + +test_expect_success !MINGW 'a constipated git dies with SIGPIPE' ' + OUT=$( ((large_git; echo $? 1>&3) | :) 3>&1 ) + test "$OUT" -eq 141 +' + +test_expect_success !MINGW 'a constipated git dies with SIGPIPE even if parent ignores it' ' + OUT=$( ((trap "" PIPE; large_git; echo $? 1>&3) | :) 3>&1 ) + test "$OUT" -eq 141 +' + test_done diff --git a/t/t0008-ignores.sh b/t/t0008-ignores.sh index 39e55a13c8..8dc6939b90 100755 --- a/t/t0008-ignores.sh +++ b/t/t0008-ignores.sh @@ -806,7 +806,7 @@ test_expect_success !MINGW 'quoting allows trailing whitespace' ' test_cmp err.expect err ' -test_expect_success NOT_MINGW,NOT_CYGWIN 'correct handling of backslashes' ' +test_expect_success !MINGW,!CYGWIN 'correct handling of backslashes' ' rm -rf whitespace && mkdir whitespace && >"whitespace/trailing 1 " && diff --git a/t/t0026-eol-config.sh b/t/t0026-eol-config.sh index 4807b0f015..c5203e232c 100755 --- a/t/t0026-eol-config.sh +++ b/t/t0026-eol-config.sh @@ -80,4 +80,24 @@ test_expect_success 'autocrlf=true overrides unset eol' ' test -z "$onediff" && test -z "$twodiff" ' +test_expect_success NATIVE_CRLF 'eol native is crlf' ' + + rm -rf native_eol && mkdir native_eol && + ( + cd native_eol && + printf "*.txt text\n" >.gitattributes && + printf "one\r\ntwo\r\nthree\r\n" >filedos.txt && + printf "one\ntwo\nthree\n" >fileunix.txt && + git init && + git config core.autocrlf false && + git config core.eol native && + git add filedos.txt fileunix.txt && + git commit -m "first" && + rm file*.txt && + git reset --hard HEAD && + has_cr filedos.txt && + has_cr fileunix.txt + ) +' + test_done diff --git a/t/t0027-auto-crlf.sh b/t/t0027-auto-crlf.sh index 72dd3e8bb4..2a4a6c1226 100755 --- a/t/t0027-auto-crlf.sh +++ b/t/t0027-auto-crlf.sh @@ -10,30 +10,26 @@ then test_done fi - -compare_files() -{ - od -c <"$1" >"$1".expect && - od -c <"$2" >"$2".actual && +compare_files () { + tr '\015\000' QN <"$1" >"$1".expect && + tr '\015\000' QN <"$2" >"$2".actual && test_cmp "$1".expect "$2".actual && rm "$1".expect "$2".actual } -compare_ws_file() -{ +compare_ws_file () { pfx=$1 exp=$2.expect act=$pfx.actual.$3 - od -c <"$2" >"$exp" && - od -c <"$3" >"$act" && + tr '\015\000' QN <"$2" >"$exp" && + tr '\015\000' QN <"$3" >"$act" && test_cmp $exp $act && rm $exp $act } -create_gitattributes() -{ - txtbin=$1 - case "$txtbin" in +create_gitattributes () { + attr=$1 + case "$attr" in auto) echo "*.txt text=auto" >.gitattributes ;; @@ -43,35 +39,43 @@ create_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 } -create_file_in_repo() -{ +create_file_in_repo () { crlf=$1 - txtbin=$2 - create_gitattributes "$txtbin" && + attr=$2 + create_gitattributes "$attr" && for f in LF CRLF LF_mix_CR CRLF_mix_LF CRLF_nul do - pfx=crlf_${crlf}_attr_${txtbin}_$f.txt && + pfx=crlf_${crlf}_attr_${attr}_$f.txt && cp $f $pfx && git -c core.autocrlf=$crlf add $pfx done && git commit -m "core.autocrlf $crlf" } -check_files_in_repo() -{ +check_files_in_repo () { crlf=$1 - txtbin=$2 + attr=$2 lfname=$3 crlfname=$4 lfmixcrlf=$5 lfmixcr=$6 crlfnul=$7 - pfx=crlf_${crlf}_attr_${txtbin}_ && + pfx=crlf_${crlf}_attr_${attr}_ && compare_files $lfname ${pfx}LF.txt && compare_files $crlfname ${pfx}CRLF.txt && compare_files $lfmixcrlf ${pfx}CRLF_mix_LF.txt && @@ -80,19 +84,18 @@ check_files_in_repo() } -check_files_in_ws() -{ +check_files_in_ws () { eol=$1 crlf=$2 - txtbin=$3 + attr=$3 lfname=$4 crlfname=$5 lfmixcrlf=$6 lfmixcr=$7 crlfnul=$8 - create_gitattributes $txtbin && + create_gitattributes $attr && git config core.autocrlf $crlf && - pfx=eol_${eol}_crlf_${crlf}_attr_${txtbin}_ && + pfx=eol_${eol}_crlf_${crlf}_attr_${attr}_ && src=crlf_false_attr__ && for f in LF CRLF LF_mix_CR CRLF_mix_LF CRLF_nul do @@ -104,42 +107,24 @@ check_files_in_ws() fi done - - test_expect_success "checkout core.eol=$eol core.autocrlf=$crlf gitattributes=$txtbin file=LF" " + 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 "checkout core.eol=$eol core.autocrlf=$crlf gitattributes=$txtbin file=CRLF" " + 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 core.eol=$eol core.autocrlf=$crlf gitattributes=$txtbin file=CRLF_mix_LF" " + 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 core.eol=$eol core.autocrlf=$crlf gitattributes=$txtbin file=LF_mix_CR" " + 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 core.eol=$eol core.autocrlf=$crlf gitattributes=$txtbin file=CRLF_nul" " + test_expect_success "checkout core.eol=$eol core.autocrlf=$crlf gitattributes=$attr file=CRLF_nul" " compare_ws_file $pfx $crlfnul ${src}CRLF_nul.txt " } ####### -( - type od >/dev/null && - printf "line1Q\r\nline2\r\nline3" | q_to_nul >CRLF_nul && - cat >expect <<-EOF && - 0000000 l i n e 1 \0 \r \n l i n e 2 \r \n l - 0000020 i n e 3 - 0000024 -EOF - od -c CRLF_nul | sed -e "s/[ ][ ]*/ /g" -e "s/ *$//" >actual - test_cmp expect actual && - rm expect actual -) || { - skip_all="od not found or od -c not usable" - exit 0 - test_done -} - test_expect_success 'setup master' ' echo >.gitattributes && git checkout -b master && @@ -150,9 +135,10 @@ test_expect_success 'setup master' ' 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 ' -# CRLF_nul had been created above + test_expect_success 'create files' ' create_file_in_repo false "" && @@ -201,7 +187,8 @@ test_expect_success 'commit -text' ' ################################################################################ # Check how files in the repo are changed when they are checked out # How to read the table below: -# - check_files_in_ws will check multiple files, see below +# - check_files_in_ws 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 @@ -211,55 +198,88 @@ test_expect_success 'commit -text' ' # - 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) -check_files_in_ws lf false "" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul -check_files_in_ws lf true "" CRLF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul -check_files_in_ws lf input "" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul - -check_files_in_ws lf false "auto" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul -check_files_in_ws lf true "auto" CRLF CRLF CRLF LF_mix_CR CRLF_nul -check_files_in_ws lf input "auto" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul - -check_files_in_ws lf false "text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul -check_files_in_ws lf true "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul -check_files_in_ws lf input "text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul - -check_files_in_ws lf false "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul -check_files_in_ws lf true "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul -check_files_in_ws lf input "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul - -########### -#core.autocrlf=input is forbidden with core.eol=crlf -check_files_in_ws crlf false "" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul -check_files_in_ws crlf true "" CRLF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul - -check_files_in_ws crlf false "auto" CRLF CRLF CRLF LF_mix_CR CRLF_nul -check_files_in_ws crlf true "auto" CRLF CRLF CRLF LF_mix_CR CRLF_nul - -check_files_in_ws crlf false "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul -check_files_in_ws crlf true "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul - -check_files_in_ws crlf false "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul -check_files_in_ws crlf true "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul - +# 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: if test_have_prereq MINGW then -check_files_in_ws "" false "" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul -check_files_in_ws "" true "" CRLF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul -check_files_in_ws "" false "auto" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul -check_files_in_ws "" true "auto" CRLF CRLF CRLF LF_mix_CR CRLF_nul -check_files_in_ws "" false "text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul -check_files_in_ws "" true "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul -check_files_in_ws "" false "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul -check_files_in_ws "" true "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul - -check_files_in_ws native false "" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul -check_files_in_ws native true "" CRLF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul -check_files_in_ws native false "auto" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul -check_files_in_ws native true "auto" CRLF CRLF CRLF LF_mix_CR CRLF_nul -check_files_in_ws native false "text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul -check_files_in_ws native true "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul -check_files_in_ws native false "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul -check_files_in_ws native true "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +MIX_CRLF_LF=CRLF +MIX_LF_CR=CRLF_mix_CR +NL=CRLF +else +MIX_CRLF_LF=CRLF_mix_LF +MIX_LF_CR=LF_mix_CR +NL=LF fi +export CRLF_MIX_LF_CR MIX NL + +check_files_in_ws lf false "" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws lf true "" CRLF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws lf input "" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws lf false "auto" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws lf true "auto" CRLF CRLF CRLF LF_mix_CR CRLF_nul +check_files_in_ws lf input "auto" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws lf false "text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws lf true "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul +check_files_in_ws lf input "text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws lf false "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws lf true "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws lf input "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws lf false "lf" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws lf true "lf" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws lf input "lf" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws lf false "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul +check_files_in_ws lf true "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul +check_files_in_ws lf input "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul + +check_files_in_ws crlf false "" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws crlf true "" CRLF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws crlf false "auto" CRLF CRLF CRLF LF_mix_CR CRLF_nul +check_files_in_ws crlf true "auto" CRLF CRLF CRLF LF_mix_CR CRLF_nul +check_files_in_ws crlf false "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul +check_files_in_ws crlf true "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul +check_files_in_ws crlf false "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws crlf true "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws crlf false "lf" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws crlf true "lf" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws crlf false "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul +check_files_in_ws crlf true "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul + +check_files_in_ws "" false "" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws "" true "" CRLF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws "" input "" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws "" false "auto" $NL CRLF $MIX_CRLF_LF LF_mix_CR CRLF_nul +check_files_in_ws "" true "auto" CRLF CRLF CRLF LF_mix_CR CRLF_nul +check_files_in_ws "" input "auto" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws "" false "text" $NL CRLF $MIX_CRLF_LF $MIX_LF_CR CRLF_nul +check_files_in_ws "" true "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul +check_files_in_ws "" input "text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws "" false "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws "" true "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws "" input "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws "" false "lf" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws "" true "lf" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws "" input "lf" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws "" false "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul +check_files_in_ws "" true "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul +check_files_in_ws "" input "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul + +check_files_in_ws native false "" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws native true "" CRLF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws native false "auto" $NL CRLF $MIX_CRLF_LF LF_mix_CR CRLF_nul +check_files_in_ws native true "auto" CRLF CRLF CRLF LF_mix_CR CRLF_nul +check_files_in_ws native false "text" $NL CRLF $MIX_CRLF_LF $MIX_LF_CR CRLF_nul +check_files_in_ws native true "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul +check_files_in_ws native false "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws native true "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws native false "lf" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws native true "lf" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +check_files_in_ws native false "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul +check_files_in_ws native true "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul test_done diff --git a/t/t0081-line-buffer.sh b/t/t0081-line-buffer.sh index 25dba008f3..ce92e6acad 100755 --- a/t/t0081-line-buffer.sh +++ b/t/t0081-line-buffer.sh @@ -29,7 +29,7 @@ test_expect_success '0-length read, send along greeting' ' test_cmp expect actual ' -test_expect_success NOT_MINGW 'read from file descriptor' ' +test_expect_success !MINGW 'read from file descriptor' ' rm -f input && echo hello >expect && echo hello >input && diff --git a/t/t0090-cache-tree.sh b/t/t0090-cache-tree.sh index 6c33e28ee8..f9648a8642 100755 --- a/t/t0090-cache-tree.sh +++ b/t/t0090-cache-tree.sh @@ -8,7 +8,7 @@ cache-tree extension. . ./test-lib.sh cmp_cache_tree () { - test-dump-cache-tree >actual && + test-dump-cache-tree | sed -e '/#(ref)/d' >actual && sed "s/$_x40/SHA/" <actual >filtered && test_cmp "$1" filtered } @@ -16,15 +16,40 @@ cmp_cache_tree () { # We don't bother with actually checking the SHA1: # test-dump-cache-tree already verifies that all existing data is # correct. -test_shallow_cache_tree () { - printf "SHA (%d entries, 0 subtrees)\n" $(git ls-files|wc -l) >expect && +generate_expected_cache_tree_rec () { + dir="$1${1:+/}" && + parent="$2" && + # ls-files might have foo/bar, foo/bar/baz, and foo/bar/quux + # We want to count only foo because it's the only direct child + subtrees=$(git ls-files|grep /|cut -d / -f 1|uniq) && + subtree_count=$(echo "$subtrees"|awk '$1 {++c} END {print c}') && + entries=$(git ls-files|wc -l) && + printf "SHA $dir (%d entries, %d subtrees)\n" "$entries" "$subtree_count" && + for subtree in $subtrees + do + cd "$subtree" + generate_expected_cache_tree_rec "$dir$subtree" "$dir" || return 1 + cd .. + done && + dir=$parent +} + +generate_expected_cache_tree () { + ( + generate_expected_cache_tree_rec + ) +} + +test_cache_tree () { + generate_expected_cache_tree >expect && cmp_cache_tree expect } test_invalid_cache_tree () { - echo "invalid (0 subtrees)" >expect && - printf "SHA #(ref) (%d entries, 0 subtrees)\n" $(git ls-files|wc -l) >>expect && - cmp_cache_tree expect + printf "invalid %s ()\n" "" "$@" >expect && + test-dump-cache-tree | + sed -n -e "s/[0-9]* subtrees//" -e '/#(ref)/d' -e '/^invalid /p' >actual && + test_cmp expect actual } test_no_cache_tree () { @@ -32,26 +57,59 @@ test_no_cache_tree () { cmp_cache_tree expect } -test_expect_failure 'initial commit has cache-tree' ' +test_expect_success 'initial commit has cache-tree' ' test_commit foo && - test_shallow_cache_tree + test_cache_tree ' test_expect_success 'read-tree HEAD establishes cache-tree' ' git read-tree HEAD && - test_shallow_cache_tree + test_cache_tree ' test_expect_success 'git-add invalidates cache-tree' ' test_when_finished "git reset --hard; git read-tree HEAD" && - echo "I changed this file" > foo && + echo "I changed this file" >foo && git add foo && test_invalid_cache_tree ' +test_expect_success 'git-add in subdir invalidates cache-tree' ' + test_when_finished "git reset --hard; git read-tree HEAD" && + mkdir dirx && + echo "I changed this file" >dirx/foo && + git add dirx/foo && + test_invalid_cache_tree +' + +cat >before <<\EOF +SHA (3 entries, 2 subtrees) +SHA dir1/ (1 entries, 0 subtrees) +SHA dir2/ (1 entries, 0 subtrees) +EOF + +cat >expect <<\EOF +invalid (2 subtrees) +invalid dir1/ (0 subtrees) +SHA dir2/ (1 entries, 0 subtrees) +EOF + +test_expect_success 'git-add in subdir does not invalidate sibling cache-tree' ' + git tag no-children && + test_when_finished "git reset --hard no-children; git read-tree HEAD" && + mkdir dir1 dir2 && + test_commit dir1/a && + test_commit dir2/b && + echo "I changed this file" >dir1/a && + cmp_cache_tree before && + echo "I changed this file" >dir1/a && + git add dir1/a && + cmp_cache_tree expect +' + test_expect_success 'update-index invalidates cache-tree' ' test_when_finished "git reset --hard; git read-tree HEAD" && - echo "I changed this file" > foo && + echo "I changed this file" >foo && git update-index --add foo && test_invalid_cache_tree ' @@ -59,7 +117,7 @@ test_expect_success 'update-index invalidates cache-tree' ' test_expect_success 'write-tree establishes cache-tree' ' test-scrap-cache-tree && git write-tree && - test_shallow_cache_tree + test_cache_tree ' test_expect_success 'test-scrap-cache-tree works' ' @@ -70,24 +128,94 @@ test_expect_success 'test-scrap-cache-tree works' ' test_expect_success 'second commit has cache-tree' ' test_commit bar && - test_shallow_cache_tree + test_cache_tree +' + +test_expect_success 'commit --interactive gives cache-tree on partial commit' ' + cat <<-\EOT >foo.c && + int foo() + { + return 42; + } + int bar() + { + return 42; + } + EOT + git add foo.c && + test_invalid_cache_tree && + git commit -m "add a file" && + test_cache_tree && + cat <<-\EOT >foo.c && + int foo() + { + return 43; + } + int bar() + { + return 44; + } + EOT + (echo p; echo 1; echo; echo s; echo n; echo y; echo q) | + git commit --interactive -m foo && + test_cache_tree +' + +test_expect_success 'commit in child dir has cache-tree' ' + mkdir dir && + >dir/child.t && + git add dir/child.t && + git commit -m dir/child.t && + test_cache_tree ' test_expect_success 'reset --hard gives cache-tree' ' test-scrap-cache-tree && git reset --hard && - test_shallow_cache_tree + test_cache_tree ' test_expect_success 'reset --hard without index gives cache-tree' ' rm -f .git/index && git reset --hard && - test_shallow_cache_tree + test_cache_tree ' -test_expect_failure 'checkout gives cache-tree' ' +test_expect_success 'checkout gives cache-tree' ' + git tag current && git checkout HEAD^ && - test_shallow_cache_tree + test_cache_tree +' + +test_expect_success 'checkout -b gives cache-tree' ' + git checkout current && + git checkout -b prev HEAD^ && + test_cache_tree +' + +test_expect_success 'checkout -B gives cache-tree' ' + git checkout current && + git checkout -B prev HEAD^ && + test_cache_tree +' + +test_expect_success 'partial commit gives cache-tree' ' + git checkout -b partial no-children && + test_commit one && + test_commit two && + echo "some change" >one.t && + git add one.t && + echo "some other change" >two.t && + git commit two.t -m partial && + test_cache_tree +' + +test_expect_success 'no phantom error when switching trees' ' + mkdir newdir && + >newdir/one && + git add newdir/one && + git checkout 2>errors && + ! test -s errors ' test_done diff --git a/t/t1020-subdirectory.sh b/t/t1020-subdirectory.sh index 62c0d25af4..2edb4f2de5 100755 --- a/t/t1020-subdirectory.sh +++ b/t/t1020-subdirectory.sh @@ -118,7 +118,7 @@ test_expect_success 'alias expansion' ' ) ' -test_expect_success NOT_MINGW '!alias expansion' ' +test_expect_success !MINGW '!alias expansion' ' pwd >expect && ( git config alias.test-alias-directory !pwd && diff --git a/t/t1050-large.sh b/t/t1050-large.sh index e7657ab323..f5a9119290 100755 --- a/t/t1050-large.sh +++ b/t/t1050-large.sh @@ -112,6 +112,20 @@ test_expect_success 'diff --raw' ' git diff --raw HEAD^ ' +test_expect_success 'diff --stat' ' + git diff --stat HEAD^ HEAD +' + +test_expect_success 'diff' ' + git diff HEAD^ HEAD >actual && + grep "Binary files.*differ" actual +' + +test_expect_success 'diff --cached' ' + git diff --cached HEAD^ >actual && + grep "Binary files.*differ" actual +' + test_expect_success 'hash-object' ' git hash-object large1 ' @@ -163,4 +177,10 @@ test_expect_success 'zip achiving, deflate' ' git archive --format=zip HEAD >/dev/null ' +test_expect_success 'fsck' ' + test_must_fail git fsck 2>err && + n=$(grep "error: attempting to allocate .* over limit" err | wc -l) && + test "$n" -gt 1 +' + test_done diff --git a/t/t1300-repo-config.sh b/t/t1300-repo-config.sh index 3f80ff0c14..938fc8bfd7 100755 --- a/t/t1300-repo-config.sh +++ b/t/t1300-repo-config.sh @@ -824,14 +824,14 @@ cat >expect <<\EOF trailingtilde = foo~ EOF -test_expect_success NOT_MINGW 'set --path' ' +test_expect_success !MINGW 'set --path' ' rm -f .git/config && git config --path path.home "~/" && git config --path path.normal "/dev/null" && git config --path path.trailingtilde "foo~" && test_cmp expect .git/config' -if test_have_prereq NOT_MINGW && test "${HOME+set}" +if test_have_prereq !MINGW && test "${HOME+set}" then test_set_prereq HOMEVAR fi @@ -854,7 +854,7 @@ cat >expect <<\EOF foo~ EOF -test_expect_success NOT_MINGW 'get --path copes with unset $HOME' ' +test_expect_success !MINGW 'get --path copes with unset $HOME' ' ( unset HOME; test_must_fail git config --get --path path.home \ @@ -1010,6 +1010,17 @@ test_expect_success 'git -c "key=value" support' ' test_must_fail git -c name=value config core.name ' +# We just need a type-specifier here that cares about the +# distinction internally between a NULL boolean and a real +# string (because most of git's internal parsers do care). +# Using "--path" works, but we do not otherwise care about +# its semantics. +test_expect_success 'git -c can represent empty string' ' + echo >expect && + git -c foo.empty= config --path foo.empty >actual && + test_cmp expect actual +' + test_expect_success 'key sanity-checking' ' test_must_fail git config foo=bar && test_must_fail git config foo=.bar && diff --git a/t/t1303-wacky-config.sh b/t/t1303-wacky-config.sh index 3a2c81968c..3b92083e19 100755 --- a/t/t1303-wacky-config.sh +++ b/t/t1303-wacky-config.sh @@ -111,4 +111,24 @@ test_expect_success 'unset many entries' ' test_must_fail git config section.key ' +test_expect_success '--add appends new value after existing empty value' ' + cat >expect <<-\EOF && + + + fool + roll + EOF + cp .git/config .git/config.old && + test_when_finished "mv .git/config.old .git/config" && + cat >.git/config <<-\EOF && + [foo] + baz + baz = + baz = fool + EOF + git config --add foo.baz roll && + git config --get-all foo.baz >output && + test_cmp expect output +' + test_done diff --git a/t/t1308-config-set.sh b/t/t1308-config-set.sh new file mode 100755 index 0000000000..ea0bce2dc6 --- /dev/null +++ b/t/t1308-config-set.sh @@ -0,0 +1,221 @@ +#!/bin/sh + +test_description='Test git config-set API in different settings' + +. ./test-lib.sh + +# 'check_config get_* section.key value' verifies that the entry for +# section.key is 'value' +check_config () { + if test "$1" = expect_code + then + expect_code="$2" && shift && shift + else + expect_code=0 + fi && + op=$1 key=$2 && shift && shift && + if test $# != 0 + then + printf "%s\n" "$@" + fi >expect && + test_expect_code $expect_code test-config "$op" "$key" >actual && + test_cmp expect actual +} + +test_expect_success 'setup default config' ' + cat >.git/config <<\EOF + [case] + penguin = very blue + Movie = BadPhysics + UPPERCASE = true + MixedCase = true + my = + foo + baz = sam + [Cores] + WhatEver = Second + baz = bar + [cores] + baz = bat + [CORES] + baz = ball + [my "Foo bAr"] + hi = mixed-case + [my "FOO BAR"] + hi = upper-case + [my "foo bar"] + hi = lower-case + [case] + baz = bat + baz = hask + [lamb] + chop = 65 + head = none + [goat] + legs = 4 + head = true + skin = false + nose = 1 + horns + EOF +' + +test_expect_success 'get value for a simple key' ' + check_config get_value case.penguin "very blue" +' + +test_expect_success 'get value for a key with value as an empty string' ' + check_config get_value case.my "" +' + +test_expect_success 'get value for a key with value as NULL' ' + check_config get_value case.foo "(NULL)" +' + +test_expect_success 'upper case key' ' + check_config get_value case.UPPERCASE "true" && + check_config get_value case.uppercase "true" +' + +test_expect_success 'mixed case key' ' + check_config get_value case.MixedCase "true" && + check_config get_value case.MIXEDCASE "true" && + check_config get_value case.mixedcase "true" +' + +test_expect_success 'key and value with mixed case' ' + check_config get_value case.Movie "BadPhysics" +' + +test_expect_success 'key with case sensitive subsection' ' + check_config get_value "my.Foo bAr.hi" "mixed-case" && + check_config get_value "my.FOO BAR.hi" "upper-case" && + check_config get_value "my.foo bar.hi" "lower-case" +' + +test_expect_success 'key with case insensitive section header' ' + check_config get_value cores.baz "ball" && + check_config get_value Cores.baz "ball" && + check_config get_value CORES.baz "ball" && + check_config get_value coreS.baz "ball" +' + +test_expect_success 'key with case insensitive section header & variable' ' + check_config get_value CORES.BAZ "ball" && + check_config get_value cores.baz "ball" && + check_config get_value cores.BaZ "ball" && + check_config get_value cOreS.bAz "ball" +' + +test_expect_success 'find value with misspelled key' ' + check_config expect_code 1 get_value "my.fOo Bar.hi" "Value not found for \"my.fOo Bar.hi\"" +' + +test_expect_success 'find value with the highest priority' ' + check_config get_value case.baz "hask" +' + +test_expect_success 'find integer value for a key' ' + check_config get_int lamb.chop 65 +' + +test_expect_success 'find string value for a key' ' + check_config get_string case.baz hask && + check_config expect_code 1 get_string case.ba "Value not found for \"case.ba\"" +' + +test_expect_success 'check line error when NULL string is queried' ' + test_expect_code 128 test-config get_string case.foo 2>result && + test_i18ngrep "fatal: .*case\.foo.*\.git/config.*line 7" result +' + +test_expect_success 'find integer if value is non parse-able' ' + check_config expect_code 128 get_int lamb.head +' + +test_expect_success 'find bool value for the entered key' ' + check_config get_bool goat.head 1 && + check_config get_bool goat.skin 0 && + check_config get_bool goat.nose 1 && + check_config get_bool goat.horns 1 && + check_config get_bool goat.legs 1 +' + +test_expect_success 'find multiple values' ' + check_config get_value_multi case.baz sam bat hask +' + +test_expect_success 'find value from a configset' ' + cat >config2 <<-\EOF && + [case] + baz = lama + [my] + new = silk + [case] + baz = ball + EOF + echo silk >expect && + test-config configset_get_value my.new config2 .git/config >actual && + test_cmp expect actual +' + +test_expect_success 'find value with highest priority from a configset' ' + echo hask >expect && + test-config configset_get_value case.baz config2 .git/config >actual && + test_cmp expect actual +' + +test_expect_success 'find value_list for a key from a configset' ' + cat >except <<-\EOF && + sam + bat + hask + lama + ball + EOF + test-config configset_get_value case.baz config2 .git/config >actual && + test_cmp expect actual +' + +test_expect_success 'proper error on non-existent files' ' + echo "Error (-1) reading configuration file non-existent-file." >expect && + test_expect_code 2 test-config configset_get_value foo.bar non-existent-file 2>actual && + test_cmp expect actual +' + +test_expect_success POSIXPERM,SANITY 'proper error on non-accessible files' ' + chmod -r .git/config && + test_when_finished "chmod +r .git/config" && + echo "Error (-1) reading configuration file .git/config." >expect && + test_expect_code 2 test-config configset_get_value foo.bar .git/config 2>actual && + test_cmp expect actual +' + +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 35 in .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 && + test_expect_code 128 test-config configset_get_value foo.bar syntax-error 2>actual && + test_cmp expect actual +' + +test_expect_success 'check line errors for malformed values' ' + mv .git/config .git/config.old && + test_when_finished "mv .git/config.old .git/config" && + cat >.git/config <<-\EOF && + [alias] + br + EOF + test_expect_code 128 git br 2>result && + test_i18ngrep "fatal: .*alias\.br.*\.git/config.*line 2" result +' + +test_done diff --git a/t/t1402-check-ref-format.sh b/t/t1402-check-ref-format.sh index 4bc7141226..e5dc62e9ef 100755 --- a/t/t1402-check-ref-format.sh +++ b/t/t1402-check-ref-format.sh @@ -7,7 +7,7 @@ test_description='Test git check-ref-format' valid_ref() { prereq= case $1 in - [A-Z]*) + [A-Z!]*) prereq=$1 shift esac @@ -19,7 +19,7 @@ valid_ref() { invalid_ref() { prereq= case $1 in - [A-Z]*) + [A-Z!]*) prereq=$1 shift esac @@ -30,17 +30,17 @@ invalid_ref() { } invalid_ref '' -invalid_ref NOT_MINGW '/' -invalid_ref NOT_MINGW '/' --allow-onelevel -invalid_ref NOT_MINGW '/' --normalize -invalid_ref NOT_MINGW '/' '--allow-onelevel --normalize' +invalid_ref !MINGW '/' +invalid_ref !MINGW '/' --allow-onelevel +invalid_ref !MINGW '/' --normalize +invalid_ref !MINGW '/' '--allow-onelevel --normalize' valid_ref 'foo/bar/baz' valid_ref 'foo/bar/baz' --normalize invalid_ref 'refs///heads/foo' valid_ref 'refs///heads/foo' --normalize invalid_ref 'heads/foo/' -invalid_ref NOT_MINGW '/heads/foo' -valid_ref NOT_MINGW '/heads/foo' --normalize +invalid_ref !MINGW '/heads/foo' +valid_ref !MINGW '/heads/foo' --normalize invalid_ref '///heads/foo' valid_ref '///heads/foo' --normalize invalid_ref './foo' @@ -120,14 +120,14 @@ invalid_ref "$ref" --refspec-pattern invalid_ref "$ref" '--refspec-pattern --allow-onelevel' ref='/foo' -invalid_ref NOT_MINGW "$ref" -invalid_ref NOT_MINGW "$ref" --allow-onelevel -invalid_ref NOT_MINGW "$ref" --refspec-pattern -invalid_ref NOT_MINGW "$ref" '--refspec-pattern --allow-onelevel' -invalid_ref NOT_MINGW "$ref" --normalize -valid_ref NOT_MINGW "$ref" '--allow-onelevel --normalize' -invalid_ref NOT_MINGW "$ref" '--refspec-pattern --normalize' -valid_ref NOT_MINGW "$ref" '--refspec-pattern --allow-onelevel --normalize' +invalid_ref !MINGW "$ref" +invalid_ref !MINGW "$ref" --allow-onelevel +invalid_ref !MINGW "$ref" --refspec-pattern +invalid_ref !MINGW "$ref" '--refspec-pattern --allow-onelevel' +invalid_ref !MINGW "$ref" --normalize +valid_ref !MINGW "$ref" '--allow-onelevel --normalize' +invalid_ref !MINGW "$ref" '--refspec-pattern --normalize' +valid_ref !MINGW "$ref" '--refspec-pattern --allow-onelevel --normalize' test_expect_success "check-ref-format --branch @{-1}" ' T=$(git write-tree) && @@ -162,7 +162,7 @@ test_expect_success 'check-ref-format --branch from subdir' ' valid_ref_normalized() { prereq= case $1 in - [A-Z]*) + [A-Z!]*) prereq=$1 shift esac @@ -174,7 +174,7 @@ valid_ref_normalized() { invalid_ref_normalized() { prereq= case $1 in - [A-Z]*) + [A-Z!]*) prereq=$1 shift esac @@ -185,10 +185,10 @@ invalid_ref_normalized() { valid_ref_normalized 'heads/foo' 'heads/foo' valid_ref_normalized 'refs///heads/foo' 'refs/heads/foo' -valid_ref_normalized NOT_MINGW '/heads/foo' 'heads/foo' +valid_ref_normalized !MINGW '/heads/foo' 'heads/foo' valid_ref_normalized '///heads/foo' 'heads/foo' invalid_ref_normalized 'foo' -invalid_ref_normalized NOT_MINGW '/foo' +invalid_ref_normalized !MINGW '/foo' invalid_ref_normalized 'heads/foo/../bar' invalid_ref_normalized 'heads/./foo' invalid_ref_normalized 'heads\foo' diff --git a/t/t1450-fsck.sh b/t/t1450-fsck.sh index 8c739c9613..019fddd4e8 100755 --- a/t/t1450-fsck.sh +++ b/t/t1450-fsck.sh @@ -69,7 +69,7 @@ test_expect_success 'object with bad sha1' ' git update-ref refs/heads/bogus $cmt && test_when_finished "git update-ref -d refs/heads/bogus" && - test_might_fail git fsck 2>out && + test_must_fail git fsck 2>out && cat out && grep "$sha.*corrupt" out ' @@ -101,7 +101,7 @@ test_expect_success 'email with embedded > is not okay' ' test_when_finished "remove_object $new" && git update-ref refs/heads/bogus "$new" && test_when_finished "git update-ref -d refs/heads/bogus" && - git fsck 2>out && + test_must_fail git fsck 2>out && cat out && grep "error in commit $new" out ' @@ -113,7 +113,7 @@ test_expect_success 'missing < email delimiter is reported nicely' ' test_when_finished "remove_object $new" && git update-ref refs/heads/bogus "$new" && test_when_finished "git update-ref -d refs/heads/bogus" && - git fsck 2>out && + test_must_fail git fsck 2>out && cat out && grep "error in commit $new.* - bad name" out ' @@ -125,7 +125,7 @@ test_expect_success 'missing email is reported nicely' ' test_when_finished "remove_object $new" && git update-ref refs/heads/bogus "$new" && test_when_finished "git update-ref -d refs/heads/bogus" && - git fsck 2>out && + test_must_fail git fsck 2>out && cat out && grep "error in commit $new.* - missing email" out ' @@ -137,7 +137,7 @@ test_expect_success '> in name is reported' ' test_when_finished "remove_object $new" && git update-ref refs/heads/bogus "$new" && test_when_finished "git update-ref -d refs/heads/bogus" && - git fsck 2>out && + test_must_fail git fsck 2>out && cat out && grep "error in commit $new" out ' @@ -151,11 +151,31 @@ test_expect_success 'integer overflow in timestamps is reported' ' test_when_finished "remove_object $new" && git update-ref refs/heads/bogus "$new" && test_when_finished "git update-ref -d refs/heads/bogus" && - git fsck 2>out && + test_must_fail git fsck 2>out && cat out && grep "error in commit $new.*integer overflow" out ' +test_expect_success 'malformatted tree object' ' + test_when_finished "git update-ref -d refs/tags/wrong" && + test_when_finished "remove_object \$T" && + T=$( + GIT_INDEX_FILE=test-index && + export GIT_INDEX_FILE && + rm -f test-index && + >x && + git add x && + T=$(git write-tree) && + ( + git cat-file tree $T && + git cat-file tree $T + ) | + git hash-object -w -t tree --stdin + ) && + test_must_fail git fsck 2>out && + grep "error in tree .*contains duplicate file entries" out +' + test_expect_success 'tag pointing to nonexistent' ' cat >invalid-tag <<-\EOF && object ffffffffffffffffffffffffffffffffffffffff @@ -194,6 +214,44 @@ test_expect_success 'tag pointing to something else than its type' ' test_must_fail git fsck --tags ' +test_expect_success 'tag with incorrect tag name & missing tagger' ' + sha=$(git rev-parse HEAD) && + cat >wrong-tag <<-EOF && + object $sha + type commit + tag wrong name format + + This is an invalid tag. + EOF + + tag=$(git hash-object -t tag -w --stdin <wrong-tag) && + test_when_finished "remove_object $tag" && + echo $tag >.git/refs/tags/wrong && + test_when_finished "git update-ref -d refs/tags/wrong" && + git fsck --tags 2>out && + grep "invalid .tag. name" out && + grep "expected .tagger. line" out +' + +test_expect_success 'tag with bad tagger' ' + sha=$(git rev-parse HEAD) && + cat >wrong-tag <<-EOF && + object $sha + type commit + tag not-quite-wrong + tagger Bad Tagger Name + + This is an invalid tag. + EOF + + tag=$(git hash-object --literally -t tag -w --stdin <wrong-tag) && + test_when_finished "remove_object $tag" && + echo $tag >.git/refs/tags/wrong && + test_when_finished "git update-ref -d refs/tags/wrong" && + test_must_fail git fsck --tags 2>out && + grep "error in tag .*: invalid author/committer" out +' + test_expect_success 'cleaned up' ' git fsck >actual 2>&1 && test_cmp empty actual @@ -282,4 +340,60 @@ test_expect_success 'fsck notices ".git" in trees' ' ) ' +# create a static test repo which is broken by omitting +# one particular object ($1, which is looked up via rev-parse +# in the new repository). +create_repo_missing () { + rm -rf missing && + git init missing && + ( + cd missing && + git commit -m one --allow-empty && + mkdir subdir && + echo content >subdir/file && + git add subdir/file && + git commit -m two && + unrelated=$(echo unrelated | git hash-object --stdin -w) && + git tag -m foo tag $unrelated && + sha1=$(git rev-parse --verify "$1") && + path=$(echo $sha1 | sed 's|..|&/|') && + rm .git/objects/$path + ) +} + +test_expect_success 'fsck notices missing blob' ' + create_repo_missing HEAD:subdir/file && + test_must_fail git -C missing fsck +' + +test_expect_success 'fsck notices missing subtree' ' + create_repo_missing HEAD:subdir && + test_must_fail git -C missing fsck +' + +test_expect_success 'fsck notices missing root tree' ' + create_repo_missing HEAD^{tree} && + test_must_fail git -C missing fsck +' + +test_expect_success 'fsck notices missing parent' ' + create_repo_missing HEAD^ && + test_must_fail git -C missing fsck +' + +test_expect_success 'fsck notices missing tagged object' ' + create_repo_missing tag^{blob} && + test_must_fail git -C missing fsck +' + +test_expect_success 'fsck notices ref pointing to missing commit' ' + create_repo_missing HEAD && + test_must_fail git -C missing fsck +' + +test_expect_success 'fsck notices ref pointing to missing tag' ' + create_repo_missing tag && + test_must_fail git -C missing fsck +' + test_done diff --git a/t/t1502-rev-parse-parseopt.sh b/t/t1502-rev-parse-parseopt.sh index 922423e7d0..ebe7c3b87c 100755 --- a/t/t1502-rev-parse-parseopt.sh +++ b/t/t1502-rev-parse-parseopt.sh @@ -19,7 +19,7 @@ sed -e 's/^|//' >expect <<\END_EXPECT | -d, --data[=...] short and long option with an optional argument | |Argument hints -| -b <arg> short option required argument +| -B <arg> short option required argument | --bar2 <arg> long option required argument | -e, --fuz <with-space> | short and long option required argument @@ -51,7 +51,7 @@ sed -e 's/^|//' >optionspec <<\EOF |d,data? short and long option with an optional argument | | Argument hints -|b=arg short option required argument +|B=arg short option required argument |bar2=arg long option required argument |e,fuz=with-space short and long option required argument |s?some short option optional argument diff --git a/t/t1503-rev-parse-verify.sh b/t/t1503-rev-parse-verify.sh index 813cc1b3e2..823fe1d799 100755 --- a/t/t1503-rev-parse-verify.sh +++ b/t/t1503-rev-parse-verify.sh @@ -72,15 +72,42 @@ test_expect_success 'fails with any bad rev or many good revs' ' test_expect_success 'fails silently when using -q' ' test_must_fail git rev-parse --verify --quiet 2>error && - test -z "$(cat error)" && + test_must_be_empty error && test_must_fail git rev-parse -q --verify foo 2>error && - test -z "$(cat error)" && + test_must_be_empty error && test_must_fail git rev-parse --verify -q HEAD bar 2>error && - test -z "$(cat error)" && + test_must_be_empty error && test_must_fail git rev-parse --quiet --verify baz HEAD 2>error && - test -z "$(cat error)" && + test_must_be_empty error && test_must_fail git rev-parse -q --verify $HASH2 HEAD 2>error && - test -z "$(cat error)" + test_must_be_empty error +' + +test_expect_success 'fails silently when using -q with deleted reflogs' ' + ref=$(git rev-parse HEAD) && + : >.git/logs/refs/test && + git update-ref -m "message for refs/test" refs/test "$ref" && + git reflog delete --updateref --rewrite refs/test@{0} && + test_must_fail git rev-parse -q --verify refs/test@{0} >error 2>&1 && + test_must_be_empty error +' + +test_expect_success 'fails silently when using -q with not enough reflogs' ' + ref=$(git rev-parse HEAD) && + : >.git/logs/refs/test2 && + git update-ref -m "message for refs/test2" refs/test2 "$ref" && + test_must_fail git rev-parse -q --verify refs/test2@{999} >error 2>&1 && + test_must_be_empty error +' + +test_expect_success 'succeeds silently with -q and reflogs that do not go far back enough in time' ' + ref=$(git rev-parse HEAD) && + : >.git/logs/refs/test3 && + git update-ref -m "message for refs/test3" refs/test3 "$ref" && + git rev-parse -q --verify refs/test3@{1.year.ago} >actual 2>error && + test_must_be_empty error && + echo "$ref" >expect && + test_cmp expect actual ' test_expect_success 'no stdout output on error' ' diff --git a/t/t3201-branch-contains.sh b/t/t3201-branch-contains.sh index 141b0611ea..912a6635a8 100755 --- a/t/t3201-branch-contains.sh +++ b/t/t3201-branch-contains.sh @@ -130,4 +130,33 @@ test_expect_success 'implicit --list conflicts with modification options' ' ' +# We want to set up a case where the walk for the tracking info +# of one branch crosses the tip of another branch (and make sure +# that the latter walk does not mess up our flag to see if it was +# merged). +# +# Here "topic" tracks "master" with one extra commit, and "zzz" points to the +# same tip as master The name "zzz" must come alphabetically after "topic" +# as we process them in that order. +test_expect_success 'branch --merged with --verbose' ' + git branch --track topic master && + git branch zzz topic && + git checkout topic && + test_commit foo && + git branch --merged topic >actual && + cat >expect <<-\EOF && + master + * topic + zzz + EOF + test_cmp expect actual && + git branch --verbose --merged topic >actual && + cat >expect <<-\EOF && + master c77a0a9 second on master + * topic 2c939f4 [ahead 1] foo + zzz c77a0a9 second on master + EOF + test_cmp expect actual +' + test_done diff --git a/t/t3210-pack-refs.sh b/t/t3210-pack-refs.sh index 1a2080e3dc..aa9eb3a3e5 100755 --- a/t/t3210-pack-refs.sh +++ b/t/t3210-pack-refs.sh @@ -11,7 +11,9 @@ semantic is still the same. ' . ./test-lib.sh -echo '[core] logallrefupdates = true' >>.git/config +test_expect_success 'enable reflogs' ' + git config core.logallrefupdates true +' test_expect_success \ 'prepare a trivial repository' \ @@ -151,4 +153,38 @@ test_expect_success 'delete ref while another dangling packed ref' ' test_cmp /dev/null result ' +test_expect_success 'pack ref directly below refs/' ' + git update-ref refs/top HEAD && + git pack-refs --all --prune && + grep refs/top .git/packed-refs && + test_path_is_missing .git/refs/top +' + +test_expect_success 'disable reflogs' ' + git config core.logallrefupdates false && + rm -rf .git/logs +' + +test_expect_success 'create packed foo/bar/baz branch' ' + git branch foo/bar/baz && + git pack-refs --all --prune && + test_path_is_missing .git/refs/heads/foo/bar/baz && + test_path_is_missing .git/logs/refs/heads/foo/bar/baz +' + +test_expect_success 'notice d/f conflict with existing directory' ' + test_must_fail git branch foo && + test_must_fail git branch foo/bar +' + +test_expect_success 'existing directory reports concrete ref' ' + test_must_fail git branch foo 2>stderr && + grep refs/heads/foo/bar/baz stderr +' + +test_expect_success 'notice d/f conflict with existing ref' ' + test_must_fail git branch foo/bar/baz/extra && + test_must_fail git branch foo/bar/baz/lots/of/extra/components +' + test_done diff --git a/t/t3302-notes-index-expensive.sh b/t/t3302-notes-index-expensive.sh index 8d44e04354..7217c5e222 100755 --- a/t/t3302-notes-index-expensive.sh +++ b/t/t3302-notes-index-expensive.sh @@ -7,8 +7,6 @@ test_description='Test commit notes index (expensive!)' . ./test-lib.sh -test -n "$GIT_NOTES_TIMING_TESTS" && test_set_prereq EXPENSIVE - create_repo () { number_of_commits=$1 nr=0 diff --git a/t/t3419-rebase-patch-id.sh b/t/t3419-rebase-patch-id.sh index 9292b499f3..217dd79b2e 100755 --- a/t/t3419-rebase-patch-id.sh +++ b/t/t3419-rebase-patch-id.sh @@ -4,8 +4,6 @@ test_description='git rebase - test patch id computation' . ./test-lib.sh -test -n "$GIT_PATCHID_TIMING_TESTS" && test_set_prereq EXPENSIVE - count () { i=0 while test $i -lt $1 diff --git a/t/t3901-i18n-patch.sh b/t/t3901-i18n-patch.sh index 55c8a2f576..a392f3d1d6 100755 --- a/t/t3901-i18n-patch.sh +++ b/t/t3901-i18n-patch.sh @@ -54,7 +54,7 @@ test_expect_success setup ' git add yours && git commit -s -m "Second on side" && - if test_have_prereq NOT_MINGW + if test_have_prereq !MINGW then # the second one on the side branch is ISO-8859-1 git config i18n.commitencoding ISO8859-1 && @@ -122,7 +122,7 @@ test_expect_success 'rebase (U/L)' ' check_encoding 2 ' -test_expect_success NOT_MINGW 'rebase (L/L)' ' +test_expect_success !MINGW 'rebase (L/L)' ' # In this test we want ISO-8859-1 encoded commits as the result git config i18n.commitencoding ISO8859-1 && git config i18n.logoutputencoding ISO8859-1 && @@ -134,7 +134,7 @@ test_expect_success NOT_MINGW 'rebase (L/L)' ' check_encoding 2 8859 ' -test_expect_success NOT_MINGW 'rebase (L/U)' ' +test_expect_success !MINGW 'rebase (L/U)' ' # This is pathological -- use UTF-8 as intermediate form # to get ISO-8859-1 results. git config i18n.commitencoding ISO8859-1 && @@ -162,7 +162,7 @@ test_expect_success 'cherry-pick(U/U)' ' check_encoding 3 ' -test_expect_success NOT_MINGW 'cherry-pick(L/L)' ' +test_expect_success !MINGW 'cherry-pick(L/L)' ' # Both the commitencoding and logoutputencoding is set to ISO-8859-1 git config i18n.commitencoding ISO8859-1 && @@ -192,7 +192,7 @@ test_expect_success 'cherry-pick(U/L)' ' check_encoding 3 ' -test_expect_success NOT_MINGW 'cherry-pick(L/U)' ' +test_expect_success !MINGW 'cherry-pick(L/U)' ' # Again, the commitencoding is set to ISO-8859-1 but # logoutputencoding is set to UTF-8. diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh index 5b79b216e2..1e29962fad 100755 --- a/t/t3903-stash.sh +++ b/t/t3903-stash.sh @@ -685,4 +685,46 @@ test_expect_success 'handle stash specification with spaces' ' grep pig file ' +test_expect_success 'setup stash with index and worktree changes' ' + git stash clear && + git reset --hard && + echo index >file && + git add file && + echo working >file && + git stash +' + +test_expect_success 'stash list implies --first-parent -m' ' + cat >expect <<-\EOF && + stash@{0}: WIP on master: b27a2bc subdir + + diff --git a/file b/file + index 257cc56..d26b33d 100644 + --- a/file + +++ b/file + @@ -1 +1 @@ + -foo + +working + EOF + git stash list -p >actual && + test_cmp expect actual +' + +test_expect_success 'stash list --cc shows combined diff' ' + cat >expect <<-\EOF && + stash@{0}: WIP on master: b27a2bc subdir + + diff --cc file + index 257cc56,9015a7a..d26b33d + --- a/file + +++ b/file + @@@ -1,1 -1,1 +1,1 @@@ + - foo + -index + ++working + EOF + git stash list -p --cc >actual && + test_cmp expect actual +' + test_done diff --git a/t/t4038-diff-combined.sh b/t/t4038-diff-combined.sh index 41913c3aa3..0b4f7dfdc6 100755 --- a/t/t4038-diff-combined.sh +++ b/t/t4038-diff-combined.sh @@ -401,4 +401,38 @@ test_expect_success 'combine diff missing delete bug' ' compare_diff_patch expected actual ' +test_expect_success 'combine diff gets tree sorting right' ' + # create a directory and a file that sort differently in trees + # versus byte-wise (implied "/" sorts after ".") + git checkout -f master && + mkdir foo && + echo base >foo/one && + echo base >foo/two && + echo base >foo.ext && + git add foo foo.ext && + git commit -m base && + + # one side modifies a file in the directory, along with the root + # file... + echo master >foo/one && + echo master >foo.ext && + git commit -a -m master && + + # the other side modifies the other file in the directory + git checkout -b other HEAD^ && + echo other >foo/two && + git commit -a -m other && + + # And now we merge. The files in the subdirectory will resolve cleanly, + # meaning that a combined diff will not find them interesting. But it + # will find the tree itself interesting, because it had to be merged. + git checkout master && + git merge other && + + printf "MM\tfoo\n" >expect && + git diff-tree -c --name-status -t HEAD >actual.tmp && + sed 1d <actual.tmp >actual && + test_cmp expect actual +' + test_done diff --git a/t/t4055-diff-context.sh b/t/t4055-diff-context.sh index cd0454356a..741e0803c1 100755 --- a/t/t4055-diff-context.sh +++ b/t/t4055-diff-context.sh @@ -79,7 +79,7 @@ test_expect_success 'non-integer config parsing' ' test_expect_success 'negative integer config parsing' ' git config diff.context -1 && test_must_fail git diff 2>output && - test_i18ngrep "bad config file" output + test_i18ngrep "bad config variable" output ' test_expect_success '-U0 is valid, so is diff.context=0' ' diff --git a/t/t4119-apply-config.sh b/t/t4119-apply-config.sh index c393be691b..a9a0583811 100755 --- a/t/t4119-apply-config.sh +++ b/t/t4119-apply-config.sh @@ -159,4 +159,21 @@ test_expect_success 'same but with traditional patch input of depth 2' ' check_result sub/file1 ' +test_expect_success 'in subdir with traditional patch input' ' + cd "$D" && + git config apply.whitespace strip && + cat >.gitattributes <<-EOF && + /* whitespace=blank-at-eol + sub/* whitespace=-blank-at-eol + EOF + rm -f sub/file1 && + cp saved sub/file1 && + git update-index --refresh && + + cd sub && + git apply ../gpatch.file && + echo "B " >expect && + test_cmp expect file1 +' + test_done diff --git a/t/t4124-apply-ws-rule.sh b/t/t4124-apply-ws-rule.sh index 5d0c598338..c6474de4c8 100755 --- a/t/t4124-apply-ws-rule.sh +++ b/t/t4124-apply-ws-rule.sh @@ -512,4 +512,15 @@ test_expect_success 'whitespace=fix to expand' ' git -c core.whitespace=tab-in-indent apply --whitespace=fix patch ' +test_expect_success 'whitespace check skipped for excluded paths' ' + git config core.whitespace blank-at-eol && + >used && + >unused && + git add used unused && + echo "used" >used && + echo "unused " >unused && + git diff-files -p used unused >patch && + git apply --include=used --stat --whitespace=error <patch +' + test_done diff --git a/t/t4201-shortlog.sh b/t/t4201-shortlog.sh index 565c020c45..7600a3e3e8 100755 --- a/t/t4201-shortlog.sh +++ b/t/t4201-shortlog.sh @@ -93,7 +93,7 @@ test_expect_success 'output from user-defined format is re-wrapped' ' test_cmp expect log.predictable ' -test_expect_success NOT_MINGW 'shortlog wrapping' ' +test_expect_success !MINGW 'shortlog wrapping' ' cat >expect <<\EOF && A U Thor (5): Test @@ -114,7 +114,7 @@ EOF test_cmp expect out ' -test_expect_success NOT_MINGW 'shortlog from non-git directory' ' +test_expect_success !MINGW 'shortlog from non-git directory' ' git log HEAD >log && GIT_DIR=non-existing git shortlog -w <log >out && test_cmp expect out @@ -159,7 +159,7 @@ $DSCHO (2): EOF -test_expect_success NOT_MINGW 'shortlog encoding' ' +test_expect_success !MINGW 'shortlog encoding' ' git reset --hard "$commit" && git config --unset i18n.commitencoding && echo 2 > a1 && diff --git a/t/t4205-log-pretty-formats.sh b/t/t4205-log-pretty-formats.sh index 349c531989..7398605e7b 100755 --- a/t/t4205-log-pretty-formats.sh +++ b/t/t4205-log-pretty-formats.sh @@ -431,6 +431,21 @@ EOF test_cmp expected actual ' +test_expect_success 'strbuf_utf8_replace() not producing NUL' ' + git log --color --pretty="tformat:%<(10,trunc)%s%>>(10,ltrunc)%C(auto)%d" | + test_decode_color | + nul_to_q >actual && + ! grep Q actual +' + +# ISO strict date format +test_expect_success 'ISO and ISO-strict date formats display the same values' ' + git log --format=%ai%n%ci | + sed -e "s/ /T/; s/ //; s/..\$/:&/" >expected && + git log --format=%aI%n%cI >actual && + test_cmp expected actual +' + # get new digests (with no abbreviations) head1=$(git rev-parse --verify HEAD~0) && head2=$(git rev-parse --verify HEAD~1) && @@ -450,4 +465,15 @@ EOF test_cmp expected actual1 ' +test_expect_success 'clean log decoration' ' + git log --no-walk --tags --pretty="%H %D" --decorate=full >actual && + cat >expected <<EOF && +$head1 tag: refs/tags/tag2 +$head2 tag: refs/tags/message-one +$old_head1 tag: refs/tags/message-two +EOF + sort actual >actual1 && + test_cmp expected actual1 +' + test_done diff --git a/t/t4210-log-i18n.sh b/t/t4210-log-i18n.sh index 9110404e55..e585fe6129 100755 --- a/t/t4210-log-i18n.sh +++ b/t/t4210-log-i18n.sh @@ -34,7 +34,7 @@ test_expect_success 'log --grep searches in log output encoding (utf8)' ' test_cmp expect actual ' -test_expect_success NOT_MINGW 'log --grep searches in log output encoding (latin1)' ' +test_expect_success !MINGW 'log --grep searches in log output encoding (latin1)' ' cat >expect <<-\EOF && latin1 utf8 @@ -43,7 +43,7 @@ test_expect_success NOT_MINGW 'log --grep searches in log output encoding (latin test_cmp expect actual ' -test_expect_success NOT_MINGW 'log --grep does not find non-reencoded values (utf8)' ' +test_expect_success !MINGW 'log --grep does not find non-reencoded values (utf8)' ' >expect && git log --encoding=utf8 --format=%s --grep=$latin1_e >actual && test_cmp expect actual diff --git a/t/t4212-log-corrupt.sh b/t/t4212-log-corrupt.sh index 58b792bf20..67bd8ec020 100755 --- a/t/t4212-log-corrupt.sh +++ b/t/t4212-log-corrupt.sh @@ -14,7 +14,7 @@ test_expect_success 'setup' ' ' test_expect_success 'fsck notices broken commit' ' - git fsck 2>actual && + test_must_fail git fsck 2>actual && test_i18ngrep invalid.author actual ' diff --git a/t/t5000-tar-tree.sh b/t/t5000-tar-tree.sh index 7b8babd89b..d01bbdc968 100755 --- a/t/t5000-tar-tree.sh +++ b/t/t5000-tar-tree.sh @@ -305,4 +305,18 @@ test_expect_success GZIP 'remote tar.gz can be disabled' ' >remote.tar.gz ' +test_expect_success 'archive and :(glob)' ' + git archive -v HEAD -- ":(glob)**/sh" >/dev/null 2>actual && + cat >expect <<EOF && +a/ +a/bin/ +a/bin/sh +EOF + test_cmp expect actual +' + +test_expect_success 'catch non-matching pathspec' ' + test_must_fail git archive -v HEAD -- "*.abc" >/dev/null +' + test_done diff --git a/t/t5004-archive-corner-cases.sh b/t/t5004-archive-corner-cases.sh index 305bcac6b7..83d20c4ba9 100755 --- a/t/t5004-archive-corner-cases.sh +++ b/t/t5004-archive-corner-cases.sh @@ -113,4 +113,9 @@ test_expect_success 'archive empty subtree by direct pathspec' ' check_dir extract sub ' +test_expect_success 'archive applies umask even for pax headers' ' + git archive --format=tar HEAD >archive.tar && + ! grep 0666 archive.tar +' + test_done diff --git a/t/t5100-mailinfo.sh b/t/t5100-mailinfo.sh index 3e64a7a65d..9e1ad1ca21 100755 --- a/t/t5100-mailinfo.sh +++ b/t/t5100-mailinfo.sh @@ -89,4 +89,22 @@ test_expect_success 'mailinfo on from header without name works' ' ' +test_expect_success 'mailinfo finds headers after embedded From line' ' + mkdir embed-from && + git mailsplit -oembed-from "$TEST_DIRECTORY"/t5100/embed-from.in && + test_cmp "$TEST_DIRECTORY"/t5100/embed-from.in embed-from/0001 && + git mailinfo embed-from/msg embed-from/patch \ + <embed-from/0001 >embed-from/out && + test_cmp "$TEST_DIRECTORY"/t5100/embed-from.expect embed-from/out +' + +test_expect_success 'mailinfo on message with quoted >From' ' + mkdir quoted-from && + git mailsplit -oquoted-from "$TEST_DIRECTORY"/t5100/quoted-from.in && + test_cmp "$TEST_DIRECTORY"/t5100/quoted-from.in quoted-from/0001 && + git mailinfo quoted-from/msg quoted-from/patch \ + <quoted-from/0001 >quoted-from/out && + test_cmp "$TEST_DIRECTORY"/t5100/quoted-from.expect quoted-from/msg +' + test_done diff --git a/t/t5100/embed-from.expect b/t/t5100/embed-from.expect new file mode 100644 index 0000000000..06a3a3859a --- /dev/null +++ b/t/t5100/embed-from.expect @@ -0,0 +1,5 @@ +Author: Commit Author +Email: commit@example.com +Subject: patch subject +Date: Sat, 13 Sep 2014 21:13:23 -0400 + diff --git a/t/t5100/embed-from.in b/t/t5100/embed-from.in new file mode 100644 index 0000000000..5f3f84e508 --- /dev/null +++ b/t/t5100/embed-from.in @@ -0,0 +1,13 @@ +From 1234567890123456789012345678901234567890 Mon Sep 17 00:00:00 2001 +From: Email Author <email@example.com> +Date: Sun, 25 May 2008 00:38:18 -0700 +Subject: [PATCH] email subject + +>From 1234567890123456789012345678901234567890 Mon Sep 17 00:00:00 2001 +From: Commit Author <commit@example.com> +Date: Sat, 13 Sep 2014 21:13:23 -0400 +Subject: patch subject + +patch body +--- +patch diff --git a/t/t5100/quoted-from.expect b/t/t5100/quoted-from.expect new file mode 100644 index 0000000000..8c9d48c852 --- /dev/null +++ b/t/t5100/quoted-from.expect @@ -0,0 +1,3 @@ +>From the depths of history, we are stuck with the +flaky mbox format. + diff --git a/t/t5100/quoted-from.in b/t/t5100/quoted-from.in new file mode 100644 index 0000000000..847e1c4d3e --- /dev/null +++ b/t/t5100/quoted-from.in @@ -0,0 +1,10 @@ +From 1234567890123456789012345678901234567890 Mon Sep 17 00:00:00 2001 +From: Author Name <somebody@example.com> +Date: Sun, 25 May 2008 00:38:18 -0700 +Subject: [PATCH] testing quoted >From + +>From the depths of history, we are stuck with the +flaky mbox format. + +--- +patch diff --git a/t/t5302-pack-index.sh b/t/t5302-pack-index.sh index 4bbb718751..61bc8da560 100755 --- a/t/t5302-pack-index.sh +++ b/t/t5302-pack-index.sh @@ -243,4 +243,23 @@ test_expect_success 'running index-pack in the object store' ' test -f .git/objects/pack/pack-${pack1}.idx ' +test_expect_success 'index-pack --strict warns upon missing tagger in tag' ' + sha=$(git rev-parse HEAD) && + cat >wrong-tag <<EOF && +object $sha +type commit +tag guten tag + +This is an invalid tag. +EOF + + tag=$(git hash-object -t tag -w --stdin <wrong-tag) && + pack1=$(echo $tag $sha | git pack-objects tag-test) && + echo remove tag object && + thirtyeight=${tag#??} && + rm -f .git/objects/${tag%$thirtyeight}/$thirtyeight && + git index-pack --strict tag-test-${pack1}.pack 2>err && + grep "^error:.* expected .tagger. line" err +' + test_done diff --git a/t/t5304-prune.sh b/t/t5304-prune.sh index 377d3d3899..01c6a3fc1d 100755 --- a/t/t5304-prune.sh +++ b/t/t5304-prune.sh @@ -104,6 +104,28 @@ test_expect_success 'prune: prune unreachable heads' ' ' +test_expect_success 'prune: do not prune detached HEAD with no reflog' ' + + git checkout --detach --quiet && + git commit --allow-empty -m "detached commit" && + # verify that there is no reflogs + # (should be removed and disabled by previous test) + test ! -e .git/logs && + git prune -n >prune_actual && + : >prune_expected && + test_cmp prune_actual prune_expected + +' + +test_expect_success 'prune: prune former HEAD after checking out branch' ' + + head_sha1=$(git rev-parse HEAD) && + git checkout --quiet master && + git prune -v >prune_actual && + grep "$head_sha1" prune_actual + +' + test_expect_success 'prune: do not prune heads listed as an argument' ' : > file2 && diff --git a/t/t5311-pack-bitmaps-shallow.sh b/t/t5311-pack-bitmaps-shallow.sh new file mode 100755 index 0000000000..872a95df33 --- /dev/null +++ b/t/t5311-pack-bitmaps-shallow.sh @@ -0,0 +1,39 @@ +#!/bin/sh + +test_description='check bitmap operation with shallow repositories' +. ./test-lib.sh + +# We want to create a situation where the shallow, grafted +# view of reachability does not match reality in a way that +# might cause us to send insufficient objects. +# +# We do this with a history that repeats a state, like: +# +# A -- B -- C +# file=1 file=2 file=1 +# +# and then create a shallow clone to the second commit, B. +# In a non-shallow clone, that would mean we already have +# the tree for A. But in a shallow one, we've grafted away +# A, and fetching A to B requires that the other side send +# us the tree for file=1. +test_expect_success 'setup shallow repo' ' + echo 1 >file && + git add file && + git commit -m orig && + echo 2 >file && + git commit -a -m update && + git clone --no-local --bare --depth=1 . shallow.git && + echo 1 >file && + git commit -a -m repeat +' + +test_expect_success 'turn on bitmaps in the parent' ' + git repack -adb +' + +test_expect_success 'shallow fetch from bitmapped repo' ' + (cd shallow.git && git fetch) +' + +test_done diff --git a/t/t5401-update-hooks.sh b/t/t5401-update-hooks.sh index 17bcb0b040..7f278d8ce9 100755 --- a/t/t5401-update-hooks.sh +++ b/t/t5401-update-hooks.sh @@ -135,4 +135,17 @@ test_expect_success 'send-pack stderr contains hook messages' ' test_cmp expect actual ' +test_expect_success 'pre-receive hook that forgets to read its input' ' + write_script victim.git/hooks/pre-receive <<-\EOF && + exit 0 + EOF + rm -f victim.git/hooks/update victim.git/hooks/post-update && + + for v in $(test_seq 100 999) + do + git branch branch_$v master || return + done && + git push ./victim.git "+refs/heads/*:refs/heads/*" +' + test_done diff --git a/t/t5408-send-pack-stdin.sh b/t/t5408-send-pack-stdin.sh new file mode 100755 index 0000000000..e8737df6f9 --- /dev/null +++ b/t/t5408-send-pack-stdin.sh @@ -0,0 +1,92 @@ +#!/bin/sh + +test_description='send-pack --stdin tests' +. ./test-lib.sh + +create_ref () { + tree=$(git write-tree) && + test_tick && + commit=$(echo "$1" | git commit-tree $tree) && + git update-ref "$1" $commit +} + +clear_remote () { + rm -rf remote.git && + git init --bare remote.git +} + +verify_push () { + git rev-parse "$1" >expect && + git --git-dir=remote.git rev-parse "${2:-$1}" >actual && + test_cmp expect actual +} + +test_expect_success 'setup refs' ' + cat >refs <<-\EOF && + refs/heads/A + refs/heads/C + refs/tags/D + refs/heads/B + refs/tags/E + EOF + for i in $(cat refs); do + create_ref $i || return 1 + done +' + +# sanity check our setup +test_expect_success 'refs on cmdline' ' + clear_remote && + git send-pack remote.git $(cat refs) && + for i in $(cat refs); do + verify_push $i || return 1 + done +' + +test_expect_success 'refs over stdin' ' + clear_remote && + git send-pack remote.git --stdin <refs && + for i in $(cat refs); do + verify_push $i || return 1 + done +' + +test_expect_success 'stdin lines are full refspecs' ' + clear_remote && + echo "A:other" >input && + git send-pack remote.git --stdin <input && + verify_push refs/heads/A refs/heads/other +' + +test_expect_success 'stdin mixed with cmdline' ' + clear_remote && + echo A >input && + git send-pack remote.git --stdin B <input && + verify_push A && + verify_push B +' + +test_expect_success 'cmdline refs written in order' ' + clear_remote && + test_must_fail git send-pack remote.git A:foo B:foo && + verify_push A foo +' + +test_expect_success '--stdin refs come after cmdline' ' + clear_remote && + echo A:foo >input && + test_must_fail git send-pack remote.git --stdin B:foo <input && + verify_push B foo +' + +test_expect_success 'refspecs and --mirror do not mix (cmdline)' ' + clear_remote && + test_must_fail git send-pack remote.git --mirror $(cat refs) +' + +test_expect_success 'refspecs and --mirror do not mix (stdin)' ' + clear_remote && + test_must_fail git send-pack remote.git --mirror --stdin <refs +' + +test_done diff --git a/t/t5534-push-signed.sh b/t/t5534-push-signed.sh new file mode 100755 index 0000000000..2786346f9a --- /dev/null +++ b/t/t5534-push-signed.sh @@ -0,0 +1,127 @@ +#!/bin/sh + +test_description='signed push' + +. ./test-lib.sh +. "$TEST_DIRECTORY"/lib-gpg.sh + +prepare_dst () { + rm -fr dst && + test_create_repo dst && + + git push dst master:noop master:ff master:noff +} + +test_expect_success setup ' + # master, ff and noff branches pointing at the same commit + test_tick && + git commit --allow-empty -m initial && + + git checkout -b noop && + git checkout -b ff && + git checkout -b noff && + + # noop stays the same, ff advances, noff rewrites + test_tick && + git commit --allow-empty --amend -m rewritten && + git checkout ff && + + test_tick && + git commit --allow-empty -m second +' + +test_expect_success 'unsigned push does not send push certificate' ' + prepare_dst && + mkdir -p dst/.git/hooks && + write_script dst/.git/hooks/post-receive <<-\EOF && + # discard the update list + cat >/dev/null + # record the push certificate + if test -n "${GIT_PUSH_CERT-}" + then + git cat-file blob $GIT_PUSH_CERT >../push-cert + fi + EOF + + git push dst noop ff +noff && + ! test -f dst/push-cert +' + +test_expect_success 'talking with a receiver without push certificate support' ' + prepare_dst && + mkdir -p dst/.git/hooks && + write_script dst/.git/hooks/post-receive <<-\EOF && + # discard the update list + cat >/dev/null + # record the push certificate + if test -n "${GIT_PUSH_CERT-}" + then + git cat-file blob $GIT_PUSH_CERT >../push-cert + fi + EOF + + git push dst noop ff +noff && + ! test -f dst/push-cert +' + +test_expect_success 'push --signed fails with a receiver without push certificate support' ' + prepare_dst && + mkdir -p dst/.git/hooks && + test_must_fail git push --signed dst noop ff +noff 2>err && + test_i18ngrep "the receiving end does not support" err +' + +test_expect_success GPG 'no certificate for a signed push with no update' ' + prepare_dst && + mkdir -p dst/.git/hooks && + write_script dst/.git/hooks/post-receive <<-\EOF && + if test -n "${GIT_PUSH_CERT-}" + then + git cat-file blob $GIT_PUSH_CERT >../push-cert + fi + EOF + git push dst noop && + ! test -f dst/push-cert +' + +test_expect_success GPG 'signed push sends push certificate' ' + prepare_dst && + mkdir -p dst/.git/hooks && + git -C dst config receive.certnonceseed sekrit && + write_script dst/.git/hooks/post-receive <<-\EOF && + # discard the update list + cat >/dev/null + # record the push certificate + if test -n "${GIT_PUSH_CERT-}" + then + git cat-file blob $GIT_PUSH_CERT >../push-cert + fi && + + cat >../push-cert-status <<E_O_F + SIGNER=${GIT_PUSH_CERT_SIGNER-nobody} + KEY=${GIT_PUSH_CERT_KEY-nokey} + STATUS=${GIT_PUSH_CERT_STATUS-nostatus} + NONCE_STATUS=${GIT_PUSH_CERT_NONCE_STATUS-nononcestatus} + NONCE=${GIT_PUSH_CERT_NONCE-nononce} + E_O_F + + EOF + + git push --signed dst noop ff +noff && + + ( + cat <<-\EOF && + SIGNER=C O Mitter <committer@example.com> + KEY=13B6F51ECDDE430D + STATUS=G + NONCE_STATUS=OK + EOF + sed -n -e "s/^nonce /NONCE=/p" -e "/^$/q" dst/push-cert + ) >expect && + + grep "$(git rev-parse noop ff) refs/heads/ff" dst/push-cert && + grep "$(git rev-parse noop noff) refs/heads/noff" dst/push-cert && + test_cmp expect dst/push-cert-status +' + +test_done diff --git a/t/t5541-http-push-smart.sh b/t/t5541-http-push-smart.sh index 73af16f481..d2c681ebfd 100755 --- a/t/t5541-http-push-smart.sh +++ b/t/t5541-http-push-smart.sh @@ -12,6 +12,7 @@ if test -n "$NO_CURL"; then fi ROOT_PATH="$PWD" +. "$TEST_DIRECTORY"/lib-gpg.sh . "$TEST_DIRECTORY"/lib-httpd.sh . "$TEST_DIRECTORY"/lib-terminal.sh start_httpd @@ -323,5 +324,60 @@ test_expect_success 'push into half-auth-complete requires password' ' test_cmp expect actual ' +run_with_limited_cmdline () { + (ulimit -s 128 && "$@") +} + +test_lazy_prereq CMDLINE_LIMIT 'run_with_limited_cmdline true' + +test_expect_success CMDLINE_LIMIT 'push 2000 tags over http' ' + sha1=$(git rev-parse HEAD) && + test_seq 2000 | + sort | + sed "s|.*|$sha1 refs/tags/really-long-tag-name-&|" \ + >.git/packed-refs && + run_with_limited_cmdline git push --mirror +' + +test_expect_success GPG 'push with post-receive to inspect certificate' ' + ( + cd "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo.git && + mkdir -p hooks && + write_script hooks/post-receive <<-\EOF && + # discard the update list + cat >/dev/null + # record the push certificate + if test -n "${GIT_PUSH_CERT-}" + then + git cat-file blob $GIT_PUSH_CERT >../push-cert + fi && + cat >../push-cert-status <<E_O_F + SIGNER=${GIT_PUSH_CERT_SIGNER-nobody} + KEY=${GIT_PUSH_CERT_KEY-nokey} + STATUS=${GIT_PUSH_CERT_STATUS-nostatus} + NONCE_STATUS=${GIT_PUSH_CERT_NONCE_STATUS-nononcestatus} + NONCE=${GIT_PUSH_CERT_NONCE-nononce} + E_O_F + EOF + + git config receive.certnonceseed sekrit && + git config receive.certnonceslop 30 + ) && + cd "$ROOT_PATH/test_repo_clone" && + test_commit cert-test && + git push --signed "$HTTPD_URL/smart/test_repo.git" && + ( + cd "$HTTPD_DOCUMENT_ROOT_PATH" && + cat <<-\EOF && + SIGNER=C O Mitter <committer@example.com> + KEY=13B6F51ECDDE430D + STATUS=G + NONCE_STATUS=OK + EOF + sed -n -e "s/^nonce /NONCE=/p" -e "/^$/q" push-cert + ) >expect && + test_cmp expect "$HTTPD_DOCUMENT_ROOT_PATH/push-cert-status" +' + stop_httpd test_done diff --git a/t/t5601-clone.sh b/t/t5601-clone.sh index 5e67035be8..e4f10c0f68 100755 --- a/t/t5601-clone.sh +++ b/t/t5601-clone.sh @@ -318,7 +318,7 @@ test_expect_success 'clone myhost:src uses ssh' ' expect_ssh myhost src ' -test_expect_success NOT_MINGW,NOT_CYGWIN 'clone local path foo:bar' ' +test_expect_success !MINGW,!CYGWIN 'clone local path foo:bar' ' cp -R src "foo:bar" && git clone "foo:bar" foobar && expect_ssh none @@ -339,7 +339,7 @@ test_clone_url () { expect_ssh "$2" "$3" } -test_expect_success NOT_MINGW 'clone c:temp is ssl' ' +test_expect_success !MINGW 'clone c:temp is ssl' ' test_clone_url c:temp c temp ' diff --git a/t/t5704-bundle.sh b/t/t5704-bundle.sh index a45c31692e..348d9b3bc7 100755 --- a/t/t5704-bundle.sh +++ b/t/t5704-bundle.sh @@ -14,7 +14,10 @@ test_expect_success 'setup' ' git tag -d third ' -test_expect_success 'tags can be excluded by rev-list options' ' +test_expect_success 'annotated tags can be excluded by rev-list options' ' + git bundle create bundle --all --since=7.Apr.2005.15:14:00.-0700 && + git ls-remote bundle > output && + grep tag output && git bundle create bundle --all --since=7.Apr.2005.15:16:00.-0700 && git ls-remote bundle > output && ! grep tag output diff --git a/t/t6031-merge-recursive.sh b/t/t6031-merge-recursive.sh index a953f1b55c..6464a16a19 100755 --- a/t/t6031-merge-recursive.sh +++ b/t/t6031-merge-recursive.sh @@ -13,6 +13,7 @@ test_expect_success 'mode change in one branch: keep changed version' ' git commit -m a && git checkout -b b1 master && test_chmod +x file1 && + git add file1 && git commit -m b1 && git checkout a1 && git merge-recursive master -- a1 b1 && diff --git a/t/t6038-merge-text-auto.sh b/t/t6038-merge-text-auto.sh index d9c2d386dd..85c10b0940 100755 --- a/t/t6038-merge-text-auto.sh +++ b/t/t6038-merge-text-auto.sh @@ -72,6 +72,10 @@ test_expect_success 'Merge after setting text=auto' ' same line EOF + if test_have_prereq NATIVE_CRLF; then + append_cr <expected >expected.temp && + mv expected.temp expected + fi && git config merge.renormalize true && git rm -fr . && rm -f .gitattributes && @@ -86,6 +90,10 @@ test_expect_success 'Merge addition of text=auto' ' same line EOF + if test_have_prereq NATIVE_CRLF; then + append_cr <expected >expected.temp && + mv expected.temp expected + fi && git config merge.renormalize true && git rm -fr . && rm -f .gitattributes && @@ -95,16 +103,19 @@ test_expect_success 'Merge addition of text=auto' ' ' test_expect_success 'Detect CRLF/LF conflict after setting text=auto' ' - q_to_cr <<-\EOF >expected && - <<<<<<< - first line - same line - ======= - first lineQ - same lineQ - >>>>>>> - EOF - + echo "<<<<<<<" >expected && + if test_have_prereq NATIVE_CRLF; then + echo first line | append_cr >>expected && + echo same line | append_cr >>expected && + echo ======= | append_cr >>expected + else + echo first line >>expected && + echo same line >>expected && + echo ======= >>expected + fi && + echo first line | append_cr >>expected && + echo same line | append_cr >>expected && + echo ">>>>>>>" >>expected && git config merge.renormalize false && rm -f .gitattributes && git reset --hard a && @@ -114,16 +125,19 @@ test_expect_success 'Detect CRLF/LF conflict after setting text=auto' ' ' test_expect_success 'Detect LF/CRLF conflict from addition of text=auto' ' - q_to_cr <<-\EOF >expected && - <<<<<<< - first lineQ - same lineQ - ======= - first line - same line - >>>>>>> - EOF - + echo "<<<<<<<" >expected && + echo first line | append_cr >>expected && + echo same line | append_cr >>expected && + if test_have_prereq NATIVE_CRLF; then + echo ======= | append_cr >>expected && + echo first line | append_cr >>expected && + echo same line | append_cr >>expected + else + echo ======= >>expected && + echo first line >>expected && + echo same line >>expected + fi && + echo ">>>>>>>" >>expected && git config merge.renormalize false && rm -f .gitattributes && git reset --hard b && diff --git a/t/t7201-co.sh b/t/t7201-co.sh index 0c9ec0ad44..eae9e5a937 100755 --- a/t/t7201-co.sh +++ b/t/t7201-co.sh @@ -223,6 +223,23 @@ test_expect_success 'checkout --merge --conflict=diff3 <branch>' ' test_cmp two expect ' +test_expect_success 'switch to another branch while carrying a deletion' ' + + git checkout -f master && git reset --hard && git clean -f && + git rm two && + + test_must_fail git checkout simple 2>errs && + test_i18ngrep overwritten errs && + + git checkout --merge simple 2>errs && + test_i18ngrep ! overwritten errs && + git ls-files -u && + test_must_fail git cat-file -t :0:two && + test "$(git cat-file -t :1:two)" = blob && + test "$(git cat-file -t :2:two)" = blob && + test_must_fail git cat-file -t :3:two +' + test_expect_success 'checkout to detach HEAD (with advice declined)' ' git config advice.detachedHead false && diff --git a/t/t7515-status-symlinks.sh b/t/t7515-status-symlinks.sh new file mode 100755 index 0000000000..9f989be01b --- /dev/null +++ b/t/t7515-status-symlinks.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +test_description='git status and symlinks' + +. ./test-lib.sh + +test_expect_success 'setup' ' + echo .gitignore >.gitignore && + echo actual >>.gitignore && + echo expect >>.gitignore && + mkdir dir && + echo x >dir/file1 && + echo y >dir/file2 && + git add dir && + git commit -m initial && + git tag initial +' + +test_expect_success SYMLINKS 'symlink to a directory' ' + test_when_finished "rm symlink" && + ln -s dir symlink && + echo "?? symlink" >expect && + git status --porcelain >actual && + test_cmp expect actual +' + +test_expect_success SYMLINKS 'symlink replacing a directory' ' + test_when_finished "rm -rf copy && git reset --hard initial" && + mkdir copy && + cp dir/file1 copy/file1 && + echo "changed in copy" >copy/file2 && + git add copy && + git commit -m second && + rm -rf copy && + ln -s dir copy && + echo " D copy/file1" >expect && + echo " D copy/file2" >>expect && + echo "?? copy" >>expect && + git status --porcelain >actual && + test_cmp expect actual +' + +test_done diff --git a/t/t8005-blame-i18n.sh b/t/t8005-blame-i18n.sh index a6e73d0635..847d098c09 100755 --- a/t/t8005-blame-i18n.sh +++ b/t/t8005-blame-i18n.sh @@ -33,7 +33,7 @@ author $SJIS_NAME summary $SJIS_MSG EOF -test_expect_success NOT_MINGW \ +test_expect_success !MINGW \ 'blame respects i18n.commitencoding' ' git blame --incremental file | \ egrep "^(author|summary) " > actual && @@ -49,7 +49,7 @@ author $EUC_JAPAN_NAME summary $EUC_JAPAN_MSG EOF -test_expect_success NOT_MINGW \ +test_expect_success !MINGW \ 'blame respects i18n.logoutputencoding' ' git config i18n.logoutputencoding eucJP && git blame --incremental file | \ @@ -66,7 +66,7 @@ author $UTF8_NAME summary $UTF8_MSG EOF -test_expect_success NOT_MINGW \ +test_expect_success !MINGW \ 'blame respects --encoding=UTF-8' ' git blame --incremental --encoding=UTF-8 file | \ egrep "^(author|summary) " > actual && @@ -82,7 +82,7 @@ author $UTF8_NAME summary $UTF8_MSG EOF -test_expect_success NOT_MINGW \ +test_expect_success !MINGW \ 'blame respects --encoding=none' ' git blame --incremental --encoding=none file | \ egrep "^(author|summary) " > actual && diff --git a/t/t9119-git-svn-info.sh b/t/t9119-git-svn-info.sh index ff19695e77..f16f3234a1 100755 --- a/t/t9119-git-svn-info.sh +++ b/t/t9119-git-svn-info.sh @@ -74,6 +74,36 @@ test_expect_success 'info .' " test_cmp_info expected.info-dot actual.info-dot " +test_expect_success 'info $(pwd)' ' + (cd svnwc; svn info "$(pwd)") >expected.info-pwd && + (cd gitwc; git svn info "$(pwd)") >actual.info-pwd && + grep -v ^Path: <expected.info-pwd >expected.info-np && + grep -v ^Path: <actual.info-pwd >actual.info-np && + test_cmp_info expected.info-np actual.info-np && + test "$(sed -ne \"/^Path:/ s!/svnwc!!\" <expected.info-pwd)" = \ + "$(sed -ne \"/^Path:/ s!/gitwc!!\" <actual.info-pwd)" + ' + +test_expect_success 'info $(pwd)/../___wc' ' + (cd svnwc; svn info "$(pwd)/../svnwc") >expected.info-pwd && + (cd gitwc; git svn info "$(pwd)/../gitwc") >actual.info-pwd && + grep -v ^Path: <expected.info-pwd >expected.info-np && + grep -v ^Path: <actual.info-pwd >actual.info-np && + test_cmp_info expected.info-np actual.info-np && + test "$(sed -ne \"/^Path:/ s!/svnwc!!\" <expected.info-pwd)" = \ + "$(sed -ne \"/^Path:/ s!/gitwc!!\" <actual.info-pwd)" + ' + +test_expect_success 'info $(pwd)/../___wc//file' ' + (cd svnwc; svn info "$(pwd)/../svnwc//file") >expected.info-pwd && + (cd gitwc; git svn info "$(pwd)/../gitwc//file") >actual.info-pwd && + grep -v ^Path: <expected.info-pwd >expected.info-np && + grep -v ^Path: <actual.info-pwd >actual.info-np && + test_cmp_info expected.info-np actual.info-np && + test "$(sed -ne \"/^Path:/ s!/svnwc!!\" <expected.info-pwd)" = \ + "$(sed -ne \"/^Path:/ s!/gitwc!!\" <actual.info-pwd)" + ' + test_expect_success 'info --url .' ' test "$(cd gitwc; git svn info --url .)" = "$quoted_svnrepo" ' diff --git a/t/t9300-fast-import.sh b/t/t9300-fast-import.sh index 5fc9ef262a..8df0445a84 100755 --- a/t/t9300-fast-import.sh +++ b/t/t9300-fast-import.sh @@ -2336,7 +2336,7 @@ test_expect_success 'R: cat-blob-fd must be a nonnegative integer' ' test_must_fail git fast-import --cat-blob-fd=-1 </dev/null ' -test_expect_success NOT_MINGW 'R: print old blob' ' +test_expect_success !MINGW 'R: print old blob' ' blob=$(echo "yes it can" | git hash-object -w --stdin) && cat >expect <<-EOF && ${blob} blob 11 @@ -2348,7 +2348,7 @@ test_expect_success NOT_MINGW 'R: print old blob' ' test_cmp expect actual ' -test_expect_success NOT_MINGW 'R: in-stream cat-blob-fd not respected' ' +test_expect_success !MINGW 'R: in-stream cat-blob-fd not respected' ' echo hello >greeting && blob=$(git hash-object -w greeting) && cat >expect <<-EOF && @@ -2369,7 +2369,7 @@ test_expect_success NOT_MINGW 'R: in-stream cat-blob-fd not respected' ' test_cmp expect actual.1 ' -test_expect_success NOT_MINGW 'R: print new blob' ' +test_expect_success !MINGW 'R: print new blob' ' blob=$(echo "yep yep yep" | git hash-object --stdin) && cat >expect <<-EOF && ${blob} blob 12 @@ -2387,7 +2387,7 @@ test_expect_success NOT_MINGW 'R: print new blob' ' test_cmp expect actual ' -test_expect_success NOT_MINGW 'R: print new blob by sha1' ' +test_expect_success !MINGW 'R: print new blob by sha1' ' blob=$(echo "a new blob named by sha1" | git hash-object --stdin) && cat >expect <<-EOF && ${blob} blob 25 @@ -2687,7 +2687,7 @@ test_expect_success 'R: verify created pack' ' test_expect_success \ 'R: verify written objects' \ 'git --git-dir=R/.git cat-file blob big-file:big1 >actual && - test_cmp expect actual && + test_cmp_bin expect actual && a=$(git --git-dir=R/.git rev-parse big-file:big1) && b=$(git --git-dir=R/.git rev-parse big-file:big2) && test $a = $b' @@ -2866,7 +2866,7 @@ test_expect_success 'S: notemodify with garbage after sha1 dataref must fail' ' # # notemodify, mark in commit-ish # -test_expect_success 'S: notemodify with garbarge after mark commit-ish must fail' ' +test_expect_success 'S: notemodify with garbage after mark commit-ish must fail' ' test_must_fail git fast-import --import-marks=marks <<-EOF 2>err && commit refs/heads/Snotes committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE @@ -3017,4 +3017,108 @@ test_expect_success 'T: empty reset doesnt delete branch' ' git rev-parse --verify refs/heads/not-to-delete ' +### +### series U (filedelete) +### + +cat >input <<INPUT_END +commit refs/heads/U +committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE +data <<COMMIT +test setup +COMMIT +M 100644 inline hello.c +data <<BLOB +blob 1 +BLOB +M 100644 inline good/night.txt +data <<BLOB +sleep well +BLOB +M 100644 inline good/bye.txt +data <<BLOB +au revoir +BLOB + +INPUT_END + +test_expect_success 'U: initialize for U tests' ' + git fast-import <input +' + +cat >input <<INPUT_END +commit refs/heads/U +committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE +data <<COMMIT +delete good/night.txt +COMMIT +from refs/heads/U^0 +D good/night.txt + +INPUT_END + +test_expect_success 'U: filedelete file succeeds' ' + git fast-import <input +' + +cat >expect <<EOF +:100644 000000 2907ebb4bf85d91bf0716bb3bd8a68ef48d6da76 0000000000000000000000000000000000000000 D good/night.txt +EOF + +git diff-tree -M -r U^1 U >actual + +test_expect_success 'U: validate file delete result' ' + compare_diff_raw expect actual +' + +cat >input <<INPUT_END +commit refs/heads/U +committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE +data <<COMMIT +delete good dir +COMMIT +from refs/heads/U^0 +D good + +INPUT_END + +test_expect_success 'U: filedelete directory succeeds' ' + git fast-import <input +' + +cat >expect <<EOF +:100644 000000 69cb75792f55123d8389c156b0b41c2ff00ed507 0000000000000000000000000000000000000000 D good/bye.txt +EOF + +git diff-tree -M -r U^1 U >actual + +test_expect_success 'U: validate directory delete result' ' + compare_diff_raw expect actual +' + +cat >input <<INPUT_END +commit refs/heads/U +committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE +data <<COMMIT +must succeed +COMMIT +from refs/heads/U^0 +D "" + +INPUT_END + +test_expect_success 'U: filedelete root succeeds' ' + git fast-import <input +' + +cat >expect <<EOF +:100644 000000 c18147dc648481eeb65dc5e66628429a64843327 0000000000000000000000000000000000000000 D hello.c +EOF + +git diff-tree -M -r U^1 U >actual + +test_expect_success 'U: validate root delete result' ' + compare_diff_raw expect actual +' + test_done diff --git a/t/t9351-fast-export-anonymize.sh b/t/t9351-fast-export-anonymize.sh new file mode 100755 index 0000000000..897dc50907 --- /dev/null +++ b/t/t9351-fast-export-anonymize.sh @@ -0,0 +1,112 @@ +#!/bin/sh + +test_description='basic tests for fast-export --anonymize' +. ./test-lib.sh + +test_expect_success 'setup simple repo' ' + test_commit base && + test_commit foo && + git checkout -b other HEAD^ && + mkdir subdir && + test_commit subdir/bar && + test_commit subdir/xyzzy && + git tag -m "annotated tag" mytag +' + +test_expect_success 'export anonymized stream' ' + git fast-export --anonymize --all >stream +' + +# this also covers commit messages +test_expect_success 'stream omits path names' ' + ! grep base stream && + ! grep foo stream && + ! grep subdir stream && + ! grep bar stream && + ! grep xyzzy stream +' + +test_expect_success 'stream allows master as refname' ' + grep master stream +' + +test_expect_success 'stream omits other refnames' ' + ! grep other stream && + ! grep mytag stream +' + +test_expect_success 'stream omits identities' ' + ! grep "$GIT_COMMITTER_NAME" stream && + ! grep "$GIT_COMMITTER_EMAIL" stream && + ! grep "$GIT_AUTHOR_NAME" stream && + ! grep "$GIT_AUTHOR_EMAIL" stream +' + +test_expect_success 'stream omits tag message' ' + ! grep "annotated tag" stream +' + +# NOTE: we chdir to the new, anonymized repository +# after this. All further tests should assume this. +test_expect_success 'import stream to new repository' ' + git init new && + cd new && + git fast-import <../stream +' + +test_expect_success 'result has two branches' ' + git for-each-ref --format="%(refname)" refs/heads >branches && + test_line_count = 2 branches && + other_branch=$(grep -v refs/heads/master branches) +' + +test_expect_success 'repo has original shape and timestamps' ' + shape () { + git log --format="%m %ct" --left-right --boundary "$@" + } && + (cd .. && shape master...other) >expect && + shape master...$other_branch >actual && + test_cmp expect actual +' + +test_expect_success 'root tree has original shape' ' + # the output entries are not necessarily in the same + # order, but we know at least that we will have one tree + # and one blob, so just check the sorted order + cat >expect <<-\EOF && + blob + tree + EOF + git ls-tree $other_branch >root && + cut -d" " -f2 <root | sort >actual && + test_cmp expect actual +' + +test_expect_success 'paths in subdir ended up in one tree' ' + cat >expect <<-\EOF && + blob + blob + EOF + tree=$(grep tree root | cut -f2) && + git ls-tree $other_branch:$tree >tree && + cut -d" " -f2 <tree >actual && + test_cmp expect actual +' + +test_expect_success 'tag points to branch tip' ' + git rev-parse $other_branch >expect && + git for-each-ref --format="%(*objectname)" | grep . >actual && + test_cmp expect actual +' + +test_expect_success 'idents are shared' ' + git log --all --format="%an <%ae>" >authors && + sort -u authors >unique && + test_line_count = 1 unique && + git log --all --format="%cn <%ce>" >committers && + sort -u committers >unique && + test_line_count = 1 unique && + ! test_cmp authors committers +' + +test_done diff --git a/t/t9809-git-p4-client-view.sh b/t/t9809-git-p4-client-view.sh index 23a827fa77..897b3c3034 100755 --- a/t/t9809-git-p4-client-view.sh +++ b/t/t9809-git-p4-client-view.sh @@ -365,7 +365,7 @@ test_expect_success 'wildcard files submit back to p4, client-spec case' ' ( cd "$git" && echo git-wild-hash >dir1/git-wild#hash && - if test_have_prereq NOT_MINGW NOT_CYGWIN + if test_have_prereq !MINGW,!CYGWIN then echo git-wild-star >dir1/git-wild\*star fi && @@ -379,7 +379,7 @@ test_expect_success 'wildcard files submit back to p4, client-spec case' ' ( cd "$cli" && test_path_is_file dir1/git-wild#hash && - if test_have_prereq NOT_MINGW NOT_CYGWIN + if test_have_prereq !MINGW,!CYGWIN then test_path_is_file dir1/git-wild\*star fi && diff --git a/t/t9812-git-p4-wildcards.sh b/t/t9812-git-p4-wildcards.sh index c7472cbf54..0206771fbb 100755 --- a/t/t9812-git-p4-wildcards.sh +++ b/t/t9812-git-p4-wildcards.sh @@ -14,7 +14,7 @@ test_expect_success 'add p4 files with wildcards in the names' ' printf "file2\nhas\nsome\nrandom\ntext\n" >file2 && p4 add file2 && echo file-wild-hash >file-wild#hash && - if test_have_prereq NOT_MINGW NOT_CYGWIN + if test_have_prereq !MINGW,!CYGWIN then echo file-wild-star >file-wild\*star fi && @@ -31,7 +31,7 @@ test_expect_success 'wildcard files git p4 clone' ' ( cd "$git" && test -f file-wild#hash && - if test_have_prereq NOT_MINGW NOT_CYGWIN + if test_have_prereq !MINGW,!CYGWIN then test -f file-wild\*star fi && @@ -46,7 +46,7 @@ test_expect_success 'wildcard files submit back to p4, add' ' ( cd "$git" && echo git-wild-hash >git-wild#hash && - if test_have_prereq NOT_MINGW NOT_CYGWIN + if test_have_prereq !MINGW,!CYGWIN then echo git-wild-star >git-wild\*star fi && @@ -60,7 +60,7 @@ test_expect_success 'wildcard files submit back to p4, add' ' ( cd "$cli" && test_path_is_file git-wild#hash && - if test_have_prereq NOT_MINGW NOT_CYGWIN + if test_have_prereq !MINGW,!CYGWIN then test_path_is_file git-wild\*star fi && @@ -75,7 +75,7 @@ test_expect_success 'wildcard files submit back to p4, modify' ' ( cd "$git" && echo new-line >>git-wild#hash && - if test_have_prereq NOT_MINGW NOT_CYGWIN + if test_have_prereq !MINGW,!CYGWIN then echo new-line >>git-wild\*star fi && @@ -89,7 +89,7 @@ test_expect_success 'wildcard files submit back to p4, modify' ' ( cd "$cli" && test_line_count = 2 git-wild#hash && - if test_have_prereq NOT_MINGW NOT_CYGWIN + if test_have_prereq !MINGW,!CYGWIN then test_line_count = 2 git-wild\*star fi && @@ -152,7 +152,7 @@ test_expect_success 'wildcard files submit back to p4, delete' ' ( cd "$cli" && test_path_is_missing git-wild#hash && - if test_have_prereq NOT_MINGW NOT_CYGWIN + if test_have_prereq !MINGW,!CYGWIN then test_path_is_missing git-wild\*star fi && diff --git a/t/t9815-git-p4-submit-fail.sh b/t/t9815-git-p4-submit-fail.sh index 1243d96092..4cff6a760f 100755 --- a/t/t9815-git-p4-submit-fail.sh +++ b/t/t9815-git-p4-submit-fail.sh @@ -417,7 +417,7 @@ test_expect_success 'cleanup chmod after submit cancel' ' ! p4 fstat -T action text && test_path_is_file text+x && ! p4 fstat -T action text+x && - if test_have_prereq NOT_CYGWIN + if test_have_prereq !CYGWIN then stat --format=%A text | egrep ^-r-- && stat --format=%A text+x | egrep ^-r-x diff --git a/t/test-lib.sh b/t/test-lib.sh index b1bc65bfb5..0f4a67bfc6 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -813,7 +813,8 @@ rm -fr "$TRASH_DIRECTORY" || { } HOME="$TRASH_DIRECTORY" -export HOME +GNUPGHOME="$HOME/gnupg-home-not-used" +export HOME GNUPGHOME if test -z "$TEST_NO_CREATE_REPO" then @@ -870,7 +871,7 @@ case $(uname -s) in # backslashes in pathspec are converted to '/' # exec does not inherit the PID test_set_prereq MINGW - test_set_prereq NOT_CYGWIN + test_set_prereq NATIVE_CRLF test_set_prereq SED_STRIPS_CR test_set_prereq GREP_STRIPS_CR GIT_TEST_CMP=mingw_test_cmp @@ -878,7 +879,6 @@ case $(uname -s) in *CYGWIN*) test_set_prereq POSIXPERM test_set_prereq EXECKEEPSPID - test_set_prereq NOT_MINGW test_set_prereq CYGWIN test_set_prereq SED_STRIPS_CR test_set_prereq GREP_STRIPS_CR @@ -887,8 +887,6 @@ case $(uname -s) in test_set_prereq POSIXPERM test_set_prereq BSLASHPSPEC test_set_prereq EXECKEEPSPID - test_set_prereq NOT_MINGW - test_set_prereq NOT_CYGWIN ;; esac @@ -4,9 +4,6 @@ #include "tree.h" #include "blob.h" -#define PGP_SIGNATURE "-----BEGIN PGP SIGNATURE-----" -#define PGP_MESSAGE "-----BEGIN PGP MESSAGE-----" - const char *tag_type = "tag"; struct object *deref_tag(struct object *o, const char *warn, int warnlen) @@ -143,20 +140,3 @@ int parse_tag(struct tag *item) free(data); return ret; } - -/* - * Look at a signed tag object, and return the offset where - * the embedded detached signature begins, or the end of the - * data when there is no such signature. - */ -size_t parse_signature(const char *buf, unsigned long size) -{ - char *eol; - size_t len = 0; - while (len < size && !starts_with(buf + len, PGP_SIGNATURE) && - !starts_with(buf + len, PGP_MESSAGE)) { - eol = memchr(buf + len, '\n', size - len); - len += eol ? eol - (buf + len) + 1 : size - len; - } - return len; -} @@ -17,6 +17,5 @@ extern int parse_tag_buffer(struct tag *item, const void *data, unsigned long si extern int parse_tag(struct tag *item); extern struct object *deref_tag(struct object *, const char *, int); extern struct object *deref_tag_noverify(struct object *); -extern size_t parse_signature(const char *buf, unsigned long size); #endif /* TAG_H */ diff --git a/templates/hooks--pre-push.sample b/templates/hooks--pre-push.sample index 1f3bcebfd7..69e3c67b00 100755 --- a/templates/hooks--pre-push.sample +++ b/templates/hooks--pre-push.sample @@ -45,7 +45,7 @@ do commit=`git rev-list -n 1 --grep '^WIP' "$range"` if [ -n "$commit" ] then - echo "Found WIP commit in $local_ref, not pushing" + echo >&2 "Found WIP commit in $local_ref, not pushing" exit 1 fi fi diff --git a/test-config.c b/test-config.c new file mode 100644 index 0000000000..6a77552210 --- /dev/null +++ b/test-config.c @@ -0,0 +1,152 @@ +#include "cache.h" +#include "string-list.h" + +/* + * This program exposes the C API of the configuration mechanism + * as a set of simple commands in order to facilitate testing. + * + * Reads stdin and prints result of command to stdout: + * + * get_value -> prints the value with highest priority for the entered key + * + * get_value_multi -> prints all values for the entered key in increasing order + * of priority + * + * get_int -> print integer value for the entered key or die + * + * get_bool -> print bool value for the entered key or die + * + * get_string -> print string value for the entered key or die + * + * configset_get_value -> returns value with the highest priority for the entered key + * from a config_set constructed from files entered as arguments. + * + * configset_get_value_multi -> returns value_list for the entered key sorted in + * ascending order of priority from a config_set + * constructed from files entered as arguments. + * + * Examples: + * + * To print the value with highest priority for key "foo.bAr Baz.rock": + * test-config get_value "foo.bAr Baz.rock" + * + */ + + +int main(int argc, char **argv) +{ + int i, val; + const char *v; + const struct string_list *strptr; + struct config_set cs; + git_configset_init(&cs); + + if (argc < 2) { + fprintf(stderr, "Please, provide a command name on the command-line\n"); + goto exit1; + } else if (argc == 3 && !strcmp(argv[1], "get_value")) { + if (!git_config_get_value(argv[2], &v)) { + if (!v) + printf("(NULL)\n"); + else + printf("%s\n", v); + goto exit0; + } else { + printf("Value not found for \"%s\"\n", argv[2]); + goto exit1; + } + } else if (argc == 3 && !strcmp(argv[1], "get_value_multi")) { + strptr = git_config_get_value_multi(argv[2]); + if (strptr) { + for (i = 0; i < strptr->nr; i++) { + v = strptr->items[i].string; + if (!v) + printf("(NULL)\n"); + else + printf("%s\n", v); + } + goto exit0; + } else { + printf("Value not found for \"%s\"\n", argv[2]); + goto exit1; + } + } else if (argc == 3 && !strcmp(argv[1], "get_int")) { + if (!git_config_get_int(argv[2], &val)) { + printf("%d\n", val); + goto exit0; + } else { + printf("Value not found for \"%s\"\n", argv[2]); + goto exit1; + } + } else if (argc == 3 && !strcmp(argv[1], "get_bool")) { + if (!git_config_get_bool(argv[2], &val)) { + printf("%d\n", val); + goto exit0; + } else { + printf("Value not found for \"%s\"\n", argv[2]); + goto exit1; + } + } else if (argc == 3 && !strcmp(argv[1], "get_string")) { + if (!git_config_get_string_const(argv[2], &v)) { + printf("%s\n", v); + goto exit0; + } else { + printf("Value not found for \"%s\"\n", argv[2]); + goto exit1; + } + } else if (!strcmp(argv[1], "configset_get_value")) { + for (i = 3; i < argc; i++) { + int err; + if ((err = git_configset_add_file(&cs, argv[i]))) { + fprintf(stderr, "Error (%d) reading configuration file %s.\n", err, argv[i]); + goto exit2; + } + } + if (!git_configset_get_value(&cs, argv[2], &v)) { + if (!v) + printf("(NULL)\n"); + else + printf("%s\n", v); + goto exit0; + } else { + printf("Value not found for \"%s\"\n", argv[2]); + goto exit1; + } + } else if (!strcmp(argv[1], "configset_get_value_multi")) { + for (i = 3; i < argc; i++) { + int err; + if ((err = git_configset_add_file(&cs, argv[i]))) { + fprintf(stderr, "Error (%d) reading configuration file %s.\n", err, argv[i]); + goto exit2; + } + } + strptr = git_configset_get_value_multi(&cs, argv[2]); + if (strptr) { + for (i = 0; i < strptr->nr; i++) { + v = strptr->items[i].string; + if (!v) + printf("(NULL)\n"); + else + printf("%s\n", v); + } + goto exit0; + } else { + printf("Value not found for \"%s\"\n", argv[2]); + goto exit1; + } + } + + die("%s: Please check the syntax and the function name", argv[0]); + +exit0: + git_configset_clear(&cs); + return 0; + +exit1: + git_configset_clear(&cs); + return 1; + +exit2: + git_configset_clear(&cs); + return 2; +} diff --git a/test-date.c b/test-date.c index 10afaabbfa..94a6997a8f 100644 --- a/test-date.c +++ b/test-date.c @@ -19,19 +19,21 @@ static void show_dates(char **argv, struct timeval *now) static void parse_dates(char **argv, struct timeval *now) { + struct strbuf result = STRBUF_INIT; + for (; *argv; argv++) { - char result[100]; unsigned long t; int tz; - result[0] = 0; - parse_date(*argv, result, sizeof(result)); - if (sscanf(result, "%lu %d", &t, &tz) == 2) + strbuf_reset(&result); + parse_date(*argv, &result); + if (sscanf(result.buf, "%lu %d", &t, &tz) == 2) printf("%s -> %s\n", *argv, show_date(t, tz, DATE_ISO8601)); else printf("%s -> bad\n", *argv); } + strbuf_release(&result); } static void parse_approxidate(char **argv, struct timeval *now) diff --git a/test-dump-cache-tree.c b/test-dump-cache-tree.c index 330ba4f4dd..54c0872fcb 100644 --- a/test-dump-cache-tree.c +++ b/test-dump-cache-tree.c @@ -26,16 +26,16 @@ static int dump_cache_tree(struct cache_tree *it, return 0; if (it->entry_count < 0) { + /* invalid */ dump_one(it, pfx, ""); dump_one(ref, pfx, "#(ref) "); - if (it->subtree_nr != ref->subtree_nr) - errs = 1; } else { dump_one(it, pfx, ""); if (hashcmp(it->sha1, ref->sha1) || ref->entry_count != it->entry_count || ref->subtree_nr != it->subtree_nr) { + /* claims to be valid but is lying */ dump_one(ref, pfx, "#(ref) "); errs = 1; } diff --git a/test-run-command.c b/test-run-command.c index 37918e15f5..89c7de2c60 100644 --- a/test-run-command.c +++ b/test-run-command.c @@ -15,9 +15,7 @@ int main(int argc, char **argv) { - struct child_process proc; - - memset(&proc, 0, sizeof(proc)); + struct child_process proc = CHILD_PROCESS_INIT; if (argc < 3) return 1; diff --git a/test-subprocess.c b/test-subprocess.c index 93525eb7be..56881a0324 100644 --- a/test-subprocess.c +++ b/test-subprocess.c @@ -3,7 +3,7 @@ int main(int argc, char **argv) { - struct child_process cp; + struct child_process cp = CHILD_PROCESS_INIT; int nogit = 0; setup_git_directory_gently(&nogit); @@ -13,7 +13,6 @@ int main(int argc, char **argv) setup_work_tree(); argv++; } - memset(&cp, 0, sizeof(cp)); cp.git_cmd = 1; cp.argv = (const char **)argv + 1; return run_command(&cp); @@ -216,7 +216,7 @@ void trace_argv_printf(const char **argv, const char *format, ...) va_end(ap); } -void trace_strbuf(const char *key, const struct strbuf *data) +void trace_strbuf(struct trace_key *key, const struct strbuf *data) { trace_strbuf_fl(NULL, 0, key, data); } @@ -298,13 +298,12 @@ void trace_repo_setup(const char *prefix) { static struct trace_key key = TRACE_KEY_INIT(SETUP); const char *git_work_tree; - char cwd[PATH_MAX]; + char *cwd; if (!trace_want(&key)) return; - if (!getcwd(cwd, PATH_MAX)) - die("Unable to get current working directory"); + cwd = xgetcwd(); if (!(git_work_tree = get_git_work_tree())) git_work_tree = "(null)"; @@ -316,6 +315,8 @@ void trace_repo_setup(const char *prefix) trace_printf_key(&key, "setup: worktree: %s\n", quote_crnl(git_work_tree)); trace_printf_key(&key, "setup: cwd: %s\n", quote_crnl(cwd)); trace_printf_key(&key, "setup: prefix: %s\n", quote_crnl(prefix)); + + free(cwd); } int trace_want(struct trace_key *key) diff --git a/transport-helper.c b/transport-helper.c index 3d8fe7d801..2b24d51a24 100644 --- a/transport-helper.c +++ b/transport-helper.c @@ -118,7 +118,8 @@ static struct child_process *get_helper(struct transport *transport) if (data->helper) return data->helper; - helper = xcalloc(1, sizeof(*helper)); + helper = xmalloc(sizeof(*helper)); + child_process_init(helper); helper->in = -1; helper->out = -1; helper->err = 0; @@ -259,7 +260,8 @@ static const char *unsupported_options[] = { static const char *boolean_options[] = { TRANS_OPT_THIN, TRANS_OPT_KEEP, - TRANS_OPT_FOLLOWTAGS + TRANS_OPT_FOLLOWTAGS, + TRANS_OPT_PUSH_CERT }; static int set_helper_option(struct transport *transport, @@ -395,7 +397,7 @@ static int get_importer(struct transport *transport, struct child_process *fasti struct child_process *helper = get_helper(transport); struct helper_data *data = transport->data; int cat_blob_fd, code; - memset(fastimport, 0, sizeof(*fastimport)); + child_process_init(fastimport); fastimport->in = helper->out; argv_array_push(&fastimport->args, "fast-import"); argv_array_push(&fastimport->args, debug ? "--stats" : "--quiet"); @@ -835,6 +837,9 @@ static int push_refs_with_push(struct transport *transport, if (flags & TRANSPORT_PUSH_DRY_RUN) { if (set_helper_option(transport, "dry-run", "true") != 0) die("helper %s does not support dry-run", data->name); + } else if (flags & TRANSPORT_PUSH_CERT) { + if (set_helper_option(transport, TRANS_OPT_PUSH_CERT, "true") != 0) + die("helper %s does not support --signed", data->name); } strbuf_addch(&buf, '\n'); @@ -859,6 +864,9 @@ static int push_refs_with_export(struct transport *transport, if (flags & TRANSPORT_PUSH_DRY_RUN) { if (set_helper_option(transport, "dry-run", "true") != 0) die("helper %s does not support dry-run", data->name); + } else if (flags & TRANSPORT_PUSH_CERT) { + if (set_helper_option(transport, TRANS_OPT_PUSH_CERT, "true") != 0) + die("helper %s does not support dry-run", data->name); } if (flags & TRANSPORT_PUSH_FORCE) { diff --git a/transport.c b/transport.c index 662421bb5e..055d2a27d9 100644 --- a/transport.c +++ b/transport.c @@ -201,7 +201,7 @@ 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; + struct child_process rsync = CHILD_PROCESS_INIT; const char *args[5]; int temp_dir_len; @@ -218,7 +218,6 @@ static struct ref *get_refs_via_rsync(struct transport *transport, int for_push) strbuf_addstr(&buf, rsync_url(transport->url)); strbuf_addstr(&buf, "/refs"); - memset(&rsync, 0, sizeof(rsync)); rsync.argv = args; rsync.stdout_to_stderr = 1; args[0] = "rsync"; @@ -263,9 +262,8 @@ static struct ref *get_refs_via_rsync(struct transport *transport, int for_push) static int fetch_objs_via_rsync(struct transport *transport, int nr_objs, struct ref **to_fetch) { - struct child_process rsync; + struct child_process rsync = CHILD_PROCESS_INIT; - memset(&rsync, 0, sizeof(rsync)); rsync.stdout_to_stderr = 1; argv_array_push(&rsync.args, "rsync"); argv_array_push(&rsync.args, (transport->verbose > 1) ? "-rv" : "-r"); @@ -327,7 +325,7 @@ static int rsync_transport_push(struct transport *transport, { struct strbuf buf = STRBUF_INIT, temp_dir = STRBUF_INIT; int result = 0, i; - struct child_process rsync; + struct child_process rsync = CHILD_PROCESS_INIT; const char *args[10]; if (flags & TRANSPORT_PUSH_MIRROR) @@ -338,7 +336,6 @@ static int rsync_transport_push(struct transport *transport, strbuf_addstr(&buf, rsync_url(transport->url)); strbuf_addch(&buf, '/'); - memset(&rsync, 0, sizeof(rsync)); rsync.argv = args; rsync.stdout_to_stderr = 1; i = 0; @@ -480,6 +477,9 @@ static int set_git_option(struct git_transport_options *opts, die("transport: invalid depth option '%s'", value); } return 0; + } else if (!strcmp(name, TRANS_OPT_PUSH_CERT)) { + opts->push_cert = !!value; + return 0; } return 1; } @@ -823,6 +823,8 @@ static int git_transport_push(struct transport *transport, struct ref *remote_re args.progress = transport->progress; args.dry_run = !!(flags & TRANSPORT_PUSH_DRY_RUN); args.porcelain = !!(flags & TRANSPORT_PUSH_PORCELAIN); + args.push_cert = !!(flags & TRANSPORT_PUSH_CERT); + args.url = transport->url; ret = send_pack(&args, data->fd, data->conn, remote_refs, &data->extra_have); @@ -1056,7 +1058,7 @@ static int run_pre_push_hook(struct transport *transport, { int ret = 0, x; struct ref *r; - struct child_process proc; + struct child_process proc = CHILD_PROCESS_INIT; struct strbuf buf; const char *argv[4]; @@ -1067,7 +1069,6 @@ static int run_pre_push_hook(struct transport *transport, argv[2] = transport->url; argv[3] = NULL; - memset(&proc, 0, sizeof(proc)); proc.argv = argv; proc.in = -1; diff --git a/transport.h b/transport.h index 02ea248db1..3e0091eaab 100644 --- a/transport.h +++ b/transport.h @@ -12,6 +12,7 @@ struct git_transport_options { unsigned check_self_contained_and_connected : 1; unsigned self_contained_and_connected : 1; unsigned update_shallow : 1; + unsigned push_cert : 1; int depth; const char *uploadpack; const char *receivepack; @@ -123,6 +124,7 @@ struct transport { #define TRANSPORT_RECURSE_SUBMODULES_ON_DEMAND 256 #define TRANSPORT_PUSH_NO_HOOK 512 #define TRANSPORT_PUSH_FOLLOW_TAGS 1024 +#define TRANSPORT_PUSH_CERT 2048 #define TRANSPORT_SUMMARY_WIDTH (2 * DEFAULT_ABBREV + 3) #define TRANSPORT_SUMMARY(x) (int)(TRANSPORT_SUMMARY_WIDTH + strlen(x) - gettext_width(x)), (x) @@ -156,6 +158,9 @@ struct transport *transport_get(struct remote *, const char *); /* Accept refs that may update .git/shallow without --depth */ #define TRANS_OPT_UPDATE_SHALLOW "updateshallow" +/* Send push certificates */ +#define TRANS_OPT_PUSH_CERT "pushcert" + /** * Returns 0 if the option was used, non-zero otherwise. Prints a * message to stderr if the option is not used. diff --git a/unix-socket.c b/unix-socket.c index 91bd6b89d4..19ed48be99 100644 --- a/unix-socket.c +++ b/unix-socket.c @@ -18,12 +18,12 @@ static int chdir_len(const char *orig, int len) } struct unix_sockaddr_context { - char orig_dir[PATH_MAX]; + char *orig_dir; }; static void unix_sockaddr_cleanup(struct unix_sockaddr_context *ctx) { - if (!ctx->orig_dir[0]) + if (!ctx->orig_dir) return; /* * If we fail, we can't just return an error, since we have @@ -32,6 +32,7 @@ static void unix_sockaddr_cleanup(struct unix_sockaddr_context *ctx) */ if (chdir(ctx->orig_dir) < 0) die("unable to restore original working directory"); + free(ctx->orig_dir); } static int unix_sockaddr_init(struct sockaddr_un *sa, const char *path, @@ -39,10 +40,11 @@ static int unix_sockaddr_init(struct sockaddr_un *sa, const char *path, { int size = strlen(path) + 1; - ctx->orig_dir[0] = '\0'; + ctx->orig_dir = NULL; if (size > sizeof(sa->sun_path)) { const char *slash = find_last_dir_sep(path); const char *dir; + struct strbuf cwd = STRBUF_INIT; if (!slash) { errno = ENAMETOOLONG; @@ -56,11 +58,9 @@ static int unix_sockaddr_init(struct sockaddr_un *sa, const char *path, errno = ENAMETOOLONG; return -1; } - - if (!getcwd(ctx->orig_dir, sizeof(ctx->orig_dir))) { - errno = ENAMETOOLONG; + if (strbuf_getcwd(&cwd)) return -1; - } + ctx->orig_dir = strbuf_detach(&cwd, NULL); if (chdir_len(dir, slash - dir) < 0) return -1; } diff --git a/unpack-trees.c b/unpack-trees.c index c6aa8fb993..629c658c46 100644 --- a/unpack-trees.c +++ b/unpack-trees.c @@ -1176,7 +1176,8 @@ return_failed: static int reject_merge(const struct cache_entry *ce, struct unpack_trees_options *o) { - return add_rejected_path(o, ERROR_WOULD_OVERWRITE, ce->name); + return o->gently ? -1 : + add_rejected_path(o, ERROR_WOULD_OVERWRITE, ce->name); } static int same(const struct cache_entry *a, const struct cache_entry *b) @@ -1631,7 +1632,7 @@ int threeway_merge(const struct cache_entry * const *stages, /* #14, #14ALT, #2ALT */ if (remote && !df_conflict_head && head_match && !remote_match) { if (index && !same(index, remote) && !same(index, head)) - return o->gently ? -1 : reject_merge(index, o); + return reject_merge(index, o); return merged_entry(remote, index, o); } /* @@ -1639,7 +1640,7 @@ int threeway_merge(const struct cache_entry * const *stages, * make sure that it matches head. */ if (index && !same(index, head)) - return o->gently ? -1 : reject_merge(index, o); + return reject_merge(index, o); if (head) { /* #5ALT, #15 */ @@ -1768,9 +1769,8 @@ int twoway_merge(const struct cache_entry * const *src, else return merged_entry(newtree, current, o); } - return o->gently ? -1 : reject_merge(current, o); - } - else if ((!oldtree && !newtree) || /* 4 and 5 */ + return reject_merge(current, o); + } else if ((!oldtree && !newtree) || /* 4 and 5 */ (!oldtree && newtree && same(current, newtree)) || /* 6 and 7 */ (oldtree && newtree && @@ -1779,26 +1779,15 @@ int twoway_merge(const struct cache_entry * const *src, !same(oldtree, newtree) && /* 18 and 19 */ same(current, newtree))) { return keep_entry(current, o); - } - else if (oldtree && !newtree && same(current, oldtree)) { + } else if (oldtree && !newtree && same(current, oldtree)) { /* 10 or 11 */ return deleted_entry(oldtree, current, o); - } - else if (oldtree && newtree && + } else if (oldtree && newtree && same(current, oldtree) && !same(current, newtree)) { /* 20 or 21 */ return merged_entry(newtree, current, o); - } - else { - /* all other failures */ - if (oldtree) - return o->gently ? -1 : reject_merge(oldtree, o); - if (current) - return o->gently ? -1 : reject_merge(current, o); - if (newtree) - return o->gently ? -1 : reject_merge(newtree, o); - return -1; - } + } else + return reject_merge(current, o); } else if (newtree) { if (oldtree && !o->initial_checkout) { diff --git a/upload-pack.c b/upload-pack.c index 01de944a0a..c789ec0050 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -80,7 +80,7 @@ static int write_one_shallow(const struct commit_graft *graft, void *cb_data) static void create_pack_file(void) { - struct child_process pack_objects; + struct child_process pack_objects = CHILD_PROCESS_INIT; char data[8193], progress[128]; char abort_msg[] = "aborting due to possible repository " "corruption on the remote side."; @@ -108,7 +108,6 @@ static void create_pack_file(void) argv[arg++] = "--include-tag"; argv[arg++] = NULL; - memset(&pack_objects, 0, sizeof(pack_objects)); pack_objects.in = -1; pack_objects.out = -1; pack_objects.err = -1; @@ -167,7 +166,9 @@ static void create_pack_file(void) if (!pollsize) break; - ret = poll(pfd, pollsize, 1000 * keepalive); + ret = poll(pfd, pollsize, + keepalive < 0 ? -1 : 1000 * keepalive); + if (ret < 0) { if (errno != EINTR) { error("poll failed, resuming: %s", @@ -448,7 +449,7 @@ static void check_non_tip(void) static const char *argv[] = { "rev-list", "--stdin", NULL, }; - static struct child_process cmd; + static struct child_process cmd = CHILD_PROCESS_INIT; struct object *o; char namebuf[42]; /* ^ + SHA-1 + LF */ int i; @@ -239,13 +239,6 @@ int is_utf8(const char *text) return 1; } -static void strbuf_addchars(struct strbuf *sb, int c, size_t n) -{ - strbuf_grow(sb, n); - memset(sb->buf + sb->len, c, n); - strbuf_setlen(sb, sb->len + n); -} - static void strbuf_add_indented_text(struct strbuf *buf, const char *text, int indent, int indent2) { @@ -382,6 +375,9 @@ void strbuf_utf8_replace(struct strbuf *sb_src, int pos, int width, dst += n; } + if (src >= end) + break; + old = src; n = utf8_width((const char**)&src, NULL); if (!src) /* broken utf-8, do nothing */ @@ -205,7 +205,7 @@ static int mark_complete(const char *path, const unsigned char *sha1, int flag, struct commit *commit = lookup_commit_reference_gently(sha1, 1); if (commit) { commit->object.flags |= COMPLETE; - commit_list_insert_by_date(commit, &complete); + commit_list_insert(commit, &complete); } return 0; } @@ -228,8 +228,8 @@ int walker_targets_stdin(char ***target, const char ***write_ref) if (targets >= targets_alloc) { targets_alloc = targets_alloc ? targets_alloc * 2 : 64; - *target = xrealloc(*target, targets_alloc * sizeof(**target)); - *write_ref = xrealloc(*write_ref, targets_alloc * sizeof(**write_ref)); + REALLOC_ARRAY(*target, targets_alloc); + REALLOC_ARRAY(*write_ref, targets_alloc); } (*target)[targets] = xstrdup(tg_one); (*write_ref)[targets] = rf_one ? xstrdup(rf_one) : NULL; @@ -251,64 +251,76 @@ void walker_targets_free(int targets, char **target, const char **write_ref) int walker_fetch(struct walker *walker, int targets, char **target, const char **write_ref, const char *write_ref_log_details) { - struct ref_lock **lock = xcalloc(targets, sizeof(struct ref_lock *)); + struct strbuf refname = STRBUF_INIT; + struct strbuf err = STRBUF_INIT; + struct ref_transaction *transaction = NULL; unsigned char *sha1 = xmalloc(targets * 20); - const char *msg; - char *to_free = NULL; - int ret; - int i; + char *msg = NULL; + int i, ret = -1; save_commit_buffer = 0; - for (i = 0; i < targets; i++) { - if (!write_ref || !write_ref[i]) - continue; - - lock[i] = lock_ref_sha1(write_ref[i], NULL); - if (!lock[i]) { - error("Can't lock ref %s", write_ref[i]); - goto unlock_and_fail; + if (write_ref) { + transaction = ref_transaction_begin(&err); + if (!transaction) { + error("%s", err.buf); + goto done; } } - if (!walker->get_recover) + if (!walker->get_recover) { for_each_ref(mark_complete, NULL); + commit_list_sort_by_date(&complete); + } for (i = 0; i < targets; i++) { if (interpret_target(walker, target[i], &sha1[20 * i])) { error("Could not interpret response from server '%s' as something to pull", target[i]); - goto unlock_and_fail; + goto done; } if (process(walker, lookup_unknown_object(&sha1[20 * i]))) - goto unlock_and_fail; + goto done; } if (loop(walker)) - goto unlock_and_fail; - - if (write_ref_log_details) - msg = to_free = xstrfmt("fetch from %s", write_ref_log_details); - else - msg = "fetch (unknown)"; + goto done; + if (!write_ref) { + ret = 0; + goto done; + } + if (write_ref_log_details) { + msg = xstrfmt("fetch from %s", write_ref_log_details); + } else { + msg = NULL; + } for (i = 0; i < targets; i++) { - if (!write_ref || !write_ref[i]) + if (!write_ref[i]) continue; - ret = write_ref_sha1(lock[i], &sha1[20 * i], msg); - lock[i] = NULL; - if (ret) - goto unlock_and_fail; + strbuf_reset(&refname); + strbuf_addf(&refname, "refs/%s", write_ref[i]); + if (ref_transaction_update(transaction, refname.buf, + &sha1[20 * i], NULL, 0, 0, + &err)) { + error("%s", err.buf); + goto done; + } + } + if (ref_transaction_commit(transaction, + msg ? msg : "fetch (unknown)", + &err)) { + error("%s", err.buf); + goto done; } - free(to_free); - - return 0; -unlock_and_fail: - for (i = 0; i < targets; i++) - if (lock[i]) - unlock_ref(lock[i]); - free(to_free); + ret = 0; - return -1; +done: + ref_transaction_free(transaction); + free(msg); + free(sha1); + strbuf_release(&err); + strbuf_release(&refname); + return ret; } void walker_free(struct walker *walker) @@ -9,7 +9,7 @@ static void do_nothing(size_t size) static void (*try_to_free_routine)(size_t size) = do_nothing; -static void memory_limit_check(size_t size) +static int memory_limit_check(size_t size, int gentle) { static size_t limit = 0; if (!limit) { @@ -17,9 +17,16 @@ static void memory_limit_check(size_t size) if (!limit) limit = SIZE_MAX; } - if (size > limit) - die("attempting to allocate %"PRIuMAX" over limit %"PRIuMAX, - (uintmax_t)size, (uintmax_t)limit); + if (size > limit) { + if (gentle) { + error("attempting to allocate %"PRIuMAX" over limit %"PRIuMAX, + (uintmax_t)size, (uintmax_t)limit); + return -1; + } else + die("attempting to allocate %"PRIuMAX" over limit %"PRIuMAX, + (uintmax_t)size, (uintmax_t)limit); + } + return 0; } try_to_free_t set_try_to_free_routine(try_to_free_t routine) @@ -43,11 +50,12 @@ char *xstrdup(const char *str) return ret; } -void *xmalloc(size_t size) +static void *do_xmalloc(size_t size, int gentle) { void *ret; - memory_limit_check(size); + if (memory_limit_check(size, gentle)) + return NULL; ret = malloc(size); if (!ret && !size) ret = malloc(1); @@ -56,9 +64,16 @@ void *xmalloc(size_t size) ret = malloc(size); if (!ret && !size) ret = malloc(1); - if (!ret) - die("Out of memory, malloc failed (tried to allocate %lu bytes)", - (unsigned long)size); + if (!ret) { + if (!gentle) + die("Out of memory, malloc failed (tried to allocate %lu bytes)", + (unsigned long)size); + else { + error("Out of memory, malloc failed (tried to allocate %lu bytes)", + (unsigned long)size); + return NULL; + } + } } #ifdef XMALLOC_POISON memset(ret, 0xA5, size); @@ -66,16 +81,37 @@ void *xmalloc(size_t size) return ret; } -void *xmallocz(size_t size) +void *xmalloc(size_t size) +{ + return do_xmalloc(size, 0); +} + +static void *do_xmallocz(size_t size, int gentle) { void *ret; - if (unsigned_add_overflows(size, 1)) - die("Data too large to fit into virtual memory space."); - ret = xmalloc(size + 1); - ((char*)ret)[size] = 0; + if (unsigned_add_overflows(size, 1)) { + if (gentle) { + error("Data too large to fit into virtual memory space."); + return NULL; + } else + die("Data too large to fit into virtual memory space."); + } + ret = do_xmalloc(size + 1, gentle); + if (ret) + ((char*)ret)[size] = 0; return ret; } +void *xmallocz(size_t size) +{ + return do_xmallocz(size, 0); +} + +void *xmallocz_gently(size_t size) +{ + return do_xmallocz(size, 1); +} + /* * xmemdupz() allocates (len + 1) bytes of memory, duplicates "len" bytes of * "data" to the allocated memory, zero terminates the allocated memory, @@ -97,7 +133,7 @@ void *xrealloc(void *ptr, size_t size) { void *ret; - memory_limit_check(size); + memory_limit_check(size, 0); ret = realloc(ptr, size); if (!ret && !size) ret = realloc(ptr, 1); @@ -116,7 +152,7 @@ void *xcalloc(size_t nmemb, size_t size) { void *ret; - memory_limit_check(size * nmemb); + memory_limit_check(size * nmemb, 0); ret = calloc(nmemb, size); if (!ret && (!nmemb || !size)) ret = calloc(1, 1); @@ -494,3 +530,11 @@ struct passwd *xgetpwuid_self(void) errno ? strerror(errno) : _("no such user")); return pw; } + +char *xgetcwd(void) +{ + struct strbuf sb = STRBUF_INIT; + if (strbuf_getcwd(&sb)) + die_errno(_("unable to get current working directory")); + return strbuf_detach(&sb, NULL); +} diff --git a/write_or_die.c b/write_or_die.c index b50f99a936..e7afe7a295 100644 --- a/write_or_die.c +++ b/write_or_die.c @@ -49,6 +49,21 @@ void maybe_flush_or_die(FILE *f, const char *desc) } } +void fprintf_or_die(FILE *f, const char *fmt, ...) +{ + va_list ap; + int ret; + + va_start(ap, fmt); + ret = vfprintf(f, fmt, ap); + va_end(ap); + + if (ret < 0) { + check_pipe(errno); + die_errno("write error"); + } +} + void fsync_or_die(int fd, const char *msg) { if (fsync(fd) < 0) { diff --git a/wt-status.c b/wt-status.c index 27da5296be..1bf5d72545 100644 --- a/wt-status.c +++ b/wt-status.c @@ -725,7 +725,7 @@ static void wt_status_print_changed(struct wt_status *s) static void wt_status_print_submodule_summary(struct wt_status *s, int uncommitted) { - struct child_process sm_summary; + struct child_process sm_summary = CHILD_PROCESS_INIT; struct argv_array env = ARGV_ARRAY_INIT; struct argv_array argv = ARGV_ARRAY_INIT; struct strbuf cmd_stdout = STRBUF_INIT; @@ -744,7 +744,6 @@ static void wt_status_print_submodule_summary(struct wt_status *s, int uncommitt if (!uncommitted) argv_array_push(&argv, s->amend ? "HEAD^" : "HEAD"); - memset(&sm_summary, 0, sizeof(sm_summary)); sm_summary.argv = argv.argv; sm_summary.env = env.argv; sm_summary.git_cmd = 1; |