summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/RelNotes/1.8.1.5.txt12
-rw-r--r--Documentation/RelNotes/1.8.2.txt72
-rw-r--r--Documentation/RelNotes/1.8.3.txt53
-rw-r--r--Documentation/config.txt2
-rw-r--r--Documentation/diff-options.txt4
-rw-r--r--Documentation/git-add.txt22
-rw-r--r--Documentation/git-describe.txt5
-rw-r--r--Documentation/git-submodule.txt5
-rw-r--r--Documentation/git-update-index.txt10
-rw-r--r--Documentation/git.txt27
-rw-r--r--Documentation/gitcli.txt9
-rw-r--r--Documentation/githooks.txt10
-rw-r--r--Documentation/revisions.txt8
-rw-r--r--Documentation/technical/index-format.txt6
-rw-r--r--Documentation/user-manual.txt4
-rwxr-xr-xGIT-VERSION-GEN2
-rw-r--r--Makefile35
l---------RelNotes2
-rw-r--r--attr.c8
-rw-r--r--builtin/add.c6
-rw-r--r--builtin/describe.c4
-rw-r--r--compat/strtok_r.c61
-rw-r--r--config.mak.uname2
-rw-r--r--configure.ac6
-rw-r--r--contrib/completion/git-completion.bash16
-rw-r--r--contrib/completion/git-completion.zsh9
-rw-r--r--contrib/credential/gnome-keyring/git-credential-gnome-keyring.c2
-rw-r--r--contrib/credential/osxkeychain/git-credential-osxkeychain.c2
-rw-r--r--contrib/credential/wincred/git-credential-wincred.c208
-rwxr-xr-xcontrib/examples/git-remote.perl10
-rwxr-xr-xcontrib/examples/git-svnimport.perl2
-rwxr-xr-xcontrib/fast-import/git-import.perl2
-rwxr-xr-xcontrib/fast-import/git-import.sh2
-rwxr-xr-xcontrib/fast-import/import-zips.py98
-rw-r--r--contrib/hooks/setgitperms.perl2
-rwxr-xr-xcontrib/mw-to-git/t/install-wiki.sh2
-rw-r--r--daemon.c4
-rwxr-xr-xgit-archimport.perl2
-rw-r--r--git-compat-util.h16
-rwxr-xr-xgit-cvsexportcommit.perl2
-rwxr-xr-xgit-cvsimport.perl2
-rwxr-xr-xgit-cvsserver.perl2
-rwxr-xr-xgit-merge-one-file.sh2
-rwxr-xr-xgit-relink.perl2
-rw-r--r--git-sh-setup.sh6
-rwxr-xr-xgit-svn.perl6
-rw-r--r--git.c6
-rw-r--r--gitweb/README3
-rw-r--r--perl/Git/SVN.pm7
-rw-r--r--po/de.po1463
-rw-r--r--po/git.pot4
-rw-r--r--po/sv.po8
-rw-r--r--po/vi.po20
-rw-r--r--po/zh_CN.po8
-rw-r--r--read-cache.c2
-rw-r--r--setup.c32
-rw-r--r--sha1_name.c32
-rw-r--r--t/lib-git-svn.sh2
-rw-r--r--t/perf/README2
-rwxr-xr-xt/t0003-attributes.sh3
-rwxr-xr-xt/t1504-ceiling-dirs.sh17
-rwxr-xr-xt/t1507-rev-parse-upstream.sh4
-rwxr-xr-xt/t1509/prepare-chroot.sh2
-rwxr-xr-xtemplates/hooks--update.sample2
-rw-r--r--test-chmtime.c2
-rw-r--r--test-delta.c2
-rw-r--r--test-genrandom.c2
67 files changed, 1311 insertions, 1086 deletions
diff --git a/Documentation/RelNotes/1.8.1.5.txt b/Documentation/RelNotes/1.8.1.5.txt
index 92da6b2777..efa68aef22 100644
--- a/Documentation/RelNotes/1.8.1.5.txt
+++ b/Documentation/RelNotes/1.8.1.5.txt
@@ -1,9 +1,19 @@
Git 1.8.1.5 Release Notes
=========================
-Fixes since v1.8.1.5
+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.
diff --git a/Documentation/RelNotes/1.8.2.txt b/Documentation/RelNotes/1.8.2.txt
index 861ef026d6..fc606ae116 100644
--- a/Documentation/RelNotes/1.8.2.txt
+++ b/Documentation/RelNotes/1.8.2.txt
@@ -1,19 +1,8 @@
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
@@ -22,17 +11,41 @@ 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
+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
@@ -463,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
index 0000000000..a88e851f21
--- /dev/null
+++ b/Documentation/RelNotes/1.8.3.txt
@@ -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).
diff --git a/Documentation/config.txt b/Documentation/config.txt
index bbba728d09..b3023b8172 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -443,7 +443,7 @@ core.sharedRepository::
core.warnAmbiguousRefs::
If true, Git will warn you if the ref name you passed it is ambiguous
- and might match multiple refs in the .git/refs/ tree. True by default.
+ and might match multiple refs in the repository. True by default.
core.compression::
An integer -1..9, indicating a default compression level.
diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt
index 869d965a3b..104579dc75 100644
--- a/Documentation/diff-options.txt
+++ b/Documentation/diff-options.txt
@@ -195,8 +195,8 @@ any of those replacements occurred.
--color[=<when>]::
Show colored diff.
- The value must be `always` (the default for `<when>`), `never`, or `auto`.
- The default value is `never`.
+ `--color` (i.e. without '=<when>') is the same as `--color=always`.
+ '<when>' can be one of `always`, `never`, or `auto`.
ifdef::git-diff[]
It can be changed by the `color.ui` and `color.diff`
configuration settings.
diff --git a/Documentation/git-add.txt b/Documentation/git-add.txt
index 388a2254f9..b0944e57d5 100644
--- a/Documentation/git-add.txt
+++ b/Documentation/git-add.txt
@@ -100,12 +100,9 @@ apply to the index. See EDITING PATCHES below.
-u::
--update::
- Only match <pathspec> against already tracked files in
- the index rather than the working tree. That means that it
- will never stage new files, but that it will stage modified
- new contents of tracked files and that it will remove files
- from the index if the corresponding files in the working tree
- have been removed.
+ Update the index just where it already has an entry matching
+ <pathspec>. This removes as well as modifies index entries to
+ match the working tree, but adds no new files.
+
If no <pathspec> is given, the current version of Git defaults to
"."; in other words, update all tracked files in the current directory
@@ -114,10 +111,15 @@ of Git, hence the form without <pathspec> should not be used.
-A::
--all::
- Like `-u`, but match <pathspec> against files in the
- working tree in addition to the index. That means that it
- will find new files as well as staging modified content and
- removing files that are no longer in the working tree.
+ Update the index not only where the working tree has a file
+ matching <pathspec> but also where the index already has an
+ entry. This adds, modifies, and removes index entries to
+ match the working tree.
++
+If no <pathspec> is given, the current version of Git defaults to
+"."; in other words, update all files in the current directory
+and its subdirectories. This default will change in a future version
+of Git, hence the form without <pathspec> should not be used.
-N::
--intent-to-add::
diff --git a/Documentation/git-describe.txt b/Documentation/git-describe.txt
index 32da244fd5..3c81e85ec5 100644
--- a/Documentation/git-describe.txt
+++ b/Documentation/git-describe.txt
@@ -81,8 +81,9 @@ OPTIONS
that points at object deadbee....).
--match <pattern>::
- Only consider tags matching the given pattern (can be used to avoid
- leaking private tags made from the repository).
+ Only consider tags matching the given `glob(7)` pattern,
+ excluding the "refs/tags/" prefix. This can be used to avoid
+ leaking private tags from the repository.
--always::
Show uniquely abbreviated commit object as fallback.
diff --git a/Documentation/git-submodule.txt b/Documentation/git-submodule.txt
index a0c9df85f4..c99d795618 100644
--- a/Documentation/git-submodule.txt
+++ b/Documentation/git-submodule.txt
@@ -13,8 +13,9 @@ SYNOPSIS
[--reference <repository>] [--] <repository> [<path>]
'git submodule' [--quiet] status [--cached] [--recursive] [--] [<path>...]
'git submodule' [--quiet] init [--] [<path>...]
-'git submodule' [--quiet] update [--init] [--remote] [-N|--no-fetch] [--rebase]
- [--reference <repository>] [--merge] [--recursive] [--] [<path>...]
+'git submodule' [--quiet] update [--init] [--remote] [-N|--no-fetch]
+ [-f|--force] [--rebase] [--reference <repository>]
+ [--merge] [--recursive] [--] [<path>...]
'git submodule' [--quiet] summary [--cached|--files] [(-n|--summary-limit) <n>]
[commit] [--] [<path>...]
'git submodule' [--quiet] foreach [--recursive] <command>
diff --git a/Documentation/git-update-index.txt b/Documentation/git-update-index.txt
index 77a912d4ea..c92775829b 100644
--- a/Documentation/git-update-index.txt
+++ b/Documentation/git-update-index.txt
@@ -145,7 +145,15 @@ you will need to handle the situation manually.
--index-version <n>::
Write the resulting index out in the named on-disk format version.
- The current default version is 2.
+ Supported versions are 2, 3 and 4. The current default version is 2
+ or 3, depending on whether extra features are used, such as
+ `git add -N`.
++
+Version 4 performs a simple pathname compression that reduces index
+size by 30%-50% on large repositories, which results in faster load
+time. Version 4 is relatively young (first released in in 1.8.0 in
+October 2012). Other Git implementations such as JGit and libgit2
+may not support it yet.
-z::
Only meaningful with `--stdin` or `--index-info`; paths are
diff --git a/Documentation/git.txt b/Documentation/git.txt
index 0847cdcc68..7efaa591b8 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -43,9 +43,15 @@ unreleased) version of Git, that is available from 'master'
branch of the `git.git` repository.
Documentation for older releases are available here:
-* link:v1.8.1.4/git.html[documentation for release 1.8.1.4]
+* link:v1.8.2/git.html[documentation for release 1.8.2]
* release notes for
+ link:RelNotes/1.8.2.txt[1.8.2].
+
+* link:v1.8.1.5/git.html[documentation for release 1.8.1.5]
+
+* release notes for
+ link:RelNotes/1.8.1.5.txt[1.8.1.5],
link:RelNotes/1.8.1.4.txt[1.8.1.4],
link:RelNotes/1.8.1.3.txt[1.8.1.3],
link:RelNotes/1.8.1.2.txt[1.8.1.2],
@@ -678,12 +684,19 @@ Git so take care if using Cogito etc.
The '--namespace' command-line option also sets this value.
'GIT_CEILING_DIRECTORIES'::
- This should be a colon-separated list of absolute paths.
- If set, it is a list of directories that Git should not chdir
- up into while looking for a repository directory.
- It will not exclude the current working directory or
- a GIT_DIR set on the command line or in the environment.
- (Useful for excluding slow-loading network directories.)
+ This should be a colon-separated list of absolute paths. If
+ set, it is a list of directories that Git should not chdir up
+ into while looking for a repository directory (useful for
+ excluding slow-loading network directories). It will not
+ exclude the current working directory or a GIT_DIR set on the
+ command line or in the environment. Normally, Git has to read
+ the entries in this list and resolve any symlink that
+ might be present in order to compare them with the current
+ directory. However, if even this access is slow, you
+ can add an empty entry to the list to tell Git that the
+ subsequent entries are not symlinks and needn't be resolved;
+ e.g.,
+ 'GIT_CEILING_DIRECTORIES=/maybe/symlink::/very/slow/non/symlink'.
'GIT_DISCOVERY_ACROSS_FILESYSTEM'::
When run in a directory that does not have ".git" repository
diff --git a/Documentation/gitcli.txt b/Documentation/gitcli.txt
index dc9e617a10..9ac5088acd 100644
--- a/Documentation/gitcli.txt
+++ b/Documentation/gitcli.txt
@@ -107,13 +107,14 @@ couple of magic command line options:
---------------------------------------------
$ git describe -h
usage: git describe [options] <committish>*
+ or: git describe [options] --dirty
--contains find the tag that comes after the commit
--debug debug search strategy on stderr
- --all use any ref in .git/refs
- --tags use any tag in .git/refs/tags
- --abbrev [<n>] use <n> digits to display SHA-1s
- --candidates <n> consider <n> most recent tags (default: 10)
+ --all use any ref
+ --tags use any tag, even unannotated
+ --long always use long format
+ --abbrev[=<n>] use <n> digits to display SHA-1s
---------------------------------------------
--help-all::
diff --git a/Documentation/githooks.txt b/Documentation/githooks.txt
index 8181e4ed2a..dc6693fe48 100644
--- a/Documentation/githooks.txt
+++ b/Documentation/githooks.txt
@@ -140,9 +140,11 @@ the outcome of 'git commit'.
pre-rebase
~~~~~~~~~~
-This hook is called by 'git rebase' and can be used to prevent a branch
-from getting rebased.
-
+This hook is called by 'git rebase' and can be used to prevent a
+branch from getting rebased. The hook may be called with one or
+two parameters. The first parameter is the upstream from which
+the series was forked. The second parameter is the branch being
+rebased, and is not set when rebasing the current branch.
post-checkout
~~~~~~~~~~~~~
@@ -365,7 +367,7 @@ preceding SP is also omitted. Currently, no commands pass any
'extra-info'.
The hook always runs after the automatic note copying (see
-"notes.rewrite.<command>" in linkgit:git-config.txt) has happened, and
+"notes.rewrite.<command>" in linkgit:git-config.txt[1]) has happened, and
thus has access to these notes.
The following command-specific comments apply:
diff --git a/Documentation/revisions.txt b/Documentation/revisions.txt
index 678d1756a5..314e25da73 100644
--- a/Documentation/revisions.txt
+++ b/Documentation/revisions.txt
@@ -88,10 +88,10 @@ some output processing may assume ref names in UTF-8.
The construct '@\{-<n>\}' means the <n>th branch checked out
before the current one.
-'<refname>@\{upstream\}', e.g. 'master@\{upstream\}', '@\{u\}'::
- The suffix '@\{upstream\}' to a ref (short form '<refname>@\{u\}') refers to
- the branch the ref is set to build on top of. A missing ref defaults
- to the current branch.
+'<branchname>@\{upstream\}', e.g. 'master@\{upstream\}', '@\{u\}'::
+ The suffix '@\{upstream\}' to a branchname (short form '<branchname>@\{u\}')
+ refers to the branch that the branch specified by branchname is set to build on
+ top of. A missing branchname defaults to the current one.
'<rev>{caret}', e.g. 'HEAD{caret}, v1.5.1{caret}0'::
A suffix '{caret}' to a revision parameter means the first parent of
diff --git a/Documentation/technical/index-format.txt b/Documentation/technical/index-format.txt
index 27c716b15f..0810251f5a 100644
--- a/Documentation/technical/index-format.txt
+++ b/Documentation/technical/index-format.txt
@@ -12,7 +12,7 @@ Git index format
The signature is { 'D', 'I', 'R', 'C' } (stands for "dircache")
4-byte version number:
- The current supported versions are 2 and 3.
+ The current supported versions are 2, 3 and 4.
32-bit number of index entries.
@@ -93,8 +93,8 @@ Git index format
12-bit name length if the length is less than 0xFFF; otherwise 0xFFF
is stored in this field.
- (Version 3) A 16-bit field, only applicable if the "extended flag"
- above is 1, split into (high to low bits).
+ (Version 3 or later) A 16-bit field, only applicable if the
+ "extended flag" above is 1, split into (high to low bits).
1-bit reserved for future
diff --git a/Documentation/user-manual.txt b/Documentation/user-manual.txt
index 5f36f8115f..35a279ab24 100644
--- a/Documentation/user-manual.txt
+++ b/Documentation/user-manual.txt
@@ -2337,7 +2337,7 @@ origin)
fi
;;
*)
- echo "Usage: $0 origin|test|release" 1>&2
+ echo "usage: $0 origin|test|release" 1>&2
exit 1
;;
esac
@@ -2351,7 +2351,7 @@ pname=$0
usage()
{
- echo "Usage: $pname branch test|release" 1>&2
+ echo "usage: $pname branch test|release" 1>&2
exit 1
}
diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN
index 7952039453..6722e621d1 100755
--- a/GIT-VERSION-GEN
+++ b/GIT-VERSION-GEN
@@ -1,7 +1,7 @@
#!/bin/sh
GVF=GIT-VERSION-FILE
-DEF_VER=v1.8.2-rc1
+DEF_VER=v1.8.2.GIT
LF='
'
diff --git a/Makefile b/Makefile
index 7c75e3b108..598d6313da 100644
--- 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
diff --git a/RelNotes b/RelNotes
index bdce3136ea..80b7e388ad 120000
--- 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 4657cc233c..e2f9377891 100644
--- 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;
diff --git a/builtin/add.c b/builtin/add.c
index 0dd014eb96..ab1c9e8fb7 100644
--- a/builtin/add.c
+++ b/builtin/add.c
@@ -328,9 +328,9 @@ static void warn_pathless_add(const char *option_name, const char *short_name) {
* this is not the original behavior and can't be
* changed until users trained themselves not to type
* "git add -u" or "git add -A". For now, we warn and
- * keep the old behavior. Later, this warning can be
- * turned into a die(...), and eventually we may
- * reallow the command with a new behavior.
+ * keep the old behavior. Later, the behavior can be changed
+ * to tree-wide, keeping the warning for a while, and
+ * eventually we can drop the warning.
*/
warning(_("The behavior of 'git add %s (or %s)' with no path argument from a\n"
"subdirectory of the tree will change in Git 2.0 and should not be used anymore.\n"
diff --git a/builtin/describe.c b/builtin/describe.c
index 04c185b1fb..ca084c675e 100644
--- a/builtin/describe.c
+++ b/builtin/describe.c
@@ -402,8 +402,8 @@ int cmd_describe(int argc, const char **argv, const char *prefix)
struct option options[] = {
OPT_BOOLEAN(0, "contains", &contains, N_("find the tag that comes after the commit")),
OPT_BOOLEAN(0, "debug", &debug, N_("debug search strategy on stderr")),
- OPT_BOOLEAN(0, "all", &all, N_("use any ref in .git/refs")),
- OPT_BOOLEAN(0, "tags", &tags, N_("use any tag in .git/refs/tags")),
+ OPT_BOOLEAN(0, "all", &all, N_("use any ref")),
+ OPT_BOOLEAN(0, "tags", &tags, N_("use any tag, even unannotated")),
OPT_BOOLEAN(0, "long", &longformat, N_("always use long format")),
OPT__ABBREV(&abbrev),
OPT_SET_INT(0, "exact-match", &max_candidates,
diff --git a/compat/strtok_r.c b/compat/strtok_r.c
deleted file mode 100644
index 7b5d568a96..0000000000
--- a/compat/strtok_r.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Reentrant string tokenizer. Generic version.
- Copyright (C) 1991,1996-1999,2001,2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "../git-compat-util.h"
-
-/* Parse S into tokens separated by characters in DELIM.
- If S is NULL, the saved pointer in SAVE_PTR is used as
- the next starting point. For example:
- char s[] = "-abc-=-def";
- char *sp;
- x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def"
- x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL
- x = strtok_r(NULL, "=", &sp); // x = NULL
- // s = "abc\0-def\0"
-*/
-char *
-gitstrtok_r (char *s, const char *delim, char **save_ptr)
-{
- char *token;
-
- if (s == NULL)
- s = *save_ptr;
-
- /* Scan leading delimiters. */
- s += strspn (s, delim);
- if (*s == '\0')
- {
- *save_ptr = s;
- return NULL;
- }
-
- /* Find the end of the token. */
- token = s;
- s = strpbrk (token, delim);
- if (s == NULL)
- /* This token finishes the string. */
- *save_ptr = token + strlen (token);
- else
- {
- /* Terminate the token and make *SAVE_PTR point past it. */
- *s = '\0';
- *save_ptr = s + 1;
- }
- return token;
-}
diff --git a/config.mak.uname b/config.mak.uname
index bb8246b63e..9080054f76 100644
--- a/config.mak.uname
+++ b/config.mak.uname
@@ -321,7 +321,6 @@ ifeq ($(uname_S),Windows)
NO_UNSETENV = YesPlease
NO_STRCASESTR = YesPlease
NO_STRLCPY = YesPlease
- NO_STRTOK_R = YesPlease
NO_FNMATCH = YesPlease
NO_MEMMEM = YesPlease
# NEEDS_LIBICONV = YesPlease
@@ -478,7 +477,6 @@ ifneq (,$(findstring MINGW,$(uname_S)))
NO_UNSETENV = YesPlease
NO_STRCASESTR = YesPlease
NO_STRLCPY = YesPlease
- NO_STRTOK_R = YesPlease
NO_FNMATCH = YesPlease
NO_MEMMEM = YesPlease
NEEDS_LIBICONV = YesPlease
diff --git a/configure.ac b/configure.ac
index 1991258ae0..f3462d9c81 100644
--- a/configure.ac
+++ b/configure.ac
@@ -901,12 +901,6 @@ GIT_CHECK_FUNC(strcasestr,
[NO_STRCASESTR=YesPlease])
GIT_CONF_SUBST([NO_STRCASESTR])
#
-# Define NO_STRTOK_R if you don't have strtok_r
-GIT_CHECK_FUNC(strtok_r,
-[NO_STRTOK_R=],
-[NO_STRTOK_R=YesPlease])
-GIT_CONF_SUBST([NO_STRTOK_R])
-#
# Define NO_FNMATCH if you don't have fnmatch
GIT_CHECK_FUNC(fnmatch,
[NO_FNMATCH=],
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index b62bec0279..93eba46750 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -299,9 +299,12 @@ __git_index_file_list_filter ()
# the second argument.
__git_ls_files_helper ()
{
- # NOTE: $2 is not quoted in order to support multiple options
- cd "$1" && git ls-files --exclude-standard $2
-} 2>/dev/null
+ (
+ test -n "${CDPATH+set}" && unset CDPATH
+ # NOTE: $2 is not quoted in order to support multiple options
+ cd "$1" && git ls-files --exclude-standard $2
+ ) 2>/dev/null
+}
# Execute git diff-index, returning paths relative to the directory
@@ -309,8 +312,11 @@ __git_ls_files_helper ()
# specified in the second argument.
__git_diff_index_helper ()
{
- cd "$1" && git diff-index --name-only --relative "$2"
-} 2>/dev/null
+ (
+ test -n "${CDPATH+set}" && unset CDPATH
+ cd "$1" && git diff-index --name-only --relative "$2"
+ ) 2>/dev/null
+}
# __git_index_files accepts 1 or 2 arguments:
# 1: Options to pass to ls-files (required).
diff --git a/contrib/completion/git-completion.zsh b/contrib/completion/git-completion.zsh
index 45775021ff..cf8116d477 100644
--- a/contrib/completion/git-completion.zsh
+++ b/contrib/completion/git-completion.zsh
@@ -60,6 +60,15 @@ __gitcomp_nl ()
compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0
}
+__gitcomp_file ()
+{
+ emulate -L zsh
+
+ local IFS=$'\n'
+ compset -P '*[=:]'
+ compadd -Q -p "${2-}" -f -- ${=1} && _ret=0
+}
+
_git ()
{
local _ret=1
diff --git a/contrib/credential/gnome-keyring/git-credential-gnome-keyring.c b/contrib/credential/gnome-keyring/git-credential-gnome-keyring.c
index 41f61c5db3..f2cdefee60 100644
--- a/contrib/credential/gnome-keyring/git-credential-gnome-keyring.c
+++ b/contrib/credential/gnome-keyring/git-credential-gnome-keyring.c
@@ -401,7 +401,7 @@ static void usage(const char *name)
const char *basename = strrchr(name,'/');
basename = (basename) ? basename + 1 : name;
- fprintf(stderr, "Usage: %s <", basename);
+ fprintf(stderr, "usage: %s <", basename);
while(try_op->name) {
fprintf(stderr,"%s",(try_op++)->name);
if(try_op->name)
diff --git a/contrib/credential/osxkeychain/git-credential-osxkeychain.c b/contrib/credential/osxkeychain/git-credential-osxkeychain.c
index 6beed123ab..3940202b36 100644
--- a/contrib/credential/osxkeychain/git-credential-osxkeychain.c
+++ b/contrib/credential/osxkeychain/git-credential-osxkeychain.c
@@ -154,7 +154,7 @@ static void read_credential(void)
int main(int argc, const char **argv)
{
const char *usage =
- "Usage: git credential-osxkeychain <get|store|erase>";
+ "usage: git credential-osxkeychain <get|store|erase>";
if (!argv[1])
die(usage);
diff --git a/contrib/credential/wincred/git-credential-wincred.c b/contrib/credential/wincred/git-credential-wincred.c
index cbaec5f24b..a1d38f035b 100644
--- a/contrib/credential/wincred/git-credential-wincred.c
+++ b/contrib/credential/wincred/git-credential-wincred.c
@@ -9,6 +9,8 @@
/* common helpers */
+#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
+
static void die(const char *err, ...)
{
char msg[4096];
@@ -30,14 +32,6 @@ static void *xmalloc(size_t size)
return ret;
}
-static char *xstrdup(const char *str)
-{
- char *ret = strdup(str);
- if (!ret)
- die("Out of memory");
- return ret;
-}
-
/* MinGW doesn't have wincred.h, so we need to define stuff */
typedef struct _CREDENTIAL_ATTRIBUTEW {
@@ -67,20 +61,14 @@ typedef struct _CREDENTIALW {
#define CRED_MAX_ATTRIBUTES 64
typedef BOOL (WINAPI *CredWriteWT)(PCREDENTIALW, DWORD);
-typedef BOOL (WINAPI *CredUnPackAuthenticationBufferWT)(DWORD, PVOID, DWORD,
- LPWSTR, DWORD *, LPWSTR, DWORD *, LPWSTR, DWORD *);
typedef BOOL (WINAPI *CredEnumerateWT)(LPCWSTR, DWORD, DWORD *,
PCREDENTIALW **);
-typedef BOOL (WINAPI *CredPackAuthenticationBufferWT)(DWORD, LPWSTR, LPWSTR,
- PBYTE, DWORD *);
typedef VOID (WINAPI *CredFreeT)(PVOID);
typedef BOOL (WINAPI *CredDeleteWT)(LPCWSTR, DWORD, DWORD);
-static HMODULE advapi, credui;
+static HMODULE advapi;
static CredWriteWT CredWriteW;
-static CredUnPackAuthenticationBufferWT CredUnPackAuthenticationBufferW;
static CredEnumerateWT CredEnumerateW;
-static CredPackAuthenticationBufferWT CredPackAuthenticationBufferW;
static CredFreeT CredFree;
static CredDeleteWT CredDeleteW;
@@ -88,74 +76,84 @@ static void load_cred_funcs(void)
{
/* load DLLs */
advapi = LoadLibrary("advapi32.dll");
- credui = LoadLibrary("credui.dll");
- if (!advapi || !credui)
- die("failed to load DLLs");
+ if (!advapi)
+ die("failed to load advapi32.dll");
/* get function pointers */
CredWriteW = (CredWriteWT)GetProcAddress(advapi, "CredWriteW");
- CredUnPackAuthenticationBufferW = (CredUnPackAuthenticationBufferWT)
- GetProcAddress(credui, "CredUnPackAuthenticationBufferW");
CredEnumerateW = (CredEnumerateWT)GetProcAddress(advapi,
"CredEnumerateW");
- CredPackAuthenticationBufferW = (CredPackAuthenticationBufferWT)
- GetProcAddress(credui, "CredPackAuthenticationBufferW");
CredFree = (CredFreeT)GetProcAddress(advapi, "CredFree");
CredDeleteW = (CredDeleteWT)GetProcAddress(advapi, "CredDeleteW");
- if (!CredWriteW || !CredUnPackAuthenticationBufferW ||
- !CredEnumerateW || !CredPackAuthenticationBufferW || !CredFree ||
- !CredDeleteW)
+ if (!CredWriteW || !CredEnumerateW || !CredFree || !CredDeleteW)
die("failed to load functions");
}
-static char target_buf[1024];
-static char *protocol, *host, *path, *username;
-static WCHAR *wusername, *password, *target;
+static WCHAR *wusername, *password, *protocol, *host, *path, target[1024];
-static void write_item(const char *what, WCHAR *wbuf)
+static void write_item(const char *what, LPCWSTR wbuf, int wlen)
{
char *buf;
- int len = WideCharToMultiByte(CP_UTF8, 0, wbuf, -1, NULL, 0, NULL,
+ int len = WideCharToMultiByte(CP_UTF8, 0, wbuf, wlen, NULL, 0, NULL,
FALSE);
buf = xmalloc(len);
- if (!WideCharToMultiByte(CP_UTF8, 0, wbuf, -1, buf, len, NULL, FALSE))
+ if (!WideCharToMultiByte(CP_UTF8, 0, wbuf, wlen, buf, len, NULL, FALSE))
die("WideCharToMultiByte failed!");
printf("%s=", what);
- fwrite(buf, 1, len - 1, stdout);
+ fwrite(buf, 1, len, stdout);
putchar('\n');
free(buf);
}
-static int match_attr(const CREDENTIALW *cred, const WCHAR *keyword,
- const char *want)
+/*
+ * Match an (optional) expected string and a delimiter in the target string,
+ * consuming the matched text by updating the target pointer.
+ */
+static int match_part(LPCWSTR *ptarget, LPCWSTR want, LPCWSTR delim)
{
- int i;
- if (!want)
- return 1;
-
- for (i = 0; i < cred->AttributeCount; ++i)
- if (!wcscmp(cred->Attributes[i].Keyword, keyword))
- return !strcmp((const char *)cred->Attributes[i].Value,
- want);
-
- return 0; /* not found */
+ LPCWSTR delim_pos, start = *ptarget;
+ int len;
+
+ /* find start of delimiter (or end-of-string if delim is empty) */
+ if (*delim)
+ delim_pos = wcsstr(start, delim);
+ else
+ delim_pos = start + wcslen(start);
+
+ /*
+ * match text up to delimiter, or end of string (e.g. the '/' after
+ * host is optional if not followed by a path)
+ */
+ if (delim_pos)
+ len = delim_pos - start;
+ else
+ len = wcslen(start);
+
+ /* update ptarget if we either found a delimiter or need a match */
+ if (delim_pos || want)
+ *ptarget = delim_pos ? delim_pos + wcslen(delim) : start + len;
+
+ return !want || (!wcsncmp(want, start, len) && !want[len]);
}
static int match_cred(const CREDENTIALW *cred)
{
- return (!wusername || !wcscmp(wusername, cred->UserName)) &&
- match_attr(cred, L"git_protocol", protocol) &&
- match_attr(cred, L"git_host", host) &&
- match_attr(cred, L"git_path", path);
+ LPCWSTR target = cred->TargetName;
+ if (wusername && wcscmp(wusername, cred->UserName))
+ return 0;
+
+ return match_part(&target, L"git", L":") &&
+ match_part(&target, protocol, L"://") &&
+ match_part(&target, wusername, L"@") &&
+ match_part(&target, host, L"/") &&
+ match_part(&target, path, L"");
}
static void get_credential(void)
{
- WCHAR *user_buf, *pass_buf;
- DWORD user_buf_size = 0, pass_buf_size = 0;
- CREDENTIALW **creds, *cred = NULL;
+ CREDENTIALW **creds;
DWORD num_creds;
int i;
@@ -165,90 +163,36 @@ static void get_credential(void)
/* search for the first credential that matches username */
for (i = 0; i < num_creds; ++i)
if (match_cred(creds[i])) {
- cred = creds[i];
+ write_item("username", creds[i]->UserName,
+ wcslen(creds[i]->UserName));
+ write_item("password",
+ (LPCWSTR)creds[i]->CredentialBlob,
+ creds[i]->CredentialBlobSize / sizeof(WCHAR));
break;
}
- if (!cred)
- return;
-
- CredUnPackAuthenticationBufferW(0, cred->CredentialBlob,
- cred->CredentialBlobSize, NULL, &user_buf_size, NULL, NULL,
- NULL, &pass_buf_size);
-
- user_buf = xmalloc(user_buf_size * sizeof(WCHAR));
- pass_buf = xmalloc(pass_buf_size * sizeof(WCHAR));
-
- if (!CredUnPackAuthenticationBufferW(0, cred->CredentialBlob,
- cred->CredentialBlobSize, user_buf, &user_buf_size, NULL, NULL,
- pass_buf, &pass_buf_size))
- die("CredUnPackAuthenticationBuffer failed");
CredFree(creds);
-
- /* zero-terminate (sizes include zero-termination) */
- user_buf[user_buf_size - 1] = L'\0';
- pass_buf[pass_buf_size - 1] = L'\0';
-
- write_item("username", user_buf);
- write_item("password", pass_buf);
-
- free(user_buf);
- free(pass_buf);
-}
-
-static void write_attr(CREDENTIAL_ATTRIBUTEW *attr, const WCHAR *keyword,
- const char *value)
-{
- attr->Keyword = (LPWSTR)keyword;
- attr->Flags = 0;
- attr->ValueSize = strlen(value) + 1; /* store zero-termination */
- attr->Value = (LPBYTE)value;
}
static void store_credential(void)
{
CREDENTIALW cred;
- BYTE *auth_buf;
- DWORD auth_buf_size = 0;
- CREDENTIAL_ATTRIBUTEW attrs[CRED_MAX_ATTRIBUTES];
if (!wusername || !password)
return;
- /* query buffer size */
- CredPackAuthenticationBufferW(0, wusername, password,
- NULL, &auth_buf_size);
-
- auth_buf = xmalloc(auth_buf_size);
-
- if (!CredPackAuthenticationBufferW(0, wusername, password,
- auth_buf, &auth_buf_size))
- die("CredPackAuthenticationBuffer failed");
-
cred.Flags = 0;
cred.Type = CRED_TYPE_GENERIC;
cred.TargetName = target;
cred.Comment = L"saved by git-credential-wincred";
- cred.CredentialBlobSize = auth_buf_size;
- cred.CredentialBlob = auth_buf;
+ cred.CredentialBlobSize = (wcslen(password)) * sizeof(WCHAR);
+ cred.CredentialBlob = (LPVOID)password;
cred.Persist = CRED_PERSIST_LOCAL_MACHINE;
- cred.AttributeCount = 1;
- cred.Attributes = attrs;
+ cred.AttributeCount = 0;
+ cred.Attributes = NULL;
cred.TargetAlias = NULL;
cred.UserName = wusername;
- write_attr(attrs, L"git_protocol", protocol);
-
- if (host) {
- write_attr(attrs + cred.AttributeCount, L"git_host", host);
- cred.AttributeCount++;
- }
-
- if (path) {
- write_attr(attrs + cred.AttributeCount, L"git_path", path);
- cred.AttributeCount++;
- }
-
if (!CredWriteW(&cred, 0))
die("CredWrite failed");
}
@@ -284,10 +228,13 @@ static void read_credential(void)
while (fgets(buf, sizeof(buf), stdin)) {
char *v;
+ int len = strlen(buf);
+ /* strip trailing CR / LF */
+ while (len && strchr("\r\n", buf[len - 1]))
+ buf[--len] = 0;
- if (!strcmp(buf, "\n"))
+ if (!*buf)
break;
- buf[strlen(buf)-1] = '\0';
v = strchr(buf, '=');
if (!v)
@@ -295,13 +242,12 @@ static void read_credential(void)
*v++ = '\0';
if (!strcmp(buf, "protocol"))
- protocol = xstrdup(v);
+ protocol = utf8_to_utf16_dup(v);
else if (!strcmp(buf, "host"))
- host = xstrdup(v);
+ host = utf8_to_utf16_dup(v);
else if (!strcmp(buf, "path"))
- path = xstrdup(v);
+ path = utf8_to_utf16_dup(v);
else if (!strcmp(buf, "username")) {
- username = xstrdup(v);
wusername = utf8_to_utf16_dup(v);
} else if (!strcmp(buf, "password"))
password = utf8_to_utf16_dup(v);
@@ -313,7 +259,7 @@ static void read_credential(void)
int main(int argc, char *argv[])
{
const char *usage =
- "Usage: git credential-wincred <get|store|erase>\n";
+ "usage: git credential-wincred <get|store|erase>\n";
if (!argv[1])
die(usage);
@@ -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"))
diff --git a/contrib/examples/git-remote.perl b/contrib/examples/git-remote.perl
index b17952a785..d42df7b418 100755
--- a/contrib/examples/git-remote.perl
+++ b/contrib/examples/git-remote.perl
@@ -347,7 +347,7 @@ sub rm_remote {
}
sub add_usage {
- print STDERR "Usage: git remote add [-f] [-t track]* [-m master] <name> <url>\n";
+ print STDERR "usage: git remote add [-f] [-t track]* [-m master] <name> <url>\n";
exit(1);
}
@@ -380,7 +380,7 @@ elsif ($ARGV[0] eq 'show') {
}
}
if ($i >= @ARGV) {
- print STDERR "Usage: git remote show <remote>\n";
+ print STDERR "usage: git remote show <remote>\n";
exit(1);
}
my $status = 0;
@@ -410,7 +410,7 @@ elsif ($ARGV[0] eq 'prune') {
}
}
if ($i >= @ARGV) {
- print STDERR "Usage: git remote prune <remote>\n";
+ print STDERR "usage: git remote prune <remote>\n";
exit(1);
}
my $status = 0;
@@ -458,13 +458,13 @@ elsif ($ARGV[0] eq 'add') {
}
elsif ($ARGV[0] eq 'rm') {
if (@ARGV <= 1) {
- print STDERR "Usage: git remote rm <remote>\n";
+ print STDERR "usage: git remote rm <remote>\n";
exit(1);
}
exit(rm_remote($ARGV[1]));
}
else {
- print STDERR "Usage: git remote\n";
+ print STDERR "usage: git remote\n";
print STDERR " git remote add <name> <url>\n";
print STDERR " git remote rm <name>\n";
print STDERR " git remote show <name>\n";
diff --git a/contrib/examples/git-svnimport.perl b/contrib/examples/git-svnimport.perl
index b09ff8f12f..c414f0d9c7 100755
--- a/contrib/examples/git-svnimport.perl
+++ b/contrib/examples/git-svnimport.perl
@@ -36,7 +36,7 @@ our($opt_h,$opt_o,$opt_v,$opt_u,$opt_C,$opt_i,$opt_m,$opt_M,$opt_t,$opt_T,
sub usage() {
print STDERR <<END;
-Usage: ${\basename $0} # fetch/update GIT from SVN
+usage: ${\basename $0} # fetch/update GIT from SVN
[-o branch-for-HEAD] [-h] [-v] [-l max_rev] [-R repack_each_revs]
[-C GIT_repository] [-t tagname] [-T trunkname] [-b branchname]
[-d|-D] [-i] [-u] [-r] [-I ignorefilename] [-s start_chg]
diff --git a/contrib/fast-import/git-import.perl b/contrib/fast-import/git-import.perl
index f9fef6db28..0891b9e366 100755
--- a/contrib/fast-import/git-import.perl
+++ b/contrib/fast-import/git-import.perl
@@ -7,7 +7,7 @@
use strict;
use File::Find;
-my $USAGE = 'Usage: git-import branch import-message';
+my $USAGE = 'usage: git-import branch import-message';
my $branch = shift or die "$USAGE\n";
my $message = shift or die "$USAGE\n";
diff --git a/contrib/fast-import/git-import.sh b/contrib/fast-import/git-import.sh
index 0ca7718d05..f8d803c5e2 100755
--- a/contrib/fast-import/git-import.sh
+++ b/contrib/fast-import/git-import.sh
@@ -5,7 +5,7 @@
# but is meant to be a simple fast-import example.
if [ -z "$1" -o -z "$2" ]; then
- echo "Usage: git-import branch import-message"
+ echo "usage: git-import branch import-message"
exit 1
fi
diff --git a/contrib/fast-import/import-zips.py b/contrib/fast-import/import-zips.py
index 5cec9b0129..d12c296223 100755
--- a/contrib/fast-import/import-zips.py
+++ b/contrib/fast-import/import-zips.py
@@ -14,13 +14,13 @@ from time import mktime
from zipfile import ZipFile
if hexversion < 0x01060000:
- # The limiter is the zipfile module
- sys.stderr.write("import-zips.py: requires Python 1.6.0 or later.\n")
- sys.exit(1)
+ # The limiter is the zipfile module
+ stderr.write("import-zips.py: requires Python 1.6.0 or later.\n")
+ exit(1)
if len(argv) < 2:
- print 'Usage:', argv[0], '<zipfile>...'
- exit(1)
+ print 'usage:', argv[0], '<zipfile>...'
+ exit(1)
branch_ref = 'refs/heads/import-zips'
committer_name = 'Z Ip Creator'
@@ -28,51 +28,51 @@ committer_email = 'zip@example.com'
fast_import = popen('git fast-import --quiet', 'w')
def printlines(list):
- for str in list:
- fast_import.write(str + "\n")
+ for str in list:
+ fast_import.write(str + "\n")
for zipfile in argv[1:]:
- commit_time = 0
- next_mark = 1
- common_prefix = None
- mark = dict()
-
- zip = ZipFile(zipfile, 'r')
- for name in zip.namelist():
- if name.endswith('/'):
- continue
- info = zip.getinfo(name)
-
- if commit_time < info.date_time:
- commit_time = info.date_time
- if common_prefix == None:
- common_prefix = name[:name.rfind('/') + 1]
- else:
- while not name.startswith(common_prefix):
- last_slash = common_prefix[:-1].rfind('/') + 1
- common_prefix = common_prefix[:last_slash]
-
- mark[name] = ':' + str(next_mark)
- next_mark += 1
-
- printlines(('blob', 'mark ' + mark[name], \
- 'data ' + str(info.file_size)))
- fast_import.write(zip.read(name) + "\n")
-
- committer = committer_name + ' <' + committer_email + '> %d +0000' % \
- mktime(commit_time + (0, 0, 0))
-
- printlines(('commit ' + branch_ref, 'committer ' + committer, \
- 'data <<EOM', 'Imported from ' + zipfile + '.', 'EOM', \
- '', 'deleteall'))
-
- for name in mark.keys():
- fast_import.write('M 100644 ' + mark[name] + ' ' +
- name[len(common_prefix):] + "\n")
-
- printlines(('', 'tag ' + path.basename(zipfile), \
- 'from ' + branch_ref, 'tagger ' + committer, \
- 'data <<EOM', 'Package ' + zipfile, 'EOM', ''))
+ commit_time = 0
+ next_mark = 1
+ common_prefix = None
+ mark = dict()
+
+ zip = ZipFile(zipfile, 'r')
+ for name in zip.namelist():
+ if name.endswith('/'):
+ continue
+ info = zip.getinfo(name)
+
+ if commit_time < info.date_time:
+ commit_time = info.date_time
+ if common_prefix == None:
+ common_prefix = name[:name.rfind('/') + 1]
+ else:
+ while not name.startswith(common_prefix):
+ last_slash = common_prefix[:-1].rfind('/') + 1
+ common_prefix = common_prefix[:last_slash]
+
+ mark[name] = ':' + str(next_mark)
+ next_mark += 1
+
+ printlines(('blob', 'mark ' + mark[name], \
+ 'data ' + str(info.file_size)))
+ fast_import.write(zip.read(name) + "\n")
+
+ committer = committer_name + ' <' + committer_email + '> %d +0000' % \
+ mktime(commit_time + (0, 0, 0))
+
+ printlines(('commit ' + branch_ref, 'committer ' + committer, \
+ 'data <<EOM', 'Imported from ' + zipfile + '.', 'EOM', \
+ '', 'deleteall'))
+
+ for name in mark.keys():
+ fast_import.write('M 100644 ' + mark[name] + ' ' +
+ name[len(common_prefix):] + "\n")
+
+ printlines(('', 'tag ' + path.basename(zipfile), \
+ 'from ' + branch_ref, 'tagger ' + committer, \
+ 'data <<EOM', 'Package ' + zipfile, 'EOM', ''))
if fast_import.close():
- exit(1)
+ exit(1)
diff --git a/contrib/hooks/setgitperms.perl b/contrib/hooks/setgitperms.perl
index a577ad095f..2770a1b1d2 100644
--- a/contrib/hooks/setgitperms.perl
+++ b/contrib/hooks/setgitperms.perl
@@ -24,7 +24,7 @@ use File::Find;
use File::Basename;
my $usage =
-"Usage: setgitperms.perl [OPTION]... <--read|--write>
+"usage: setgitperms.perl [OPTION]... <--read|--write>
This program uses a file `.gitmeta` to store/restore permissions and uid/gid
info for all files/dirs tracked by git in the repository.
diff --git a/contrib/mw-to-git/t/install-wiki.sh b/contrib/mw-to-git/t/install-wiki.sh
index c6d6fa3aef..70a53f67fd 100755
--- a/contrib/mw-to-git/t/install-wiki.sh
+++ b/contrib/mw-to-git/t/install-wiki.sh
@@ -15,7 +15,7 @@ fi
. "$WIKI_TEST_DIR"/test-gitmw-lib.sh
usage () {
- echo "Usage: "
+ echo "usage: "
echo " ./install-wiki.sh <install | delete | --help>"
echo " install | -i : Install a wiki on your computer."
echo " delete | -d : Delete the wiki and all its pages and "
diff --git a/daemon.c b/daemon.c
index 4602b46a5c..df8c0ab058 100644
--- a/daemon.c
+++ b/daemon.c
@@ -9,10 +9,6 @@
#define HOST_NAME_MAX 256
#endif
-#ifndef NI_MAXSERV
-#define NI_MAXSERV 32
-#endif
-
#ifdef NO_INITGROUPS
#define initgroups(x, y) (0) /* nothing */
#endif
diff --git a/git-archimport.perl b/git-archimport.perl
index bc32f18d6d..9cb123a07d 100755
--- a/git-archimport.perl
+++ b/git-archimport.perl
@@ -75,7 +75,7 @@ our($opt_h,$opt_f,$opt_v,$opt_T,$opt_t,$opt_D,$opt_a,$opt_o);
sub usage() {
print STDERR <<END;
-Usage: git archimport # fetch/update GIT from Arch
+usage: git archimport # fetch/update GIT from Arch
[ -h ] [ -v ] [ -o ] [ -a ] [ -f ] [ -T ] [ -D depth ] [ -t tempdir ]
repository/arch-branch [ repository/arch-branch] ...
END
diff --git a/git-compat-util.h b/git-compat-util.h
index 490afb6af4..90e0372038 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -216,6 +216,17 @@ extern char *gitbasename(char *);
#include <openssl/err.h>
#endif
+/* On most systems <netdb.h> would have given us this, but
+ * not on some systems (e.g. z/OS).
+ */
+#ifndef NI_MAXHOST
+#define NI_MAXHOST 1025
+#endif
+
+#ifndef NI_MAXSERV
+#define NI_MAXSERV 32
+#endif
+
/* On most systems <limits.h> would have given us this, but
* not on some systems (e.g. GNU/Hurd).
*/
@@ -424,11 +435,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-cvsexportcommit.perl b/git-cvsexportcommit.perl
index e6bf25232c..d13f02da95 100755
--- a/git-cvsexportcommit.perl
+++ b/git-cvsexportcommit.perl
@@ -420,7 +420,7 @@ sleep(1);
sub usage {
print STDERR <<END;
-Usage: GIT_DIR=/path/to/.git git cvsexportcommit [-h] [-p] [-v] [-c] [-f] [-u] [-k] [-w cvsworkdir] [-m msgprefix] [ parent ] commit
+usage: GIT_DIR=/path/to/.git git cvsexportcommit [-h] [-p] [-v] [-c] [-f] [-u] [-k] [-w cvsworkdir] [-m msgprefix] [ parent ] commit
END
exit(1);
}
diff --git a/git-cvsimport.perl b/git-cvsimport.perl
index 344f1206d1..73d367cea8 100755
--- a/git-cvsimport.perl
+++ b/git-cvsimport.perl
@@ -38,7 +38,7 @@ sub usage(;$) {
my $msg = shift;
print(STDERR "Error: $msg\n") if $msg;
print STDERR <<END;
-Usage: git cvsimport # fetch/update GIT from CVS
+usage: git cvsimport # fetch/update GIT from CVS
[-o branch-for-HEAD] [-h] [-v] [-d CVSROOT] [-A author-conv-file]
[-p opts-for-cvsps] [-P file] [-C GIT_repository] [-z fuzz] [-i] [-k]
[-u] [-s subst] [-a] [-m] [-M regex] [-S regex] [-L commitlimit]
diff --git a/git-cvsserver.perl b/git-cvsserver.perl
index 3679074983..f1c3f49a83 100755
--- a/git-cvsserver.perl
+++ b/git-cvsserver.perl
@@ -107,7 +107,7 @@ my $work =
$log->info("--------------- STARTING -----------------");
my $usage =
- "Usage: git cvsserver [options] [pserver|server] [<directory> ...]\n".
+ "usage: git cvsserver [options] [pserver|server] [<directory> ...]\n".
" --base-path <path> : Prepend to requested CVSROOT\n".
" Can be read from GIT_CVSSERVER_BASE_PATH\n".
" --strict-paths : Don't allow recursing into subdirectories\n".
diff --git a/git-merge-one-file.sh b/git-merge-one-file.sh
index f612cb847a..3373c040d4 100755
--- a/git-merge-one-file.sh
+++ b/git-merge-one-file.sh
@@ -18,7 +18,7 @@
USAGE='<orig blob> <our blob> <their blob> <path>'
USAGE="$USAGE <orig mode> <our mode> <their mode>"
-LONG_USAGE="Usage: git merge-one-file $USAGE
+LONG_USAGE="usage: git merge-one-file $USAGE
Blob ids and modes should be empty for missing files."
diff --git a/git-relink.perl b/git-relink.perl
index f29285c411..236a3521a1 100755
--- a/git-relink.perl
+++ b/git-relink.perl
@@ -163,7 +163,7 @@ sub link_two_files($$) {
sub usage() {
- print("Usage: git relink [--safe] <dir>... <master_dir> \n");
+ print("usage: git relink [--safe] <dir>... <master_dir> \n");
print("All directories should contain a .git/objects/ subdirectory.\n");
print("Options\n");
print("\t--safe\t" .
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index 795edd2852..9cfbe7f143 100644
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -84,14 +84,14 @@ if test -n "$OPTIONS_SPEC"; then
else
dashless=$(basename "$0" | sed -e 's/-/ /')
usage() {
- die "Usage: $dashless $USAGE"
+ die "usage: $dashless $USAGE"
}
if [ -z "$LONG_USAGE" ]
then
- LONG_USAGE="Usage: $dashless $USAGE"
+ LONG_USAGE="usage: $dashless $USAGE"
else
- LONG_USAGE="Usage: $dashless $USAGE
+ LONG_USAGE="usage: $dashless $USAGE
$LONG_USAGE"
fi
diff --git a/git-svn.perl b/git-svn.perl
index b46795f593..6c7bd95032 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -382,7 +382,7 @@ sub usage {
my $fd = $exit ? \*STDERR : \*STDOUT;
print $fd <<"";
git-svn - bidirectional operations between a single Subversion tree and git
-Usage: git svn <command> [options] [arguments]\n
+usage: git svn <command> [options] [arguments]\n
print $fd "Available commands:\n" unless $cmd;
@@ -534,7 +534,7 @@ sub cmd_fetch {
}
my ($remote) = @_;
if (@_ > 1) {
- die "Usage: $0 fetch [--all] [--parent] [svn-remote]\n";
+ die "usage: $0 fetch [--all] [--parent] [svn-remote]\n";
}
$Git::SVN::no_reuse_existing = undef;
if ($_fetch_parent) {
@@ -1404,7 +1404,7 @@ sub cmd_multi_fetch {
# this command is special because it requires no metadata
sub cmd_commit_diff {
my ($ta, $tb, $url) = @_;
- my $usage = "Usage: $0 commit-diff -r<revision> ".
+ my $usage = "usage: $0 commit-diff -r<revision> ".
"<tree-ish> <tree-ish> [<URL>]";
fatal($usage) if (!defined $ta || !defined $tb);
my $svn_path = '';
diff --git a/git.c b/git.c
index b10c18b041..39ba6b1461 100644
--- 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];
diff --git a/gitweb/README b/gitweb/README
index 6da4778b73..471dcfb691 100644
--- a/gitweb/README
+++ b/gitweb/README
@@ -1,9 +1,6 @@
GIT web Interface
=================
-The one working on:
- http://git.kernel.org/
-
From the git version 1.4.0 gitweb is bundled with git.
diff --git a/perl/Git/SVN.pm b/perl/Git/SVN.pm
index 0ebc68ac7e..5273ee8867 100644
--- a/perl/Git/SVN.pm
+++ b/perl/Git/SVN.pm
@@ -1493,13 +1493,18 @@ sub lookup_svn_merge {
my @merged_commit_ranges;
# find the tip
for my $range ( @ranges ) {
+ if ($range =~ /[*]$/) {
+ warn "W: Ignoring partial merge in svn:mergeinfo "
+ ."dirprop: $source:$range\n";
+ next;
+ }
my ($bottom, $top) = split "-", $range;
$top ||= $bottom;
my $bottom_commit = $gs->find_rev_after( $bottom, 1, $top );
my $top_commit = $gs->find_rev_before( $top, 1, $bottom );
unless ($top_commit and $bottom_commit) {
- warn "W:unknown path/rev in svn:mergeinfo "
+ warn "W: unknown path/rev in svn:mergeinfo "
."dirprop: $source:$range\n";
next;
}
diff --git a/po/de.po b/po/de.po
index d309415bb8..83c30b1587 100644
--- 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)"
diff --git a/po/git.pot b/po/git.pot
index a2ab9e8263..a826dcbf9f 100644
--- a/po/git.pot
+++ b/po/git.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2013-02-19 13:32+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 ""
diff --git a/po/sv.po b/po/sv.po
index 9ac06c9700..15f1aa82a0 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,8 +7,8 @@ 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-02-19 13:32+0800\n"
-"PO-Revision-Date: 2013-02-19 10:25+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"
@@ -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
diff --git a/po/vi.po b/po/vi.po
index f1ab8621ec..7d9d05d6cb 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -6,10 +6,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: git-v1.8.2-rc0-16-g20a59\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-19 13:32+0800\n"
-"PO-Revision-Date: 2013-02-20 07:14+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
@@ -1269,7 +1269,7 @@ msgstr " (dùng \"git am --abort\" để phục hồi lại nhánh nguyên th
#: 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'."
+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."
@@ -1298,7 +1298,7 @@ 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'."
+"trong khi đang rebase nhánh “%s” trên “%s”."
#: wt-status.c:913
msgid "You are currently splitting a commit during a rebase."
@@ -1317,7 +1317,7 @@ msgstr ""
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'."
+"khi đang rebase nhánh “%s” trên “%s”."
#: wt-status.c:925
msgid "You are currently editing a commit during a rebase."
@@ -1348,7 +1348,7 @@ msgstr " (khi tất cả các xung đột đã sửa xong: chạy lệnh \"git
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'."
+"“%s”."
#: wt-status.c:962
msgid "You are currently bisecting."
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 583ed3385d..c48ae10d78 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -12,8 +12,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Git\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2013-02-19 13:32+0800\n"
-"PO-Revision-Date: 2013-02-19 14:44+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
diff --git a/read-cache.c b/read-cache.c
index 827ae55c50..670a06bc79 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -1260,7 +1260,7 @@ static int verify_hdr(struct cache_header *hdr, unsigned long size)
if (hdr->hdr_signature != htonl(CACHE_SIGNATURE))
return error("bad signature");
hdr_version = ntohl(hdr->hdr_version);
- if (hdr_version < 2 || 4 < hdr_version)
+ if (hdr_version < INDEX_FORMAT_LB || INDEX_FORMAT_UB < hdr_version)
return error("bad index version %d", hdr_version);
git_SHA1_Init(&c);
git_SHA1_Update(&c, hdr, size - 20);
diff --git a/setup.c b/setup.c
index 2e1521b09e..1dee47e085 100644
--- 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);
}
diff --git a/sha1_name.c b/sha1_name.c
index 95003c77ea..c50630a3ea 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -1137,7 +1137,8 @@ int get_sha1_blob(const char *name, unsigned char *sha1)
static void diagnose_invalid_sha1_path(const char *prefix,
const char *filename,
const unsigned char *tree_sha1,
- const char *object_name)
+ const char *object_name,
+ int object_name_len)
{
struct stat st;
unsigned char sha1[20];
@@ -1147,8 +1148,8 @@ static void diagnose_invalid_sha1_path(const char *prefix,
prefix = "";
if (!lstat(filename, &st))
- die("Path '%s' exists on disk, but not in '%s'.",
- filename, object_name);
+ die("Path '%s' exists on disk, but not in '%.*s'.",
+ filename, object_name_len, object_name);
if (errno == ENOENT || errno == ENOTDIR) {
char *fullname = xmalloc(strlen(filename)
+ strlen(prefix) + 1);
@@ -1158,16 +1159,16 @@ static void diagnose_invalid_sha1_path(const char *prefix,
if (!get_tree_entry(tree_sha1, fullname,
sha1, &mode)) {
die("Path '%s' exists, but not '%s'.\n"
- "Did you mean '%s:%s' aka '%s:./%s'?",
+ "Did you mean '%.*s:%s' aka '%.*s:./%s'?",
fullname,
filename,
- object_name,
+ object_name_len, object_name,
fullname,
- object_name,
+ object_name_len, object_name,
filename);
}
- die("Path '%s' does not exist in '%s'",
- filename, object_name);
+ die("Path '%s' does not exist in '%.*s'",
+ filename, object_name_len, object_name);
}
}
@@ -1332,13 +1333,8 @@ static int get_sha1_with_context_1(const char *name,
}
if (*cp == ':') {
unsigned char tree_sha1[20];
- char *object_name = NULL;
- if (only_to_die) {
- object_name = xmalloc(cp-name+1);
- strncpy(object_name, name, cp-name);
- object_name[cp-name] = '\0';
- }
- if (!get_sha1_1(name, cp-name, tree_sha1, GET_SHA1_TREEISH)) {
+ int len = cp - name;
+ if (!get_sha1_1(name, len, tree_sha1, GET_SHA1_TREEISH)) {
const char *filename = cp+1;
char *new_filename = NULL;
@@ -1348,8 +1344,8 @@ static int get_sha1_with_context_1(const char *name,
ret = get_tree_entry(tree_sha1, filename, sha1, &oc->mode);
if (ret && only_to_die) {
diagnose_invalid_sha1_path(prefix, filename,
- tree_sha1, object_name);
- free(object_name);
+ tree_sha1,
+ name, len);
}
hashcpy(oc->tree, tree_sha1);
strncpy(oc->path, filename,
@@ -1360,7 +1356,7 @@ static int get_sha1_with_context_1(const char *name,
return ret;
} else {
if (only_to_die)
- die("Invalid object name '%s'.", object_name);
+ die("Invalid object name '%.*s'.", len, name);
}
}
return ret;
diff --git a/t/lib-git-svn.sh b/t/lib-git-svn.sh
index 199f22c231..c5e55b190b 100644
--- a/t/lib-git-svn.sh
+++ b/t/lib-git-svn.sh
@@ -148,7 +148,7 @@ stop_httpd () {
convert_to_rev_db () {
"$PERL_PATH" -w -- - "$@" <<\EOF
use strict;
-@ARGV == 2 or die "Usage: convert_to_rev_db <input> <output>";
+@ARGV == 2 or die "usage: convert_to_rev_db <input> <output>";
open my $wr, '+>', $ARGV[1] or die "$!: couldn't open: $ARGV[1]";
open my $rd, '<', $ARGV[0] or die "$!: couldn't open: $ARGV[0]";
my $size = (stat($rd))[7];
diff --git a/t/perf/README b/t/perf/README
index b2dbad4d50..c552f561bf 100644
--- a/t/perf/README
+++ b/t/perf/README
@@ -56,7 +56,7 @@ You can set the following variables (also in your config.mak):
GIT_PERF_REPEAT_COUNT
Number of times a test should be repeated for best-of-N
- measurements. Defaults to 5.
+ measurements. Defaults to 3.
GIT_PERF_MAKE_OPTS
Options to use when automatically building a git tree for
diff --git a/t/t0003-attributes.sh b/t/t0003-attributes.sh
index 43b25137e9..0b98b6f8d0 100755
--- a/t/t0003-attributes.sh
+++ b/t/t0003-attributes.sh
@@ -198,7 +198,8 @@ test_expect_success 'root subdir attribute test' '
test_expect_success 'negative patterns' '
echo "!f test=bar" >.gitattributes &&
- test_must_fail git check-attr test -- f
+ git check-attr test -- '"'"'!f'"'"' 2>errors &&
+ test_i18ngrep "Negative patterns are ignored" errors
'
test_expect_success 'patterns starting with exclamation' '
diff --git a/t/t1504-ceiling-dirs.sh b/t/t1504-ceiling-dirs.sh
index cce87a5ab5..3d51615e42 100755
--- a/t/t1504-ceiling-dirs.sh
+++ b/t/t1504-ceiling-dirs.sh
@@ -44,6 +44,10 @@ test_prefix ceil_at_sub ""
GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub/"
test_prefix ceil_at_sub_slash ""
+if test_have_prereq SYMLINKS
+then
+ ln -s sub top
+fi
mkdir -p sub/dir || exit 1
cd sub/dir || exit 1
@@ -68,6 +72,19 @@ test_fail subdir_ceil_at_sub
GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub/"
test_fail subdir_ceil_at_sub_slash
+if test_have_prereq SYMLINKS
+then
+ GIT_CEILING_DIRECTORIES="$TRASH_ROOT/top"
+ test_fail subdir_ceil_at_top
+ GIT_CEILING_DIRECTORIES="$TRASH_ROOT/top/"
+ test_fail subdir_ceil_at_top_slash
+
+ GIT_CEILING_DIRECTORIES=":$TRASH_ROOT/top"
+ test_prefix subdir_ceil_at_top_no_resolve "sub/dir/"
+ GIT_CEILING_DIRECTORIES=":$TRASH_ROOT/top/"
+ test_prefix subdir_ceil_at_top_slash_no_resolve "sub/dir/"
+fi
+
GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub/dir"
test_prefix subdir_ceil_at_subdir "sub/dir/"
diff --git a/t/t1507-rev-parse-upstream.sh b/t/t1507-rev-parse-upstream.sh
index d6e576192f..b27a7209f7 100755
--- a/t/t1507-rev-parse-upstream.sh
+++ b/t/t1507-rev-parse-upstream.sh
@@ -54,6 +54,10 @@ test_expect_success 'my-side@{upstream} resolves to correct full name' '
test refs/remotes/origin/side = "$(full_name my-side@{u})"
'
+test_expect_success 'refs/heads/my-side@{upstream} does not resolve to my-side{upstream}' '
+ test_must_fail full_name refs/heads/my-side@{upstream}
+'
+
test_expect_success 'my-side@{u} resolves to correct commit' '
git checkout side &&
test_commit 5 &&
diff --git a/t/t1509/prepare-chroot.sh b/t/t1509/prepare-chroot.sh
index c5334a8fa4..62691172e3 100755
--- a/t/t1509/prepare-chroot.sh
+++ b/t/t1509/prepare-chroot.sh
@@ -14,7 +14,7 @@ xmkdir() {
R="$1"
-[ -n "$R" ] || die "Usage: prepare-chroot.sh <root>"
+[ -n "$R" ] || die "usage: prepare-chroot.sh <root>"
[ -x git ] || die "This script needs to be executed at git source code's top directory"
[ -x /bin/busybox ] || die "You need busybox"
diff --git a/templates/hooks--update.sample b/templates/hooks--update.sample
index 71ab04edc0..d84758373d 100755
--- a/templates/hooks--update.sample
+++ b/templates/hooks--update.sample
@@ -38,7 +38,7 @@ if [ -z "$GIT_DIR" ]; then
fi
if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
- echo "Usage: $0 <ref> <oldrev> <newrev>" >&2
+ echo "usage: $0 <ref> <oldrev> <newrev>" >&2
exit 1
fi
diff --git a/test-chmtime.c b/test-chmtime.c
index 92713d16da..02b42badd5 100644
--- a/test-chmtime.c
+++ b/test-chmtime.c
@@ -114,6 +114,6 @@ int main(int argc, const char *argv[])
return 0;
usage:
- fprintf(stderr, "Usage: %s %s\n", argv[0], usage_str);
+ fprintf(stderr, "usage: %s %s\n", argv[0], usage_str);
return -1;
}
diff --git a/test-delta.c b/test-delta.c
index af40a3c49e..4595cd6433 100644
--- a/test-delta.c
+++ b/test-delta.c
@@ -23,7 +23,7 @@ int main(int argc, char *argv[])
unsigned long from_size, data_size, out_size;
if (argc != 5 || (strcmp(argv[1], "-d") && strcmp(argv[1], "-p"))) {
- fprintf(stderr, "Usage: %s\n", usage_str);
+ fprintf(stderr, "usage: %s\n", usage_str);
return 1;
}
diff --git a/test-genrandom.c b/test-genrandom.c
index b3c28d9a1c..54824d0754 100644
--- a/test-genrandom.c
+++ b/test-genrandom.c
@@ -12,7 +12,7 @@ int main(int argc, char *argv[])
unsigned char *c;
if (argc < 2 || argc > 3) {
- fprintf(stderr, "Usage: %s <seed_string> [<size>]\n", argv[0]);
+ fprintf(stderr, "usage: %s <seed_string> [<size>]\n", argv[0]);
return 1;
}