Merge branch 'da/downcase-u-in-usage'
authorJunio C Hamano <gitster@pobox.com>
Tue, 19 Mar 2013 19:15:54 +0000 (12:15 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 19 Mar 2013 19:15:54 +0000 (12:15 -0700)
* da/downcase-u-in-usage:
contrib/mw-to-git/t/install-wiki.sh: use a lowercase "usage:" string
contrib/examples/git-remote.perl: use a lowercase "usage:" string
tests: use a lowercase "usage:" string
git-svn: use a lowercase "usage:" string
Documentation/user-manual.txt: use a lowercase "usage:" string
templates/hooks--update.sample: use a lowercase "usage:" string
contrib/hooks/setgitperms.perl: use a lowercase "usage:" string
contrib/examples: use a lowercase "usage:" string
contrib/fast-import/import-zips.py: use spaces instead of tabs
contrib/fast-import/import-zips.py: fix broken error message
contrib/fast-import: use a lowercase "usage:" string
contrib/credential: use a lowercase "usage:" string
git-cvsimport: use a lowercase "usage:" string
git-cvsimport: use a lowercase "usage:" string
git-cvsexportcommit: use a lowercase "usage:" string
git-archimport: use a lowercase "usage:" string
git-merge-one-file: use a lowercase "usage:" string
git-relink: use a lowercase "usage:" string
git-svn: use a lowercase "usage:" string
git-sh-setup: use a lowercase "usage:" string

45 files changed:
Documentation/RelNotes/1.8.1.5.txt [new file with mode: 0644]
Documentation/RelNotes/1.8.2.txt
Documentation/RelNotes/1.8.3.txt [new file with mode: 0644]
Documentation/config.txt
Documentation/diff-options.txt
Documentation/git-add.txt
Documentation/git-submodule.txt
Documentation/git-update-index.txt
Documentation/git.txt
Documentation/githooks.txt
Documentation/revisions.txt
Documentation/technical/index-format.txt
Documentation/user-manual.txt
GIT-VERSION-GEN
Makefile
RelNotes
attr.c
builtin/add.c
builtin/check-ignore.c
compat/strtok_r.c [deleted file]
config.mak.in
config.mak.uname
configure.ac
contrib/completion/git-completion.bash
contrib/completion/git-completion.zsh
contrib/credential/wincred/git-credential-wincred.c
git-compat-util.h
git.c
gitweb/README
name-hash.c
perl/Git/SVN.pm
po/de.po
po/git.pot
po/sv.po
po/vi.po
po/zh_CN.po
read-cache.c
setup.c
sha1_name.c
t/perf/README
t/t0003-attributes.sh
t/t0008-ignores.sh
t/t1504-ceiling-dirs.sh
t/t1507-rev-parse-upstream.sh
t/t7512-status-help.sh
diff --git a/Documentation/RelNotes/1.8.1.5.txt b/Documentation/RelNotes/1.8.1.5.txt
new file mode 100644 (file)
index 0000000..efa68ae
--- /dev/null
@@ -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.
index a287f24800ea6fe2bf9ca3f5aa1591fec22cfeeb..fc606ae116239601a5ae75c2b124552faa837bd6 100644 (file)
@@ -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/RelNotes/1.8.3.txt b/Documentation/RelNotes/1.8.3.txt
new file mode 100644 (file)
index 0000000..a88e851
--- /dev/null
@@ -0,0 +1,53 @@
+Git v1.8.3 Release Notes
+========================
+
+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.2
+--------------------
+
+UI, Workflows & Features
+
+
+
+Foreign Interface
+
+
+
+Performance, Internal Implementation, etc.
+
+
+
+Also contains minor documentation updates and code clean-ups.
+
+
+Fixes since v1.8.2
+------------------
+
+Unless otherwise noted, all the fixes since v1.8.2 in the maintenance
+track are contained in this release (see release notes to them for
+details).
index 3bb53da522b14fd2aedbebf1bbd92b5d20782c71..bbba728d09bbb578f86c1ef171d24b53c1178fa3 100644 (file)
@@ -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
index 869d965a3b93e25c71fd4c81a7f7742ff2222cfe..104579dc75128811e475d408035569ac09f3283b 100644 (file)
@@ -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.
index 388a2254f9df0afd83482d0ad572c359401f1d7b..b0944e57d52546d725d0d9d71692ff74f9fac55f 100644 (file)
@@ -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::
index a0c9df85f419b319e38c49999f90cdfcc6928799..c99d795618f59bf98969b551f2a931680534f18e 100644 (file)
@@ -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>
index 77a912d4ea0421ad604b3271a1e36975906d95f0..c92775829bd26d3d993600fd5bb104e527de59f4 100644 (file)
@@ -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
index 0847cdcc6803f0af19d203b613222ac7e22d0cdd..7efaa591b8f29b7d9ab415efb7ebe4f83e41a72b 100644 (file)
@@ -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
index 8181e4ed2ad815e5cdc3fe840c9bcdad33ffdd2d..dc6693fe482e2311a7d0ed5b5e60abec7c150c0c 100644 (file)
@@ -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:
index 678d1756a55f82637450951a09eaeb36917082fd..314e25da7344dda459ca5b3292aaaabdfc0d6495 100644 (file)
@@ -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
index 27c716b15f5de5103eb6afe4b23a5a5a84a1fd7f..0810251f5a316de548d906bde65fba5af3507e4d 100644 (file)
@@ -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
 
index d290632d183097cbe51e0751037d71aa8310c452..35a279ab246cf345933babc4243b42fa19d6af72 100644 (file)
@@ -2006,7 +2006,7 @@ 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
@@ -2306,17 +2306,13 @@ 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.
 
-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.
@@ -2557,6 +2553,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 +2572,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
@@ -3721,7 +3740,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
index 4448c35bd054927aa69340c6272c32f858835838..6722e621d119dbefeda2e8ea02dfcc0ebb2b4a5a 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 GVF=GIT-VERSION-FILE
-DEF_VER=v1.8.2-rc0
+DEF_VER=v1.8.2.GIT
 
 LF='
 '
index ba8e243425f1d013538fddf9a9552b96812cef4f..598d6313da96f8ba8f76fbd982f491077b6d5d97 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -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 \
index bdce3136ea5164d82f0d25d0a7a8b50181f572f7..80b7e388ad321ea679e2b14ce4f18972da35156c 120000 (symlink)
--- a/RelNotes
+++ b/RelNotes
@@ -1 +1 @@
-Documentation/RelNotes/1.8.2.txt
\ No newline at end of file
+Documentation/RelNotes/1.8.3.txt
\ No newline at end of file
diff --git a/attr.c b/attr.c
index 4657cc233c4aa7cff90e745a58ac7ad0a5fa8cd2..e2f9377891a7f6e0d56803016726e3cd3137fdc2 100644 (file)
--- a/attr.c
+++ b/attr.c
@@ -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;
index 0dd014eb96110e46e79fd6bad0bab843551fab79..ab1c9e8fb7a0f7c6f60cc78ff0f345838210459a 100644 (file)
@@ -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"
index 709535ce09fd3876e48e6e7b81bc2f6654e04c1e..0240f99b57a2f81320b84951bf6dc89ab60d6282 100644 (file)
@@ -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/compat/strtok_r.c b/compat/strtok_r.c
deleted file mode 100644 (file)
index 7b5d568..0000000
+++ /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;
-}
index d7c49cd8f3333f8ccf434ea494453656c2e573ac..fa02bdd82ada7c45b2c666438aa2df9407f5c1af 100644 (file)
@@ -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@
index 8743a6d0af8f193c22eab4bf3791c3a8cc876502..e09af8fc13ec4c3c6fa326e8208c98be52347a10 100644 (file)
@@ -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
index 1991258ae031cd656a8b599fda16ec73695216cb..f3462d9c81f12ea07229128f6bef7a4ff3fcfe10 100644 (file)
@@ -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=],
index b62bec027963edc8607067e990509b694cdbc9db..93eba467502282db2697e1cf6c93a6909d35ee5c 100644 (file)
@@ -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).
index 45775021fff11011a98b90a6b8ebaa72d3d0cd9f..cf8116d4770c5924eaa647763d2bfae3dc14bacf 100644 (file)
@@ -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
index 66194929fca77a3b0ab41fecf8abc945d9bf2c66..a1d38f035bea404aa9a5fa37518f0af21143dbf0 100644 (file)
@@ -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"))
index b7eaaa99a802018a657e81e4421e40fb806b97b3..b636e0dd0c2ea8284ed6f34e32c448eae433a20a 100644 (file)
@@ -421,11 +421,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.c b/git.c
index b10c18b0419904631d7e8fa4a1fd11e8533b3034..39ba6b14618389bc9312df43a376b52f9a21d881 100644 (file)
--- a/git.c
+++ b/git.c
@@ -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];
index 6da4778b73e3ef1d098fce7655bf4ca5bb2443e5..471dcfb691bb9f1361c80daa17b522ca74193314 100644 (file)
@@ -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.
 
 
index d8d25c23e99dddd9bd0bf83d73f2ae136d7307b5..942c45962252eba4c6f88b4f4f7593c9247749ae 100644 (file)
@@ -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;
 }
 
index 0ebc68ac7e64171acc52abe59063fec48ca3c129..5273ee886764423df0bacfa9b2fbc9b27c4852c4 100644 (file)
@@ -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;
                }
index d309415bb819e44e2f49ca81ea120367a02936b7..83c30b158764d4e88c21cc8d332d6c0eacb1eba1 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -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)"
 
index 0ca230e27058c366c23b91916dac27bac998d742..a826dcbf9ffa723b85eb9fa8bc0e715ddf0e42ad 100644 (file)
@@ -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."
index d518ab42ae61807d5122c116b63f73610efc3550..15f1aa82a08ee6aab7263f57adb38bc38a01dd67 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -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"
 
index 53008c75c7a2745eef05d649ab9edfdc8a2d22fa..7d9d05d6cb0c61b6cc6f6f274faf60a9479eab42 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
@@ -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
index 6379876aaff39912f8bfb90f8046c960d8119e5a..c48ae10d78595592fb6b44a2d5f338f588010423 100644 (file)
@@ -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 个文件被修改"
 
index 827ae55c508addf5c058872e554a3d914389e324..670a06bc7996da83650d47a72685315f918e26b2 100644 (file)
@@ -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/setup.c b/setup.c
index 2e1521b09e5e6a0de585225293805b1d30a03cd4..1dee47e0850369c87408c540ce2b2251db17be3d 100644 (file)
--- a/setup.c
+++ b/setup.c
@@ -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);
        }
index 95003c77ea9a0ee240d60bc7958bb48245b14ad4..c50630a3ea793e0cfd2510b8813129a1685428f4 100644 (file)
@@ -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;
index b2dbad4d502a0d88269885eb56780deb3079b42c..c552f561bffd9800d53064772ea640677b20a3ae 100644 (file)
@@ -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
index 43b25137e9878e41557fd7d095cc991c27efdfc7..0b98b6f8d090ecc3dfb48fe6fda5889dfbc5e018 100755 (executable)
@@ -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' '
index d7df7198c4379216616a8a0de06bc4f5ec724a42..9c1bde1fd6e6424f7af732556656a9daf9be350b 100755 (executable)
@@ -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"
index cce87a5ab523d3a4232e9e11863aa3a6e8ca0211..3d51615e42d53a0c7794533eb27049606981fbf3 100755 (executable)
@@ -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/"
 
index d6e576192fcd014ed5f570ceeab1152b93d91d1f..b27a7209f7401706f3b0a37b495fc0cb3a07c29e 100755 (executable)
@@ -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 &&
index 51ab89411f06aa200c27815b8642cb0c78caeba4..d2da89a5f572134c55c690b1439ffde66ecdd6cb 100755 (executable)
@@ -5,7 +5,7 @@
 #                   Grenoble INP Ensimag
 #
 
-test_description='git status advices'
+test_description='git status advice'
 
 . ./test-lib.sh