diff options
76 files changed, 2982 insertions, 2261 deletions
diff --git a/Documentation/RelNotes/1.8.1.5.txt b/Documentation/RelNotes/1.8.1.5.txt new file mode 100644 index 0000000000..efa68aef22 --- /dev/null +++ b/Documentation/RelNotes/1.8.1.5.txt @@ -0,0 +1,47 @@ +Git 1.8.1.5 Release Notes +========================= + +Fixes since v1.8.1.4 +-------------------- + + * Given a string with a multi-byte character that begins with '-' on + the command line where an option is expected, the option parser + used just one byte of the unknown letter when reporting an error. + + * In v1.8.1, the attribute parser was tightened too restrictive to + error out upon seeing an entry that begins with an ! (exclamation), + which may confuse users to expect a "negative match", which does + not exist. This has been demoted to a warning; such an entry is + still ignored. + + * "git apply --summary" has been taught to make sure the similarity + value shown in its output is sensible, even when the input had a + bogus value. + + * "git clean" showed what it was going to do, but sometimes ended + up finding that it was not allowed to do so, which resulted in a + confusing output (e.g. after saying that it will remove an + untracked directory, it found an embedded git repository there + which it is not allowed to remove). It now performs the actions + and then reports the outcome more faithfully. + + * "git clone" used to allow --bare and --separate-git-dir=$there + options at the same time, which was nonsensical. + + * "git cvsimport" mishandled timestamps at DST boundary. + + * We used to have an arbitrary 32 limit for combined diff input, + resulting in incorrect number of leading colons shown when showing + the "--raw --cc" output. + + * The smart HTTP clients forgot to verify the content-type that comes + back from the server side to make sure that the request is being + handled properly. + + * "git help remote-helpers" failed to find the documentation. + + * "gitweb" pages served over HTTPS, when configured to show picon or + gravatar, referred to these external resources to be fetched via + HTTP, resulting in mixed contents warning in browsers. + +Also contains various documentation fixes. diff --git a/Documentation/RelNotes/1.8.2.1.txt b/Documentation/RelNotes/1.8.2.1.txt new file mode 100644 index 0000000000..b4cf3cccde --- /dev/null +++ b/Documentation/RelNotes/1.8.2.1.txt @@ -0,0 +1,71 @@ +Git v1.8.2.1 Release Notes +========================== + +Fixes since v1.8.2 +------------------ + + * "git submodule update", when recursed into sub-submodules, did not + acccumulate the prefix paths. + + * "git am $maildir/" applied messages in an unexpected order; sort + filenames read from the maildir/ in a way that is more likely to + sort messages in the order the writing MUA meant to, by sorting + numeric segment in numeric order and non-numeric segment in + alphabetical order. + + * When export-subst is used, "zip" output recorded incorrect + size of the file. + + * Some platforms and users spell UTF-8 differently; retry with the + most official "UTF-8" when the system does not understand the + user-supplied encoding name that are the common alternative + spellings of UTF-8. + + * "git branch" did not bother to check nonsense command line + parameters and issue errors in many cases. + + * "git update-index -h" did not do the usual "-h(elp)" thing. + + * perl/Git.pm::cat_blob slurped everything in core only to write it + out to a file descriptor, which was not a very smart thing to do. + + * The SSL peer verification done by "git imap-send" did not ask for + Server Name Indication (RFC 4366), failing to connect SSL/TLS + sites that serve multiple hostnames on a single IP. + + * "git index-pack" had a buffer-overflow while preparing an + informational message when the translated version of it was too + long. + + * Clarify in the documentation "what" gets pushed to "where" when the + command line to "git push" does not say these explicitly. + + * In "git reflog expire", REACHABLE bit was not cleared from the + correct objects. + + * The "--color=<when>" argument to the commands in the diff family + was described poorly. + + * The arguments given to pre-rebase hook were not documented. + + * The v4 index format was not documented. + + * The "--match=<pattern>" argument "git describe" takes uses glob + pattern but it wasn't obvious from the documentation. + + * Some sources failed to compile on systems that lack NI_MAXHOST in + their system header (e.g. z/OS). + + * Add an example use of "--env-filter" in "filter-branch" + documentation. + + * "git bundle verify" did not say "records a complete history" for a + bundle that does not have any prerequisites. + + * In the v1.8.0 era, we changed symbols that do not have to be global + to file scope static, but a few functions in graph.c were used by + CGit from sideways bypassing the entry points of the API the + in-tree users use. + + * "git merge-tree" had a typo in the logic to detect d/f conflicts, + which caused it to segfault in some cases. diff --git a/Documentation/RelNotes/1.8.2.txt b/Documentation/RelNotes/1.8.2.txt index a287f24800..fc606ae116 100644 --- a/Documentation/RelNotes/1.8.2.txt +++ b/Documentation/RelNotes/1.8.2.txt @@ -1,38 +1,51 @@ Git v1.8.2 Release Notes ======================== -Backward compatibility notes ----------------------------- - -In the next major release Git 2.0 (not *this* one), we will change the -behavior of the "git push" command. - -When "git push [$there]" does not say what to push, we have used the -traditional "matching" semantics so far (all your branches were sent -to the remote as long as there already are branches of the same name -over there). We will use the "simple" semantics that pushes the -current branch to the branch with the same name, only when the current -branch is set to integrate with that remote branch. There is a user -preference configuration variable "push.default" to change this. +Backward compatibility notes (this release) +------------------------------------------- "git push $there tag v1.2.3" used to allow replacing a tag v1.2.3 that already exists in the repository $there, if the rewritten tag -you are pushing points at a commit that is a decendant of a commit +you are pushing points at a commit that is a descendant of a commit that the old tag v1.2.3 points at. This was found to be error prone and starting with this release, any attempt to update an existing ref under refs/tags/ hierarchy will fail, without "--force". -When "git add -u" and "git add -A", that does not specify what paths -to add on the command line, is run from inside a subdirectory, the -scope of the operation has always been limited to the subirectory. +When "git add -u" and "git add -A" that does not specify what paths +to add on the command line is run from inside a subdirectory, the +scope of the operation has always been limited to the subdirectory. Many users found this counter-intuitive, given that "git commit -a" and other commands operate on the entire tree regardless of where you -are. In this release, these commands give warning in such a case and -encourage the user to say "git add -u/-A ." instead when restricting -the scope to the current directory. At Git 2.0 (not *this* one), we -plan to change these commands without pathspec to operate on the -entire tree, and training your fingers to type "." will protect you -against the future change. +are. In this release, these commands give a warning message that +suggests the users to use "git add -u/-A ." when they want to limit +the scope to the current directory; doing so will squelch the message, +while training their fingers. + + +Backward compatibility notes (for Git 2.0) +------------------------------------------ + +When "git push [$there]" does not say what to push, we have used the +traditional "matching" semantics so far (all your branches were sent +to the remote as long as there already are branches of the same name +over there). In Git 2.0, the default will change to the "simple" +semantics that pushes the current branch to the branch with the same +name, only when the current branch is set to integrate with that +remote branch. There is a user preference configuration variable +"push.default" to change this. If you are an old-timer who is used +to the "matching" semantics, you can set it to "matching" to keep the +traditional behaviour. If you want to live in the future early, +you can set it to "simple" today without waiting for Git 2.0. + +When "git add -u" and "git add -A", that does not specify what paths +to add on the command line is run from inside a subdirectory, these +commands will operate on the entire tree in Git 2.0 for consistency +with "git commit -a" and other commands. Because there will be no +mechanism to make "git add -u" behave as if "git add -u .", it is +important for those who are used to "git add -u" (without pathspec) +updating the index only for paths in the current subdirectory to start +training their fingers to explicitly say "git add -u ." when they mean +it before Git 2.0 comes. Updates since v1.8.1 @@ -125,7 +138,7 @@ UI, Workflows & Features string "v$count-" to the names of its output files, and also automatically sets the subject prefix to "PATCH v$count". This allows patches from rerolled series to be stored under different - names and makes it easier to reuse cover letter messsages. + names and makes it easier to reuse cover letter messages. * "git log" and friends can be told with --use-mailmap option to rewrite the names and email addresses of people using the mailmap @@ -295,7 +308,6 @@ details). * The smart HTTP clients forgot to verify the content-type that comes back from the server side to make sure that the request is being handled properly. - (merge 3443db5 sp/smart-http-content-type-check later to maint). * "git am" did not parse datestamp correctly from Hg generated patch, when it is run in a locale outside C (or en). @@ -306,7 +318,6 @@ details). * "git apply --summary" has been taught to make sure the similarity value shown in its output is sensible, even when the input had a bogus value. - (merge afcb6ac jk/apply-similaritly-parsing later to maint). * A tar archive created by "git archive" recorded a directory in a way that made NetBSD's implementation of "tar" sometimes unhappy. @@ -327,19 +338,16 @@ details). untracked directory, it found an embedded git repository there which it is not allowed to remove). It now performs the actions and then reports the outcome more faithfully. - (merge f538a91 zk/clean-report-failure later to maint). * When "git clone --separate-git-dir=$over_there" is interrupted, it failed to remove the real location of the $GIT_DIR it created. This was most visible when interrupting a submodule update. * "git cvsimport" mishandled timestamps at DST boundary. - (merge 48c9162 bw/get-tz-offset-perl later to maint). * We used to have an arbitrary 32 limit for combined diff input, resulting in incorrect number of leading colons shown when showing the "--raw --cc" output. - (merge edbc00e jc/combine-diff-many-parents later to maint). * "git fetch --depth" was broken in at least three ways. The resulting history was deeper than specified by one commit, it was @@ -349,7 +357,6 @@ details). * "git log --all -p" that walked refs/notes/textconv/ ref can later try to use the textconv data incorrectly after it gets freed. - (merge be5c9fb jk/read-commit-buffer-data-after-free later to maint). * We forgot to close the file descriptor reading from "gpg" output, killing "git log --show-signature" on a long history. @@ -374,7 +381,6 @@ details). * "git clone" used to allow --bare and --separate-git-dir=$there options at the same time, which was nonsensical. - (merge 95b63f1 nd/clone-no-separate-git-dir-with-bare later to maint). * "git rebase --preserve-merges" lost empty merges in recent versions of Git. @@ -409,7 +415,6 @@ details). * "gitweb" pages served over HTTPS, when configured to show picon or gravatar, referred to these external resources to be fetched via HTTP, resulting in mixed contents warning in browsers. - (merge 5748558 ab/gitweb-use-same-scheme later to maint). * When a line to be wrapped has a solid run of non space characters whose length exactly is the wrap width, "git shortlog -w" failed @@ -427,7 +432,7 @@ details). * "git push" was taught to refuse updating the branch that is currently checked out long time ago, but the user manual was left stale. - (merge d9be248 wk/man-deny-current-branch-is-default-these-days later to maint). + (merge 50995ed wk/man-deny-current-branch-is-default-these-days later to maint). * Some shells do not behave correctly when IFS is unset; work it around by explicitly setting it to the default value. @@ -446,7 +451,11 @@ details). * The autoconf subsystem passed --mandir down to generated config.mak.autogen but forgot to do the same for --htmldir. - (merge fc1c541 ct/autoconf-htmldir later to maint). + (merge 55d9bf0 ct/autoconf-htmldir later to maint). + + * A change made on v1.8.1.x maintenance track had a nasty regression + to break the build when autoconf is used. + (merge 7f1b697 jn/less-reconfigure later to maint). * We have been carrying a translated and long-unmaintained copy of an old version of the tutorial; removed. @@ -467,3 +476,20 @@ details). * Scripts to test bash completion was inherently flaky as it was affected by whatever random things the user may have on $PATH. + + * An element on GIT_CEILING_DIRECTORIES could be a "logical" pathname + that uses a symbolic link to point at somewhere else (e.g. /home/me + that points at /net/host/export/home/me, and the latter directory + is automounted). Earlier when Git saw such a pathname e.g. /home/me + on this environment variable, the "ceiling" mechanism did not take + effect. With this release (the fix has also been merged to the + v1.8.1.x maintenance series), elements on GIT_CEILING_DIRECTORIES + are by default checked for such aliasing coming from symbolic + links. As this needs to actually resolve symbolic links for each + element on the GIT_CEILING_DIRECTORIES, you can disable this + mechanism for some elements by listing them after an empty element + on the GIT_CEILING_DIRECTORIES. e.g. Setting /home/me::/home/him to + GIT_CEILING_DIRECTORIES makes Git resolve symbolic links in + /home/me when checking if the current directory is under /home/me, + but does not do so for /home/him. + (merge 7ec30aa mh/maint-ceil-absolute later to maint). diff --git a/Documentation/config.txt b/Documentation/config.txt index 3bb53da522..b82e0816cb 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -182,7 +182,7 @@ advice.*:: Advice shown when linkgit:git-merge[1] refuses to merge to avoid overwriting local changes. resolveConflict:: - Advices shown by various commands when conflicts + Advice shown by various commands when conflicts prevent the operation from being performed. implicitIdentity:: Advice on how to set your identity configuration when @@ -443,7 +443,7 @@ core.sharedRepository:: core.warnAmbiguousRefs:: If true, Git will warn you if the ref name you passed it is ambiguous - and might match multiple refs in the .git/refs/ tree. True by default. + and might match multiple refs in the repository. True by default. core.compression:: An integer -1..9, indicating a default compression level. @@ -551,7 +551,7 @@ core.commentchar:: (default '#'). sequence.editor:: - Text editor used by `git rebase -i` for editing the rebase insn file. + Text editor used by `git rebase -i` for editing the rebase instruction file. The value is meant to be interpreted by the shell when it is used. It can be overridden by the `GIT_SEQUENCE_EDITOR` environment variable. When not configured the default commit message editor is used instead. diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt index 869d965a3b..104579dc75 100644 --- a/Documentation/diff-options.txt +++ b/Documentation/diff-options.txt @@ -195,8 +195,8 @@ any of those replacements occurred. --color[=<when>]:: Show colored diff. - The value must be `always` (the default for `<when>`), `never`, or `auto`. - The default value is `never`. + `--color` (i.e. without '=<when>') is the same as `--color=always`. + '<when>' can be one of `always`, `never`, or `auto`. ifdef::git-diff[] It can be changed by the `color.ui` and `color.diff` configuration settings. diff --git a/Documentation/git-add.txt b/Documentation/git-add.txt index 388a2254f9..b0944e57d5 100644 --- a/Documentation/git-add.txt +++ b/Documentation/git-add.txt @@ -100,12 +100,9 @@ apply to the index. See EDITING PATCHES below. -u:: --update:: - Only match <pathspec> against already tracked files in - the index rather than the working tree. That means that it - will never stage new files, but that it will stage modified - new contents of tracked files and that it will remove files - from the index if the corresponding files in the working tree - have been removed. + Update the index just where it already has an entry matching + <pathspec>. This removes as well as modifies index entries to + match the working tree, but adds no new files. + If no <pathspec> is given, the current version of Git defaults to "."; in other words, update all tracked files in the current directory @@ -114,10 +111,15 @@ of Git, hence the form without <pathspec> should not be used. -A:: --all:: - Like `-u`, but match <pathspec> against files in the - working tree in addition to the index. That means that it - will find new files as well as staging modified content and - removing files that are no longer in the working tree. + Update the index not only where the working tree has a file + matching <pathspec> but also where the index already has an + entry. This adds, modifies, and removes index entries to + match the working tree. ++ +If no <pathspec> is given, the current version of Git defaults to +"."; in other words, update all files in the current directory +and its subdirectories. This default will change in a future version +of Git, hence the form without <pathspec> should not be used. -N:: --intent-to-add:: diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt index 0eb79ccdba..42c22bb59d 100644 --- a/Documentation/git-commit.txt +++ b/Documentation/git-commit.txt @@ -137,6 +137,8 @@ OPTIONS -m <msg>:: --message=<msg>:: Use the given <msg> as the commit message. + If multiple `-m` options are given, their values are + concatenated as separate paragraphs. -t <file>:: --template=<file>:: diff --git a/Documentation/git-describe.txt b/Documentation/git-describe.txt index 32da244fd5..3c81e85ec5 100644 --- a/Documentation/git-describe.txt +++ b/Documentation/git-describe.txt @@ -81,8 +81,9 @@ OPTIONS that points at object deadbee....). --match <pattern>:: - Only consider tags matching the given pattern (can be used to avoid - leaking private tags made from the repository). + Only consider tags matching the given `glob(7)` pattern, + excluding the "refs/tags/" prefix. This can be used to avoid + leaking private tags from the repository. --always:: Show uniquely abbreviated commit object as fallback. diff --git a/Documentation/git-filter-branch.txt b/Documentation/git-filter-branch.txt index dfd12c94e4..e4c8e82660 100644 --- a/Documentation/git-filter-branch.txt +++ b/Documentation/git-filter-branch.txt @@ -64,8 +64,11 @@ argument is always evaluated in the shell context using the 'eval' command Prior to that, the $GIT_COMMIT environment variable will be set to contain the id of the commit being rewritten. Also, GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL, GIT_AUTHOR_DATE, GIT_COMMITTER_NAME, GIT_COMMITTER_EMAIL, -and GIT_COMMITTER_DATE are set according to the current commit. The values -of these variables after the filters have run, are used for the new commit. +and GIT_COMMITTER_DATE are taken from the current commit and exported to +the environment, in order to affect the author and committer identities of +the replacement commit created by linkgit:git-commit-tree[1] after the +filters have run. + If any evaluation of <command> returns a non-zero exit status, the whole operation will be aborted. @@ -329,6 +332,26 @@ git filter-branch --msg-filter ' ' HEAD~10..HEAD -------------------------------------------------------- +The `--env-filter` option can be used to modify committer and/or author +identity. For example, if you found out that your commits have the wrong +identity due to a misconfigured user.email, you can make a correction, +before publishing the project, like this: + +-------------------------------------------------------- +git filter-branch --env-filter ' + if test "$GIT_AUTHOR_EMAIL" = "root@localhost" + then + GIT_AUTHOR_EMAIL=john@example.com + export GIT_AUTHOR_EMAIL + fi + if test "$GIT_COMMITTER_EMAIL" = "root@localhost" + then + GIT_COMMITTER_EMAIL=john@example.com + export GIT_COMMITTER_EMAIL + fi +' -- --all +-------------------------------------------------------- + To restrict rewriting to only part of the history, specify a revision range in addition to the new branch name. The new branch name will point to the top-most revision that a 'git rev-list' of this range diff --git a/Documentation/git-pull.txt b/Documentation/git-pull.txt index c975743230..24ab07a3f8 100644 --- a/Documentation/git-pull.txt +++ b/Documentation/git-pull.txt @@ -218,7 +218,7 @@ $ git merge origin/next ------------------------------------------------ -If you tried a pull which resulted in a complex conflicts and +If you tried a pull which resulted in complex conflicts and would want to start over, you can recover with 'git reset'. diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt index 13980257ee..577d201c00 100644 --- a/Documentation/git-push.txt +++ b/Documentation/git-push.txt @@ -23,6 +23,17 @@ You can make interesting things happen to a repository every time you push into it, by setting up 'hooks' there. See documentation for linkgit:git-receive-pack[1]. +When the command line does not specify where to push with the +`<repository>` argument, `branch.*.remote` configuration for the +current branch is consulted to determine where to push. If the +configuration is missing, it defaults to 'origin'. + +When the command line does not specify what to push with `<refspec>...` +arguments or `--all`, `--mirror`, `--tags` options, the command finds +the default `<refspec>` by consulting `remote.*.push` configuration, +and if it is not found, honors `push.default` configuration to decide +what to push (See gitlink:git-config[1] for the meaning of `push.default`). + OPTIONS[[OPTIONS]] ------------------ @@ -33,13 +44,10 @@ OPTIONS[[OPTIONS]] of a remote (see the section <<REMOTES,REMOTES>> below). <refspec>...:: + Specify what destination ref to update with what source object. The format of a <refspec> parameter is an optional plus - `+`, followed by the source ref <src>, followed + `+`, followed by the source object <src>, followed by a colon `:`, followed by the destination ref <dst>. - It is used to specify with what <src> object the <dst> ref - in the remote repository is to be updated. If not specified, - the behavior of the command is controlled by the `push.default` - configuration variable. + The <src> is often the name of the branch you would want to push, but it can be any arbitrary "SHA-1 expression", such as `master~4` or @@ -66,10 +74,7 @@ the remote repository. The special refspec `:` (or `+:` to allow non-fast-forward updates) directs Git to push "matching" branches: for every branch that exists on the local side, the remote side is updated if a branch of the same name -already exists on the remote side. This is the default operation mode -if no explicit refspec is found (that is neither on the command line -nor in any Push line of the corresponding remotes file---see below) and -no `push.default` configuration variable is set. +already exists on the remote side. --all:: Instead of naming each ref to push, specifies that all diff --git a/Documentation/git-submodule.txt b/Documentation/git-submodule.txt index a0c9df85f4..c99d795618 100644 --- a/Documentation/git-submodule.txt +++ b/Documentation/git-submodule.txt @@ -13,8 +13,9 @@ SYNOPSIS [--reference <repository>] [--] <repository> [<path>] 'git submodule' [--quiet] status [--cached] [--recursive] [--] [<path>...] 'git submodule' [--quiet] init [--] [<path>...] -'git submodule' [--quiet] update [--init] [--remote] [-N|--no-fetch] [--rebase] - [--reference <repository>] [--merge] [--recursive] [--] [<path>...] +'git submodule' [--quiet] update [--init] [--remote] [-N|--no-fetch] + [-f|--force] [--rebase] [--reference <repository>] + [--merge] [--recursive] [--] [<path>...] 'git submodule' [--quiet] summary [--cached|--files] [(-n|--summary-limit) <n>] [commit] [--] [<path>...] 'git submodule' [--quiet] foreach [--recursive] <command> diff --git a/Documentation/git-update-index.txt b/Documentation/git-update-index.txt index 77a912d4ea..c92775829b 100644 --- a/Documentation/git-update-index.txt +++ b/Documentation/git-update-index.txt @@ -145,7 +145,15 @@ you will need to handle the situation manually. --index-version <n>:: Write the resulting index out in the named on-disk format version. - The current default version is 2. + Supported versions are 2, 3 and 4. The current default version is 2 + or 3, depending on whether extra features are used, such as + `git add -N`. ++ +Version 4 performs a simple pathname compression that reduces index +size by 30%-50% on large repositories, which results in faster load +time. Version 4 is relatively young (first released in in 1.8.0 in +October 2012). Other Git implementations such as JGit and libgit2 +may not support it yet. -z:: Only meaningful with `--stdin` or `--index-info`; paths are diff --git a/Documentation/git.txt b/Documentation/git.txt index 0847cdcc68..4307d62bd4 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -43,9 +43,15 @@ unreleased) version of Git, that is available from 'master' branch of the `git.git` repository. Documentation for older releases are available here: -* link:v1.8.1.4/git.html[documentation for release 1.8.1.4] +* link:v1.8.2/git.html[documentation for release 1.8.2] * release notes for + link:RelNotes/1.8.2.txt[1.8.2]. + +* link:v1.8.1.5/git.html[documentation for release 1.8.1.5] + +* release notes for + link:RelNotes/1.8.1.5.txt[1.8.1.5], link:RelNotes/1.8.1.4.txt[1.8.1.4], link:RelNotes/1.8.1.3.txt[1.8.1.3], link:RelNotes/1.8.1.2.txt[1.8.1.2], @@ -678,12 +684,19 @@ Git so take care if using Cogito etc. The '--namespace' command-line option also sets this value. 'GIT_CEILING_DIRECTORIES':: - This should be a colon-separated list of absolute paths. - If set, it is a list of directories that Git should not chdir - up into while looking for a repository directory. - It will not exclude the current working directory or - a GIT_DIR set on the command line or in the environment. - (Useful for excluding slow-loading network directories.) + This should be a colon-separated list of absolute paths. If + set, it is a list of directories that Git should not chdir up + into while looking for a repository directory (useful for + excluding slow-loading network directories). It will not + exclude the current working directory or a GIT_DIR set on the + command line or in the environment. Normally, Git has to read + the entries in this list and resolve any symlink that + might be present in order to compare them with the current + directory. However, if even this access is slow, you + can add an empty entry to the list to tell Git that the + subsequent entries are not symlinks and needn't be resolved; + e.g., + 'GIT_CEILING_DIRECTORIES=/maybe/symlink::/very/slow/non/symlink'. 'GIT_DISCOVERY_ACROSS_FILESYSTEM':: When run in a directory that does not have ".git" repository @@ -761,9 +774,12 @@ other If this environment variable is set then 'git fetch' and 'git push' will use this command instead of 'ssh' when they need to connect to a remote system. - The '$GIT_SSH' command will be given exactly two arguments: - the 'username@host' (or just 'host') from the URL and the - shell command to execute on that remote system. + The '$GIT_SSH' command will be given exactly two or + four arguments: the 'username@host' (or just 'host') + from the URL and the shell command to execute on that + remote system, optionally preceded by '-p' (literally) and + the 'port' from the URL when it specifies something other + than the default SSH port. + To pass options to the program that you want to list in GIT_SSH you will need to wrap the program and options into a shell script, diff --git a/Documentation/gitcli.txt b/Documentation/gitcli.txt index dc9e617a10..9ac5088acd 100644 --- a/Documentation/gitcli.txt +++ b/Documentation/gitcli.txt @@ -107,13 +107,14 @@ couple of magic command line options: --------------------------------------------- $ git describe -h usage: git describe [options] <committish>* + or: git describe [options] --dirty --contains find the tag that comes after the commit --debug debug search strategy on stderr - --all use any ref in .git/refs - --tags use any tag in .git/refs/tags - --abbrev [<n>] use <n> digits to display SHA-1s - --candidates <n> consider <n> most recent tags (default: 10) + --all use any ref + --tags use any tag, even unannotated + --long always use long format + --abbrev[=<n>] use <n> digits to display SHA-1s --------------------------------------------- --help-all:: diff --git a/Documentation/githooks.txt b/Documentation/githooks.txt index 8181e4ed2a..dc6693fe48 100644 --- a/Documentation/githooks.txt +++ b/Documentation/githooks.txt @@ -140,9 +140,11 @@ the outcome of 'git commit'. pre-rebase ~~~~~~~~~~ -This hook is called by 'git rebase' and can be used to prevent a branch -from getting rebased. - +This hook is called by 'git rebase' and can be used to prevent a +branch from getting rebased. The hook may be called with one or +two parameters. The first parameter is the upstream from which +the series was forked. The second parameter is the branch being +rebased, and is not set when rebasing the current branch. post-checkout ~~~~~~~~~~~~~ @@ -365,7 +367,7 @@ preceding SP is also omitted. Currently, no commands pass any 'extra-info'. The hook always runs after the automatic note copying (see -"notes.rewrite.<command>" in linkgit:git-config.txt) has happened, and +"notes.rewrite.<command>" in linkgit:git-config.txt[1]) has happened, and thus has access to these notes. The following command-specific comments apply: diff --git a/Documentation/revisions.txt b/Documentation/revisions.txt index 678d1756a5..314e25da73 100644 --- a/Documentation/revisions.txt +++ b/Documentation/revisions.txt @@ -88,10 +88,10 @@ some output processing may assume ref names in UTF-8. The construct '@\{-<n>\}' means the <n>th branch checked out before the current one. -'<refname>@\{upstream\}', e.g. 'master@\{upstream\}', '@\{u\}':: - The suffix '@\{upstream\}' to a ref (short form '<refname>@\{u\}') refers to - the branch the ref is set to build on top of. A missing ref defaults - to the current branch. +'<branchname>@\{upstream\}', e.g. 'master@\{upstream\}', '@\{u\}':: + The suffix '@\{upstream\}' to a branchname (short form '<branchname>@\{u\}') + refers to the branch that the branch specified by branchname is set to build on + top of. A missing branchname defaults to the current one. '<rev>{caret}', e.g. 'HEAD{caret}, v1.5.1{caret}0':: A suffix '{caret}' to a revision parameter means the first parent of diff --git a/Documentation/technical/index-format.txt b/Documentation/technical/index-format.txt index 27c716b15f..0810251f5a 100644 --- a/Documentation/technical/index-format.txt +++ b/Documentation/technical/index-format.txt @@ -12,7 +12,7 @@ Git index format The signature is { 'D', 'I', 'R', 'C' } (stands for "dircache") 4-byte version number: - The current supported versions are 2 and 3. + The current supported versions are 2, 3 and 4. 32-bit number of index entries. @@ -93,8 +93,8 @@ Git index format 12-bit name length if the length is less than 0xFFF; otherwise 0xFFF is stored in this field. - (Version 3) A 16-bit field, only applicable if the "extended flag" - above is 1, split into (high to low bits). + (Version 3 or later) A 16-bit field, only applicable if the + "extended flag" above is 1, split into (high to low bits). 1-bit reserved for future diff --git a/Documentation/user-manual.txt b/Documentation/user-manual.txt index d290632d18..e831cc2020 100644 --- a/Documentation/user-manual.txt +++ b/Documentation/user-manual.txt @@ -19,7 +19,7 @@ Further chapters cover more specialized topics. Comprehensive reference documentation is available through the man pages, or linkgit:git-help[1] command. For example, for the command -"git clone <repo>", you can either use: +`git clone <repo>`, you can either use: ------------------------------------------------ $ man git-clone @@ -66,11 +66,11 @@ $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git The initial clone may be time-consuming for a large project, but you will only need to clone once. -The clone command creates a new directory named after the project ("git" -or "linux-2.6" in the examples above). After you cd into this +The clone command creates a new directory named after the project (`git` +or `linux-2.6` in the examples above). After you cd into this directory, you will see that it contains a copy of the project files, called the <<def_working_tree,working tree>>, together with a special -top-level directory named ".git", which contains all the information +top-level directory named `.git`, which contains all the information about the history of the project. [[how-to-check-out]] @@ -188,7 +188,7 @@ As you can see, a commit shows who made the latest change, what they did, and why. Every commit has a 40-hexdigit id, sometimes called the "object name" or the -"SHA-1 id", shown on the first line of the "git show" output. You can usually +"SHA-1 id", shown on the first line of the `git show` output. You can usually refer to a commit by a shorter name, such as a tag or a branch name, but this longer name can also be useful. Most importantly, it is a globally unique name for this commit: so if you tell somebody else the object name (for @@ -268,35 +268,35 @@ Manipulating branches Creating, deleting, and modifying branches is quick and easy; here's a summary of the commands: -git branch:: +`git branch`:: list all branches -git branch <branch>:: - create a new branch named <branch>, referencing the same +`git branch <branch>`:: + create a new branch named `<branch>`, referencing the same point in history as the current branch -git branch <branch> <start-point>:: - create a new branch named <branch>, referencing - <start-point>, which may be specified any way you like, +`git branch <branch> <start-point>`:: + create a new branch named `<branch>`, referencing + `<start-point>`, which may be specified any way you like, including using a branch name or a tag name -git branch -d <branch>:: - delete the branch <branch>; if the branch you are deleting +`git branch -d <branch>`:: + delete the branch `<branch>`; if the branch you are deleting points to a commit which is not reachable from the current branch, this command will fail with a warning. -git branch -D <branch>:: +`git branch -D <branch>`:: even if the branch points to a commit not reachable from the current branch, you may know that that commit is still reachable from some other branch or tag. In that case it is safe to use this command to force Git to delete the branch. -git checkout <branch>:: - make the current branch <branch>, updating the working - directory to reflect the version referenced by <branch> -git checkout -b <new> <start-point>:: - create a new branch <new> referencing <start-point>, and +`git checkout <branch>`:: + make the current branch `<branch>`, updating the working + directory to reflect the version referenced by `<branch>` +`git checkout -b <new> <start-point>`:: + create a new branch `<new>` referencing `<start-point>`, and check it out. The special symbol "HEAD" can always be used to refer to the current -branch. In fact, Git uses a file named "HEAD" in the .git directory to -remember which branch is current: +branch. In fact, Git uses a file named `HEAD` in the `.git` directory +to remember which branch is current: ------------------------------------------------ $ cat .git/HEAD @@ -346,7 +346,7 @@ of the HEAD in the repository that you cloned from. That repository may also have had other branches, though, and your local repository keeps branches which track each of those remote branches, called remote-tracking branches, which you -can view using the "-r" option to linkgit:git-branch[1]: +can view using the `-r` option to linkgit:git-branch[1]: ------------------------------------------------ $ git branch -r @@ -364,7 +364,7 @@ In this example, "origin" is called a remote repository, or "remote" for short. The branches of this repository are called "remote branches" from our point of view. The remote-tracking branches listed above were created based on the remote branches at clone time and will -be updated by "git fetch" (hence "git pull") and "git push". See +be updated by `git fetch` (hence `git pull`) and `git push`. See <<Updating-a-repository-With-git-fetch>> for details. You might want to build on one of these remote-tracking branches @@ -374,7 +374,7 @@ on a branch of your own, just as you would for a tag: $ git checkout -b my-todo-copy origin/todo ------------------------------------------------ -You can also check out "origin/todo" directly to examine it or +You can also check out `origin/todo` directly to examine it or write a one-off patch. See <<detached-head,detached head>>. Note that the name "origin" is just the name that Git uses by default @@ -386,17 +386,17 @@ Naming branches, tags, and other references Branches, remote-tracking branches, and tags are all references to commits. All references are named with a slash-separated path name -starting with "refs"; the names we've been using so far are actually +starting with `refs`; the names we've been using so far are actually shorthand: - - The branch "test" is short for "refs/heads/test". - - The tag "v2.6.18" is short for "refs/tags/v2.6.18". - - "origin/master" is short for "refs/remotes/origin/master". + - The branch `test` is short for `refs/heads/test`. + - The tag `v2.6.18` is short for `refs/tags/v2.6.18`. + - `origin/master` is short for `refs/remotes/origin/master`. The full name is occasionally useful if, for example, there ever exists a tag and a branch with the same name. -(Newly created refs are actually stored in the .git/refs directory, +(Newly created refs are actually stored in the `.git/refs` directory, under the path given by their name. However, for efficiency reasons they may also be packed together in a single file; see linkgit:git-pack-refs[1]). @@ -418,7 +418,7 @@ Eventually the developer cloned from will do additional work in her repository, creating new commits and advancing the branches to point at the new commits. -The command "git fetch", with no arguments, will update all of the +The command `git fetch`, with no arguments, will update all of the remote-tracking branches to the latest version found in her repository. It will not touch any of your own branches--not even the "master" branch that was created for you on clone. @@ -438,7 +438,7 @@ $ git fetch linux-nfs ------------------------------------------------- New remote-tracking branches will be stored under the shorthand name -that you gave "git remote add", in this case linux-nfs: +that you gave `git remote add`, in this case `linux-nfs`: ------------------------------------------------- $ git branch -r @@ -446,10 +446,10 @@ linux-nfs/master origin/master ------------------------------------------------- -If you run "git fetch <remote>" later, the remote-tracking branches for the -named <remote> will be updated. +If you run `git fetch <remote>` later, the remote-tracking branches +for the named `<remote>` will be updated. -If you examine the file .git/config, you will see that Git has added +If you examine the file `.git/config`, you will see that Git has added a new stanza: ------------------------------------------------- @@ -462,7 +462,7 @@ $ cat .git/config ------------------------------------------------- This is what causes Git to track the remote's branches; you may modify -or delete these configuration options by editing .git/config with a +or delete these configuration options by editing `.git/config` with a text editor. (See the "CONFIGURATION FILE" section of linkgit:git-config[1] for details.) @@ -499,7 +499,7 @@ Bisecting: 3537 revisions left to test after this [65934a9a028b88e83e2b0f8b36618fe503349f8e] BLOCK: Make USB storage depend on SCSI rather than selecting it [try #6] ------------------------------------------------- -If you run "git branch" at this point, you'll see that Git has +If you run `git branch` at this point, you'll see that Git has temporarily moved you in "(no branch)". HEAD is now detached from any branch and points directly to a commit (with commit id 65934...) that is reachable from "master" but not from v2.6.18. Compile and test it, @@ -545,11 +545,11 @@ id, and check it out with: $ git reset --hard fb47ddb2db... ------------------------------------------------- -then test, run "bisect good" or "bisect bad" as appropriate, and +then test, run `bisect good` or `bisect bad` as appropriate, and continue. -Instead of "git bisect visualize" and then "git reset --hard -fb47ddb2db...", you might just want to tell Git that you want to skip +Instead of `git bisect visualize` and then `git reset --hard +fb47ddb2db...`, you might just want to tell Git that you want to skip the current commit: ------------------------------------------------- @@ -561,8 +561,8 @@ bad one between some first skipped commits and a later bad commit. There are also ways to automate the bisecting process if you have a test script that can tell a good from a bad commit. See -linkgit:git-bisect[1] for more information about this and other "git -bisect" features. +linkgit:git-bisect[1] for more information about this and other `git +bisect` features. [[naming-commits]] Naming commits @@ -591,7 +591,7 @@ $ git show HEAD~4 # the great-great-grandparent ------------------------------------------------- Recall that merge commits may have more than one parent; by default, -^ and ~ follow the first parent listed in the commit, but you can +`^` and `~` follow the first parent listed in the commit, but you can also choose: ------------------------------------------------- @@ -640,7 +640,7 @@ running $ git tag stable-1 1b2e1d63ff ------------------------------------------------- -You can use stable-1 to refer to the commit 1b2e1d63ff. +You can use `stable-1` to refer to the commit 1b2e1d63ff. This creates a "lightweight" tag. If you would also like to include a comment with the tag, and possibly sign it cryptographically, then you @@ -669,7 +669,7 @@ $ git log -S'foo()' # commits which add or remove any file data ------------------------------------------------- And of course you can combine all of these; the following finds -commits since v2.5 which touch the Makefile or any file under fs: +commits since v2.5 which touch the `Makefile` or any file under `fs`: ------------------------------------------------- $ git log v2.5.. Makefile fs/ @@ -681,7 +681,7 @@ You can also ask git log to show patches: $ git log -p ------------------------------------------------- -See the "--pretty" option in the linkgit:git-log[1] man page for more +See the `--pretty` option in the linkgit:git-log[1] man page for more display options. Note that git log starts with the most recent commit and works @@ -742,8 +742,8 @@ Examples Counting the number of commits on a branch ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Suppose you want to know how many commits you've made on "mybranch" -since it diverged from "origin": +Suppose you want to know how many commits you've made on `mybranch` +since it diverged from `origin`: ------------------------------------------------- $ git log --pretty=oneline origin..mybranch | wc -l @@ -780,7 +780,7 @@ $ git rev-list master e05db0fd4f31dde7005f075a84f96b360d05984b ------------------------------------------------- -Or you could recall that the ... operator selects all commits +Or you could recall that the `...` operator selects all commits contained reachable from either one reference or the other but not both; so @@ -880,7 +880,7 @@ Showing commits unique to a given branch ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppose you would like to see all the commits reachable from the branch -head named "master" but not from any other head in your repository. +head named `master` but not from any other head in your repository. We can list all the heads in this repository with linkgit:git-show-ref[1]: @@ -894,7 +894,7 @@ a07157ac624b2524a059a3414e99f6f44bebc1e7 refs/heads/master 1e87486ae06626c2f31eaa63d26fc0fd646c8af2 refs/heads/tutorial-fixes ------------------------------------------------- -We can get just the branch-head names, and remove "master", with +We can get just the branch-head names, and remove `master`, with the help of the standard utilities cut and grep: ------------------------------------------------- @@ -939,7 +939,7 @@ is preceded by `project/`. The output file format is inferred from the output file extension if possible, see linkgit:git-archive[1] for details. -Versions of Git older than 1.7.7 don't know about the 'tar.gz' format, +Versions of Git older than 1.7.7 don't know about the `tar.gz` format, you'll need to use gzip explicitly: ------------------------------------------------- @@ -1062,7 +1062,7 @@ at step 3, Git maintains a snapshot of the tree's contents in a special staging area called "the index." At the beginning, the content of the index will be identical to -that of the HEAD. The command "git diff --cached", which shows +that of the HEAD. The command `git diff --cached`, which shows the difference between the HEAD and the index, should therefore produce no output at that point. @@ -1101,7 +1101,7 @@ $ git diff shows the difference between the working tree and the index file. -Note that "git add" always adds just the current contents of a file +Note that `git add` always adds just the current contents of a file to the index; further changes to the same file will be ignored unless you run `git add` on the file again. @@ -1172,8 +1172,9 @@ annoying to have these untracked files lying around; e.g. they make `git add .` practically useless, and they keep showing up in the output of `git status`. -You can tell Git to ignore certain files by creating a file called .gitignore -in the top level of your working directory, with contents such as: +You can tell Git to ignore certain files by creating a file called +`.gitignore` in the top level of your working directory, with contents +such as: ------------------------------------------------- # Lines starting with '#' are considered comments. @@ -1197,10 +1198,10 @@ for other users who clone your repository. If you wish the exclude patterns to affect only certain repositories (instead of every repository for a given project), you may instead put -them in a file in your repository named .git/info/exclude, or in any file -specified by the `core.excludesfile` configuration variable. Some Git -commands can also take exclude patterns directly on the command line. -See linkgit:gitignore[5] for the details. +them in a file in your repository named `.git/info/exclude`, or in any +file specified by the `core.excludesfile` configuration variable. +Some Git commands can also take exclude patterns directly on the +command line. See linkgit:gitignore[5] for the details. [[how-to-merge]] How to merge @@ -1213,10 +1214,10 @@ linkgit:git-merge[1]: $ git merge branchname ------------------------------------------------- -merges the development in the branch "branchname" into the current +merges the development in the branch `branchname` into the current branch. -A merge is made by combining the changes made in "branchname" and the +A merge is made by combining the changes made in `branchname` and the changes made up to the latest commit in your current branch since their histories forked. The work tree is overwritten by the result of the merge when this combining is done cleanly, or overwritten by a @@ -1338,7 +1339,7 @@ that part is not conflicting and is not shown. Same for stage 3). The diff above shows the differences between the working-tree version of file.txt and the stage 2 and stage 3 versions. So instead of preceding -each line by a single "+" or "-", it now uses two columns: the first +each line by a single `+` or `-`, it now uses two columns: the first column is used for differences between the first parent and the working directory copy, and the second for differences between the second parent and the working directory copy. (See the "COMBINED DIFF FORMAT" section @@ -1613,7 +1614,7 @@ dangling tree b24c2473f1fd3d91352a624795be026d64c8841f You will see informational messages on dangling objects. They are objects that still exist in the repository but are no longer referenced by any of -your branches, and can (and will) be removed after a while with "gc". +your branches, and can (and will) be removed after a while with `gc`. You can run `git fsck --no-dangling` to suppress these messages, and still view real errors. @@ -1625,9 +1626,9 @@ Recovering lost changes Reflogs ^^^^^^^ -Say you modify a branch with +linkgit:git-reset[1] \--hard+, and then -realize that the branch was the only reference you had to that point in -history. +Say you modify a branch with <<fixing-mistakes,`git reset --hard`>>, +and then realize that the branch was the only reference you had to +that point in history. Fortunately, Git also keeps a log, called a "reflog", of all the previous values of each branch. So in this case you can still find the @@ -1638,8 +1639,8 @@ $ git log master@{1} ------------------------------------------------- This lists the commits reachable from the previous version of the -"master" branch head. This syntax can be used with any Git command -that accepts a commit, not just with git log. Some other examples: +`master` branch head. This syntax can be used with any Git command +that accepts a commit, not just with `git log`. Some other examples: ------------------------------------------------- $ git show master@{2} # See where the branch pointed 2, @@ -1743,8 +1744,8 @@ one step: $ git pull origin master ------------------------------------------------- -In fact, if you have "master" checked out, then this branch has been -configured by "git clone" to get changes from the HEAD branch of the +In fact, if you have `master` checked out, then this branch has been +configured by `git clone` to get changes from the HEAD branch of the origin repository. So often you can accomplish the above with just a simple @@ -1759,11 +1760,11 @@ the current branch. More generally, a branch that is created from a remote-tracking branch will pull by default from that branch. See the descriptions of the -branch.<name>.remote and branch.<name>.merge options in +`branch.<name>.remote` and `branch.<name>.merge` options in linkgit:git-config[1], and the discussion of the `--track` option in linkgit:git-checkout[1], to learn how to control these defaults. -In addition to saving you keystrokes, "git pull" also helps you by +In addition to saving you keystrokes, `git pull` also helps you by producing a default commit message documenting the branch and repository that you pulled from. @@ -1771,7 +1772,7 @@ repository that you pulled from. <<fast-forwards,fast-forward>>; instead, your branch will just be updated to point to the latest commit from the upstream branch.) -The `git pull` command can also be given "." as the "remote" repository, +The `git pull` command can also be given `.` as the "remote" repository, in which case it just merges in a branch from the current repository; so the commands @@ -1796,7 +1797,7 @@ $ git format-patch origin ------------------------------------------------- will produce a numbered series of files in the current directory, one -for each patch in the current branch but not in origin/HEAD. +for each patch in the current branch but not in `origin/HEAD`. `git format-patch` can include an initial "cover letter". You can insert commentary on individual patches after the three dash line which @@ -1818,7 +1819,7 @@ Importing patches to a project Git also provides a tool called linkgit:git-am[1] (am stands for "apply mailbox"), for importing such an emailed series of patches. Just save all of the patch-containing messages, in order, into a -single mailbox file, say "patches.mbox", then run +single mailbox file, say `patches.mbox`, then run ------------------------------------------------- $ git am -3 patches.mbox @@ -1826,7 +1827,7 @@ $ git am -3 patches.mbox Git will apply each patch in order; if any conflicts are found, it will stop, and you can fix the conflicts as described in -"<<resolving-a-merge,Resolving a merge>>". (The "-3" option tells +"<<resolving-a-merge,Resolving a merge>>". (The `-3` option tells Git to perform a merge; if you would prefer it just to abort and leave your tree and index untouched, you may omit that option.) @@ -1902,7 +1903,7 @@ We explain how to do this in the following sections. Setting up a public repository ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Assume your personal repository is in the directory ~/proj. We +Assume your personal repository is in the directory `~/proj`. We first create a new clone of the repository and tell `git daemon` that it is meant to be public: @@ -1912,10 +1913,10 @@ $ touch proj.git/git-daemon-export-ok ------------------------------------------------- The resulting directory proj.git contains a "bare" git repository--it is -just the contents of the ".git" directory, without any files checked out +just the contents of the `.git` directory, without any files checked out around it. -Next, copy proj.git to the server where you plan to host the +Next, copy `proj.git` to the server where you plan to host the public repository. You can use scp, rsync, or whatever is most convenient. @@ -1926,8 +1927,8 @@ Exporting a Git repository via the Git protocol This is the preferred method. If someone else administers the server, they should tell you what -directory to put the repository in, and what git:// URL it will appear -at. You can then skip to the section +directory to put the repository in, and what `git://` URL it will +appear at. You can then skip to the section "<<pushing-changes-to-a-public-repository,Pushing changes to a public repository>>", below. @@ -1962,7 +1963,7 @@ $ mv hooks/post-update.sample hooks/post-update (For an explanation of the last two lines, see linkgit:git-update-server-info[1] and linkgit:githooks[5].) -Advertise the URL of proj.git. Anybody else should then be able to +Advertise the URL of `proj.git`. Anybody else should then be able to clone or pull from that URL, for example with a command line like: ------------------------------------------------- @@ -1985,8 +1986,8 @@ access, which you will need to update the public repository with the latest changes created in your private repository. The simplest way to do this is using linkgit:git-push[1] and ssh; to -update the remote branch named "master" with the latest state of your -branch named "master", run +update the remote branch named `master` with the latest state of your +branch named `master`, run ------------------------------------------------- $ git push ssh://yourserver.com/~you/proj.git master:master @@ -2002,11 +2003,11 @@ As with `git fetch`, `git push` will complain if this does not result in a <<fast-forwards,fast-forward>>; see the following section for details on handling this case. -Note that the target of a "push" is normally a +Note that the target of a `push` is normally a <<def_bare_repository,bare>> repository. You can also push to a repository that has a checked-out working tree, but a push to update the currently checked-out branch is denied by default to prevent confusion. -See the description ofthe receive.denyCurrentBranch option +See the description of the receive.denyCurrentBranch option in linkgit:git-config[1] for details. As with `git fetch`, you may also set up configuration options to @@ -2030,9 +2031,9 @@ which lets you do the same push with just $ git push public-repo master ------------------------------------------------- -See the explanations of the remote.<name>.url, branch.<name>.remote, -and remote.<name>.push options in linkgit:git-config[1] for -details. +See the explanations of the `remote.<name>.url`, +`branch.<name>.remote`, and `remote.<name>.push` options in +linkgit:git-config[1] for details. [[forcing-push]] What to do when a push fails @@ -2167,7 +2168,7 @@ linkgit:git-fetch[1] to keep them up-to-date; see Now create the branches in which you are going to work; these start out at the current tip of origin/master branch, and should be set up (using -the --track option to linkgit:git-branch[1]) to merge changes in from +the `--track` option to linkgit:git-branch[1]) to merge changes in from Linus by default. ------------------------------------------------- @@ -2186,7 +2187,7 @@ Important note! If you have any local changes in these branches, then this merge will create a commit object in the history (with no local changes Git will simply do a "fast-forward" merge). Many people dislike the "noise" that this creates in the Linux history, so you should avoid -doing this capriciously in the "release" branch, as these noisy commits +doing this capriciously in the `release` branch, as these noisy commits will become part of the permanent history when you ask Linus to pull from the release branch. @@ -2228,7 +2229,7 @@ patches), and create a new branch from a recent stable tag of Linus's branch. Picking a stable base for your branch will: 1) help you: by avoiding inclusion of unrelated and perhaps lightly tested changes -2) help future bug hunters that use "git bisect" to find problems +2) help future bug hunters that use `git bisect` to find problems ------------------------------------------------- $ git checkout -b speed-up-spinlocks v2.6.35 @@ -2253,9 +2254,9 @@ It is unlikely that you would have any conflicts here ... but you might if you spent a while on this step and had also pulled new versions from upstream. Some time later when enough time has passed and testing done, you can pull the -same branch into the "release" tree ready to go upstream. This is where you +same branch into the `release` tree ready to go upstream. This is where you see the value of keeping each patch (or patch series) in its own branch. It -means that the patches can be moved into the "release" tree in any order. +means that the patches can be moved into the `release` tree in any order. ------------------------------------------------- $ git checkout release && git pull . speed-up-spinlocks @@ -2288,7 +2289,7 @@ If it has been merged, then there will be no output.) Once a patch completes the great cycle (moving from test to release, then pulled by Linus, and finally coming back into your local -"origin/master" branch), the branch for this change is no longer needed. +`origin/master` branch), the branch for this change is no longer needed. You detect this when the output from: ------------------------------------------------- @@ -2303,20 +2304,16 @@ $ git branch -d branchname Some changes are so trivial that it is not necessary to create a separate branch and then merge into each of the test and release branches. For -these changes, just apply directly to the "release" branch, and then -merge that into the "test" branch. +these changes, just apply directly to the `release` branch, and then +merge that into the `test` branch. -To create diffstat and shortlog summaries of changes to include in a "please -pull" request to Linus you can use: +After pushing your work to `mytree`, you can use +linkgit:git-request-pull[1] to prepare a "please pull" request message +to send to Linus: ------------------------------------------------- -$ git diff --stat origin..release -------------------------------------------------- - -and - -------------------------------------------------- -$ git log -p origin..release | git shortlog +$ git push mytree +$ git request-pull origin mytree release ------------------------------------------------- Here are some of the scripts that simplify all this even further. @@ -2479,8 +2476,8 @@ you are rewriting history. Keeping a patch series up to date using git rebase -------------------------------------------------- -Suppose that you create a branch "mywork" on a remote-tracking branch -"origin", and create some commits on top of it: +Suppose that you create a branch `mywork` on a remote-tracking branch +`origin`, and create some commits on top of it: ------------------------------------------------- $ git checkout -b mywork origin @@ -2492,7 +2489,7 @@ $ git commit ------------------------------------------------- You have performed no merges into mywork, so it is just a simple linear -sequence of patches on top of "origin": +sequence of patches on top of `origin`: ................................................ o--o--O <-- origin @@ -2501,7 +2498,7 @@ sequence of patches on top of "origin": ................................................ Some more interesting work has been done in the upstream project, and -"origin" has advanced: +`origin` has advanced: ................................................ o--o--O--o--o--o <-- origin @@ -2509,7 +2506,7 @@ Some more interesting work has been done in the upstream project, and a--b--c <-- mywork ................................................ -At this point, you could use "pull" to merge your changes back in; +At this point, you could use `pull` to merge your changes back in; the result would create a new merge commit, like this: ................................................ @@ -2528,7 +2525,7 @@ $ git rebase origin ------------------------------------------------- This will remove each of your commits from mywork, temporarily saving -them as patches (in a directory named ".git/rebase-apply"), update mywork to +them as patches (in a directory named `.git/rebase-apply`), update mywork to point at the latest version of origin, then apply each of the saved patches to the new mywork. The result will look like: @@ -2557,6 +2554,12 @@ return mywork to the state it had before you started the rebase: $ git rebase --abort ------------------------------------------------- +If you need to reorder or edit a number of commits in a branch, it may +be easier to use `git rebase -i`, which allows you to reorder and +squash commits, as well as marking them for individual editing during +the rebase. See <<interactive-rebase>> for details, and +<<reordering-patch-series>> for alternatives. + [[rewriting-one-commit]] Rewriting a single commit ------------------------- @@ -2570,72 +2573,89 @@ $ git commit --amend which will replace the old commit by a new commit incorporating your changes, giving you a chance to edit the old commit message first. +This is useful for fixing typos in your last commit, or for adjusting +the patch contents of a poorly staged commit. -You can also use a combination of this and linkgit:git-rebase[1] to -replace a commit further back in your history and recreate the -intervening changes on top of it. First, tag the problematic commit -with +If you need to amend commits from deeper in your history, you can +use <<interactive-rebase,interactive rebase's `edit` instruction>>. -------------------------------------------------- -$ git tag bad mywork~5 -------------------------------------------------- - -(Either gitk or `git log` may be useful for finding the commit.) +[[reordering-patch-series]] +Reordering or selecting from a patch series +------------------------------------------- -Then check out that commit, edit it, and rebase the rest of the series -on top of it (note that we could check out the commit on a temporary -branch, but instead we're using a <<detached-head,detached head>>): +Sometimes you want to edit a commit deeper in your history. One +approach is to use `git format-patch` to create a series of patches +and then reset the state to before the patches: ------------------------------------------------- -$ git checkout bad -$ # make changes here and update the index -$ git commit --amend -$ git rebase --onto HEAD bad mywork +$ git format-patch origin +$ git reset --hard origin ------------------------------------------------- -When you're done, you'll be left with mywork checked out, with the top -patches on mywork reapplied on top of your modified commit. You can -then clean up with +Then modify, reorder, or eliminate patches as needed before applying +them again with linkgit:git-am[1]: ------------------------------------------------- -$ git tag -d bad +$ git am *.patch ------------------------------------------------- -Note that the immutable nature of Git history means that you haven't really -"modified" existing commits; instead, you have replaced the old commits with -new commits having new object names. +[[interactive-rebase]] +Using interactive rebases +------------------------- -[[reordering-patch-series]] -Reordering or selecting from a patch series -------------------------------------------- +You can also edit a patch series with an interactive rebase. This is +the same as <<reordering-patch-series,reordering a patch series using +`format-patch`>>, so use whichever interface you like best. -Given one existing commit, the linkgit:git-cherry-pick[1] command -allows you to apply the change introduced by that commit and create a -new commit that records it. So, for example, if "mywork" points to a -series of patches on top of "origin", you might do something like: +Rebase your current HEAD on the last commit you want to retain as-is. +For example, if you want to reorder the last 5 commits, use: ------------------------------------------------- -$ git checkout -b mywork-new origin -$ gitk origin..mywork & +$ git rebase -i HEAD~5 ------------------------------------------------- -and browse through the list of patches in the mywork branch using gitk, -applying them (possibly in a different order) to mywork-new using -cherry-pick, and possibly modifying them as you go using `git commit --amend`. -The linkgit:git-gui[1] command may also help as it allows you to -individually select diff hunks for inclusion in the index (by -right-clicking on the diff hunk and choosing "Stage Hunk for Commit"). - -Another technique is to use `git format-patch` to create a series of -patches, then reset the state to before the patches: +This will open your editor with a list of steps to be taken to perform +your rebase. ------------------------------------------------- -$ git format-patch origin -$ git reset --hard origin -------------------------------------------------- +pick deadbee The oneline of this commit +pick fa1afe1 The oneline of the next commit +... -Then modify, reorder, or eliminate patches as preferred before applying -them again with linkgit:git-am[1]. +# Rebase c0ffeee..deadbee onto c0ffeee +# +# Commands: +# p, pick = use commit +# r, reword = use commit, but edit the commit message +# e, edit = use commit, but stop for amending +# s, squash = use commit, but meld into previous commit +# f, fixup = like "squash", but discard this commit's log message +# x, exec = run command (the rest of the line) using shell +# +# These lines can be re-ordered; they are executed from top to bottom. +# +# If you remove a line here THAT COMMIT WILL BE LOST. +# +# However, if you remove everything, the rebase will be aborted. +# +# Note that empty commits are commented out +------------------------------------------------- + +As explained in the comments, you can reorder commits, squash them +together, edit commit messages, etc. by editing the list. Once you +are satisfied, save the list and close your editor, and the rebase +will begin. + +The rebase will stop where `pick` has been replaced with `edit` or +when a step in the list fails to mechanically resolve conflicts and +needs your help. When you are done editing and/or resolving conflicts +you can continue with `git rebase --continue`. If you decide that +things are getting too hairy, you can always bail out with `git rebase +--abort`. Even after the rebase is complete, you can still recover +the original branch by using the <<reflogs,reflog>>. + +For a more detailed discussion of the procedure and additional tips, +see the "INTERACTIVE MODE" section of linkgit:git-rebase[1]. [[patch-series-tools]] Other tools @@ -2776,10 +2796,10 @@ arbitrary name: $ git fetch origin todo:my-todo-work ------------------------------------------------- -The first argument, "origin", just tells Git to fetch from the +The first argument, `origin`, just tells Git to fetch from the repository you originally cloned from. The second argument tells Git -to fetch the branch named "todo" from the remote repository, and to -store it locally under the name refs/heads/my-todo-work. +to fetch the branch named `todo` from the remote repository, and to +store it locally under the name `refs/heads/my-todo-work`. You can also fetch branches from other repositories; so @@ -2787,8 +2807,8 @@ You can also fetch branches from other repositories; so $ git fetch git://example.com/proj.git master:example-master ------------------------------------------------- -will create a new branch named "example-master" and store in it the -branch named "master" from the repository at the given URL. If you +will create a new branch named `example-master` and store in it the +branch named `master` from the repository at the given URL. If you already have a branch named example-master, it will attempt to <<fast-forwards,fast-forward>> to the commit given by example.com's master branch. In more detail: @@ -2797,7 +2817,7 @@ master branch. In more detail: git fetch and fast-forwards --------------------------- -In the previous example, when updating an existing branch, "git fetch" +In the previous example, when updating an existing branch, `git fetch` checks to make sure that the most recent commit on the remote branch is a descendant of the most recent commit on your copy of the branch before updating your copy of the branch to point at the new @@ -2823,11 +2843,11 @@ resulting in a situation like: o--o--o <-- new head of the branch ................................................ -In this case, "git fetch" will fail, and print out a warning. +In this case, `git fetch` will fail, and print out a warning. In that case, you can still force Git to update to the new head, as described in the following section. However, note that in the -situation above this may mean losing the commits labeled "a" and "b", +situation above this may mean losing the commits labeled `a` and `b`, unless you've already created a reference of your own pointing to them. @@ -2842,7 +2862,7 @@ descendant of the old head, you may force the update with: $ git fetch git://example.com/proj.git +master:refs/remotes/example/master ------------------------------------------------- -Note the addition of the "+" sign. Alternatively, you can use the "-f" +Note the addition of the `+` sign. Alternatively, you can use the `-f` flag to force updates of all the fetched branches, as in: ------------------------------------------------- @@ -2856,7 +2876,7 @@ may be lost, as we saw in the previous section. Configuring remote-tracking branches ------------------------------------ -We saw above that "origin" is just a shortcut to refer to the +We saw above that `origin` is just a shortcut to refer to the repository that you originally cloned from. This information is stored in Git configuration variables, which you can see using linkgit:git-config[1]: @@ -2965,7 +2985,7 @@ Commit Object ~~~~~~~~~~~~~ The "commit" object links a physical state of a tree with a description -of how we got there and why. Use the --pretty=raw option to +of how we got there and why. Use the `--pretty=raw` option to linkgit:git-show[1] or linkgit:git-log[1] to examine your favorite commit: @@ -3007,7 +3027,7 @@ of the tree referred to by this commit with the trees associated with its parents. In particular, Git does not attempt to record file renames explicitly, though it can identify cases where the existence of the same file data at changing paths suggests a rename. (See, for example, the --M option to linkgit:git-diff[1]). +`-M` option to linkgit:git-diff[1]). A commit is usually created by linkgit:git-commit[1], which creates a commit whose parent is normally the current HEAD, and whose tree is @@ -3058,7 +3078,7 @@ Blob Object ~~~~~~~~~~~ You can use linkgit:git-show[1] to examine the contents of a blob; take, -for example, the blob in the entry for "COPYING" from the tree above: +for example, the blob in the entry for `COPYING` from the tree above: ------------------------------------------------ $ git show 6ff87c4664 @@ -3141,14 +3161,14 @@ nLE/L9aUXdWeTFPron96DLA= See the linkgit:git-tag[1] command to learn how to create and verify tag objects. (Note that linkgit:git-tag[1] can also be used to create "lightweight tags", which are not tag objects at all, but just simple -references whose names begin with "refs/tags/"). +references whose names begin with `refs/tags/`). [[pack-files]] How Git stores objects efficiently: pack files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Newly created objects are initially created in a file named after the -object's SHA-1 hash (stored in .git/objects). +object's SHA-1 hash (stored in `.git/objects`). Unfortunately this system becomes inefficient once a project has a lot of objects. Try this on an old project: @@ -3189,9 +3209,9 @@ $ git prune to remove any of the "loose" objects that are now contained in the pack. This will also remove any unreferenced objects (which may be -created when, for example, you use "git reset" to remove a commit). +created when, for example, you use `git reset` to remove a commit). You can verify that the loose objects are gone by looking at the -.git/objects directory or by running +`.git/objects` directory or by running ------------------------------------------------ $ git count-objects @@ -3218,7 +3238,7 @@ branch still exists, as does everything it pointed to. The branch pointer itself just doesn't, since you replaced it with another one. There are also other situations that cause dangling objects. For -example, a "dangling blob" may arise because you did a "git add" of a +example, a "dangling blob" may arise because you did a `git add` of a file, but then, before you actually committed it and made it part of the bigger picture, you changed something else in that file and committed that *updated* thing--the old state that you added originally ends up @@ -3261,14 +3281,14 @@ $ git show <dangling-blob/tree-sha-goes-here> ------------------------------------------------ to show what the contents of the blob were (or, for a tree, basically -what the "ls" for that directory was), and that may give you some idea +what the `ls` for that directory was), and that may give you some idea of what the operation was that left that dangling object. Usually, dangling blobs and trees aren't very interesting. They're almost always the result of either being a half-way mergebase (the blob will often even have the conflict markers from a merge in it, if you have had conflicting merges that you fixed up by hand), or simply -because you interrupted a "git fetch" with ^C or something like that, +because you interrupted a `git fetch` with ^C or something like that, leaving _some_ of the new objects in the object database, but just dangling and useless. @@ -3279,16 +3299,16 @@ state, you can just prune all unreachable objects: $ git prune ------------------------------------------------ -and they'll be gone. But you should only run "git prune" on a quiescent +and they'll be gone. But you should only run `git prune` on a quiescent repository--it's kind of like doing a filesystem fsck recovery: you don't want to do that while the filesystem is mounted. -(The same is true of "git fsck" itself, btw, but since +(The same is true of `git fsck` itself, btw, but since `git fsck` never actually *changes* the repository, it just reports on what it found, `git fsck` itself is never 'dangerous' to run. Running it while somebody is actually changing the repository can cause confusing and scary messages, but it won't actually do anything bad. In -contrast, running "git prune" while somebody is actively changing the +contrast, running `git prune` while somebody is actively changing the repository is a *BAD* idea). [[recovering-from-repository-corruption]] @@ -3326,7 +3346,7 @@ missing blob 4b9458b3786228369c63936db65827de3cc06200 Now you know that blob 4b9458b3 is missing, and that the tree 2d9263c6 points to it. If you could find just one copy of that missing blob object, possibly in some other repository, you could move it into -.git/objects/4b/9458b3... and be done. Suppose you can't. You can +`.git/objects/4b/9458b3...` and be done. Suppose you can't. You can still examine the tree that pointed to it with linkgit:git-ls-tree[1], which might output something like: @@ -3341,10 +3361,10 @@ $ git ls-tree 2d9263c6d23595e7cb2a21e5ebbb53655278dff8 ------------------------------------------------ So now you know that the missing blob was the data for a file named -"myfile". And chances are you can also identify the directory--let's -say it's in "somedirectory". If you're lucky the missing copy might be +`myfile`. And chances are you can also identify the directory--let's +say it's in `somedirectory`. If you're lucky the missing copy might be the same as the copy you have checked out in your working tree at -"somedirectory/myfile"; you can test whether that's right with +`somedirectory/myfile`; you can test whether that's right with linkgit:git-hash-object[1]: ------------------------------------------------ @@ -3399,7 +3419,7 @@ $ git hash-object -w <recreated-file> and your repository is good again! -(Btw, you could have ignored the fsck, and started with doing a +(Btw, you could have ignored the `fsck`, and started with doing a ------------------------------------------------ $ git log --raw --all @@ -3413,7 +3433,7 @@ just missing one particular blob version. The index ----------- -The index is a binary file (generally kept in .git/index) containing a +The index is a binary file (generally kept in `.git/index`) containing a sorted list of path names, each with permissions and the SHA-1 of a blob object; linkgit:git-ls-files[1] can show you the contents of the index: @@ -3553,7 +3573,7 @@ $ ls -a The `git submodule add <repo> <path>` command does a couple of things: -- It clones the submodule from <repo> to the given <path> under the +- It clones the submodule from `<repo>` to the given `<path>` under the current directory and by default checks out the master branch. - It adds the submodule's clone path to the linkgit:gitmodules[5] file and adds this file to the index, ready to be committed. @@ -3681,11 +3701,11 @@ Unable to checkout '261dfac35cb99d380eb966e102c1197139f7fa24' in submodule path In older Git versions it could be easily forgotten to commit new or modified files in a submodule, which silently leads to similar problems as not pushing -the submodule changes. Starting with Git 1.7.0 both "git status" and "git diff" +the submodule changes. Starting with Git 1.7.0 both `git status` and `git diff` in the superproject show submodules as modified when they contain new or -modified files to protect against accidentally committing such a state. "git -diff" will also add a "-dirty" to the work tree side when generating patch -output or used with the --submodule option: +modified files to protect against accidentally committing such a state. `git +diff` will also add a `-dirty` to the work tree side when generating patch +output or used with the `--submodule` option: ------------------------------------------------- $ git diff @@ -3721,7 +3741,9 @@ module a NOTE: The changes are still visible in the submodule's reflog. -This is not the case if you did not commit your changes. +If you have uncommitted changes in your submodule working tree, `git +submodule update` will not overwrite them. Instead, you get the usual +warning about not being able switch from a dirty branch. [[low-level-operations]] Low-level Git operations @@ -3859,7 +3881,7 @@ or, if you want to check out all of the index, use `-a`. NOTE! `git checkout-index` normally refuses to overwrite old files, so if you have an old version of the tree already checked out, you will -need to use the "-f" flag ('before' the "-a" flag or the filename) to +need to use the `-f` flag ('before' the `-a` flag or the filename) to 'force' the checkout. @@ -3870,7 +3892,7 @@ from one representation to the other: Tying it all together ~~~~~~~~~~~~~~~~~~~~~ -To commit a tree you have instantiated with "git write-tree", you'd +To commit a tree you have instantiated with `git write-tree`, you'd create a "commit" object that refers to that tree and the history behind it--most notably the "parent" commits that preceded it in history. @@ -4131,8 +4153,9 @@ As a result, the general consistency of an object can always be tested independently of the contents or the type of the object: all objects can be validated by verifying that (a) their hashes match the content of the file and (b) the object successfully inflates to a stream of bytes that -forms a sequence of <ascii type without space> {plus} <space> {plus} <ascii decimal -size> {plus} <byte\0> {plus} <binary object data>. +forms a sequence of +`<ascii type without space> + <space> + <ascii decimal size> + +<byte\0> + <binary object data>`. The structured objects can further have their structure and connectivity to other objects verified. This is generally done with @@ -4611,10 +4634,10 @@ Think about how to create a clear chapter dependency graph that will allow people to get to important topics without necessarily reading everything in between. -Scan Documentation/ for other stuff left out; in particular: +Scan `Documentation/` for other stuff left out; in particular: - howto's -- some of technical/? +- some of `technical/`? - hooks - list of commands in linkgit:git[1] diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN index 4448c35bd0..f189b7889e 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -1,7 +1,7 @@ #!/bin/sh GVF=GIT-VERSION-FILE -DEF_VER=v1.8.2-rc0 +DEF_VER=v1.8.2 LF=' ' @@ -101,8 +101,6 @@ all:: # # Define NO_MKSTEMPS if you don't have mkstemps in the C library. # -# Define NO_STRTOK_R if you don't have strtok_r in the C library. -# # Define NO_FNMATCH if you don't have fnmatch in the C library. # # Define NO_FNMATCH_CASEFOLD if your fnmatch function doesn't have the @@ -619,22 +617,6 @@ LIB_FILE = libgit.a XDIFF_LIB = xdiff/lib.a VCSSVN_LIB = vcs-svn/lib.a -LIB_H += xdiff/xinclude.h -LIB_H += xdiff/xmacros.h -LIB_H += xdiff/xdiff.h -LIB_H += xdiff/xtypes.h -LIB_H += xdiff/xutils.h -LIB_H += xdiff/xprepare.h -LIB_H += xdiff/xdiffi.h -LIB_H += xdiff/xemit.h - -LIB_H += vcs-svn/line_buffer.h -LIB_H += vcs-svn/sliding_window.h -LIB_H += vcs-svn/repo_tree.h -LIB_H += vcs-svn/fast_export.h -LIB_H += vcs-svn/svndiff.h -LIB_H += vcs-svn/svndump.h - GENERATED_H += common-cmds.h LIB_H += advice.h @@ -736,11 +718,24 @@ LIB_H += url.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_OBJS += abspath.o LIB_OBJS += advice.o @@ -1249,10 +1244,6 @@ endif ifdef NO_STRTOULL COMPAT_CFLAGS += -DNO_STRTOULL endif -ifdef NO_STRTOK_R - COMPAT_CFLAGS += -DNO_STRTOK_R - COMPAT_OBJS += compat/strtok_r.o -endif ifdef NO_FNMATCH COMPAT_CFLAGS += -Icompat/fnmatch COMPAT_CFLAGS += -DNO_FNMATCH @@ -1821,12 +1812,14 @@ $(patsubst %.py,%,$(SCRIPT_PYTHON)): % : unimplemented.sh mv $@+ $@ endif # NO_PYTHON +CONFIGURE_RECIPE = $(RM) configure configure.ac+ && \ + sed -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \ + configure.ac >configure.ac+ && \ + autoconf -o configure configure.ac+ && \ + $(RM) configure.ac+ + configure: configure.ac GIT-VERSION-FILE - $(QUIET_GEN)$(RM) $@ $<+ && \ - sed -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \ - $< > $<+ && \ - autoconf -o $@ $<+ && \ - $(RM) $<+ + $(QUIET_GEN)$(CONFIGURE_RECIPE) ifdef AUTOCONFIGURED # We avoid depending on 'configure' here, because it gets rebuilt @@ -1835,7 +1828,7 @@ ifdef AUTOCONFIGURED # do want to recheck when the platform/environment detection logic # changes, hence this depends on configure.ac. config.status: configure.ac - $(QUIET_GEN)$(MAKE) configure && \ + $(QUIET_GEN)$(CONFIGURE_RECIPE) && \ if test -f config.status; then \ ./config.status --recheck; \ else \ @@ -1 +1 @@ -Documentation/RelNotes/1.8.2.txt
\ No newline at end of file +Documentation/RelNotes/1.8.2.1.txt
\ No newline at end of file diff --git a/archive-zip.c b/archive-zip.c index d3aef532b7..a8d119305f 100644 --- a/archive-zip.c +++ b/archive-zip.c @@ -240,7 +240,6 @@ static int write_zip_entry(struct archiver_args *args, (mode & 0111) ? ((mode) << 16) : 0; if (S_ISREG(mode) && args->compression_level != 0 && size > 0) method = 8; - compressed_size = (method == 0) ? size : 0; if (S_ISREG(mode) && type == OBJ_BLOB && !args->convert && size > big_file_threshold) { @@ -259,6 +258,7 @@ static int write_zip_entry(struct archiver_args *args, crc = crc32(crc, buffer, size); out = buffer; } + compressed_size = (method == 0) ? size : 0; } else { return error("unsupported file mode: 0%o (SHA1: %s)", mode, sha1_to_hex(sha1)); @@ -255,9 +255,11 @@ static struct match_attr *parse_attr_line(const char *line, const char *src, &res->u.pat.patternlen, &res->u.pat.flags, &res->u.pat.nowildcardlen); - if (res->u.pat.flags & EXC_FLAG_NEGATIVE) - die(_("Negative patterns are forbidden in git attributes\n" - "Use '\\!' for literal leading exclamation.")); + if (res->u.pat.flags & EXC_FLAG_NEGATIVE) { + warning(_("Negative patterns are ignored in git attributes\n" + "Use '\\!' for literal leading exclamation.")); + return NULL; + } } res->is_macro = is_macro; res->num_attr = num_attr; diff --git a/builtin/add.c b/builtin/add.c index 0dd014eb96..ab1c9e8fb7 100644 --- a/builtin/add.c +++ b/builtin/add.c @@ -328,9 +328,9 @@ static void warn_pathless_add(const char *option_name, const char *short_name) { * this is not the original behavior and can't be * changed until users trained themselves not to type * "git add -u" or "git add -A". For now, we warn and - * keep the old behavior. Later, this warning can be - * turned into a die(...), and eventually we may - * reallow the command with a new behavior. + * keep the old behavior. Later, the behavior can be changed + * to tree-wide, keeping the warning for a while, and + * eventually we can drop the warning. */ warning(_("The behavior of 'git add %s (or %s)' with no path argument from a\n" "subdirectory of the tree will change in Git 2.0 and should not be used anymore.\n" diff --git a/builtin/branch.c b/builtin/branch.c index 6371bf96c4..00d17d25d1 100644 --- a/builtin/branch.c +++ b/builtin/branch.c @@ -889,6 +889,17 @@ int cmd_branch(int argc, const char **argv, const char *prefix) } else if (new_upstream) { struct branch *branch = branch_get(argv[0]); + if (argc > 1) + die(_("too many branches to set new upstream")); + + if (!branch) { + if (!argc || !strcmp(argv[0], "HEAD")) + die(_("could not set upstream of HEAD to %s when " + "it does not point to any branch."), + new_upstream); + die(_("no such branch '%s'"), argv[0]); + } + if (!ref_exists(branch->refname)) die(_("branch '%s' does not exist"), branch->name); @@ -901,6 +912,16 @@ int cmd_branch(int argc, const char **argv, const char *prefix) struct branch *branch = branch_get(argv[0]); struct strbuf buf = STRBUF_INIT; + if (argc > 1) + die(_("too many branches to unset upstream")); + + if (!branch) { + if (!argc || !strcmp(argv[0], "HEAD")) + die(_("could not unset upstream of HEAD when " + "it does not point to any branch.")); + die(_("no such branch '%s'"), argv[0]); + } + if (!branch_has_merge_config(branch)) { die(_("Branch '%s' has no upstream information"), branch->name); } @@ -916,6 +937,12 @@ int cmd_branch(int argc, const char **argv, const char *prefix) int branch_existed = 0, remote_tracking = 0; struct strbuf buf = STRBUF_INIT; + if (!strcmp(argv[0], "HEAD")) + die(_("it does not make sense to create 'HEAD' manually")); + + if (!branch) + die(_("no such branch '%s'"), argv[0]); + if (kinds != REF_LOCAL_BRANCH) die(_("-a and -r options to 'git branch' do not make sense with a branch name")); diff --git a/builtin/cat-file.c b/builtin/cat-file.c index 00528ddc38..40f87b4649 100644 --- a/builtin/cat-file.c +++ b/builtin/cat-file.c @@ -193,7 +193,7 @@ static int batch_one_object(const char *obj_name, int print_contents) unsigned char sha1[20]; enum object_type type = 0; unsigned long size; - void *contents = contents; + void *contents = NULL; if (!obj_name) return 1; diff --git a/builtin/check-ignore.c b/builtin/check-ignore.c index 709535ce09..0240f99b57 100644 --- a/builtin/check-ignore.c +++ b/builtin/check-ignore.c @@ -89,7 +89,7 @@ static int check_ignore(const char *prefix, const char **pathspec) ? strlen(prefix) : 0, path); full_path = check_path_for_gitlink(full_path); die_if_path_beyond_symlink(full_path, prefix); - if (!seen[i] && path[0]) { + if (!seen[i]) { exclude = last_exclude_matching_path(&check, full_path, -1, &dtype); if (exclude) { diff --git a/builtin/describe.c b/builtin/describe.c index 04c185b1fb..ca084c675e 100644 --- a/builtin/describe.c +++ b/builtin/describe.c @@ -402,8 +402,8 @@ int cmd_describe(int argc, const char **argv, const char *prefix) struct option options[] = { OPT_BOOLEAN(0, "contains", &contains, N_("find the tag that comes after the commit")), OPT_BOOLEAN(0, "debug", &debug, N_("debug search strategy on stderr")), - OPT_BOOLEAN(0, "all", &all, N_("use any ref in .git/refs")), - OPT_BOOLEAN(0, "tags", &tags, N_("use any tag in .git/refs/tags")), + OPT_BOOLEAN(0, "all", &all, N_("use any ref")), + OPT_BOOLEAN(0, "tags", &tags, N_("use any tag, even unannotated")), OPT_BOOLEAN(0, "long", &longformat, N_("always use long format")), OPT__ABBREV(&abbrev), OPT_SET_INT(0, "exact-match", &max_candidates, diff --git a/builtin/index-pack.c b/builtin/index-pack.c index 43d364b8d5..ef62124aa4 100644 --- a/builtin/index-pack.c +++ b/builtin/index-pack.c @@ -1099,7 +1099,7 @@ static void conclude_pack(int fix_thin_pack, const char *curr_pack, unsigned cha if (fix_thin_pack) { struct sha1file *f; unsigned char read_sha1[20], tail_sha1[20]; - char msg[48]; + struct strbuf msg = STRBUF_INIT; int nr_unresolved = nr_deltas - nr_resolved_deltas; int nr_objects_initial = nr_objects; if (nr_unresolved <= 0) @@ -1109,9 +1109,10 @@ static void conclude_pack(int fix_thin_pack, const char *curr_pack, unsigned cha * sizeof(*objects)); f = sha1fd(output_fd, curr_pack); fix_unresolved_deltas(f, nr_unresolved); - sprintf(msg, _("completed with %d local objects"), - nr_objects - nr_objects_initial); - stop_progress_msg(&progress, msg); + strbuf_addf(&msg, _("completed with %d local objects"), + nr_objects - nr_objects_initial); + stop_progress_msg(&progress, msg.buf); + strbuf_release(&msg); sha1close(f, tail_sha1, 0); hashcpy(read_sha1, pack_sha1); fixup_pack_header_footer(output_fd, pack_sha1, diff --git a/builtin/mailsplit.c b/builtin/mailsplit.c index 2d4327801e..06296d4bdf 100644 --- a/builtin/mailsplit.c +++ b/builtin/mailsplit.c @@ -130,6 +130,27 @@ static int populate_maildir_list(struct string_list *list, const char *path) return 0; } +static int maildir_filename_cmp(const char *a, const char *b) +{ + while (*a && *b) { + if (isdigit(*a) && isdigit(*b)) { + long int na, nb; + na = strtol(a, (char **)&a, 10); + nb = strtol(b, (char **)&b, 10); + if (na != nb) + return na - nb; + /* strtol advanced our pointers */ + } + else { + if (*a != *b) + return (unsigned char)*a - (unsigned char)*b; + a++; + b++; + } + } + return (unsigned char)*a - (unsigned char)*b; +} + static int split_maildir(const char *maildir, const char *dir, int nr_prec, int skip) { @@ -139,6 +160,8 @@ static int split_maildir(const char *maildir, const char *dir, int i; struct string_list list = STRING_LIST_INIT_DUP; + list.cmp = maildir_filename_cmp; + if (populate_maildir_list(&list, maildir) < 0) goto out; diff --git a/builtin/merge-tree.c b/builtin/merge-tree.c index e0d0b7d28b..bc912e399e 100644 --- a/builtin/merge-tree.c +++ b/builtin/merge-tree.c @@ -245,7 +245,7 @@ static void unresolved(const struct traverse_info *info, struct name_entry n[3]) unsigned dirmask = 0, mask = 0; for (i = 0; i < 3; i++) { - mask |= (1 << 1); + mask |= (1 << i); if (n[i].mode && S_ISDIR(n[i].mode)) dirmask |= (1 << i); } diff --git a/builtin/reflog.c b/builtin/reflog.c index 1fedf66329..72a0af70c3 100644 --- a/builtin/reflog.c +++ b/builtin/reflog.c @@ -414,7 +414,7 @@ static int expire_reflog(const char *ref, const unsigned char *sha1, int unused, if (cb.unreachable_expire_kind == UE_HEAD) { struct commit_list *elem; for (elem = tips; elem; elem = elem->next) - clear_commit_marks(tip_commit, REACHABLE); + clear_commit_marks(elem->item, REACHABLE); free_commit_list(tips); } else { clear_commit_marks(tip_commit, REACHABLE); diff --git a/builtin/update-index.c b/builtin/update-index.c index ada1dff846..5c7762eef4 100644 --- a/builtin/update-index.c +++ b/builtin/update-index.c @@ -796,7 +796,7 @@ int cmd_update_index(int argc, const char **argv, const char *prefix) }; if (argc == 2 && !strcmp(argv[1], "-h")) - usage(update_index_usage[0]); + usage_with_options(update_index_usage, options); git_config(git_default_config, NULL); @@ -183,17 +183,17 @@ int verify_bundle(struct bundle_header *header, int verbose) struct ref_list *r; r = &header->references; - printf_ln(Q_("The bundle contains %d ref", - "The bundle contains %d refs", + printf_ln(Q_("The bundle contains this ref:", + "The bundle contains these %d refs:", r->nr), r->nr); list_refs(r, 0, NULL); + r = &header->prerequisites; if (!r->nr) { printf_ln(_("The bundle records a complete history.")); } else { - r = &header->prerequisites; - printf_ln(Q_("The bundle requires this ref", - "The bundle requires these %d refs", + printf_ln(Q_("The bundle requires this ref:", + "The bundle requires these %d refs:", r->nr), r->nr); list_refs(r, 0, NULL); diff --git a/compat/strtok_r.c b/compat/strtok_r.c deleted file mode 100644 index 7b5d568a96..0000000000 --- a/compat/strtok_r.c +++ /dev/null @@ -1,61 +0,0 @@ -/* Reentrant string tokenizer. Generic version. - Copyright (C) 1991,1996-1999,2001,2004 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include "../git-compat-util.h" - -/* Parse S into tokens separated by characters in DELIM. - If S is NULL, the saved pointer in SAVE_PTR is used as - the next starting point. For example: - char s[] = "-abc-=-def"; - char *sp; - x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def" - x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL - x = strtok_r(NULL, "=", &sp); // x = NULL - // s = "abc\0-def\0" -*/ -char * -gitstrtok_r (char *s, const char *delim, char **save_ptr) -{ - char *token; - - if (s == NULL) - s = *save_ptr; - - /* Scan leading delimiters. */ - s += strspn (s, delim); - if (*s == '\0') - { - *save_ptr = s; - return NULL; - } - - /* Find the end of the token. */ - token = s; - s = strpbrk (token, delim); - if (s == NULL) - /* This token finishes the string. */ - *save_ptr = token + strlen (token); - else - { - /* Terminate the token and make *SAVE_PTR point past it. */ - *s = '\0'; - *save_ptr = s + 1; - } - return token; -} diff --git a/config.mak.in b/config.mak.in index d7c49cd8f3..fa02bdd82a 100644 --- a/config.mak.in +++ b/config.mak.in @@ -8,6 +8,7 @@ LDFLAGS = @LDFLAGS@ AR = @AR@ TAR = @TAR@ DIFF = @DIFF@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ #INSTALL = @INSTALL@ # needs install-sh or install.sh in sources prefix = @prefix@ @@ -17,6 +18,7 @@ gitexecdir = @libexecdir@/git-core datarootdir = @datarootdir@ template_dir = @datadir@/git-core/templates sysconfdir = @sysconfdir@ +docdir = @docdir@ mandir = @mandir@ htmldir = @htmldir@ diff --git a/config.mak.uname b/config.mak.uname index 8743a6d0af..e09af8fc13 100644 --- a/config.mak.uname +++ b/config.mak.uname @@ -321,7 +321,6 @@ ifeq ($(uname_S),Windows) NO_UNSETENV = YesPlease NO_STRCASESTR = YesPlease NO_STRLCPY = YesPlease - NO_STRTOK_R = YesPlease NO_FNMATCH = YesPlease NO_MEMMEM = YesPlease # NEEDS_LIBICONV = YesPlease @@ -476,7 +475,6 @@ ifneq (,$(findstring MINGW,$(uname_S))) NO_UNSETENV = YesPlease NO_STRCASESTR = YesPlease NO_STRLCPY = YesPlease - NO_STRTOK_R = YesPlease NO_FNMATCH = YesPlease NO_MEMMEM = YesPlease NEEDS_LIBICONV = YesPlease diff --git a/configure.ac b/configure.ac index 1991258ae0..f3462d9c81 100644 --- a/configure.ac +++ b/configure.ac @@ -901,12 +901,6 @@ GIT_CHECK_FUNC(strcasestr, [NO_STRCASESTR=YesPlease]) GIT_CONF_SUBST([NO_STRCASESTR]) # -# Define NO_STRTOK_R if you don't have strtok_r -GIT_CHECK_FUNC(strtok_r, -[NO_STRTOK_R=], -[NO_STRTOK_R=YesPlease]) -GIT_CONF_SUBST([NO_STRTOK_R]) -# # Define NO_FNMATCH if you don't have fnmatch GIT_CHECK_FUNC(fnmatch, [NO_FNMATCH=], diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index b62bec0279..93eba46750 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -299,9 +299,12 @@ __git_index_file_list_filter () # the second argument. __git_ls_files_helper () { - # NOTE: $2 is not quoted in order to support multiple options - cd "$1" && git ls-files --exclude-standard $2 -} 2>/dev/null + ( + test -n "${CDPATH+set}" && unset CDPATH + # NOTE: $2 is not quoted in order to support multiple options + cd "$1" && git ls-files --exclude-standard $2 + ) 2>/dev/null +} # Execute git diff-index, returning paths relative to the directory @@ -309,8 +312,11 @@ __git_ls_files_helper () # specified in the second argument. __git_diff_index_helper () { - cd "$1" && git diff-index --name-only --relative "$2" -} 2>/dev/null + ( + test -n "${CDPATH+set}" && unset CDPATH + cd "$1" && git diff-index --name-only --relative "$2" + ) 2>/dev/null +} # __git_index_files accepts 1 or 2 arguments: # 1: Options to pass to ls-files (required). diff --git a/contrib/completion/git-completion.zsh b/contrib/completion/git-completion.zsh index 45775021ff..cf8116d477 100644 --- a/contrib/completion/git-completion.zsh +++ b/contrib/completion/git-completion.zsh @@ -60,6 +60,15 @@ __gitcomp_nl () compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0 } +__gitcomp_file () +{ + emulate -L zsh + + local IFS=$'\n' + compset -P '*[=:]' + compadd -Q -p "${2-}" -f -- ${=1} && _ret=0 +} + _git () { local _ret=1 diff --git a/contrib/credential/wincred/git-credential-wincred.c b/contrib/credential/wincred/git-credential-wincred.c index 66194929fc..a1d38f035b 100644 --- a/contrib/credential/wincred/git-credential-wincred.c +++ b/contrib/credential/wincred/git-credential-wincred.c @@ -9,6 +9,8 @@ /* common helpers */ +#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0])) + static void die(const char *err, ...) { char msg[4096]; @@ -30,14 +32,6 @@ static void *xmalloc(size_t size) return ret; } -static char *xstrdup(const char *str) -{ - char *ret = strdup(str); - if (!ret) - die("Out of memory"); - return ret; -} - /* MinGW doesn't have wincred.h, so we need to define stuff */ typedef struct _CREDENTIAL_ATTRIBUTEW { @@ -67,20 +61,14 @@ typedef struct _CREDENTIALW { #define CRED_MAX_ATTRIBUTES 64 typedef BOOL (WINAPI *CredWriteWT)(PCREDENTIALW, DWORD); -typedef BOOL (WINAPI *CredUnPackAuthenticationBufferWT)(DWORD, PVOID, DWORD, - LPWSTR, DWORD *, LPWSTR, DWORD *, LPWSTR, DWORD *); typedef BOOL (WINAPI *CredEnumerateWT)(LPCWSTR, DWORD, DWORD *, PCREDENTIALW **); -typedef BOOL (WINAPI *CredPackAuthenticationBufferWT)(DWORD, LPWSTR, LPWSTR, - PBYTE, DWORD *); typedef VOID (WINAPI *CredFreeT)(PVOID); typedef BOOL (WINAPI *CredDeleteWT)(LPCWSTR, DWORD, DWORD); -static HMODULE advapi, credui; +static HMODULE advapi; static CredWriteWT CredWriteW; -static CredUnPackAuthenticationBufferWT CredUnPackAuthenticationBufferW; static CredEnumerateWT CredEnumerateW; -static CredPackAuthenticationBufferWT CredPackAuthenticationBufferW; static CredFreeT CredFree; static CredDeleteWT CredDeleteW; @@ -88,74 +76,84 @@ static void load_cred_funcs(void) { /* load DLLs */ advapi = LoadLibrary("advapi32.dll"); - credui = LoadLibrary("credui.dll"); - if (!advapi || !credui) - die("failed to load DLLs"); + if (!advapi) + die("failed to load advapi32.dll"); /* get function pointers */ CredWriteW = (CredWriteWT)GetProcAddress(advapi, "CredWriteW"); - CredUnPackAuthenticationBufferW = (CredUnPackAuthenticationBufferWT) - GetProcAddress(credui, "CredUnPackAuthenticationBufferW"); CredEnumerateW = (CredEnumerateWT)GetProcAddress(advapi, "CredEnumerateW"); - CredPackAuthenticationBufferW = (CredPackAuthenticationBufferWT) - GetProcAddress(credui, "CredPackAuthenticationBufferW"); CredFree = (CredFreeT)GetProcAddress(advapi, "CredFree"); CredDeleteW = (CredDeleteWT)GetProcAddress(advapi, "CredDeleteW"); - if (!CredWriteW || !CredUnPackAuthenticationBufferW || - !CredEnumerateW || !CredPackAuthenticationBufferW || !CredFree || - !CredDeleteW) + if (!CredWriteW || !CredEnumerateW || !CredFree || !CredDeleteW) die("failed to load functions"); } -static char target_buf[1024]; -static char *protocol, *host, *path, *username; -static WCHAR *wusername, *password, *target; +static WCHAR *wusername, *password, *protocol, *host, *path, target[1024]; -static void write_item(const char *what, WCHAR *wbuf) +static void write_item(const char *what, LPCWSTR wbuf, int wlen) { char *buf; - int len = WideCharToMultiByte(CP_UTF8, 0, wbuf, -1, NULL, 0, NULL, + int len = WideCharToMultiByte(CP_UTF8, 0, wbuf, wlen, NULL, 0, NULL, FALSE); buf = xmalloc(len); - if (!WideCharToMultiByte(CP_UTF8, 0, wbuf, -1, buf, len, NULL, FALSE)) + if (!WideCharToMultiByte(CP_UTF8, 0, wbuf, wlen, buf, len, NULL, FALSE)) die("WideCharToMultiByte failed!"); printf("%s=", what); - fwrite(buf, 1, len - 1, stdout); + fwrite(buf, 1, len, stdout); putchar('\n'); free(buf); } -static int match_attr(const CREDENTIALW *cred, const WCHAR *keyword, - const char *want) +/* + * Match an (optional) expected string and a delimiter in the target string, + * consuming the matched text by updating the target pointer. + */ +static int match_part(LPCWSTR *ptarget, LPCWSTR want, LPCWSTR delim) { - int i; - if (!want) - return 1; - - for (i = 0; i < cred->AttributeCount; ++i) - if (!wcscmp(cred->Attributes[i].Keyword, keyword)) - return !strcmp((const char *)cred->Attributes[i].Value, - want); - - return 0; /* not found */ + LPCWSTR delim_pos, start = *ptarget; + int len; + + /* find start of delimiter (or end-of-string if delim is empty) */ + if (*delim) + delim_pos = wcsstr(start, delim); + else + delim_pos = start + wcslen(start); + + /* + * match text up to delimiter, or end of string (e.g. the '/' after + * host is optional if not followed by a path) + */ + if (delim_pos) + len = delim_pos - start; + else + len = wcslen(start); + + /* update ptarget if we either found a delimiter or need a match */ + if (delim_pos || want) + *ptarget = delim_pos ? delim_pos + wcslen(delim) : start + len; + + return !want || (!wcsncmp(want, start, len) && !want[len]); } static int match_cred(const CREDENTIALW *cred) { - return (!wusername || !wcscmp(wusername, cred->UserName)) && - match_attr(cred, L"git_protocol", protocol) && - match_attr(cred, L"git_host", host) && - match_attr(cred, L"git_path", path); + LPCWSTR target = cred->TargetName; + if (wusername && wcscmp(wusername, cred->UserName)) + return 0; + + return match_part(&target, L"git", L":") && + match_part(&target, protocol, L"://") && + match_part(&target, wusername, L"@") && + match_part(&target, host, L"/") && + match_part(&target, path, L""); } static void get_credential(void) { - WCHAR *user_buf, *pass_buf; - DWORD user_buf_size = 0, pass_buf_size = 0; - CREDENTIALW **creds, *cred = NULL; + CREDENTIALW **creds; DWORD num_creds; int i; @@ -165,90 +163,36 @@ static void get_credential(void) /* search for the first credential that matches username */ for (i = 0; i < num_creds; ++i) if (match_cred(creds[i])) { - cred = creds[i]; + write_item("username", creds[i]->UserName, + wcslen(creds[i]->UserName)); + write_item("password", + (LPCWSTR)creds[i]->CredentialBlob, + creds[i]->CredentialBlobSize / sizeof(WCHAR)); break; } - if (!cred) - return; - - CredUnPackAuthenticationBufferW(0, cred->CredentialBlob, - cred->CredentialBlobSize, NULL, &user_buf_size, NULL, NULL, - NULL, &pass_buf_size); - - user_buf = xmalloc(user_buf_size * sizeof(WCHAR)); - pass_buf = xmalloc(pass_buf_size * sizeof(WCHAR)); - - if (!CredUnPackAuthenticationBufferW(0, cred->CredentialBlob, - cred->CredentialBlobSize, user_buf, &user_buf_size, NULL, NULL, - pass_buf, &pass_buf_size)) - die("CredUnPackAuthenticationBuffer failed"); CredFree(creds); - - /* zero-terminate (sizes include zero-termination) */ - user_buf[user_buf_size - 1] = L'\0'; - pass_buf[pass_buf_size - 1] = L'\0'; - - write_item("username", user_buf); - write_item("password", pass_buf); - - free(user_buf); - free(pass_buf); -} - -static void write_attr(CREDENTIAL_ATTRIBUTEW *attr, const WCHAR *keyword, - const char *value) -{ - attr->Keyword = (LPWSTR)keyword; - attr->Flags = 0; - attr->ValueSize = strlen(value) + 1; /* store zero-termination */ - attr->Value = (LPBYTE)value; } static void store_credential(void) { CREDENTIALW cred; - BYTE *auth_buf; - DWORD auth_buf_size = 0; - CREDENTIAL_ATTRIBUTEW attrs[CRED_MAX_ATTRIBUTES]; if (!wusername || !password) return; - /* query buffer size */ - CredPackAuthenticationBufferW(0, wusername, password, - NULL, &auth_buf_size); - - auth_buf = xmalloc(auth_buf_size); - - if (!CredPackAuthenticationBufferW(0, wusername, password, - auth_buf, &auth_buf_size)) - die("CredPackAuthenticationBuffer failed"); - cred.Flags = 0; cred.Type = CRED_TYPE_GENERIC; cred.TargetName = target; cred.Comment = L"saved by git-credential-wincred"; - cred.CredentialBlobSize = auth_buf_size; - cred.CredentialBlob = auth_buf; + cred.CredentialBlobSize = (wcslen(password)) * sizeof(WCHAR); + cred.CredentialBlob = (LPVOID)password; cred.Persist = CRED_PERSIST_LOCAL_MACHINE; - cred.AttributeCount = 1; - cred.Attributes = attrs; + cred.AttributeCount = 0; + cred.Attributes = NULL; cred.TargetAlias = NULL; cred.UserName = wusername; - write_attr(attrs, L"git_protocol", protocol); - - if (host) { - write_attr(attrs + cred.AttributeCount, L"git_host", host); - cred.AttributeCount++; - } - - if (path) { - write_attr(attrs + cred.AttributeCount, L"git_path", path); - cred.AttributeCount++; - } - if (!CredWriteW(&cred, 0)) die("CredWrite failed"); } @@ -284,10 +228,13 @@ static void read_credential(void) while (fgets(buf, sizeof(buf), stdin)) { char *v; + int len = strlen(buf); + /* strip trailing CR / LF */ + while (len && strchr("\r\n", buf[len - 1])) + buf[--len] = 0; - if (!strcmp(buf, "\n")) + if (!*buf) break; - buf[strlen(buf)-1] = '\0'; v = strchr(buf, '='); if (!v) @@ -295,13 +242,12 @@ static void read_credential(void) *v++ = '\0'; if (!strcmp(buf, "protocol")) - protocol = xstrdup(v); + protocol = utf8_to_utf16_dup(v); else if (!strcmp(buf, "host")) - host = xstrdup(v); + host = utf8_to_utf16_dup(v); else if (!strcmp(buf, "path")) - path = xstrdup(v); + path = utf8_to_utf16_dup(v); else if (!strcmp(buf, "username")) { - username = xstrdup(v); wusername = utf8_to_utf16_dup(v); } else if (!strcmp(buf, "password")) password = utf8_to_utf16_dup(v); @@ -330,22 +276,20 @@ int main(int argc, char *argv[]) return 0; /* prepare 'target', the unique key for the credential */ - strncat(target_buf, "git:", sizeof(target_buf)); - strncat(target_buf, protocol, sizeof(target_buf)); - strncat(target_buf, "://", sizeof(target_buf)); - if (username) { - strncat(target_buf, username, sizeof(target_buf)); - strncat(target_buf, "@", sizeof(target_buf)); + wcscpy(target, L"git:"); + wcsncat(target, protocol, ARRAY_SIZE(target)); + wcsncat(target, L"://", ARRAY_SIZE(target)); + if (wusername) { + wcsncat(target, wusername, ARRAY_SIZE(target)); + wcsncat(target, L"@", ARRAY_SIZE(target)); } if (host) - strncat(target_buf, host, sizeof(target_buf)); + wcsncat(target, host, ARRAY_SIZE(target)); if (path) { - strncat(target_buf, "/", sizeof(target_buf)); - strncat(target_buf, path, sizeof(target_buf)); + wcsncat(target, L"/", ARRAY_SIZE(target)); + wcsncat(target, path, ARRAY_SIZE(target)); } - target = utf8_to_utf16_dup(target_buf); - if (!strcmp(argv[1], "get")) get_credential(); else if (!strcmp(argv[1], "store")) @@ -9,10 +9,6 @@ #define HOST_NAME_MAX 256 #endif -#ifndef NI_MAXSERV -#define NI_MAXSERV 32 -#endif - #ifdef NO_INITGROUPS #define initgroups(x, y) (0) /* nothing */ #endif @@ -4662,7 +4662,7 @@ int diff_result_code(struct diff_options *opt, int status) { int result = 0; - diff_warn_rename_limit("diff.renamelimit", + diff_warn_rename_limit("diff.renameLimit", opt->needed_rename_limit, opt->degraded_cc_to_c); if (!DIFF_OPT_TST(opt, EXIT_WITH_STATUS) && diff --git a/fast-import.c b/fast-import.c index c2a814ec66..5f539d7d8f 100644 --- a/fast-import.c +++ b/fast-import.c @@ -2265,7 +2265,7 @@ static void file_change_m(struct branch *b) const char *p = command_buf.buf + 2; static struct strbuf uq = STRBUF_INIT; const char *endp; - struct object_entry *oe = oe; + struct object_entry *oe; unsigned char sha1[20]; uint16_t mode, inline_data = 0; @@ -2292,6 +2292,7 @@ static void file_change_m(struct branch *b) hashcpy(sha1, oe->idx.sha1); } else if (!prefixcmp(p, "inline ")) { inline_data = 1; + oe = NULL; /* not used with inline_data, but makes gcc happy */ p += strlen("inline"); /* advance to space */ } else { if (get_sha1_hex(p, sha1)) @@ -2434,7 +2435,7 @@ static void note_change_n(struct branch *b, unsigned char *old_fanout) { const char *p = command_buf.buf + 2; static struct strbuf uq = STRBUF_INIT; - struct object_entry *oe = oe; + struct object_entry *oe; struct branch *s; unsigned char sha1[20], commit_sha1[20]; char path[60]; @@ -2464,6 +2465,7 @@ static void note_change_n(struct branch *b, unsigned char *old_fanout) hashcpy(sha1, oe->idx.sha1); } else if (!prefixcmp(p, "inline ")) { inline_data = 1; + oe = NULL; /* not used with inline_data, but makes gcc happy */ p += strlen("inline"); /* advance to space */ } else { if (get_sha1_hex(p, sha1)) @@ -2613,7 +2615,7 @@ static int parse_from(struct branch *b) static struct hash_list *parse_merge(unsigned int *count) { - struct hash_list *list = NULL, *n, *e = e; + struct hash_list *list = NULL, **tail = &list, *n; const char *from; struct branch *s; @@ -2641,11 +2643,9 @@ static struct hash_list *parse_merge(unsigned int *count) die("Invalid ref name or SHA1 expression: %s", from); n->next = NULL; - if (list) - e->next = n; - else - list = n; - e = n; + *tail = n; + tail = &n->next; + (*count)++; read_next_command(); } diff --git a/git-compat-util.h b/git-compat-util.h index b7eaaa99a8..e715285e7c 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -213,6 +213,17 @@ extern char *gitbasename(char *); #include <openssl/err.h> #endif +/* On most systems <netdb.h> would have given us this, but + * not on some systems (e.g. z/OS). + */ +#ifndef NI_MAXHOST +#define NI_MAXHOST 1025 +#endif + +#ifndef NI_MAXSERV +#define NI_MAXSERV 32 +#endif + /* On most systems <limits.h> would have given us this, but * not on some systems (e.g. GNU/Hurd). */ @@ -421,11 +432,6 @@ extern uintmax_t gitstrtoumax(const char *, char **, int); extern intmax_t gitstrtoimax(const char *, char **, int); #endif -#ifdef NO_STRTOK_R -#define strtok_r gitstrtok_r -extern char *gitstrtok_r(char *s, const char *delim, char **save_ptr); -#endif - #ifdef NO_HSTRERROR #define hstrerror githstrerror extern const char *githstrerror(int herror); diff --git a/git-submodule.sh b/git-submodule.sh index 004c034bc0..ab29bfeb73 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -622,7 +622,7 @@ cmd_update() die_if_unmatched "$mode" if test "$stage" = U then - echo >&2 "Skipping unmerged submodule $sm_path" + echo >&2 "Skipping unmerged submodule $prefix$sm_path" continue fi name=$(module_name "$sm_path") || exit @@ -637,7 +637,7 @@ cmd_update() if test "$update_module" = "none" then - echo "Skipping submodule '$sm_path'" + echo "Skipping submodule '$prefix$sm_path'" continue fi @@ -646,7 +646,7 @@ cmd_update() # Only mention uninitialized submodules when its # path have been specified test "$#" != "0" && - say "$(eval_gettext "Submodule path '\$sm_path' not initialized + say "$(eval_gettext "Submodule path '\$prefix\$sm_path' not initialized Maybe you want to use 'update --init'?")" continue fi @@ -659,7 +659,7 @@ Maybe you want to use 'update --init'?")" else subsha1=$(clear_local_git_env; cd "$sm_path" && git rev-parse --verify HEAD) || - die "$(eval_gettext "Unable to find current revision in submodule path '\$sm_path'")" + die "$(eval_gettext "Unable to find current revision in submodule path '\$prefix\$sm_path'")" fi if test -n "$remote" @@ -692,7 +692,7 @@ Maybe you want to use 'update --init'?")" (clear_local_git_env; cd "$sm_path" && ( (rev=$(git rev-list -n 1 $sha1 --not --all 2>/dev/null) && test -z "$rev") || git-fetch)) || - die "$(eval_gettext "Unable to fetch in submodule path '\$sm_path'")" + die "$(eval_gettext "Unable to fetch in submodule path '\$prefix\$sm_path'")" fi # Is this something we just cloned? @@ -706,20 +706,20 @@ Maybe you want to use 'update --init'?")" case "$update_module" in rebase) command="git rebase" - die_msg="$(eval_gettext "Unable to rebase '\$sha1' in submodule path '\$sm_path'")" - say_msg="$(eval_gettext "Submodule path '\$sm_path': rebased into '\$sha1'")" + die_msg="$(eval_gettext "Unable to rebase '\$sha1' in submodule path '\$prefix\$sm_path'")" + say_msg="$(eval_gettext "Submodule path '\$prefix\$sm_path': rebased into '\$sha1'")" must_die_on_failure=yes ;; merge) command="git merge" - die_msg="$(eval_gettext "Unable to merge '\$sha1' in submodule path '\$sm_path'")" - say_msg="$(eval_gettext "Submodule path '\$sm_path': merged in '\$sha1'")" + die_msg="$(eval_gettext "Unable to merge '\$sha1' in submodule path '\$prefix\$sm_path'")" + say_msg="$(eval_gettext "Submodule path '\$prefix\$sm_path': merged in '\$sha1'")" must_die_on_failure=yes ;; *) command="git checkout $subforce -q" - die_msg="$(eval_gettext "Unable to checkout '\$sha1' in submodule path '\$sm_path'")" - say_msg="$(eval_gettext "Submodule path '\$sm_path': checked out '\$sha1'")" + die_msg="$(eval_gettext "Unable to checkout '\$sha1' in submodule path '\$prefix\$sm_path'")" + say_msg="$(eval_gettext "Submodule path '\$prefix\$sm_path': checked out '\$sha1'")" ;; esac @@ -737,11 +737,16 @@ Maybe you want to use 'update --init'?")" if test -n "$recursive" then - (clear_local_git_env; cd "$sm_path" && eval cmd_update "$orig_flags") + ( + prefix="$prefix$sm_path/" + clear_local_git_env + cd "$sm_path" && + eval cmd_update "$orig_flags" + ) res=$? if test $res -gt 0 then - die_msg="$(eval_gettext "Failed to recurse into submodule path '\$sm_path'")" + die_msg="$(eval_gettext "Failed to recurse into submodule path '\$prefix\$sm_path'")" if test $res -eq 1 then err="${err};$die_msg" @@ -6,10 +6,10 @@ #include "run-command.h" const char git_usage_string[] = - "git [--version] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]\n" + "git [--version] [--help] [-c name=value]\n" + " [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]\n" " [-p|--paginate|--no-pager] [--no-replace-objects] [--bare]\n" " [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]\n" - " [-c name=value] [--help]\n" " <command> [<args>]"; const char git_more_info_string[] = @@ -545,7 +545,7 @@ int main(int argc, const char **argv) commit_pager_choice(); printf("usage: %s\n\n", git_usage_string); list_common_cmds_help(); - printf("\n%s\n", git_more_info_string); + printf("\n%s\n", _(git_more_info_string)); exit(1); } cmd = argv[0]; diff --git a/gitweb/README b/gitweb/README index 6da4778b73..471dcfb691 100644 --- a/gitweb/README +++ b/gitweb/README @@ -1,9 +1,6 @@ GIT web Interface ================= -The one working on: - http://git.kernel.org/ - From the git version 1.4.0 gitweb is bundled with git. @@ -8,34 +8,6 @@ /* Internal API */ /* - * Output the next line for a graph. - * This formats the next graph line into the specified strbuf. It is not - * terminated with a newline. - * - * Returns 1 if the line includes the current commit, and 0 otherwise. - * graph_next_line() will return 1 exactly once for each time - * graph_update() is called. - */ -static int graph_next_line(struct git_graph *graph, struct strbuf *sb); - -/* - * Set up a custom scheme for column colors. - * - * The default column color scheme inserts ANSI color escapes to colorize - * the graph. The various color escapes are stored in an array of strings - * where each entry corresponds to a color, except for the last entry, - * which denotes the escape for resetting the color back to the default. - * When generating the graph, strings from this array are inserted before - * and after the various column characters. - * - * This function allows you to enable a custom array of color escapes. - * The 'colors_max' argument is the index of the last "reset" entry. - * - * This functions must be called BEFORE graph_init() is called. - */ -static void graph_set_column_colors(const char **colors, unsigned short colors_max); - -/* * Output a padding line in the graph. * This is similar to graph_next_line(). However, it is guaranteed to * never print the current commit line. Instead, if the commit line is @@ -90,7 +62,7 @@ enum graph_state { static const char **column_colors; static unsigned short column_colors_max; -static void graph_set_column_colors(const char **colors, unsigned short colors_max) +void graph_set_column_colors(const char **colors, unsigned short colors_max) { column_colors = colors; column_colors_max = colors_max; @@ -1144,7 +1116,7 @@ static void graph_output_collapsing_line(struct git_graph *graph, struct strbuf graph_update_state(graph, GRAPH_PADDING); } -static int graph_next_line(struct git_graph *graph, struct strbuf *sb) +int graph_next_line(struct git_graph *graph, struct strbuf *sb) { switch (graph->state) { case GRAPH_PADDING: @@ -4,6 +4,25 @@ /* A graph is a pointer to this opaque structure */ struct git_graph; +/* + * Set up a custom scheme for column colors. + * + * The default column color scheme inserts ANSI color escapes to colorize + * the graph. The various color escapes are stored in an array of strings + * where each entry corresponds to a color, except for the last entry, + * which denotes the escape for resetting the color back to the default. + * When generating the graph, strings from this array are inserted before + * and after the various column characters. + * + * This function allows you to enable a custom array of color escapes. + * The 'colors_max' argument is the index of the last "reset" entry. + * + * This functions must be called BEFORE graph_init() is called. + * + * NOTE: This function isn't used in Git outside graph.c but it is used + * by CGit (http://git.zx2c4.com/cgit/) to use HTML for colors. + */ +void graph_set_column_colors(const char **colors, unsigned short colors_max); /* * Create a new struct git_graph. @@ -33,6 +52,20 @@ void graph_update(struct git_graph *graph, struct commit *commit); */ int graph_is_commit_finished(struct git_graph const *graph); +/* + * Output the next line for a graph. + * This formats the next graph line into the specified strbuf. It is not + * terminated with a newline. + * + * Returns 1 if the line includes the current commit, and 0 otherwise. + * graph_next_line() will return 1 exactly once for each time + * graph_update() is called. + * + * NOTE: This function isn't used in Git outside graph.c but it is used + * by CGit (http://git.zx2c4.com/cgit/) to wrap HTML around graph lines. + */ +int graph_next_line(struct git_graph *graph, struct strbuf *sb); + /* * graph_show_*: helper functions for printing to stdout diff --git a/imap-send.c b/imap-send.c index 43ac4e0bdf..d9bcfb44dc 100644 --- a/imap-send.c +++ b/imap-send.c @@ -304,6 +304,17 @@ static int ssl_socket_connect(struct imap_socket *sock, int use_tls_only, int ve return -1; } +#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME + /* + * SNI (RFC4366) + * OpenSSL does not document this function, but the implementation + * returns 1 on success, 0 on failure after calling SSLerr(). + */ + ret = SSL_set_tlsext_host_name(sock->ssl, server.host); + if (ret != 1) + warning("SSL_set_tlsext_host_name(%s) failed.", server.host); +#endif + ret = SSL_connect(sock->ssl); if (ret <= 0) { socket_perror("SSL_connect", sock, ret); diff --git a/name-hash.c b/name-hash.c index d8d25c23e9..942c459622 100644 --- a/name-hash.c +++ b/name-hash.c @@ -24,11 +24,11 @@ static unsigned int hash_name(const char *name, int namelen) { unsigned int hash = 0x123; - do { + while (namelen--) { unsigned char c = *name++; c = icase_hash(c); hash = hash*101 + c; - } while (--namelen); + } return hash; } diff --git a/perl/Git.pm b/perl/Git.pm index a56d1e76f7..57a17160f9 100644 --- a/perl/Git.pm +++ b/perl/Git.pm @@ -965,20 +965,22 @@ sub cat_blob { my $size = $1; my $blob; - my $bytesRead = 0; + my $bytesLeft = $size; while (1) { - my $bytesLeft = $size - $bytesRead; last unless $bytesLeft; my $bytesToRead = $bytesLeft < 1024 ? $bytesLeft : 1024; - my $read = read($in, $blob, $bytesToRead, $bytesRead); + my $read = read($in, $blob, $bytesToRead); unless (defined($read)) { $self->_close_cat_blob(); throw Error::Simple("in pipe went bad"); } - - $bytesRead += $read; + unless (print $fh $blob) { + $self->_close_cat_blob(); + throw Error::Simple("couldn't write to passed in filehandle"); + } + $bytesLeft -= $read; } # Skip past the trailing newline. @@ -993,11 +995,6 @@ sub cat_blob { throw Error::Simple("didn't find newline after blob"); } - unless (print $fh $blob) { - $self->_close_cat_blob(); - throw Error::Simple("couldn't write to passed in filehandle"); - } - return $size; } diff --git a/perl/Git/SVN.pm b/perl/Git/SVN.pm index 0ebc68ac7e..5273ee8867 100644 --- a/perl/Git/SVN.pm +++ b/perl/Git/SVN.pm @@ -1493,13 +1493,18 @@ sub lookup_svn_merge { my @merged_commit_ranges; # find the tip for my $range ( @ranges ) { + if ($range =~ /[*]$/) { + warn "W: Ignoring partial merge in svn:mergeinfo " + ."dirprop: $source:$range\n"; + next; + } my ($bottom, $top) = split "-", $range; $top ||= $bottom; my $bottom_commit = $gs->find_rev_after( $bottom, 1, $top ); my $top_commit = $gs->find_rev_before( $top, 1, $bottom ); unless ($top_commit and $bottom_commit) { - warn "W:unknown path/rev in svn:mergeinfo " + warn "W: unknown path/rev in svn:mergeinfo " ."dirprop: $source:$range\n"; next; } @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: git 1.8.2\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2013-01-25 12:33+0800\n" +"POT-Creation-Date: 2013-03-05 12:36+0800\n" "PO-Revision-Date: 2012-10-02 19:35+0200\n" "Last-Translator: Ralf Thielow <ralf.thielow@gmail.com>\n" "Language-Team: German <>\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" -#: advice.c:45 +#: advice.c:49 #, c-format msgid "hint: %.*s\n" msgstr "Hinweis: %.*s\n" @@ -26,7 +26,7 @@ msgstr "Hinweis: %.*s\n" #. * Message used both when 'git commit' fails and when #. * other commands doing a merge do. #. -#: advice.c:75 +#: advice.c:79 msgid "" "Fix them up in the work tree,\n" "and then use 'git add/rm <file>' as\n" @@ -73,11 +73,11 @@ msgstr "Prefix" msgid "prepend prefix to each pathname in the archive" msgstr "stellt einen Präfix vor jeden Pfadnamen in der Ausgabe" -#: archive.c:326 builtin/archive.c:91 builtin/blame.c:2380 -#: builtin/blame.c:2381 builtin/config.c:55 builtin/fast-export.c:653 +#: archive.c:326 builtin/archive.c:91 builtin/blame.c:2366 +#: builtin/blame.c:2367 builtin/config.c:55 builtin/fast-export.c:653 #: builtin/fast-export.c:655 builtin/grep.c:715 builtin/hash-object.c:77 -#: builtin/ls-files.c:494 builtin/ls-files.c:497 builtin/notes.c:540 -#: builtin/notes.c:697 builtin/read-tree.c:107 parse-options.h:149 +#: builtin/ls-files.c:497 builtin/ls-files.c:500 builtin/notes.c:536 +#: builtin/notes.c:693 builtin/read-tree.c:107 parse-options.h:149 msgid "file" msgstr "Datei" @@ -117,7 +117,7 @@ msgstr "Projektarchiv" msgid "retrieve the archive from remote repository <repo>" msgstr "ruft das Archiv von externem Projektarchiv <Projektarchiv> ab" -#: archive.c:347 builtin/archive.c:95 builtin/notes.c:619 +#: archive.c:347 builtin/archive.c:95 builtin/notes.c:615 msgid "command" msgstr "Programm" @@ -127,10 +127,10 @@ msgstr "Pfad zum externen \"git-upload-archive\"-Programm" #: attr.c:259 msgid "" -"Negative patterns are forbidden in git attributes\n" +"Negative patterns are ignored in git attributes\n" "Use '\\!' for literal leading exclamation." msgstr "" -"Verneinende Muster sind in Git-Attributen verboten.\n" +"Verneinende Muster werden in Git-Attributen ignoriert.\n" "Benutzen Sie '\\!' für führende Ausrufezeichen." #: bundle.c:36 @@ -306,23 +306,23 @@ msgid_plural "%lu years ago" msgstr[0] "vor %lu Jahr" msgstr[1] "vor %lu Jahren" -#: diff.c:111 +#: diff.c:112 #, c-format msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr "" " Fehler beim Parsen des abgeschnittenen \"dirstat\" Prozentsatzes '%s'\n" -#: diff.c:116 +#: diff.c:117 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr " Unbekannter \"dirstat\" Parameter '%s'\n" -#: diff.c:194 +#: diff.c:210 #, c-format msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "Unbekannter Wert in Konfigurationsvariable 'diff.dirstat': '%s'" -#: diff.c:237 +#: diff.c:260 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" @@ -331,7 +331,7 @@ msgstr "" "Fehler in 'diff.dirstat' Konfigurationsvariable gefunden:\n" "%s" -#: diff.c:3494 +#: diff.c:3468 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -340,12 +340,12 @@ msgstr "" "Fehler beim Parsen des --dirstat/-X Optionsparameters:\n" "%s" -#: diff.c:3508 +#: diff.c:3482 #, 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:59 gpg-interface.c:127 msgid "could not run gpg." msgstr "konnte gpg nicht ausführen" @@ -357,6 +357,16 @@ msgstr "gpg hat die Daten nicht akzeptiert" msgid "gpg failed to sign the data" msgstr "gpg beim Signieren der Daten fehlgeschlagen" +#: gpg-interface.c:112 +#, c-format +msgid "could not create temporary file '%s': %s" +msgstr "konnte temporäre Datei '%s' nicht erstellen: %s" + +#: gpg-interface.c:115 +#, c-format +msgid "failed writing detached signature to '%s': %s" +msgstr "Fehler beim Schreiben der Signatur nach '%s': %s" + #: grep.c:1622 #, c-format msgid "'%s': unable to read %s" @@ -381,7 +391,11 @@ msgstr "Vorhandene Git-Kommandos in '%s'" msgid "git commands available from elsewhere on your $PATH" msgstr "Vorhandene Git-Kommandos irgendwo in Ihrem $PATH" -#: help.c:275 +#: help.c:235 +msgid "The most commonly used git commands are:" +msgstr "Die allgemein verwendeten Git-Kommandos sind:" + +#: help.c:292 #, c-format msgid "" "'%s' appears to be a git command, but we were not\n" @@ -390,11 +404,11 @@ msgstr "" "'%s' scheint ein git-Kommando zu sein, konnte aber\n" "nicht ausgeführt werden. Vielleicht ist git-%s fehlerhaft?" -#: help.c:332 +#: help.c:349 msgid "Uh oh. Your system reports no Git commands at all." msgstr "Uh oh. Keine Git-Kommandos auf Ihrem System vorhanden." -#: help.c:354 +#: help.c:371 #, c-format msgid "" "WARNING: You called a Git command named '%s', which does not exist.\n" @@ -403,17 +417,17 @@ msgstr "" "Warnung: Sie haben das nicht existierende Git-Kommando '%s' ausgeführt.\n" "Setze fort unter der Annahme, dass Sie '%s' gemeint haben" -#: help.c:359 +#: help.c:376 #, c-format msgid "in %0.1f seconds automatically..." msgstr "automatisch in %0.1f Sekunden..." -#: help.c:366 +#: help.c:383 #, c-format msgid "git: '%s' is not a git command. See 'git --help'." msgstr "git: '%s' ist kein Git-Kommando. Siehe 'git --help'." -#: help.c:370 +#: help.c:387 msgid "" "\n" "Did you mean this?" @@ -694,39 +708,53 @@ msgstr "Konnte Objekt '%s' nicht parsen." msgid "Unable to write index." msgstr "Konnte Bereitstellung nicht schreiben." -#: parse-options.c:485 +#: parse-options.c:489 msgid "..." msgstr "..." -#: parse-options.c:503 +#: parse-options.c:507 #, c-format msgid "usage: %s" msgstr "Verwendung: %s" #. TRANSLATORS: the colon here should align with the #. one in "usage: %s" translation -#: parse-options.c:507 +#: parse-options.c:511 #, c-format msgid " or: %s" msgstr " oder: %s" -#: parse-options.c:510 +#: parse-options.c:514 #, c-format msgid " %s" msgstr " %s" -#: remote.c:1686 +#: parse-options.c:548 +msgid "-NUM" +msgstr "-NUM" + +#: pathspec.c:83 +#, c-format +msgid "Path '%s' is in submodule '%.*s'" +msgstr "Pfad '%s' befindet sich in Unterprojekt '%.*s'" + +#: pathspec.c:99 +#, c-format +msgid "'%s' is beyond a symbolic link" +msgstr "'%s' ist über einem symbolischen Link" + +#: remote.c:1653 #, 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 Zweig ist vor '%s' um %d Version.\n" msgstr[1] "Ihr Zweig ist vor '%s' um %d Versionen.\n" -#: remote.c:1692 +#: remote.c:1659 msgid " (use \"git push\" to publish your local commits)\n" msgstr " (benutzen Sie \"git push\" um lokalen Versionen herauszubringen)\n" -#: remote.c:1695 +#: remote.c:1662 #, c-format msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n" msgid_plural "" @@ -737,12 +765,12 @@ msgstr[1] "" "Ihr Zweig ist zu '%s' um %d Versionen hinterher, und kann vorgespult " "werden.\n" -#: remote.c:1703 +#: remote.c:1670 msgid " (use \"git pull\" to update your local branch)\n" msgstr "" " (benutzen Sie \"git pull\" um Ihren lokalen Zweig zu aktualisieren)\n" -#: remote.c:1706 +#: remote.c:1673 #, c-format msgid "" "Your branch and '%s' have diverged,\n" @@ -757,20 +785,20 @@ msgstr[1] "" "Ihr Zweig und '%s' sind divergiert,\n" "und haben jeweils %d und %d unterschiedliche Versionen.\n" -#: remote.c:1716 +#: remote.c:1683 msgid " (use \"git pull\" to merge the remote branch into yours)\n" msgstr "" " (benutzen Sie \"git pull\" um Ihren Zweig mit dem externen " "zusammenzuführen)\n" -#: sequencer.c:123 builtin/merge.c:761 builtin/merge.c:875 builtin/merge.c:985 -#: builtin/merge.c:995 +#: sequencer.c:123 builtin/merge.c:761 builtin/merge.c:874 builtin/merge.c:984 +#: builtin/merge.c:994 #, c-format msgid "Could not open '%s' for writing" msgstr "Konnte '%s' nicht zum Schreiben öffnen." -#: sequencer.c:125 builtin/merge.c:333 builtin/merge.c:764 builtin/merge.c:987 -#: builtin/merge.c:1000 +#: sequencer.c:125 builtin/merge.c:333 builtin/merge.c:764 builtin/merge.c:986 +#: builtin/merge.c:999 #, c-format msgid "Could not write to '%s'" msgstr "Konnte nicht nach '%s' schreiben." @@ -973,7 +1001,7 @@ msgstr "kann Zweigspitze (HEAD) nicht auflösen" msgid "cannot abort from a branch yet to be born" msgstr "kann nicht abbrechen: bin auf einem Zweig, der noch geboren wird" -#: sequencer.c:821 builtin/apply.c:4016 +#: sequencer.c:821 builtin/apply.c:4056 #, c-format msgid "cannot open %s: %s" msgstr "Kann %s nicht öffnen: %s" @@ -1202,160 +1230,185 @@ msgstr "nicht zusammengeführt: %s" msgid "bug: unhandled diff status %c" msgstr "Fehler: unbehandelter Differenz-Status %c" -#: wt-status.c:787 +#: wt-status.c:789 msgid "You have unmerged paths." msgstr "Sie haben nicht zusammengeführte Pfade." -#: wt-status.c:790 wt-status.c:914 +#: wt-status.c:792 wt-status.c:944 msgid " (fix conflicts and run \"git commit\")" msgstr " (beheben Sie die Konflikte und führen Sie \"git commit\" aus)" -#: wt-status.c:793 +#: wt-status.c:795 msgid "All conflicts fixed but you are still merging." msgstr "" "Alle Konflikte sind behoben, aber Sie sind immer noch beim Zusammenführen." -#: wt-status.c:796 +#: wt-status.c:798 msgid " (use \"git commit\" to conclude merge)" msgstr " (benutzen Sie \"git commit\" um die Zusammenführung abzuschließen)" -#: wt-status.c:806 +#: wt-status.c:808 msgid "You are in the middle of an am session." msgstr "Eine \"am\"-Sitzung ist im Gange." -#: wt-status.c:809 +#: wt-status.c:811 msgid "The current patch is empty." msgstr "Der aktuelle Patch ist leer." -#: wt-status.c:813 +#: wt-status.c:815 msgid " (fix conflicts and then run \"git am --resolved\")" msgstr "" " (beheben Sie die Konflikte und führen Sie dann \"git am --resolved\" aus)" -#: wt-status.c:815 +#: wt-status.c:817 msgid " (use \"git am --skip\" to skip this patch)" msgstr " (benutzen Sie \"git am --skip\" um diesen Patch auszulassen)" -#: wt-status.c:817 +#: wt-status.c:819 msgid " (use \"git am --abort\" to restore the original branch)" msgstr "" " (benutzen Sie \"git am --abort\" um den ursprünglichen Zweig " "wiederherzustellen)" -#: wt-status.c:875 wt-status.c:885 +#: wt-status.c:879 wt-status.c:896 +#, c-format +msgid "You are currently rebasing branch '%s' on '%s'." +msgstr "Sie sind gerade beim Neuaufbau von Zweig '%s' auf '%s'." + +#: wt-status.c:884 wt-status.c:901 msgid "You are currently rebasing." msgstr "Sie sind gerade beim Neuaufbau." -#: wt-status.c:878 +#: wt-status.c:887 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:880 +#: wt-status.c:889 msgid " (use \"git rebase --skip\" to skip this patch)" msgstr " (benutzen Sie \"git rebase --skip\" um diesen Patch auszulassen)" -#: wt-status.c:882 +#: wt-status.c:891 msgid " (use \"git rebase --abort\" to check out the original branch)" msgstr "" " (benutzen Sie \"git rebase --abort\" um den ursprünglichen Zweig " "auszuchecken)" -#: wt-status.c:888 +#: wt-status.c:904 msgid " (all conflicts fixed: run \"git rebase --continue\")" msgstr " (alle Konflikte behoben: führen Sie \"git rebase --continue\" aus)" -#: wt-status.c:890 +#: wt-status.c:908 +#, c-format +msgid "" +"You are currently splitting a commit while rebasing branch '%s' on '%s'." +msgstr "" +"Sie teilen gerade eine Version auf, während ein Neuaufbau von Zweig '%s' auf " +"'%s' im Gange ist." + +#: wt-status.c:913 msgid "You are currently splitting a commit during a rebase." msgstr "Sie teilen gerade eine Version während eines Neuaufbaus auf." -#: wt-status.c:893 +#: wt-status.c:916 msgid " (Once your working directory is clean, run \"git rebase --continue\")" msgstr "" " (Sobald Ihr Arbeitsverzeichnis sauber ist, führen Sie \"git rebase --" "continue\" aus)" -#: wt-status.c:895 +#: wt-status.c:920 +#, c-format +msgid "You are currently editing a commit while rebasing branch '%s' on '%s'." +msgstr "" +"Sie editieren gerade eine Version während eines Neuaufbaus von Zweig '%s' " +"auf '%s'." + +#: wt-status.c:925 msgid "You are currently editing a commit during a rebase." msgstr "Sie editieren gerade eine Version während eines Neuaufbaus." -#: wt-status.c:898 +#: wt-status.c:928 msgid " (use \"git commit --amend\" to amend the current commit)" msgstr "" " (benutzen Sie \"git commit --amend\" um die aktuelle Version nachzubessern)" -#: wt-status.c:900 +#: wt-status.c:930 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:910 +#: wt-status.c:940 msgid "You are currently cherry-picking." msgstr "Sie führen gerade \"cherry-pick\" aus." -#: wt-status.c:917 +#: wt-status.c:947 msgid " (all conflicts fixed: run \"git commit\")" msgstr " (alle Konflikte behoben: führen Sie \"git commit\" aus)" -#: wt-status.c:926 +#: wt-status.c:958 +#, c-format +msgid "You are currently bisecting branch '%s'." +msgstr "Sie sind gerade bei einer binären Suche in Zweig '%s'." + +#: wt-status.c:962 msgid "You are currently bisecting." -msgstr "Sie sind gerade beim Halbieren." +msgstr "Sie sind gerade bei einer binären Suche." -#: wt-status.c:929 +#: wt-status.c:965 msgid " (use \"git bisect reset\" to get back to the original branch)" msgstr "" " (benutzen Sie \"git bisect reset\" um zum ursprünglichen Zweig " "zurückzukehren)" -#: wt-status.c:980 +#: wt-status.c:1064 msgid "On branch " msgstr "Auf Zweig " -#: wt-status.c:987 +#: wt-status.c:1071 msgid "Not currently on any branch." msgstr "Im Moment auf keinem Zweig." -#: wt-status.c:999 +#: wt-status.c:1083 msgid "Initial commit" msgstr "Initiale Version" -#: wt-status.c:1013 +#: wt-status.c:1097 msgid "Untracked files" msgstr "Unbeobachtete Dateien" -#: wt-status.c:1015 +#: wt-status.c:1099 msgid "Ignored files" msgstr "Ignorierte Dateien" -#: wt-status.c:1017 +#: wt-status.c:1101 #, c-format msgid "Untracked files not listed%s" msgstr "Unbeobachtete Dateien nicht aufgelistet%s" -#: wt-status.c:1019 +#: wt-status.c:1103 msgid " (use -u option to show untracked files)" msgstr " (benutzen Sie die Option -u um unbeobachteten Dateien anzuzeigen)" -#: wt-status.c:1025 +#: wt-status.c:1109 msgid "No changes" msgstr "Keine Änderungen" -#: wt-status.c:1030 +#: wt-status.c:1114 #, c-format msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n" msgstr "" "keine Änderungen zum Eintragen hinzugefügt (benutzen Sie \"git add\" und/" "oder \"git commit -a\")\n" -#: wt-status.c:1033 +#: wt-status.c:1117 #, c-format msgid "no changes added to commit\n" msgstr "keine Änderungen zum Eintragen hinzugefügt\n" -#: wt-status.c:1036 +#: wt-status.c:1120 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " @@ -1364,199 +1417,239 @@ msgstr "" "nichts zum Eintragen hinzugefügt, aber es gibt unbeobachtete Dateien " "(benutzen Sie \"git add\" zum Beobachten)\n" -#: wt-status.c:1039 +#: wt-status.c:1123 #, c-format msgid "nothing added to commit but untracked files present\n" msgstr "nichts zum Eintragen hinzugefügt, aber es gibt unbeobachtete Dateien\n" -#: wt-status.c:1042 +#: wt-status.c:1126 #, c-format msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "" "nichts einzutragen (Erstellen/Kopieren Sie Dateien und benutzen Sie \"git add" "\" zum Beobachten)\n" -#: wt-status.c:1045 wt-status.c:1050 +#: wt-status.c:1129 wt-status.c:1134 #, c-format msgid "nothing to commit\n" msgstr "nichts einzutragen\n" -#: wt-status.c:1048 +#: wt-status.c:1132 #, c-format msgid "nothing to commit (use -u to show untracked files)\n" msgstr "" "nichts einzutragen (benutzen Sie die Option -u, um unbeobachtete Dateien " "anzuzeigen)\n" -#: wt-status.c:1052 +#: wt-status.c:1136 #, c-format msgid "nothing to commit, working directory clean\n" msgstr "nichts einzutragen, Arbeitsverzeichnis sauber\n" -#: wt-status.c:1160 +#: wt-status.c:1244 msgid "HEAD (no branch)" msgstr "HEAD (kein Zweig)" -#: wt-status.c:1166 +#: wt-status.c:1250 msgid "Initial commit on " msgstr "Initiale Version auf " -#: wt-status.c:1181 +#: wt-status.c:1265 msgid "behind " msgstr "hinterher " -#: wt-status.c:1184 wt-status.c:1187 +#: wt-status.c:1268 wt-status.c:1271 msgid "ahead " msgstr "voraus " -#: wt-status.c:1189 +#: wt-status.c:1273 msgid ", behind " msgstr ", hinterher " -#: builtin/add.c:19 -msgid "git add [options] [--] <filepattern>..." -msgstr "git add [Optionen] [--] [<Dateimuster>...]" +#: compat/precompose_utf8.c:58 builtin/clone.c:341 +#, c-format +msgid "failed to unlink '%s'" +msgstr "Konnte '%s' nicht entfernen." + +#: builtin/add.c:20 +msgid "git add [options] [--] <pathspec>..." +msgstr "git add [Optionen] [--] [<Pfadspezifikation>...]" -#: builtin/add.c:62 +#: builtin/add.c:63 #, c-format msgid "unexpected diff status %c" msgstr "unerwarteter Differenz-Status %c" -#: builtin/add.c:67 builtin/commit.c:231 +#: builtin/add.c:68 builtin/commit.c:231 msgid "updating files failed" msgstr "Aktualisierung der Dateien fehlgeschlagen" -#: builtin/add.c:77 +#: builtin/add.c:78 #, c-format msgid "remove '%s'\n" msgstr "lösche '%s'\n" -#: builtin/add.c:176 -#, c-format -msgid "Path '%s' is in submodule '%.*s'" -msgstr "Pfad '%s' befindet sich in Unterprojekt '%.*s'" - -#: builtin/add.c:192 +#: builtin/add.c:148 msgid "Unstaged changes after refreshing the index:" msgstr "" "Nicht bereitgestellte Änderungen nach Aktualisierung der Bereitstellung:" -#: builtin/add.c:195 builtin/add.c:460 builtin/rm.c:275 +#: builtin/add.c:151 builtin/add.c:460 builtin/rm.c:275 #, c-format msgid "pathspec '%s' did not match any files" msgstr "Pfadspezifikation '%s' stimmt mit keinen Dateien überein" -#: builtin/add.c:209 -#, c-format -msgid "'%s' is beyond a symbolic link" -msgstr "'%s' ist über einem symbolischen Link" - -#: builtin/add.c:276 +#: builtin/add.c:234 msgid "Could not read the index" msgstr "Konnte die Bereitstellung nicht lesen" -#: builtin/add.c:286 +#: builtin/add.c:244 #, c-format msgid "Could not open '%s' for writing." msgstr "Konnte '%s' nicht zum Schreiben öffnen." -#: builtin/add.c:290 +#: builtin/add.c:248 msgid "Could not write patch" msgstr "Konnte Patch nicht schreiben" -#: builtin/add.c:295 +#: builtin/add.c:253 #, c-format msgid "Could not stat '%s'" msgstr "Konnte Verzeichnis '%s' nicht lesen" -#: builtin/add.c:297 +#: builtin/add.c:255 msgid "Empty patch. Aborted." msgstr "Leerer Patch. Abgebrochen." -#: builtin/add.c:303 +#: builtin/add.c:261 #, c-format msgid "Could not apply '%s'" msgstr "Konnte '%s' nicht anwenden." -#: builtin/add.c:313 +#: builtin/add.c:271 msgid "The following paths are ignored by one of your .gitignore files:\n" msgstr "" "Die folgenden Pfade werden durch eine Ihrer \".gitignore\" Dateien " "ignoriert:\n" -#: builtin/add.c:319 builtin/clean.c:160 builtin/fetch.c:78 builtin/mv.c:63 -#: builtin/prune-packed.c:76 builtin/push.c:396 builtin/remote.c:1253 +#: builtin/add.c:277 builtin/clean.c:161 builtin/fetch.c:78 builtin/mv.c:63 +#: builtin/prune-packed.c:76 builtin/push.c:425 builtin/remote.c:1253 #: builtin/rm.c:206 msgid "dry run" msgstr "Probelauf" -#: builtin/add.c:320 builtin/apply.c:4365 builtin/commit.c:1160 -#: builtin/count-objects.c:82 builtin/fsck.c:613 builtin/log.c:1522 -#: builtin/mv.c:62 builtin/read-tree.c:112 +#: builtin/add.c:278 builtin/apply.c:4405 builtin/check-ignore.c:19 +#: builtin/commit.c:1150 builtin/count-objects.c:82 builtin/fsck.c:613 +#: builtin/log.c:1522 builtin/mv.c:62 builtin/read-tree.c:112 msgid "be verbose" msgstr "erweiterte Ausgaben" -#: builtin/add.c:322 +#: builtin/add.c:280 msgid "interactive picking" msgstr "interaktives Auswählen" -#: builtin/add.c:323 builtin/checkout.c:1031 builtin/reset.c:258 +#: builtin/add.c:281 builtin/checkout.c:1031 builtin/reset.c:258 msgid "select hunks interactively" msgstr "interaktiv Bereiche auswählen" -#: builtin/add.c:324 +#: builtin/add.c:282 msgid "edit current diff and apply" msgstr "aktuelle Unterschiede editieren und anwenden" -#: builtin/add.c:325 +#: builtin/add.c:283 msgid "allow adding otherwise ignored files" msgstr "erlaubt das Hinzufügen andernfalls ignorierter Dateien" -#: builtin/add.c:326 +#: builtin/add.c:284 msgid "update tracked files" msgstr "aktualisiert beobachtete Dateien" -#: builtin/add.c:327 +#: builtin/add.c:285 msgid "record only the fact that the path will be added later" msgstr "speichert nur, dass der Pfad später hinzugefügt werden soll" -#: builtin/add.c:328 +#: builtin/add.c:286 msgid "add changes from all tracked and untracked files" msgstr "" "fügt Änderungen von allen beobachteten und unbeobachteten Dateien hinzu" -#: builtin/add.c:329 +#: builtin/add.c:287 msgid "don't add, only refresh the index" msgstr "fügt nichts hinzu, aktualisiert nur die Bereitstellung" -#: builtin/add.c:330 +#: builtin/add.c:288 msgid "just skip files which cannot be added because of errors" msgstr "" "überspringt Dateien, die aufgrund von Fehlern nicht hinzugefügt werden " "konnten" -#: builtin/add.c:331 +#: builtin/add.c:289 msgid "check if - even missing - files are ignored in dry run" msgstr "prüft ob - auch fehlende - Dateien im Probelauf ignoriert werden" -#: builtin/add.c:353 +#: builtin/add.c:311 #, c-format msgid "Use -f if you really want to add them.\n" msgstr "Verwenden Sie -f wenn Sie diese wirklich hinzufügen möchten.\n" -#: builtin/add.c:354 +#: builtin/add.c:312 msgid "no files added" msgstr "keine Dateien hinzugefügt" -#: builtin/add.c:360 +#: builtin/add.c:318 msgid "adding files failed" msgstr "Hinzufügen von Dateien fehlgeschlagen" -#: builtin/add.c:392 +#. +#. * To be consistent with "git add -p" and most Git +#. * commands, we should default to being tree-wide, but +#. * this is not the original behavior and can't be +#. * changed until users trained themselves not to type +#. * "git add -u" or "git add -A". For now, we warn and +#. * keep the old behavior. Later, this warning can be +#. * turned into a die(...), and eventually we may +#. * reallow the command with a new behavior. +#. +#: builtin/add.c:335 +#, c-format +msgid "" +"The behavior of 'git add %s (or %s)' with no path argument from a\n" +"subdirectory of the tree will change in Git 2.0 and should not be used " +"anymore.\n" +"To add content for the whole tree, run:\n" +"\n" +" git add %s :/\n" +" (or git add %s :/)\n" +"\n" +"To restrict the command to the current directory, run:\n" +"\n" +" git add %s .\n" +" (or git add %s .)\n" +"\n" +"With the current Git version, the command is restricted to the current " +"directory." +msgstr "" +"Das Verhalten von 'git add %s (oder %s)' ohne ein Pfad-Argument von\n" +"einem Unterverzeichnis aus wird in Git 2.0 geändert und sollte nicht\n" +"mehr verwendet werden.\n" +"Um Dateien des gesamten Projektverzeichnisses hinzuzufügen, führen Sie aus:\n" +"\n" +" git add %s :/\n" +" (oder git add %s :/)\n" +"\n" +"Zur Einschränkung auf das aktuelle Verzeichnis führen Sie aus:\n" +"\n" +" git add %s .\n" +" (oder git add %s .)\n" +"\n" +"Mit der aktuellen Version von Git ist das Kommando auf das aktuelle\n" +"Verzeichnis beschränkt." + +#: builtin/add.c:381 msgid "-A and -u are mutually incompatible" msgstr "Die Optionen -A und -u sind zueinander inkompatibel." -#: builtin/add.c:394 +#: builtin/add.c:383 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." @@ -1571,12 +1664,12 @@ msgstr "Nichts spezifiziert, nichts hinzugefügt.\n" msgid "Maybe you wanted to say 'git add .'?\n" msgstr "Wollten Sie vielleicht 'git add .' sagen?\n" -#: builtin/add.c:421 builtin/clean.c:203 builtin/commit.c:291 builtin/mv.c:82 -#: builtin/rm.c:235 +#: builtin/add.c:421 builtin/check-ignore.c:67 builtin/clean.c:204 +#: builtin/commit.c:291 builtin/mv.c:82 builtin/rm.c:235 msgid "index file corrupt" msgstr "Bereitstellungsdatei beschädigt" -#: builtin/add.c:481 builtin/apply.c:4461 builtin/mv.c:229 builtin/rm.c:370 +#: builtin/add.c:481 builtin/apply.c:4501 builtin/mv.c:229 builtin/rm.c:370 msgid "Unable to write new index file" msgstr "Konnte neue Bereitstellungsdatei nicht schreiben." @@ -1633,17 +1726,17 @@ msgstr "" 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" -#: builtin/apply.c:1420 +#: builtin/apply.c:1422 #, c-format msgid "recount: unexpected line: %.*s" msgstr "recount: unerwartete Zeile: %.*s" -#: builtin/apply.c:1477 +#: builtin/apply.c:1479 #, c-format msgid "patch fragment without header at line %d: %.*s" msgstr "Patch-Fragment ohne Kopfbereich bei Zeile %d: %.*s" -#: builtin/apply.c:1494 +#: builtin/apply.c:1496 #, c-format msgid "" "git diff header lacks filename information when removing %d leading pathname " @@ -1658,66 +1751,66 @@ msgstr[1] "" "Dem Kopfbereich von \"git diff\" fehlen Informationen zum Dateinamen, wenn " "%d vorangestellte Teile des Pfades entfernt werden (Zeile %d)" -#: builtin/apply.c:1654 +#: builtin/apply.c:1656 msgid "new file depends on old contents" msgstr "neue Datei hängt von alten Inhalten ab" -#: builtin/apply.c:1656 +#: builtin/apply.c:1658 msgid "deleted file still has contents" msgstr "entfernte Datei hat noch Inhalte" -#: builtin/apply.c:1682 +#: builtin/apply.c:1684 #, c-format msgid "corrupt patch at line %d" msgstr "fehlerhafter Patch bei Zeile %d" -#: builtin/apply.c:1718 +#: builtin/apply.c:1720 #, c-format msgid "new file %s depends on old contents" msgstr "neue Datei %s hängt von alten Inhalten ab" -#: builtin/apply.c:1720 +#: builtin/apply.c:1722 #, c-format msgid "deleted file %s still has contents" msgstr "entfernte Datei %s hat noch Inhalte" -#: builtin/apply.c:1723 +#: builtin/apply.c:1725 #, c-format msgid "** warning: file %s becomes empty but is not deleted" msgstr "** Warnung: Datei %s wird leer, aber nicht entfernt." -#: builtin/apply.c:1869 +#: builtin/apply.c:1871 #, c-format msgid "corrupt binary patch at line %d: %.*s" msgstr "fehlerhafter Binär-Patch bei Zeile %d: %.*s" #. there has to be one hunk (forward hunk) -#: builtin/apply.c:1898 +#: builtin/apply.c:1900 #, c-format msgid "unrecognized binary patch at line %d" msgstr "nicht erkannter Binär-Patch bei Zeile %d" -#: builtin/apply.c:1984 +#: builtin/apply.c:1986 #, c-format msgid "patch with only garbage at line %d" msgstr "Patch mit nutzlosen Informationen bei Zeile %d" -#: builtin/apply.c:2074 +#: builtin/apply.c:2076 #, c-format msgid "unable to read symlink %s" msgstr "konnte symbolische Verknüpfung %s nicht lesen" -#: builtin/apply.c:2078 +#: builtin/apply.c:2080 #, c-format msgid "unable to open or read %s" msgstr "konnte %s nicht öffnen oder lesen" -#: builtin/apply.c:2682 +#: builtin/apply.c:2684 #, c-format msgid "invalid start of line: '%c'" msgstr "Ungültiger Zeilenanfang: '%c'" -#: builtin/apply.c:2800 +#: builtin/apply.c:2802 #, c-format msgid "Hunk #%d succeeded at %d (offset %d line)." msgid_plural "Hunk #%d succeeded at %d (offset %d lines)." @@ -1725,12 +1818,12 @@ msgstr[0] "Patch-Bereich #%d erfolgreich angewendet bei %d (%d Zeile versetzt)" msgstr[1] "" "Patch-Bereich #%d erfolgreich angewendet bei %d (%d Zeilen versetzt)" -#: builtin/apply.c:2812 +#: builtin/apply.c:2814 #, 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" -#: builtin/apply.c:2818 +#: builtin/apply.c:2820 #, c-format msgid "" "while searching for:\n" @@ -1739,340 +1832,340 @@ msgstr "" "bei der Suche nach:\n" "%.*s" -#: builtin/apply.c:2837 +#: builtin/apply.c:2839 #, c-format msgid "missing binary patch data for '%s'" msgstr "keine Daten in Binär-Patch für '%s'" -#: builtin/apply.c:2940 +#: builtin/apply.c:2942 #, c-format msgid "binary patch does not apply to '%s'" msgstr "Konnte Binär-Patch nicht auf '%s' anwenden" -#: builtin/apply.c:2946 +#: builtin/apply.c:2948 #, 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:2967 +#: builtin/apply.c:2969 #, c-format msgid "patch failed: %s:%ld" msgstr "Anwendung des Patches fehlgeschlagen: %s:%ld" -#: builtin/apply.c:3089 +#: builtin/apply.c:3091 #, c-format msgid "cannot checkout %s" msgstr "kann %s nicht auschecken" -#: builtin/apply.c:3134 builtin/apply.c:3143 builtin/apply.c:3187 +#: builtin/apply.c:3136 builtin/apply.c:3145 builtin/apply.c:3189 #, c-format msgid "read of %s failed" msgstr "Konnte %s nicht lesen" -#: builtin/apply.c:3167 builtin/apply.c:3389 +#: builtin/apply.c:3169 builtin/apply.c:3391 #, c-format msgid "path %s has been renamed/deleted" msgstr "Pfad %s wurde umbenannt/gelöscht" -#: builtin/apply.c:3248 builtin/apply.c:3403 +#: builtin/apply.c:3250 builtin/apply.c:3405 #, c-format msgid "%s: does not exist in index" msgstr "%s ist nicht bereitgestellt" -#: builtin/apply.c:3252 builtin/apply.c:3395 builtin/apply.c:3417 +#: builtin/apply.c:3254 builtin/apply.c:3397 builtin/apply.c:3419 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: builtin/apply.c:3257 builtin/apply.c:3411 +#: builtin/apply.c:3259 builtin/apply.c:3413 #, c-format msgid "%s: does not match index" msgstr "%s entspricht nicht der Bereitstellung" -#: builtin/apply.c:3359 +#: builtin/apply.c:3361 msgid "removal patch leaves file contents" msgstr "Lösch-Patch hinterlässt Dateiinhalte" -#: builtin/apply.c:3428 +#: builtin/apply.c:3430 #, c-format msgid "%s: wrong type" msgstr "%s: falscher Typ" -#: builtin/apply.c:3430 +#: builtin/apply.c:3432 #, c-format msgid "%s has type %o, expected %o" msgstr "%s ist vom Typ %o, erwartete %o" -#: builtin/apply.c:3531 +#: builtin/apply.c:3533 #, c-format msgid "%s: already exists in index" msgstr "%s ist bereits bereitgestellt" -#: builtin/apply.c:3534 +#: builtin/apply.c:3536 #, c-format msgid "%s: already exists in working directory" msgstr "%s existiert bereits im Arbeitsverzeichnis" -#: builtin/apply.c:3554 +#: builtin/apply.c:3556 #, c-format msgid "new mode (%o) of %s does not match old mode (%o)" msgstr "neuer Modus (%o) von %s entspricht nicht dem alten Modus (%o)" -#: builtin/apply.c:3559 +#: builtin/apply.c:3561 #, c-format msgid "new mode (%o) of %s does not match old mode (%o) of %s" msgstr "neuer Modus (%o) von %s entspricht nicht dem alten Modus (%o) von %s" -#: builtin/apply.c:3567 +#: builtin/apply.c:3569 #, c-format msgid "%s: patch does not apply" msgstr "%s: Patch konnte nicht angewendet werden" -#: builtin/apply.c:3580 +#: builtin/apply.c:3582 #, c-format msgid "Checking patch %s..." msgstr "Prüfe Patch %s..." -#: builtin/apply.c:3635 builtin/checkout.c:215 builtin/reset.c:124 +#: builtin/apply.c:3675 builtin/checkout.c:215 builtin/reset.c:124 #, c-format msgid "make_cache_entry failed for path '%s'" msgstr "make_cache_entry für Pfad '%s' fehlgeschlagen" -#: builtin/apply.c:3778 +#: builtin/apply.c:3818 #, c-format msgid "unable to remove %s from index" msgstr "konnte %s nicht aus der Bereitstellung entfernen" -#: builtin/apply.c:3806 +#: builtin/apply.c:3846 #, c-format msgid "corrupt patch for subproject %s" msgstr "fehlerhafter Patch für Unterprojekt %s" -#: builtin/apply.c:3810 +#: builtin/apply.c:3850 #, c-format msgid "unable to stat newly created file '%s'" msgstr "konnte neu erstellte Datei '%s' nicht lesen" -#: builtin/apply.c:3815 +#: builtin/apply.c:3855 #, 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:3818 builtin/apply.c:3926 +#: builtin/apply.c:3858 builtin/apply.c:3966 #, 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:3851 +#: builtin/apply.c:3891 #, c-format msgid "closing file '%s'" msgstr "schließe Datei '%s'" -#: builtin/apply.c:3900 +#: builtin/apply.c:3940 #, c-format msgid "unable to write file '%s' mode %o" msgstr "konnte Datei '%s' mit Modus %o nicht schreiben" -#: builtin/apply.c:3987 +#: builtin/apply.c:4027 #, c-format msgid "Applied patch %s cleanly." msgstr "Patch %s sauber angewendet" -#: builtin/apply.c:3995 +#: builtin/apply.c:4035 msgid "internal error" msgstr "interner Fehler" #. Say this even without --verbose -#: builtin/apply.c:3998 +#: builtin/apply.c:4038 #, 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:4008 +#: builtin/apply.c:4048 #, c-format msgid "truncating .rej filename to %.*s.rej" msgstr "Verkürze Name von .rej Datei zu %.*s.rej" -#: builtin/apply.c:4029 +#: builtin/apply.c:4069 #, c-format msgid "Hunk #%d applied cleanly." msgstr "Patch-Bereich #%d sauber angewendet." -#: builtin/apply.c:4032 +#: builtin/apply.c:4072 #, c-format msgid "Rejected hunk #%d." msgstr "Patch-Bereich #%d zurückgewiesen." -#: builtin/apply.c:4182 +#: builtin/apply.c:4222 msgid "unrecognized input" msgstr "nicht erkannte Eingabe" -#: builtin/apply.c:4193 +#: builtin/apply.c:4233 msgid "unable to read index file" msgstr "Konnte Bereitstellungsdatei nicht lesen" -#: builtin/apply.c:4312 builtin/apply.c:4315 builtin/clone.c:91 +#: builtin/apply.c:4352 builtin/apply.c:4355 builtin/clone.c:91 #: builtin/fetch.c:63 msgid "path" msgstr "Pfad" -#: builtin/apply.c:4313 +#: builtin/apply.c:4353 msgid "don't apply changes matching the given path" msgstr "wendet keine Änderungen im angegebenen Pfad an" -#: builtin/apply.c:4316 +#: builtin/apply.c:4356 msgid "apply changes matching the given path" msgstr "wendet Änderungen nur im angegebenen Pfad an" -#: builtin/apply.c:4318 +#: builtin/apply.c:4358 msgid "num" msgstr "Anzahl" -#: builtin/apply.c:4319 +#: builtin/apply.c:4359 msgid "remove <num> leading slashes from traditional diff paths" msgstr "" "entfernt <Anzahl> vorangestellte Schrägstriche von herkömmlichen " "Differenzpfaden" -#: builtin/apply.c:4322 +#: builtin/apply.c:4362 msgid "ignore additions made by the patch" msgstr "ignoriert hinzugefügte Zeilen des Patches" -#: builtin/apply.c:4324 +#: builtin/apply.c:4364 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:4328 +#: builtin/apply.c:4368 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:4330 +#: builtin/apply.c:4370 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:4332 +#: builtin/apply.c:4372 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:4334 +#: builtin/apply.c:4374 msgid "make sure the patch is applicable to the current index" msgstr "" "stellt sicher, dass der Patch in der aktuellen Bereitstellung angewendet " "werden kann" -#: builtin/apply.c:4336 +#: builtin/apply.c:4376 msgid "apply a patch without touching the working tree" msgstr "wendet einen Patch an, ohne Änderungen im Arbeitszweig vorzunehmen" -#: builtin/apply.c:4338 +#: builtin/apply.c:4378 msgid "also apply the patch (use with --stat/--summary/--check)" msgstr "wendet den Patch an (Benutzung mit --stat/--summary/--check)" -#: builtin/apply.c:4340 +#: builtin/apply.c:4380 msgid "attempt three-way merge if a patch does not apply" msgstr "" "versucht 3-Wege-Zusammenführung, wenn der Patch nicht angewendet werden " "konnte" -#: builtin/apply.c:4342 +#: builtin/apply.c:4382 msgid "build a temporary index based on embedded index information" msgstr "" "erstellt eine temporäre Bereitstellung basierend auf den integrierten " "Bereitstellungsinformationen" -#: builtin/apply.c:4344 builtin/checkout-index.c:197 builtin/ls-files.c:460 +#: builtin/apply.c:4384 builtin/checkout-index.c:197 builtin/ls-files.c:463 msgid "paths are separated with NUL character" msgstr "Pfade sind getrennt durch NUL Zeichen" -#: builtin/apply.c:4347 +#: builtin/apply.c:4387 msgid "ensure at least <n> lines of context match" msgstr "stellt sicher, dass mindestens <n> Zeilen des Kontextes übereinstimmen" -#: builtin/apply.c:4348 +#: builtin/apply.c:4388 msgid "action" msgstr "Aktion" -#: builtin/apply.c:4349 +#: builtin/apply.c:4389 msgid "detect new or modified lines that have whitespace errors" msgstr "ermittelt neue oder geänderte Zeilen die Fehler in Leerzeichen haben" -#: builtin/apply.c:4352 builtin/apply.c:4355 +#: builtin/apply.c:4392 builtin/apply.c:4395 msgid "ignore changes in whitespace when finding context" msgstr "ignoriert Änderungen in Leerzeichen bei der Suche des Kontextes" -#: builtin/apply.c:4358 +#: builtin/apply.c:4398 msgid "apply the patch in reverse" msgstr "wendet den Patch in umgekehrter Reihenfolge an" -#: builtin/apply.c:4360 +#: builtin/apply.c:4400 msgid "don't expect at least one line of context" msgstr "erwartet keinen Kontext" -#: builtin/apply.c:4362 +#: builtin/apply.c:4402 msgid "leave the rejected hunks in corresponding *.rej files" msgstr "" "hinterlässt zurückgewiesene Patch-Bereiche in den entsprechenden *.rej " "Dateien" -#: builtin/apply.c:4364 +#: builtin/apply.c:4404 msgid "allow overlapping hunks" msgstr "erlaubt sich überlappende Patch-Bereiche" -#: builtin/apply.c:4367 +#: builtin/apply.c:4407 msgid "tolerate incorrectly detected missing new-line at the end of file" msgstr "toleriert fehlerhaft erkannten fehlenden Zeilenumbruch am Dateiende" -#: builtin/apply.c:4370 +#: builtin/apply.c:4410 msgid "do not trust the line counts in the hunk headers" msgstr "vertraut nicht den Zeilennummern im Kopf des Patch-Bereiches" -#: builtin/apply.c:4372 +#: builtin/apply.c:4412 msgid "root" msgstr "Wurzelverzeichnis" -#: builtin/apply.c:4373 +#: builtin/apply.c:4413 msgid "prepend <root> to all filenames" msgstr "stellt <Wurzelverzeichnis> vor alle Dateinamen" -#: builtin/apply.c:4395 +#: builtin/apply.c:4435 msgid "--3way outside a repository" msgstr "" "Die Option --3way kann nicht außerhalb eines Projektarchivs verwendet werden." -#: builtin/apply.c:4403 +#: builtin/apply.c:4443 msgid "--index outside a repository" msgstr "" "Die Option --index kann nicht außerhalb eines Projektarchivs verwendet " "werden." -#: builtin/apply.c:4406 +#: builtin/apply.c:4446 msgid "--cached outside a repository" msgstr "" "Die Option --cached kann nicht außerhalb eines Projektarchivs verwendet " "werden." -#: builtin/apply.c:4422 +#: builtin/apply.c:4462 #, c-format msgid "can't open patch '%s'" msgstr "kann Patch '%s' nicht öffnen" -#: builtin/apply.c:4436 +#: builtin/apply.c:4476 #, c-format msgid "squelched %d whitespace error" msgid_plural "squelched %d whitespace errors" msgstr[0] "unterdrückte %d Fehler in Leerzeichen" msgstr[1] "unterdrückte %d Fehler in Leerzeichen" -#: builtin/apply.c:4442 builtin/apply.c:4452 +#: builtin/apply.c:4482 builtin/apply.c:4492 #, c-format msgid "%d line adds whitespace errors." msgid_plural "%d lines add whitespace errors." @@ -2134,96 +2227,96 @@ msgstr "git blame [Optionen] [rev-opts] [rev] [--] Datei" msgid "[rev-opts] are documented in git-rev-list(1)" msgstr "[rev-opts] sind dokumentiert in git-rev-list(1)" -#: builtin/blame.c:2364 +#: builtin/blame.c:2350 msgid "Show blame entries as we find them, incrementally" msgstr "Zeigt \"blame\"-Einträge schrittweise, während wir sie generieren" -#: builtin/blame.c:2365 +#: builtin/blame.c:2351 msgid "Show blank SHA-1 for boundary commits (Default: off)" msgstr "Zeigt leere SHA-1 für Grenzversionen (Standard: aus)" -#: builtin/blame.c:2366 +#: builtin/blame.c:2352 msgid "Do not treat root commits as boundaries (Default: off)" msgstr "Behandelt Ursprungsversionen nicht als Grenzen (Standard: aus)" -#: builtin/blame.c:2367 +#: builtin/blame.c:2353 msgid "Show work cost statistics" msgstr "Zeigt Statistiken zum Arbeitsaufwand" -#: builtin/blame.c:2368 +#: builtin/blame.c:2354 msgid "Show output score for blame entries" msgstr "Zeigt Ausgabebewertung für \"blame\"-Einträge" -#: builtin/blame.c:2369 +#: builtin/blame.c:2355 msgid "Show original filename (Default: auto)" msgstr "Zeigt ursprünglichen Dateinamen (Standard: auto)" -#: builtin/blame.c:2370 +#: builtin/blame.c:2356 msgid "Show original linenumber (Default: off)" msgstr "Zeigt ursprüngliche Zeilennummer (Standard: aus)" -#: builtin/blame.c:2371 +#: builtin/blame.c:2357 msgid "Show in a format designed for machine consumption" msgstr "Anzeige in einem Format für maschinelle Auswertung" -#: builtin/blame.c:2372 +#: builtin/blame.c:2358 msgid "Show porcelain format with per-line commit information" msgstr "" "Anzeige in Format für Fremdprogramme mit Versionsinformationen pro Zeile" -#: builtin/blame.c:2373 +#: builtin/blame.c:2359 msgid "Use the same output mode as git-annotate (Default: off)" msgstr "Benutzt den gleichen Ausgabemodus wie \"git-annotate\" (Standard: aus)" -#: builtin/blame.c:2374 +#: builtin/blame.c:2360 msgid "Show raw timestamp (Default: off)" msgstr "Zeigt unbearbeiteten Zeitstempel (Standard: aus)" -#: builtin/blame.c:2375 +#: builtin/blame.c:2361 msgid "Show long commit SHA1 (Default: off)" msgstr "Zeigt langen Versions-SHA1 (Standard: aus)" -#: builtin/blame.c:2376 +#: builtin/blame.c:2362 msgid "Suppress author name and timestamp (Default: off)" msgstr "Unterdrückt den Namen des Autors und den Zeitstempel (Standard: aus)" -#: builtin/blame.c:2377 +#: builtin/blame.c:2363 msgid "Show author email instead of name (Default: off)" msgstr "Zeigt anstatt des Namens die Email-Adresse des Autors (Standard: aus)" -#: builtin/blame.c:2378 +#: builtin/blame.c:2364 msgid "Ignore whitespace differences" msgstr "Ignoriert Unterschiede in Leerzeichen" -#: builtin/blame.c:2379 +#: builtin/blame.c:2365 msgid "Spend extra cycles to find better match" msgstr "arbeite länger, um bessere Übereinstimmungen zu finden" -#: builtin/blame.c:2380 +#: builtin/blame.c:2366 msgid "Use revisions from <file> instead of calling git-rev-list" msgstr "Benutzt Revisionen von <Datei> anstatt \"git-rev-list\" aufzurufen" -#: builtin/blame.c:2381 +#: builtin/blame.c:2367 msgid "Use <file>'s contents as the final image" msgstr "Benutzt Inhalte der <Datei>en als entgültiges Abbild" -#: builtin/blame.c:2382 builtin/blame.c:2383 +#: builtin/blame.c:2368 builtin/blame.c:2369 msgid "score" msgstr "Bewertung" -#: builtin/blame.c:2382 +#: builtin/blame.c:2368 msgid "Find line copies within and across files" msgstr "Findet kopierte Zeilen innerhalb oder zwischen Dateien" -#: builtin/blame.c:2383 +#: builtin/blame.c:2369 msgid "Find line movements within and across files" msgstr "Findet verschobene Zeilen innerhalb oder zwischen Dateien" -#: builtin/blame.c:2384 +#: builtin/blame.c:2370 msgid "n,m" msgstr "n,m" -#: builtin/blame.c:2384 +#: builtin/blame.c:2370 msgid "Process only line range n,m, counting from 1" msgstr "Verarbeitet nur Zeilen im Bereich n,m, gezählt von 1" @@ -2360,10 +2453,19 @@ msgstr "[%s: %d voraus, %d hinterher]" msgid "[ahead %d, behind %d]" msgstr "[%d voraus, %d hinterher]" +#: builtin/branch.c:469 +msgid " **** invalid ref ****" +msgstr " **** ungültige Referenz ****" + #: builtin/branch.c:560 msgid "(no branch)" msgstr "(kein Zweig)" +#: builtin/branch.c:593 +#, c-format +msgid "object '%s' does not point to a commit" +msgstr "Objekt '%s' zeigt auf keine Version" + #: builtin/branch.c:625 msgid "some refs could not be read" msgstr "Konnte einige Referenzen nicht lesen" @@ -2437,8 +2539,8 @@ msgid "act on remote-tracking branches" msgstr "wirkt auf externe Übernahmezweige" #: builtin/branch.c:761 builtin/branch.c:767 builtin/branch.c:788 -#: builtin/branch.c:794 builtin/commit.c:1378 builtin/commit.c:1379 -#: builtin/commit.c:1380 builtin/commit.c:1381 builtin/tag.c:470 +#: builtin/branch.c:794 builtin/commit.c:1366 builtin/commit.c:1367 +#: builtin/commit.c:1368 builtin/commit.c:1369 builtin/tag.c:468 msgid "commit" msgstr "Version" @@ -2507,27 +2609,54 @@ msgstr "Konnte Zweigspitze (HEAD) nicht als gültige Referenz auflösen." msgid "HEAD not found below refs/heads!" msgstr "Zweigspitze (HEAD) wurde nicht unter \"refs/heads\" gefunden!" -#: builtin/branch.c:836 +#: builtin/branch.c:839 msgid "--column and --verbose are incompatible" msgstr "Die Optionen --column und --verbose sind inkompatibel." -#: builtin/branch.c:887 +#: builtin/branch.c:845 +msgid "branch name required" +msgstr "Zweigname erforderlich" + +#: builtin/branch.c:860 +msgid "Cannot give description to detached HEAD" +msgstr "" +"zu losgelöster Zweigspitze (HEAD) kann keine Beschreibung hinterlegt werden" + +#: builtin/branch.c:865 +msgid "cannot edit description of more than one branch" +msgstr "Beschreibung von mehr als einem Zweig kann nicht bearbeitet werden" + +#: builtin/branch.c:872 +#, c-format +msgid "No commit on branch '%s' yet." +msgstr "Noch keine Version in Zweig '%s'." + +#: builtin/branch.c:875 +#, c-format +msgid "No branch named '%s'." +msgstr "Zweig '%s' nicht vorhanden." + +#: builtin/branch.c:888 +msgid "too many branches for a rename operation" +msgstr "zu viele Zweige für eine Umbenennen-Operation angegeben" + +#: builtin/branch.c:893 #, c-format msgid "branch '%s' does not exist" msgstr "Zweig '%s' existiert nicht" -#: builtin/branch.c:899 +#: builtin/branch.c:905 #, c-format msgid "Branch '%s' has no upstream information" msgstr "Zweig '%s' hat keinen externen Übernahmezweig gesetzt" -#: builtin/branch.c:914 +#: builtin/branch.c:920 msgid "-a and -r options to 'git branch' do not make sense with a branch name" msgstr "" "Die Optionen -a und -r bei 'git branch' können nicht gemeimsam mit einem " "Zweignamen verwendet werden." -#: builtin/branch.c:917 +#: builtin/branch.c:923 #, c-format msgid "" "The --set-upstream flag is deprecated and will be removed. Consider using --" @@ -2536,7 +2665,7 @@ msgstr "" "Die --set-upstream Option ist veraltet und wird entfernt. Benutzen Sie --" "track oder --set-upstream-to\n" -#: builtin/branch.c:934 +#: builtin/branch.c:940 #, c-format msgid "" "\n" @@ -2547,12 +2676,12 @@ msgstr "" "Wenn Sie wollten, dass '%s' den Zweig '%s' als externen Übernahmezweig hat, " "führen Sie aus:\n" -#: builtin/branch.c:935 +#: builtin/branch.c:941 #, c-format msgid " git branch -d %s\n" msgstr " git branch -d %s\n" -#: builtin/branch.c:936 +#: builtin/branch.c:942 #, c-format msgid " git branch --set-upstream-to %s\n" msgstr " git branch --set-upstream-to %s\n" @@ -2630,14 +2759,39 @@ msgstr "gibt alle Attribute einer Datei aus" msgid "use .gitattributes only from the index" msgstr "verwendet .gitattributes nur von der Bereitstellung" -#: builtin/check-attr.c:21 builtin/hash-object.c:75 +#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:75 msgid "read file names from stdin" msgstr "liest Dateinamen von der Standard-Eingabe" -#: builtin/check-attr.c:23 +#: builtin/check-attr.c:23 builtin/check-ignore.c:24 msgid "input paths are terminated by a null character" msgstr "Eingabepfade sind durch ein NUL Zeichen abgeschlossen" +#: builtin/check-ignore.c:18 builtin/checkout.c:1012 builtin/gc.c:177 +msgid "suppress progress reporting" +msgstr "unterdrückt Fortschrittsanzeige" + +#: builtin/check-ignore.c:151 +msgid "cannot specify pathnames with --stdin" +msgstr "Angabe von Pfadnamen kann nicht gemeinsam mit --stdin verwendet werden" + +#: builtin/check-ignore.c:154 +msgid "-z only makes sense with --stdin" +msgstr "Die Option -z kann nur mit --stdin verwendet werden." + +#: builtin/check-ignore.c:156 +msgid "no path specified" +msgstr "kein Pfad angegeben" + +#: builtin/check-ignore.c:160 +msgid "--quiet is only valid with a single pathname" +msgstr "Die Option --quiet ist nur mit einem einzelnen Pfadnamen gültig." + +#: builtin/check-ignore.c:162 +msgid "cannot have both --quiet and --verbose" +msgstr "" +"Die Optionen --quiet und --verbose können nicht gemeinsam verwendet werden." + #: builtin/checkout-index.c:126 msgid "git checkout-index [options] [--] [<file>...]" msgstr "git checkout-index [Optionen] [--] [<Datei>...]" @@ -2874,10 +3028,6 @@ msgstr "'%s' kann nicht mit '%s' verwendet werden" msgid "Cannot switch branch to a non-commit '%s'" msgstr "Kann Zweig nicht zu Nicht-Version '%s' wechseln" -#: builtin/checkout.c:1012 builtin/gc.c:177 -msgid "suppress progress reporting" -msgstr "unterdrückt Fortschrittsanzeige" - #: builtin/checkout.c:1013 builtin/checkout.c:1015 builtin/clone.c:89 #: builtin/remote.c:169 builtin/remote.c:171 msgid "branch" @@ -3011,47 +3161,47 @@ msgstr "Würde Projektarchiv %s überspringen\n" msgid "failed to remove %s" msgstr "Fehler beim Löschen von %s" -#: builtin/clean.c:159 +#: builtin/clean.c:160 msgid "do not print names of files removed" msgstr "gibt keine Namen von gelöschten Dateien aus" -#: builtin/clean.c:161 +#: builtin/clean.c:162 msgid "force" msgstr "erzwingt Aktion" -#: builtin/clean.c:163 +#: builtin/clean.c:164 msgid "remove whole directories" msgstr "löscht ganze Verzeichnisse" -#: builtin/clean.c:164 builtin/describe.c:413 builtin/grep.c:717 -#: builtin/ls-files.c:491 builtin/name-rev.c:231 builtin/show-ref.c:182 +#: builtin/clean.c:165 builtin/describe.c:413 builtin/grep.c:717 +#: builtin/ls-files.c:494 builtin/name-rev.c:231 builtin/show-ref.c:182 msgid "pattern" msgstr "Muster" -#: builtin/clean.c:165 +#: builtin/clean.c:166 msgid "add <pattern> to ignore rules" msgstr "fügt <Muster> zu den Regeln für ignorierte Pfade hinzu" -#: builtin/clean.c:166 +#: builtin/clean.c:167 msgid "remove ignored files, too" msgstr "löscht auch ignorierte Dateien" -#: builtin/clean.c:168 +#: builtin/clean.c:169 msgid "remove only ignored files" msgstr "löscht nur ignorierte Dateien" -#: builtin/clean.c:186 +#: builtin/clean.c:187 msgid "-x and -X cannot be used together" msgstr "Die Optionen -x und -X können nicht gemeinsam verwendet werden." -#: builtin/clean.c:190 +#: builtin/clean.c:191 msgid "" "clean.requireForce set to true and neither -n nor -f given; refusing to clean" msgstr "" "clean.requireForce auf \"true\" gesetzt und weder -n noch -f gegeben; " "Säuberung verweigert" -#: builtin/clean.c:193 +#: builtin/clean.c:194 msgid "" "clean.requireForce defaults to true and neither -n nor -f given; refusing to " "clean" @@ -3064,7 +3214,7 @@ msgid "git clone [options] [--] <repo> [<dir>]" msgstr "git clone [Optionen] [--] <Projektarchiv> [<Verzeichnis>]" #: builtin/clone.c:64 builtin/fetch.c:82 builtin/merge.c:212 -#: builtin/push.c:407 +#: builtin/push.c:436 msgid "force progress reporting" msgstr "erzwingt Fortschrittsanzeige" @@ -3178,11 +3328,6 @@ msgstr "%s existiert und ist kein Verzeichnis" msgid "failed to stat %s\n" msgstr "Konnte %s nicht lesen\n" -#: builtin/clone.c:341 -#, c-format -msgid "failed to unlink '%s'" -msgstr "Konnte '%s' nicht entfernen" - #: builtin/clone.c:346 #, c-format msgid "failed to create link '%s'" @@ -3247,7 +3392,7 @@ msgstr "Zielpfad '%s' existiert bereits und ist kein leeres Verzeichnis." msgid "working tree '%s' already exists." msgstr "Arbeitsbaum '%s' existiert bereits." -#: builtin/clone.c:759 builtin/clone.c:773 +#: builtin/clone.c:759 builtin/clone.c:771 #, c-format msgid "could not create leading directories of '%s'" msgstr "Konnte führende Verzeichnisse von '%s' nicht erstellen." @@ -3257,27 +3402,27 @@ msgstr "Konnte führende Verzeichnisse von '%s' nicht erstellen." msgid "could not create work tree dir '%s'." msgstr "Konnte Arbeitsverzeichnis '%s' nicht erstellen." -#: builtin/clone.c:783 +#: builtin/clone.c:781 #, c-format msgid "Cloning into bare repository '%s'...\n" msgstr "Klone in bloßes Projektarchiv '%s'...\n" -#: builtin/clone.c:785 +#: builtin/clone.c:783 #, c-format msgid "Cloning into '%s'...\n" msgstr "Klone nach '%s'...\n" -#: builtin/clone.c:827 +#: builtin/clone.c:818 #, c-format msgid "Don't know how to clone %s" msgstr "Weiß nicht wie %s zu klonen ist." -#: builtin/clone.c:876 +#: builtin/clone.c:867 #, c-format msgid "Remote branch %s not found in upstream %s" msgstr "externer Zweig %s nicht im anderen Projektarchiv %s gefunden" -#: builtin/clone.c:883 +#: builtin/clone.c:874 msgid "You appear to have cloned an empty repository." msgstr "Sie scheinen ein leeres Projektarchiv geklont zu haben." @@ -3314,12 +3459,12 @@ msgid "--command must be the first argument" msgstr "Die Option --command muss an erster Stelle stehen." #: builtin/commit.c:34 -msgid "git commit [options] [--] <filepattern>..." -msgstr "git commit [Optionen] [--] <Dateimuster>..." +msgid "git commit [options] [--] <pathspec>..." +msgstr "git commit [Optionen] [--] <Pfadspezifikation>..." #: builtin/commit.c:39 -msgid "git status [options] [--] <filepattern>..." -msgstr "git status [Optionen] [--] <Dateimuster>..." +msgid "git status [options] [--] <pathspec>..." +msgstr "git status [Optionen] [--] <Pfadspezifikation>..." #: builtin/commit.c:44 msgid "" @@ -3495,23 +3640,26 @@ msgstr "" "und versuchen Sie es erneut.\n" #: builtin/commit.c:735 +#, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" -"with '#' will be ignored, and an empty message aborts the commit.\n" +"with '%c' will be ignored, and an empty message aborts the commit.\n" msgstr "" "Bitte geben Sie eine Versionsbeschreibung für Ihre Änderungen ein. Zeilen,\n" -"die mit '#' beginnen, werden ignoriert, und eine leere Versionsbeschreibung\n" +"die mit '%c' beginnen, werden ignoriert, und eine leere " +"Versionsbeschreibung\n" "bricht die Eintragung ab.\n" #: builtin/commit.c:740 +#, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" -"with '#' will be kept; you may remove them yourself if you want to.\n" +"with '%c' will be kept; you may remove them yourself if you want to.\n" "An empty message aborts the commit.\n" msgstr "" "Bitte geben Sie eine Versionsbeschreibung für Ihre Änderungen ein. Zeilen, " "die\n" -"mit '#' beginnen, werden beibehalten; wenn Sie möchten, können Sie diese " +"mit '%c' beginnen, werden beibehalten; wenn Sie möchten, können Sie diese " "entfernen.\n" "Eine leere Versionsbeschreibung bricht die Eintragung ab.\n" @@ -3533,7 +3681,7 @@ msgstr "Kann Bereitstellung nicht lesen" msgid "Error building trees" msgstr "Fehler beim Erzeugen der Zweige" -#: builtin/commit.c:832 builtin/tag.c:361 +#: builtin/commit.c:832 builtin/tag.c:359 #, c-format msgid "Please supply the message using either -m or -F option.\n" msgstr "Bitte liefere eine Beschreibung entweder mit der Option -m oder -F.\n" @@ -3543,123 +3691,123 @@ msgstr "Bitte liefere eine Beschreibung entweder mit der Option -m oder -F.\n" msgid "No existing author found with '%s'" msgstr "Kein existierender Autor mit '%s' gefunden." -#: builtin/commit.c:944 builtin/commit.c:1148 +#: builtin/commit.c:944 builtin/commit.c:1138 #, c-format msgid "Invalid untracked files mode '%s'" msgstr "Ungültiger Modus '%s' für unbeobachtete Dateien" -#: builtin/commit.c:984 +#: builtin/commit.c:974 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:995 +#: builtin/commit.c:985 msgid "You have nothing to amend." msgstr "Sie haben nichts zum nachbessern." -#: builtin/commit.c:998 +#: builtin/commit.c:988 msgid "You are in the middle of a merge -- cannot amend." msgstr "Eine Zusammenführung ist im Gange -- kann nicht nachbessern." -#: builtin/commit.c:1000 +#: builtin/commit.c:990 msgid "You are in the middle of a cherry-pick -- cannot amend." msgstr "\"cherry-pick\" ist im Gange -- kann nicht nachbessern." -#: builtin/commit.c:1003 +#: builtin/commit.c:993 msgid "Options --squash and --fixup cannot be used together" msgstr "" "Die Optionen --squash und --fixup können nicht gemeinsam verwendet werden." -#: builtin/commit.c:1013 +#: builtin/commit.c:1003 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:1015 +#: builtin/commit.c:1005 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:1023 +#: builtin/commit.c:1013 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:1040 +#: builtin/commit.c:1030 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:1042 +#: builtin/commit.c:1032 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:1044 +#: builtin/commit.c:1034 msgid "Clever... amending the last one with dirty index." msgstr "" "Klug... die letzte Version mit einer unsauberen Bereitstellung nachbessern." -#: builtin/commit.c:1046 +#: builtin/commit.c:1036 msgid "Explicit paths specified without -i nor -o; assuming --only paths..." msgstr "" "Explizite Pfade ohne -i oder -o angegeben; unter der Annahme von --only " "Pfaden..." -#: builtin/commit.c:1056 builtin/tag.c:577 +#: builtin/commit.c:1046 builtin/tag.c:575 #, c-format msgid "Invalid cleanup mode %s" msgstr "Ungültiger \"cleanup\" Modus %s" -#: builtin/commit.c:1061 +#: builtin/commit.c:1051 msgid "Paths with -a does not make sense." msgstr "Die Option -a kann nur mit der Angabe von Pfaden verwendet werden." -#: builtin/commit.c:1067 builtin/commit.c:1202 +#: builtin/commit.c:1057 builtin/commit.c:1192 msgid "--long and -z are incompatible" msgstr "Die Optionen --long und -z sind inkompatibel." -#: builtin/commit.c:1162 builtin/commit.c:1400 +#: builtin/commit.c:1152 builtin/commit.c:1388 msgid "show status concisely" msgstr "zeigt Status im Kurzformat" -#: builtin/commit.c:1164 builtin/commit.c:1402 +#: builtin/commit.c:1154 builtin/commit.c:1390 msgid "show branch information" msgstr "zeigt Zweiginformationen" -#: builtin/commit.c:1166 builtin/commit.c:1404 builtin/push.c:397 +#: builtin/commit.c:1156 builtin/commit.c:1392 builtin/push.c:426 msgid "machine-readable output" msgstr "maschinenlesbare Ausgabe" -#: builtin/commit.c:1169 builtin/commit.c:1406 +#: builtin/commit.c:1159 builtin/commit.c:1394 msgid "show status in long format (default)" msgstr "zeigt Status im Langformat (Standard)" -#: builtin/commit.c:1172 builtin/commit.c:1409 +#: builtin/commit.c:1162 builtin/commit.c:1397 msgid "terminate entries with NUL" msgstr "schließt Einträge mit NUL-Zeichen ab" -#: builtin/commit.c:1174 builtin/commit.c:1412 builtin/fast-export.c:647 -#: builtin/fast-export.c:650 builtin/tag.c:461 +#: builtin/commit.c:1164 builtin/commit.c:1400 builtin/fast-export.c:647 +#: builtin/fast-export.c:650 builtin/tag.c:459 msgid "mode" msgstr "Modus" -#: builtin/commit.c:1175 builtin/commit.c:1412 +#: builtin/commit.c:1165 builtin/commit.c:1400 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:1178 +#: builtin/commit.c:1168 msgid "show ignored files" msgstr "zeigt ignorierte Dateien" -#: builtin/commit.c:1179 parse-options.h:151 +#: builtin/commit.c:1169 parse-options.h:151 msgid "when" msgstr "wann" -#: builtin/commit.c:1180 +#: builtin/commit.c:1170 msgid "" "ignore changes to submodules, optional when: all, dirty, untracked. " "(Default: all)" @@ -3667,219 +3815,219 @@ msgstr "" "ignoriert Änderungen in Unterprojekten, optional wenn: all, dirty, " "untracked. (Standard: all)" -#: builtin/commit.c:1182 +#: builtin/commit.c:1172 msgid "list untracked files in columns" msgstr "listet unbeobachtete Dateien in Spalten auf" -#: builtin/commit.c:1256 +#: builtin/commit.c:1246 msgid "couldn't look up newly created commit" msgstr "Konnte neu erstellte Version nicht nachschlagen." -#: builtin/commit.c:1258 +#: builtin/commit.c:1248 msgid "could not parse newly created commit" msgstr "Konnte neulich erstellte Version nicht analysieren." -#: builtin/commit.c:1299 +#: builtin/commit.c:1289 msgid "detached HEAD" msgstr "losgelöste Zweigspitze (HEAD)" -#: builtin/commit.c:1301 +#: builtin/commit.c:1291 msgid " (root-commit)" msgstr " (Basis-Version)" -#: builtin/commit.c:1370 +#: builtin/commit.c:1358 msgid "suppress summary after successful commit" msgstr "unterdrückt Zusammenfassung nach erfolgreicher Eintragung" -#: builtin/commit.c:1371 +#: builtin/commit.c:1359 msgid "show diff in commit message template" msgstr "zeigt Unterschiede in Versionsbeschreibungsvorlage an" -#: builtin/commit.c:1373 +#: builtin/commit.c:1361 msgid "Commit message options" msgstr "Optionen für Versionsbeschreibung" -#: builtin/commit.c:1374 builtin/tag.c:459 +#: builtin/commit.c:1362 builtin/tag.c:457 msgid "read message from file" msgstr "liest Beschreibung von Datei" -#: builtin/commit.c:1375 +#: builtin/commit.c:1363 msgid "author" msgstr "Autor" -#: builtin/commit.c:1375 +#: builtin/commit.c:1363 msgid "override author for commit" msgstr "überschreibt Autor von Version" -#: builtin/commit.c:1376 builtin/gc.c:178 +#: builtin/commit.c:1364 builtin/gc.c:178 msgid "date" msgstr "Datum" -#: builtin/commit.c:1376 +#: builtin/commit.c:1364 msgid "override date for commit" msgstr "überschreibt Datum von Version" -#: builtin/commit.c:1377 builtin/merge.c:206 builtin/notes.c:537 -#: builtin/notes.c:694 builtin/tag.c:457 +#: builtin/commit.c:1365 builtin/merge.c:206 builtin/notes.c:533 +#: builtin/notes.c:690 builtin/tag.c:455 msgid "message" msgstr "Beschreibung" -#: builtin/commit.c:1377 +#: builtin/commit.c:1365 msgid "commit message" msgstr "Versionsbeschreibung" -#: builtin/commit.c:1378 +#: builtin/commit.c:1366 msgid "reuse and edit message from specified commit" msgstr "verwendet wieder und editiert Beschreibung von der angegebenen Version" -#: builtin/commit.c:1379 +#: builtin/commit.c:1367 msgid "reuse message from specified commit" msgstr "verwendet Beschreibung der angegebenen Version wieder" -#: builtin/commit.c:1380 +#: builtin/commit.c:1368 msgid "use autosquash formatted message to fixup specified commit" msgstr "" "verwendet eine automatisch zusammengesetzte Beschreibung zum Nachbessern der " "angegebenen Version" -#: builtin/commit.c:1381 +#: builtin/commit.c:1369 msgid "use autosquash formatted message to squash specified commit" msgstr "" "verwendet eine automatisch zusammengesetzte Beschreibung zum Zusammenführen " "der angegebenen Version" -#: builtin/commit.c:1382 +#: builtin/commit.c:1370 msgid "the commit is authored by me now (used with -C/-c/--amend)" msgstr "Setzt Sie als Autor der Version (verwendet mit -C/-c/--amend)" -#: builtin/commit.c:1383 builtin/log.c:1102 builtin/revert.c:109 +#: builtin/commit.c:1371 builtin/log.c:1102 builtin/revert.c:109 msgid "add Signed-off-by:" msgstr "fügt 'Signed-off-by:'-Zeile hinzu" -#: builtin/commit.c:1384 +#: builtin/commit.c:1372 msgid "use specified template file" msgstr "verwendet angegebene Vorlagendatei" -#: builtin/commit.c:1385 +#: builtin/commit.c:1373 msgid "force edit of commit" msgstr "erzwingt Bearbeitung der Version" -#: builtin/commit.c:1386 +#: builtin/commit.c:1374 msgid "default" msgstr "Standard" -#: builtin/commit.c:1386 builtin/tag.c:462 +#: builtin/commit.c:1374 builtin/tag.c:460 msgid "how to strip spaces and #comments from message" msgstr "" "wie Leerzeichen und #Kommentare von der Beschreibung getrennt werden sollen" -#: builtin/commit.c:1387 +#: builtin/commit.c:1375 msgid "include status in commit message template" msgstr "fügt Status in die Versionsbeschreibungsvorlage ein" -#: builtin/commit.c:1388 builtin/merge.c:213 builtin/tag.c:463 +#: builtin/commit.c:1376 builtin/merge.c:213 builtin/tag.c:461 msgid "key id" msgstr "Schlüssel-ID" -#: builtin/commit.c:1389 builtin/merge.c:214 +#: builtin/commit.c:1377 builtin/merge.c:214 msgid "GPG sign commit" msgstr "signiert Version mit GPG" #. end commit message options -#: builtin/commit.c:1392 +#: builtin/commit.c:1380 msgid "Commit contents options" msgstr "Optionen für Versionsinhalt" -#: builtin/commit.c:1393 +#: builtin/commit.c:1381 msgid "commit all changed files" msgstr "trägt alle geänderten Dateien ein" -#: builtin/commit.c:1394 +#: builtin/commit.c:1382 msgid "add specified files to index for commit" msgstr "trägt die angegebenen Dateien zusätzlich zur Bereitstellung ein" -#: builtin/commit.c:1395 +#: builtin/commit.c:1383 msgid "interactively add files" msgstr "interaktives Hinzufügen von Dateien" -#: builtin/commit.c:1396 +#: builtin/commit.c:1384 msgid "interactively add changes" msgstr "interaktives Hinzufügen von Änderungen" -#: builtin/commit.c:1397 +#: builtin/commit.c:1385 msgid "commit only specified files" msgstr "trägt nur die angegebenen Dateien ein" -#: builtin/commit.c:1398 +#: builtin/commit.c:1386 msgid "bypass pre-commit hook" msgstr "umgeht \"pre-commit hook\"" -#: builtin/commit.c:1399 +#: builtin/commit.c:1387 msgid "show what would be committed" msgstr "zeigt an, was eingetragen werden würde" -#: builtin/commit.c:1410 +#: builtin/commit.c:1398 msgid "amend previous commit" msgstr "ändert vorherige Version" -#: builtin/commit.c:1411 +#: builtin/commit.c:1399 msgid "bypass post-rewrite hook" msgstr "umgeht \"post-rewrite hook\"" -#: builtin/commit.c:1416 +#: builtin/commit.c:1404 msgid "ok to record an empty change" msgstr "erlaubt Aufzeichnung einer leeren Änderung" -#: builtin/commit.c:1419 +#: builtin/commit.c:1407 msgid "ok to record a change with an empty message" msgstr "erlaubt Aufzeichnung einer Änderung mit einer leeren Beschreibung" -#: builtin/commit.c:1451 +#: builtin/commit.c:1439 msgid "could not parse HEAD commit" msgstr "Konnte Version der Zweigspitze (HEAD) nicht analysieren." -#: builtin/commit.c:1489 builtin/merge.c:508 +#: builtin/commit.c:1477 builtin/merge.c:508 #, c-format msgid "could not open '%s' for reading" msgstr "Konnte '%s' nicht zum Lesen öffnen." -#: builtin/commit.c:1496 +#: builtin/commit.c:1484 #, c-format msgid "Corrupt MERGE_HEAD file (%s)" msgstr "Beschädigte MERGE_HEAD-Datei (%s)" -#: builtin/commit.c:1503 +#: builtin/commit.c:1491 msgid "could not read MERGE_MODE" msgstr "Konnte MERGE_MODE nicht lesen" -#: builtin/commit.c:1522 +#: builtin/commit.c:1510 #, c-format msgid "could not read commit message: %s" msgstr "Konnte Versionsbeschreibung nicht lesen: %s" -#: builtin/commit.c:1536 +#: builtin/commit.c:1524 #, c-format msgid "Aborting commit; you did not edit the message.\n" msgstr "Eintragung abgebrochen; Sie haben die Beschreibung nicht editiert.\n" -#: builtin/commit.c:1541 +#: builtin/commit.c:1529 #, c-format msgid "Aborting commit due to empty commit message.\n" msgstr "Eintragung aufgrund leerer Versionsbeschreibung abgebrochen.\n" -#: builtin/commit.c:1556 builtin/merge.c:833 builtin/merge.c:858 +#: builtin/commit.c:1544 builtin/merge.c:832 builtin/merge.c:857 msgid "failed to write commit object" msgstr "Fehler beim Schreiben des Versionsobjektes." -#: builtin/commit.c:1577 +#: builtin/commit.c:1565 msgid "cannot lock HEAD ref" msgstr "Kann Referenz der Zweigspitze (HEAD) nicht sperren." -#: builtin/commit.c:1581 +#: builtin/commit.c:1569 msgid "cannot update HEAD ref" msgstr "Kann Referenz der Zweigspitze (HEAD) nicht aktualisieren." -#: builtin/commit.c:1592 +#: builtin/commit.c:1580 msgid "" "Repository has been updated, but unable to write\n" "new_index file. Check that disk is not full or quota is\n" @@ -4291,88 +4439,92 @@ msgstr "erlaubt Aktualisierung der \"HEAD\"-Referenz" msgid "deepen history of shallow clone" msgstr "vertieft die Historie eines flachen Klon" -#: builtin/fetch.c:85 builtin/log.c:1119 +#: builtin/fetch.c:86 +msgid "convert to a complete repository" +msgstr "konvertiert zu einem vollständigen Projektarchiv" + +#: builtin/fetch.c:88 builtin/log.c:1119 msgid "dir" msgstr "Verzeichnis" -#: builtin/fetch.c:86 +#: builtin/fetch.c:89 msgid "prepend this to submodule path output" msgstr "stellt dies an die Ausgabe der Unterprojekt-Pfade voran" -#: builtin/fetch.c:89 +#: builtin/fetch.c:92 msgid "default mode for recursion" msgstr "Standard-Modus für Rekursion" -#: builtin/fetch.c:201 +#: builtin/fetch.c:204 msgid "Couldn't find remote ref HEAD" msgstr "Konnte externe Referenz der Zweigspitze (HEAD) nicht finden." -#: builtin/fetch.c:254 +#: builtin/fetch.c:257 #, c-format msgid "object %s not found" msgstr "Objekt %s nicht gefunden" -#: builtin/fetch.c:259 +#: builtin/fetch.c:262 msgid "[up to date]" msgstr "[aktuell]" -#: builtin/fetch.c:273 +#: builtin/fetch.c:276 #, c-format msgid "! %-*s %-*s -> %s (can't fetch in current branch)" msgstr "! %-*s %-*s -> %s (kann nicht im aktuellen Zweig anfordern)" -#: builtin/fetch.c:274 builtin/fetch.c:360 +#: builtin/fetch.c:277 builtin/fetch.c:363 msgid "[rejected]" msgstr "[zurückgewiesen]" -#: builtin/fetch.c:285 +#: builtin/fetch.c:288 msgid "[tag update]" msgstr "[Markierungsaktualisierung]" -#: builtin/fetch.c:287 builtin/fetch.c:322 builtin/fetch.c:340 +#: builtin/fetch.c:290 builtin/fetch.c:325 builtin/fetch.c:343 msgid " (unable to update local ref)" msgstr " (kann lokale Referenz nicht aktualisieren)" -#: builtin/fetch.c:305 +#: builtin/fetch.c:308 msgid "[new tag]" msgstr "[neue Markierung]" -#: builtin/fetch.c:308 +#: builtin/fetch.c:311 msgid "[new branch]" msgstr "[neuer Zweig]" -#: builtin/fetch.c:311 +#: builtin/fetch.c:314 msgid "[new ref]" msgstr "[neue Referenz]" -#: builtin/fetch.c:356 +#: builtin/fetch.c:359 msgid "unable to update local ref" msgstr "kann lokale Referenz nicht aktualisieren" -#: builtin/fetch.c:356 +#: builtin/fetch.c:359 msgid "forced update" msgstr "Aktualisierung erzwungen" -#: builtin/fetch.c:362 +#: builtin/fetch.c:365 msgid "(non-fast-forward)" msgstr "(kein Vorspulen)" -#: builtin/fetch.c:393 builtin/fetch.c:685 +#: builtin/fetch.c:396 builtin/fetch.c:688 #, c-format msgid "cannot open %s: %s\n" msgstr "kann %s nicht öffnen: %s\n" -#: builtin/fetch.c:402 +#: builtin/fetch.c:405 #, c-format msgid "%s did not send all necessary objects\n" msgstr "%s hat nicht alle erforderlichen Objekte gesendet\n" -#: builtin/fetch.c:488 +#: builtin/fetch.c:491 #, c-format msgid "From %.*s\n" msgstr "Von %.*s\n" -#: builtin/fetch.c:499 +#: builtin/fetch.c:502 #, c-format msgid "" "some local refs could not be updated; try running\n" @@ -4381,57 +4533,57 @@ msgstr "" "Einige lokale Referenzen konnten nicht aktualisiert werden; versuchen Sie\n" "'git remote prune %s' um jeden älteren, widersprüchlichen Zweig zu löschen." -#: builtin/fetch.c:549 +#: builtin/fetch.c:552 #, c-format msgid " (%s will become dangling)" msgstr " (%s wird unreferenziert)" -#: builtin/fetch.c:550 +#: builtin/fetch.c:553 #, c-format msgid " (%s has become dangling)" msgstr " (%s wurde unreferenziert)" -#: builtin/fetch.c:557 +#: builtin/fetch.c:560 msgid "[deleted]" msgstr "[gelöscht]" -#: builtin/fetch.c:558 builtin/remote.c:1055 +#: builtin/fetch.c:561 builtin/remote.c:1055 msgid "(none)" msgstr "(nichts)" -#: builtin/fetch.c:675 +#: builtin/fetch.c:678 #, c-format msgid "Refusing to fetch into current branch %s of non-bare repository" msgstr "" "Das Anfordern in den aktuellen Zweig %s von einem nicht-bloßen Projektarchiv " "wurde verweigert." -#: builtin/fetch.c:709 +#: builtin/fetch.c:712 #, c-format msgid "Don't know how to fetch from %s" msgstr "Weiß nicht wie von %s angefordert wird." -#: builtin/fetch.c:786 +#: builtin/fetch.c:789 #, 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:789 +#: builtin/fetch.c:792 #, c-format msgid "Option \"%s\" is ignored for %s\n" msgstr "Option \"%s\" wird ignoriert für %s\n" -#: builtin/fetch.c:891 +#: builtin/fetch.c:894 #, c-format msgid "Fetching %s\n" msgstr "Fordere an von %s\n" -#: builtin/fetch.c:893 builtin/remote.c:100 +#: builtin/fetch.c:896 builtin/remote.c:100 #, c-format msgid "Could not fetch %s" msgstr "Konnte nicht von %s anfordern" -#: builtin/fetch.c:912 +#: builtin/fetch.c:915 msgid "" "No remote repository specified. Please, specify either a URL or a\n" "remote name from which new revisions should be fetched." @@ -4440,24 +4592,35 @@ msgstr "" "oder den Namen des externen Archivs an, von welchem neue\n" "Revisionen angefordert werden sollen." -#: builtin/fetch.c:932 +#: builtin/fetch.c:935 msgid "You need to specify a tag name." msgstr "Sie müssen den Namen der Markierung angeben." -#: builtin/fetch.c:984 +#: builtin/fetch.c:981 +msgid "--depth and --unshallow cannot be used together" +msgstr "" +"Die Optionen --depth und --unshallow können nicht gemeinsam verwendet werden." + +#: builtin/fetch.c:983 +msgid "--unshallow on a complete repository does not make sense" +msgstr "" +"Die Option --unshallow kann nicht in einem vollständigen Projektarchiv " +"verwendet werden." + +#: builtin/fetch.c:1002 msgid "fetch --all does not take a repository argument" msgstr "fetch --all akzeptiert kein Projektarchiv als Argument" -#: builtin/fetch.c:986 +#: builtin/fetch.c:1004 msgid "fetch --all does not make sense with refspecs" msgstr "fetch --all kann nicht mit Referenzspezifikationen verwendet werden." -#: builtin/fetch.c:997 +#: builtin/fetch.c:1015 #, c-format msgid "No such remote or remote group: %s" msgstr "Kein externes Archiv (einzeln oder Gruppe): %s" -#: builtin/fetch.c:1005 +#: builtin/fetch.c:1023 msgid "Fetching a group and specifying refspecs does not make sense" msgstr "" "Das Abholen einer Gruppe von externen Archiven kann nicht mit der Angabe\n" @@ -4470,7 +4633,7 @@ msgstr "" #: builtin/fmt-merge-msg.c:659 builtin/fmt-merge-msg.c:662 builtin/grep.c:701 #: builtin/merge.c:188 builtin/show-branch.c:656 builtin/show-ref.c:175 -#: builtin/tag.c:448 parse-options.h:133 parse-options.h:239 +#: builtin/tag.c:446 parse-options.h:133 parse-options.h:239 msgid "n" msgstr "Anzahl" @@ -4835,31 +4998,31 @@ msgstr "keine Muster angegeben" msgid "bad object %s" msgstr "ungültiges Objekt %s" -#: builtin/grep.c:866 +#: builtin/grep.c:868 msgid "--open-files-in-pager only works on the worktree" msgstr "" "Die Option --open-files-in-pager kann nur innerhalb des Arbeitsbaums " "verwendet werden." -#: builtin/grep.c:889 +#: builtin/grep.c:891 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:894 +#: builtin/grep.c:896 msgid "--no-index or --untracked cannot be used with revs." msgstr "" "Die Optionen --no-index und --untracked können nicht mit Versionen verwendet " "werden." -#: builtin/grep.c:897 +#: builtin/grep.c:899 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:905 +#: builtin/grep.c:907 msgid "both --cached and trees are given." msgstr "Die Option --cached kann nicht mit Zweigen verwendet werden." @@ -4899,50 +5062,50 @@ msgstr "speichert Datei wie sie ist, ohne Filter" msgid "process file as it were from this path" msgstr "verarbeitet Datei, als ob sie von diesem Pfad wäre" -#: builtin/help.c:43 +#: builtin/help.c:42 msgid "print all available commands" msgstr "Anzeige aller vorhandenen Kommandos" -#: builtin/help.c:44 +#: builtin/help.c:43 msgid "show man page" msgstr "zeigt Handbuch" -#: builtin/help.c:45 +#: builtin/help.c:44 msgid "show manual in web browser" msgstr "zeigt Handbuch in einem Webbrowser" -#: builtin/help.c:47 +#: builtin/help.c:46 msgid "show info page" msgstr "zeigt Info-Seite" -#: builtin/help.c:53 +#: builtin/help.c:52 msgid "git help [--all] [--man|--web|--info] [command]" msgstr "git help [--all] [--man|--web|--info] [Kommando]" -#: builtin/help.c:65 +#: builtin/help.c:64 #, c-format msgid "unrecognized help format '%s'" msgstr "nicht erkanntes Hilfeformat: %s" -#: builtin/help.c:93 +#: builtin/help.c:92 msgid "Failed to start emacsclient." msgstr "Konnte emacsclient nicht starten." -#: builtin/help.c:106 +#: builtin/help.c:105 msgid "Failed to parse emacsclient version." msgstr "Konnte Version des emacsclient nicht parsen." -#: builtin/help.c:114 +#: builtin/help.c:113 #, c-format msgid "emacsclient version '%d' too old (< 22)." msgstr "Version des emacsclient '%d' ist zu alt (< 22)." -#: builtin/help.c:132 builtin/help.c:160 builtin/help.c:169 builtin/help.c:177 +#: 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 "Fehler beim Ausführen von '%s': %s" -#: builtin/help.c:217 +#: builtin/help.c:216 #, c-format msgid "" "'%s': path for unsupported man viewer.\n" @@ -4951,7 +5114,7 @@ msgstr "" "'%s': Pfad für nicht unterstützten Handbuchbetrachter.\n" "Sie könnten stattdessen 'man.<Werkzeug>.cmd' benutzen." -#: builtin/help.c:229 +#: builtin/help.c:228 #, c-format msgid "" "'%s': cmd for supported man viewer.\n" @@ -4960,29 +5123,25 @@ msgstr "" "'%s': Kommando für unterstützten Handbuchbetrachter.\n" "Sie könnten stattdessen 'man.<Werkzeug>.path' benutzen." -#: builtin/help.c:299 -msgid "The most commonly used git commands are:" -msgstr "Die allgemein verwendeten Git-Kommandos sind:" - -#: builtin/help.c:367 +#: builtin/help.c:349 #, c-format msgid "'%s': unknown man viewer." msgstr "'%s': unbekannter Handbuch-Betrachter." -#: builtin/help.c:384 +#: builtin/help.c:366 msgid "no man viewer handled the request" msgstr "kein Handbuch-Betrachter konnte mit dieser Anfrage umgehen" -#: builtin/help.c:392 +#: builtin/help.c:374 msgid "no info viewer handled the request" msgstr "kein Informations-Betrachter konnte mit dieser Anfrage umgehen" -#: builtin/help.c:447 builtin/help.c:454 +#: builtin/help.c:429 builtin/help.c:436 #, c-format msgid "usage: %s%s" msgstr "Verwendung: %s%s" -#: builtin/help.c:470 +#: builtin/help.c:452 #, c-format msgid "`git %s' is aliased to `%s'" msgstr "für `git %s' wurde der Alias `%s' angelegt" @@ -5683,100 +5842,100 @@ msgstr "" msgid "Unknown commit %s" msgstr "Unbekannte Version %s" -#: builtin/ls-files.c:408 +#: builtin/ls-files.c:409 msgid "git ls-files [options] [<file>...]" msgstr "git ls-files [Optionen] [<Datei>...]" -#: builtin/ls-files.c:463 +#: builtin/ls-files.c:466 msgid "identify the file status with tags" msgstr "zeigt den Dateistatus mit Markierungen" -#: builtin/ls-files.c:465 +#: builtin/ls-files.c:468 msgid "use lowercase letters for 'assume unchanged' files" msgstr "" "verwendet Kleinbuchstaben für Dateien mit 'assume unchanged' Markierung" -#: builtin/ls-files.c:467 +#: builtin/ls-files.c:470 msgid "show cached files in the output (default)" msgstr "zeigt zwischengespeicherten Dateien in der Ausgabe an (Standard)" -#: builtin/ls-files.c:469 +#: builtin/ls-files.c:472 msgid "show deleted files in the output" msgstr "zeigt entfernte Dateien in der Ausgabe an" -#: builtin/ls-files.c:471 +#: builtin/ls-files.c:474 msgid "show modified files in the output" msgstr "zeigt geänderte Dateien in der Ausgabe an" -#: builtin/ls-files.c:473 +#: builtin/ls-files.c:476 msgid "show other files in the output" msgstr "zeigt sonstige Dateien in der Ausgabe an" -#: builtin/ls-files.c:475 +#: builtin/ls-files.c:478 msgid "show ignored files in the output" msgstr "zeigt ignorierte Dateien in der Ausgabe an" -#: builtin/ls-files.c:478 +#: builtin/ls-files.c:481 msgid "show staged contents' object name in the output" msgstr "zeigt Objektnamen von Inhalten in der Bereitstellung in der Ausgabe an" -#: builtin/ls-files.c:480 +#: builtin/ls-files.c:483 msgid "show files on the filesystem that need to be removed" msgstr "zeigt Dateien im Dateisystem, die gelöscht werden müssen, an" -#: builtin/ls-files.c:482 +#: builtin/ls-files.c:485 msgid "show 'other' directories' name only" msgstr "zeigt nur Namen von 'sonstigen' Verzeichnissen an" -#: builtin/ls-files.c:485 +#: builtin/ls-files.c:488 msgid "don't show empty directories" msgstr "zeigt keine leeren Verzeichnisse an" -#: builtin/ls-files.c:488 +#: builtin/ls-files.c:491 msgid "show unmerged files in the output" msgstr "zeigt nicht zusammengeführte Dateien in der Ausgabe an" -#: builtin/ls-files.c:490 +#: builtin/ls-files.c:493 msgid "show resolve-undo information" msgstr "zeigt 'resolve-undo' Informationen an" -#: builtin/ls-files.c:492 +#: builtin/ls-files.c:495 msgid "skip files matching pattern" msgstr "lässt Dateien aus, die einem Muster entsprechen" -#: builtin/ls-files.c:495 +#: builtin/ls-files.c:498 msgid "exclude patterns are read from <file>" msgstr "schließt Muster, gelesen von <Datei>, aus" -#: builtin/ls-files.c:498 +#: builtin/ls-files.c:501 msgid "read additional per-directory exclude patterns in <file>" msgstr "liest zusätzliche pro-Verzeichnis Auschlussmuster aus <Datei>" -#: builtin/ls-files.c:500 +#: builtin/ls-files.c:503 msgid "add the standard git exclusions" msgstr "fügt die standardmäßigen Git-Ausschlüsse hinzu" -#: builtin/ls-files.c:503 +#: builtin/ls-files.c:506 msgid "make the output relative to the project top directory" msgstr "Ausgabe relativ zum Projektverzeichnis" -#: builtin/ls-files.c:506 +#: builtin/ls-files.c:509 msgid "if any <file> is not in the index, treat this as an error" msgstr "" "behandle es als Fehler, wenn sich eine <Datei> nicht in der Bereitstellung " "befindet" -#: builtin/ls-files.c:507 +#: builtin/ls-files.c:510 msgid "tree-ish" msgstr "Versionsreferenz" -#: builtin/ls-files.c:508 +#: builtin/ls-files.c:511 msgid "pretend that paths removed since <tree-ish> are still present" msgstr "" "gibt vor, dass Pfade, die seit <Versionsreferenz> gelöscht wurden, immer " "noch vorhanden sind" -#: builtin/ls-files.c:510 +#: builtin/ls-files.c:513 msgid "show debugging data" msgstr "zeigt Ausgaben zur Fehlersuche an" @@ -5892,7 +6051,7 @@ msgstr "erlaubt Vorspulen (Standard)" msgid "abort if fast-forward is not possible" msgstr "bricht ab, wenn kein Vorspulen möglich ist" -#: builtin/merge.c:202 builtin/notes.c:870 builtin/revert.c:112 +#: builtin/merge.c:202 builtin/notes.c:866 builtin/revert.c:112 msgid "strategy" msgstr "Strategie" @@ -6000,11 +6159,12 @@ msgstr "" "Zusammenführung abzuschließen.\n" #: builtin/merge.c:788 +#, c-format msgid "" "Please enter a commit message to explain why this merge is necessary,\n" "especially if it merges an updated upstream into a topic branch.\n" "\n" -"Lines starting with '#' will be ignored, and an empty message aborts\n" +"Lines starting with '%c' will be ignored, and an empty message aborts\n" "the commit.\n" msgstr "" "Bitte geben Sie eine Versionsbeschreibung ein um zu erklären, warum diese " @@ -6012,59 +6172,59 @@ msgstr "" "insbesondere wenn es einen aktualisierten, externen Zweig mit einem Thema-" "Zweig zusammenführt.\n" "\n" -"Zeilen beginnend mit '#' werden ignoriert, und eine leere Beschreibung " +"Zeilen beginnend mit '%c' werden ignoriert, und eine leere Beschreibung " "bricht die Eintragung ab.\n" -#: builtin/merge.c:813 +#: builtin/merge.c:812 msgid "Empty commit message." msgstr "Leere Versionsbeschreibung" -#: builtin/merge.c:825 +#: builtin/merge.c:824 #, c-format msgid "Wonderful.\n" msgstr "Wunderbar.\n" -#: builtin/merge.c:890 +#: builtin/merge.c:889 #, c-format msgid "Automatic merge failed; fix conflicts and then commit the result.\n" msgstr "" "Automatische Zusammenführung fehlgeschlagen; beheben Sie die Konflikte und " "tragen Sie dann das Ergebnis ein.\n" -#: builtin/merge.c:906 +#: builtin/merge.c:905 #, c-format msgid "'%s' is not a commit" msgstr "'%s' ist keine Version" -#: builtin/merge.c:947 +#: builtin/merge.c:946 msgid "No current branch." msgstr "Sie befinden sich auf keinem Zweig." -#: builtin/merge.c:949 +#: builtin/merge.c:948 msgid "No remote for the current branch." msgstr "Kein externes Archiv für den aktuellen Zweig." -#: builtin/merge.c:951 +#: builtin/merge.c:950 msgid "No default upstream defined for the current branch." msgstr "" "Es ist kein externes Standard-Projektarchiv für den aktuellen Zweig " "definiert." -#: builtin/merge.c:956 +#: builtin/merge.c:955 #, c-format msgid "No remote tracking branch for %s from %s" msgstr "Kein externer Übernahmezweig für %s von %s" -#: builtin/merge.c:1043 builtin/merge.c:1200 +#: builtin/merge.c:1042 builtin/merge.c:1199 #, c-format msgid "%s - not something we can merge" msgstr "%s - nichts was wir zusammenführen können" -#: builtin/merge.c:1111 +#: builtin/merge.c:1110 msgid "There is no merge to abort (MERGE_HEAD missing)." msgstr "Es gibt keine Zusammenführung zum Abbrechen (vermisse MERGE_HEAD)" -#: builtin/merge.c:1127 git-pull.sh:31 +#: builtin/merge.c:1126 git-pull.sh:31 msgid "" "You have not concluded your merge (MERGE_HEAD exists).\n" "Please, commit your changes before you can merge." @@ -6072,12 +6232,12 @@ msgstr "" "Sie haben Ihre Zusammenführung nicht abgeschlossen (MERGE_HEAD existiert).\n" "Bitte tragen Sie Ihre Änderungen ein, bevor Sie zusammenführen können." -#: builtin/merge.c:1130 git-pull.sh:34 +#: builtin/merge.c:1129 git-pull.sh:34 msgid "You have not concluded your merge (MERGE_HEAD exists)." msgstr "" "Sie haben Ihre Zusammenführung nicht abgeschlossen (MERGE_HEAD existiert)." -#: builtin/merge.c:1134 +#: builtin/merge.c:1133 msgid "" "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n" "Please, commit your changes before you can merge." @@ -6085,82 +6245,82 @@ msgstr "" "Sie haben \"cherry-pick\" nicht abgeschlossen (CHERRY_PICK_HEAD existiert).\n" "Bitte tragen Sie Ihre Änderungen ein, bevor Sie zusammenführen können." -#: builtin/merge.c:1137 +#: builtin/merge.c:1136 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:1146 +#: builtin/merge.c:1145 msgid "You cannot combine --squash with --no-ff." msgstr "Sie können --squash nicht mit --no-ff kombinieren." -#: builtin/merge.c:1151 +#: builtin/merge.c:1150 msgid "You cannot combine --no-ff with --ff-only." msgstr "Sie können --no-ff nicht mit --ff--only kombinieren." -#: builtin/merge.c:1158 +#: builtin/merge.c:1157 msgid "No commit specified and merge.defaultToUpstream not set." msgstr "Keine Version angegeben und merge.defaultToUpstream ist nicht gesetzt." -#: builtin/merge.c:1190 +#: builtin/merge.c:1189 msgid "Can merge only exactly one commit into empty head" msgstr "Kann nur exakt eine Version in einem leeren Zweig zusammenführen." -#: builtin/merge.c:1193 +#: builtin/merge.c:1192 msgid "Squash commit into empty head not supported yet" msgstr "Bin auf einem Zweig, der noch geboren wird; kann nicht quetschen." -#: builtin/merge.c:1195 +#: builtin/merge.c:1194 msgid "Non-fast-forward commit does not make sense into an empty head" msgstr "" "Nicht vorzuspulende Version kann nicht in einem leeren Zweig verwendet " "werden." -#: builtin/merge.c:1311 +#: builtin/merge.c:1310 #, c-format msgid "Updating %s..%s\n" msgstr "Aktualisiere %s..%s\n" -#: builtin/merge.c:1350 +#: builtin/merge.c:1349 #, c-format msgid "Trying really trivial in-index merge...\n" msgstr "Probiere wirklich triviale \"in-index\"-Zusammenführung...\n" -#: builtin/merge.c:1357 +#: builtin/merge.c:1356 #, c-format msgid "Nope.\n" msgstr "Nein.\n" -#: builtin/merge.c:1389 +#: builtin/merge.c:1388 msgid "Not possible to fast-forward, aborting." msgstr "Vorspulen nicht möglich, breche ab." -#: builtin/merge.c:1412 builtin/merge.c:1491 +#: builtin/merge.c:1411 builtin/merge.c:1490 #, c-format msgid "Rewinding the tree to pristine...\n" msgstr "Rücklauf des Zweiges bis zum Ursprung...\n" -#: builtin/merge.c:1416 +#: builtin/merge.c:1415 #, c-format msgid "Trying merge strategy %s...\n" msgstr "Probiere Zusammenführungsstrategie %s...\n" -#: builtin/merge.c:1482 +#: builtin/merge.c:1481 #, c-format msgid "No merge strategy handled the merge.\n" msgstr "Keine Zusammenführungsstrategie behandelt diese Zusammenführung.\n" -#: builtin/merge.c:1484 +#: builtin/merge.c:1483 #, c-format msgid "Merge with strategy %s failed.\n" msgstr "Zusammenführung mit Strategie %s fehlgeschlagen.\n" -#: builtin/merge.c:1493 +#: builtin/merge.c:1492 #, c-format msgid "Using the %s to prepare resolving by hand.\n" msgstr "Benutzen Sie \"%s\" um die Auflösung per Hand vorzubereiten.\n" -#: builtin/merge.c:1505 +#: builtin/merge.c:1504 #, c-format msgid "Automatic merge went well; stopped before committing as requested\n" msgstr "" @@ -6477,82 +6637,77 @@ msgstr "git notes prune [<Optionen>]" msgid "git notes get-ref" msgstr "git notes get-ref" -#: builtin/notes.c:142 +#: builtin/notes.c:139 #, c-format msgid "unable to start 'show' for object '%s'" msgstr "konnte 'show' für Objekt '%s' nicht starten" -#: builtin/notes.c:148 -msgid "can't fdopen 'show' output fd" -msgstr "konnte Datei-Deskriptor für Ausgabe von 'show' nicht öffnen" - -#: builtin/notes.c:158 -#, c-format -msgid "failed to close pipe to 'show' for object '%s'" -msgstr "Schließen der Verbindung zu 'show' ist für Objekt '%s' fehlgeschlagen." +#: builtin/notes.c:143 +msgid "could not read 'show' output" +msgstr "Konnte Ausgabe von 'show' nicht lesen." -#: builtin/notes.c:161 +#: builtin/notes.c:151 #, c-format msgid "failed to finish 'show' for object '%s'" msgstr "konnte 'show' für Objekt '%s' nicht abschließen" -#: builtin/notes.c:178 builtin/tag.c:347 +#: builtin/notes.c:169 builtin/tag.c:341 #, c-format msgid "could not create file '%s'" msgstr "konnte Datei '%s' nicht erstellen" -#: builtin/notes.c:192 +#: builtin/notes.c:188 msgid "Please supply the note contents using either -m or -F option" msgstr "" "Bitte liefern Sie den Notiz-Inhalt unter Verwendung der Option -m oder -F." -#: builtin/notes.c:213 builtin/notes.c:976 +#: builtin/notes.c:209 builtin/notes.c:972 #, c-format msgid "Removing note for object %s\n" msgstr "Entferne Notiz für Objekt %s\n" -#: builtin/notes.c:218 +#: builtin/notes.c:214 msgid "unable to write note object" msgstr "Konnte Notiz-Objekt nicht schreiben" -#: builtin/notes.c:220 +#: builtin/notes.c:216 #, c-format msgid "The note contents has been left in %s" msgstr "Die Notiz-Inhalte wurden in %s belassen" -#: builtin/notes.c:254 builtin/tag.c:542 +#: builtin/notes.c:250 builtin/tag.c:540 #, c-format msgid "cannot read '%s'" msgstr "kann '%s' nicht lesen" -#: builtin/notes.c:256 builtin/tag.c:545 +#: builtin/notes.c:252 builtin/tag.c:543 #, c-format msgid "could not open or read '%s'" msgstr "konnte '%s' nicht öffnen oder lesen" -#: builtin/notes.c:275 builtin/notes.c:448 builtin/notes.c:450 -#: builtin/notes.c:510 builtin/notes.c:564 builtin/notes.c:647 -#: builtin/notes.c:652 builtin/notes.c:727 builtin/notes.c:769 -#: builtin/notes.c:971 builtin/tag.c:558 +#: builtin/notes.c:271 builtin/notes.c:444 builtin/notes.c:446 +#: builtin/notes.c:506 builtin/notes.c:560 builtin/notes.c:643 +#: builtin/notes.c:648 builtin/notes.c:723 builtin/notes.c:765 +#: builtin/notes.c:967 builtin/tag.c:556 #, c-format msgid "Failed to resolve '%s' as a valid ref." msgstr "Konnte '%s' nicht als gültige Referenz auflösen." -#: builtin/notes.c:278 +#: builtin/notes.c:274 #, c-format msgid "Failed to read object '%s'." msgstr "Fehler beim Lesen des Objektes '%s'." -#: builtin/notes.c:302 +#: builtin/notes.c:298 msgid "Cannot commit uninitialized/unreferenced notes tree" msgstr "Kann uninitialisierten/unreferenzierten Notiz-Baum nicht eintragen." -#: builtin/notes.c:343 +#: builtin/notes.c:339 #, c-format msgid "Bad notes.rewriteMode value: '%s'" msgstr "Ungültiger notes.rewriteMode Wert: '%s'" -#: builtin/notes.c:353 +#: builtin/notes.c:349 #, c-format msgid "Refusing to rewrite notes in %s (outside of refs/notes/)" msgstr "" @@ -6560,58 +6715,58 @@ msgstr "" #. TRANSLATORS: The first %s is the name of the #. environment variable, the second %s is its value -#: builtin/notes.c:380 +#: builtin/notes.c:376 #, c-format msgid "Bad %s value: '%s'" msgstr "Ungültiger %s Wert: '%s'" -#: builtin/notes.c:444 +#: builtin/notes.c:440 #, c-format msgid "Malformed input line: '%s'." msgstr "Fehlerhafte Eingabezeile: '%s'." -#: builtin/notes.c:459 +#: builtin/notes.c:455 #, c-format msgid "Failed to copy notes from '%s' to '%s'" msgstr "Fehler beim Kopieren der Notizen von '%s' nach '%s'" -#: builtin/notes.c:503 builtin/notes.c:557 builtin/notes.c:630 -#: builtin/notes.c:642 builtin/notes.c:715 builtin/notes.c:762 -#: builtin/notes.c:1036 +#: builtin/notes.c:499 builtin/notes.c:553 builtin/notes.c:626 +#: builtin/notes.c:638 builtin/notes.c:711 builtin/notes.c:758 +#: builtin/notes.c:1032 msgid "too many parameters" msgstr "zu viele Parameter" -#: builtin/notes.c:516 builtin/notes.c:775 +#: builtin/notes.c:512 builtin/notes.c:771 #, c-format msgid "No note found for object %s." msgstr "Kein Notiz für Objekt %s gefunden." -#: builtin/notes.c:538 builtin/notes.c:695 +#: builtin/notes.c:534 builtin/notes.c:691 msgid "note contents as a string" msgstr "Notizinhalte als Zeichenkette" -#: builtin/notes.c:541 builtin/notes.c:698 +#: builtin/notes.c:537 builtin/notes.c:694 msgid "note contents in a file" msgstr "Notizinhalte in einer Datei" -#: builtin/notes.c:543 builtin/notes.c:546 builtin/notes.c:700 -#: builtin/notes.c:703 builtin/tag.c:476 +#: builtin/notes.c:539 builtin/notes.c:542 builtin/notes.c:696 +#: builtin/notes.c:699 builtin/tag.c:474 msgid "object" msgstr "Objekt" -#: builtin/notes.c:544 builtin/notes.c:701 +#: builtin/notes.c:540 builtin/notes.c:697 msgid "reuse and edit specified note object" msgstr "Wiederverwendung und Bearbeitung des angegebenen Notiz-Objektes" -#: builtin/notes.c:547 builtin/notes.c:704 +#: builtin/notes.c:543 builtin/notes.c:700 msgid "reuse specified note object" msgstr "Wiederverwendung des angegebenen Notiz-Objektes" -#: builtin/notes.c:549 builtin/notes.c:617 +#: builtin/notes.c:545 builtin/notes.c:613 msgid "replace existing notes" msgstr "ersetzt existierende Notizen" -#: builtin/notes.c:583 +#: builtin/notes.c:579 #, c-format msgid "" "Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite " @@ -6620,26 +6775,26 @@ msgstr "" "Konnte Notizen nicht hinzufügen. Existierende Notizen für Objekt %s " "gefunden. Verwenden Sie '-f' um die existierenden Notizen zu überschreiben." -#: builtin/notes.c:588 builtin/notes.c:665 +#: builtin/notes.c:584 builtin/notes.c:661 #, c-format msgid "Overwriting existing notes for object %s\n" msgstr "Überschreibe existierende Notizen für Objekt %s\n" -#: builtin/notes.c:618 +#: builtin/notes.c:614 msgid "read objects from stdin" msgstr "liest Objekte von der Standard-Eingabe" -#: builtin/notes.c:620 +#: builtin/notes.c:616 msgid "load rewriting config for <command> (implies --stdin)" msgstr "" "lädt Konfiguration für <Kommando> beim Umschreiben von Versionen (impliziert " "--stdin)" -#: builtin/notes.c:638 +#: builtin/notes.c:634 msgid "too few parameters" msgstr "zu wenig Parameter" -#: builtin/notes.c:659 +#: builtin/notes.c:655 #, c-format msgid "" "Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite " @@ -6648,12 +6803,12 @@ msgstr "" "Kann Notizen nicht kopieren. Existierende Notizen für Objekt %s gefunden. " "Verwenden Sie '-f' um die existierenden Notizen zu überschreiben." -#: builtin/notes.c:671 +#: builtin/notes.c:667 #, c-format msgid "Missing notes on source object %s. Cannot copy." msgstr "Keine Notizen für Quell-Objekt %s. Kopie nicht möglich." -#: builtin/notes.c:720 +#: builtin/notes.c:716 #, c-format msgid "" "The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n" @@ -6662,15 +6817,15 @@ msgstr "" "Die Optionen -m/-F/-c/-C sind für das Unterkommando 'edit' veraltet.\n" "Bitte benutzen Sie stattdessen 'git notes add -f -m/-F/-c/-C'.\n" -#: builtin/notes.c:867 +#: builtin/notes.c:863 msgid "General options" msgstr "Allgemeine Optionen" -#: builtin/notes.c:869 +#: builtin/notes.c:865 msgid "Merge options" msgstr "Optionen für Zusammenführung" -#: builtin/notes.c:871 +#: builtin/notes.c:867 msgid "" "resolve notes conflicts using the given strategy (manual/ours/theirs/union/" "cat_sort_uniq)" @@ -6678,46 +6833,46 @@ msgstr "" "löst Konflikte bei Notizen mit der angegebenen Strategie auf (manual/ours/" "theirs/union/cat_sort_uniq)" -#: builtin/notes.c:873 +#: builtin/notes.c:869 msgid "Committing unmerged notes" msgstr "trägt nicht zusammengeführte Notizen ein" -#: builtin/notes.c:875 +#: builtin/notes.c:871 msgid "finalize notes merge by committing unmerged notes" msgstr "" "schließt Zusammenführung von Notizen ab, in dem nicht zusammengeführte " "Notizen eingetragen werden" -#: builtin/notes.c:877 +#: builtin/notes.c:873 msgid "Aborting notes merge resolution" msgstr "bricht Konfliktauflösung bei Zusammenführung von Notizen ab" -#: builtin/notes.c:879 +#: builtin/notes.c:875 msgid "abort notes merge" msgstr "bricht Zusammenführung von Notizen ab" -#: builtin/notes.c:974 +#: builtin/notes.c:970 #, c-format msgid "Object %s has no note\n" msgstr "Objekt %s hat keine Notiz\n" -#: builtin/notes.c:986 +#: builtin/notes.c:982 msgid "attempt to remove non-existent note is not an error" msgstr "der Versuch, eine nicht existierende Notiz zu löschen, ist kein Fehler" -#: builtin/notes.c:989 +#: builtin/notes.c:985 msgid "read object names from the standard input" msgstr "liest Objektnamen von der Standard-Eingabe" -#: builtin/notes.c:1070 +#: builtin/notes.c:1066 msgid "notes_ref" msgstr "Notiz-Referenz" -#: builtin/notes.c:1071 +#: builtin/notes.c:1067 msgid "use notes from <notes_ref>" msgstr "verwendet Notizen von <Notiz-Referenz>" -#: builtin/notes.c:1106 builtin/remote.c:1598 +#: builtin/notes.c:1102 builtin/remote.c:1598 #, c-format msgid "Unknown subcommand: %s" msgstr "Unbekanntes Unterkommando: %s" @@ -7095,28 +7250,56 @@ msgstr "" #: builtin/push.c:224 msgid "" -"Updates were rejected because the destination reference already exists\n" -"in the remote." +"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 merge 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 "" +"Aktualisierungen wurden zurückgewiesen, weil das Fernarchiv Versionen " +"enthält,\n" +"die lokal nicht vorhanden sind. Das wird üblicherweise durch das Versenden " +"von\n" +"Versionen auf dieselbe Referenz von einem anderen Projektarchiv aus " +"verursacht.\n" +"Vielleicht müssen Sie die externen Änderungen zusammenzuführen (z.B. 'git " +"pull')\n" +"bevor Sie erneut versenden.\n" +"Siehe auch die Sektion 'Note about fast-forwards' in 'git push --help'\n" +"für weitere Details." + +#: builtin/push.c:231 +msgid "Updates were rejected because the tag already exists in the remote." msgstr "" -"Aktualisierungen wurden zurückgewiesen, weil die Zielreferenz bereits\n" +"Aktualisierungen wurden zurückgewiesen, weil die Markierung bereits\n" "im Fernarchiv existiert." -#: builtin/push.c:269 +#: builtin/push.c:234 +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 "" +"Sie können keine externe Referenz aktualisieren, die auf ein Objekt zeigt,\n" +"das keine Version ist, oder es auf ein solches Objekt zeigen lassen, ohne\n" +"die Option '--force' zu verwenden.\n" + +#: builtin/push.c:294 #, c-format msgid "Pushing to %s\n" msgstr "Versende nach %s\n" -#: builtin/push.c:273 +#: builtin/push.c:298 #, c-format msgid "failed to push some refs to '%s'" msgstr "Fehler beim Versenden einiger Referenzen nach '%s'" -#: builtin/push.c:302 +#: builtin/push.c:331 #, c-format msgid "bad repository '%s'" msgstr "ungültiges Projektarchiv '%s'" -#: builtin/push.c:303 +#: builtin/push.c:332 msgid "" "No configured push destination.\n" "Either specify the URL from the command-line or configure a remote " @@ -7138,82 +7321,86 @@ msgstr "" "\n" " git push <Name>\n" -#: builtin/push.c:318 +#: builtin/push.c:347 msgid "--all and --tags are incompatible" msgstr "Die Optionen --all und --tags sind inkompatibel." -#: builtin/push.c:319 +#: builtin/push.c:348 msgid "--all can't be combined with refspecs" msgstr "" "Die Option --all kann nicht mit Referenzspezifikationen kombiniert werden." -#: builtin/push.c:324 +#: builtin/push.c:353 msgid "--mirror and --tags are incompatible" msgstr "Die Optionen --mirror und --tags sind inkompatibel." -#: builtin/push.c:325 +#: builtin/push.c:354 msgid "--mirror can't be combined with refspecs" msgstr "" "Die Option --mirror kann nicht mit Referenzspezifikationen kombiniert werden." -#: builtin/push.c:330 +#: builtin/push.c:359 msgid "--all and --mirror are incompatible" msgstr "Die Optionen --all und --mirror sind inkompatibel." -#: builtin/push.c:390 +#: builtin/push.c:419 msgid "repository" msgstr "Projektarchiv" -#: builtin/push.c:391 +#: builtin/push.c:420 msgid "push all refs" msgstr "versendet alle Referenzen" -#: builtin/push.c:392 +#: builtin/push.c:421 msgid "mirror all refs" msgstr "spiegelt alle Referenzen" -#: builtin/push.c:394 +#: builtin/push.c:423 msgid "delete refs" msgstr "löscht Referenzen" -#: builtin/push.c:395 +#: builtin/push.c:424 msgid "push tags (can't be used with --all or --mirror)" msgstr "" "versendet Markierungen (kann nicht mit --all oder --mirror verwendet werden)" -#: builtin/push.c:398 +#: builtin/push.c:427 msgid "force updates" msgstr "erzwingt Aktualisierung" -#: builtin/push.c:399 +#: builtin/push.c:428 msgid "check" msgstr "" -#: builtin/push.c:400 +#: builtin/push.c:429 msgid "control recursive pushing of submodules" msgstr "steuert rekursives Versenden von Unterprojekten" -#: builtin/push.c:402 +#: builtin/push.c:431 msgid "use thin pack" msgstr "verwendet kleinere Pakete" -#: builtin/push.c:403 builtin/push.c:404 +#: builtin/push.c:432 builtin/push.c:433 msgid "receive pack program" msgstr "'receive pack' Programm" -#: builtin/push.c:405 +#: builtin/push.c:434 msgid "set upstream for git pull/status" msgstr "setzt externes Projektarchiv für \"git pull/status\"" -#: builtin/push.c:408 +#: builtin/push.c:437 msgid "prune locally removed refs" msgstr "entfernt lokal gelöschte Referenzen" -#: builtin/push.c:418 +#: builtin/push.c:439 +msgid "bypass pre-push hook" +msgstr "umgeht \"pre-push hook\"" + +#: builtin/push.c:448 msgid "--delete is incompatible with --all, --mirror and --tags" msgstr "Die Option --delete ist inkompatibel mit --all, --mirror und --tags." -#: builtin/push.c:420 +#: builtin/push.c:450 msgid "--delete doesn't make sense without any refs" msgstr "Die Option --delete kann nur mit Referenzen verwendet werden." @@ -8390,170 +8577,164 @@ msgid "could not verify the tag '%s'" msgstr "Konnte Markierung '%s' nicht verifizieren" #: builtin/tag.c:249 +#, c-format msgid "" "\n" -"#\n" -"# Write a tag message\n" -"# Lines starting with '#' will be ignored.\n" -"#\n" +"Write a tag message\n" +"Lines starting with '%c' will be ignored.\n" msgstr "" "\n" -"#\n" -"# Geben Sie eine Markierungsbeschreibung ein.\n" -"# Zeilen, die mit '#' beginnen, werden ignoriert.\n" -"#\n" +"Geben Sie eine Markierungsbeschreibung ein.\n" +"Zeilen, die mit '%c' beginnen, werden ignoriert.\n" -#: builtin/tag.c:256 +#: builtin/tag.c:253 +#, c-format msgid "" "\n" -"#\n" -"# Write a tag message\n" -"# Lines starting with '#' will be kept; you may remove them yourself if you " +"Write a tag message\n" +"Lines starting with '%c' will be kept; you may remove them yourself if you " "want to.\n" -"#\n" msgstr "" "\n" -"#\n" -"# Geben Sie eine Markierungsbeschreibung ein.\n" -"# Zeilen, die mit '#' beginnen, werden behalten; Sie dürfen diese\n" -"# selbst entfernen wenn Sie möchten.\n" -"#\n" +"Geben Sie eine Markierungsbeschreibung ein.\n" +"Zeilen, die mit '%c' beginnen, werden behalten; Sie dürfen diese\n" +"selbst entfernen wenn Sie möchten.\n" -#: builtin/tag.c:298 +#: builtin/tag.c:292 msgid "unable to sign the tag" msgstr "konnte Markierung nicht signieren" -#: builtin/tag.c:300 +#: builtin/tag.c:294 msgid "unable to write tag file" msgstr "konnte Markierungsdatei nicht schreiben" -#: builtin/tag.c:325 +#: builtin/tag.c:319 msgid "bad object type." msgstr "ungültiger Objekt-Typ" -#: builtin/tag.c:338 +#: builtin/tag.c:332 msgid "tag header too big." msgstr "Markierungskopf zu groß." -#: builtin/tag.c:370 +#: builtin/tag.c:368 msgid "no tag message?" msgstr "keine Markierungsbeschreibung?" -#: builtin/tag.c:376 +#: builtin/tag.c:374 #, c-format msgid "The tag message has been left in %s\n" msgstr "Die Markierungsbeschreibung wurde gelassen in %s\n" -#: builtin/tag.c:425 +#: builtin/tag.c:423 msgid "switch 'points-at' requires an object" msgstr "Option 'points-at' erfordert ein Objekt" -#: builtin/tag.c:427 +#: builtin/tag.c:425 #, c-format msgid "malformed object name '%s'" msgstr "fehlerhafter Objekt-Name '%s'" -#: builtin/tag.c:447 +#: builtin/tag.c:445 msgid "list tag names" msgstr "listet Markierungsnamen auf" -#: builtin/tag.c:449 +#: builtin/tag.c:447 msgid "print <n> lines of each tag message" msgstr "zeigt <n> Zeilen jeder Markierungsbeschreibung" -#: builtin/tag.c:451 +#: builtin/tag.c:449 msgid "delete tags" msgstr "löscht Markierungen" -#: builtin/tag.c:452 +#: builtin/tag.c:450 msgid "verify tags" msgstr "überprüft Markierungen" -#: builtin/tag.c:454 +#: builtin/tag.c:452 msgid "Tag creation options" msgstr "Optionen für Erstellung von Markierungen" -#: builtin/tag.c:456 +#: builtin/tag.c:454 msgid "annotated tag, needs a message" msgstr "annotierte Markierung, benötigt eine Beschreibung" -#: builtin/tag.c:458 +#: builtin/tag.c:456 msgid "tag message" msgstr "Markierungsbeschreibung" -#: builtin/tag.c:460 +#: builtin/tag.c:458 msgid "annotated and GPG-signed tag" msgstr "annotierte und GPG-signierte Markierung" -#: builtin/tag.c:464 +#: builtin/tag.c:462 msgid "use another key to sign the tag" msgstr "verwendet einen anderen Schlüssel um die Markierung zu signieren" -#: builtin/tag.c:465 +#: builtin/tag.c:463 msgid "replace the tag if exists" msgstr "ersetzt die Markierung, wenn sie existiert" -#: builtin/tag.c:466 +#: builtin/tag.c:464 msgid "show tag list in columns" msgstr "zeigt Liste der Markierungen in Spalten" -#: builtin/tag.c:468 +#: builtin/tag.c:466 msgid "Tag listing options" msgstr "Optionen für Auflistung der Markierungen" -#: builtin/tag.c:471 +#: builtin/tag.c:469 msgid "print only tags that contain the commit" msgstr "gibt nur Markierungen aus, die diese Version beinhalten" -#: builtin/tag.c:477 +#: builtin/tag.c:475 msgid "print only tags of the object" msgstr "gibt nur Markierungen von dem Objekt aus" -#: builtin/tag.c:506 +#: builtin/tag.c:504 msgid "--column and -n are incompatible" msgstr "--column und -n sind inkompatibel" -#: builtin/tag.c:523 +#: builtin/tag.c:521 msgid "-n option is only allowed with -l." msgstr "-n Option ist nur erlaubt mit -l." -#: builtin/tag.c:525 +#: builtin/tag.c:523 msgid "--contains option is only allowed with -l." msgstr "--contains Option ist nur erlaubt mit -l." -#: builtin/tag.c:527 +#: builtin/tag.c:525 msgid "--points-at option is only allowed with -l." msgstr "--points-at Option ist nur erlaubt mit -l." -#: builtin/tag.c:535 +#: builtin/tag.c:533 msgid "only one -F or -m option is allowed." msgstr "nur eine -F oder -m Option ist erlaubt." -#: builtin/tag.c:555 +#: builtin/tag.c:553 msgid "too many params" msgstr "zu viele Parameter" -#: builtin/tag.c:561 +#: builtin/tag.c:559 #, c-format msgid "'%s' is not a valid tag name." msgstr "'%s' ist kein gültiger Markierungsname." -#: builtin/tag.c:566 +#: builtin/tag.c:564 #, c-format msgid "tag '%s' already exists" msgstr "Markierung '%s' existiert bereits" -#: builtin/tag.c:584 +#: builtin/tag.c:582 #, c-format msgid "%s: cannot lock the ref" msgstr "%s: kann Referenz nicht sperren" -#: builtin/tag.c:586 +#: builtin/tag.c:584 #, c-format msgid "%s: cannot update the ref" msgstr "%s: kann Referenz nicht aktualisieren" -#: builtin/tag.c:588 +#: builtin/tag.c:586 #, c-format msgid "Updated tag '%s' (was %s)\n" msgstr "Aktualisierte Markierung '%s' (war %s)\n" @@ -8798,7 +8979,7 @@ msgid "Print lines matching a pattern" msgstr "Stellt Zeilen dar, die einem Muster entsprechen" #: common-cmds.h:17 -msgid "Create an empty git repository or reinitialize an existing one" +msgid "Create an empty Git repository or reinitialize an existing one" msgstr "" "Erstellt ein leeres Git-Projektarchiv oder initialisiert ein bestehendes neu" @@ -8832,8 +9013,7 @@ msgstr "Baut lokale Versionen auf einem aktuellerem externen Zweig neu auf" #: common-cmds.h:24 msgid "Reset current HEAD to the specified state" -msgstr "" -"Setzt die aktuelle Zweigspitze (HEAD) zu einem spezifizierten Zustand" +msgstr "Setzt die aktuelle Zweigspitze (HEAD) zu einem spezifizierten Zustand" #: common-cmds.h:25 msgid "Remove files from the working tree and from the index" @@ -9069,7 +9249,7 @@ msgstr "" #: git-bisect.sh:140 msgid "won't bisect on seeked tree" -msgstr "\"bisect\" auf gesuchtem Zweig nicht möglich" +msgstr "binäre Suche auf gesuchtem Zweig nicht möglich" #: git-bisect.sh:144 msgid "Bad HEAD - strange symbolic ref" @@ -9102,7 +9282,7 @@ msgstr "'git bisect bad' kann nur ein Argument entgegennehmen." #. this is less optimum. #: git-bisect.sh:273 msgid "Warning: bisecting only with a bad commit." -msgstr "Warnung: halbiere nur mit einer fehlerhaften Version" +msgstr "Warnung: binäre Suche nur mit einer fehlerhaften Version" #. TRANSLATORS: Make sure to include [Y] and [n] in your #. translation. The program will only accept English input @@ -9132,7 +9312,7 @@ msgstr "" #: git-bisect.sh:347 git-bisect.sh:474 msgid "We are not bisecting." -msgstr "Wir sind nicht beim Halbieren." +msgstr "keine binäre Suche im Gange" #: git-bisect.sh:354 #, sh-format @@ -9172,12 +9352,12 @@ msgid "" "bisect run failed:\n" "exit code $res from '$command' is < 0 or >= 128" msgstr "" -"Ausführung der Halbierung fehlgeschlagen:\n" +"'bisect run' fehlgeschlagen:\n" "Rückkehrwert $res von '$command' ist < 0 oder >= 128" #: git-bisect.sh:453 msgid "bisect run cannot continue any more" -msgstr "Ausführung der Halbierung kann nicht mehr fortgesetzt werden" +msgstr "'bisect run' kann nicht mehr fortgesetzt werden" #: git-bisect.sh:459 #, sh-format @@ -9185,12 +9365,12 @@ msgid "" "bisect run failed:\n" "'bisect_state $state' exited with error code $res" msgstr "" -"Ausführung der Halbierung fehlgeschlagen:\n" +"'bisect run' fehlgeschlagen:\n" "'bisect_state $state' wurde mit Fehlerwert $res beendet" #: git-bisect.sh:466 msgid "bisect run success" -msgstr "Halbierung erfolgreich ausgeführt" +msgstr "'bisect run' erfolgreich ausgeführt" #: git-pull.sh:21 msgid "" @@ -9725,18 +9905,25 @@ msgid "blob" msgstr "Blob" #: git-submodule.sh:979 -msgid "# Submodules changed but not updated:" -msgstr "# Unterprojekte geändert, aber nicht aktualisiert:" +msgid "Submodules changed but not updated:" +msgstr "Unterprojekte geändert, aber nicht aktualisiert:" #: git-submodule.sh:981 -msgid "# Submodule changes to be committed:" -msgstr "# Änderungen in Unterprojekt zum Eintragen:" +msgid "Submodule changes to be committed:" +msgstr "Änderungen in Unterprojekt zum Eintragen:" #: git-submodule.sh:1129 #, sh-format msgid "Synchronizing submodule url for '$prefix$sm_path'" msgstr "Synchronisiere Unterprojekt-URL für '$prefix$sm_path'" +#~ msgid "can't fdopen 'show' output fd" +#~ msgstr "konnte Datei-Deskriptor für Ausgabe von 'show' nicht öffnen" + +#~ msgid "failed to close pipe to 'show' for object '%s'" +#~ msgstr "" +#~ "Schließen der Verbindung zu 'show' ist für Objekt '%s' fehlgeschlagen." + #~ msgid "You do not have a valid HEAD" #~ msgstr "Sie haben keine gültige Zweigspitze (HEAD)" diff --git a/po/git.pot b/po/git.pot index 0ca230e270..a826dcbf9f 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: 2013-02-14 14:46+0800\n" +"POT-Creation-Date: 2013-03-05 12:36+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" @@ -122,7 +122,7 @@ msgstr "" #: attr.c:259 msgid "" -"Negative patterns are forbidden in git attributes\n" +"Negative patterns are ignored in git attributes\n" "Use '\\!' for literal leading exclamation." msgstr "" @@ -299,36 +299,36 @@ msgid_plural "%lu years ago" msgstr[0] "" msgstr[1] "" -#: diff.c:111 +#: diff.c:112 #, c-format msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr "" -#: diff.c:116 +#: diff.c:117 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr "" -#: diff.c:194 +#: diff.c:210 #, c-format msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "" -#: diff.c:237 +#: diff.c:260 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" "%s" msgstr "" -#: diff.c:3494 +#: diff.c:3468 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" "%s" msgstr "" -#: diff.c:3508 +#: diff.c:3482 #, c-format msgid "Failed to parse --submodule option parameter: '%s'" msgstr "" @@ -676,27 +676,31 @@ msgstr "" msgid "Unable to write index." msgstr "" -#: parse-options.c:485 +#: parse-options.c:489 msgid "..." msgstr "" -#: parse-options.c:503 +#: parse-options.c:507 #, c-format msgid "usage: %s" msgstr "" #. TRANSLATORS: the colon here should align with the #. one in "usage: %s" translation -#: parse-options.c:507 +#: parse-options.c:511 #, c-format msgid " or: %s" msgstr "" -#: parse-options.c:510 +#: parse-options.c:514 #, c-format msgid " %s" msgstr "" +#: parse-options.c:548 +msgid "-NUM" +msgstr "" + #: pathspec.c:83 #, c-format msgid "Path '%s' is in submodule '%.*s'" @@ -945,7 +949,7 @@ msgstr "" msgid "cannot abort from a branch yet to be born" msgstr "" -#: sequencer.c:821 builtin/apply.c:4020 +#: sequencer.c:821 builtin/apply.c:4056 #, c-format msgid "cannot open %s: %s" msgstr "" @@ -1163,7 +1167,7 @@ msgstr "" msgid "You have unmerged paths." msgstr "" -#: wt-status.c:792 wt-status.c:916 +#: wt-status.c:792 wt-status.c:944 msgid " (fix conflicts and run \"git commit\")" msgstr "" @@ -1195,155 +1199,176 @@ msgstr "" msgid " (use \"git am --abort\" to restore the original branch)" msgstr "" -#: wt-status.c:877 wt-status.c:887 +#: wt-status.c:879 wt-status.c:896 +#, c-format +msgid "You are currently rebasing branch '%s' on '%s'." +msgstr "" + +#: wt-status.c:884 wt-status.c:901 msgid "You are currently rebasing." msgstr "" -#: wt-status.c:880 +#: wt-status.c:887 msgid " (fix conflicts and then run \"git rebase --continue\")" msgstr "" -#: wt-status.c:882 +#: wt-status.c:889 msgid " (use \"git rebase --skip\" to skip this patch)" msgstr "" -#: wt-status.c:884 +#: wt-status.c:891 msgid " (use \"git rebase --abort\" to check out the original branch)" msgstr "" -#: wt-status.c:890 +#: wt-status.c:904 msgid " (all conflicts fixed: run \"git rebase --continue\")" msgstr "" -#: wt-status.c:892 +#: wt-status.c:908 +#, c-format +msgid "" +"You are currently splitting a commit while rebasing branch '%s' on '%s'." +msgstr "" + +#: wt-status.c:913 msgid "You are currently splitting a commit during a rebase." msgstr "" -#: wt-status.c:895 +#: wt-status.c:916 msgid " (Once your working directory is clean, run \"git rebase --continue\")" msgstr "" -#: wt-status.c:897 +#: wt-status.c:920 +#, c-format +msgid "You are currently editing a commit while rebasing branch '%s' on '%s'." +msgstr "" + +#: wt-status.c:925 msgid "You are currently editing a commit during a rebase." msgstr "" -#: wt-status.c:900 +#: wt-status.c:928 msgid " (use \"git commit --amend\" to amend the current commit)" msgstr "" -#: wt-status.c:902 +#: wt-status.c:930 msgid "" " (use \"git rebase --continue\" once you are satisfied with your changes)" msgstr "" -#: wt-status.c:912 +#: wt-status.c:940 msgid "You are currently cherry-picking." msgstr "" -#: wt-status.c:919 +#: wt-status.c:947 msgid " (all conflicts fixed: run \"git commit\")" msgstr "" -#: wt-status.c:928 +#: wt-status.c:958 +#, c-format +msgid "You are currently bisecting branch '%s'." +msgstr "" + +#: wt-status.c:962 msgid "You are currently bisecting." msgstr "" -#: wt-status.c:931 +#: wt-status.c:965 msgid " (use \"git bisect reset\" to get back to the original branch)" msgstr "" -#: wt-status.c:982 +#: wt-status.c:1064 msgid "On branch " msgstr "" -#: wt-status.c:989 +#: wt-status.c:1071 msgid "Not currently on any branch." msgstr "" -#: wt-status.c:1001 +#: wt-status.c:1083 msgid "Initial commit" msgstr "" -#: wt-status.c:1015 +#: wt-status.c:1097 msgid "Untracked files" msgstr "" -#: wt-status.c:1017 +#: wt-status.c:1099 msgid "Ignored files" msgstr "" -#: wt-status.c:1019 +#: wt-status.c:1101 #, c-format msgid "Untracked files not listed%s" msgstr "" -#: wt-status.c:1021 +#: wt-status.c:1103 msgid " (use -u option to show untracked files)" msgstr "" -#: wt-status.c:1027 +#: wt-status.c:1109 msgid "No changes" msgstr "" -#: wt-status.c:1032 +#: wt-status.c:1114 #, c-format msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n" msgstr "" -#: wt-status.c:1035 +#: wt-status.c:1117 #, c-format msgid "no changes added to commit\n" msgstr "" -#: wt-status.c:1038 +#: wt-status.c:1120 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " "track)\n" msgstr "" -#: wt-status.c:1041 +#: wt-status.c:1123 #, c-format msgid "nothing added to commit but untracked files present\n" msgstr "" -#: wt-status.c:1044 +#: wt-status.c:1126 #, c-format msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "" -#: wt-status.c:1047 wt-status.c:1052 +#: wt-status.c:1129 wt-status.c:1134 #, c-format msgid "nothing to commit\n" msgstr "" -#: wt-status.c:1050 +#: wt-status.c:1132 #, c-format msgid "nothing to commit (use -u to show untracked files)\n" msgstr "" -#: wt-status.c:1054 +#: wt-status.c:1136 #, c-format msgid "nothing to commit, working directory clean\n" msgstr "" -#: wt-status.c:1162 +#: wt-status.c:1244 msgid "HEAD (no branch)" msgstr "" -#: wt-status.c:1168 +#: wt-status.c:1250 msgid "Initial commit on " msgstr "" -#: wt-status.c:1183 +#: wt-status.c:1265 msgid "behind " msgstr "" -#: wt-status.c:1186 wt-status.c:1189 +#: wt-status.c:1268 wt-status.c:1271 msgid "ahead " msgstr "" -#: wt-status.c:1191 +#: wt-status.c:1273 msgid ", behind " msgstr "" @@ -1416,7 +1441,7 @@ msgstr "" msgid "dry run" msgstr "" -#: builtin/add.c:278 builtin/apply.c:4369 builtin/check-ignore.c:19 +#: builtin/add.c:278 builtin/apply.c:4405 builtin/check-ignore.c:19 #: builtin/commit.c:1150 builtin/count-objects.c:82 builtin/fsck.c:613 #: builtin/log.c:1522 builtin/mv.c:62 builtin/read-tree.c:112 msgid "be verbose" @@ -1528,7 +1553,7 @@ msgstr "" msgid "index file corrupt" msgstr "" -#: builtin/add.c:481 builtin/apply.c:4465 builtin/mv.c:229 builtin/rm.c:370 +#: builtin/add.c:481 builtin/apply.c:4501 builtin/mv.c:229 builtin/rm.c:370 msgid "Unable to write new index file" msgstr "" @@ -1774,224 +1799,224 @@ msgstr "" msgid "Checking patch %s..." msgstr "" -#: builtin/apply.c:3639 builtin/checkout.c:215 builtin/reset.c:124 +#: builtin/apply.c:3675 builtin/checkout.c:215 builtin/reset.c:124 #, c-format msgid "make_cache_entry failed for path '%s'" msgstr "" -#: builtin/apply.c:3782 +#: builtin/apply.c:3818 #, c-format msgid "unable to remove %s from index" msgstr "" -#: builtin/apply.c:3810 +#: builtin/apply.c:3846 #, c-format msgid "corrupt patch for subproject %s" msgstr "" -#: builtin/apply.c:3814 +#: builtin/apply.c:3850 #, c-format msgid "unable to stat newly created file '%s'" msgstr "" -#: builtin/apply.c:3819 +#: builtin/apply.c:3855 #, c-format msgid "unable to create backing store for newly created file %s" msgstr "" -#: builtin/apply.c:3822 builtin/apply.c:3930 +#: builtin/apply.c:3858 builtin/apply.c:3966 #, c-format msgid "unable to add cache entry for %s" msgstr "" -#: builtin/apply.c:3855 +#: builtin/apply.c:3891 #, c-format msgid "closing file '%s'" msgstr "" -#: builtin/apply.c:3904 +#: builtin/apply.c:3940 #, c-format msgid "unable to write file '%s' mode %o" msgstr "" -#: builtin/apply.c:3991 +#: builtin/apply.c:4027 #, c-format msgid "Applied patch %s cleanly." msgstr "" -#: builtin/apply.c:3999 +#: builtin/apply.c:4035 msgid "internal error" msgstr "" #. Say this even without --verbose -#: builtin/apply.c:4002 +#: builtin/apply.c:4038 #, c-format msgid "Applying patch %%s with %d reject..." msgid_plural "Applying patch %%s with %d rejects..." msgstr[0] "" msgstr[1] "" -#: builtin/apply.c:4012 +#: builtin/apply.c:4048 #, c-format msgid "truncating .rej filename to %.*s.rej" msgstr "" -#: builtin/apply.c:4033 +#: builtin/apply.c:4069 #, c-format msgid "Hunk #%d applied cleanly." msgstr "" -#: builtin/apply.c:4036 +#: builtin/apply.c:4072 #, c-format msgid "Rejected hunk #%d." msgstr "" -#: builtin/apply.c:4186 +#: builtin/apply.c:4222 msgid "unrecognized input" msgstr "" -#: builtin/apply.c:4197 +#: builtin/apply.c:4233 msgid "unable to read index file" msgstr "" -#: builtin/apply.c:4316 builtin/apply.c:4319 builtin/clone.c:91 +#: builtin/apply.c:4352 builtin/apply.c:4355 builtin/clone.c:91 #: builtin/fetch.c:63 msgid "path" msgstr "" -#: builtin/apply.c:4317 +#: builtin/apply.c:4353 msgid "don't apply changes matching the given path" msgstr "" -#: builtin/apply.c:4320 +#: builtin/apply.c:4356 msgid "apply changes matching the given path" msgstr "" -#: builtin/apply.c:4322 +#: builtin/apply.c:4358 msgid "num" msgstr "" -#: builtin/apply.c:4323 +#: builtin/apply.c:4359 msgid "remove <num> leading slashes from traditional diff paths" msgstr "" -#: builtin/apply.c:4326 +#: builtin/apply.c:4362 msgid "ignore additions made by the patch" msgstr "" -#: builtin/apply.c:4328 +#: builtin/apply.c:4364 msgid "instead of applying the patch, output diffstat for the input" msgstr "" -#: builtin/apply.c:4332 +#: builtin/apply.c:4368 msgid "show number of added and deleted lines in decimal notation" msgstr "" -#: builtin/apply.c:4334 +#: builtin/apply.c:4370 msgid "instead of applying the patch, output a summary for the input" msgstr "" -#: builtin/apply.c:4336 +#: builtin/apply.c:4372 msgid "instead of applying the patch, see if the patch is applicable" msgstr "" -#: builtin/apply.c:4338 +#: builtin/apply.c:4374 msgid "make sure the patch is applicable to the current index" msgstr "" -#: builtin/apply.c:4340 +#: builtin/apply.c:4376 msgid "apply a patch without touching the working tree" msgstr "" -#: builtin/apply.c:4342 +#: builtin/apply.c:4378 msgid "also apply the patch (use with --stat/--summary/--check)" msgstr "" -#: builtin/apply.c:4344 +#: builtin/apply.c:4380 msgid "attempt three-way merge if a patch does not apply" msgstr "" -#: builtin/apply.c:4346 +#: builtin/apply.c:4382 msgid "build a temporary index based on embedded index information" msgstr "" -#: builtin/apply.c:4348 builtin/checkout-index.c:197 builtin/ls-files.c:463 +#: builtin/apply.c:4384 builtin/checkout-index.c:197 builtin/ls-files.c:463 msgid "paths are separated with NUL character" msgstr "" -#: builtin/apply.c:4351 +#: builtin/apply.c:4387 msgid "ensure at least <n> lines of context match" msgstr "" -#: builtin/apply.c:4352 +#: builtin/apply.c:4388 msgid "action" msgstr "" -#: builtin/apply.c:4353 +#: builtin/apply.c:4389 msgid "detect new or modified lines that have whitespace errors" msgstr "" -#: builtin/apply.c:4356 builtin/apply.c:4359 +#: builtin/apply.c:4392 builtin/apply.c:4395 msgid "ignore changes in whitespace when finding context" msgstr "" -#: builtin/apply.c:4362 +#: builtin/apply.c:4398 msgid "apply the patch in reverse" msgstr "" -#: builtin/apply.c:4364 +#: builtin/apply.c:4400 msgid "don't expect at least one line of context" msgstr "" -#: builtin/apply.c:4366 +#: builtin/apply.c:4402 msgid "leave the rejected hunks in corresponding *.rej files" msgstr "" -#: builtin/apply.c:4368 +#: builtin/apply.c:4404 msgid "allow overlapping hunks" msgstr "" -#: builtin/apply.c:4371 +#: builtin/apply.c:4407 msgid "tolerate incorrectly detected missing new-line at the end of file" msgstr "" -#: builtin/apply.c:4374 +#: builtin/apply.c:4410 msgid "do not trust the line counts in the hunk headers" msgstr "" -#: builtin/apply.c:4376 +#: builtin/apply.c:4412 msgid "root" msgstr "" -#: builtin/apply.c:4377 +#: builtin/apply.c:4413 msgid "prepend <root> to all filenames" msgstr "" -#: builtin/apply.c:4399 +#: builtin/apply.c:4435 msgid "--3way outside a repository" msgstr "" -#: builtin/apply.c:4407 +#: builtin/apply.c:4443 msgid "--index outside a repository" msgstr "" -#: builtin/apply.c:4410 +#: builtin/apply.c:4446 msgid "--cached outside a repository" msgstr "" -#: builtin/apply.c:4426 +#: builtin/apply.c:4462 #, c-format msgid "can't open patch '%s'" msgstr "" -#: builtin/apply.c:4440 +#: builtin/apply.c:4476 #, c-format msgid "squelched %d whitespace error" msgid_plural "squelched %d whitespace errors" msgstr[0] "" msgstr[1] "" -#: builtin/apply.c:4446 builtin/apply.c:4456 +#: builtin/apply.c:4482 builtin/apply.c:4492 #, c-format msgid "%d line adds whitespace errors." msgid_plural "%d lines add whitespace errors." @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: git 1.8.1\n" +"Project-Id-Version: git 1.8.2\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2013-01-25 12:33+0800\n" -"PO-Revision-Date: 2013-01-27 22:36+0100\n" +"POT-Creation-Date: 2013-03-05 12:36+0800\n" +"PO-Revision-Date: 2013-03-05 09:17+0100\n" "Last-Translator: Peter Krefting <peter@softwolves.pp.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" "Language: sv\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: advice.c:45 +#: advice.c:49 #, c-format msgid "hint: %.*s\n" msgstr "tips: %.*s\n" @@ -26,7 +26,7 @@ msgstr "tips: %.*s\n" #. * Message used both when 'git commit' fails and when #. * other commands doing a merge do. #. -#: advice.c:75 +#: advice.c:79 msgid "" "Fix them up in the work tree,\n" "and then use 'git add/rm <file>' as\n" @@ -73,11 +73,11 @@ msgstr "prefix" msgid "prepend prefix to each pathname in the archive" msgstr "lägg till prefix till varje sökväg i arkivet" -#: archive.c:326 builtin/archive.c:91 builtin/blame.c:2380 -#: builtin/blame.c:2381 builtin/config.c:55 builtin/fast-export.c:653 +#: archive.c:326 builtin/archive.c:91 builtin/blame.c:2366 +#: builtin/blame.c:2367 builtin/config.c:55 builtin/fast-export.c:653 #: builtin/fast-export.c:655 builtin/grep.c:715 builtin/hash-object.c:77 -#: builtin/ls-files.c:494 builtin/ls-files.c:497 builtin/notes.c:540 -#: builtin/notes.c:697 builtin/read-tree.c:107 parse-options.h:149 +#: builtin/ls-files.c:497 builtin/ls-files.c:500 builtin/notes.c:536 +#: builtin/notes.c:693 builtin/read-tree.c:107 parse-options.h:149 msgid "file" msgstr "fil" @@ -117,7 +117,7 @@ msgstr "arkiv" msgid "retrieve the archive from remote repository <repo>" msgstr "hämta arkivet från fjärrarkivet <arkiv>" -#: archive.c:347 builtin/archive.c:95 builtin/notes.c:619 +#: archive.c:347 builtin/archive.c:95 builtin/notes.c:615 msgid "command" msgstr "kommando" @@ -127,10 +127,10 @@ msgstr "sökväg till kommandot git-upload-archive på fjärren" #: attr.c:259 msgid "" -"Negative patterns are forbidden in git attributes\n" +"Negative patterns are ignored in git attributes\n" "Use '\\!' for literal leading exclamation." msgstr "" -"Negativa mönster är förbjudna i git-attribut\n" +"Negativa mönster ignoreras i git-attribut\n" "Använd '\\!' för att inleda med ett utropstecken." #: bundle.c:36 @@ -306,22 +306,22 @@ msgid_plural "%lu years ago" msgstr[0] "%lu år sedan" msgstr[1] "%lu år sedan" -#: diff.c:111 +#: diff.c:112 #, c-format msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr " Misslyckades tolka dirstat-avskärningsprocentandel \"%s\"\n" -#: diff.c:116 +#: diff.c:117 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr " Okänd dirstat-parameter \"%s\"\n" -#: diff.c:194 +#: diff.c:210 #, c-format msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "Okänt värde för konfigurationsvariabeln \"diff.submodule\": \"%s\"" -#: diff.c:237 +#: diff.c:260 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" @@ -330,7 +330,7 @@ msgstr "" "Hittade fel i konfigurationsvariabeln \"diff.dirstat\":\n" "%s" -#: diff.c:3494 +#: diff.c:3468 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -339,12 +339,12 @@ msgstr "" "Misslyckades tolka argument till flaggan --dirstat/-X;\n" "%s" -#: diff.c:3508 +#: diff.c:3482 #, 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:59 gpg-interface.c:127 msgid "could not run gpg." msgstr "kunde inte köra gpg." @@ -356,6 +356,16 @@ msgstr "gpg godtog inte data" msgid "gpg failed to sign the data" msgstr "gpg misslyckades signera data" +#: gpg-interface.c:112 +#, c-format +msgid "could not create temporary file '%s': %s" +msgstr "kunde inte skapa temporära filen \"%s\": %s" + +#: gpg-interface.c:115 +#, c-format +msgid "failed writing detached signature to '%s': %s" +msgstr "misslyckades skriva fristående signatur till \"%s\": %s" + #: grep.c:1622 #, c-format msgid "'%s': unable to read %s" @@ -380,7 +390,11 @@ msgstr "git-kommandon tillgängliga i \"%s\"" msgid "git commands available from elsewhere on your $PATH" msgstr "git-kommandon från andra platser i din $PATH" -#: help.c:275 +#: help.c:235 +msgid "The most commonly used git commands are:" +msgstr "De mest använda git-kommandona är:" + +#: help.c:292 #, c-format msgid "" "'%s' appears to be a git command, but we were not\n" @@ -389,11 +403,11 @@ msgstr "" "\"%s\" verkar vara ett git-kommando, men vi kan inte\n" "köra det. Kanske git-%s är trasigt?" -#: help.c:332 +#: help.c:349 msgid "Uh oh. Your system reports no Git commands at all." msgstr "Oj då. Ditt system rapporterar inga Git-kommandon alls." -#: help.c:354 +#: help.c:371 #, c-format msgid "" "WARNING: You called a Git command named '%s', which does not exist.\n" @@ -402,17 +416,17 @@ msgstr "" "VARNING: Du anropade ett Git-kommando vid namn \"%s\", som inte finns.\n" "Fortsätter under förutsättningen att du menade \"%s\"" -#: help.c:359 +#: help.c:376 #, c-format msgid "in %0.1f seconds automatically..." msgstr "automatiskt om %0.1f sekunder..." -#: help.c:366 +#: help.c:383 #, c-format msgid "git: '%s' is not a git command. See 'git --help'." msgstr "git: \"%s\" är inte ett git-kommando. Se \"git --help\"." -#: help.c:370 +#: help.c:387 msgid "" "\n" "Did you mean this?" @@ -689,39 +703,53 @@ msgstr "Kunde inte tolka objektet \"%s\"" msgid "Unable to write index." msgstr "Kunde inte skriva indexet." -#: parse-options.c:485 +#: parse-options.c:489 msgid "..." msgstr "..." -#: parse-options.c:503 +#: parse-options.c:507 #, 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:507 +#: parse-options.c:511 #, c-format msgid " or: %s" msgstr " eller: %s" -#: parse-options.c:510 +#: parse-options.c:514 #, c-format msgid " %s" msgstr " %s" -#: remote.c:1686 +#: parse-options.c:548 +msgid "-NUM" +msgstr "-TAL" + +#: pathspec.c:83 +#, c-format +msgid "Path '%s' is in submodule '%.*s'" +msgstr "Sökvägen \"%s\" är i undermodulen \"%.*s\"" + +#: pathspec.c:99 +#, c-format +msgid "'%s' is beyond a symbolic link" +msgstr "\"%s\" är på andra sidan av en symbolisk länk" + +#: remote.c:1653 #, 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:1692 +#: remote.c:1659 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:1695 +#: remote.c:1662 #, c-format msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n" msgid_plural "" @@ -731,11 +759,11 @@ msgstr[0] "" msgstr[1] "" "Din gren ligger efter \"%s\" med %d incheckningar, och kan snabbspolas.\n" -#: remote.c:1703 +#: remote.c:1670 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:1706 +#: remote.c:1673 #, c-format msgid "" "Your branch and '%s' have diverged,\n" @@ -750,18 +778,18 @@ msgstr[1] "" "Din gren och \"%s\" har divergerat,\n" "och har %d respektive %d olika incheckningar.\n" -#: remote.c:1716 +#: remote.c:1683 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" -#: sequencer.c:123 builtin/merge.c:761 builtin/merge.c:875 builtin/merge.c:985 -#: builtin/merge.c:995 +#: sequencer.c:123 builtin/merge.c:761 builtin/merge.c:874 builtin/merge.c:984 +#: builtin/merge.c:994 #, c-format msgid "Could not open '%s' for writing" msgstr "Kunde inte öppna \"%s\" för skrivning" -#: sequencer.c:125 builtin/merge.c:333 builtin/merge.c:764 builtin/merge.c:987 -#: builtin/merge.c:1000 +#: sequencer.c:125 builtin/merge.c:333 builtin/merge.c:764 builtin/merge.c:986 +#: builtin/merge.c:999 #, c-format msgid "Could not write to '%s'" msgstr "Kunde inte skriva till \"%s\"" @@ -959,7 +987,7 @@ msgstr "kan inte bestämma HEAD" 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:821 builtin/apply.c:4016 +#: sequencer.c:821 builtin/apply.c:4056 #, c-format msgid "cannot open %s: %s" msgstr "kan inte öppna %s: %s" @@ -1179,148 +1207,173 @@ msgstr "osammansl.: %s" msgid "bug: unhandled diff status %c" msgstr "programfel: diff-status %c ej hanterad" -#: wt-status.c:787 +#: wt-status.c:789 msgid "You have unmerged paths." msgstr "Du har ej sammanslagna sökvägar." -#: wt-status.c:790 wt-status.c:914 +#: wt-status.c:792 wt-status.c:944 msgid " (fix conflicts and run \"git commit\")" msgstr " (rätta konflikter och kör \"git commit\")" -#: wt-status.c:793 +#: wt-status.c:795 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:796 +#: wt-status.c:798 msgid " (use \"git commit\" to conclude merge)" msgstr " (använd \"git commit\" för att slutföra sammanslagningen)" -#: wt-status.c:806 +#: wt-status.c:808 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:809 +#: wt-status.c:811 msgid "The current patch is empty." msgstr "Aktuell patch är tom." -#: wt-status.c:813 +#: wt-status.c:815 msgid " (fix conflicts and then run \"git am --resolved\")" msgstr " (rätta konflikter och kör sedan \"git am --resolved\")" -#: wt-status.c:815 +#: wt-status.c:817 msgid " (use \"git am --skip\" to skip this patch)" msgstr " (använd \"git am --skip\" för att hoppa över patchen)" -#: wt-status.c:817 +#: wt-status.c:819 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:875 wt-status.c:885 +#: wt-status.c:879 wt-status.c:896 +#, 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:884 wt-status.c:901 msgid "You are currently rebasing." msgstr "Du håller på med en ombasering." -#: wt-status.c:878 +#: wt-status.c:887 msgid " (fix conflicts and then run \"git rebase --continue\")" msgstr " (rätta konflikter och kör sedan \"git rebase --continue\")" -#: wt-status.c:880 +#: wt-status.c:889 msgid " (use \"git rebase --skip\" to skip this patch)" msgstr " (använd \"git rebase --skip\" för att hoppa över patchen)" -#: wt-status.c:882 +#: wt-status.c:891 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:888 +#: wt-status.c:904 msgid " (all conflicts fixed: run \"git rebase --continue\")" msgstr " (alla konflikter rättade: kör \"git rebase --continue\")" -#: wt-status.c:890 +#: wt-status.c:908 +#, c-format +msgid "" +"You are currently splitting a commit while rebasing branch '%s' on '%s'." +msgstr "" +"Du håller på att dela upp en incheckning medan du ombaserar grenen \"%s\" " +"ovanpå \"%s\"." + +#: wt-status.c:913 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:893 +#: wt-status.c:916 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:895 +#: wt-status.c:920 +#, 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:925 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:898 +#: wt-status.c:928 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:900 +#: wt-status.c:930 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:910 +#: wt-status.c:940 msgid "You are currently cherry-picking." msgstr "Du håller på med en \"cherry-pick\"." -#: wt-status.c:917 +#: wt-status.c:947 msgid " (all conflicts fixed: run \"git commit\")" msgstr " (alla konflikter har rättats: kör \"git commit\")" -#: wt-status.c:926 +#: wt-status.c:958 +#, c-format +msgid "You are currently bisecting branch '%s'." +msgstr "Du håller på med en \"bisect\" på grenen \"%s\"." + +#: wt-status.c:962 msgid "You are currently bisecting." msgstr "Du håller på med en \"bisect\"." -#: wt-status.c:929 +#: wt-status.c:965 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:980 +#: wt-status.c:1064 msgid "On branch " msgstr "På grenen " -#: wt-status.c:987 +#: wt-status.c:1071 msgid "Not currently on any branch." msgstr "Inte på någon gren för närvarande." -#: wt-status.c:999 +#: wt-status.c:1083 msgid "Initial commit" msgstr "Första incheckning" -#: wt-status.c:1013 +#: wt-status.c:1097 msgid "Untracked files" msgstr "Ospårade filer" -#: wt-status.c:1015 +#: wt-status.c:1099 msgid "Ignored files" msgstr "Ignorerade filer" # %s är nästa sträng eller tom. -#: wt-status.c:1017 +#: wt-status.c:1101 #, c-format msgid "Untracked files not listed%s" msgstr "Ospårade filer visas ej%s" -#: wt-status.c:1019 +#: wt-status.c:1103 msgid " (use -u option to show untracked files)" msgstr " (använd flaggan -u för att visa ospårade filer)" -#: wt-status.c:1025 +#: wt-status.c:1109 msgid "No changes" msgstr "Inga ändringar" -#: wt-status.c:1030 +#: wt-status.c:1114 #, 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:1033 +#: wt-status.c:1117 #, c-format msgid "no changes added to commit\n" msgstr "inga ändringar att checka in\n" -#: wt-status.c:1036 +#: wt-status.c:1120 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " @@ -1329,189 +1382,228 @@ msgstr "" "inget köat för incheckning, men ospårade filer finns (spåra med \"git add" "\")\n" -#: wt-status.c:1039 +#: wt-status.c:1123 #, 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:1042 +#: wt-status.c:1126 #, 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:1045 wt-status.c:1050 +#: wt-status.c:1129 wt-status.c:1134 #, c-format msgid "nothing to commit\n" msgstr "inget att checka in\n" -#: wt-status.c:1048 +#: wt-status.c:1132 #, 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:1052 +#: wt-status.c:1136 #, c-format msgid "nothing to commit, working directory clean\n" msgstr "inget att checka in, arbetskatalogen ren\n" -#: wt-status.c:1160 +#: wt-status.c:1244 msgid "HEAD (no branch)" msgstr "HEAD (ingen gren)" -#: wt-status.c:1166 +#: wt-status.c:1250 msgid "Initial commit on " msgstr "Första incheckning på " -#: wt-status.c:1181 +#: wt-status.c:1265 msgid "behind " msgstr "efter " -#: wt-status.c:1184 wt-status.c:1187 +#: wt-status.c:1268 wt-status.c:1271 msgid "ahead " msgstr "före " -#: wt-status.c:1189 +#: wt-status.c:1273 msgid ", behind " msgstr ", efter " -#: builtin/add.c:19 -msgid "git add [options] [--] <filepattern>..." -msgstr "git add [flaggor] [--] <filmönster>..." +#: compat/precompose_utf8.c:58 builtin/clone.c:341 +#, c-format +msgid "failed to unlink '%s'" +msgstr "misslyckades ta bort länken \"%s\"" + +#: builtin/add.c:20 +msgid "git add [options] [--] <pathspec>..." +msgstr "git add [flaggor] [--] <sökväg>..." -#: builtin/add.c:62 +#: builtin/add.c:63 #, c-format msgid "unexpected diff status %c" msgstr "diff-status %c förväntades inte" -#: builtin/add.c:67 builtin/commit.c:231 +#: builtin/add.c:68 builtin/commit.c:231 msgid "updating files failed" msgstr "misslyckades uppdatera filer" -#: builtin/add.c:77 +#: builtin/add.c:78 #, c-format msgid "remove '%s'\n" msgstr "ta bort \"%s\"\n" -#: builtin/add.c:176 -#, c-format -msgid "Path '%s' is in submodule '%.*s'" -msgstr "Sökvägen \"%s\" är i undermodulen \"%.*s\"" - -#: builtin/add.c:192 +#: builtin/add.c:148 msgid "Unstaged changes after refreshing the index:" msgstr "Ospårade ändringar efter att ha uppdaterat indexet:" -#: builtin/add.c:195 builtin/add.c:460 builtin/rm.c:275 +#: builtin/add.c:151 builtin/add.c:460 builtin/rm.c:275 #, c-format msgid "pathspec '%s' did not match any files" msgstr "sökvägsangivelsen \"%s\" motsvarade inte några filer" -#: builtin/add.c:209 -#, c-format -msgid "'%s' is beyond a symbolic link" -msgstr "\"%s\" är på andra sidan av en symbolisk länk" - -#: builtin/add.c:276 +#: builtin/add.c:234 msgid "Could not read the index" msgstr "Kunde inte läsa indexet" -#: builtin/add.c:286 +#: builtin/add.c:244 #, c-format msgid "Could not open '%s' for writing." msgstr "Kunde inte öppna \"%s\" för skrivning" -#: builtin/add.c:290 +#: builtin/add.c:248 msgid "Could not write patch" msgstr "Kunde inte skriva patch" -#: builtin/add.c:295 +#: builtin/add.c:253 #, c-format msgid "Could not stat '%s'" msgstr "Kunde inte ta status på \"%s\"" -#: builtin/add.c:297 +#: builtin/add.c:255 msgid "Empty patch. Aborted." msgstr "Tom patch. Avbryter." -#: builtin/add.c:303 +#: builtin/add.c:261 #, c-format msgid "Could not apply '%s'" msgstr "Kunde inte tillämpa \"%s\"" -#: builtin/add.c:313 +#: builtin/add.c:271 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:319 builtin/clean.c:160 builtin/fetch.c:78 builtin/mv.c:63 -#: builtin/prune-packed.c:76 builtin/push.c:396 builtin/remote.c:1253 +#: builtin/add.c:277 builtin/clean.c:161 builtin/fetch.c:78 builtin/mv.c:63 +#: builtin/prune-packed.c:76 builtin/push.c:425 builtin/remote.c:1253 #: builtin/rm.c:206 msgid "dry run" msgstr "testkörning" -#: builtin/add.c:320 builtin/apply.c:4365 builtin/commit.c:1160 -#: builtin/count-objects.c:82 builtin/fsck.c:613 builtin/log.c:1522 -#: builtin/mv.c:62 builtin/read-tree.c:112 +#: builtin/add.c:278 builtin/apply.c:4405 builtin/check-ignore.c:19 +#: builtin/commit.c:1150 builtin/count-objects.c:82 builtin/fsck.c:613 +#: builtin/log.c:1522 builtin/mv.c:62 builtin/read-tree.c:112 msgid "be verbose" msgstr "var pratsam" -#: builtin/add.c:322 +#: builtin/add.c:280 msgid "interactive picking" msgstr "plocka interaktivt" -#: builtin/add.c:323 builtin/checkout.c:1031 builtin/reset.c:258 +#: builtin/add.c:281 builtin/checkout.c:1031 builtin/reset.c:258 msgid "select hunks interactively" msgstr "välj stycken interaktivt" -#: builtin/add.c:324 +#: builtin/add.c:282 msgid "edit current diff and apply" msgstr "redigera aktuell diff och applicera" -#: builtin/add.c:325 +#: builtin/add.c:283 msgid "allow adding otherwise ignored files" msgstr "tillåt lägga till annars ignorerade filer" -#: builtin/add.c:326 +#: builtin/add.c:284 msgid "update tracked files" msgstr "uppdatera spårade filer" -#: builtin/add.c:327 +#: builtin/add.c:285 msgid "record only the fact that the path will be added later" msgstr "registrera endast att sökvägen kommer läggas till senare" -#: builtin/add.c:328 +#: builtin/add.c:286 msgid "add changes from all tracked and untracked files" msgstr "lägg till ändringar från alla spårade och ospårade filer" -#: builtin/add.c:329 +#: builtin/add.c:287 msgid "don't add, only refresh the index" msgstr "lägg inte till, uppdatera endast indexet" -#: builtin/add.c:330 +#: builtin/add.c:288 msgid "just skip files which cannot be added because of errors" msgstr "hoppa bara över filer som inte kan läggas till på grund av fel" -#: builtin/add.c:331 +#: builtin/add.c:289 msgid "check if - even missing - files are ignored in dry run" msgstr "se om - även saknade - filer ignoreras i testkörning" -#: builtin/add.c:353 +#: builtin/add.c:311 #, c-format msgid "Use -f if you really want to add them.\n" msgstr "Använd -f om du verkligen vill lägga till dem.\n" -#: builtin/add.c:354 +#: builtin/add.c:312 msgid "no files added" msgstr "inga filer har lagts till" -#: builtin/add.c:360 +#: builtin/add.c:318 msgid "adding files failed" msgstr "misslyckades lägga till filer" -#: builtin/add.c:392 +#. +#. * To be consistent with "git add -p" and most Git +#. * commands, we should default to being tree-wide, but +#. * this is not the original behavior and can't be +#. * changed until users trained themselves not to type +#. * "git add -u" or "git add -A". For now, we warn and +#. * keep the old behavior. Later, this warning can be +#. * turned into a die(...), and eventually we may +#. * reallow the command with a new behavior. +#. +#: builtin/add.c:335 +#, c-format +msgid "" +"The behavior of 'git add %s (or %s)' with no path argument from a\n" +"subdirectory of the tree will change in Git 2.0 and should not be used " +"anymore.\n" +"To add content for the whole tree, run:\n" +"\n" +" git add %s :/\n" +" (or git add %s :/)\n" +"\n" +"To restrict the command to the current directory, run:\n" +"\n" +" git add %s .\n" +" (or git add %s .)\n" +"\n" +"With the current Git version, the command is restricted to the current " +"directory." +msgstr "" +"Beteendet för \"git add %s (eller %s)\" utan sökvägsargument från en\n" +"underkatalog i ett träd kommer ändras i Git 2.0 och bör inte längre " +"användas.\n" +"För att lägga till innehållet för hela trädet, använd:\n" +"\n" +" git add %s :/\n" +" (eller git add %s :/)\n" +"\n" +"För att begränsa kommandot till aktuell katalog, använd:\n" +"\n" +" git add %s .\n" +" (eller git add %s .)\n" +"\n" +"I nuvarande version av Git begränsas kommandot till aktuell katalog." + +#: builtin/add.c:381 msgid "-A and -u are mutually incompatible" msgstr "-A och -u är ömsesidigt inkompatibla" -#: builtin/add.c:394 +#: builtin/add.c:383 msgid "Option --ignore-missing can only be used together with --dry-run" msgstr "Flaggan --ignore-missing kan endast användas tillsammans med --dry-run" @@ -1525,12 +1617,12 @@ msgstr "Inget angivet, inget tillagt.\n" msgid "Maybe you wanted to say 'git add .'?\n" msgstr "Kanske menade du att skriva \"git add .\"?\n" -#: builtin/add.c:421 builtin/clean.c:203 builtin/commit.c:291 builtin/mv.c:82 -#: builtin/rm.c:235 +#: builtin/add.c:421 builtin/check-ignore.c:67 builtin/clean.c:204 +#: builtin/commit.c:291 builtin/mv.c:82 builtin/rm.c:235 msgid "index file corrupt" msgstr "indexfilen trasig" -#: builtin/add.c:481 builtin/apply.c:4461 builtin/mv.c:229 builtin/rm.c:370 +#: builtin/add.c:481 builtin/apply.c:4501 builtin/mv.c:229 builtin/rm.c:370 msgid "Unable to write new index file" msgstr "Kunde inte skriva ny indexfil" @@ -1583,17 +1675,17 @@ msgstr "git apply: dålig git-diff - motsägande gammalt filnamn på rad %d" 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" -#: builtin/apply.c:1420 +#: builtin/apply.c:1422 #, c-format msgid "recount: unexpected line: %.*s" msgstr "recount: förväntade rad: %.*s" -#: builtin/apply.c:1477 +#: builtin/apply.c:1479 #, c-format msgid "patch fragment without header at line %d: %.*s" msgstr "patch-fragment utan huvud på rad %d: %.*s" -#: builtin/apply.c:1494 +#: builtin/apply.c:1496 #, c-format msgid "" "git diff header lacks filename information when removing %d leading pathname " @@ -1609,78 +1701,78 @@ msgstr[1] "" "sökvägskomponenter\n" "tas bort (rad %d)" -#: builtin/apply.c:1654 +#: builtin/apply.c:1656 msgid "new file depends on old contents" msgstr "ny fil beror på gammalt innehåll" -#: builtin/apply.c:1656 +#: builtin/apply.c:1658 msgid "deleted file still has contents" msgstr "borttagen fil har fortfarande innehåll" -#: builtin/apply.c:1682 +#: builtin/apply.c:1684 #, c-format msgid "corrupt patch at line %d" msgstr "trasig patch på rad %d" -#: builtin/apply.c:1718 +#: builtin/apply.c:1720 #, c-format msgid "new file %s depends on old contents" msgstr "nya filen %s beror på gammalt innehåll" -#: builtin/apply.c:1720 +#: builtin/apply.c:1722 #, c-format msgid "deleted file %s still has contents" msgstr "borttagna filen %s har fortfarande innehåll" -#: builtin/apply.c:1723 +#: builtin/apply.c:1725 #, c-format msgid "** warning: file %s becomes empty but is not deleted" msgstr "** varning: filen %s blir tom men har inte tagits bort" -#: builtin/apply.c:1869 +#: builtin/apply.c:1871 #, c-format msgid "corrupt binary patch at line %d: %.*s" msgstr "trasig binärpatch på rad %d: %.*s" #. there has to be one hunk (forward hunk) -#: builtin/apply.c:1898 +#: builtin/apply.c:1900 #, c-format msgid "unrecognized binary patch at line %d" msgstr "binärpatchen på rad %d känns inte igen" -#: builtin/apply.c:1984 +#: builtin/apply.c:1986 #, c-format msgid "patch with only garbage at line %d" msgstr "patch med bara skräp på rad %d" -#: builtin/apply.c:2074 +#: builtin/apply.c:2076 #, c-format msgid "unable to read symlink %s" msgstr "kunde inte läsa symboliska länken %s" -#: builtin/apply.c:2078 +#: builtin/apply.c:2080 #, c-format msgid "unable to open or read %s" msgstr "kunde inte öppna eller läsa %s" -#: builtin/apply.c:2682 +#: builtin/apply.c:2684 #, c-format msgid "invalid start of line: '%c'" msgstr "felaktig inledning på rad: \"%c\"" -#: builtin/apply.c:2800 +#: builtin/apply.c:2802 #, c-format msgid "Hunk #%d succeeded at %d (offset %d line)." msgid_plural "Hunk #%d succeeded at %d (offset %d lines)." msgstr[0] "Stycke %d lyckades på %d (offset %d rad)." msgstr[1] "Stycke %d lyckades på %d (offset %d rader)." -#: builtin/apply.c:2812 +#: builtin/apply.c:2814 #, c-format msgid "Context reduced to (%ld/%ld) to apply fragment at %d" msgstr "Sammanhang reducerat till (%ld/%ld) för att tillämpa fragment vid %d" -#: builtin/apply.c:2818 +#: builtin/apply.c:2820 #, c-format msgid "" "while searching for:\n" @@ -1689,318 +1781,318 @@ msgstr "" "vid sökning efter:\n" "%.*s" -#: builtin/apply.c:2837 +#: builtin/apply.c:2839 #, c-format msgid "missing binary patch data for '%s'" msgstr "saknar binära patchdata för \"%s\"" -#: builtin/apply.c:2940 +#: builtin/apply.c:2942 #, c-format msgid "binary patch does not apply to '%s'" msgstr "binärpatchen kan inte tillämpas på \"%s\"" -#: builtin/apply.c:2946 +#: builtin/apply.c:2948 #, 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:2967 +#: builtin/apply.c:2969 #, c-format msgid "patch failed: %s:%ld" msgstr "patch misslyckades: %s:%ld" -#: builtin/apply.c:3089 +#: builtin/apply.c:3091 #, c-format msgid "cannot checkout %s" msgstr "kan inte checka ut %s" -#: builtin/apply.c:3134 builtin/apply.c:3143 builtin/apply.c:3187 +#: builtin/apply.c:3136 builtin/apply.c:3145 builtin/apply.c:3189 #, c-format msgid "read of %s failed" msgstr "misslyckades läsa %s" -#: builtin/apply.c:3167 builtin/apply.c:3389 +#: builtin/apply.c:3169 builtin/apply.c:3391 #, c-format msgid "path %s has been renamed/deleted" msgstr "sökvägen %s har ändrat namn/tagits bort" -#: builtin/apply.c:3248 builtin/apply.c:3403 +#: builtin/apply.c:3250 builtin/apply.c:3405 #, c-format msgid "%s: does not exist in index" msgstr "%s: finns inte i indexet" -#: builtin/apply.c:3252 builtin/apply.c:3395 builtin/apply.c:3417 +#: builtin/apply.c:3254 builtin/apply.c:3397 builtin/apply.c:3419 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: builtin/apply.c:3257 builtin/apply.c:3411 +#: builtin/apply.c:3259 builtin/apply.c:3413 #, c-format msgid "%s: does not match index" msgstr "%s: motsvarar inte indexet" -#: builtin/apply.c:3359 +#: builtin/apply.c:3361 msgid "removal patch leaves file contents" msgstr "patch för borttagning lämnar kvar filinnehåll" -#: builtin/apply.c:3428 +#: builtin/apply.c:3430 #, c-format msgid "%s: wrong type" msgstr "%s: fel typ" -#: builtin/apply.c:3430 +#: builtin/apply.c:3432 #, c-format msgid "%s has type %o, expected %o" msgstr "%s har typen %o, förväntade %o" -#: builtin/apply.c:3531 +#: builtin/apply.c:3533 #, c-format msgid "%s: already exists in index" msgstr "%s: finns redan i indexet" -#: builtin/apply.c:3534 +#: builtin/apply.c:3536 #, c-format msgid "%s: already exists in working directory" msgstr "%s: finns redan i arbetskatalogen" -#: builtin/apply.c:3554 +#: builtin/apply.c:3556 #, c-format msgid "new mode (%o) of %s does not match old mode (%o)" msgstr "nytt läge (%o) för %s motsvarar inte gammalt läge (%o)" -#: builtin/apply.c:3559 +#: builtin/apply.c:3561 #, c-format msgid "new mode (%o) of %s does not match old mode (%o) of %s" msgstr "nytt läge (%o) för %s motsvarar inte gammalt läge (%o) för %s" -#: builtin/apply.c:3567 +#: builtin/apply.c:3569 #, c-format msgid "%s: patch does not apply" msgstr "%s: patchen kan inte tillämpas" -#: builtin/apply.c:3580 +#: builtin/apply.c:3582 #, c-format msgid "Checking patch %s..." msgstr "Kontrollerar patchen %s..." -#: builtin/apply.c:3635 builtin/checkout.c:215 builtin/reset.c:124 +#: builtin/apply.c:3675 builtin/checkout.c:215 builtin/reset.c:124 #, c-format msgid "make_cache_entry failed for path '%s'" msgstr "make_cache_entry misslyckades för sökvägen \"%s\"" -#: builtin/apply.c:3778 +#: builtin/apply.c:3818 #, c-format msgid "unable to remove %s from index" msgstr "kan inte ta bort %s från indexet" -#: builtin/apply.c:3806 +#: builtin/apply.c:3846 #, c-format msgid "corrupt patch for subproject %s" msgstr "trasig patch för underprojektet %s" -#: builtin/apply.c:3810 +#: builtin/apply.c:3850 #, c-format msgid "unable to stat newly created file '%s'" msgstr "kan inte ta status på nyligen skapade filen \"%s\"" -#: builtin/apply.c:3815 +#: builtin/apply.c:3855 #, 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:3818 builtin/apply.c:3926 +#: builtin/apply.c:3858 builtin/apply.c:3966 #, c-format msgid "unable to add cache entry for %s" msgstr "kan inte lägga till cachepost för %s" -#: builtin/apply.c:3851 +#: builtin/apply.c:3891 #, c-format msgid "closing file '%s'" msgstr "stänger filen \"%s\"" -#: builtin/apply.c:3900 +#: builtin/apply.c:3940 #, c-format msgid "unable to write file '%s' mode %o" msgstr "kan inte skriva filen \"%s\" läge %o" -#: builtin/apply.c:3987 +#: builtin/apply.c:4027 #, c-format msgid "Applied patch %s cleanly." msgstr "Tillämpade patchen %s rent." -#: builtin/apply.c:3995 +#: builtin/apply.c:4035 msgid "internal error" msgstr "internt fel" #. Say this even without --verbose -#: builtin/apply.c:3998 +#: builtin/apply.c:4038 #, 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:4008 +#: builtin/apply.c:4048 #, c-format msgid "truncating .rej filename to %.*s.rej" msgstr "trunkerar .rej-filnamnet till %.*s.rej" -#: builtin/apply.c:4029 +#: builtin/apply.c:4069 #, c-format msgid "Hunk #%d applied cleanly." msgstr "Stycke %d tillämpades rent." -#: builtin/apply.c:4032 +#: builtin/apply.c:4072 #, c-format msgid "Rejected hunk #%d." msgstr "Refuserar stycke %d." -#: builtin/apply.c:4182 +#: builtin/apply.c:4222 msgid "unrecognized input" msgstr "indata känns inte igen" -#: builtin/apply.c:4193 +#: builtin/apply.c:4233 msgid "unable to read index file" msgstr "kan inte läsa indexfilen" -#: builtin/apply.c:4312 builtin/apply.c:4315 builtin/clone.c:91 +#: builtin/apply.c:4352 builtin/apply.c:4355 builtin/clone.c:91 #: builtin/fetch.c:63 msgid "path" msgstr "sökväg" -#: builtin/apply.c:4313 +#: builtin/apply.c:4353 msgid "don't apply changes matching the given path" msgstr "tillämpa inte ändringar som motsvarar given sökväg" -#: builtin/apply.c:4316 +#: builtin/apply.c:4356 msgid "apply changes matching the given path" msgstr "tillämpa ändringar som motsvarar given sökväg" -#: builtin/apply.c:4318 +#: builtin/apply.c:4358 msgid "num" msgstr "antal" -#: builtin/apply.c:4319 +#: builtin/apply.c:4359 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:4322 +#: builtin/apply.c:4362 msgid "ignore additions made by the patch" msgstr "ignorera tillägg gjorda av patchen" -#: builtin/apply.c:4324 +#: builtin/apply.c:4364 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:4328 +#: builtin/apply.c:4368 msgid "show number of added and deleted lines in decimal notation" msgstr "visa antal tillagda och borttagna rader decimalt" -#: builtin/apply.c:4330 +#: builtin/apply.c:4370 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:4332 +#: builtin/apply.c:4372 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:4334 +#: builtin/apply.c:4374 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:4336 +#: builtin/apply.c:4376 msgid "apply a patch without touching the working tree" msgstr "tillämpa en patch utan att röra arbetskatalogen" -#: builtin/apply.c:4338 +#: builtin/apply.c:4378 msgid "also apply the patch (use with --stat/--summary/--check)" msgstr "tillämpa också patchen (använd med --stat/--summary/--check)" -#: builtin/apply.c:4340 +#: builtin/apply.c:4380 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:4342 +#: builtin/apply.c:4382 msgid "build a temporary index based on embedded index information" msgstr "bygg ett temporärt index baserat på inbyggd indexinformation" -#: builtin/apply.c:4344 builtin/checkout-index.c:197 builtin/ls-files.c:460 +#: builtin/apply.c:4384 builtin/checkout-index.c:197 builtin/ls-files.c:463 msgid "paths are separated with NUL character" msgstr "sökvägar avdelas med NUL-tecken" -#: builtin/apply.c:4347 +#: builtin/apply.c:4387 msgid "ensure at least <n> lines of context match" msgstr "se till att åtminstone <n> rader sammanhang är lika" -#: builtin/apply.c:4348 +#: builtin/apply.c:4388 msgid "action" msgstr "åtgärd" -#: builtin/apply.c:4349 +#: builtin/apply.c:4389 msgid "detect new or modified lines that have whitespace errors" msgstr "detektera nya eller ändrade rader som har fel i blanktecken" -#: builtin/apply.c:4352 builtin/apply.c:4355 +#: builtin/apply.c:4392 builtin/apply.c:4395 msgid "ignore changes in whitespace when finding context" msgstr "ignorera ändringar i blanktecken för sammanhang" -#: builtin/apply.c:4358 +#: builtin/apply.c:4398 msgid "apply the patch in reverse" msgstr "tillämpa patchen baklänges" -#: builtin/apply.c:4360 +#: builtin/apply.c:4400 msgid "don't expect at least one line of context" msgstr "förvänta inte minst en rad sammanhang" -#: builtin/apply.c:4362 +#: builtin/apply.c:4402 msgid "leave the rejected hunks in corresponding *.rej files" msgstr "lämna refuserade stycken i motsvarande *.rej-filer" -#: builtin/apply.c:4364 +#: builtin/apply.c:4404 msgid "allow overlapping hunks" msgstr "tillåt överlappande stycken" -#: builtin/apply.c:4367 +#: builtin/apply.c:4407 msgid "tolerate incorrectly detected missing new-line at the end of file" msgstr "tolerera felaktigt detekterade saknade nyradstecken vid filslut" -#: builtin/apply.c:4370 +#: builtin/apply.c:4410 msgid "do not trust the line counts in the hunk headers" msgstr "lite inte på antalet linjer i styckehuvuden" -#: builtin/apply.c:4372 +#: builtin/apply.c:4412 msgid "root" msgstr "rot" -#: builtin/apply.c:4373 +#: builtin/apply.c:4413 msgid "prepend <root> to all filenames" msgstr "lägg till <rot> i alla filnamn" -#: builtin/apply.c:4395 +#: builtin/apply.c:4435 msgid "--3way outside a repository" msgstr "--3way utanför arkiv" -#: builtin/apply.c:4403 +#: builtin/apply.c:4443 msgid "--index outside a repository" msgstr "--index utanför arkiv" -#: builtin/apply.c:4406 +#: builtin/apply.c:4446 msgid "--cached outside a repository" msgstr "--cached utanför arkiv" -#: builtin/apply.c:4422 +#: builtin/apply.c:4462 #, c-format msgid "can't open patch '%s'" msgstr "kan inte öppna patchen \"%s\"" -#: builtin/apply.c:4436 +#: builtin/apply.c:4476 #, 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:4442 builtin/apply.c:4452 +#: builtin/apply.c:4482 builtin/apply.c:4492 #, c-format msgid "%d line adds whitespace errors." msgid_plural "%d lines add whitespace errors." @@ -2062,95 +2154,95 @@ msgstr "git blame [flaggor] [rev-flaggor] [rev] [--] fil" msgid "[rev-opts] are documented in git-rev-list(1)" msgstr "[rev-flaggor] dokumenteras i git-rev-list(1)" -#: builtin/blame.c:2364 +#: builtin/blame.c:2350 msgid "Show blame entries as we find them, incrementally" msgstr "Visa klandringsposter när vi hittar dem, interaktivt" -#: builtin/blame.c:2365 +#: builtin/blame.c:2351 msgid "Show blank SHA-1 for boundary commits (Default: off)" msgstr "Visa blank SHA-1 för gränsincheckningar (Standard: av)" -#: builtin/blame.c:2366 +#: builtin/blame.c:2352 msgid "Do not treat root commits as boundaries (Default: off)" msgstr "Behandla inte rotincheckningar som gränser (Standard: av)" -#: builtin/blame.c:2367 +#: builtin/blame.c:2353 msgid "Show work cost statistics" msgstr "Visa statistik över arbetskostnad" -#: builtin/blame.c:2368 +#: builtin/blame.c:2354 msgid "Show output score for blame entries" msgstr "Visa utdatapoäng för klandringsposter" -#: builtin/blame.c:2369 +#: builtin/blame.c:2355 msgid "Show original filename (Default: auto)" msgstr "Visa originalfilnamn (Standard: auto)" -#: builtin/blame.c:2370 +#: builtin/blame.c:2356 msgid "Show original linenumber (Default: off)" msgstr "Visa ursprungligt radnummer (Standard: av)" -#: builtin/blame.c:2371 +#: builtin/blame.c:2357 msgid "Show in a format designed for machine consumption" msgstr "Visa i ett format avsett för maskinkonsumtion" -#: builtin/blame.c:2372 +#: builtin/blame.c:2358 msgid "Show porcelain format with per-line commit information" msgstr "Visa porslinsformat med per-rad-incheckningsinformation" -#: builtin/blame.c:2373 +#: builtin/blame.c:2359 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:2374 +#: builtin/blame.c:2360 msgid "Show raw timestamp (Default: off)" msgstr "Visa rå tidsstämpel (Standard: av)" -#: builtin/blame.c:2375 +#: builtin/blame.c:2361 msgid "Show long commit SHA1 (Default: off)" msgstr "Visa lång inchecknings-SHA1 (Standard: av)" -#: builtin/blame.c:2376 +#: builtin/blame.c:2362 msgid "Suppress author name and timestamp (Default: off)" msgstr "Undertryck författarnamn och tidsstämpel (Standard: av)" -#: builtin/blame.c:2377 +#: builtin/blame.c:2363 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:2378 +#: builtin/blame.c:2364 msgid "Ignore whitespace differences" msgstr "Ignorera ändringar i blanksteg" -#: builtin/blame.c:2379 +#: builtin/blame.c:2365 msgid "Spend extra cycles to find better match" msgstr "Slösa extra cykler med att hitta bättre träff" -#: builtin/blame.c:2380 +#: builtin/blame.c:2366 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:2381 +#: builtin/blame.c:2367 msgid "Use <file>'s contents as the final image" msgstr "Använd <fil>s innehåll som slutgiltig bild" -#: builtin/blame.c:2382 builtin/blame.c:2383 +#: builtin/blame.c:2368 builtin/blame.c:2369 msgid "score" msgstr "poäng" -#: builtin/blame.c:2382 +#: builtin/blame.c:2368 msgid "Find line copies within and across files" msgstr "Hitta kopierade rader inuti och mellan filer" -#: builtin/blame.c:2383 +#: builtin/blame.c:2369 msgid "Find line movements within and across files" msgstr "Hitta flyttade rader inuti och mellan filer" -#: builtin/blame.c:2384 +#: builtin/blame.c:2370 msgid "n,m" msgstr "n,m" -#: builtin/blame.c:2384 +#: builtin/blame.c:2370 msgid "Process only line range n,m, counting from 1" msgstr "Behandla endast radintervallet n,m, med början på 1" @@ -2284,10 +2376,19 @@ msgstr "[%s: före %d, bakom %d] " msgid "[ahead %d, behind %d]" msgstr "[före %d, bakom %d] " +#: builtin/branch.c:469 +msgid " **** invalid ref ****" +msgstr " **** ogiltig ref ****" + #: builtin/branch.c:560 msgid "(no branch)" msgstr "(ingen gren)" +#: builtin/branch.c:593 +#, c-format +msgid "object '%s' does not point to a commit" +msgstr "objektet \"%s\" pekar på en incheckning" + #: builtin/branch.c:625 msgid "some refs could not be read" msgstr "vissa referenser kunde inte läsas" @@ -2359,8 +2460,8 @@ msgid "act on remote-tracking branches" msgstr "arbeta på fjärrspårande grenar" #: builtin/branch.c:761 builtin/branch.c:767 builtin/branch.c:788 -#: builtin/branch.c:794 builtin/commit.c:1378 builtin/commit.c:1379 -#: builtin/commit.c:1380 builtin/commit.c:1381 builtin/tag.c:470 +#: builtin/branch.c:794 builtin/commit.c:1366 builtin/commit.c:1367 +#: builtin/commit.c:1368 builtin/commit.c:1369 builtin/tag.c:468 msgid "commit" msgstr "incheckning" @@ -2428,27 +2529,53 @@ msgstr "Misslyckades slå upp HEAD som giltig referens" msgid "HEAD not found below refs/heads!" msgstr "HEAD hittades inte under refs/heads!" -#: builtin/branch.c:836 +#: builtin/branch.c:839 msgid "--column and --verbose are incompatible" msgstr "--column och --verbose är inkompatibla" -#: builtin/branch.c:887 +#: builtin/branch.c:845 +msgid "branch name required" +msgstr "grennamn krävs" + +#: builtin/branch.c:860 +msgid "Cannot give description to detached HEAD" +msgstr "Kan inte beskriva frånkopplad HEAD" + +#: builtin/branch.c:865 +msgid "cannot edit description of more than one branch" +msgstr "kan inte redigera beskrivning för mer än en gren" + +#: builtin/branch.c:872 +#, c-format +msgid "No commit on branch '%s' yet." +msgstr "Inga incheckningar på grenen \"%s\" ännu" + +#: builtin/branch.c:875 +#, c-format +msgid "No branch named '%s'." +msgstr "Ingen gren vid namnet \"%s\"." + +#: builtin/branch.c:888 +msgid "too many branches for a rename operation" +msgstr "för många grenar för namnbyte" + +#: builtin/branch.c:893 #, c-format msgid "branch '%s' does not exist" msgstr "grenen \"%s\" finns inte" -#: builtin/branch.c:899 +#: builtin/branch.c:905 #, c-format msgid "Branch '%s' has no upstream information" msgstr "Grenen \"%s\" har ingen uppströmsinformation" -#: builtin/branch.c:914 +#: builtin/branch.c:920 msgid "-a and -r options to 'git branch' do not make sense with a branch name" msgstr "" "flaggorna -a och -r på \"git branch\" kan inte anges tillsammans med ett " "grennamn" -#: builtin/branch.c:917 +#: builtin/branch.c:923 #, c-format msgid "" "The --set-upstream flag is deprecated and will be removed. Consider using --" @@ -2457,7 +2584,7 @@ msgstr "" "Flaggan --set-upstream rekommenderas ej och kommer tas bort. Använd --track " "eller --set-upstream-to\n" -#: builtin/branch.c:934 +#: builtin/branch.c:940 #, c-format msgid "" "\n" @@ -2468,12 +2595,12 @@ msgstr "" "Om du vill göra så att \"%s\" spårar \"%s\" gör du så här:\n" "\n" -#: builtin/branch.c:935 +#: builtin/branch.c:941 #, c-format msgid " git branch -d %s\n" msgstr " git branch -d %s\n" -#: builtin/branch.c:936 +#: builtin/branch.c:942 #, c-format msgid " git branch --set-upstream-to %s\n" msgstr " git branch --set-upstream-to %s\n" @@ -2547,14 +2674,38 @@ msgstr "visa alla attribut som satts på filen" msgid "use .gitattributes only from the index" msgstr "använd .gitattributes endast från indexet" -#: builtin/check-attr.c:21 builtin/hash-object.c:75 +#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:75 msgid "read file names from stdin" msgstr "läs filnamn från standard in" -#: builtin/check-attr.c:23 +#: builtin/check-attr.c:23 builtin/check-ignore.c:24 msgid "input paths are terminated by a null character" msgstr "sökvägar avdelas med null-tecken" +#: builtin/check-ignore.c:18 builtin/checkout.c:1012 builtin/gc.c:177 +msgid "suppress progress reporting" +msgstr "undertryck förloppsrapportering" + +#: builtin/check-ignore.c:151 +msgid "cannot specify pathnames with --stdin" +msgstr "kan inte ange sökvägsnamn med --stdin" + +#: builtin/check-ignore.c:154 +msgid "-z only makes sense with --stdin" +msgstr "-z kan endast användas tillsammans med --stdin" + +#: builtin/check-ignore.c:156 +msgid "no path specified" +msgstr "ingen sökväg angavs" + +#: builtin/check-ignore.c:160 +msgid "--quiet is only valid with a single pathname" +msgstr "--quiet kan endast användas med ett enkelt sökvägsnamn" + +#: builtin/check-ignore.c:162 +msgid "cannot have both --quiet and --verbose" +msgstr "kan inte använda både --quiet och --verbose" + #: builtin/checkout-index.c:126 msgid "git checkout-index [options] [--] [<file>...]" msgstr "git checkout-index [flaggor] [--] [<fil>...]" @@ -2788,10 +2939,6 @@ msgstr "\"%s\" kan inte användas med \"%s\"" msgid "Cannot switch branch to a non-commit '%s'" msgstr "Kan inte växla gren till icke-incheckningen \"%s\"" -#: builtin/checkout.c:1012 builtin/gc.c:177 -msgid "suppress progress reporting" -msgstr "undertryck förloppsrapportering" - #: builtin/checkout.c:1013 builtin/checkout.c:1015 builtin/clone.c:89 #: builtin/remote.c:169 builtin/remote.c:171 msgid "branch" @@ -2925,47 +3072,47 @@ msgstr "Skulle hoppa över arkivet %s\n" msgid "failed to remove %s" msgstr "misslyckades ta bort %s" -#: builtin/clean.c:159 +#: builtin/clean.c:160 msgid "do not print names of files removed" msgstr "skriv inte ut namn på borttagna filer" -#: builtin/clean.c:161 +#: builtin/clean.c:162 msgid "force" msgstr "tvinga" -#: builtin/clean.c:163 +#: builtin/clean.c:164 msgid "remove whole directories" msgstr "ta bort hela kataloger" -#: builtin/clean.c:164 builtin/describe.c:413 builtin/grep.c:717 -#: builtin/ls-files.c:491 builtin/name-rev.c:231 builtin/show-ref.c:182 +#: builtin/clean.c:165 builtin/describe.c:413 builtin/grep.c:717 +#: builtin/ls-files.c:494 builtin/name-rev.c:231 builtin/show-ref.c:182 msgid "pattern" msgstr "mönster" -#: builtin/clean.c:165 +#: builtin/clean.c:166 msgid "add <pattern> to ignore rules" msgstr "lägg till <mönster> till ignoreringsregler" -#: builtin/clean.c:166 +#: builtin/clean.c:167 msgid "remove ignored files, too" msgstr "ta även bort ignorerade filer" -#: builtin/clean.c:168 +#: builtin/clean.c:169 msgid "remove only ignored files" msgstr "ta endast bort ignorerade filer" -#: builtin/clean.c:186 +#: builtin/clean.c:187 msgid "-x and -X cannot be used together" msgstr "-x och -X kan inte användas samtidigt" -#: builtin/clean.c:190 +#: builtin/clean.c:191 msgid "" "clean.requireForce set to true and neither -n nor -f given; refusing to clean" msgstr "" "clean.requireForce satt till true, men varken -n eller -f angavs; vägrar " "städa" -#: builtin/clean.c:193 +#: builtin/clean.c:194 msgid "" "clean.requireForce defaults to true and neither -n nor -f given; refusing to " "clean" @@ -2978,7 +3125,7 @@ msgid "git clone [options] [--] <repo> [<dir>]" msgstr "git clone [flaggor] [--] <arkiv> [<kat>]" #: builtin/clone.c:64 builtin/fetch.c:82 builtin/merge.c:212 -#: builtin/push.c:407 +#: builtin/push.c:436 msgid "force progress reporting" msgstr "tvinga förloppsrapportering" @@ -3091,11 +3238,6 @@ msgstr "%s finns och är ingen katalog" msgid "failed to stat %s\n" msgstr "misslyckades ta status på %s\n" -#: builtin/clone.c:341 -#, c-format -msgid "failed to unlink '%s'" -msgstr "misslyckades ta bort länken \"%s\"" - #: builtin/clone.c:346 #, c-format msgid "failed to create link '%s'" @@ -3157,7 +3299,7 @@ msgstr "destinationssökvägen \"%s\" finns redan och är inte en tom katalog." msgid "working tree '%s' already exists." msgstr "arbetsträdet \"%s\" finns redan." -#: builtin/clone.c:759 builtin/clone.c:773 +#: builtin/clone.c:759 builtin/clone.c:771 #, c-format msgid "could not create leading directories of '%s'" msgstr "kunde inte skapa inledande kataloger för \"%s\"" @@ -3167,27 +3309,27 @@ msgstr "kunde inte skapa inledande kataloger för \"%s\"" msgid "could not create work tree dir '%s'." msgstr "kunde inte skapa arbetskatalogen \"%s\"" -#: builtin/clone.c:783 +#: builtin/clone.c:781 #, c-format msgid "Cloning into bare repository '%s'...\n" msgstr "Klonar till ett naket arkiv \"%s\"...\n" -#: builtin/clone.c:785 +#: builtin/clone.c:783 #, c-format msgid "Cloning into '%s'...\n" msgstr "Klonar till \"%s\"...\n" -#: builtin/clone.c:827 +#: builtin/clone.c:818 #, c-format msgid "Don't know how to clone %s" msgstr "Vet inte hur man klonar %s" -#: builtin/clone.c:876 +#: builtin/clone.c:867 #, c-format msgid "Remote branch %s not found in upstream %s" msgstr "Fjärrgrenen %s hittades inte i uppströmsarkivet %s" -#: builtin/clone.c:883 +#: builtin/clone.c:874 msgid "You appear to have cloned an empty repository." msgstr "Du verkar ha klonat ett tomt arkiv." @@ -3224,12 +3366,12 @@ msgid "--command must be the first argument" msgstr "--command måste vara första argument" #: builtin/commit.c:34 -msgid "git commit [options] [--] <filepattern>..." -msgstr "git commit [flaggor] [--] <filmöster>..." +msgid "git commit [options] [--] <pathspec>..." +msgstr "git commit [flaggor] [--] <sökväg>..." #: builtin/commit.c:39 -msgid "git status [options] [--] <filepattern>..." -msgstr "git status [flaggor] [--] <filmönster>..." +msgid "git status [options] [--] <pathspec>..." +msgstr "git status [flaggor] [--] <sökväg>..." #: builtin/commit.c:44 msgid "" @@ -3399,21 +3541,24 @@ msgstr "" "och försöker igen.\n" #: builtin/commit.c:735 +#, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" -"with '#' will be ignored, and an empty message aborts the commit.\n" +"with '%c' will be ignored, and an empty message aborts the commit.\n" msgstr "" "Ange incheckningsmeddelandet för dina ändringar. Rader som inleds\n" -"med \"#\" kommer ignoreras, och ett tomt meddelande avbryter incheckningen.\n" +"med \"%c\" kommer ignoreras, och ett tomt meddelande avbryter " +"incheckningen.\n" #: builtin/commit.c:740 +#, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" -"with '#' will be kept; you may remove them yourself if you want to.\n" +"with '%c' will be kept; you may remove them yourself if you want to.\n" "An empty message aborts the commit.\n" msgstr "" "Ange incheckningsmeddelandet för dina ändringar. Rader som inleds\n" -"med \"#\" kommer behållas; du kan själv ta bort dem om du vill.\n" +"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:753 @@ -3434,7 +3579,7 @@ msgstr "Kan inte läsa indexet" msgid "Error building trees" msgstr "Fel vid byggande av träd" -#: builtin/commit.c:832 builtin/tag.c:361 +#: builtin/commit.c:832 builtin/tag.c:359 #, c-format msgid "Please supply the message using either -m or -F option.\n" msgstr "Ange meddelandet en av flaggorna -m eller -F.\n" @@ -3444,111 +3589,111 @@ msgstr "Ange meddelandet en av flaggorna -m eller -F.\n" msgid "No existing author found with '%s'" msgstr "Hittade ingen befintlig författare med \"%s\"" -#: builtin/commit.c:944 builtin/commit.c:1148 +#: builtin/commit.c:944 builtin/commit.c:1138 #, c-format msgid "Invalid untracked files mode '%s'" msgstr "Ogiltigt läge för ospårade filer: \"%s\"" -#: builtin/commit.c:984 +#: builtin/commit.c:974 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:995 +#: builtin/commit.c:985 msgid "You have nothing to amend." msgstr "Du har inget att utöka." -#: builtin/commit.c:998 +#: builtin/commit.c:988 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:1000 +#: builtin/commit.c:990 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:1003 +#: builtin/commit.c:993 msgid "Options --squash and --fixup cannot be used together" msgstr "Flaggorna --squash och --fixup kan inte användas samtidigt" -#: builtin/commit.c:1013 +#: builtin/commit.c:1003 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:1015 +#: builtin/commit.c:1005 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:1023 +#: builtin/commit.c:1013 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:1040 +#: builtin/commit.c:1030 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:1042 +#: builtin/commit.c:1032 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:1044 +#: builtin/commit.c:1034 msgid "Clever... amending the last one with dirty index." msgstr "Smart... utöka den senaste med smutsigt index." -#: builtin/commit.c:1046 +#: builtin/commit.c:1036 msgid "Explicit paths specified without -i nor -o; assuming --only paths..." msgstr "Explicita sökvägar angavs utan -i eller -o; antar --only sökvägar..." -#: builtin/commit.c:1056 builtin/tag.c:577 +#: builtin/commit.c:1046 builtin/tag.c:575 #, c-format msgid "Invalid cleanup mode %s" msgstr "Felaktigt städningsläge %s" -#: builtin/commit.c:1061 +#: builtin/commit.c:1051 msgid "Paths with -a does not make sense." msgstr "Kan inte ange sökvägar med -a." -#: builtin/commit.c:1067 builtin/commit.c:1202 +#: builtin/commit.c:1057 builtin/commit.c:1192 msgid "--long and -z are incompatible" msgstr "--long och -z är inkompatibla" -#: builtin/commit.c:1162 builtin/commit.c:1400 +#: builtin/commit.c:1152 builtin/commit.c:1388 msgid "show status concisely" msgstr "vis koncis status" -#: builtin/commit.c:1164 builtin/commit.c:1402 +#: builtin/commit.c:1154 builtin/commit.c:1390 msgid "show branch information" msgstr "visa information om gren" -#: builtin/commit.c:1166 builtin/commit.c:1404 builtin/push.c:397 +#: builtin/commit.c:1156 builtin/commit.c:1392 builtin/push.c:426 msgid "machine-readable output" msgstr "maskinläsbar utdata" -#: builtin/commit.c:1169 builtin/commit.c:1406 +#: builtin/commit.c:1159 builtin/commit.c:1394 msgid "show status in long format (default)" msgstr "visa status i långt format (standard)" -#: builtin/commit.c:1172 builtin/commit.c:1409 +#: builtin/commit.c:1162 builtin/commit.c:1397 msgid "terminate entries with NUL" msgstr "terminera poster med NUL" -#: builtin/commit.c:1174 builtin/commit.c:1412 builtin/fast-export.c:647 -#: builtin/fast-export.c:650 builtin/tag.c:461 +#: builtin/commit.c:1164 builtin/commit.c:1400 builtin/fast-export.c:647 +#: builtin/fast-export.c:650 builtin/tag.c:459 msgid "mode" msgstr "läge" -#: builtin/commit.c:1175 builtin/commit.c:1412 +#: builtin/commit.c:1165 builtin/commit.c:1400 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:1178 +#: builtin/commit.c:1168 msgid "show ignored files" msgstr "visa ignorerade filer" -#: builtin/commit.c:1179 parse-options.h:151 +#: builtin/commit.c:1169 parse-options.h:151 msgid "when" msgstr "när" -#: builtin/commit.c:1180 +#: builtin/commit.c:1170 msgid "" "ignore changes to submodules, optional when: all, dirty, untracked. " "(Default: all)" @@ -3556,217 +3701,217 @@ msgstr "" "ignorera ändringar i undermoduler, valfritt när: all, dirty, untracked. " "(Default: all)" -#: builtin/commit.c:1182 +#: builtin/commit.c:1172 msgid "list untracked files in columns" msgstr "visa ospårade filer i spalter" -#: builtin/commit.c:1256 +#: builtin/commit.c:1246 msgid "couldn't look up newly created commit" msgstr "kunde inte slå upp en precis skapad incheckning" -#: builtin/commit.c:1258 +#: builtin/commit.c:1248 msgid "could not parse newly created commit" msgstr "kunde inte tolka en precis skapad incheckning" -#: builtin/commit.c:1299 +#: builtin/commit.c:1289 msgid "detached HEAD" msgstr "frånkopplad HEAD" -#: builtin/commit.c:1301 +#: builtin/commit.c:1291 msgid " (root-commit)" msgstr " (rotincheckning)" -#: builtin/commit.c:1370 +#: builtin/commit.c:1358 msgid "suppress summary after successful commit" msgstr "undertryck sammanfattning efter framgångsrik incheckning" -#: builtin/commit.c:1371 +#: builtin/commit.c:1359 msgid "show diff in commit message template" msgstr "visa diff i mallen för incheckningsmeddelandet" -#: builtin/commit.c:1373 +#: builtin/commit.c:1361 msgid "Commit message options" msgstr "Alternativ för incheckningsmeddelande" -#: builtin/commit.c:1374 builtin/tag.c:459 +#: builtin/commit.c:1362 builtin/tag.c:457 msgid "read message from file" msgstr "läs meddelande från fil" -#: builtin/commit.c:1375 +#: builtin/commit.c:1363 msgid "author" msgstr "författare" -#: builtin/commit.c:1375 +#: builtin/commit.c:1363 msgid "override author for commit" msgstr "överstyr författare för incheckningen" -#: builtin/commit.c:1376 builtin/gc.c:178 +#: builtin/commit.c:1364 builtin/gc.c:178 msgid "date" msgstr "datum" -#: builtin/commit.c:1376 +#: builtin/commit.c:1364 msgid "override date for commit" msgstr "överstyr datum för inchecknignen" -#: builtin/commit.c:1377 builtin/merge.c:206 builtin/notes.c:537 -#: builtin/notes.c:694 builtin/tag.c:457 +#: builtin/commit.c:1365 builtin/merge.c:206 builtin/notes.c:533 +#: builtin/notes.c:690 builtin/tag.c:455 msgid "message" msgstr "meddelande" -#: builtin/commit.c:1377 +#: builtin/commit.c:1365 msgid "commit message" msgstr "incheckningsmeddelande" -#: builtin/commit.c:1378 +#: builtin/commit.c:1366 msgid "reuse and edit message from specified commit" msgstr "återanvänd och redigera meddelande från angiven incheckning" -#: builtin/commit.c:1379 +#: builtin/commit.c:1367 msgid "reuse message from specified commit" msgstr "återanvänd meddelande från angiven incheckning" -#: builtin/commit.c:1380 +#: builtin/commit.c:1368 msgid "use autosquash formatted message to fixup specified commit" msgstr "" "använd autosquash-formaterat meddelande för att fixa angiven incheckning" -#: builtin/commit.c:1381 +#: builtin/commit.c:1369 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:1382 +#: builtin/commit.c:1370 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:1383 builtin/log.c:1102 builtin/revert.c:109 +#: builtin/commit.c:1371 builtin/log.c:1102 builtin/revert.c:109 msgid "add Signed-off-by:" msgstr "lägg till Signed-off-by:" -#: builtin/commit.c:1384 +#: builtin/commit.c:1372 msgid "use specified template file" msgstr "använd angiven mallfil" -#: builtin/commit.c:1385 +#: builtin/commit.c:1373 msgid "force edit of commit" msgstr "tvinga redigering av incheckning" -#: builtin/commit.c:1386 +#: builtin/commit.c:1374 msgid "default" msgstr "standard" -#: builtin/commit.c:1386 builtin/tag.c:462 +#: builtin/commit.c:1374 builtin/tag.c:460 msgid "how to strip spaces and #comments from message" msgstr "hur blanksteg och #kommentarer skall tas bort från meddelande" -#: builtin/commit.c:1387 +#: builtin/commit.c:1375 msgid "include status in commit message template" msgstr "inkludera status i mallen för incheckningsmeddelandet" -#: builtin/commit.c:1388 builtin/merge.c:213 builtin/tag.c:463 +#: builtin/commit.c:1376 builtin/merge.c:213 builtin/tag.c:461 msgid "key id" msgstr "nyckel-id" -#: builtin/commit.c:1389 builtin/merge.c:214 +#: builtin/commit.c:1377 builtin/merge.c:214 msgid "GPG sign commit" msgstr "GPG-signera incheckning" #. end commit message options -#: builtin/commit.c:1392 +#: builtin/commit.c:1380 msgid "Commit contents options" msgstr "Alternativ för incheckningens innehåll" -#: builtin/commit.c:1393 +#: builtin/commit.c:1381 msgid "commit all changed files" msgstr "checka in alla ändrade filer" -#: builtin/commit.c:1394 +#: builtin/commit.c:1382 msgid "add specified files to index for commit" msgstr "lägg till angivna filer till indexet för incheckning" -#: builtin/commit.c:1395 +#: builtin/commit.c:1383 msgid "interactively add files" msgstr "lägg till filer interaktivt" -#: builtin/commit.c:1396 +#: builtin/commit.c:1384 msgid "interactively add changes" msgstr "lägg till ändringar interaktivt" -#: builtin/commit.c:1397 +#: builtin/commit.c:1385 msgid "commit only specified files" msgstr "checka endast in angivna filer" -#: builtin/commit.c:1398 +#: builtin/commit.c:1386 msgid "bypass pre-commit hook" msgstr "förbigå pre-commit-krok" -#: builtin/commit.c:1399 +#: builtin/commit.c:1387 msgid "show what would be committed" msgstr "visa vad som skulle checkas in" -#: builtin/commit.c:1410 +#: builtin/commit.c:1398 msgid "amend previous commit" msgstr "lägg till föregående incheckning" -#: builtin/commit.c:1411 +#: builtin/commit.c:1399 msgid "bypass post-rewrite hook" msgstr "förbigå post-rewrite-krok" -#: builtin/commit.c:1416 +#: builtin/commit.c:1404 msgid "ok to record an empty change" msgstr "ok att registrera en tom ändring" -#: builtin/commit.c:1419 +#: builtin/commit.c:1407 msgid "ok to record a change with an empty message" msgstr "ok att registrera en ändring med tomt meddelande" -#: builtin/commit.c:1451 +#: builtin/commit.c:1439 msgid "could not parse HEAD commit" msgstr "kunde inte tolka HEAD:s incheckning" -#: builtin/commit.c:1489 builtin/merge.c:508 +#: builtin/commit.c:1477 builtin/merge.c:508 #, c-format msgid "could not open '%s' for reading" msgstr "kunde inte öppna \"%s\" för läsning" -#: builtin/commit.c:1496 +#: builtin/commit.c:1484 #, c-format msgid "Corrupt MERGE_HEAD file (%s)" msgstr "Trasig MERGE_HEAD-fil (%s)" -#: builtin/commit.c:1503 +#: builtin/commit.c:1491 msgid "could not read MERGE_MODE" msgstr "kunde inte läsa MERGE_MODE" -#: builtin/commit.c:1522 +#: builtin/commit.c:1510 #, c-format msgid "could not read commit message: %s" msgstr "kunde inte läsa incheckningsmeddelande: %s" -#: builtin/commit.c:1536 +#: builtin/commit.c:1524 #, c-format msgid "Aborting commit; you did not edit the message.\n" msgstr "Avbryter incheckning; meddelandet inte redigerat.\n" -#: builtin/commit.c:1541 +#: builtin/commit.c:1529 #, c-format msgid "Aborting commit due to empty commit message.\n" msgstr "Avbryter på grund av tomt incheckningsmeddelande.\n" -#: builtin/commit.c:1556 builtin/merge.c:833 builtin/merge.c:858 +#: builtin/commit.c:1544 builtin/merge.c:832 builtin/merge.c:857 msgid "failed to write commit object" msgstr "kunde inte skriva incheckningsobjekt" -#: builtin/commit.c:1577 +#: builtin/commit.c:1565 msgid "cannot lock HEAD ref" msgstr "kunde inte låsa HEAD-referens" -#: builtin/commit.c:1581 +#: builtin/commit.c:1569 msgid "cannot update HEAD ref" msgstr "kunde inte uppdatera HEAD-referens" -#: builtin/commit.c:1592 +#: builtin/commit.c:1580 msgid "" "Repository has been updated, but unable to write\n" "new_index file. Check that disk is not full or quota is\n" @@ -4175,88 +4320,92 @@ msgstr "tillåt uppdatering av HEAD-referens" msgid "deepen history of shallow clone" msgstr "fördjupa historik för grund klon" -#: builtin/fetch.c:85 builtin/log.c:1119 +#: builtin/fetch.c:86 +msgid "convert to a complete repository" +msgstr "konvertera till komplett arkiv" + +#: builtin/fetch.c:88 builtin/log.c:1119 msgid "dir" msgstr "kat" -#: builtin/fetch.c:86 +#: builtin/fetch.c:89 msgid "prepend this to submodule path output" msgstr "lägg till i början av undermodulens sökvägsutdata" -#: builtin/fetch.c:89 +#: builtin/fetch.c:92 msgid "default mode for recursion" msgstr "standardläge för rekursion" -#: builtin/fetch.c:201 +#: builtin/fetch.c:204 msgid "Couldn't find remote ref HEAD" msgstr "Kunde inte hitta fjärr-referensen HEAD" -#: builtin/fetch.c:254 +#: builtin/fetch.c:257 #, c-format msgid "object %s not found" msgstr "objektet %s hittades inte" -#: builtin/fetch.c:259 +#: builtin/fetch.c:262 msgid "[up to date]" msgstr "[àjour]" -#: builtin/fetch.c:273 +#: builtin/fetch.c:276 #, 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:274 builtin/fetch.c:360 +#: builtin/fetch.c:277 builtin/fetch.c:363 msgid "[rejected]" msgstr "[refuserad]" -#: builtin/fetch.c:285 +#: builtin/fetch.c:288 msgid "[tag update]" msgstr "[uppdaterad tagg]" -#: builtin/fetch.c:287 builtin/fetch.c:322 builtin/fetch.c:340 +#: builtin/fetch.c:290 builtin/fetch.c:325 builtin/fetch.c:343 msgid " (unable to update local ref)" msgstr " (kunde inte uppdatera lokal ref)" -#: builtin/fetch.c:305 +#: builtin/fetch.c:308 msgid "[new tag]" msgstr "[ny tagg]" -#: builtin/fetch.c:308 +#: builtin/fetch.c:311 msgid "[new branch]" msgstr "[ny gren]" -#: builtin/fetch.c:311 +#: builtin/fetch.c:314 msgid "[new ref]" msgstr "[ny ref]" -#: builtin/fetch.c:356 +#: builtin/fetch.c:359 msgid "unable to update local ref" msgstr "kunde inte uppdatera lokal ref" -#: builtin/fetch.c:356 +#: builtin/fetch.c:359 msgid "forced update" msgstr "tvingad uppdatering" -#: builtin/fetch.c:362 +#: builtin/fetch.c:365 msgid "(non-fast-forward)" msgstr "(ej snabbspolad)" -#: builtin/fetch.c:393 builtin/fetch.c:685 +#: builtin/fetch.c:396 builtin/fetch.c:688 #, c-format msgid "cannot open %s: %s\n" msgstr "kan inte öppna %s: %s\n" -#: builtin/fetch.c:402 +#: builtin/fetch.c:405 #, 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:488 +#: builtin/fetch.c:491 #, c-format msgid "From %.*s\n" msgstr "Från %.*s\n" -#: builtin/fetch.c:499 +#: builtin/fetch.c:502 #, c-format msgid "" "some local refs could not be updated; try running\n" @@ -4265,55 +4414,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:549 +#: builtin/fetch.c:552 #, c-format msgid " (%s will become dangling)" msgstr " (%s kommer bli dinglande)" -#: builtin/fetch.c:550 +#: builtin/fetch.c:553 #, c-format msgid " (%s has become dangling)" msgstr " (%s har blivit dinglande)" -#: builtin/fetch.c:557 +#: builtin/fetch.c:560 msgid "[deleted]" msgstr "[borttagen]" -#: builtin/fetch.c:558 builtin/remote.c:1055 +#: builtin/fetch.c:561 builtin/remote.c:1055 msgid "(none)" msgstr "(ingen)" -#: builtin/fetch.c:675 +#: builtin/fetch.c:678 #, 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:709 +#: builtin/fetch.c:712 #, c-format msgid "Don't know how to fetch from %s" msgstr "Vet inte hur man hämtar från %s" -#: builtin/fetch.c:786 +#: builtin/fetch.c:789 #, 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:789 +#: builtin/fetch.c:792 #, c-format msgid "Option \"%s\" is ignored for %s\n" msgstr "Flaggan \"%s\" ignoreras för %s\n" -#: builtin/fetch.c:891 +#: builtin/fetch.c:894 #, c-format msgid "Fetching %s\n" msgstr "Hämtar %s\n" -#: builtin/fetch.c:893 builtin/remote.c:100 +#: builtin/fetch.c:896 builtin/remote.c:100 #, c-format msgid "Could not fetch %s" msgstr "Kunde inte hämta %s" -#: builtin/fetch.c:912 +#: builtin/fetch.c:915 msgid "" "No remote repository specified. Please, specify either a URL or a\n" "remote name from which new revisions should be fetched." @@ -4321,24 +4470,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:932 +#: builtin/fetch.c:935 msgid "You need to specify a tag name." msgstr "Du måste ange namnet på en tagg." -#: builtin/fetch.c:984 +#: builtin/fetch.c:981 +msgid "--depth and --unshallow cannot be used together" +msgstr "--depth och --unshallow kan inte användas samtidigt" + +#: builtin/fetch.c:983 +msgid "--unshallow on a complete repository does not make sense" +msgstr "--unshallow kan inte användas på ett komplett arkiv" + +#: builtin/fetch.c:1002 msgid "fetch --all does not take a repository argument" msgstr "fetch --all tar inte namnet på ett arkiv som argument" -#: builtin/fetch.c:986 +#: builtin/fetch.c:1004 msgid "fetch --all does not make sense with refspecs" msgstr "fetch --all kan inte anges med referensspecifikationer" -#: builtin/fetch.c:997 +#: builtin/fetch.c:1015 #, c-format msgid "No such remote or remote group: %s" msgstr "Fjärren eller fjärrgruppen finns inte: %s" -#: builtin/fetch.c:1005 +#: builtin/fetch.c:1023 msgid "Fetching a group and specifying refspecs does not make sense" msgstr "Kan inte hämta från grupp och ange referensspecifikationer" @@ -4349,7 +4506,7 @@ msgstr "" #: builtin/fmt-merge-msg.c:659 builtin/fmt-merge-msg.c:662 builtin/grep.c:701 #: builtin/merge.c:188 builtin/show-branch.c:656 builtin/show-ref.c:175 -#: builtin/tag.c:448 parse-options.h:133 parse-options.h:239 +#: builtin/tag.c:446 parse-options.h:133 parse-options.h:239 msgid "n" msgstr "n" @@ -4710,23 +4867,23 @@ msgstr "inget mönster angavs." msgid "bad object %s" msgstr "felaktigt objekt %s" -#: builtin/grep.c:866 +#: builtin/grep.c:868 msgid "--open-files-in-pager only works on the worktree" msgstr "--open-files-in-pager fungerar endast i arbetskatalogen" -#: builtin/grep.c:889 +#: builtin/grep.c:891 msgid "--cached or --untracked cannot be used with --no-index." msgstr "--cached och --untracked kan inte användas med --no-index." -#: builtin/grep.c:894 +#: builtin/grep.c:896 msgid "--no-index or --untracked cannot be used with revs." msgstr "--no-index och --untracked kan inte användas med revisioner." -#: builtin/grep.c:897 +#: builtin/grep.c:899 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:905 +#: builtin/grep.c:907 msgid "both --cached and trees are given." msgstr "både --cached och träd angavs." @@ -4766,50 +4923,50 @@ msgstr "spara filen som den är utan filer" msgid "process file as it were from this path" msgstr "hantera filen som om den kom från sökvägen" -#: builtin/help.c:43 +#: builtin/help.c:42 msgid "print all available commands" msgstr "visa alla tillgängliga kommandon" -#: builtin/help.c:44 +#: builtin/help.c:43 msgid "show man page" msgstr "visa manualsida" -#: builtin/help.c:45 +#: builtin/help.c:44 msgid "show manual in web browser" msgstr "visa manual i webbläsare" -#: builtin/help.c:47 +#: builtin/help.c:46 msgid "show info page" msgstr "visa info-sida" -#: builtin/help.c:53 +#: builtin/help.c:52 msgid "git help [--all] [--man|--web|--info] [command]" msgstr "git help [--all] [--man|--web|--info] [kommando]" -#: builtin/help.c:65 +#: builtin/help.c:64 #, c-format msgid "unrecognized help format '%s'" msgstr "okänt hjälpformat: %s" -#: builtin/help.c:93 +#: builtin/help.c:92 msgid "Failed to start emacsclient." msgstr "Misslyckades starta emacsclient." -#: builtin/help.c:106 +#: builtin/help.c:105 msgid "Failed to parse emacsclient version." msgstr "Kunde inte tolka emacsclient-version." -#: builtin/help.c:114 +#: builtin/help.c:113 #, c-format msgid "emacsclient version '%d' too old (< 22)." msgstr "emacsclient version \"%d\" för gammal (< 22)." -#: builtin/help.c:132 builtin/help.c:160 builtin/help.c:169 builtin/help.c:177 +#: 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 "exec misslyckades för \"%s\": %s" -#: builtin/help.c:217 +#: builtin/help.c:216 #, c-format msgid "" "'%s': path for unsupported man viewer.\n" @@ -4818,7 +4975,7 @@ msgstr "" "\"%s\": sökväg för man-visare som ej stöds.\n" "Använd \"man.<verktyg>.cmd\" istället." -#: builtin/help.c:229 +#: builtin/help.c:228 #, c-format msgid "" "'%s': cmd for supported man viewer.\n" @@ -4827,29 +4984,25 @@ msgstr "" "\"%s\": kommando för man-visare som stöds.\n" "Använd \"man.<verktyg>.path\" istället." -#: builtin/help.c:299 -msgid "The most commonly used git commands are:" -msgstr "De mest använda git-kommandona är:" - -#: builtin/help.c:367 +#: builtin/help.c:349 #, c-format msgid "'%s': unknown man viewer." msgstr "\"%s\": okänd man-visare." -#: builtin/help.c:384 +#: builtin/help.c:366 msgid "no man viewer handled the request" msgstr "ingen man-visare hanterade förfrågan" -#: builtin/help.c:392 +#: builtin/help.c:374 msgid "no info viewer handled the request" msgstr "ingen info-visare hanterade förfrågan" -#: builtin/help.c:447 builtin/help.c:454 +#: builtin/help.c:429 builtin/help.c:436 #, c-format msgid "usage: %s%s" msgstr "användning: %s%s" -#: builtin/help.c:470 +#: builtin/help.c:452 #, c-format msgid "`git %s' is aliased to `%s'" msgstr "\"git %s\" är ett alias för \"%s\"" @@ -5545,95 +5698,95 @@ msgstr "Kunde inte hitta en spårad fjärrgren, ange <uppström> manuellt.\n" msgid "Unknown commit %s" msgstr "Okänd incheckning %s" -#: builtin/ls-files.c:408 +#: builtin/ls-files.c:409 msgid "git ls-files [options] [<file>...]" msgstr "git ls-files [flaggor] [<fil>...]" -#: builtin/ls-files.c:463 +#: builtin/ls-files.c:466 msgid "identify the file status with tags" msgstr "identifiera filstatus med taggar" -#: builtin/ls-files.c:465 +#: builtin/ls-files.c:468 msgid "use lowercase letters for 'assume unchanged' files" msgstr "använd små bokstäver för \"anta oförändrade\"-filer" -#: builtin/ls-files.c:467 +#: builtin/ls-files.c:470 msgid "show cached files in the output (default)" msgstr "visa cachade filer i utdata (standard)" -#: builtin/ls-files.c:469 +#: builtin/ls-files.c:472 msgid "show deleted files in the output" msgstr "visa borttagna filer i utdata" -#: builtin/ls-files.c:471 +#: builtin/ls-files.c:474 msgid "show modified files in the output" msgstr "visa modifierade filer i utdata" -#: builtin/ls-files.c:473 +#: builtin/ls-files.c:476 msgid "show other files in the output" msgstr "visa andra filer i utdata" -#: builtin/ls-files.c:475 +#: builtin/ls-files.c:478 msgid "show ignored files in the output" msgstr "visa ignorerade filer i utdata" -#: builtin/ls-files.c:478 +#: builtin/ls-files.c:481 msgid "show staged contents' object name in the output" msgstr "visa köat innehålls objektnamn i utdata" -#: builtin/ls-files.c:480 +#: builtin/ls-files.c:483 msgid "show files on the filesystem that need to be removed" msgstr "visa filer i filsystemet som behöver tas bort" -#: builtin/ls-files.c:482 +#: builtin/ls-files.c:485 msgid "show 'other' directories' name only" msgstr "visa endast namn för \"andra\" kataloger" -#: builtin/ls-files.c:485 +#: builtin/ls-files.c:488 msgid "don't show empty directories" msgstr "visa inte tomma kataloger" -#: builtin/ls-files.c:488 +#: builtin/ls-files.c:491 msgid "show unmerged files in the output" msgstr "visa ej sammanslagna filer i utdata" -#: builtin/ls-files.c:490 +#: builtin/ls-files.c:493 msgid "show resolve-undo information" msgstr "visa \"resolve-undo\"-information" -#: builtin/ls-files.c:492 +#: builtin/ls-files.c:495 msgid "skip files matching pattern" msgstr "hoppa över filer som motsvarar mönster" -#: builtin/ls-files.c:495 +#: builtin/ls-files.c:498 msgid "exclude patterns are read from <file>" msgstr "exkludera mönster som läses från <fil>" -#: builtin/ls-files.c:498 +#: builtin/ls-files.c:501 msgid "read additional per-directory exclude patterns in <file>" msgstr "läs ytterligare per-katalog-exkluderingsmönster från <fil>" -#: builtin/ls-files.c:500 +#: builtin/ls-files.c:503 msgid "add the standard git exclusions" msgstr "lägg till git:s standardexkluderingar" -#: builtin/ls-files.c:503 +#: builtin/ls-files.c:506 msgid "make the output relative to the project top directory" msgstr "gör utdata relativ till projektets toppkatalog" -#: builtin/ls-files.c:506 +#: builtin/ls-files.c:509 msgid "if any <file> is not in the index, treat this as an error" msgstr "om en <fil> inte är indexet, betrakta det som ett fel" -#: builtin/ls-files.c:507 +#: builtin/ls-files.c:510 msgid "tree-ish" msgstr "träd-igt" -#: builtin/ls-files.c:508 +#: builtin/ls-files.c:511 msgid "pretend that paths removed since <tree-ish> are still present" msgstr "låtsas att sökvägar borttagna sedan <träd-igt> fortfarande finns" -#: builtin/ls-files.c:510 +#: builtin/ls-files.c:513 msgid "show debugging data" msgstr "visa felsökningsutdata" @@ -5741,7 +5894,7 @@ msgstr "tillåt snabbspolning (standard)" msgid "abort if fast-forward is not possible" msgstr "avbryt om snabbspolning inte är möjlig" -#: builtin/merge.c:202 builtin/notes.c:870 builtin/revert.c:112 +#: builtin/merge.c:202 builtin/notes.c:866 builtin/revert.c:112 msgid "strategy" msgstr "strategi" @@ -5845,67 +5998,68 @@ msgstr "" "den.\n" #: builtin/merge.c:788 +#, c-format msgid "" "Please enter a commit message to explain why this merge is necessary,\n" "especially if it merges an updated upstream into a topic branch.\n" "\n" -"Lines starting with '#' will be ignored, and an empty message aborts\n" +"Lines starting with '%c' will be ignored, and an empty message aborts\n" "the commit.\n" msgstr "" "Ange ett incheckningsmeddelande för att förklara varför sammanslagningen\n" "är nödvändig, speciellt om den slår in en uppdaterad uppström i en\n" "temagren.\n" "\n" -"Rader som inleds med \"#\" kommer ignoreras, och ett tomt meddelande\n" +"Rader som inleds med \"%c\" kommer ignoreras, och ett tomt meddelande\n" "avbryter incheckningen.\n" -#: builtin/merge.c:813 +#: builtin/merge.c:812 msgid "Empty commit message." msgstr "Tomt incheckningsmeddelande." -#: builtin/merge.c:825 +#: builtin/merge.c:824 #, c-format msgid "Wonderful.\n" msgstr "Underbart.\n" -#: builtin/merge.c:890 +#: builtin/merge.c:889 #, 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:906 +#: builtin/merge.c:905 #, c-format msgid "'%s' is not a commit" msgstr "\"%s\" är inte en incheckning" -#: builtin/merge.c:947 +#: builtin/merge.c:946 msgid "No current branch." msgstr "Inte på någon gren." -#: builtin/merge.c:949 +#: builtin/merge.c:948 msgid "No remote for the current branch." msgstr "Ingen fjärr för aktuell gren." -#: builtin/merge.c:951 +#: builtin/merge.c:950 msgid "No default upstream defined for the current branch." msgstr "Ingen standarduppström angiven för aktuell gren." -#: builtin/merge.c:956 +#: builtin/merge.c:955 #, 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:1043 builtin/merge.c:1200 +#: builtin/merge.c:1042 builtin/merge.c:1199 #, c-format msgid "%s - not something we can merge" msgstr "%s - inte något vi kan slå ihop" -#: builtin/merge.c:1111 +#: builtin/merge.c:1110 msgid "There is no merge to abort (MERGE_HEAD missing)." msgstr "Det finns ingen sammanslagning att avbryta (MERGE_HEAD saknas)." -#: builtin/merge.c:1127 git-pull.sh:31 +#: builtin/merge.c:1126 git-pull.sh:31 msgid "" "You have not concluded your merge (MERGE_HEAD exists).\n" "Please, commit your changes before you can merge." @@ -5913,11 +6067,11 @@ msgstr "" "Du har inte avslutat sammanslagningen (MERGE_HEAD finns).\n" "Checka in dina ändringar innan du kan slå ihop." -#: builtin/merge.c:1130 git-pull.sh:34 +#: builtin/merge.c:1129 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:1134 +#: builtin/merge.c:1133 msgid "" "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n" "Please, commit your changes before you can merge." @@ -5925,79 +6079,79 @@ 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:1137 +#: builtin/merge.c:1136 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:1146 +#: builtin/merge.c:1145 msgid "You cannot combine --squash with --no-ff." msgstr "Du kan inte kombinera --squash med --no-ff." -#: builtin/merge.c:1151 +#: builtin/merge.c:1150 msgid "You cannot combine --no-ff with --ff-only." msgstr "Du kan inte kombinera --no-ff med --ff-only." -#: builtin/merge.c:1158 +#: builtin/merge.c:1157 msgid "No commit specified and merge.defaultToUpstream not set." msgstr "Ingen incheckning angiven och merge.defaultToUpstream är ej satt." -#: builtin/merge.c:1190 +#: builtin/merge.c:1189 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:1193 +#: builtin/merge.c:1192 msgid "Squash commit into empty head not supported yet" msgstr "Stöder inte en tillplattningsincheckning på ett tomt huvud ännu" -#: builtin/merge.c:1195 +#: builtin/merge.c:1194 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:1311 +#: builtin/merge.c:1310 #, c-format msgid "Updating %s..%s\n" msgstr "Uppdaterar %s..%s\n" -#: builtin/merge.c:1350 +#: builtin/merge.c:1349 #, c-format msgid "Trying really trivial in-index merge...\n" msgstr "Försöker riktigt enkel sammanslagning i indexet...\n" -#: builtin/merge.c:1357 +#: builtin/merge.c:1356 #, c-format msgid "Nope.\n" msgstr "Nej.\n" -#: builtin/merge.c:1389 +#: builtin/merge.c:1388 msgid "Not possible to fast-forward, aborting." msgstr "Kan inte snabbspola, avbryter." -#: builtin/merge.c:1412 builtin/merge.c:1491 +#: builtin/merge.c:1411 builtin/merge.c:1490 #, c-format msgid "Rewinding the tree to pristine...\n" msgstr "Återspolar trädet till orört...\n" -#: builtin/merge.c:1416 +#: builtin/merge.c:1415 #, c-format msgid "Trying merge strategy %s...\n" msgstr "Försöker sammanslagninsstrategin %s...\n" -#: builtin/merge.c:1482 +#: builtin/merge.c:1481 #, c-format msgid "No merge strategy handled the merge.\n" msgstr "Ingen sammanslagningsstrategi hanterade sammanslagningen.\n" -#: builtin/merge.c:1484 +#: builtin/merge.c:1483 #, c-format msgid "Merge with strategy %s failed.\n" msgstr "Sammanslagning med strategin %s misslyckades.\n" -#: builtin/merge.c:1493 +#: builtin/merge.c:1492 #, 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:1505 +#: builtin/merge.c:1504 #, c-format msgid "Automatic merge went well; stopped before committing as requested\n" msgstr "" @@ -6312,139 +6466,134 @@ msgstr "git notes prune [<flaggor>]" msgid "git notes get-ref" msgstr "git notes get-ref" -#: builtin/notes.c:142 +#: builtin/notes.c:139 #, c-format msgid "unable to start 'show' for object '%s'" msgstr "kunde inte starta \"show\" för objektet \"%s\"" -#: builtin/notes.c:148 -msgid "can't fdopen 'show' output fd" -msgstr "kunde inte öppna (fdopen) \"show\"-utdata-filhandtag" - -#: builtin/notes.c:158 -#, c-format -msgid "failed to close pipe to 'show' for object '%s'" -msgstr "kunde inte stänga röret till \"show\" för objektet \"%s\"" +#: builtin/notes.c:143 +msgid "could not read 'show' output" +msgstr "kunde inte läsa utdata från \"show\"" -#: builtin/notes.c:161 +#: builtin/notes.c:151 #, c-format msgid "failed to finish 'show' for object '%s'" msgstr "kunde inte avsluta \"show\" för objektet \"%s\"" -#: builtin/notes.c:178 builtin/tag.c:347 +#: builtin/notes.c:169 builtin/tag.c:341 #, c-format msgid "could not create file '%s'" msgstr "kunde inte skapa filen \"%s\"" -#: builtin/notes.c:192 +#: builtin/notes.c:188 msgid "Please supply the note contents using either -m or -F option" msgstr "Ange innehåll för anteckningen med antingen -m eller -F" -#: builtin/notes.c:213 builtin/notes.c:976 +#: builtin/notes.c:209 builtin/notes.c:972 #, c-format msgid "Removing note for object %s\n" msgstr "Tar bort anteckning för objektet %s\n" -#: builtin/notes.c:218 +#: builtin/notes.c:214 msgid "unable to write note object" msgstr "kunde inte skriva anteckningsobjekt" -#: builtin/notes.c:220 +#: builtin/notes.c:216 #, c-format msgid "The note contents has been left in %s" msgstr "Anteckningens innehåll har lämnats kvar i %s" -#: builtin/notes.c:254 builtin/tag.c:542 +#: builtin/notes.c:250 builtin/tag.c:540 #, c-format msgid "cannot read '%s'" msgstr "kunde inte läsa \"%s\"" -#: builtin/notes.c:256 builtin/tag.c:545 +#: builtin/notes.c:252 builtin/tag.c:543 #, c-format msgid "could not open or read '%s'" msgstr "kunde inte öppna eller läsa \"%s\"" -#: builtin/notes.c:275 builtin/notes.c:448 builtin/notes.c:450 -#: builtin/notes.c:510 builtin/notes.c:564 builtin/notes.c:647 -#: builtin/notes.c:652 builtin/notes.c:727 builtin/notes.c:769 -#: builtin/notes.c:971 builtin/tag.c:558 +#: builtin/notes.c:271 builtin/notes.c:444 builtin/notes.c:446 +#: builtin/notes.c:506 builtin/notes.c:560 builtin/notes.c:643 +#: builtin/notes.c:648 builtin/notes.c:723 builtin/notes.c:765 +#: builtin/notes.c:967 builtin/tag.c:556 #, c-format msgid "Failed to resolve '%s' as a valid ref." msgstr "Kunde inte slå upp \"%s\" som en giltig referens." -#: builtin/notes.c:278 +#: builtin/notes.c:274 #, c-format msgid "Failed to read object '%s'." msgstr "Kunde inte läsa objektet \"%s\"." -#: builtin/notes.c:302 +#: builtin/notes.c:298 msgid "Cannot commit uninitialized/unreferenced notes tree" msgstr "Kan inte checka in oinitierat/orefererat anteckningsträd" -#: builtin/notes.c:343 +#: builtin/notes.c:339 #, c-format msgid "Bad notes.rewriteMode value: '%s'" msgstr "Felaktigt värde för notes.rewriteMode: '%s'" -#: builtin/notes.c:353 +#: builtin/notes.c:349 #, 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 -#: builtin/notes.c:380 +#: builtin/notes.c:376 #, c-format msgid "Bad %s value: '%s'" msgstr "Felaktigt värde på %s: \"%s\"" -#: builtin/notes.c:444 +#: builtin/notes.c:440 #, c-format msgid "Malformed input line: '%s'." msgstr "Felaktig indatarad: \"%s\"." -#: builtin/notes.c:459 +#: builtin/notes.c:455 #, c-format msgid "Failed to copy notes from '%s' to '%s'" msgstr "Misslyckades kopiera anteckningar från \"%s\" till \"%s\"" -#: builtin/notes.c:503 builtin/notes.c:557 builtin/notes.c:630 -#: builtin/notes.c:642 builtin/notes.c:715 builtin/notes.c:762 -#: builtin/notes.c:1036 +#: builtin/notes.c:499 builtin/notes.c:553 builtin/notes.c:626 +#: builtin/notes.c:638 builtin/notes.c:711 builtin/notes.c:758 +#: builtin/notes.c:1032 msgid "too many parameters" msgstr "för många parametrar" -#: builtin/notes.c:516 builtin/notes.c:775 +#: builtin/notes.c:512 builtin/notes.c:771 #, c-format msgid "No note found for object %s." msgstr "Inga anteckningar hittades för objektet %s." -#: builtin/notes.c:538 builtin/notes.c:695 +#: builtin/notes.c:534 builtin/notes.c:691 msgid "note contents as a string" msgstr "anteckningsinnehåll som sträng" -#: builtin/notes.c:541 builtin/notes.c:698 +#: builtin/notes.c:537 builtin/notes.c:694 msgid "note contents in a file" msgstr "anteckningsinnehåll i en fil" -#: builtin/notes.c:543 builtin/notes.c:546 builtin/notes.c:700 -#: builtin/notes.c:703 builtin/tag.c:476 +#: builtin/notes.c:539 builtin/notes.c:542 builtin/notes.c:696 +#: builtin/notes.c:699 builtin/tag.c:474 msgid "object" msgstr "objekt" -#: builtin/notes.c:544 builtin/notes.c:701 +#: builtin/notes.c:540 builtin/notes.c:697 msgid "reuse and edit specified note object" msgstr "återanvänd och redigera angivet anteckningsobjekt" -#: builtin/notes.c:547 builtin/notes.c:704 +#: builtin/notes.c:543 builtin/notes.c:700 msgid "reuse specified note object" msgstr "återanvänd angivet anteckningsobjekt" -#: builtin/notes.c:549 builtin/notes.c:617 +#: builtin/notes.c:545 builtin/notes.c:613 msgid "replace existing notes" msgstr "ersätt befintliga anteckningar" -#: builtin/notes.c:583 +#: builtin/notes.c:579 #, c-format msgid "" "Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite " @@ -6453,24 +6602,24 @@ msgstr "" "Kan inte lägga till anteckningar. Hittade befintliga anteckningar för " "objektet %s. Använd \"-f\" för att skriva över befintliga anteckningar" -#: builtin/notes.c:588 builtin/notes.c:665 +#: builtin/notes.c:584 builtin/notes.c:661 #, c-format msgid "Overwriting existing notes for object %s\n" msgstr "Skriver över befintliga anteckningar för objektet %s\n" -#: builtin/notes.c:618 +#: builtin/notes.c:614 msgid "read objects from stdin" msgstr "läs objekt från standard in" -#: builtin/notes.c:620 +#: builtin/notes.c:616 msgid "load rewriting config for <command> (implies --stdin)" msgstr "läs omskrivningsinställning för <kommando> (implicerar --stdin)" -#: builtin/notes.c:638 +#: builtin/notes.c:634 msgid "too few parameters" msgstr "för få parametrar" -#: builtin/notes.c:659 +#: builtin/notes.c:655 #, c-format msgid "" "Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite " @@ -6479,12 +6628,12 @@ msgstr "" "Kan inte kopiera anteckningar. Hittade befintliga anteckningar för objektet " "%s. Använd \"-f\" för att skriva över befintliga anteckningar" -#: builtin/notes.c:671 +#: builtin/notes.c:667 #, c-format msgid "Missing notes on source object %s. Cannot copy." msgstr "Anteckningar på källobjektet %s saknas. Kan inte kopiera." -#: builtin/notes.c:720 +#: builtin/notes.c:716 #, c-format msgid "" "The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n" @@ -6493,15 +6642,15 @@ msgstr "" "Flaggorna -m/-F/-c/-C rekommenderas inte för underkommandot \"edit\".\n" "Använd \"git notes add -f -m/-F/-c/-C\" istället.\n" -#: builtin/notes.c:867 +#: builtin/notes.c:863 msgid "General options" msgstr "Allmänna flaggor" -#: builtin/notes.c:869 +#: builtin/notes.c:865 msgid "Merge options" msgstr "Flaggor för sammanslagning" -#: builtin/notes.c:871 +#: builtin/notes.c:867 msgid "" "resolve notes conflicts using the given strategy (manual/ours/theirs/union/" "cat_sort_uniq)" @@ -6509,46 +6658,46 @@ msgstr "" "läs konflikter i anteckningar med angiven strategi (manual/ours/theirs/union/" "cat_sort_uniq)" -#: builtin/notes.c:873 +#: builtin/notes.c:869 msgid "Committing unmerged notes" msgstr "Checkar in ej sammanslagna anteckningar" -#: builtin/notes.c:875 +#: builtin/notes.c:871 msgid "finalize notes merge by committing unmerged notes" msgstr "" "färdigställ sammanslagning av anteckningar genom att checka in ej " "sammanslagna anteckningar" -#: builtin/notes.c:877 +#: builtin/notes.c:873 msgid "Aborting notes merge resolution" msgstr "Avbryt lösning av sammanslagning av anteckningar" -#: builtin/notes.c:879 +#: builtin/notes.c:875 msgid "abort notes merge" msgstr "avbryt sammanslagning av anteckningar" -#: builtin/notes.c:974 +#: builtin/notes.c:970 #, c-format msgid "Object %s has no note\n" msgstr "Objektet %s har ingen anteckning\n" -#: builtin/notes.c:986 +#: builtin/notes.c:982 msgid "attempt to remove non-existent note is not an error" msgstr "försök att ta bort icke-existerande anteckningar är inte ett fel" -#: builtin/notes.c:989 +#: builtin/notes.c:985 msgid "read object names from the standard input" msgstr "läs objektnamn från standard in" -#: builtin/notes.c:1070 +#: builtin/notes.c:1066 msgid "notes_ref" msgstr "anteckningar-ref" -#: builtin/notes.c:1071 +#: builtin/notes.c:1067 msgid "use notes from <notes_ref>" msgstr "använd anteckningar från <anteckningsref>" -#: builtin/notes.c:1106 builtin/remote.c:1598 +#: builtin/notes.c:1102 builtin/remote.c:1598 #, c-format msgid "Unknown subcommand: %s" msgstr "Okänt underkommando: %s" @@ -6909,28 +7058,49 @@ msgstr "" #: builtin/push.c:224 msgid "" -"Updates were rejected because the destination reference already exists\n" -"in the remote." +"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 merge 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 "" -"Uppdateringarna avvisades eftersom målreferensen redan finns på\n" -"fjärren." +"Uppdateringar avvisades då fjärren innehåller ändringar som du inte\n" +"har lokalt. Det beror oftast på att ett annat arkiv har sänt in samma\n" +"referenser. Det kan vara en idé att först slå ihop fjärrändringarna\n" +"(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:269 +#: builtin/push.c:231 +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:234 +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 "" +"Du kan inte uppdatera en fjärr-referens som pekar på ett objekt som\n" +"inte är en incheckning, eller uppdatera en fjärr-referens så att den\n" +"pekar på något som inte är en incheckning, utan att använda flaggan\n" +"\"--force\".\n" + +#: builtin/push.c:294 #, c-format msgid "Pushing to %s\n" msgstr "Sänder till %s\n" -#: builtin/push.c:273 +#: builtin/push.c:298 #, c-format msgid "failed to push some refs to '%s'" msgstr "misslyckades sända vissa referenser till \"%s\"" -#: builtin/push.c:302 +#: builtin/push.c:331 #, c-format msgid "bad repository '%s'" msgstr "felaktigt arkiv \"%s\"" -#: builtin/push.c:303 +#: builtin/push.c:332 msgid "" "No configured push destination.\n" "Either specify the URL from the command-line or configure a remote " @@ -6951,79 +7121,83 @@ msgstr "" "\n" " git push <namn>\n" -#: builtin/push.c:318 +#: builtin/push.c:347 msgid "--all and --tags are incompatible" msgstr "--all och --tags är inkompatibla" -#: builtin/push.c:319 +#: builtin/push.c:348 msgid "--all can't be combined with refspecs" msgstr "--all kan inte kombineras med referensspecifikationer" -#: builtin/push.c:324 +#: builtin/push.c:353 msgid "--mirror and --tags are incompatible" msgstr "--mirror och --tags är inkompatibla" -#: builtin/push.c:325 +#: builtin/push.c:354 msgid "--mirror can't be combined with refspecs" msgstr "--mirror kan inte kombineras med referensspecifikationer" -#: builtin/push.c:330 +#: builtin/push.c:359 msgid "--all and --mirror are incompatible" msgstr "--all och --mirror är inkompatibla" -#: builtin/push.c:390 +#: builtin/push.c:419 msgid "repository" msgstr "arkiv" -#: builtin/push.c:391 +#: builtin/push.c:420 msgid "push all refs" msgstr "sänd alla referenser" -#: builtin/push.c:392 +#: builtin/push.c:421 msgid "mirror all refs" msgstr "spegla alla referenser" -#: builtin/push.c:394 +#: builtin/push.c:423 msgid "delete refs" msgstr "ta bort referenser" -#: builtin/push.c:395 +#: builtin/push.c:424 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:398 +#: builtin/push.c:427 msgid "force updates" msgstr "tvinga uppdateringar" -#: builtin/push.c:399 +#: builtin/push.c:428 msgid "check" msgstr "kontrollera" -#: builtin/push.c:400 +#: builtin/push.c:429 msgid "control recursive pushing of submodules" msgstr "styr rekursiv insändning av undermoduler" -#: builtin/push.c:402 +#: builtin/push.c:431 msgid "use thin pack" msgstr "använd tunna paket" -#: builtin/push.c:403 builtin/push.c:404 +#: builtin/push.c:432 builtin/push.c:433 msgid "receive pack program" msgstr "program för att ta emot paket" -#: builtin/push.c:405 +#: builtin/push.c:434 msgid "set upstream for git pull/status" msgstr "ställ in uppström för git pull/status" -#: builtin/push.c:408 +#: builtin/push.c:437 msgid "prune locally removed refs" msgstr "ta bort lokalt borttagna referenser" -#: builtin/push.c:418 +#: builtin/push.c:439 +msgid "bypass pre-push hook" +msgstr "förbigå pre-push-krok" + +#: builtin/push.c:448 msgid "--delete is incompatible with --all, --mirror and --tags" msgstr "--delete är imkompatibel med --all, --mirror och --tags" -#: builtin/push.c:420 +#: builtin/push.c:450 msgid "--delete doesn't make sense without any refs" msgstr "--delete kan inte användas utan referenser" @@ -8169,170 +8343,164 @@ msgid "could not verify the tag '%s'" msgstr "kunde inte bekräfta taggen \"%s\"" #: builtin/tag.c:249 +#, c-format msgid "" "\n" -"#\n" -"# Write a tag message\n" -"# Lines starting with '#' will be ignored.\n" -"#\n" +"Write a tag message\n" +"Lines starting with '%c' will be ignored.\n" msgstr "" "\n" -"#\n" -"# Skriv ett taggmeddelande\n" -"# Rader som inleds med \"#\" ignoreras.\n" -"#\n" +"Skriv ett taggmeddelande\n" +"Rader som inleds med \"%c\" ignoreras.\n" -#: builtin/tag.c:256 +#: builtin/tag.c:253 +#, c-format msgid "" "\n" -"#\n" -"# Write a tag message\n" -"# Lines starting with '#' will be kept; you may remove them yourself if you " +"Write a tag message\n" +"Lines starting with '%c' will be kept; you may remove them yourself if you " "want to.\n" -"#\n" msgstr "" "\n" -"#\n" -"# Skriv ett taggmeddelande\n" -"# Rader som inleds med \"#\" kommer behållas; du kan själv ta bort dem om\n" -"# du vill.\n" -"#\n" +"Skriv ett taggmeddelande\n" +"Rader som inleds med \"%c\" kommer behållas; du kan själv ta bort dem om\n" +"du vill.\n" -#: builtin/tag.c:298 +#: builtin/tag.c:292 msgid "unable to sign the tag" msgstr "kunde inte signera taggen" -#: builtin/tag.c:300 +#: builtin/tag.c:294 msgid "unable to write tag file" msgstr "kunde inte skriva tagg-filen" -#: builtin/tag.c:325 +#: builtin/tag.c:319 msgid "bad object type." msgstr "felaktig objekttyp" -#: builtin/tag.c:338 +#: builtin/tag.c:332 msgid "tag header too big." msgstr "tagghuvud för stort." -#: builtin/tag.c:370 +#: builtin/tag.c:368 msgid "no tag message?" msgstr "inget taggmeddelande?" -#: builtin/tag.c:376 +#: builtin/tag.c:374 #, c-format msgid "The tag message has been left in %s\n" msgstr "Taggmeddelandet har lämnats i %s\n" -#: builtin/tag.c:425 +#: builtin/tag.c:423 msgid "switch 'points-at' requires an object" msgstr "flaggan \"points-at\" behöver ett object" -#: builtin/tag.c:427 +#: builtin/tag.c:425 #, c-format msgid "malformed object name '%s'" msgstr "felformat objektnamn \"%s\"" -#: builtin/tag.c:447 +#: builtin/tag.c:445 msgid "list tag names" msgstr "lista taggnamn" -#: builtin/tag.c:449 +#: builtin/tag.c:447 msgid "print <n> lines of each tag message" msgstr "visa <n> rader från varje taggmeddelande" -#: builtin/tag.c:451 +#: builtin/tag.c:449 msgid "delete tags" msgstr "ta bort taggar" -#: builtin/tag.c:452 +#: builtin/tag.c:450 msgid "verify tags" msgstr "verifiera taggar" -#: builtin/tag.c:454 +#: builtin/tag.c:452 msgid "Tag creation options" msgstr "Alternativ för att skapa taggar" -#: builtin/tag.c:456 +#: builtin/tag.c:454 msgid "annotated tag, needs a message" msgstr "annoterad tagg, behöver meddelande" -#: builtin/tag.c:458 +#: builtin/tag.c:456 msgid "tag message" msgstr "taggmeddelande" -#: builtin/tag.c:460 +#: builtin/tag.c:458 msgid "annotated and GPG-signed tag" msgstr "annoterad och GPG-signerad tagg" -#: builtin/tag.c:464 +#: builtin/tag.c:462 msgid "use another key to sign the tag" msgstr "använd annan nyckel för att signera taggen" -#: builtin/tag.c:465 +#: builtin/tag.c:463 msgid "replace the tag if exists" msgstr "ersätt taggen om den finns" -#: builtin/tag.c:466 +#: builtin/tag.c:464 msgid "show tag list in columns" msgstr "lista taggar i spalter" -#: builtin/tag.c:468 +#: builtin/tag.c:466 msgid "Tag listing options" msgstr "Alternativ för listning av taggar" -#: builtin/tag.c:471 +#: builtin/tag.c:469 msgid "print only tags that contain the commit" msgstr "visa endast taggar som innehåller incheckningen" -#: builtin/tag.c:477 +#: builtin/tag.c:475 msgid "print only tags of the object" msgstr "visa endast taggar för objektet" -#: builtin/tag.c:506 +#: builtin/tag.c:504 msgid "--column and -n are incompatible" msgstr "--column och -n är inkompatibla" -#: builtin/tag.c:523 +#: builtin/tag.c:521 msgid "-n option is only allowed with -l." msgstr "Flaggan -n är endast tillåten tillsammans med -l." -#: builtin/tag.c:525 +#: builtin/tag.c:523 msgid "--contains option is only allowed with -l." msgstr "Flaggan --contains är endast tillåten tillsammans med -l" -#: builtin/tag.c:527 +#: builtin/tag.c:525 msgid "--points-at option is only allowed with -l." msgstr "Flaggan --points-at är endast tillåten tillsammans med -l." -#: builtin/tag.c:535 +#: builtin/tag.c:533 msgid "only one -F or -m option is allowed." msgstr "endast en av flaggorna -F eller -m tillåts." -#: builtin/tag.c:555 +#: builtin/tag.c:553 msgid "too many params" msgstr "för många parametrar" -#: builtin/tag.c:561 +#: builtin/tag.c:559 #, c-format msgid "'%s' is not a valid tag name." msgstr "\"%s\" är inte ett giltigt taggnamn." -#: builtin/tag.c:566 +#: builtin/tag.c:564 #, c-format msgid "tag '%s' already exists" msgstr "taggen \"%s\" finns redan" -#: builtin/tag.c:584 +#: builtin/tag.c:582 #, c-format msgid "%s: cannot lock the ref" msgstr "%s: kan inte låsa referensen" -#: builtin/tag.c:586 +#: builtin/tag.c:584 #, c-format msgid "%s: cannot update the ref" msgstr "%s: kan inte uppdatera referensen" -#: builtin/tag.c:588 +#: builtin/tag.c:586 #, c-format msgid "Updated tag '%s' (was %s)\n" msgstr "Uppdaterad tagg \"%s\" (var %s)\n" @@ -8567,8 +8735,8 @@ msgid "Print lines matching a pattern" msgstr "Visa rader som motsvarar mönster" #: common-cmds.h:17 -msgid "Create an empty git repository or reinitialize an existing one" -msgstr "Skapa tomt git-arkiv eller ominitiera ett befintligt" +msgid "Create an empty Git repository or reinitialize an existing one" +msgstr "Skapa tomt Git-arkiv eller ominitiera ett befintligt" #: common-cmds.h:18 msgid "Show commit logs" @@ -9452,18 +9620,24 @@ msgid "blob" msgstr "blob" #: git-submodule.sh:979 -msgid "# Submodules changed but not updated:" -msgstr "# Undermoduler ändrade men inte uppdaterade:" +msgid "Submodules changed but not updated:" +msgstr "Undermoduler ändrade men inte uppdaterade:" #: git-submodule.sh:981 -msgid "# Submodule changes to be committed:" -msgstr "# Undermodulers ändringar att checka in:" +msgid "Submodule changes to be committed:" +msgstr "Undermodulers ändringar att checka in:" #: git-submodule.sh:1129 #, sh-format msgid "Synchronizing submodule url for '$prefix$sm_path'" msgstr "Synkroniserar undermodul-url för \"$prefix$sm_path\"" +#~ msgid "can't fdopen 'show' output fd" +#~ msgstr "kunde inte öppna (fdopen) \"show\"-utdata-filhandtag" + +#~ msgid "failed to close pipe to 'show' for object '%s'" +#~ msgstr "kunde inte stänga röret till \"show\" för objektet \"%s\"" + #~ msgid "You do not have a valid HEAD" #~ msgstr "Du har ingen giltig HEAD" @@ -6,10 +6,10 @@ # msgid "" msgstr "" -"Project-Id-Version: git-v1.8.1.3-568-g5bf72\n" +"Project-Id-Version: git-v1.8.2-rc2-4-g77995\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2013-02-14 14:46+0800\n" -"PO-Revision-Date: 2013-02-17 08:40+0700\n" +"POT-Creation-Date: 2013-03-05 12:36+0800\n" +"PO-Revision-Date: 2013-03-06 13:55+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" @@ -131,11 +131,11 @@ msgstr "đường dẫn đến lệnh git-upload-pack trên máy chủ" #: attr.c:259 msgid "" -"Negative patterns are forbidden in git attributes\n" +"Negative patterns are ignored in git attributes\n" "Use '\\!' for literal leading exclamation." msgstr "" -"Các mẫu dạng phủ định bị cấm dùng trong các thuộc tính của git\n" -"Dùng “\\!” cho các chuỗi văn bản có dấu chấm than." +"Các mẫu dạng phủ định bị cấm dùng cho các thuộc tính của git\n" +"Dùng “\\!” cho các chuỗi văn bản có dấu chấm than dẫn đầu." #: bundle.c:36 #, c-format @@ -310,22 +310,22 @@ msgid_plural "%lu years ago" msgstr[0] "%lu năm trước" msgstr[1] "%lu năm trước" -#: diff.c:111 +#: diff.c:112 #, 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:116 +#: diff.c:117 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr " Không hiểu đối số dirstat “%s”\n" -#: diff.c:194 +#: diff.c:210 #, 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:237 +#: diff.c:260 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" @@ -334,7 +334,7 @@ msgstr "" "Tìm thấy các lỗi trong biến cấu hình “diff.dirstat”:\n" "%s" -#: diff.c:3494 +#: diff.c:3468 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -343,7 +343,7 @@ msgstr "" "Gặp lỗi khi phân tích đối số tùy chọn --dirstat/-X:\n" "%s" -#: diff.c:3508 +#: diff.c:3482 #, 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”" @@ -709,27 +709,31 @@ msgstr "Không thể phân tích đối tượng “%s”" msgid "Unable to write index." msgstr "Không thể ghi bảng mục lục" -#: parse-options.c:485 +#: parse-options.c:489 msgid "..." msgstr "..." -#: parse-options.c:503 +#: parse-options.c:507 #, 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:507 +#: parse-options.c:511 #, c-format msgid " or: %s" msgstr " hoặc: %s" -#: parse-options.c:510 +#: parse-options.c:514 #, c-format msgid " %s" msgstr " %s" +#: parse-options.c:548 +msgid "-NUM" +msgstr "-SỐ" + #: pathspec.c:83 #, c-format msgid "Path '%s' is in submodule '%.*s'" @@ -998,7 +1002,7 @@ msgstr "không thể phân giải HEAD" 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:821 builtin/apply.c:4020 +#: sequencer.c:821 builtin/apply.c:4056 #, c-format msgid "cannot open %s: %s" msgstr "không thể mở %s: %s" @@ -1147,7 +1151,7 @@ msgstr "bị xóa bởi cả hai:" #: wt-status.c:250 msgid "added by us:" -msgstr "được thêm vào bởi chúng tôi:" +msgstr "được thêm vào bởi chúng ta:" #: wt-status.c:251 msgid "deleted by them:" @@ -1159,7 +1163,7 @@ msgstr "được thêm vào bởi họ:" #: wt-status.c:253 msgid "deleted by us:" -msgstr "bị xóa bởi chúng tôi:" +msgstr "bị xóa bởi chúng ta:" #: wt-status.c:254 msgid "both added:" @@ -1175,7 +1179,7 @@ msgstr "lần chuyển giao (commit) mới, " #: wt-status.c:287 msgid "modified content, " -msgstr "nội dung được sửa đổi, " +msgstr "nội dung bị sửa đổi, " #: wt-status.c:289 msgid "untracked content, " @@ -1230,7 +1234,7 @@ msgstr "lỗi: không lấy được trạng thái lệnh diff %c" msgid "You have unmerged paths." msgstr "Bạn có những đường dẫn chưa được hòa trộn." -#: wt-status.c:792 wt-status.c:916 +#: wt-status.c:792 wt-status.c:944 msgid " (fix conflicts and run \"git commit\")" msgstr " (sửa các xung đột sau đó chạy \"git commit\")" @@ -1256,123 +1260,150 @@ msgstr " (sửa các xung đột và sau đó chạy lệnh \"git am --resolved #: wt-status.c:817 msgid " (use \"git am --skip\" to skip this patch)" -msgstr " (dùng \"git am --skip\" để bỏ qua lần vá này)" +msgstr " (dùng \"git am --skip\" để bỏ qua miếng vá này)" #: wt-status.c:819 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:877 wt-status.c:887 +#: wt-status.c:879 wt-status.c:896 +#, 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:884 wt-status.c:901 msgid "You are currently rebasing." msgstr "Bạn hiện nay đang thực hiện việc rebase (tái cấu trúc)." -#: wt-status.c:880 +#: wt-status.c:887 msgid " (fix conflicts and then run \"git rebase --continue\")" msgstr " (sửa các xung đột và sau đó chạy lệnh \"git rebase --continue\")" -#: wt-status.c:882 +#: wt-status.c:889 msgid " (use \"git rebase --skip\" to skip this patch)" msgstr " (dùng \"git rebase --skip\" để bỏ qua lần vá này)" -#: wt-status.c:884 +#: wt-status.c:891 msgid " (use \"git rebase --abort\" to check out the original branch)" msgstr " (dùng \"git rebase --abort\" để check-out nhánh nguyên thủy)" -#: wt-status.c:890 +#: wt-status.c:904 msgid " (all conflicts fixed: run \"git rebase --continue\")" msgstr "" " (khi tất cả các xung đột đã sửa xong: chạy lệnh \"git rebase --continue\")" -#: wt-status.c:892 +#: wt-status.c:908 +#, c-format +msgid "" +"You are currently splitting a commit while rebasing branch '%s' on '%s'." +msgstr "" +"Bạn hiện nay đang thực hiện việc chia tách một lần chuyển giao (commit) " +"trong khi đang rebase nhánh “%s” trên “%s”." + +#: wt-status.c:913 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:895 +#: wt-status.c:916 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 \"git rebase --continue" "\")" -#: wt-status.c:897 +#: wt-status.c:920 +#, 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 (commit) trong " +"khi đang rebase nhánh “%s” trên “%s”." + +#: wt-status.c:925 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:900 +#: wt-status.c:928 msgid " (use \"git commit --amend\" to amend the current commit)" msgstr "" " (dùng \"git commit --amend\" để tu bổ lần chuyển giao (commit) hiện tại)" -#: wt-status.c:902 +#: wt-status.c:930 msgid "" " (use \"git rebase --continue\" once you are satisfied with your changes)" msgstr "" " (dùng \"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:912 +#: wt-status.c:940 msgid "You are currently cherry-picking." msgstr "Bạn hiện nay đang thực hiện việc cherry-pick." -#: wt-status.c:919 +#: wt-status.c:947 msgid " (all conflicts fixed: run \"git commit\")" msgstr " (khi tất cả các xung đột đã sửa xong: chạy lệnh \"git commit\")" -#: wt-status.c:928 +#: wt-status.c:958 +#, c-format +msgid "You are currently bisecting branch '%s'." +msgstr "" +"Bạn hiện nay đang thực hiện thao tác di chuyển nửa bước (bisect) trên nhánh " +"“%s”." + +#: wt-status.c:962 msgid "You are currently bisecting." msgstr "Bạn hiện tại đang thực hiện việc bisect (chia đôi)." -#: wt-status.c:931 +#: wt-status.c:965 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:982 +#: wt-status.c:1064 msgid "On branch " msgstr "Trên nhánh " -#: wt-status.c:989 +#: wt-status.c:1071 msgid "Not currently on any branch." msgstr "Hiện tại chẳng ở nhánh nào cả." -#: wt-status.c:1001 +#: wt-status.c:1083 msgid "Initial commit" msgstr "Lần chuyển giao (commit) khởi đầu" -#: wt-status.c:1015 +#: wt-status.c:1097 msgid "Untracked files" msgstr "Những tập tin chưa được theo dõi" -#: wt-status.c:1017 +#: wt-status.c:1099 msgid "Ignored files" msgstr "Những tập tin bị lờ đi" -#: wt-status.c:1019 +#: wt-status.c:1101 #, c-format msgid "Untracked files not listed%s" msgstr "Những tập tin không bị theo vết không được liệt kê ra %s" -#: wt-status.c:1021 +#: wt-status.c:1103 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:1027 +#: wt-status.c:1109 msgid "No changes" msgstr "Không có thay đổi nào" -#: wt-status.c:1032 +#: wt-status.c:1114 #, 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 commit (dùng \"git add\" và/hoặc \"git " "commit -a\")\n" -#: wt-status.c:1035 +#: wt-status.c:1117 #, c-format msgid "no changes added to commit\n" msgstr "không có thay đổi nào được thêm vào lần chuyển giao (commit)\n" -#: wt-status.c:1038 +#: wt-status.c:1120 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " @@ -1381,54 +1412,54 @@ msgstr "" "không có gì được thêm vào lần chuyển giao (commit) nhưng có những tập tin " "không được theo dấu vết hiện diện (dùng \"git add\" để đưa vào theo dõi)\n" -#: wt-status.c:1041 +#: wt-status.c:1123 #, 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 (commit) nhưng có những tập tin " "không được theo dấu vết hiện diện\n" -#: wt-status.c:1044 +#: wt-status.c:1126 #, c-format msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "" " không có gì để commit (tạo/sao-chép các tập tin và dùng \"git add\" để theo " "dõi dấu vết)\n" -#: wt-status.c:1047 wt-status.c:1052 +#: wt-status.c:1129 wt-status.c:1134 #, c-format msgid "nothing to commit\n" msgstr "không có gì để chuyển giao (commit)\n" -#: wt-status.c:1050 +#: wt-status.c:1132 #, c-format msgid "nothing to commit (use -u to show untracked files)\n" msgstr "" "không có gì để chuyển giao (commit) (dùng -u để bỏ các tập tin cần theo dấu " "vết)\n" -#: wt-status.c:1054 +#: wt-status.c:1136 #, c-format msgid "nothing to commit, working directory clean\n" msgstr "không có gì để chuyển giao (commit), thư mục làm việc sạch sẽ\n" -#: wt-status.c:1162 +#: wt-status.c:1244 msgid "HEAD (no branch)" msgstr "HEAD (không nhánh)" -#: wt-status.c:1168 +#: wt-status.c:1250 msgid "Initial commit on " msgstr "Lần chuyển giao (commit) khởi tạo trên " -#: wt-status.c:1183 +#: wt-status.c:1265 msgid "behind " msgstr "đằng sau " -#: wt-status.c:1186 wt-status.c:1189 +#: wt-status.c:1268 wt-status.c:1271 msgid "ahead " msgstr "phía trước " -#: wt-status.c:1191 +#: wt-status.c:1273 msgid ", behind " msgstr ", đằng sau " @@ -1472,7 +1503,7 @@ msgstr "Không thể đọc bảng mục lục" #: builtin/add.c:244 #, c-format msgid "Could not open '%s' for writing." -msgstr "Không thể mở “%s” để ghi" +msgstr "Không thể mở “%s” để ghi." #: builtin/add.c:248 msgid "Could not write patch" @@ -1504,7 +1535,7 @@ msgstr "" msgid "dry run" msgstr "chạy thử" -#: builtin/add.c:278 builtin/apply.c:4369 builtin/check-ignore.c:19 +#: builtin/add.c:278 builtin/apply.c:4405 builtin/check-ignore.c:19 #: builtin/commit.c:1150 builtin/count-objects.c:82 builtin/fsck.c:613 #: builtin/log.c:1522 builtin/mv.c:62 builtin/read-tree.c:112 msgid "be verbose" @@ -1634,7 +1665,7 @@ msgstr "Có lẽ bạn muốn là “git add .” phải không?\n" msgid "index file corrupt" msgstr "tập tin ghi bảng mục lục bị hỏng" -#: builtin/add.c:481 builtin/apply.c:4465 builtin/mv.c:229 builtin/rm.c:370 +#: builtin/add.c:481 builtin/apply.c:4501 builtin/mv.c:229 builtin/rm.c:370 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" @@ -1687,12 +1718,12 @@ msgstr "git apply: git-diff sai - tên tập tin cũ mâu thuấn trên dòng %d #: builtin/apply.c:957 #, c-format msgid "git apply: bad git-diff - expected /dev/null on line %d" -msgstr "git apply: git-diff sai - mong đợi /dev/null trên dòng %d" +msgstr "git apply: git-diff sai - cần /dev/null trên dòng %d" #: builtin/apply.c:1422 #, c-format msgid "recount: unexpected line: %.*s" -msgstr "chi tiết: dòng không được mong đợi: %.*s" +msgstr "chi tiết: dòng không cần: %.*s" #: builtin/apply.c:1479 #, c-format @@ -1766,7 +1797,7 @@ msgstr "không thể đọc liên kết tượng trưng %s" #: builtin/apply.c:2080 #, c-format msgid "unable to open or read %s" -msgstr "không thể mở để đọc hay ghi %s" +msgstr "không thể mở hay đọc %s" #: builtin/apply.c:2684 #, c-format @@ -1890,229 +1921,229 @@ msgstr "%s: miếng vá không được áp dụng" msgid "Checking patch %s..." msgstr "Đang kiểm tra miếng vá %s..." -#: builtin/apply.c:3639 builtin/checkout.c:215 builtin/reset.c:124 +#: builtin/apply.c:3675 builtin/checkout.c:215 builtin/reset.c:124 #, c-format msgid "make_cache_entry failed for path '%s'" msgstr "make_cache_entry gặp lỗi đối với đường dẫn “%s”" -#: builtin/apply.c:3782 +#: builtin/apply.c:3818 #, c-format msgid "unable to remove %s from index" msgstr "không thể gỡ bỏ %s từ mục lục" -#: builtin/apply.c:3810 +#: builtin/apply.c:3846 #, c-format msgid "corrupt patch for subproject %s" msgstr "miếng vá sai hỏng cho dự án con (subproject) %s" -#: builtin/apply.c:3814 +#: builtin/apply.c:3850 #, c-format msgid "unable to stat newly created file '%s'" msgstr "không thể lấy trạng thái về tập tin %s mới hơn đã được tạo" -#: builtin/apply.c:3819 +#: builtin/apply.c:3855 #, c-format msgid "unable to create backing store for newly created file %s" msgstr "không thể tạo “backing store” cho tập tin được tạo mới hơn %s" -#: builtin/apply.c:3822 builtin/apply.c:3930 +#: builtin/apply.c:3858 builtin/apply.c:3966 #, c-format msgid "unable to add cache entry for %s" msgstr "không thể thêm mục nhớ tạm cho %s" -#: builtin/apply.c:3855 +#: builtin/apply.c:3891 #, c-format msgid "closing file '%s'" msgstr "đang đóng tập tin “%s”" -#: builtin/apply.c:3904 +#: builtin/apply.c:3940 #, c-format msgid "unable to write file '%s' mode %o" msgstr "không thể ghi vào tập tin “%s” chế độ (mode) %o" -#: builtin/apply.c:3991 +#: builtin/apply.c:4027 #, 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:3999 +#: builtin/apply.c:4035 msgid "internal error" msgstr "lỗi nội bộ" #. Say this even without --verbose -#: builtin/apply.c:4002 +#: builtin/apply.c:4038 #, 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:4012 +#: builtin/apply.c:4048 #, c-format msgid "truncating .rej filename to %.*s.rej" msgstr "đang cắt cụt tên tập tin .rej thành %.*s.rej" -#: builtin/apply.c:4033 +#: builtin/apply.c:4069 #, c-format msgid "Hunk #%d applied cleanly." msgstr "Khối nhớ #%d được áp dụng gọn gàng." -#: builtin/apply.c:4036 +#: builtin/apply.c:4072 #, c-format msgid "Rejected hunk #%d." msgstr "hunk #%d bị từ chối." -#: builtin/apply.c:4186 +#: builtin/apply.c:4222 msgid "unrecognized input" msgstr "không thừa nhận đầu vào" -#: builtin/apply.c:4197 +#: builtin/apply.c:4233 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:4316 builtin/apply.c:4319 builtin/clone.c:91 +#: builtin/apply.c:4352 builtin/apply.c:4355 builtin/clone.c:91 #: builtin/fetch.c:63 msgid "path" msgstr "đường-dẫn" -#: builtin/apply.c:4317 +#: builtin/apply.c:4353 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:4320 +#: builtin/apply.c:4356 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:4322 +#: builtin/apply.c:4358 msgid "num" msgstr "số" -#: builtin/apply.c:4323 +#: builtin/apply.c:4359 msgid "remove <num> leading slashes from traditional diff paths" msgstr "gỡ bỏ <số> phần dẫn đầu (slashe) từ đường dẫn diff cổ điển" -#: builtin/apply.c:4326 +#: builtin/apply.c:4362 msgid "ignore additions made by the patch" msgstr "lờ đi phần phụ thêm tạo ra bởi miếng vá" -#: builtin/apply.c:4328 +#: builtin/apply.c:4364 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:4332 +#: builtin/apply.c:4368 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:4334 +#: builtin/apply.c:4370 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:4336 +#: builtin/apply.c:4372 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:4338 +#: builtin/apply.c:4374 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:4340 +#: builtin/apply.c:4376 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:4342 +#: builtin/apply.c:4378 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:4344 +#: builtin/apply.c:4380 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:4346 +#: builtin/apply.c:4382 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:4348 builtin/checkout-index.c:197 builtin/ls-files.c:463 +#: builtin/apply.c:4384 builtin/checkout-index.c:197 builtin/ls-files.c:463 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:4351 +#: builtin/apply.c:4387 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:4352 +#: builtin/apply.c:4388 msgid "action" msgstr "hành động" -#: builtin/apply.c:4353 +#: builtin/apply.c:4389 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:4356 builtin/apply.c:4359 +#: builtin/apply.c:4392 builtin/apply.c:4395 msgid "ignore changes in whitespace when finding context" msgstr "lờ đi sự thay đổi do khoảng trắng khi quét nội dung" -#: builtin/apply.c:4362 +#: builtin/apply.c:4398 msgid "apply the patch in reverse" msgstr "áp dụng miếng vá theo chiều ngược" -#: builtin/apply.c:4364 +#: builtin/apply.c:4400 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:4366 +#: builtin/apply.c:4402 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:4368 +#: builtin/apply.c:4404 msgid "allow overlapping hunks" msgstr "cho phép chồng khối nhớ" -#: builtin/apply.c:4371 +#: builtin/apply.c:4407 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:4374 +#: builtin/apply.c:4410 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:4376 +#: builtin/apply.c:4412 msgid "root" msgstr "root" -#: builtin/apply.c:4377 +#: builtin/apply.c:4413 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:4399 +#: builtin/apply.c:4435 msgid "--3way outside a repository" msgstr "--3way ở ngoài một kho chứa" -#: builtin/apply.c:4407 +#: builtin/apply.c:4443 msgid "--index outside a repository" msgstr "--index ở ngoài một kho chứa" -#: builtin/apply.c:4410 +#: builtin/apply.c:4446 msgid "--cached outside a repository" msgstr "--cached ở ngoài một kho chứa" -#: builtin/apply.c:4426 +#: builtin/apply.c:4462 #, c-format msgid "can't open patch '%s'" msgstr "không thể mở miếng vá “%s”" -#: builtin/apply.c:4440 +#: builtin/apply.c:4476 #, 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:4446 builtin/apply.c:4456 +#: builtin/apply.c:4482 builtin/apply.c:4492 #, c-format msgid "%d line adds whitespace errors." msgid_plural "%d lines add whitespace errors." @@ -2348,7 +2379,7 @@ msgstr "không tìm thấy nhánh “%s”." #: builtin/branch.c:250 #, c-format msgid "Error deleting remote branch '%s'" -msgstr "Gặp lỗi khi đang xóa nhánh máy chủ “%s”" +msgstr "Gặp lỗi khi đang xóa nhánh trên máy chủ “%s”" #: builtin/branch.c:251 #, c-format @@ -2358,7 +2389,7 @@ msgstr "Lỗi khi xoá bỏ nhánh “%s”" #: builtin/branch.c:258 #, c-format msgid "Deleted remote branch %s (was %s).\n" -msgstr "Nhánh máy chủ \"%s\" đã bị xóa (từng là %s).\n" +msgstr "Nhánh trên máy chủ \"%s\" đã bị xóa (từng là %s).\n" #: builtin/branch.c:259 #, c-format diff --git a/po/zh_CN.po b/po/zh_CN.po index 6379876aaf..c48ae10d78 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: 2013-02-14 14:46+0800\n" -"PO-Revision-Date: 2013-02-14 17:43+0800\n" +"POT-Creation-Date: 2013-03-05 12:36+0800\n" +"PO-Revision-Date: 2013-03-05 13:07+0800\n" "Last-Translator: Jiang Xin <worldhello.net@gmail.com>\n" "Language-Team: GitHub <https://github.com/gotgit/git/>\n" "Language: zh_CN\n" @@ -130,10 +130,10 @@ msgstr "远程 git-upload-archive 命令的路径" #: attr.c:259 msgid "" -"Negative patterns are forbidden in git attributes\n" +"Negative patterns are ignored in git attributes\n" "Use '\\!' for literal leading exclamation." msgstr "" -"在 git attributes 中不允许使用负值模版\n" +"负值模版在 git attributes 中被忽略\n" "当字符串确实要以感叹号开始时,使用 '\\!'。" #: bundle.c:36 @@ -310,23 +310,23 @@ msgstr[0] "%lu 年前" msgstr[1] "%lu 年前" # 译者:注意保持前导空格 -#: diff.c:111 +#: diff.c:112 #, c-format msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr " 无法解析 dirstat 截止(cut-off)百分比 '%s'\n" # 译者:注意保持前导空格 -#: diff.c:116 +#: diff.c:117 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr " 未知的 dirstat 参数 '%s'\n" -#: diff.c:194 +#: diff.c:210 #, c-format msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "配置变量 'diff.submodule' 未知的取值:'%s'" -#: diff.c:237 +#: diff.c:260 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" @@ -335,7 +335,7 @@ msgstr "" "发现配置变量 'diff.dirstat' 中的错误:\n" "%s" -#: diff.c:3494 +#: diff.c:3468 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -344,7 +344,7 @@ msgstr "" "无法解析 --dirstat/-X 选项的参数:\n" "%s" -#: diff.c:3508 +#: diff.c:3482 #, c-format msgid "Failed to parse --submodule option parameter: '%s'" msgstr "无法解析 --submodule 选项的参数:'%s'" @@ -708,28 +708,32 @@ msgstr "不能解析对象 '%s'" msgid "Unable to write index." msgstr "不能写入索引。" -#: parse-options.c:485 +#: parse-options.c:489 msgid "..." msgstr "..." -#: parse-options.c:503 +#: parse-options.c:507 #, c-format msgid "usage: %s" msgstr "用法:%s" #. TRANSLATORS: the colon here should align with the #. one in "usage: %s" translation -#: parse-options.c:507 +#: parse-options.c:511 #, c-format msgid " or: %s" msgstr " 或:%s" # 译者:为保证在输出中对齐,注意调整句中空格! -#: parse-options.c:510 +#: parse-options.c:514 #, c-format msgid " %s" msgstr " %s" +#: parse-options.c:548 +msgid "-NUM" +msgstr "-数字" + #: pathspec.c:83 #, c-format msgid "Path '%s' is in submodule '%.*s'" @@ -988,7 +992,7 @@ msgstr "不能解析 HEAD" msgid "cannot abort from a branch yet to be born" msgstr "不能从尚未建立的分支终止" -#: sequencer.c:821 builtin/apply.c:4020 +#: sequencer.c:821 builtin/apply.c:4056 #, c-format msgid "cannot open %s: %s" msgstr "不能打开 %s:%s" @@ -1228,7 +1232,7 @@ msgid "You have unmerged paths." msgstr "您有尚未合并的路径。" # 译者:注意保持前导空格 -#: wt-status.c:792 wt-status.c:916 +#: wt-status.c:792 wt-status.c:944 msgid " (fix conflicts and run \"git commit\")" msgstr " (解决冲突并运行 \"git commit\")" @@ -1264,173 +1268,194 @@ msgstr " (使用 \"git am --skip\" 跳过此补丁)" msgid " (use \"git am --abort\" to restore the original branch)" msgstr " (使用 \"git am --abort\" 恢复原有分支)" -#: wt-status.c:877 wt-status.c:887 +#: wt-status.c:879 wt-status.c:896 +#, c-format +msgid "You are currently rebasing branch '%s' on '%s'." +msgstr "您正在将分支 '%s' 变基到 '%s'。" + +#: wt-status.c:884 wt-status.c:901 msgid "You are currently rebasing." msgstr "您正在变基。" # 译者:注意保持前导空格 -#: wt-status.c:880 +#: wt-status.c:887 msgid " (fix conflicts and then run \"git rebase --continue\")" msgstr " (解决冲突,然后运行 \"git rebase --continue\")" # 译者:注意保持前导空格 -#: wt-status.c:882 +#: wt-status.c:889 msgid " (use \"git rebase --skip\" to skip this patch)" msgstr " (使用 \"git rebase --skip\" 跳过此补丁)" # 译者:注意保持前导空格 -#: wt-status.c:884 +#: wt-status.c:891 msgid " (use \"git rebase --abort\" to check out the original branch)" msgstr " (使用 \"git rebase --abort\" 以检出原有分支)" # 译者:注意保持前导空格 -#: wt-status.c:890 +#: wt-status.c:904 msgid " (all conflicts fixed: run \"git rebase --continue\")" msgstr " (所有冲突已解决:运行 \"git rebase --continue\")" -#: wt-status.c:892 +#: wt-status.c:908 +#, c-format +msgid "" +"You are currently splitting a commit while rebasing branch '%s' on '%s'." +msgstr "您正在将分支 '%s' 变基到 '%s' 过程中拆分一个提交。" + +#: wt-status.c:913 msgid "You are currently splitting a commit during a rebase." msgstr "您正在变基过程中拆分一个提交。" # 译者:注意保持前导空格 -#: wt-status.c:895 +#: wt-status.c:916 msgid " (Once your working directory is clean, run \"git rebase --continue\")" msgstr " (一旦您工作目录提交干净后,运行 \"git rebase --continue\")" -#: wt-status.c:897 +#: wt-status.c:920 +#, c-format +msgid "You are currently editing a commit while rebasing branch '%s' on '%s'." +msgstr "您正在将分支 '%s' 变基到 '%s' 过程中编辑一个提交。" + +#: wt-status.c:925 msgid "You are currently editing a commit during a rebase." msgstr "您正在变基过程中编辑一个提交。" # 译者:注意保持前导空格 -#: wt-status.c:900 +#: wt-status.c:928 msgid " (use \"git commit --amend\" to amend the current commit)" msgstr " (使用 \"git commit --amend\" 修补当前提交)" # 译者:注意保持前导空格 -#: wt-status.c:902 +#: wt-status.c:930 msgid "" " (use \"git rebase --continue\" once you are satisfied with your changes)" msgstr " (当您对您的修改满意后执行 \"git rebase --continue\")" -#: wt-status.c:912 +#: wt-status.c:940 msgid "You are currently cherry-picking." msgstr "您正在做拣选操作。" # 译者:注意保持前导空格 -#: wt-status.c:919 +#: wt-status.c:947 msgid " (all conflicts fixed: run \"git commit\")" msgstr " (解决所有冲突后,执行 \"git commit\")" -#: wt-status.c:928 +#: wt-status.c:958 +#, c-format +msgid "You are currently bisecting branch '%s'." +msgstr "您正在分支 '%s' 中做二分查找。" + +#: wt-status.c:962 msgid "You are currently bisecting." msgstr "您正在做二分查找。" # 译者:注意保持前导空格 -#: wt-status.c:931 +#: wt-status.c:965 msgid " (use \"git bisect reset\" to get back to the original branch)" msgstr " (使用 \"git bisect reset\" 以回到原有分支)" -#: wt-status.c:982 +#: wt-status.c:1064 msgid "On branch " msgstr "位于分支 " -#: wt-status.c:989 +#: wt-status.c:1071 msgid "Not currently on any branch." msgstr "当前不在任何分支上。" -#: wt-status.c:1001 +#: wt-status.c:1083 msgid "Initial commit" msgstr "初始提交" -#: wt-status.c:1015 +#: wt-status.c:1097 msgid "Untracked files" msgstr "未跟踪的文件" -#: wt-status.c:1017 +#: wt-status.c:1099 msgid "Ignored files" msgstr "忽略的文件" -#: wt-status.c:1019 +#: wt-status.c:1101 #, c-format msgid "Untracked files not listed%s" msgstr "未跟踪的文件没有列出%s" # 译者:中文字符串拼接,可删除前导空格 -#: wt-status.c:1021 +#: wt-status.c:1103 msgid " (use -u option to show untracked files)" msgstr "(使用 -u 参数显示未跟踪的文件)" -#: wt-status.c:1027 +#: wt-status.c:1109 msgid "No changes" msgstr "没有修改" # 译者:中文字符串拼接,可删除前导空格 -#: wt-status.c:1032 +#: wt-status.c:1114 #, 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:1035 +#: wt-status.c:1117 #, c-format msgid "no changes added to commit\n" msgstr "修改尚未加入提交\n" -#: wt-status.c:1038 +#: wt-status.c:1120 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " "track)\n" msgstr "提交为空,但是存在尚未跟踪的文件(使用 \"git add\" 建立跟踪)\n" -#: wt-status.c:1041 +#: wt-status.c:1123 #, c-format msgid "nothing added to commit but untracked files present\n" msgstr "提交为空,但是存在尚未跟踪的文件\n" # 译者:中文字符串拼接,可删除前导空格 -#: wt-status.c:1044 +#: wt-status.c:1126 #, c-format msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "无文件要提交(创建/拷贝文件并使用 \"git add\" 建立跟踪)\n" -#: wt-status.c:1047 wt-status.c:1052 +#: wt-status.c:1129 wt-status.c:1134 #, c-format msgid "nothing to commit\n" msgstr "无文件要提交\n" # 译者:中文字符串拼接,可删除前导空格 -#: wt-status.c:1050 +#: wt-status.c:1132 #, c-format msgid "nothing to commit (use -u to show untracked files)\n" msgstr "无文件要提交(使用 -u 显示未跟踪的文件)\n" # 译者:中文字符串拼接,可删除前导空格 -#: wt-status.c:1054 +#: wt-status.c:1136 #, c-format msgid "nothing to commit, working directory clean\n" msgstr "无文件要提交,干净的工作区\n" -#: wt-status.c:1162 +#: wt-status.c:1244 msgid "HEAD (no branch)" msgstr "HEAD(非分支)" # 译者:注意保持句尾空格 -#: wt-status.c:1168 +#: wt-status.c:1250 msgid "Initial commit on " msgstr "初始提交于 " # 译者:注意保持句尾空格 -#: wt-status.c:1183 +#: wt-status.c:1265 msgid "behind " msgstr "落后 " # 译者:注意保持句尾空格 -#: wt-status.c:1186 wt-status.c:1189 +#: wt-status.c:1268 wt-status.c:1271 msgid "ahead " msgstr "领先 " # 译者:注意保持句尾空格 -#: wt-status.c:1191 +#: wt-status.c:1273 msgid ", behind " msgstr ",落后 " @@ -1503,7 +1528,7 @@ msgstr "下列路径根据您的一个 .gitignore 文件而被忽略:\n" msgid "dry run" msgstr "演习" -#: builtin/add.c:278 builtin/apply.c:4369 builtin/check-ignore.c:19 +#: builtin/add.c:278 builtin/apply.c:4405 builtin/check-ignore.c:19 #: builtin/commit.c:1150 builtin/count-objects.c:82 builtin/fsck.c:613 #: builtin/log.c:1522 builtin/mv.c:62 builtin/read-tree.c:112 msgid "be verbose" @@ -1629,7 +1654,7 @@ msgstr "也许您想要执行 'git add .'?\n" msgid "index file corrupt" msgstr "索引文件损坏" -#: builtin/add.c:481 builtin/apply.c:4465 builtin/mv.c:229 builtin/rm.c:370 +#: builtin/add.c:481 builtin/apply.c:4501 builtin/mv.c:229 builtin/rm.c:370 msgid "Unable to write new index file" msgstr "无法写入新索引文件" @@ -1877,224 +1902,224 @@ msgstr "%s:补丁未应用" msgid "Checking patch %s..." msgstr "检查补丁 %s..." -#: builtin/apply.c:3639 builtin/checkout.c:215 builtin/reset.c:124 +#: builtin/apply.c:3675 builtin/checkout.c:215 builtin/reset.c:124 #, c-format msgid "make_cache_entry failed for path '%s'" msgstr "对路径 '%s' 的 make_cache_entry 操作失败" -#: builtin/apply.c:3782 +#: builtin/apply.c:3818 #, c-format msgid "unable to remove %s from index" msgstr "不能从索引中移除 %s" -#: builtin/apply.c:3810 +#: builtin/apply.c:3846 #, c-format msgid "corrupt patch for subproject %s" msgstr "子项目 %s 损坏的补丁" -#: builtin/apply.c:3814 +#: builtin/apply.c:3850 #, c-format msgid "unable to stat newly created file '%s'" msgstr "不能枚举新建文件 '%s' 的状态" -#: builtin/apply.c:3819 +#: builtin/apply.c:3855 #, c-format msgid "unable to create backing store for newly created file %s" msgstr "不能为新建文件 %s 创建后端存储" -#: builtin/apply.c:3822 builtin/apply.c:3930 +#: builtin/apply.c:3858 builtin/apply.c:3966 #, c-format msgid "unable to add cache entry for %s" msgstr "无法为 %s 添加缓存条目" -#: builtin/apply.c:3855 +#: builtin/apply.c:3891 #, c-format msgid "closing file '%s'" msgstr "关闭文件 '%s'" -#: builtin/apply.c:3904 +#: builtin/apply.c:3940 #, c-format msgid "unable to write file '%s' mode %o" msgstr "不能写文件 '%s' 权限 %o" -#: builtin/apply.c:3991 +#: builtin/apply.c:4027 #, c-format msgid "Applied patch %s cleanly." msgstr "成功应用补丁 %s。" -#: builtin/apply.c:3999 +#: builtin/apply.c:4035 msgid "internal error" msgstr "内部错误" #. Say this even without --verbose -#: builtin/apply.c:4002 +#: builtin/apply.c:4038 #, 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:4012 +#: builtin/apply.c:4048 #, c-format msgid "truncating .rej filename to %.*s.rej" msgstr "截短 .rej 文件名为 %.*s.rej" -#: builtin/apply.c:4033 +#: builtin/apply.c:4069 #, c-format msgid "Hunk #%d applied cleanly." msgstr "第 #%d 个片段成功应用。" -#: builtin/apply.c:4036 +#: builtin/apply.c:4072 #, c-format msgid "Rejected hunk #%d." msgstr "拒绝第 #%d 个片段。" -#: builtin/apply.c:4186 +#: builtin/apply.c:4222 msgid "unrecognized input" msgstr "未能识别的输入" -#: builtin/apply.c:4197 +#: builtin/apply.c:4233 msgid "unable to read index file" msgstr "无法读取索引文件" -#: builtin/apply.c:4316 builtin/apply.c:4319 builtin/clone.c:91 +#: builtin/apply.c:4352 builtin/apply.c:4355 builtin/clone.c:91 #: builtin/fetch.c:63 msgid "path" msgstr "路径" -#: builtin/apply.c:4317 +#: builtin/apply.c:4353 msgid "don't apply changes matching the given path" msgstr "不要应用与给出路径向匹配的变更" -#: builtin/apply.c:4320 +#: builtin/apply.c:4356 msgid "apply changes matching the given path" msgstr "应用与给出路径向匹配的变更" -#: builtin/apply.c:4322 +#: builtin/apply.c:4358 msgid "num" msgstr "数字" -#: builtin/apply.c:4323 +#: builtin/apply.c:4359 msgid "remove <num> leading slashes from traditional diff paths" msgstr "从传统的 diff 路径中移除指定数量的前导斜线" -#: builtin/apply.c:4326 +#: builtin/apply.c:4362 msgid "ignore additions made by the patch" msgstr "忽略补丁中的添加的文件" -#: builtin/apply.c:4328 +#: builtin/apply.c:4364 msgid "instead of applying the patch, output diffstat for the input" msgstr "不应用补丁,而是显示输入的差异统计(diffstat)" -#: builtin/apply.c:4332 +#: builtin/apply.c:4368 msgid "show number of added and deleted lines in decimal notation" msgstr "以十进制数显示添加和删除的行数" -#: builtin/apply.c:4334 +#: builtin/apply.c:4370 msgid "instead of applying the patch, output a summary for the input" msgstr "不应用补丁,而是显示输入的概要" -#: builtin/apply.c:4336 +#: builtin/apply.c:4372 msgid "instead of applying the patch, see if the patch is applicable" msgstr "不应用补丁,而是查看补丁是否可应用" -#: builtin/apply.c:4338 +#: builtin/apply.c:4374 msgid "make sure the patch is applicable to the current index" msgstr "确认补丁可以应用到当前索引" -#: builtin/apply.c:4340 +#: builtin/apply.c:4376 msgid "apply a patch without touching the working tree" msgstr "应用补丁而不修改工作区" -#: builtin/apply.c:4342 +#: builtin/apply.c:4378 msgid "also apply the patch (use with --stat/--summary/--check)" msgstr "还应用此补丁(与 --stat/--summary/--check 选项同时使用)" -#: builtin/apply.c:4344 +#: builtin/apply.c:4380 msgid "attempt three-way merge if a patch does not apply" msgstr "如果一个补丁不能应用则尝试三路合并" -#: builtin/apply.c:4346 +#: builtin/apply.c:4382 msgid "build a temporary index based on embedded index information" msgstr "创建一个临时索引基于嵌入的索引信息" -#: builtin/apply.c:4348 builtin/checkout-index.c:197 builtin/ls-files.c:463 +#: builtin/apply.c:4384 builtin/checkout-index.c:197 builtin/ls-files.c:463 msgid "paths are separated with NUL character" msgstr "路径以 NUL 字符分隔" -#: builtin/apply.c:4351 +#: builtin/apply.c:4387 msgid "ensure at least <n> lines of context match" msgstr "确保至少匹配 <n> 行上下文" -#: builtin/apply.c:4352 +#: builtin/apply.c:4388 msgid "action" msgstr "动作" -#: builtin/apply.c:4353 +#: builtin/apply.c:4389 msgid "detect new or modified lines that have whitespace errors" msgstr "检查新增和修改的行中间的空白字符滥用" -#: builtin/apply.c:4356 builtin/apply.c:4359 +#: builtin/apply.c:4392 builtin/apply.c:4395 msgid "ignore changes in whitespace when finding context" msgstr "查找上下文时忽略空白字符的变更" -#: builtin/apply.c:4362 +#: builtin/apply.c:4398 msgid "apply the patch in reverse" msgstr "反向应用补丁" -#: builtin/apply.c:4364 +#: builtin/apply.c:4400 msgid "don't expect at least one line of context" msgstr "无需至少一行上下文" -#: builtin/apply.c:4366 +#: builtin/apply.c:4402 msgid "leave the rejected hunks in corresponding *.rej files" msgstr "将拒绝的补丁片段保存在对应的 *.rej 文件中" -#: builtin/apply.c:4368 +#: builtin/apply.c:4404 msgid "allow overlapping hunks" msgstr "允许重叠的补丁片段" -#: builtin/apply.c:4371 +#: builtin/apply.c:4407 msgid "tolerate incorrectly detected missing new-line at the end of file" msgstr "允许不正确的文件末尾换行符" -#: builtin/apply.c:4374 +#: builtin/apply.c:4410 msgid "do not trust the line counts in the hunk headers" msgstr "不信任补丁片段的头信息中的行号" -#: builtin/apply.c:4376 +#: builtin/apply.c:4412 msgid "root" msgstr "根目录" -#: builtin/apply.c:4377 +#: builtin/apply.c:4413 msgid "prepend <root> to all filenames" msgstr "为所有文件名前添加 <根目录>" -#: builtin/apply.c:4399 +#: builtin/apply.c:4435 msgid "--3way outside a repository" msgstr "--3way 在一个版本库之外" -#: builtin/apply.c:4407 +#: builtin/apply.c:4443 msgid "--index outside a repository" msgstr "--index 在一个版本库之外" -#: builtin/apply.c:4410 +#: builtin/apply.c:4446 msgid "--cached outside a repository" msgstr "--cached 在一个版本库之外" -#: builtin/apply.c:4426 +#: builtin/apply.c:4462 #, c-format msgid "can't open patch '%s'" msgstr "不能打开补丁 '%s'" -#: builtin/apply.c:4440 +#: builtin/apply.c:4476 #, c-format msgid "squelched %d whitespace error" msgid_plural "squelched %d whitespace errors" msgstr[0] "抑制下仍有 %d 个空白字符误用" msgstr[1] "抑制下仍有 %d 个空白字符误用" -#: builtin/apply.c:4446 builtin/apply.c:4456 +#: builtin/apply.c:4482 builtin/apply.c:4492 #, c-format msgid "%d line adds whitespace errors." msgid_plural "%d lines add whitespace errors." @@ -8759,7 +8784,7 @@ msgstr "版本库缺乏必要的数据(blob)对象以进行三路合并。" #: git-am.sh:139 msgid "Using index info to reconstruct a base tree..." -msgstr "更新索引信息以重建基树..." +msgstr "使用索引来重建一个(三路合并的)基础目录树..." #: git-am.sh:154 msgid "" @@ -8870,7 +8895,7 @@ msgstr "您的索引中仍有未合并的路径。您是否忘了执行 'git add #: git-am.sh:845 msgid "No changes -- Patch already applied." -msgstr "没有变更 -- 补丁已经应用过。" +msgstr "没有变更 —— 补丁已经应用过。" #: git-am.sh:855 #, sh-format @@ -9567,9 +9592,6 @@ msgstr "为 '$prefix$sm_path' 同步子模组 url" #~ msgid "failed to close pipe to 'show' for object '%s'" #~ msgstr "无法为对象 '%s' 的 'show' 关闭管道" -#~ msgid "-NUM" -#~ msgstr "-数字" - #~ msgid " 0 files changed" #~ msgstr " 0 个文件被修改" diff --git a/read-cache.c b/read-cache.c index 827ae55c50..670a06bc79 100644 --- a/read-cache.c +++ b/read-cache.c @@ -1260,7 +1260,7 @@ static int verify_hdr(struct cache_header *hdr, unsigned long size) if (hdr->hdr_signature != htonl(CACHE_SIGNATURE)) return error("bad signature"); hdr_version = ntohl(hdr->hdr_version); - if (hdr_version < 2 || 4 < hdr_version) + if (hdr_version < INDEX_FORMAT_LB || INDEX_FORMAT_UB < hdr_version) return error("bad index version %d", hdr_version); git_SHA1_Init(&c); git_SHA1_Update(&c, hdr, size - 20); diff --git a/run-command.c b/run-command.c index 07e27ff4c8..765c2ce056 100644 --- a/run-command.c +++ b/run-command.c @@ -273,7 +273,7 @@ int start_command(struct child_process *cmd) { int need_in, need_out, need_err; int fdin[2], fdout[2], fderr[2]; - int failed_errno = failed_errno; + int failed_errno; char *str; /* @@ -341,6 +341,7 @@ fail_pipe: notify_pipe[0] = notify_pipe[1] = -1; cmd->pid = fork(); + failed_errno = errno; if (!cmd->pid) { /* * Redirect the channel to write syscall error messages to @@ -420,7 +421,7 @@ fail_pipe: } if (cmd->pid < 0) error("cannot fork() for %s: %s", cmd->argv[0], - strerror(failed_errno = errno)); + strerror(errno)); else if (cmd->clean_on_exit) mark_child_for_cleanup(cmd->pid); @@ -650,22 +650,32 @@ static dev_t get_device_or_die(const char *path, const char *prefix, int prefix_ /* * A "string_list_each_func_t" function that canonicalizes an entry * from GIT_CEILING_DIRECTORIES using real_path_if_valid(), or - * discards it if unusable. + * discards it if unusable. The presence of an empty entry in + * GIT_CEILING_DIRECTORIES turns off canonicalization for all + * subsequent entries. */ static int canonicalize_ceiling_entry(struct string_list_item *item, - void *unused) + void *cb_data) { + int *empty_entry_found = cb_data; char *ceil = item->string; - const char *real_path; - if (!*ceil || !is_absolute_path(ceil)) + if (!*ceil) { + *empty_entry_found = 1; return 0; - real_path = real_path_if_valid(ceil); - if (!real_path) + } else if (!is_absolute_path(ceil)) { return 0; - free(item->string); - item->string = xstrdup(real_path); - return 1; + } else if (*empty_entry_found) { + /* Keep entry but do not canonicalize it */ + return 1; + } else { + const char *real_path = real_path_if_valid(ceil); + if (!real_path) + return 0; + free(item->string); + item->string = xstrdup(real_path); + return 1; + } } /* @@ -705,9 +715,11 @@ static const char *setup_git_directory_gently_1(int *nongit_ok) return setup_explicit_git_dir(gitdirenv, cwd, len, nongit_ok); if (env_ceiling_dirs) { + int empty_entry_found = 0; + string_list_split(&ceiling_dirs, env_ceiling_dirs, PATH_SEP, -1); filter_string_list(&ceiling_dirs, 0, - canonicalize_ceiling_entry, NULL); + canonicalize_ceiling_entry, &empty_entry_found); ceil_offset = longest_ancestor_length(cwd, &ceiling_dirs); string_list_clear(&ceiling_dirs, 0); } diff --git a/sha1_name.c b/sha1_name.c index 95003c77ea..c50630a3ea 100644 --- a/sha1_name.c +++ b/sha1_name.c @@ -1137,7 +1137,8 @@ int get_sha1_blob(const char *name, unsigned char *sha1) static void diagnose_invalid_sha1_path(const char *prefix, const char *filename, const unsigned char *tree_sha1, - const char *object_name) + const char *object_name, + int object_name_len) { struct stat st; unsigned char sha1[20]; @@ -1147,8 +1148,8 @@ static void diagnose_invalid_sha1_path(const char *prefix, prefix = ""; if (!lstat(filename, &st)) - die("Path '%s' exists on disk, but not in '%s'.", - filename, object_name); + die("Path '%s' exists on disk, but not in '%.*s'.", + filename, object_name_len, object_name); if (errno == ENOENT || errno == ENOTDIR) { char *fullname = xmalloc(strlen(filename) + strlen(prefix) + 1); @@ -1158,16 +1159,16 @@ static void diagnose_invalid_sha1_path(const char *prefix, if (!get_tree_entry(tree_sha1, fullname, sha1, &mode)) { die("Path '%s' exists, but not '%s'.\n" - "Did you mean '%s:%s' aka '%s:./%s'?", + "Did you mean '%.*s:%s' aka '%.*s:./%s'?", fullname, filename, - object_name, + object_name_len, object_name, fullname, - object_name, + object_name_len, object_name, filename); } - die("Path '%s' does not exist in '%s'", - filename, object_name); + die("Path '%s' does not exist in '%.*s'", + filename, object_name_len, object_name); } } @@ -1332,13 +1333,8 @@ static int get_sha1_with_context_1(const char *name, } if (*cp == ':') { unsigned char tree_sha1[20]; - char *object_name = NULL; - if (only_to_die) { - object_name = xmalloc(cp-name+1); - strncpy(object_name, name, cp-name); - object_name[cp-name] = '\0'; - } - if (!get_sha1_1(name, cp-name, tree_sha1, GET_SHA1_TREEISH)) { + int len = cp - name; + if (!get_sha1_1(name, len, tree_sha1, GET_SHA1_TREEISH)) { const char *filename = cp+1; char *new_filename = NULL; @@ -1348,8 +1344,8 @@ static int get_sha1_with_context_1(const char *name, ret = get_tree_entry(tree_sha1, filename, sha1, &oc->mode); if (ret && only_to_die) { diagnose_invalid_sha1_path(prefix, filename, - tree_sha1, object_name); - free(object_name); + tree_sha1, + name, len); } hashcpy(oc->tree, tree_sha1); strncpy(oc->path, filename, @@ -1360,7 +1356,7 @@ static int get_sha1_with_context_1(const char *name, return ret; } else { if (only_to_die) - die("Invalid object name '%s'.", object_name); + die("Invalid object name '%.*s'.", len, name); } } return ret; diff --git a/t/perf/README b/t/perf/README index b2dbad4d50..c552f561bf 100644 --- a/t/perf/README +++ b/t/perf/README @@ -56,7 +56,7 @@ You can set the following variables (also in your config.mak): GIT_PERF_REPEAT_COUNT Number of times a test should be repeated for best-of-N - measurements. Defaults to 5. + measurements. Defaults to 3. GIT_PERF_MAKE_OPTS Options to use when automatically building a git tree for diff --git a/t/t0003-attributes.sh b/t/t0003-attributes.sh index 43b25137e9..0b98b6f8d0 100755 --- a/t/t0003-attributes.sh +++ b/t/t0003-attributes.sh @@ -198,7 +198,8 @@ test_expect_success 'root subdir attribute test' ' test_expect_success 'negative patterns' ' echo "!f test=bar" >.gitattributes && - test_must_fail git check-attr test -- f + git check-attr test -- '"'"'!f'"'"' 2>errors && + test_i18ngrep "Negative patterns are ignored" errors ' test_expect_success 'patterns starting with exclamation' ' diff --git a/t/t0008-ignores.sh b/t/t0008-ignores.sh index d7df7198c4..9c1bde1fd6 100755 --- a/t/t0008-ignores.sh +++ b/t/t0008-ignores.sh @@ -75,6 +75,16 @@ test_check_ignore () { stderr_empty_on_success "$expect_code" } +# Runs the same code with 3 different levels of output verbosity, +# expecting success each time. Takes advantage of the fact that +# check-ignore --verbose output is the same as normal output except +# for the extra first column. +# +# Arguments: +# - (optional) prereqs for this test, e.g. 'SYMLINKS' +# - test name +# - output to expect from -v / --verbose mode +# - code to run (should invoke test_check_ignore) test_expect_success_multi () { prereq= if test $# -eq 4 @@ -128,6 +138,7 @@ test_expect_success 'setup' ' cat <<-\EOF >.gitignore && one ignored-* + top-level-dir/ EOF for dir in . a do @@ -167,6 +178,10 @@ test_expect_success 'setup' ' # # test invalid inputs +test_expect_success_multi '. corner-case' '' ' + test_check_ignore . 1 +' + test_expect_success_multi 'empty command line' '' ' test_check_ignore "" 128 && stderr_contains "fatal: no path specified" diff --git a/t/t1504-ceiling-dirs.sh b/t/t1504-ceiling-dirs.sh index cce87a5ab5..3d51615e42 100755 --- a/t/t1504-ceiling-dirs.sh +++ b/t/t1504-ceiling-dirs.sh @@ -44,6 +44,10 @@ test_prefix ceil_at_sub "" GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub/" test_prefix ceil_at_sub_slash "" +if test_have_prereq SYMLINKS +then + ln -s sub top +fi mkdir -p sub/dir || exit 1 cd sub/dir || exit 1 @@ -68,6 +72,19 @@ test_fail subdir_ceil_at_sub GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub/" test_fail subdir_ceil_at_sub_slash +if test_have_prereq SYMLINKS +then + GIT_CEILING_DIRECTORIES="$TRASH_ROOT/top" + test_fail subdir_ceil_at_top + GIT_CEILING_DIRECTORIES="$TRASH_ROOT/top/" + test_fail subdir_ceil_at_top_slash + + GIT_CEILING_DIRECTORIES=":$TRASH_ROOT/top" + test_prefix subdir_ceil_at_top_no_resolve "sub/dir/" + GIT_CEILING_DIRECTORIES=":$TRASH_ROOT/top/" + test_prefix subdir_ceil_at_top_slash_no_resolve "sub/dir/" +fi + GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub/dir" test_prefix subdir_ceil_at_subdir "sub/dir/" diff --git a/t/t1507-rev-parse-upstream.sh b/t/t1507-rev-parse-upstream.sh index d6e576192f..b27a7209f7 100755 --- a/t/t1507-rev-parse-upstream.sh +++ b/t/t1507-rev-parse-upstream.sh @@ -54,6 +54,10 @@ test_expect_success 'my-side@{upstream} resolves to correct full name' ' test refs/remotes/origin/side = "$(full_name my-side@{u})" ' +test_expect_success 'refs/heads/my-side@{upstream} does not resolve to my-side{upstream}' ' + test_must_fail full_name refs/heads/my-side@{upstream} +' + test_expect_success 'my-side@{u} resolves to correct commit' ' git checkout side && test_commit 5 && diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh index f3e0e4a38c..12f1e4a63c 100755 --- a/t/t3200-branch.sh +++ b/t/t3200-branch.sh @@ -42,6 +42,10 @@ test_expect_success \ 'git branch a/b/c should create a branch' \ 'git branch a/b/c && test_path_is_file .git/refs/heads/a/b/c' +test_expect_success \ + 'git branch HEAD should fail' \ + 'test_must_fail git branch HEAD' + cat >expect <<EOF $_z40 $HEAD $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150200 +0000 branch: Created from master EOF @@ -388,6 +392,14 @@ test_expect_success \ 'git tag foobar && test_must_fail git branch --track my11 foobar' +test_expect_success '--set-upstream-to fails on multiple branches' \ + 'test_must_fail git branch --set-upstream-to master a b c' + +test_expect_success '--set-upstream-to fails on detached HEAD' \ + 'git checkout HEAD^{} && + test_must_fail git branch --set-upstream-to master && + git checkout -' + test_expect_success 'use --set-upstream-to modify HEAD' \ 'test_config branch.master.remote foo && test_config branch.master.merge foo && @@ -417,6 +429,15 @@ test_expect_success 'test --unset-upstream on HEAD' \ test_must_fail git branch --unset-upstream ' +test_expect_success '--unset-upstream should fail on multiple branches' \ + 'test_must_fail git branch --unset-upstream a b c' + +test_expect_success '--unset-upstream should fail on detached HEAD' \ + 'git checkout HEAD^{} && + test_must_fail git branch --unset-upstream && + git checkout - +' + test_expect_success 'test --unset-upstream on a particular branch' \ 'git branch my15 git branch --set-upstream-to master my14 && diff --git a/t/t5003-archive-zip.sh b/t/t5003-archive-zip.sh index 7cfe9ca3da..6a33606d28 100755 --- a/t/t5003-archive-zip.sh +++ b/t/t5003-archive-zip.sh @@ -76,6 +76,12 @@ test_expect_success \ git update-ref HEAD $(TZ=GMT GIT_COMMITTER_DATE="2005-05-27 22:00:00" \ git commit-tree $treeid </dev/null)' +test_expect_success 'setup export-subst' ' + echo "substfile?" export-subst >>.git/info/attributes && + git log --max-count=1 "--pretty=format:A${SUBSTFORMAT}O" HEAD \ + >a/substfile1 +' + test_expect_success \ 'create bare clone' \ 'git clone --bare . bare.git && diff --git a/t/t7406-submodule-update.sh b/t/t7406-submodule-update.sh index 4975ec07ce..1a3d20bdc3 100755 --- a/t/t7406-submodule-update.sh +++ b/t/t7406-submodule-update.sh @@ -643,7 +643,8 @@ test_expect_success 'submodule update places git-dir in superprojects git-dir re rm -rf super_update_r2 && git clone super_update_r super_update_r2 && (cd super_update_r2 && - git submodule update --init --recursive && + git submodule update --init --recursive >actual && + test_i18ngrep "Submodule path .submodule/subsubmodule.: checked out" actual && (cd submodule/subsubmodule && git log > ../../expected ) && diff --git a/t/t7512-status-help.sh b/t/t7512-status-help.sh index 51ab89411f..d2da89a5f5 100755 --- a/t/t7512-status-help.sh +++ b/t/t7512-status-help.sh @@ -5,7 +5,7 @@ # Grenoble INP Ensimag # -test_description='git status advices' +test_description='git status advice' . ./test-lib.sh diff --git a/transport.c b/transport.c index 886ffd8b1e..e6f9346c76 100644 --- a/transport.c +++ b/transport.c @@ -106,7 +106,8 @@ static void insert_packed_refs(const char *packed_refs, struct ref **list) return; for (;;) { - int cmp = cmp, len; + int cmp = 0; /* assigned before used */ + int len; if (!fgets(buffer, sizeof(buffer), f)) { fclose(f); @@ -507,9 +507,25 @@ char *reencode_string(const char *in, const char *out_encoding, const char *in_e if (!in_encoding) return NULL; + conv = iconv_open(out_encoding, in_encoding); - if (conv == (iconv_t) -1) - return NULL; + if (conv == (iconv_t) -1) { + /* + * Some platforms do not have the variously spelled variants of + * UTF-8, so let's fall back to trying the most official + * spelling. We do so only as a fallback in case the platform + * does understand the user's spelling, but not our official + * one. + */ + if (is_encoding_utf8(in_encoding)) + in_encoding = "UTF-8"; + if (is_encoding_utf8(out_encoding)) + out_encoding = "UTF-8"; + conv = iconv_open(out_encoding, in_encoding); + if (conv == (iconv_t) -1) + return NULL; + } + out = reencode_string_iconv(in, strlen(in), conv); iconv_close(conv); return out; diff --git a/wt-status.c b/wt-status.c index ef405d03d9..7555817786 100644 --- a/wt-status.c +++ b/wt-status.c @@ -264,7 +264,7 @@ static void wt_status_print_change_data(struct wt_status *s, { struct wt_status_change_data *d = it->util; const char *c = color(change_type, s); - int status = status; + int status; char *one_name; char *two_name; const char *one, *two; @@ -292,6 +292,9 @@ static void wt_status_print_change_data(struct wt_status *s, } status = d->worktree_status; break; + default: + die("BUG: unhandled change_type %d in wt_status_print_change_data", + change_type); } one = quote_path(one_name, -1, &onebuf, s->prefix); |