summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore5
-rw-r--r--Documentation/CodingGuidelines34
-rw-r--r--Documentation/RelNotes/1.8.4.3.txt54
-rw-r--r--Documentation/RelNotes/1.8.4.4.txt10
-rw-r--r--Documentation/RelNotes/1.8.4.5.txt13
-rw-r--r--Documentation/RelNotes/1.8.5.1.txt9
-rw-r--r--Documentation/RelNotes/1.8.5.txt166
-rw-r--r--Documentation/RelNotes/1.9.txt133
-rw-r--r--Documentation/SubmittingPatches11
-rw-r--r--Documentation/config.txt4
-rw-r--r--Documentation/date-formats.txt4
-rw-r--r--Documentation/fetch-options.txt26
-rw-r--r--Documentation/git-blame.txt2
-rw-r--r--Documentation/git-cherry.txt143
-rw-r--r--Documentation/git-cvsimport.txt4
-rw-r--r--Documentation/git-fast-import.txt10
-rw-r--r--Documentation/git-fetch-pack.txt15
-rw-r--r--Documentation/git-fetch.txt14
-rw-r--r--Documentation/git-for-each-ref.txt14
-rw-r--r--Documentation/git-log.txt51
-rw-r--r--Documentation/git-lost-found.txt74
-rw-r--r--Documentation/git-merge-base.txt38
-rw-r--r--Documentation/git-peek-remote.txt43
-rw-r--r--Documentation/git-pull.txt4
-rw-r--r--Documentation/git-repo-config.txt23
-rw-r--r--Documentation/git-rev-parse.txt22
-rw-r--r--Documentation/git-svn.txt6
-rw-r--r--Documentation/git-tar-tree.txt82
-rw-r--r--Documentation/git.txt11
-rw-r--r--Documentation/gitcli.txt16
-rw-r--r--Documentation/gitignore.txt6
-rw-r--r--Documentation/gitweb.conf.txt14
-rw-r--r--Documentation/glossary-content.txt6
-rw-r--r--Documentation/rev-list-options.txt262
-rw-r--r--Documentation/technical/api-parse-options.txt6
-rw-r--r--Documentation/technical/api-ref-iteration.txt4
-rw-r--r--Documentation/technical/api-remote.txt20
-rw-r--r--Documentation/technical/http-protocol.txt4
-rwxr-xr-xGIT-VERSION-GEN2
-rw-r--r--Makefile22
l---------RelNotes2
-rw-r--r--builtin.h1
-rw-r--r--builtin/blame.c7
-rw-r--r--builtin/branch.c13
-rw-r--r--builtin/checkout.c12
-rw-r--r--builtin/commit.c4
-rw-r--r--builtin/config.c6
-rw-r--r--builtin/describe.c7
-rw-r--r--builtin/diff.c19
-rw-r--r--builtin/fast-export.c4
-rw-r--r--builtin/fetch.c298
-rw-r--r--builtin/for-each-ref.c94
-rw-r--r--builtin/get-tar-commit-id.c40
-rw-r--r--builtin/merge-base.c147
-rw-r--r--builtin/merge.c11
-rw-r--r--builtin/name-rev.c3
-rw-r--r--builtin/push.c7
-rw-r--r--builtin/remote.c196
-rw-r--r--builtin/rev-parse.c27
-rw-r--r--builtin/show-branch.c3
-rw-r--r--builtin/tar-tree.c102
-rw-r--r--bundle.c32
-rw-r--r--command-list.txt4
-rw-r--r--commit-slab.h39
-rw-r--r--commit.c9
-rw-r--r--commit.h1
-rw-r--r--config.c19
-rw-r--r--contrib/completion/git-completion.bash4
-rwxr-xr-xcontrib/examples/git-whatchanged.sh4
-rwxr-xr-xcontrib/gitview/gitview2
-rw-r--r--contrib/mw-to-git/Makefile9
-rwxr-xr-xcontrib/mw-to-git/git-remote-mediawiki.perl2
-rwxr-xr-xcontrib/mw-to-git/t/test-gitmw-lib.sh2
-rw-r--r--contrib/mw-to-git/t/test.config2
-rwxr-xr-xcontrib/remote-helpers/git-remote-bzr7
-rwxr-xr-xcontrib/remote-helpers/git-remote-hg9
-rwxr-xr-xcontrib/remote-helpers/test-bzr.sh5
-rwxr-xr-xcontrib/remote-helpers/test-hg.sh30
-rw-r--r--diff.c2
-rw-r--r--diff.h2
-rw-r--r--fetch-pack.c8
-rwxr-xr-xgit-am.sh4
-rwxr-xr-xgit-bisect.sh2
-rw-r--r--git-gui/Makefile2
-rwxr-xr-xgit-gui/git-gui.sh47
-rw-r--r--git-gui/lib/blame.tcl2
-rw-r--r--git-gui/lib/choose_repository.tcl12
-rw-r--r--git-gui/lib/index.tcl2
-rw-r--r--git-gui/lib/option.tcl2
-rw-r--r--git-gui/lib/spellcheck.tcl4
-rw-r--r--git-gui/macosx/Info.plist2
-rwxr-xr-xgit-instaweb.sh2
-rwxr-xr-xgit-lost-found.sh33
-rwxr-xr-xgit-p4.py2
-rwxr-xr-xgit-pull.sh2
-rwxr-xr-xgit-request-pull.sh2
-rwxr-xr-xgit-submodule.sh34
-rw-r--r--git.c3
-rwxr-xr-xgitk-git/gitk563
-rw-r--r--http.c6
-rw-r--r--http.h1
-rw-r--r--log-tree.c6
-rw-r--r--notes-utils.c2
-rw-r--r--pathspec.c13
-rw-r--r--pathspec.h7
-rw-r--r--po/TEAMS2
-rw-r--r--po/de.po2716
-rw-r--r--po/fr.po2743
-rw-r--r--po/git.pot2664
-rw-r--r--po/sv.po2716
-rw-r--r--po/vi.po2838
-rw-r--r--po/zh_CN.po2778
-rw-r--r--pretty.c2
-rw-r--r--remote-curl.c31
-rw-r--r--remote.c94
-rw-r--r--remote.h8
-rw-r--r--revision.c68
-rw-r--r--revision.h9
-rw-r--r--run-command.c13
-rw-r--r--setup.c4
-rw-r--r--sha1_file.c93
-rw-r--r--sha1_name.c3
-rw-r--r--shallow.c3
-rw-r--r--t/annotate-tests.sh2
-rw-r--r--t/lib-read-tree.sh52
-rwxr-xr-xt/t1005-read-tree-reset.sh141
-rwxr-xr-xt/t1006-cat-file.sh6
-rwxr-xr-xt/t1013-loose-object-format.sh66
-rw-r--r--t/t1013/objects/14/9cedb5c46929d18e0f118e9fa31927487af3b6bin117 -> 0 bytes
-rw-r--r--t/t1013/objects/16/56f9233d999f61ef23ef390b9c71d75399f435bin17 -> 0 bytes
-rw-r--r--t/t1013/objects/1e/72a6b2c4a577ab0338860fa9fe87f761fc9bbdbin18 -> 0 bytes
-rw-r--r--t/t1013/objects/25/7cc5642cb1a054f08cc83f2d943e56fd3ebe99bin19 -> 0 bytes
-rw-r--r--t/t1013/objects/2e/65efe2a145dda7ee51d1741299f848e5bf752ebin10 -> 0 bytes
-rw-r--r--t/t1013/objects/6b/aee0540ea990d9761a3eb9ab183003a71c3696bin181 -> 0 bytes
-rw-r--r--t/t1013/objects/70/e6a83d8dcb26fc8bc0cf702e2ddeb6adca18fdbin26 -> 0 bytes
-rw-r--r--t/t1013/objects/76/e7fa9941f4d5f97f64fea65a2cba436bc79cbb2
-rw-r--r--t/t1013/objects/78/75c6237d3fcdd0ac2f0decc7d3fa6a50b66c09bin139 -> 0 bytes
-rw-r--r--t/t1013/objects/7a/37b887a73791d12d26c0d3e39568a8fb0fa6e8bin54 -> 0 bytes
-rw-r--r--t/t1013/objects/85/df50785d62d3b05ab03d9cbf7e4a0b49449730bin13 -> 0 bytes
-rw-r--r--t/t1013/objects/8d/4e360d6c70fbd72411991c02a09c442cf7a9fabin156 -> 0 bytes
-rw-r--r--t/t1013/objects/95/b1625de3ba8b2214d1e0d0591138aea733f64fbin252 -> 0 bytes
-rw-r--r--t/t1013/objects/9a/e9e86b7bd6cb1472d9373702d8249973da0832bin11 -> 0 bytes
-rw-r--r--t/t1013/objects/bd/15045f6ce8ff75747562173640456a394412c8bin34 -> 0 bytes
-rw-r--r--t/t1013/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391bin9 -> 0 bytes
-rw-r--r--t/t1013/objects/f8/16d5255855ac160652ee5253b06cd8ee14165a1
-rwxr-xr-xt/t1303-wacky-config.sh64
-rwxr-xr-xt/t1502-rev-parse-parseopt.sh42
-rwxr-xr-xt/t4116-apply-reverse.sh4
-rwxr-xr-xt/t4200-rerere.sh2
-rwxr-xr-xt/t5000-tar-tree.sh16
-rwxr-xr-xt/t5001-archive-attr.sh10
-rwxr-xr-xt/t5510-fetch.sh36
-rw-r--r--t/t5515/fetch.br-unconfig_--tags_.._.git1
-rw-r--r--t/t5515/fetch.master_--tags_.._.git1
-rwxr-xr-xt/t5525-fetch-tagopt.sh23
-rwxr-xr-xt/t5536-fetch-conflicts.sh100
-rwxr-xr-xt/t6010-merge-base.sh28
-rwxr-xr-xt/t6018-rev-list-glob.sh54
-rwxr-xr-xt/t6040-tracking-info.sh24
-rwxr-xr-xt/t6130-pathspec-noglob.sh7
-rwxr-xr-xt/t6131-pathspec-icase.sh6
-rwxr-xr-xt/t6300-for-each-ref.sh69
-rwxr-xr-xt/t7406-submodule-update.sh26
-rwxr-xr-xt/t7407-submodule-foreach.sh9
-rwxr-xr-xt/t9114-git-svn-dcommit-merge.sh2
-rwxr-xr-xt/t9500-gitweb-standalone-no-errors.sh2
-rw-r--r--t/test-lib.sh4
-rw-r--r--transport-helper.c1
-rw-r--r--tree-diff.c4
-rw-r--r--unpack-trees.c25
-rw-r--r--upload-pack.c4
-rw-r--r--wrapper.c2
-rw-r--r--wt-status.c80
173 files changed, 11788 insertions, 9250 deletions
diff --git a/.gitignore b/.gitignore
index 66199ed..b5f9def 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@
/GIT-CFLAGS
/GIT-LDFLAGS
/GIT-PREFIX
+/GIT-PERL-DEFINES
/GIT-PYTHON-VARS
/GIT-SCRIPT-DEFINES
/GIT-USER-AGENT
@@ -75,7 +76,6 @@
/git-init-db
/git-instaweb
/git-log
-/git-lost-found
/git-ls-files
/git-ls-remote
/git-ls-tree
@@ -105,7 +105,6 @@
/git-pack-refs
/git-parse-remote
/git-patch-id
-/git-peek-remote
/git-prune
/git-prune-packed
/git-pull
@@ -131,7 +130,6 @@
/git-remote-testsvn
/git-repack
/git-replace
-/git-repo-config
/git-request-pull
/git-rerere
/git-reset
@@ -159,7 +157,6 @@
/git-svn
/git-symbolic-ref
/git-tag
-/git-tar-tree
/git-unpack-file
/git-unpack-objects
/git-update-index
diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines
index a600e35..ef67b53 100644
--- a/Documentation/CodingGuidelines
+++ b/Documentation/CodingGuidelines
@@ -260,9 +260,11 @@ Writing Documentation:
Every user-visible change should be reflected in the documentation.
The same general rule as for code applies -- imitate the existing
- conventions. A few commented examples follow to provide reference
- when writing or modifying command usage strings and synopsis sections
- in the manual pages:
+ conventions.
+
+ A few commented examples follow to provide reference when writing or
+ modifying command usage strings and synopsis sections in the manual
+ pages:
Placeholders are spelled in lowercase and enclosed in angle brackets:
<file>
@@ -312,3 +314,29 @@ Writing Documentation:
Use 'git' (all lowercase) when talking about commands i.e. something
the user would type into a shell and use 'Git' (uppercase first letter)
when talking about the version control system and its properties.
+
+ A few commented examples follow to provide reference when writing or
+ modifying paragraphs or option/command explanations that contain options
+ or commands:
+
+ Literal examples (e.g. use of command-line options, command names, and
+ configuration variables) are typeset in monospace, and if you can use
+ `backticks around word phrases`, do so.
+ `--pretty=oneline`
+ `git rev-list`
+ `remote.pushdefault`
+
+ Word phrases enclosed in `backtick characters` are rendered literally
+ and will not be further expanded. The use of `backticks` to achieve the
+ previous rule means that literal examples should not use AsciiDoc
+ escapes.
+ Correct:
+ `--pretty=oneline`
+ Incorrect:
+ `\--pretty=oneline`
+
+ If some place in the documentation needs to typeset a command usage
+ example with inline substitutions, it is fine to use +monospaced and
+ inline substituted text+ instead of `monospaced literal text`, and with
+ the former, the part that should not get substituted must be
+ quoted/escaped.
diff --git a/Documentation/RelNotes/1.8.4.3.txt b/Documentation/RelNotes/1.8.4.3.txt
new file mode 100644
index 0000000..03f3d17
--- /dev/null
+++ b/Documentation/RelNotes/1.8.4.3.txt
@@ -0,0 +1,54 @@
+Git v1.8.4.3 Release Notes
+========================
+
+Fixes since v1.8.4.2
+--------------------
+
+ * The interaction between use of Perl in our test suite and NO_PERL
+ has been clarified a bit.
+
+ * A fast-import stream expresses a pathname with funny characters by
+ quoting them in C style; remote-hg remote helper (in contrib/)
+ forgot to unquote such a path.
+
+ * One long-standing flaw in the pack transfer protocol used by "git
+ clone" was that there was no way to tell the other end which branch
+ "HEAD" points at, and the receiving end needed to guess. A new
+ capability has been defined in the pack protocol to convey this
+ information so that cloning from a repository with more than one
+ branches pointing at the same commit where the HEAD is at now
+ reliably sets the initial branch in the resulting repository.
+
+ * We did not handle cases where http transport gets redirected during
+ the authorization request (e.g. from http:// to https://).
+
+ * "git rev-list --objects ^v1.0^ v1.0" gave v1.0 tag itself in the
+ output, but "git rev-list --objects v1.0^..v1.0" did not.
+
+ * The fall-back parsing of commit objects with broken author or
+ committer lines were less robust than ideal in picking up the
+ timestamps.
+
+ * Bash prompting code to deal with an SVN remote as an upstream
+ were coded in a way not supported by older Bash versions (3.x).
+
+ * "git checkout topic", when there is not yet a local "topic" branch
+ but there is a unique remote-tracking branch for a remote "topic"
+ branch, pretended as if "git checkout -t -b topic remote/$r/topic"
+ (for that unique remote $r) was run. This hack however was not
+ implemented for "git checkout topic --".
+
+ * Coloring around octopus merges in "log --graph" output was screwy.
+
+ * We did not generate HTML version of documentation to "git subtree"
+ in contrib/.
+
+ * The synopsis section of "git unpack-objects" documentation has been
+ clarified a bit.
+
+ * An ancient How-To on serving Git repositories on an HTTP server
+ lacked a warning that it has been mostly superseded with more
+ modern way.
+
+Also contains a handful of trivial code clean-ups, documentation
+updates, updates to the test suite, etc.
diff --git a/Documentation/RelNotes/1.8.4.4.txt b/Documentation/RelNotes/1.8.4.4.txt
new file mode 100644
index 0000000..7bc4c5dc
--- /dev/null
+++ b/Documentation/RelNotes/1.8.4.4.txt
@@ -0,0 +1,10 @@
+Git v1.8.4.4 Release Notes
+========================
+
+Fixes since v1.8.4.3
+--------------------
+
+ * The fix in v1.8.4.3 to the pack transfer protocol to propagate
+ the target of symbolic refs broke "git clone/git fetch" from a
+ repository with too many symbolic refs. As a hotfix/workaround,
+ we transfer only the information on HEAD.
diff --git a/Documentation/RelNotes/1.8.4.5.txt b/Documentation/RelNotes/1.8.4.5.txt
new file mode 100644
index 0000000..215bd1a
--- /dev/null
+++ b/Documentation/RelNotes/1.8.4.5.txt
@@ -0,0 +1,13 @@
+Git v1.8.4.5 Release Notes
+==========================
+
+Fixes since v1.8.4.4
+--------------------
+
+ * Recent update to remote-hg that attempted to make it work better
+ with non ASCII pathnames fed Unicode strings to the underlying Hg
+ API, which was wrong.
+
+ * "git submodule init" copied "submodule.$name.update" settings from
+ .gitmodules to .git/config without making sure if the suggested
+ value was sensible.
diff --git a/Documentation/RelNotes/1.8.5.1.txt b/Documentation/RelNotes/1.8.5.1.txt
new file mode 100644
index 0000000..7236aaf
--- /dev/null
+++ b/Documentation/RelNotes/1.8.5.1.txt
@@ -0,0 +1,9 @@
+Git v1.8.5.1 Release Notes
+==========================
+
+Fixes since v1.8.5
+------------------
+
+ * "git submodule init" copied "submodule.$name.update" settings from
+ .gitmodules to .git/config without making sure if the suggested
+ value was sensible.
diff --git a/Documentation/RelNotes/1.8.5.txt b/Documentation/RelNotes/1.8.5.txt
index 13b4336..602df0c 100644
--- a/Documentation/RelNotes/1.8.5.txt
+++ b/Documentation/RelNotes/1.8.5.txt
@@ -8,7 +8,7 @@ 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:
+semantics, which pushes:
- only the current branch to the branch with the same name, and only
when the current branch is set to integrate with that remote
@@ -53,9 +53,12 @@ Updates since v1.8.4
Foreign interfaces, subsystems and ports.
- * "git-svn" used with SVN 1.8.0 when talking over https:// connection
+ * "git-svn" has been taught to use the serf library, which is the
+ only option SVN 1.8.0 offers us when talking the HTTP protocol.
+
+ * "git-svn" talking over an https:// connection using the serf library
dumped core due to a bug in the serf library that SVN uses. Work
- it around on our side, even though the SVN side is being fixed.
+ around it on our side, even though the SVN side is being fixed.
* On MacOS X, we detected if the filesystem needs the "pre-composed
unicode strings" workaround, but did not automatically enable it.
@@ -65,10 +68,7 @@ Foreign interfaces, subsystems and ports.
repository relative to the home directory, e.g. "clone hg::~/there".
* imap-send ported to OS X uses Apple's security framework instead of
- OpenSSL one.
-
- * Subversion 1.8.0 that was recently released breaks older subversion
- clients coming over http/https in various ways.
+ OpenSSL's.
* "git fast-import" treats an empty path given to "ls" as the root of
the tree.
@@ -79,22 +79,22 @@ UI, Workflows & Features
* xdg-open can be used as a browser backend for "git web-browse"
(hence to show "git help -w" output), when available.
- * "git grep" and "git show" pays attention to "--textconv" option
+ * "git grep" and "git show" pay attention to the "--textconv" option
when these commands are told to operate on blob objects (e.g. "git
- grep -e pattern HEAD:Makefile").
+ grep -e pattern --textconv HEAD:Makefile").
* "git replace" helper no longer allows an object to be replaced with
another object of a different type to avoid confusion (you can
- still manually craft such replacement using "git update-ref", as an
+ still manually craft such a replacement using "git update-ref", as an
escape hatch).
- * "git status" no longer prints dirty status information for
+ * "git status" no longer prints the dirty status information of
submodules for which submodule.$name.ignore is set to "all".
* "git rebase -i" honours core.abbrev when preparing the insn sheet
for editing.
- * "git status" during a cherry-pick shows what original commit is
+ * "git status" during a cherry-pick shows which original commit is
being picked.
* Instead of typing four capital letters "HEAD", you can say "@" now,
@@ -102,21 +102,21 @@ UI, Workflows & Features
* "git check-ignore" follows the same rule as "git add" and "git
status" in that the ignore/exclude mechanism does not take effect
- on paths that are already tracked. With "--no-index" option, it
+ on paths that are already tracked. With the "--no-index" option, it
can be used to diagnose which paths that should have been ignored
have been mistakenly added to the index.
* Some irrelevant "advice" messages that are shared with "git status"
output have been removed from the commit log template.
- * "update-refs" learnt a "--stdin" option to read multiple update
+ * "update-refs" learned a "--stdin" option to read multiple update
requests and perform them in an all-or-none fashion.
* Just like "make -C <directory>", "git -C <directory> ..." tells Git
to go there before doing anything else.
- * Just like "git checkout -" knows to check out and "git merge -"
- knows to merge the branch you were previously on, "git cherry-pick"
+ * Just like "git checkout -" knows to check out, and "git merge -"
+ knows to merge, the branch you were previously on, "git cherry-pick"
now understands "git cherry-pick -" to pick from the previous
branch.
@@ -126,56 +126,58 @@ UI, Workflows & Features
"git status --porcelain" instead, as its format is stable and easier
to parse.
- * Make "foo^{tag}" to peel a tag to itself, i.e. no-op., and fail if
- "foo" is not a tag. "git rev-parse --verify v1.0^{tag}" would be
- a more convenient way to say "test $(git cat-file -t v1.0) = tag".
+ * The ref syntax "foo^{tag}" (with the literal string "{tag}") peels a
+ tag ref to itself, i.e. it's a no-op., and fails if
+ "foo" is not a tag. "git rev-parse --verify v1.0^{tag}" is
+ a more convenient way than "test $(git cat-file -t v1.0) = tag" to
+ check if v1.0 is a tag.
* "git branch -v -v" (and "git status") did not distinguish among a
- branch that does not build on any other branch, a branch that is in
- sync with the branch it builds on, and a branch that is configured
- to build on some other branch that no longer exists.
+ branch that is not based on any other branch, a branch that is in
+ sync with its upstream branch, and a branch that is configured with an
+ upstream branch that no longer exists.
- * Earlier we started rejecting an attempt to add 0{40} object name to
+ * Earlier we started rejecting any attempt to add the 0{40} object name to
the index and to tree objects, but it sometimes is necessary to
- allow so to be able to use tools like filter-branch to correct such
- broken tree objects. "filter-branch" can again be used to to do
- so.
+ allow this to be able to use tools like filter-branch to correct such
+ broken tree objects. "filter-branch" can again be used to do this.
* "git config" did not provide a way to set or access numbers larger
than a native "int" on the platform; it now provides 64-bit signed
integers on all platforms.
* "git pull --rebase" always chose to do the bog-standard flattening
- rebase. You can tell it to run "rebase --preserve-merges" by
+ rebase. You can tell it to run "rebase --preserve-merges" with
+ "git pull --rebase=preserve" or by
setting "pull.rebase" configuration to "preserve".
* "git push --no-thin" actually disables the "thin pack transfer"
optimization.
- * Magic pathspecs like ":(icase)makefile" that matches both Makefile
- and makefile and ":(glob)foo/**/bar" that matches "bar" in "foo"
- and any subdirectory of "foo" can be used in more places.
+ * Magic pathspecs like ":(icase)makefile" (matches both Makefile
+ and makefile) and ":(glob)foo/**/bar" (matches "bar" in "foo"
+ and any subdirectory of "foo") can be used in more places.
- * The "http.*" variables can now be specified per URL that the
- configuration applies. For example,
+ * The "http.*" variables can now be specified for individual URLs.
+ For example,
[http]
sslVerify = true
[http "https://weak.example.com/"]
sslVerify = false
- would flip http.sslVerify off only when talking to that specified
+ would flip http.sslVerify off only when talking to that specific
site.
- * "git mv A B" when moving a submodule A has been taught to
- relocate its working tree and to adjust the paths in the
+ * "git mv A B" when moving a submodule has been taught to
+ relocate the submodule's working tree and to adjust the paths in the
.gitmodules file.
* "git blame" can now take more than one -L option to discover the
- origin of multiple blocks of the lines.
+ origin of multiple blocks of lines.
* The http transport clients can optionally ask to save cookies
- with http.savecookies configuration variable.
+ with the http.savecookies configuration variable.
* "git push" learned a more fine grained control over a blunt
"--force" when requesting a non-fast-forward update with the
@@ -197,7 +199,7 @@ UI, Workflows & Features
* "git whatchanged" may still be used by old timers, but mention of
it in documents meant for new users will only waste readers' time
- wonderig what the difference is between it and "git log". Make it
+ wondering what the difference is between it and "git log". Make it
less prominent in the general part of the documentation and explain
that it is merely a "git log" with different default behaviour in
its own document.
@@ -219,23 +221,23 @@ Performance, Internal Implementation, etc.
should apply the same "no subprocess or pipe" optimization as we
apply to user-supplied GIT_PAGER=cat.
- * Many commands use --dashed-option as a operation mode selector
- (e.g. "git tag --delete") that the user can use at most one
- (e.g. "git tag --delete --verify" is a nonsense) and you cannot
- negate (e.g. "git tag --no-delete" is a nonsense). parse-options
+ * Many commands use a --dashed-option as an operation mode selector
+ (e.g. "git tag --delete") that excludes other operation modes
+ (e.g. "git tag --delete --verify" is nonsense) and that cannot be
+ negated (e.g. "git tag --no-delete" is nonsense). The parse-options
API learned a new OPT_CMDMODE macro to make it easier to implement
such a set of options.
- * OPT_BOOLEAN() in parse-options API was misdesigned to be "counting
+ * OPT_BOOLEAN() in the parse-options API was misdesigned to be "counting
up" but many subcommands expect it to behave as "on/off". Update
them to use OPT_BOOL() which is a proper boolean.
- * "git gc" exits early without doing a double-work when it detects
+ * "git gc" exits early without doing any work when it detects
that another instance of itself is already running.
* Under memory pressure and/or file descriptor pressure, we used to
- close pack windows that are not used and also closed filehandle to
- an open but unused packfiles. These are now controlled separately
+ close pack windows that are not used and also closed filehandles to
+ open but unused packfiles. These are now controlled separately
to better cope with the load.
Also contains various documentation updates and code clean-ups.
@@ -245,32 +247,32 @@ Fixes since v1.8.4
------------------
Unless otherwise noted, all the fixes since v1.8.4 in the maintenance
-track are contained in this release (see release notes to them for
+track are contained in this release (see the maintenance releases' notes for
details).
* An ancient How-To on serving Git repositories on an HTTP server
- lacked a warning that it has been mostly superseded with more
+ lacked a warning that it has been mostly superseded with a more
modern way.
(merge 6d52bc3 sc/doc-howto-dumb-http later to maint).
- * The interaction between use of Perl in our test suite and NO_PERL
+ * The interaction between the use of Perl in our test suite and NO_PERL
has been clarified a bit.
(merge f8fc0ee jn/test-prereq-perl-doc later to maint).
- * The synopsis section of "git unpack-objects" documentation has been
+ * The synopsis section of the "git unpack-objects" documentation has been
clarified a bit.
(merge 61e2e22 vd/doc-unpack-objects later to maint).
- * We did not generate HTML version of documentation to "git subtree"
+ * We did not generate the HTML version of the documentation to "git subtree"
in contrib/.
(merge 95c62fb jk/subtree-install-fix later to maint).
* A fast-import stream expresses a pathname with funny characters by
- quoting them in C style; remote-hg remote helper forgot to unquote
+ quoting them in C style; the remote-hg remote helper forgot to unquote
such a path.
(merge 1136265 ap/remote-hg-unquote-cquote later to maint).
- * "git reset -p HEAD" has a codepath to special case it to behave
+ * "git reset -p HEAD" has a codepath to special-case it to behave
differently from resetting to contents of other commits, but a
recent change broke it.
@@ -289,38 +291,38 @@ details).
"HEAD" points at, and the receiving end needed to guess. A new
capability has been defined in the pack protocol to convey this
information so that cloning from a repository with more than one
- branches pointing at the same commit where the HEAD is at now
+ branch pointing at the same commit where the HEAD is at now
reliably sets the initial branch in the resulting repository.
(merge 360a326 jc/upload-pack-send-symref later to maint).
- * We did not handle cases where http transport gets redirected during
+ * We did not handle cases where the http transport gets redirected during
the authorization request (e.g. from http:// to https://).
(merge 70900ed jk/http-auth-redirects later to maint).
* Bash prompting code to deal with an SVN remote as an upstream
- were coded in a way not supported by older Bash versions (3.x).
+ was coded in a way unsupported by older Bash versions (3.x).
(merge 52ec889 sg/prompt-svn-remote-fix later to maint).
* The fall-back parsing of commit objects with broken author or
- committer lines were less robust than ideal in picking up the
+ committer lines was less robust than ideal in picking up the
timestamps.
(merge 03818a4 jk/split-broken-ident later to maint).
- * "git rev-list --objects ^v1.0^ v1.0" gave v1.0 tag itself in the
+ * "git rev-list --objects ^v1.0^ v1.0" gave the v1.0 tag itself in the
output, but "git rev-list --objects v1.0^..v1.0" did not.
(merge 895c5ba jc/revision-range-unpeel later to maint).
- * "git clone" gave some progress messages to the standard output, not
- to the standard error, and did not allow suppressing them with the
+ * "git clone" wrote some progress messages to standard output, not
+ to standard error, and did not suppress them with the
--no-progress option.
(merge 643f918 jk/clone-progress-to-stderr later to maint).
- * "format-patch --from=<whom>" forgot to omit unnecessary in-body
+ * "format-patch --from=<whom>" forgot to omit an unnecessary in-body
from line, i.e. when <whom> is the same as the real author.
(merge 662cc30 jk/format-patch-from later to maint).
* "git shortlog" used to choke and die when there is a malformed
- commit (e.g. missing authors); it now simply ignore such a commit
+ commit (e.g. missing authors); it now simply ignores such a commit
and keeps going.
(merge cd4f09e jk/shortlog-tolerate-broken-commit later to maint).
@@ -334,16 +336,16 @@ details).
small empty messages to keep the connection alive.
(merge 115dedd jk/upload-pack-keepalive later to maint).
- * "git rebase" had a portability regression in v1.8.4 to trigger a
+ * "git rebase" had a portability regression in v1.8.4 that triggered a
bug in some BSD shell implementations.
(merge 99855dd mm/rebase-continue-freebsd-WB later to maint).
* "git branch --track" had a minor regression in v1.8.3.2 and later
that made it impossible to base your local work on anything but a
- local branch of the upstream repository you are tracking from.
+ local branch of the upstream repository you are tracking.
(merge b0f49ff jh/checkout-auto-tracking later to maint).
- * When the webserver responds with "405 Method Not Allowed", "git
+ * When the web server responds with "405 Method Not Allowed", "git
http-backend" should tell the client what methods are allowed with
the "Allow" header.
(merge 9247be0 bc/http-backend-allow-405 later to maint).
@@ -357,22 +359,22 @@ details).
executable files.
(merge 1b48d56 jc/cvsserver-perm-bit-fix later to maint).
- * When send-email comes up with an error message to die with upon
+ * When send-email obtains an error message to die with upon
failure to start an SSL session, it tried to read the error string
from a wrong place.
(merge 6cb0c88 bc/send-email-ssl-die-message-fix later to maint).
- * The implementation of "add -i" has a crippling code to work around
+ * The implementation of "add -i" has some crippling code to work around an
ActiveState Perl limitation but it by mistake also triggered on Git
for Windows where MSYS perl is used.
(merge df17e77 js/add-i-mingw later to maint).
- * We made sure that we notice the user-supplied GIT_DIR is actually a
+ * We made sure that we notice when the user-supplied GIT_DIR is actually a
gitfile, but did not do the same when the default ".git" is a
gitfile.
(merge 487a2b7 nd/git-dir-pointing-at-gitfile later to maint).
- * When an object is not found after checking the packfiles and then
+ * When an object is not found after checking the packfiles and the
loose object directory, read_sha1_file() re-checks the packfiles to
prevent racing with a concurrent repacker; teach the same logic to
has_sha1_file().
@@ -390,22 +392,22 @@ details).
made it unnecessarily inefficient.
(merge 680be04 jc/ls-files-killed-optim later to maint).
- * The commit object names in the insn sheet that was prepared at the
- beginning of "rebase -i" session can become ambiguous as the
+ * The shortened commit object names in the insn sheet that is prepared at the
+ beginning of a "rebase -i" session can become ambiguous as the
rebasing progresses and the repository gains more commits. Make
sure the internal record is kept with full 40-hex object names.
(merge 75c6976 es/rebase-i-no-abbrev later to maint).
* "git rebase --preserve-merges" internally used the merge machinery
- and as a side effect, left merge summary message in the log, but
- when rebasing, there should not be a need for merge summary.
+ and as a side effect left the merge summary message in the log, but
+ when rebasing there is no need for the merge summary.
(merge a9f739c rt/rebase-p-no-merge-summary later to maint).
- * A call to xread() was used without a loop around to cope with short
- read in the codepath to stream new contents to a pack.
+ * A call to xread() was used without a loop around it to cope with short
+ reads in the codepath to stream new contents to a pack.
(merge e92527c js/xread-in-full later to maint).
- * "git rebase -i" forgot that the comment character can be
+ * "git rebase -i" forgot that the comment character is
configurable while reading its insn sheet.
(merge 7bca7af es/rebase-i-respect-core-commentchar later to maint).
@@ -416,8 +418,8 @@ details).
* We used to send a large request to read(2)/write(2) as a single
system call, which was bad from the latency point of view when
the operation needs to be killed, and also triggered an error on
- broken 64-bit systems that refuse to take more than 2GB read or
- write in one go.
+ broken 64-bit systems that refuse to read or write more than 2GB
+ in one go.
(merge a487916 sp/clip-read-write-to-8mb later to maint).
* "git fetch" that auto-followed tags incorrectly reused the
@@ -431,17 +433,17 @@ details).
had a similar problem.
(merge 838f9a1 tr/log-full-diff-keep-true-parents later to maint).
- * Setting submodule.*.path configuration variable to true (without
+ * Setting a submodule.*.path configuration variable to true (without
giving "= value") caused Git to segfault.
(merge 4b05440 jl/some-submodule-config-are-not-boolean later to maint).
* "git rebase -i" (there could be others, as the root cause is pretty
- generic) fed a random, data dependeant string to 'echo' and
- expects it to come out literally, corrupting its error message.
+ generic) fed a random, data dependent string to 'echo' and
+ expected it to come out literally, corrupting its error message.
(merge 89b0230 mm/no-shell-escape-in-die-message later to maint).
* Some people still use rather old versions of bash, which cannot
- grok some constructs like 'printf -v varname' the prompt and
+ grok some constructs like 'printf -v varname' which the prompt and
completion code started to use recently.
(merge a44aa69 bc/completion-for-bash-3.0 later to maint).
diff --git a/Documentation/RelNotes/1.9.txt b/Documentation/RelNotes/1.9.txt
new file mode 100644
index 0000000..9debcc4
--- /dev/null
+++ b/Documentation/RelNotes/1.9.txt
@@ -0,0 +1,133 @@
+Git v1.9 Release Notes
+======================
+
+Backward compatibility notes
+----------------------------
+
+"git submodule foreach $cmd $args" used to treat "$cmd $args" the same
+way "ssh" did, concatenating them into a single string and letting the
+shell unquote. Careless users who forget to sufficiently quote $args
+gets their argument split at $IFS whitespaces by the shell, and got
+unexpected results due to this. Starting from this release, the
+command line is passed directly to the shell, if it has an argument.
+
+Read-only support for experimental loose-object format, in which users
+could optionally choose to write in their loose objects for a short
+while between v1.4.3 to v1.5.3 era, has been dropped.
+
+
+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, which pushes:
+
+ - only the current branch to the branch with the same name, and only
+ when the current branch is set to integrate with that remote
+ branch, if you are pushing to the same remote as you fetch from; or
+
+ - only the current branch to the branch with the same name, if you
+ are pushing to a remote that is not where you usually fetch from.
+
+Use the 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 the variable 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") is run inside a subdirectory and
+does not specify which paths to add on the command line, it
+will operate on the entire tree in Git 2.0 for consistency
+with "git commit -a" and other commands. There will be no
+mechanism to make plain "git add -u" behave like "git add -u .".
+Current users of "git add -u" (without a pathspec) should start
+training their fingers to explicitly say "git add -u ."
+before Git 2.0 comes. A warning is issued when these commands are
+run without a pathspec and when you have local changes outside the
+current directory, because the behaviour in Git 2.0 will be different
+from today's version in such a situation.
+
+In Git 2.0, "git add <path>" will behave as "git add -A <path>", so
+that "git add dir/" will notice paths you removed from the directory
+and record the removal. Versions before Git 2.0, including this
+release, will keep ignoring removals, but the users who rely on this
+behaviour are encouraged to start using "git add --ignore-removal <path>"
+now before 2.0 is released.
+
+The default prefix for "git svn" will change in Git 2.0. For a long
+time, "git svn" created its remote-tracking branches directly under
+refs/remotes, but it will place them under refs/remotes/origin/ unless
+it is told otherwise with its --prefix option.
+
+
+Updates since v1.8.5
+--------------------
+
+Foreign interfaces, subsystems and ports.
+
+ * The HTTP transport, when talking GSS-Negotinate, uses "100
+ Continue" response to avoid having to rewind and resend a large
+ payload, which may not be always doable.
+
+ * Various bugfixes to remote-bzr and remote-hg (in contrib/).
+
+
+UI, Workflows & Features
+
+ * "git for-each-ref --format=..." learned a few formatting directives;
+ e.g. "%(color:red)%(HEAD)%(color:reset) %(refname:short) %(subject)".
+
+ * The command string given to "git submodule foreach" is passed
+ directly to the shell, without being eval'ed. This is a backward
+ incompatible change that may break existing users.
+
+ * "git log" and friends learned the "--exclude=<glob>" option, to
+ allow people to say "list history of all branches except those that
+ match this pattern" with "git log --exclude='*/*' --branches".
+
+ * "git rev-parse --parseopt" learned a new "--stuck-long" option to
+ help scripts parse options with an optional parameter.
+
+
+Performance, Internal Implementation, etc.
+
+ * The new PERLLIB_EXTRA makefile variable can be used to specify
+ additional directories Perl modules (e.g. the ones necessary to run
+ git-svn) are installed on the platform when building.
+
+ * "git merge-base" learned the "--fork-point" mode, that implements
+ the same logic used in "git pull --rebase" to find a suitable fork
+ point out of the reflog entries for the remote-tracking branch the
+ work has been based on.
+
+
+
+Also contains various documentation updates and code clean-ups.
+
+
+Fixes since v1.8.5
+------------------
+
+Unless otherwise noted, all the fixes since v1.8.5 in the maintenance
+track are contained in this release (see the maintenance releases' notes
+for details).
+
+ * "git diff -- ':(icase)makefile'" was unnecessarily rejected at the
+ command line parser.
+ (merge 887c6c1 nd/magic-pathspec later to maint).
+
+ * "git cat-file --batch-check=ok" did not check the existence of
+ the named object.
+ (merge 4ef8d1d sb/sha1-loose-object-info-check-existence later to maint).
+
+ * "git am --abort" sometimes complained about not being able to write
+ a tree with an 0{40} object in it.
+ (merge 77b43ca jk/two-way-merge-corner-case-fix later to maint).
+
+ * Two processes creating loose objects at the same time could have
+ failed unnecessarily when the name of their new objects started
+ with the same byte value, due to a race condition.
+ (merge b2476a6 jh/loose-object-dirs-creation-race later to maint).
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches
index 7055576..e6d46ed 100644
--- a/Documentation/SubmittingPatches
+++ b/Documentation/SubmittingPatches
@@ -139,8 +139,15 @@ People on the Git mailing list need to be able to read and
comment on the changes you are submitting. It is important for
a developer to be able to "quote" your changes, using standard
e-mail tools, so that they may comment on specific portions of
-your code. For this reason, all patches should be submitted
-"inline". If your log message (including your name on the
+your code. For this reason, each patch should be submitted
+"inline" in a separate message.
+
+Multiple related patches should be grouped into their own e-mail
+thread to help readers find all parts of the series. To that end,
+send them as replies to either an additional "cover letter" message
+(see below), the first patch, or the respective preceding patch.
+
+If your log message (including your name on the
Signed-off-by line) is not writable in ASCII, make sure that
you send off a message in the correct encoding.
diff --git a/Documentation/config.txt b/Documentation/config.txt
index ab26963..a405806 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -2087,8 +2087,8 @@ remote.<name>.vcs::
remote.<name>.prune::
When set to true, fetching from this remote by default will also
- remove any remote-tracking branches which no longer exist on the
- remote (as if the `--prune` option was give on the command line).
+ remove any remote-tracking references that no longer exist on the
+ remote (as if the `--prune` option was given on the command line).
Overrides `fetch.prune` settings, if any.
remotes.<group>::
diff --git a/Documentation/date-formats.txt b/Documentation/date-formats.txt
index c000f08..ccd1fc8 100644
--- a/Documentation/date-formats.txt
+++ b/Documentation/date-formats.txt
@@ -8,9 +8,9 @@ endif::git-commit[]
support the following date formats:
Git internal format::
- It is `<unix timestamp> <timezone offset>`, where `<unix
+ It is `<unix timestamp> <time zone offset>`, where `<unix
timestamp>` is the number of seconds since the UNIX epoch.
- `<timezone offset>` is a positive or negative offset from UTC.
+ `<time zone offset>` is a positive or negative offset from UTC.
For example CET (which is 2 hours ahead UTC) is `+0200`.
RFC 2822::
diff --git a/Documentation/fetch-options.txt b/Documentation/fetch-options.txt
index ba1fe49..f0ef7d0 100644
--- a/Documentation/fetch-options.txt
+++ b/Documentation/fetch-options.txt
@@ -41,17 +41,20 @@ ifndef::git-pull[]
-p::
--prune::
- After fetching, remove any remote-tracking branches which
- no longer exist on the remote.
+ After fetching, remove any remote-tracking references that no
+ longer exist on the remote. Tags are not subject to pruning
+ if they are fetched only because of the default tag
+ auto-following or due to a --tags option. However, if tags
+ are fetched due to an explicit refspec (either on the command
+ line or in the remote configuration, for example if the remote
+ was cloned with the --mirror option), then they are also
+ subject to pruning.
endif::git-pull[]
-ifdef::git-pull[]
---no-tags::
-endif::git-pull[]
ifndef::git-pull[]
-n::
---no-tags::
endif::git-pull[]
+--no-tags::
By default, tags that point at objects that are downloaded
from the remote repository are fetched and stored locally.
This option disables this automatic tag following. The default
@@ -61,11 +64,12 @@ endif::git-pull[]
ifndef::git-pull[]
-t::
--tags::
- This is a short-hand for giving `refs/tags/*:refs/tags/*`
- refspec from the command line, to ask all tags to be fetched
- and stored locally. Because this acts as an explicit
- refspec, the default refspecs (configured with the
- remote.$name.fetch variable) are overridden and not used.
+ Fetch all tags from the remote (i.e., fetch remote tags
+ `refs/tags/*` into local tags with the same name), in addition
+ to whatever else would otherwise be fetched. Using this
+ option alone does not subject tags to pruning, even if --prune
+ is used (though tags may be pruned anyway if they are also the
+ destination of an explicit refspec; see '--prune').
--recurse-submodules[=yes|on-demand|no]::
This option controls if and under what conditions new commits of
diff --git a/Documentation/git-blame.txt b/Documentation/git-blame.txt
index f2c85cc..8e70a61 100644
--- a/Documentation/git-blame.txt
+++ b/Documentation/git-blame.txt
@@ -103,7 +103,7 @@ This header line is followed by the following information
at least once for each commit:
- the author name ("author"), email ("author-mail"), time
- ("author-time"), and timezone ("author-tz"); similarly
+ ("author-time"), and time zone ("author-tz"); similarly
for committer.
- the filename in the commit that the line is attributed to.
- the first line of the commit log message ("summary").
diff --git a/Documentation/git-cherry.txt b/Documentation/git-cherry.txt
index 2d0daae..0ea921a 100644
--- a/Documentation/git-cherry.txt
+++ b/Documentation/git-cherry.txt
@@ -3,7 +3,7 @@ git-cherry(1)
NAME
----
-git-cherry - Find commits not merged upstream
+git-cherry - Find commits yet to be applied to upstream
SYNOPSIS
--------
@@ -12,46 +12,26 @@ SYNOPSIS
DESCRIPTION
-----------
-The changeset (or "diff") of each commit between the fork-point and <head>
-is compared against each commit between the fork-point and <upstream>.
-The diffs are compared after removing any whitespace and line numbers.
+Determine whether there are commits in `<head>..<upstream>` that are
+equivalent to those in the range `<limit>..<head>`.
-Every commit that doesn't exist in the <upstream> branch
-has its id (sha1) reported, prefixed by a symbol. The ones that have
-equivalent change already
-in the <upstream> branch are prefixed with a minus (-) sign, and those
-that only exist in the <head> branch are prefixed with a plus (+) symbol:
-
- __*__*__*__*__> <upstream>
- /
- fork-point
- \__+__+__-__+__+__-__+__> <head>
-
-
-If a <limit> has been given then the commits along the <head> branch up
-to and including <limit> are not reported:
-
- __*__*__*__*__> <upstream>
- /
- fork-point
- \__*__*__<limit>__-__+__> <head>
-
-
-Because 'git cherry' compares the changeset rather than the commit id
-(sha1), you can use 'git cherry' to find out if a commit you made locally
-has been applied <upstream> under a different commit id. For example,
-this will happen if you're feeding patches <upstream> via email rather
-than pushing or pulling commits directly.
+The equivalence test is based on the diff, after removing whitespace
+and line numbers. git-cherry therefore detects when commits have been
+"copied" by means of linkgit:git-cherry-pick[1], linkgit:git-am[1] or
+linkgit:git-rebase[1].
+Outputs the SHA1 of every commit in `<limit>..<head>`, prefixed with
+`-` for commits that have an equivalent in <upstream>, and `+` for
+commits that do not.
OPTIONS
-------
-v::
- Verbose.
+ Show the commit subjects next to the SHA1s.
<upstream>::
- Upstream branch to compare against.
- Defaults to the first tracked remote branch, if available.
+ Upstream branch to search for equivalent commits.
+ Defaults to the upstream branch of HEAD.
<head>::
Working branch; defaults to HEAD.
@@ -59,6 +39,103 @@ OPTIONS
<limit>::
Do not report commits up to (and including) limit.
+EXAMPLES
+--------
+
+Patch workflows
+~~~~~~~~~~~~~~~
+
+git-cherry is frequently used in patch-based workflows (see
+linkgit:gitworkflows[7]) to determine if a series of patches has been
+applied by the upstream maintainer. In such a workflow you might
+create and send a topic branch like this:
+
+------------
+$ git checkout -b topic origin/master
+# work and create some commits
+$ git format-patch origin/master
+$ git send-email ... 00*
+------------
+
+Later, you can see whether your changes have been applied by saying
+(still on `topic`):
+
+------------
+$ git fetch # update your notion of origin/master
+$ git cherry -v
+------------
+
+Concrete example
+~~~~~~~~~~~~~~~~
+
+In a situation where topic consisted of three commits, and the
+maintainer applied two of them, the situation might look like:
+
+------------
+$ git log --graph --oneline --decorate --boundary origin/master...topic
+* 7654321 (origin/master) upstream tip commit
+[... snip some other commits ...]
+* cccc111 cherry-pick of C
+* aaaa111 cherry-pick of A
+[... snip a lot more that has happened ...]
+| * cccc000 (topic) commit C
+| * bbbb000 commit B
+| * aaaa000 commit A
+|/
+o 1234567 branch point
+------------
+
+In such cases, git-cherry shows a concise summary of what has yet to
+be applied:
+
+------------
+$ git cherry origin/master topic
+- cccc000... commit C
++ bbbb000... commit B
+- aaaa000... commit A
+------------
+
+Here, we see that the commits A and C (marked with `-`) can be
+dropped from your `topic` branch when you rebase it on top of
+`origin/master`, while the commit B (marked with `+`) still needs to
+be kept so that it will be sent to be applied to `origin/master`.
+
+
+Using a limit
+~~~~~~~~~~~~~
+
+The optional <limit> is useful in cases where your topic is based on
+other work that is not in upstream. Expanding on the previous
+example, this might look like:
+
+------------
+$ git log --graph --oneline --decorate --boundary origin/master...topic
+* 7654321 (origin/master) upstream tip commit
+[... snip some other commits ...]
+* cccc111 cherry-pick of C
+* aaaa111 cherry-pick of A
+[... snip a lot more that has happened ...]
+| * cccc000 (topic) commit C
+| * bbbb000 commit B
+| * aaaa000 commit A
+| * 0000fff (base) unpublished stuff F
+[... snip ...]
+| * 0000aaa unpublished stuff A
+|/
+o 1234567 merge-base between upstream and topic
+------------
+
+By specifying `base` as the limit, you can avoid listing commits
+between `base` and `topic`:
+
+------------
+$ git cherry origin/master topic base
+- cccc000... commit C
++ bbbb000... commit B
+- aaaa000... commit A
+------------
+
+
SEE ALSO
--------
linkgit:git-patch-id[1]
diff --git a/Documentation/git-cvsimport.txt b/Documentation/git-cvsimport.txt
index d1bcda2..2df9953 100644
--- a/Documentation/git-cvsimport.txt
+++ b/Documentation/git-cvsimport.txt
@@ -144,7 +144,7 @@ This option can be used several times to provide several detection regexes.
CVS by default uses the Unix username when writing its
commit logs. Using this option and an author-conv-file
maps the name recorded in CVS to author name, e-mail and
- optional timezone:
+ optional time zone:
+
---------
exon=Andreas Ericsson <ae@op5.se>
@@ -154,7 +154,7 @@ This option can be used several times to provide several detection regexes.
+
'git cvsimport' will make it appear as those authors had
their GIT_AUTHOR_NAME and GIT_AUTHOR_EMAIL set properly
-all along. If a timezone is specified, GIT_AUTHOR_DATE will
+all along. If a time zone is specified, GIT_AUTHOR_DATE will
have the corresponding offset applied.
+
For convenience, this data is saved to `$GIT_DIR/cvs-authors`
diff --git a/Documentation/git-fast-import.txt b/Documentation/git-fast-import.txt
index 73f9806..fd22a9a 100644
--- a/Documentation/git-fast-import.txt
+++ b/Documentation/git-fast-import.txt
@@ -251,7 +251,7 @@ advisement to help formatting routines display the timestamp.
If the local offset is not available in the source material, use
``+0000'', or the most common local offset. For example many
organizations have a CVS repository which has only ever been accessed
-by users who are located in the same location and timezone. In this
+by users who are located in the same location and time zone. In this
case a reasonable offset from UTC could be assumed.
+
Unlike the `rfc2822` format, this format is very strict. Any
@@ -271,7 +271,7 @@ the malformed string. There are also some types of malformed
strings which Git will parse wrong, and yet consider valid.
Seriously malformed strings will be rejected.
+
-Unlike the `raw` format above, the timezone/UTC offset information
+Unlike the `raw` format above, the time zone/UTC offset information
contained in an RFC 2822 date string is used to adjust the date
value to UTC prior to storage. Therefore it is important that
this information be as accurate as possible.
@@ -287,13 +287,13 @@ format, or its format is easily convertible to it, as there is no
ambiguity in parsing.
`now`::
- Always use the current time and timezone. The literal
+ Always use the current time and time zone. The literal
`now` must always be supplied for `<when>`.
+
-This is a toy format. The current time and timezone of this system
+This is a toy format. The current time and time zone of this system
is always copied into the identity string at the time it is being
created by fast-import. There is no way to specify a different time or
-timezone.
+time zone.
+
This particular format is supplied as it's short to implement and
may be useful to a process that wants to create a new commit
diff --git a/Documentation/git-fetch-pack.txt b/Documentation/git-fetch-pack.txt
index 444b805..93b5067 100644
--- a/Documentation/git-fetch-pack.txt
+++ b/Documentation/git-fetch-pack.txt
@@ -12,7 +12,7 @@ SYNOPSIS
'git fetch-pack' [--all] [--quiet|-q] [--keep|-k] [--thin] [--include-tag]
[--upload-pack=<git-upload-pack>]
[--depth=<n>] [--no-progress]
- [-v] [<host>:]<directory> [<refs>...]
+ [-v] <repository> [<refs>...]
DESCRIPTION
-----------
@@ -97,19 +97,18 @@ be in a separate packet, and the list must end with a flush packet.
-v::
Run verbosely.
-<host>::
- A remote host that houses the repository. When this
- part is specified, 'git-upload-pack' is invoked via
- ssh.
-
-<directory>::
- The repository to sync from.
+<repository>::
+ The URL to the remote repository.
<refs>...::
The remote heads to update from. This is relative to
$GIT_DIR (e.g. "HEAD", "refs/heads/master"). When
unspecified, update from all heads the remote side has.
+SEE ALSO
+--------
+linkgit:git-fetch[1]
+
GIT
---
Part of the linkgit:git[1] suite
diff --git a/Documentation/git-fetch.txt b/Documentation/git-fetch.txt
index e08a028..1065713 100644
--- a/Documentation/git-fetch.txt
+++ b/Documentation/git-fetch.txt
@@ -24,13 +24,13 @@ The ref names and their object names of fetched refs are stored
in `.git/FETCH_HEAD`. This information is left for a later merge
operation done by 'git merge'.
-When <refspec> stores the fetched result in remote-tracking branches,
-the tags that point at these branches are automatically
-followed. This is done by first fetching from the remote using
-the given <refspec>s, and if the repository has objects that are
-pointed by remote tags that it does not yet have, then fetch
-those missing tags. If the other end has tags that point at
-branches you are not interested in, you will not get them.
+By default, tags are auto-followed. This means that when fetching
+from a remote, any tags on the remote that point to objects that exist
+in the local repository are fetched. The effect is to fetch tags that
+point at branches that you are interested in. This default behavior
+can be changed by using the --tags or --no-tags options, by
+configuring remote.<name>.tagopt, or by using a refspec that fetches
+tags explicitly.
'git fetch' can fetch from either a single named repository,
or from several repositories at once if <group> is given and
diff --git a/Documentation/git-for-each-ref.txt b/Documentation/git-for-each-ref.txt
index f2e08d1..94f5c46 100644
--- a/Documentation/git-for-each-ref.txt
+++ b/Documentation/git-for-each-ref.txt
@@ -91,7 +91,19 @@ objectname::
upstream::
The name of a local ref which can be considered ``upstream''
from the displayed ref. Respects `:short` in the same way as
- `refname` above.
+ `refname` above. Additionally respects `:track` to show
+ "[ahead N, behind M]" and `:trackshort` to show the terse
+ version: ">" (ahead), "<" (behind), "<>" (ahead and behind),
+ or "=" (in sync). Has no effect if the ref does not have
+ tracking information associated with it.
+
+HEAD::
+ '*' if HEAD matches current ref (the checked out branch), ' '
+ otherwise.
+
+color::
+ Change output color. Followed by `:<colorname>`, where names
+ are described in `color.branch.*`.
In addition to the above, for commit and tag objects, the header
field names (`tree`, `parent`, `object`, `type`, and `tag`) can
diff --git a/Documentation/git-log.txt b/Documentation/git-log.txt
index 34097ef..1f7bc67 100644
--- a/Documentation/git-log.txt
+++ b/Documentation/git-log.txt
@@ -15,9 +15,9 @@ DESCRIPTION
-----------
Shows the commit logs.
-The command takes options applicable to the 'git rev-list'
+The command takes options applicable to the `git rev-list`
command to control what is shown and how, and options applicable to
-the 'git diff-*' commands to control how the changes
+the `git diff-*` commands to control how the changes
each commit introduces are shown.
@@ -42,29 +42,27 @@ OPTIONS
--use-mailmap::
Use mailmap file to map author and committer names and email
- to canonical real names and email addresses. See
+ addresses to canonical real names and email addresses. See
linkgit:git-shortlog[1].
--full-diff::
- Without this flag, "git log -p <path>..." shows commits that
+ Without this flag, `git log -p <path>...` shows commits that
touch the specified paths, and diffs about the same specified
paths. With this, the full diff is shown for commits that touch
the specified paths; this means that "<path>..." limits only
commits, and doesn't limit diff for those commits.
+
Note that this affects all diff-based output types, e.g. those
-produced by --stat etc.
+produced by `--stat`, etc.
--log-size::
- Before the log message print out its size in bytes. Intended
- mainly for porcelain tools consumption. If Git is unable to
- produce a valid value size is set to zero.
- Note that only message is considered, if also a diff is shown
- its size is not included.
+ Include a line ``log size <number>'' in the output for each commit,
+ where <number> is the length of that commit's message in bytes.
+ Intended to speed up tools that read log messages from `git log`
+ output by allowing them to allocate space in advance.
-L <start>,<end>:<file>::
-L :<regex>:<file>::
-
Trace the evolution of the line range given by "<start>,<end>"
(or the funcname regex <regex>) within the <file>. You may
not give any pathspec limiters. This is currently limited to
@@ -80,16 +78,16 @@ include::line-range-format.txt[]
whole history leading to the current commit). `origin..HEAD`
specifies all the commits reachable from the current commit
(i.e. `HEAD`), but not from `origin`. For a complete list of
- ways to spell <revision range>, see the "Specifying Ranges"
+ ways to spell <revision range>, see the 'Specifying Ranges'
section of linkgit:gitrevisions[7].
[\--] <path>...::
Show only commits that are enough to explain how the files
- that match the specified paths came to be. See "History
- Simplification" below for details and other simplification
+ that match the specified paths came to be. See 'History
+ Simplification' below for details and other simplification
modes.
+
-Paths may need to be prefixed with "\-- " to separate them from
+Paths may need to be prefixed with ``\-- '' to separate them from
options or the revision range, when confusion arises.
include::rev-list-options.txt[]
@@ -113,12 +111,12 @@ EXAMPLES
`git log v2.6.12.. include/scsi drivers/scsi`::
Show all commits since version 'v2.6.12' that changed any file
- in the include/scsi or drivers/scsi subdirectories
+ in the `include/scsi` or `drivers/scsi` subdirectories
`git log --since="2 weeks ago" -- gitk`::
Show the changes during the last two weeks to the file 'gitk'.
- The "--" is necessary to avoid confusion with the *branch* named
+ The ``--'' is necessary to avoid confusion with the *branch* named
'gitk'
`git log --name-status release..test`::
@@ -129,7 +127,7 @@ EXAMPLES
`git log --follow builtin/rev-list.c`::
- Shows the commits that changed builtin/rev-list.c, including
+ Shows the commits that changed `builtin/rev-list.c`, including
those commits that occurred before the file was given its
present name.
@@ -147,17 +145,18 @@ EXAMPLES
`git log -p -m --first-parent`::
Shows the history including change diffs, but only from the
- "main branch" perspective, skipping commits that come from merged
+ ``main branch'' perspective, skipping commits that come from merged
branches, and showing full diffs of changes introduced by the merges.
This makes sense only when following a strict policy of merging all
topic branches when staying on a single integration branch.
`git log -L '/int main/',/^}/:main.c`::
- Shows how the function `main()` in the file 'main.c' evolved
+ Shows how the function `main()` in the file `main.c` evolved
over time.
`git log -3`::
+
Limits the number of commits to show to 3.
DISCUSSION
@@ -172,12 +171,12 @@ See linkgit:git-config[1] for core variables and linkgit:git-diff[1]
for settings related to diff generation.
format.pretty::
- Default for the `--format` option. (See "PRETTY FORMATS" above.)
- Defaults to "medium".
+ Default for the `--format` option. (See 'Pretty Formats' above.)
+ Defaults to `medium`.
i18n.logOutputEncoding::
- Encoding to use when displaying logs. (See "Discussion", above.)
- Defaults to the value of `i18n.commitEncoding` if set, UTF-8
+ Encoding to use when displaying logs. (See 'Discussion' above.)
+ Defaults to the value of `i18n.commitEncoding` if set, and UTF-8
otherwise.
log.date::
@@ -186,7 +185,7 @@ log.date::
dates like `Sat May 8 19:35:34 2010 -0500`.
log.showroot::
- If `false`, 'git log' and related commands will not treat the
+ If `false`, `git log` and related commands will not treat the
initial commit as a big creation event. Any root commits in
`git log -p` output would be shown without a diff attached.
The default is `true`.
@@ -197,7 +196,7 @@ mailmap.*::
notes.displayRef::
Which refs, in addition to the default set by `core.notesRef`
or 'GIT_NOTES_REF', to read notes from when showing commit
- messages with the 'log' family of commands. See
+ messages with the `log` family of commands. See
linkgit:git-notes[1].
+
May be an unabbreviated ref name or a glob and may be specified
diff --git a/Documentation/git-lost-found.txt b/Documentation/git-lost-found.txt
deleted file mode 100644
index d549328..0000000
--- a/Documentation/git-lost-found.txt
+++ /dev/null
@@ -1,74 +0,0 @@
-git-lost-found(1)
-=================
-
-NAME
-----
-git-lost-found - Recover lost refs that luckily have not yet been pruned
-
-SYNOPSIS
---------
-[verse]
-'git lost-found'
-
-DESCRIPTION
------------
-
-*NOTE*: this command is deprecated. Use linkgit:git-fsck[1] with
-the option '--lost-found' instead.
-
-Finds dangling commits and tags from the object database, and
-creates refs to them in the .git/lost-found/ directory. Commits and
-tags that dereference to commits are stored in .git/lost-found/commit,
-and other objects are stored in .git/lost-found/other.
-
-
-OUTPUT
-------
-Prints to standard output the object names and one-line descriptions
-of any commits or tags found.
-
-EXAMPLE
--------
-
-Suppose you run 'git tag -f' and mistype the tag to overwrite.
-The ref to your tag is overwritten, but until you run 'git
-prune', the tag itself is still there.
-
-------------
-$ git lost-found
-[1ef2b196d909eed523d4f3c9bf54b78cdd6843c6] GIT 0.99.9c
-...
-------------
-
-Also you can use gitk to browse how any tags found relate to each
-other.
-
-------------
-$ gitk $(cd .git/lost-found/commit && echo ??*)
-------------
-
-After making sure you know which the object is the tag you are looking
-for, you can reconnect it to your regular `refs` hierarchy by using
-the `update-ref` command.
-
-------------
-$ git cat-file -t 1ef2b196
-tag
-$ git cat-file tag 1ef2b196
-object fa41bbce8e38c67a218415de6cfa510c7e50032a
-type commit
-tag v0.99.9c
-tagger Junio C Hamano <junkio@cox.net> 1131059594 -0800
-
-GIT 0.99.9c
-
-This contains the following changes from the "master" branch, since
-...
-$ git update-ref refs/tags/not-lost-anymore 1ef2b196
-$ git rev-parse not-lost-anymore
-1ef2b196d909eed523d4f3c9bf54b78cdd6843c6
-------------
-
-GIT
----
-Part of the linkgit:git[1] suite
diff --git a/Documentation/git-merge-base.txt b/Documentation/git-merge-base.txt
index 87842e3..808426f 100644
--- a/Documentation/git-merge-base.txt
+++ b/Documentation/git-merge-base.txt
@@ -13,6 +13,7 @@ SYNOPSIS
'git merge-base' [-a|--all] --octopus <commit>...
'git merge-base' --is-ancestor <commit> <commit>
'git merge-base' --independent <commit>...
+'git merge-base' --fork-point <ref> [<commit>]
DESCRIPTION
-----------
@@ -24,8 +25,8 @@ that does not have any better common ancestor is a 'best common
ancestor', i.e. a 'merge base'. Note that there can be more than one
merge base for a pair of commits.
-OPERATION MODE
---------------
+OPERATION MODES
+---------------
As the most common special case, specifying only two commits on the
command line means computing the merge base between the given two commits.
@@ -56,6 +57,14 @@ from linkgit:git-show-branch[1] when used with the `--merge-base` option.
and exit with status 0 if true, or with status 1 if not.
Errors are signaled by a non-zero status that is not 1.
+--fork-point::
+ Find the point at which a branch (or any history that leads
+ to <commit>) forked from another branch (or any reference)
+ <ref>. This does not just look for the common ancestor of
+ the two commits, but also takes into account the reflog of
+ <ref> to see if the history leading to <commit> forked from
+ an earlier incarnation of the branch <ref> (see discussion
+ on this mode below).
OPTIONS
-------
@@ -137,6 +146,31 @@ In modern git, you can say this in a more direct way:
instead.
+Discussion on fork-point mode
+-----------------------------
+
+After working on the `topic` branch created with `git checkout -b
+topic origin/master`, the history of remote-tracking branch
+`origin/master` may have been rewound and rebuilt, leading to a
+history of this shape:
+
+ o---B1
+ /
+ ---o---o---B2--o---o---o---B (origin/master)
+ \
+ B3
+ \
+ Derived (topic)
+
+where `origin/master` used to point at commits B3, B2, B1 and now it
+points at B, and your `topic` branch was started on top of it back
+when `origin/master` was at B3. This mode uses the reflog of
+`origin/master` to find B3 as the fork point, so that the `topic`
+can be rebased on top of the updated `origin/master` by:
+
+ $ fork_point=$(git merge-base --fork-point origin/master topic)
+ $ git rebase --onto origin/master $fork_point topic
+
See also
--------
diff --git a/Documentation/git-peek-remote.txt b/Documentation/git-peek-remote.txt
deleted file mode 100644
index 87ea3fb..0000000
--- a/Documentation/git-peek-remote.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-git-peek-remote(1)
-==================
-
-NAME
-----
-git-peek-remote - List the references in a remote repository
-
-
-SYNOPSIS
---------
-[verse]
-'git peek-remote' [--upload-pack=<git-upload-pack>] [<host>:]<directory>
-
-DESCRIPTION
------------
-This command is deprecated; use 'git ls-remote' instead.
-
-OPTIONS
--------
---upload-pack=<git-upload-pack>::
- Use this to specify the path to 'git-upload-pack' on the
- remote side, if it is not found on your $PATH. Some
- installations of sshd ignores the user's environment
- setup scripts for login shells (e.g. .bash_profile) and
- your privately installed git may not be found on the system
- default $PATH. Another workaround suggested is to set
- up your $PATH in ".bashrc", but this flag is for people
- who do not want to pay the overhead for non-interactive
- shells, but prefer having a lean .bashrc file (they set most of
- the things up in .bash_profile).
-
-<host>::
- A remote host that houses the repository. When this
- part is specified, 'git-upload-pack' is invoked via
- ssh.
-
-<directory>::
- The repository to sync from.
-
-
-GIT
----
-Part of the linkgit:git[1] suite
diff --git a/Documentation/git-pull.txt b/Documentation/git-pull.txt
index beea10b..6083aab 100644
--- a/Documentation/git-pull.txt
+++ b/Documentation/git-pull.txt
@@ -42,6 +42,8 @@ Assume the following history exists and the current branch is
A---B---C master on origin
/
D---E---F---G master
+ ^
+ origin/master in your repository
------------
Then "`git pull`" will fetch and replay the changes from the remote
@@ -51,7 +53,7 @@ result in a new commit along with the names of the two parent commits
and a log message from the user describing the changes.
------------
- A---B---C remotes/origin/master
+ A---B---C origin/master
/ \
D---E---F---G---H master
------------
diff --git a/Documentation/git-repo-config.txt b/Documentation/git-repo-config.txt
deleted file mode 100644
index 9ec115b..0000000
--- a/Documentation/git-repo-config.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-git-repo-config(1)
-==================
-
-NAME
-----
-git-repo-config - Get and set repository or global options
-
-
-SYNOPSIS
---------
-[verse]
-'git repo-config' ...
-
-
-DESCRIPTION
------------
-
-This is a synonym for linkgit:git-config[1]. Please refer to the
-documentation of that command.
-
-GIT
----
-Part of the linkgit:git[1] suite
diff --git a/Documentation/git-rev-parse.txt b/Documentation/git-rev-parse.txt
index d068a65..0d2cdcd 100644
--- a/Documentation/git-rev-parse.txt
+++ b/Documentation/git-rev-parse.txt
@@ -50,6 +50,10 @@ Options for --parseopt
the first non-option argument. This can be used to parse sub-commands
that take options themselves.
+--stuck-long::
+ Only meaningful in `--parseopt` mode. Output the options in their
+ long form if available, and with their arguments stuck.
+
Options for Filtering
~~~~~~~~~~~~~~~~~~~~~
@@ -173,6 +177,20 @@ shown. If the pattern does not contain a globbing character (`?`,
character (`?`, `*`, or `[`), it is turned into a prefix
match by appending `/*`.
+--exclude=<glob-pattern>::
+ Do not include refs matching '<glob-pattern>' that the next `--all`,
+ `--branches`, `--tags`, `--remotes`, or `--glob` would otherwise
+ consider. Repetitions of this option accumulate exclusion patterns
+ up to the next `--all`, `--branches`, `--tags`, `--remotes`, or
+ `--glob` option (other options or arguments do not clear
+ accumlated patterns).
++
+The patterns given should not begin with `refs/heads`, `refs/tags`, or
+`refs/remotes` when applied to `--branches`, `--tags`, or `--remotes`,
+respectively, and they must begin with `refs/` when applied to `--glob`
+or `--all`. If a trailing '/{asterisk}' is intended, it must be given
+explicitly.
+
--disambiguate=<prefix>::
Show every object whose name begins with the given prefix.
The <prefix> must be at least 4 hexadecimal digits long to
@@ -285,7 +303,9 @@ Each line of options has this format:
`<flags>` are of `*`, `=`, `?` or `!`.
* Use `=` if the option takes an argument.
- * Use `?` to mean that the option is optional (though its use is discouraged).
+ * Use `?` to mean that the option takes an optional argument. You
+ probably want to use the `--stuck-long` mode to be able to
+ unambiguously parse the optional argument.
* Use `*` to mean that this option should not be listed in the usage
generated for the `-h` argument. It's shown for `--help-all` as
diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
index dcad890..30c5ee2 100644
--- a/Documentation/git-svn.txt
+++ b/Documentation/git-svn.txt
@@ -124,15 +124,15 @@ This automatically updates the rev_map if needed (see
'$GIT_DIR/svn/\*\*/.rev_map.*' in the FILES section below for details).
--localtime;;
- Store Git commit times in the local timezone instead of UTC. This
+ Store Git commit times in the local time zone instead of UTC. This
makes 'git log' (even without --date=local) show the same times
- that `svn log` would in the local timezone.
+ that `svn log` would in the local time zone.
+
This doesn't interfere with interoperating with the Subversion
repository you cloned from, but if you wish for your local Git
repository to be able to interoperate with someone else's local Git
repository, either don't use this option or you should both use it in
-the same local timezone.
+the same local time zone.
--parent;;
Fetch only from the SVN parent of the current HEAD.
diff --git a/Documentation/git-tar-tree.txt b/Documentation/git-tar-tree.txt
deleted file mode 100644
index f7362dc..0000000
--- a/Documentation/git-tar-tree.txt
+++ /dev/null
@@ -1,82 +0,0 @@
-git-tar-tree(1)
-===============
-
-NAME
-----
-git-tar-tree - Create a tar archive of the files in the named tree object
-
-
-SYNOPSIS
---------
-[verse]
-'git tar-tree' [--remote=<repo>] <tree-ish> [ <base> ]
-
-DESCRIPTION
------------
-THIS COMMAND IS DEPRECATED. Use 'git archive' with `--format=tar`
-option instead (and move the <base> argument to `--prefix=base/`).
-
-Creates a tar archive containing the tree structure for the named tree.
-When <base> is specified it is added as a leading path to the files in the
-generated tar archive.
-
-'git tar-tree' behaves differently when given a tree ID versus when given
-a commit ID or tag ID. In the first case the current time is used as
-modification time of each file in the archive. In the latter case the
-commit time as recorded in the referenced commit object is used instead.
-Additionally the commit ID is stored in a global extended pax header.
-It can be extracted using 'git get-tar-commit-id'.
-
-OPTIONS
--------
-
-<tree-ish>::
- The tree or commit to produce tar archive for. If it is
- the object name of a commit object.
-
-<base>::
- Leading path to the files in the resulting tar archive.
-
---remote=<repo>::
- Instead of making a tar archive from local repository,
- retrieve a tar archive from a remote repository.
-
-CONFIGURATION
--------------
-
-tar.umask::
- This variable can be used to restrict the permission bits of
- tar archive entries. The default is 0002, which turns off the
- world write bit. The special value "user" indicates that the
- archiving user's umask will be used instead. See umask(2) for
- details.
-
-EXAMPLES
---------
-`git tar-tree HEAD junk | (cd /var/tmp/ && tar xf -)`::
-
- Create a tar archive that contains the contents of the
- latest commit on the current branch, and extracts it in
- `/var/tmp/junk` directory.
-
-`git tar-tree v1.4.0 git-1.4.0 | gzip >git-1.4.0.tar.gz`::
-
- Create a tarball for v1.4.0 release.
-
-`git tar-tree v1.4.0^{tree} git-1.4.0 | gzip >git-1.4.0.tar.gz`::
-
- Create a tarball for v1.4.0 release, but without a
- global extended pax header.
-
-`git tar-tree --remote=example.com:git.git v1.4.0 >git-1.4.0.tar`::
-
- Get a tarball v1.4.0 from example.com.
-
-`git tar-tree HEAD:Documentation/ git-docs > git-1.4.0-docs.tar`::
-
- Put everything in the current head's Documentation/ directory
- into 'git-1.4.0-docs.tar', with the prefix 'git-docs/'.
-
-GIT
----
-Part of the linkgit:git[1] suite
diff --git a/Documentation/git.txt b/Documentation/git.txt
index 824a179..4448ce2 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -43,9 +43,18 @@ 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.4.2/git.html[documentation for release 1.8.4.2]
+* link:v1.8.5.1/git.html[documentation for release 1.8.5.1]
* release notes for
+ link:RelNotes/1.8.5.1.txt[1.8.5.1],
+ link:RelNotes/1.8.5.txt[1.8.5].
+
+* link:v1.8.4.5/git.html[documentation for release 1.8.4.5]
+
+* release notes for
+ link:RelNotes/1.8.4.5.txt[1.8.4.5],
+ link:RelNotes/1.8.4.4.txt[1.8.4.4],
+ link:RelNotes/1.8.4.3.txt[1.8.4.3],
link:RelNotes/1.8.4.2.txt[1.8.4.2],
link:RelNotes/1.8.4.1.txt[1.8.4.1],
link:RelNotes/1.8.4.txt[1.8.4].
diff --git a/Documentation/gitcli.txt b/Documentation/gitcli.txt
index 3146413..3f33ca5 100644
--- a/Documentation/gitcli.txt
+++ b/Documentation/gitcli.txt
@@ -72,23 +72,23 @@ scripting Git:
* splitting short options to separate words (prefer `git foo -a -b`
to `git foo -ab`, the latter may not even work).
- * when a command line option takes an argument, use the 'sticked' form. In
+ * when a command line option takes an argument, use the 'stuck' form. In
other words, write `git foo -oArg` instead of `git foo -o Arg` for short
options, and `git foo --long-opt=Arg` instead of `git foo --long-opt Arg`
for long options. An option that takes optional option-argument must be
- written in the 'sticked' form.
+ written in the 'stuck' form.
* when you give a revision parameter to a command, make sure the parameter is
not ambiguous with a name of a file in the work tree. E.g. do not write
`git log -1 HEAD` but write `git log -1 HEAD --`; the former will not work
if you happen to have a file called `HEAD` in the work tree.
- * many commands allow a long option "--option" to be abbreviated
+ * many commands allow a long option `--option` to be abbreviated
only to their unique prefix (e.g. if there is no other option
- whose name begins with "opt", you may be able to spell "--opt" to
- invoke the "--option" flag), but you should fully spell them out
+ whose name begins with `opt`, you may be able to spell `--opt` to
+ invoke the `--option` flag), but you should fully spell them out
when writing your scripts; later versions of Git may introduce a
- new option whose name shares the same prefix, e.g. "--optimize",
+ new option whose name shares the same prefix, e.g. `--optimize`,
to make a short prefix that used to be unique no longer unique.
@@ -149,7 +149,7 @@ prefix of a long option as if it is fully spelled out, but use this
with a caution. For example, `git commit --amen` behaves as if you
typed `git commit --amend`, but that is true only until a later version
of Git introduces another option that shares the same prefix,
-e.g `git commit --amenity" option.
+e.g. `git commit --amenity` option.
Separating argument from the option
@@ -165,7 +165,7 @@ $ git foo -o Arg
----------------------------
However, this is *NOT* allowed for switches with an optional value, where the
-'sticked' form must be used:
+'stuck' form must be used:
----------------------------
$ git describe --abbrev HEAD # correct
$ git describe --abbrev=10 HEAD # correct
diff --git a/Documentation/gitignore.txt b/Documentation/gitignore.txt
index 54e334e..f971960 100644
--- a/Documentation/gitignore.txt
+++ b/Documentation/gitignore.txt
@@ -113,12 +113,12 @@ full pathname may have special meaning:
- A leading "`**`" followed by a slash means match in all
directories. For example, "`**/foo`" matches file or directory
- "`foo`" anywhere, the same as pattern "`foo`". "**/foo/bar"
+ "`foo`" anywhere, the same as pattern "`foo`". "`**/foo/bar`"
matches file or directory "`bar`" anywhere that is directly
under directory "`foo`".
- - A trailing "/**" matches everything inside. For example,
- "abc/**" matches all files inside directory "abc", relative
+ - A trailing "`/**`" matches everything inside. For example,
+ "`abc/**`" matches all files inside directory "`abc`", relative
to the location of the `.gitignore` file, with infinite depth.
- A slash followed by two consecutive asterisks then a slash
diff --git a/Documentation/gitweb.conf.txt b/Documentation/gitweb.conf.txt
index 305db63..e2113d9 100644
--- a/Documentation/gitweb.conf.txt
+++ b/Documentation/gitweb.conf.txt
@@ -822,18 +822,18 @@ timed::
Project specific override is not supported.
javascript-timezone::
- Enable and configure the ability to change a common timezone for dates
+ Enable and configure the ability to change a common time zone for dates
in gitweb output via JavaScript. Dates in gitweb output include
authordate and committerdate in "commit", "commitdiff" and "log"
views, and taggerdate in "tag" view. Enabled by default.
+
-The value is a list of three values: a default timezone (for if the client
-hasn't selected some other timezone and saved it in a cookie), a name of cookie
-where to store selected timezone, and a CSS class used to mark up
+The value is a list of three values: a default time zone (for if the client
+hasn't selected some other time zone and saved it in a cookie), a name of cookie
+where to store selected time zone, and a CSS class used to mark up
dates for manipulation. If you want to turn this feature off, set "default"
to empty list: `[]`.
+
-Typical gitweb config files will only change starting (default) timezone,
+Typical gitweb config files will only change starting (default) time zone,
and leave other elements at their default values:
+
---------------------------------------------------------------------------
@@ -843,9 +843,9 @@ $feature{'javascript-timezone'}{'default'}[0] = "utc";
The example configuration presented here is guaranteed to be backwards
and forward compatible.
+
-Timezone values can be "local" (for local timezone that browser uses), "utc"
+Time zone values can be "local" (for local time zone that browser uses), "utc"
(what gitweb uses when JavaScript or this feature is disabled), or numerical
-timezones in the form of "+/-HHMM", such as "+0200".
+time zones in the form of "+/-HHMM", such as "+0200".
+
Project specific override is not supported.
diff --git a/Documentation/glossary-content.txt b/Documentation/glossary-content.txt
index e470661..aa1c888 100644
--- a/Documentation/glossary-content.txt
+++ b/Documentation/glossary-content.txt
@@ -362,12 +362,12 @@ full pathname may have special meaning:
- A leading "`**`" followed by a slash means match in all
directories. For example, "`**/foo`" matches file or directory
- "`foo`" anywhere, the same as pattern "`foo`". "**/foo/bar"
+ "`foo`" anywhere, the same as pattern "`foo`". "`**/foo/bar`"
matches file or directory "`bar`" anywhere that is directly
under directory "`foo`".
- - A trailing "/**" matches everything inside. For example,
- "abc/**" matches all files inside directory "abc", relative
+ - A trailing "`/**`" matches everything inside. For example,
+ "`abc/**`" matches all files inside directory "abc", relative
to the location of the `.gitignore` file, with infinite depth.
- A slash followed by two consecutive asterisks then a slash
diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt
index 5bdfb42..03533af 100644
--- a/Documentation/rev-list-options.txt
+++ b/Documentation/rev-list-options.txt
@@ -18,33 +18,27 @@ ordering and formatting options, such as `--reverse`.
-<number>::
-n <number>::
--max-count=<number>::
-
Limit the number of commits to output.
--skip=<number>::
-
Skip 'number' commits before starting to show the commit output.
--since=<date>::
--after=<date>::
-
Show commits more recent than a specific date.
--until=<date>::
--before=<date>::
-
Show commits older than a specific date.
ifdef::git-rev-list[]
--max-age=<timestamp>::
--min-age=<timestamp>::
-
Limit the commits output to specified time range.
endif::git-rev-list[]
--author=<pattern>::
--committer=<pattern>::
-
Limit the commits output to ones with author/committer
header lines that match the specified pattern (regular
expression). With more than one `--author=<pattern>`,
@@ -52,7 +46,6 @@ endif::git-rev-list[]
chosen (similarly for multiple `--committer=<pattern>`).
--grep-reflog=<pattern>::
-
Limit the commits output to ones with reflog entries that
match the specified pattern (regular expression). With
more than one `--grep-reflog`, commits whose reflog message
@@ -60,7 +53,6 @@ endif::git-rev-list[]
error to use this option unless `--walk-reflogs` is in use.
--grep=<pattern>::
-
Limit the commits output to ones with log message that
matches the specified pattern (regular expression). With
more than one `--grep=<pattern>`, commits whose message
@@ -71,46 +63,39 @@ When `--show-notes` is in effect, the message from the notes as
if it is part of the log message.
--all-match::
- Limit the commits output to ones that match all given --grep,
+ Limit the commits output to ones that match all given `--grep`,
instead of ones that match at least one.
-i::
--regexp-ignore-case::
-
- Match the regexp limiting patterns without regard to letters case.
+ Match the regular expression limiting patterns without regard to letter
+ case.
--basic-regexp::
-
Consider the limiting patterns to be basic regular expressions;
this is the default.
-E::
--extended-regexp::
-
Consider the limiting patterns to be extended regular expressions
instead of the default basic regular expressions.
-F::
--fixed-strings::
-
Consider the limiting patterns to be fixed strings (don't interpret
pattern as a regular expression).
--perl-regexp::
-
- Consider the limiting patterns to be Perl-compatible regexp.
+ Consider the limiting patterns to be Perl-compatible regular expressions.
Requires libpcre to be compiled in.
--remove-empty::
-
Stop when a given path disappears from the tree.
--merges::
-
Print only merge commits. This is exactly the same as `--min-parents=2`.
--no-merges::
-
Do not print commits with more than one parent. This is
exactly the same as `--max-parents=1`.
@@ -118,7 +103,6 @@ if it is part of the log message.
--max-parents=<number>::
--no-min-parents::
--no-max-parents::
-
Show only commits which have at least (or at most) that many parent
commits. In particular, `--max-parents=1` is the same as `--no-merges`,
`--min-parents=2` is the same as `--merges`. `--max-parents=0`
@@ -138,31 +122,26 @@ parents) and `--max-parents=-1` (negative numbers denote no upper limit).
brought in to your history by such a merge.
--not::
-
Reverses the meaning of the '{caret}' prefix (or lack thereof)
- for all following revision specifiers, up to the next '--not'.
+ for all following revision specifiers, up to the next `--not`.
--all::
-
Pretend as if all the refs in `refs/` are listed on the
command line as '<commit>'.
--branches[=<pattern>]::
-
Pretend as if all the refs in `refs/heads` are listed
on the command line as '<commit>'. If '<pattern>' is given, limit
branches to ones matching given shell glob. If pattern lacks '?',
'{asterisk}', or '[', '/{asterisk}' at the end is implied.
--tags[=<pattern>]::
-
Pretend as if all the refs in `refs/tags` are listed
on the command line as '<commit>'. If '<pattern>' is given, limit
tags to ones matching given shell glob. If pattern lacks '?', '{asterisk}',
or '[', '/{asterisk}' at the end is implied.
--remotes[=<pattern>]::
-
Pretend as if all the refs in `refs/remotes` are listed
on the command line as '<commit>'. If '<pattern>' is given, limit
remote-tracking branches to ones matching given shell glob.
@@ -174,14 +153,27 @@ parents) and `--max-parents=-1` (negative numbers denote no upper limit).
is automatically prepended if missing. If pattern lacks '?', '{asterisk}',
or '[', '/{asterisk}' at the end is implied.
---ignore-missing::
+--exclude=<glob-pattern>::
+ Do not include refs matching '<glob-pattern>' that the next `--all`,
+ `--branches`, `--tags`, `--remotes`, or `--glob` would otherwise
+ consider. Repetitions of this option accumulate exclusion patterns
+ up to the next `--all`, `--branches`, `--tags`, `--remotes`, or
+ `--glob` option (other options or arguments do not clear
+ accumlated patterns).
++
+The patterns given should not begin with `refs/heads`, `refs/tags`, or
+`refs/remotes` when applied to `--branches`, `--tags`, or `--remotes`,
+respectively, and they must begin with `refs/` when applied to `--glob`
+or `--all`. If a trailing '/{asterisk}' is intended, it must be given
+explicitly.
+
+--ignore-missing::
Upon seeing an invalid object name in the input, pretend as if
the bad input was not given.
ifndef::git-rev-list[]
--bisect::
-
Pretend as if the bad bisection ref `refs/bisect/bad`
was listed and as if it was followed by `--not` and the good
bisection refs `refs/bisect/good-*` on the command
@@ -189,7 +181,6 @@ ifndef::git-rev-list[]
endif::git-rev-list[]
--stdin::
-
In addition to the '<commit>' listed on the command
line, read them from the standard input. If a '--' separator is
seen, stop reading commits and start reading paths to limit the
@@ -197,36 +188,32 @@ endif::git-rev-list[]
ifdef::git-rev-list[]
--quiet::
-
Don't print anything to standard output. This form
is primarily meant to allow the caller to
test the exit status to see if a range of objects is fully
connected (or not). It is faster than redirecting stdout
- to /dev/null as the output does not have to be formatted.
+ to `/dev/null` as the output does not have to be formatted.
endif::git-rev-list[]
--cherry-mark::
-
Like `--cherry-pick` (see below) but mark equivalent commits
with `=` rather than omitting them, and inequivalent ones with `+`.
--cherry-pick::
-
Omit any commit that introduces the same change as
- another commit on the "other side" when the set of
+ another commit on the ``other side'' when the set of
commits are limited with symmetric difference.
+
For example, if you have two branches, `A` and `B`, a usual way
to list all commits on only one side of them is with
`--left-right` (see the example below in the description of
-the `--left-right` option). It however shows the commits that were cherry-picked
-from the other branch (for example, "3rd on b" may be cherry-picked
-from branch A). With this option, such pairs of commits are
+the `--left-right` option). However, it shows the commits that were
+cherry-picked from the other branch (for example, ``3rd on b'' may be
+cherry-picked from branch A). With this option, such pairs of commits are
excluded from the output.
--left-only::
--right-only::
-
List only commits on the respective side of a symmetric range,
i.e. only those which would be marked `<` resp. `>` by
`--left-right`.
@@ -238,7 +225,6 @@ More precisely, `--cherry-pick --right-only --no-merges` gives the exact
list.
--cherry::
-
A synonym for `--right-only --cherry-mark --no-merges`; useful to
limit the output to the commits on our side and mark those that
have been applied to the other side of a forked history with
@@ -247,30 +233,27 @@ list.
-g::
--walk-reflogs::
-
Instead of walking the commit ancestry chain, walk
reflog entries from the most recent one to older ones.
When this option is used you cannot specify commits to
exclude (that is, '{caret}commit', 'commit1..commit2',
nor 'commit1\...commit2' notations cannot be used).
+
-With '\--pretty' format other than oneline (for obvious reasons),
+With `--pretty` format other than `oneline` (for obvious reasons),
this causes the output to have two extra lines of information
taken from the reflog. By default, 'commit@\{Nth}' notation is
used in the output. When the starting commit is specified as
'commit@\{now}', output also uses 'commit@\{timestamp}' notation
-instead. Under '\--pretty=oneline', the commit message is
+instead. Under `--pretty=oneline`, the commit message is
prefixed with this information on the same line.
-This option cannot be combined with '\--reverse'.
+This option cannot be combined with `--reverse`.
See also linkgit:git-reflog[1].
--merge::
-
After a failed merge, show refs that touch files having a
conflict and don't exist on all heads to merge.
--boundary::
-
Output excluded boundary commits. Boundary commits are
prefixed with `-`.
@@ -287,11 +270,9 @@ is how to do it, as there are various strategies to simplify the history.
The following options select the commits to be shown:
<paths>::
-
Commits modifying the given <paths> are selected.
--simplify-by-decoration::
-
Commits that are referred by some branch or tag are selected.
Note that extra commits can be shown to give a meaningful history.
@@ -299,33 +280,27 @@ Note that extra commits can be shown to give a meaningful history.
The following options affect the way the simplification is performed:
Default mode::
-
Simplifies the history to the simplest history explaining the
final state of the tree. Simplest because it prunes some side
branches if the end result is the same (i.e. merging branches
with the same content)
--full-history::
-
Same as the default mode, but does not prune some history.
--dense::
-
Only the selected commits are shown, plus some to have a
meaningful history.
--sparse::
-
All commits in the simplified history are shown.
--simplify-merges::
-
- Additional option to '--full-history' to remove some needless
+ Additional option to `--full-history` to remove some needless
merges from the resulting history, as there are no selected
commits contributing to this merge.
--ancestry-path::
-
When given a range of commits to display (e.g. 'commit1..commit2'
or 'commit2 {caret}commit1'), only display commits that exist
directly on the ancestry chain between the 'commit1' and
@@ -352,36 +327,35 @@ The horizontal line of history A---Q is taken to be the first parent of
each merge. The commits are:
* `I` is the initial commit, in which `foo` exists with contents
- "asdf", and a file `quux` exists with contents "quux". Initial
+ ``asdf'', and a file `quux` exists with contents ``quux''. Initial
commits are compared to an empty tree, so `I` is !TREESAME.
-* In `A`, `foo` contains just "foo".
+* In `A`, `foo` contains just ``foo''.
* `B` contains the same change as `A`. Its merge `M` is trivial and
hence TREESAME to all parents.
-* `C` does not change `foo`, but its merge `N` changes it to "foobar",
+* `C` does not change `foo`, but its merge `N` changes it to ``foobar'',
so it is not TREESAME to any parent.
-* `D` sets `foo` to "baz". Its merge `O` combines the strings from
- `N` and `D` to "foobarbaz"; i.e., it is not TREESAME to any parent.
+* `D` sets `foo` to ``baz''. Its merge `O` combines the strings from
+ `N` and `D` to ``foobarbaz''; i.e., it is not TREESAME to any parent.
-* `E` changes `quux` to "xyzzy", and its merge `P` combines the
- strings to "quux xyzzy". `P` is TREESAME to `O`, but not to `E`.
+* `E` changes `quux` to ``xyzzy'', and its merge `P` combines the
+ strings to ``quux xyzzy''. `P` is TREESAME to `O`, but not to `E`.
* `X` is an independent root commit that added a new file `side`, and `Y`
modified it. `Y` is TREESAME to `X`. Its merge `Q` added `side` to `P`, and
`Q` is TREESAME to `P`, but not to `Y`.
-'rev-list' walks backwards through history, including or excluding
-commits based on whether '\--full-history' and/or parent rewriting
-(via '\--parents' or '\--children') are used. The following settings
+`rev-list` walks backwards through history, including or excluding
+commits based on whether `--full-history` and/or parent rewriting
+(via `--parents` or `--children`) are used. The following settings
are available.
Default mode::
-
Commits are included if they are not TREESAME to any parent
- (though this can be changed, see '\--sparse' below). If the
+ (though this can be changed, see `--sparse` below). If the
commit was a merge, and it was TREESAME to one parent, follow
only that parent. (Even if there are several TREESAME
parents, follow only one of them.) Otherwise, follow all
@@ -400,12 +374,11 @@ available, removed `B` from consideration entirely. `C` was
considered via `N`, but is TREESAME. Root commits are compared to an
empty tree, so `I` is !TREESAME.
+
-Parent/child relations are only visible with --parents, but that does
+Parent/child relations are only visible with `--parents`, but that does
not affect the commits selected in default mode, so we have shown the
parent lines.
--full-history without parent rewriting::
-
This mode differs from the default in one point: always follow
all parents of a merge, even if it is TREESAME to one of them.
Even if more than one side of the merge has commits that are
@@ -425,9 +398,8 @@ about the parent/child relationships between the commits, so we show
them disconnected.
--full-history with parent rewriting::
-
Ordinary commits are only included if they are !TREESAME
- (though this can be changed, see '\--sparse' below).
+ (though this can be changed, see `--sparse` below).
+
Merges are always included. However, their parent list is rewritten:
Along each parent, prune away commits that are not included
@@ -441,7 +413,7 @@ themselves. This results in
`-------------'
-----------------------------------------------------------------------
+
-Compare to '\--full-history' without rewriting above. Note that `E`
+Compare to `--full-history` without rewriting above. Note that `E`
was pruned away because it is TREESAME, but the parent list of P was
rewritten to contain `E`'s parent `I`. The same happened for `C` and
`N`, and `X`, `Y` and `Q`.
@@ -450,22 +422,19 @@ In addition to the above settings, you can change whether TREESAME
affects inclusion:
--dense::
-
Commits that are walked are included if they are not TREESAME
to any parent.
--sparse::
-
All commits that are walked are included.
+
-Note that without '\--full-history', this still simplifies merges: if
+Note that without `--full-history`, this still simplifies merges: if
one of the parents is TREESAME, we follow only that one, so the other
sides of the merge are never walked.
--simplify-merges::
-
First, build a history graph in the same way that
- '\--full-history' with parent rewriting does (see above).
+ `--full-history` with parent rewriting does (see above).
+
Then simplify each commit `C` to its replacement `C'` in the final
history according to the following rules:
@@ -484,7 +453,7 @@ history according to the following rules:
--
+
The effect of this is best shown by way of comparing to
-'\--full-history' with parent rewriting. The example turns into:
+`--full-history` with parent rewriting. The example turns into:
+
-----------------------------------------------------------------------
.-A---M---N---O
@@ -494,7 +463,7 @@ The effect of this is best shown by way of comparing to
`---------'
-----------------------------------------------------------------------
+
-Note the major differences in `N`, `P` and `Q` over '--full-history':
+Note the major differences in `N`, `P`, and `Q` over `--full-history`:
+
--
* `N`'s parent list had `I` removed, because it is an ancestor of the
@@ -511,11 +480,10 @@ Note the major differences in `N`, `P` and `Q` over '--full-history':
Finally, there is a fifth simplification mode available:
--ancestry-path::
-
Limit the displayed commits to those directly on the ancestry
- chain between the "from" and "to" commits in the given commit
- range. I.e. only display commits that are ancestor of the "to"
- commit, and descendants of the "from" commit.
+ chain between the ``from'' and ``to'' commits in the given commit
+ range. I.e. only display commits that are ancestor of the ``to''
+ commit and descendants of the ``from'' commit.
+
As an example use case, consider the following commit history:
+
@@ -530,14 +498,14 @@ As an example use case, consider the following commit history:
A regular 'D..M' computes the set of commits that are ancestors of `M`,
but excludes the ones that are ancestors of `D`. This is useful to see
what happened to the history leading to `M` since `D`, in the sense
-that "what does `M` have that did not exist in `D`". The result in this
+that ``what does `M` have that did not exist in `D`''. The result in this
example would be all the commits, except `A` and `B` (and `D` itself,
of course).
+
When we want to find out what commits in `M` are contaminated with the
bug introduced by `D` and need fixing, however, we might want to view
only the subset of 'D..M' that are actually descendants of `D`, i.e.
-excluding `C` and `K`. This is exactly what the '--ancestry-path'
+excluding `C` and `K`. This is exactly what the `--ancestry-path`
option does. Applied to the 'D..M' range, it results in:
+
-----------------------------------------------------------------------
@@ -548,7 +516,7 @@ option does. Applied to the 'D..M' range, it results in:
L--M
-----------------------------------------------------------------------
-The '\--simplify-by-decoration' option allows you to view only the
+The `--simplify-by-decoration` option allows you to view only the
big picture of the topology of the history, by omitting commits
that are not referenced by tags. Commits are marked as !TREESAME
(in other words, kept after history simplification rules described
@@ -561,50 +529,47 @@ Bisection Helpers
~~~~~~~~~~~~~~~~~
--bisect::
-
-Limit output to the one commit object which is roughly halfway between
-included and excluded commits. Note that the bad bisection ref
-`refs/bisect/bad` is added to the included commits (if it
-exists) and the good bisection refs `refs/bisect/good-*` are
-added to the excluded commits (if they exist). Thus, supposing there
-are no refs in `refs/bisect/`, if
-
+ Limit output to the one commit object which is roughly halfway between
+ included and excluded commits. Note that the bad bisection ref
+ `refs/bisect/bad` is added to the included commits (if it
+ exists) and the good bisection refs `refs/bisect/good-*` are
+ added to the excluded commits (if they exist). Thus, supposing there
+ are no refs in `refs/bisect/`, if
++
-----------------------------------------------------------------------
$ git rev-list --bisect foo ^bar ^baz
-----------------------------------------------------------------------
-
++
outputs 'midpoint', the output of the two commands
-
++
-----------------------------------------------------------------------
$ git rev-list foo ^midpoint
$ git rev-list midpoint ^bar ^baz
-----------------------------------------------------------------------
-
++
would be of roughly the same length. Finding the change which
introduces a regression is thus reduced to a binary search: repeatedly
generate and test new 'midpoint's until the commit chain is of length
one.
--bisect-vars::
-
-This calculates the same as `--bisect`, except that refs in
-`refs/bisect/` are not used, and except that this outputs
-text ready to be eval'ed by the shell. These lines will assign the
-name of the midpoint revision to the variable `bisect_rev`, and the
-expected number of commits to be tested after `bisect_rev` is tested
-to `bisect_nr`, the expected number of commits to be tested if
-`bisect_rev` turns out to be good to `bisect_good`, the expected
-number of commits to be tested if `bisect_rev` turns out to be bad to
-`bisect_bad`, and the number of commits we are bisecting right now to
-`bisect_all`.
+ This calculates the same as `--bisect`, except that refs in
+ `refs/bisect/` are not used, and except that this outputs
+ text ready to be eval'ed by the shell. These lines will assign the
+ name of the midpoint revision to the variable `bisect_rev`, and the
+ expected number of commits to be tested after `bisect_rev` is tested
+ to `bisect_nr`, the expected number of commits to be tested if
+ `bisect_rev` turns out to be good to `bisect_good`, the expected
+ number of commits to be tested if `bisect_rev` turns out to be bad to
+ `bisect_bad`, and the number of commits we are bisecting right now to
+ `bisect_all`.
--bisect-all::
-
-This outputs all the commit objects between the included and excluded
-commits, ordered by their distance to the included and excluded
-commits. Refs in `refs/bisect/` are not used. The farthest
-from them is displayed first. (This is the only one displayed by
-`--bisect`.)
+ This outputs all the commit objects between the included and excluded
+ commits, ordered by their distance to the included and excluded
+ commits. Refs in `refs/bisect/` are not used. The farthest
+ from them is displayed first. (This is the only one displayed by
+ `--bisect`.)
+
This is useful because it makes it easy to choose a good commit to
test when you want to avoid to test some of them for some reason (they
@@ -654,9 +619,8 @@ avoid showing the commits from two parallel development track mixed
together.
--reverse::
-
Output the commits in reverse order.
- Cannot be combined with '\--walk-reflogs'.
+ Cannot be combined with `--walk-reflogs`.
Object Traversal
~~~~~~~~~~~~~~~~
@@ -664,37 +628,32 @@ Object Traversal
These options are mostly targeted for packing of Git repositories.
--objects::
-
Print the object IDs of any object referenced by the listed
- commits. '--objects foo ^bar' thus means "send me
+ commits. `--objects foo ^bar` thus means ``send me
all object IDs which I need to download if I have the commit
- object 'bar', but not 'foo'".
+ object _bar_ but not _foo_''.
--objects-edge::
-
- Similar to '--objects', but also print the IDs of excluded
- commits prefixed with a "-" character. This is used by
- linkgit:git-pack-objects[1] to build "thin" pack, which records
+ Similar to `--objects`, but also print the IDs of excluded
+ commits prefixed with a ``-'' character. This is used by
+ linkgit:git-pack-objects[1] to build ``thin'' pack, which records
objects in deltified form based on objects contained in these
excluded commits to reduce network traffic.
--unpacked::
-
- Only useful with '--objects'; print the object IDs that are not
+ Only useful with `--objects`; print the object IDs that are not
in packs.
--no-walk[=(sorted|unsorted)]::
-
Only show the given commits, but do not traverse their ancestors.
This has no effect if a range is specified. If the argument
- "unsorted" is given, the commits are show in the order they were
- given on the command line. Otherwise (if "sorted" or no argument
- was given), the commits are show in reverse chronological order
+ `unsorted` is given, the commits are shown in the order they were
+ given on the command line. Otherwise (if `sorted` or no argument
+ was given), the commits are shown in reverse chronological order
by commit time.
--do-walk::
-
- Overrides a previous --no-walk.
+ Overrides a previous `--no-walk`.
Commit Formatting
~~~~~~~~~~~~~~~~~
@@ -708,46 +667,41 @@ endif::git-rev-list[]
include::pretty-options.txt[]
--relative-date::
-
Synonym for `--date=relative`.
--date=(relative|local|default|iso|rfc|short|raw)::
-
Only takes effect for dates shown in human-readable format, such
- as when using "--pretty". `log.date` config variable sets a default
- value for log command's --date option.
+ as when using `--pretty`. `log.date` config variable sets a default
+ value for the log command's `--date` option.
+
`--date=relative` shows dates relative to the current time,
-e.g. "2 hours ago".
+e.g. ``2 hours ago''.
+
-`--date=local` shows timestamps in user's local timezone.
+`--date=local` shows timestamps in user's local time zone.
+
`--date=iso` (or `--date=iso8601`) shows timestamps in ISO 8601 format.
+
`--date=rfc` (or `--date=rfc2822`) shows timestamps in RFC 2822
-format, often found in E-mail messages.
+format, often found in email messages.
+
-`--date=short` shows only date but not time, in `YYYY-MM-DD` format.
+`--date=short` shows only the date, but not the time, in `YYYY-MM-DD` format.
+
`--date=raw` shows the date in the internal raw Git format `%s %z` format.
+
-`--date=default` shows timestamps in the original timezone
+`--date=default` shows timestamps in the original time zone
(either committer's or author's).
ifdef::git-rev-list[]
--header::
-
Print the contents of the commit in raw-format; each record is
separated with a NUL character.
endif::git-rev-list[]
--parents::
-
Print also the parents of the commit (in the form "commit parent...").
Also enables parent rewriting, see 'History Simplification' below.
--children::
-
Print also the children of the commit (in the form "commit child...").
Also enables parent rewriting, see 'History Simplification' below.
@@ -757,7 +711,6 @@ ifdef::git-rev-list[]
endif::git-rev-list[]
--left-right::
-
Mark which side of a symmetric diff a commit is reachable from.
Commits from the left side are prefixed with `<` and those from
the right with `>`. If combined with `--boundary`, those
@@ -787,7 +740,6 @@ you would get an output like this:
-----------------------------------------------------------------------
--graph::
-
Draw a text-based graphical representation of the commit history
on the left hand side of the output. This may cause extra lines
to be printed in between commits, in order for the graph history
@@ -795,31 +747,29 @@ you would get an output like this:
+
This enables parent rewriting, see 'History Simplification' below.
+
-This implies the '--topo-order' option by default, but the
-'--date-order' option may also be specified.
+This implies the `--topo-order` option by default, but the
+`--date-order` option may also be specified.
ifdef::git-rev-list[]
--count::
Print a number stating how many commits would have been
listed, and suppress all other output. When used together
- with '--left-right', instead print the counts for left and
+ with `--left-right`, instead print the counts for left and
right commits, separated by a tab. When used together with
- '--cherry-mark', omit patch equivalent commits from these
+ `--cherry-mark`, omit patch equivalent commits from these
counts and print the count for equivalent commits separated
by a tab.
endif::git-rev-list[]
-
ifndef::git-rev-list[]
Diff Formatting
~~~~~~~~~~~~~~~
-Below are listed options that control the formatting of diff output.
+Listed below are options that control the formatting of diff output.
Some of them are specific to linkgit:git-rev-list[1], however other diff
options may be given. See linkgit:git-diff-files[1] for more options.
-c::
-
With this option, diff output for a merge commit
shows the differences from each of the parents to the merge result
simultaneously instead of showing pairwise diff between a parent
@@ -827,26 +777,22 @@ options may be given. See linkgit:git-diff-files[1] for more options.
which were modified from all parents.
--cc::
-
- This flag implies the '-c' option and further compresses the
+ This flag implies the `-c` option and further compresses the
patch output by omitting uninteresting hunks whose contents in
the parents have only two variants and the merge result picks
one of them without modification.
-m::
-
This flag makes the merge commits show the full diff like
regular commits; for each merge parent, a separate log entry
and diff is generated. An exception is that only diff against
- the first parent is shown when '--first-parent' option is given;
+ the first parent is shown when `--first-parent` option is given;
in that case, the output represents the changes the merge
brought _into_ the then-current branch.
-r::
-
Show recursive diffs.
-t::
-
- Show the tree objects in the diff output. This implies '-r'.
+ Show the tree objects in the diff output. This implies `-r`.
endif::git-rev-list[]
diff --git a/Documentation/technical/api-parse-options.txt b/Documentation/technical/api-parse-options.txt
index 0be2b51..be50cf4 100644
--- a/Documentation/technical/api-parse-options.txt
+++ b/Documentation/technical/api-parse-options.txt
@@ -29,9 +29,9 @@ that allow to change the behavior of a command.
The parse-options API allows:
-* 'sticked' and 'separate form' of options with arguments.
- `-oArg` is sticked, `-o Arg` is separate form.
- `--option=Arg` is sticked, `--option Arg` is separate form.
+* 'stuck' and 'separate form' of options with arguments.
+ `-oArg` is stuck, `-o Arg` is separate form.
+ `--option=Arg` is stuck, `--option Arg` is separate form.
* Long options may be 'abbreviated', as long as the abbreviation
is unambiguous.
diff --git a/Documentation/technical/api-ref-iteration.txt b/Documentation/technical/api-ref-iteration.txt
index aa1c50f..02adfd4 100644
--- a/Documentation/technical/api-ref-iteration.txt
+++ b/Documentation/technical/api-ref-iteration.txt
@@ -50,10 +50,10 @@ submodules object database. You can do this by a code-snippet like
this:
const char *path = "path/to/submodule"
- if (!add_submodule_odb(path))
+ if (add_submodule_odb(path))
die("Error submodule '%s' not populated.", path);
-`add_submodule_odb()` will return an non-zero value on success. If you
+`add_submodule_odb()` will return zero on success. If you
do not do this you will get an error for each ref that it does not point
to a valid object.
diff --git a/Documentation/technical/api-remote.txt b/Documentation/technical/api-remote.txt
index 4be8776..5d245aa 100644
--- a/Documentation/technical/api-remote.txt
+++ b/Documentation/technical/api-remote.txt
@@ -58,16 +58,16 @@ default remote, given the current branch and configuration.
struct refspec
--------------
-A struct refspec holds the parsed interpretation of a refspec. If it
-will force updates (starts with a '+'), force is true. If it is a
-pattern (sides end with '*') pattern is true. src and dest are the two
-sides (if a pattern, only the part outside of the wildcards); if there
-is only one side, it is src, and dst is NULL; if sides exist but are
-empty (i.e., the refspec either starts or ends with ':'), the
-corresponding side is "".
-
-This parsing can be done to an array of strings to give an array of
-struct refpsecs with parse_ref_spec().
+A struct refspec holds the parsed interpretation of a refspec. If it
+will force updates (starts with a '+'), force is true. If it is a
+pattern (sides end with '*') pattern is true. src and dest are the
+two sides (including '*' characters if present); if there is only one
+side, it is src, and dst is NULL; if sides exist but are empty (i.e.,
+the refspec either starts or ends with ':'), the corresponding side is
+"".
+
+An array of strings can be parsed into an array of struct refspecs
+using parse_fetch_refspec() or parse_push_refspec().
remote_find_tracking(), given a remote and a struct refspec with
either src or dst filled out, will fill out the other such that the
diff --git a/Documentation/technical/http-protocol.txt b/Documentation/technical/http-protocol.txt
index caf941a..d21d77d 100644
--- a/Documentation/technical/http-protocol.txt
+++ b/Documentation/technical/http-protocol.txt
@@ -307,7 +307,7 @@ Clients MUST first perform ref discovery with
S: ....ACK %s, continue
S: ....NAK
-Clients MUST NOT reuse or revalidate a cached reponse.
+Clients MUST NOT reuse or revalidate a cached response.
Servers MUST include sufficient Cache-Control headers
to prevent caching of the response.
@@ -468,7 +468,7 @@ Clients MUST first perform ref discovery with
S:
S: ....
-Clients MUST NOT reuse or revalidate a cached reponse.
+Clients MUST NOT reuse or revalidate a cached response.
Servers MUST include sufficient Cache-Control headers
to prevent caching of the response.
diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN
index 4dcaac3..b9532f0 100755
--- a/GIT-VERSION-GEN
+++ b/GIT-VERSION-GEN
@@ -1,7 +1,7 @@
#!/bin/sh
GVF=GIT-VERSION-FILE
-DEF_VER=v1.8.5-rc0
+DEF_VER=v1.8.5.GIT
LF='
'
diff --git a/Makefile b/Makefile
index af847f8..b4af1e2 100644
--- a/Makefile
+++ b/Makefile
@@ -452,7 +452,6 @@ SCRIPT_SH += git-am.sh
SCRIPT_SH += git-bisect.sh
SCRIPT_SH += git-difftool--helper.sh
SCRIPT_SH += git-filter-branch.sh
-SCRIPT_SH += git-lost-found.sh
SCRIPT_SH += git-merge-octopus.sh
SCRIPT_SH += git-merge-one-file.sh
SCRIPT_SH += git-merge-resolve.sh
@@ -587,11 +586,8 @@ BUILT_INS += git-cherry$X
BUILT_INS += git-cherry-pick$X
BUILT_INS += git-format-patch$X
BUILT_INS += git-fsck-objects$X
-BUILT_INS += git-get-tar-commit-id$X
BUILT_INS += git-init$X
BUILT_INS += git-merge-subtree$X
-BUILT_INS += git-peek-remote$X
-BUILT_INS += git-repo-config$X
BUILT_INS += git-show$X
BUILT_INS += git-stage$X
BUILT_INS += git-status$X
@@ -932,6 +928,7 @@ BUILTIN_OBJS += builtin/fmt-merge-msg.o
BUILTIN_OBJS += builtin/for-each-ref.o
BUILTIN_OBJS += builtin/fsck.o
BUILTIN_OBJS += builtin/gc.o
+BUILTIN_OBJS += builtin/get-tar-commit-id.o
BUILTIN_OBJS += builtin/grep.o
BUILTIN_OBJS += builtin/hash-object.o
BUILTIN_OBJS += builtin/help.o
@@ -983,7 +980,6 @@ BUILTIN_OBJS += builtin/show-ref.o
BUILTIN_OBJS += builtin/stripspace.o
BUILTIN_OBJS += builtin/symbolic-ref.o
BUILTIN_OBJS += builtin/tag.o
-BUILTIN_OBJS += builtin/tar-tree.o
BUILTIN_OBJS += builtin/unpack-file.o
BUILTIN_OBJS += builtin/unpack-objects.o
BUILTIN_OBJS += builtin/update-index.o
@@ -1588,6 +1584,7 @@ PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH))
PYTHON_PATH_SQ = $(subst ','\'',$(PYTHON_PATH))
TCLTK_PATH_SQ = $(subst ','\'',$(TCLTK_PATH))
DIFF_SQ = $(subst ','\'',$(DIFF))
+PERLLIB_EXTRA_SQ = $(subst ','\'',$(PERLLIB_EXTRA))
LIBS = $(GITLIBS) $(EXTLIBS)
@@ -1792,9 +1789,12 @@ perl/PM.stamp: FORCE
perl/perl.mak: GIT-CFLAGS GIT-PREFIX perl/Makefile perl/Makefile.PL
$(QUIET_SUBDIR0)perl $(QUIET_SUBDIR1) PERL_PATH='$(PERL_PATH_SQ)' prefix='$(prefix_SQ)' $(@F)
-$(patsubst %.perl,%,$(SCRIPT_PERL)): % : %.perl GIT-VERSION-FILE
+PERL_DEFINES = $(PERL_PATH_SQ):$(PERLLIB_EXTRA_SQ)
+$(patsubst %.perl,%,$(SCRIPT_PERL)): % : %.perl perl/perl.mak GIT-PERL-DEFINES GIT-VERSION-FILE
$(QUIET_GEN)$(RM) $@ $@+ && \
INSTLIBDIR=`MAKEFLAGS= $(MAKE) -C perl -s --no-print-directory instlibdir` && \
+ INSTLIBDIR_EXTRA='$(PERLLIB_EXTRA_SQ)' && \
+ INSTLIBDIR="$$INSTLIBDIR$${INSTLIBDIR_EXTRA:+:$$INSTLIBDIR_EXTRA}" && \
sed -e '1{' \
-e ' s|#!.*perl|#!$(PERL_PATH_SQ)|' \
-e ' h' \
@@ -1807,6 +1807,13 @@ $(patsubst %.perl,%,$(SCRIPT_PERL)): % : %.perl GIT-VERSION-FILE
chmod +x $@+ && \
mv $@+ $@
+GIT-PERL-DEFINES: FORCE
+ @FLAGS='$(PERL_DEFINES)'; \
+ if test x"$$FLAGS" != x"`cat $@ 2>/dev/null`" ; then \
+ echo >&2 " * new perl-specific parameters"; \
+ echo "$$FLAGS" >$@; \
+ fi
+
.PHONY: gitweb
gitweb:
@@ -2494,7 +2501,8 @@ ifndef NO_TCLTK
$(MAKE) -C git-gui clean
endif
$(RM) GIT-VERSION-FILE GIT-CFLAGS GIT-LDFLAGS GIT-BUILD-OPTIONS
- $(RM) GIT-USER-AGENT GIT-PREFIX GIT-SCRIPT-DEFINES GIT-PYTHON-VARS
+ $(RM) GIT-USER-AGENT GIT-PREFIX
+ $(RM) GIT-SCRIPT-DEFINES GIT-PERL-DEFINES GIT-PYTHON-VARS
.PHONY: all install profile-clean clean strip
.PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell
diff --git a/RelNotes b/RelNotes
index 61c3b54..c300119 120000
--- a/RelNotes
+++ b/RelNotes
@@ -1 +1 @@
-Documentation/RelNotes/1.8.5.txt \ No newline at end of file
+Documentation/RelNotes/1.9.txt \ No newline at end of file
diff --git a/builtin.h b/builtin.h
index b56cf07..d4afbfe 100644
--- a/builtin.h
+++ b/builtin.h
@@ -103,7 +103,6 @@ extern int cmd_remote(int argc, const char **argv, const char *prefix);
extern int cmd_remote_ext(int argc, const char **argv, const char *prefix);
extern int cmd_remote_fd(int argc, const char **argv, const char *prefix);
extern int cmd_repack(int argc, const char **argv, const char *prefix);
-extern int cmd_repo_config(int argc, const char **argv, const char *prefix);
extern int cmd_rerere(int argc, const char **argv, const char *prefix);
extern int cmd_reset(int argc, const char **argv, const char *prefix);
extern int cmd_rev_list(int argc, const char **argv, const char *prefix);
diff --git a/builtin/blame.c b/builtin/blame.c
index 6da7233..4916eb2 100644
--- a/builtin/blame.c
+++ b/builtin/blame.c
@@ -409,7 +409,9 @@ static struct origin *find_origin(struct scoreboard *sb,
paths[0] = origin->path;
paths[1] = NULL;
- parse_pathspec(&diff_opts.pathspec, PATHSPEC_ALL_MAGIC, 0, "", paths);
+ parse_pathspec(&diff_opts.pathspec,
+ PATHSPEC_ALL_MAGIC & ~PATHSPEC_LITERAL,
+ PATHSPEC_LITERAL_PATH, "", paths);
diff_setup_done(&diff_opts);
if (is_null_sha1(origin->commit->object.sha1))
@@ -1549,8 +1551,7 @@ static void assign_blame(struct scoreboard *sb, int opt)
*/
origin_incref(suspect);
commit = suspect->commit;
- if (!commit->object.parsed)
- parse_commit(commit);
+ parse_commit(commit);
if (reverse ||
(!(commit->object.flags & UNINTERESTING) &&
!(revs->max_age != -1 && commit->date < revs->max_age)))
diff --git a/builtin/branch.c b/builtin/branch.c
index ad0f86d..636a16e 100644
--- a/builtin/branch.c
+++ b/builtin/branch.c
@@ -424,6 +424,7 @@ static void fill_tracking_info(struct strbuf *stat, const char *branch_name,
struct branch *branch = branch_get(branch_name);
struct strbuf fancy = STRBUF_INIT;
int upstream_is_gone = 0;
+ int added_decoration = 1;
switch (stat_tracking_info(branch, &ours, &theirs)) {
case 0:
@@ -451,9 +452,13 @@ static void fill_tracking_info(struct strbuf *stat, const char *branch_name,
if (upstream_is_gone) {
if (show_upstream_ref)
strbuf_addf(stat, _("[%s: gone]"), fancy.buf);
+ else
+ added_decoration = 0;
} else if (!ours && !theirs) {
if (show_upstream_ref)
strbuf_addf(stat, _("[%s]"), fancy.buf);
+ else
+ added_decoration = 0;
} else if (!ours) {
if (show_upstream_ref)
strbuf_addf(stat, _("[%s: behind %d]"), fancy.buf, theirs);
@@ -474,7 +479,8 @@ static void fill_tracking_info(struct strbuf *stat, const char *branch_name,
ours, theirs);
}
strbuf_release(&fancy);
- strbuf_addch(stat, ' ');
+ if (added_decoration)
+ strbuf_addch(stat, ' ');
free(ref);
}
@@ -496,7 +502,7 @@ static void add_verbose_info(struct strbuf *out, struct ref_item *item,
const char *sub = _(" **** invalid ref ****");
struct commit *commit = item->commit;
- if (commit && !parse_commit(commit)) {
+ if (!parse_commit(commit)) {
pp_commit_easy(CMIT_FMT_ONELINE, commit, &subject);
sub = subject.buf;
}
@@ -975,9 +981,8 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
die(_("no such branch '%s'"), argv[0]);
}
- if (!branch_has_merge_config(branch)) {
+ if (!branch_has_merge_config(branch))
die(_("Branch '%s' has no upstream information"), branch->name);
- }
strbuf_addf(&buf, "branch.%s.remote", branch->name);
git_config_set_multivar(buf.buf, NULL, NULL, 1);
diff --git a/builtin/checkout.c b/builtin/checkout.c
index 54f80bd..904fd71 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -380,8 +380,8 @@ static void show_local_changes(struct object *head,
static void describe_detached_head(const char *msg, struct commit *commit)
{
struct strbuf sb = STRBUF_INIT;
- parse_commit(commit);
- pp_commit_easy(CMIT_FMT_ONELINE, commit, &sb);
+ if (!parse_commit(commit))
+ pp_commit_easy(CMIT_FMT_ONELINE, commit, &sb);
fprintf(stderr, "%s %s... %s\n", msg,
find_unique_abbrev(commit->object.sha1, DEFAULT_ABBREV), sb.buf);
strbuf_release(&sb);
@@ -677,12 +677,12 @@ static int add_pending_uninteresting_ref(const char *refname,
static void describe_one_orphan(struct strbuf *sb, struct commit *commit)
{
- parse_commit(commit);
strbuf_addstr(sb, " ");
strbuf_addstr(sb,
find_unique_abbrev(commit->object.sha1, DEFAULT_ABBREV));
strbuf_addch(sb, ' ');
- pp_commit_easy(CMIT_FMT_ONELINE, commit, sb);
+ if (!parse_commit(commit))
+ pp_commit_easy(CMIT_FMT_ONELINE, commit, sb);
strbuf_addch(sb, '\n');
}
@@ -789,7 +789,7 @@ static int switch_branches(const struct checkout_opts *opts,
new->commit = old.commit;
if (!new->commit)
die(_("You are on a branch yet to be born"));
- parse_commit(new->commit);
+ parse_commit_or_die(new->commit);
}
ret = merge_working_tree(opts, &old, new, &writeout_error);
@@ -995,7 +995,7 @@ static int parse_branchname_arg(int argc, const char **argv,
/* not a commit */
*source_tree = parse_tree_indirect(rev);
} else {
- parse_commit(new->commit);
+ parse_commit_or_die(new->commit);
*source_tree = new->commit->tree;
}
diff --git a/builtin/commit.c b/builtin/commit.c
index 6ab4605..e89c519 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -1338,7 +1338,7 @@ static void print_summary(const char *prefix, const unsigned char *sha1,
commit = lookup_commit(sha1);
if (!commit)
die(_("couldn't look up newly created commit"));
- if (!commit || parse_commit(commit))
+ if (parse_commit(commit))
die(_("could not parse newly created commit"));
strbuf_addstr(&format, "format:%h] %s");
@@ -1525,7 +1525,7 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
current_head = NULL;
else {
current_head = lookup_commit_or_die(sha1, "HEAD");
- if (!current_head || parse_commit(current_head))
+ if (parse_commit(current_head))
die(_("could not parse HEAD commit"));
}
argc = parse_and_validate_options(argc, argv, builtin_commit_options,
diff --git a/builtin/config.c b/builtin/config.c
index 20e89fe..92ebf23 100644
--- a/builtin/config.c
+++ b/builtin/config.c
@@ -671,9 +671,3 @@ int cmd_config(int argc, const char **argv, const char *prefix)
return 0;
}
-
-int cmd_repo_config(int argc, const char **argv, const char *prefix)
-{
- fprintf(stderr, "WARNING: git repo-config is deprecated in favor of git config.\n");
- return cmd_config(argc, argv, prefix);
-}
diff --git a/builtin/describe.c b/builtin/describe.c
index b9d3603..6f62109 100644
--- a/builtin/describe.c
+++ b/builtin/describe.c
@@ -9,7 +9,7 @@
#include "hash.h"
#include "argv-array.h"
-#define SEEN (1u<<0)
+#define SEEN (1u << 0)
#define MAX_TAGS (FLAG_BITS - 1)
static const char * const describe_usage[] = {
@@ -36,7 +36,6 @@ static const char *diff_index_args[] = {
"diff-index", "--quiet", "HEAD", "--", NULL
};
-
struct commit_name {
struct commit_name *next;
unsigned char peeled[20];
@@ -46,6 +45,7 @@ struct commit_name {
unsigned char sha1[20];
char *path;
};
+
static const char *prio_names[] = {
"head", "lightweight", "annotated",
};
@@ -488,9 +488,8 @@ int cmd_describe(int argc, const char **argv, const char *prefix)
} else if (dirty) {
die(_("--dirty is incompatible with commit-ishes"));
} else {
- while (argc-- > 0) {
+ while (argc-- > 0)
describe(*argv++, argc == 0);
- }
}
return 0;
}
diff --git a/builtin/diff.c b/builtin/diff.c
index 2fb8c5d..fe0cc7f 100644
--- a/builtin/diff.c
+++ b/builtin/diff.c
@@ -64,15 +64,18 @@ static void stuff_change(struct diff_options *opt,
static int builtin_diff_b_f(struct rev_info *revs,
int argc, const char **argv,
- struct blobinfo *blob,
- const char *path)
+ struct blobinfo *blob)
{
/* Blob vs file in the working tree*/
struct stat st;
+ const char *path;
if (argc > 1)
usage(builtin_diff_usage);
+ GUARD_PATHSPEC(&revs->prune_data, PATHSPEC_FROMTOP | PATHSPEC_LITERAL);
+ path = revs->prune_data.items[0].match;
+
if (lstat(path, &st))
die_errno(_("failed to stat '%s'"), path);
if (!(S_ISREG(st.st_mode) || S_ISLNK(st.st_mode)))
@@ -169,7 +172,7 @@ static int builtin_diff_tree(struct rev_info *revs,
if (ent1->item->flags & UNINTERESTING)
swap = 1;
sha1[swap] = ent0->item->sha1;
- sha1[1-swap] = ent1->item->sha1;
+ sha1[1 - swap] = ent1->item->sha1;
diff_tree_sha1(sha1[0], sha1[1], "", &revs->diffopt);
log_tree_diff_flush(revs);
return 0;
@@ -255,7 +258,6 @@ int cmd_diff(int argc, const char **argv, const char *prefix)
struct rev_info rev;
struct object_array ent = OBJECT_ARRAY_INIT;
int blobs = 0, paths = 0;
- const char *path = NULL;
struct blobinfo blob[2];
int nongit;
int result = 0;
@@ -366,13 +368,8 @@ int cmd_diff(int argc, const char **argv, const char *prefix)
die(_("unhandled object '%s' given."), name);
}
}
- if (rev.prune_data.nr) {
- /* builtin_diff_b_f() */
- GUARD_PATHSPEC(&rev.prune_data, PATHSPEC_FROMTOP | PATHSPEC_LITERAL);
- if (!path)
- path = rev.prune_data.items[0].match;
+ if (rev.prune_data.nr)
paths += rev.prune_data.nr;
- }
/*
* Now, do the arguments look reasonable?
@@ -385,7 +382,7 @@ int cmd_diff(int argc, const char **argv, const char *prefix)
case 1:
if (paths != 1)
usage(builtin_diff_usage);
- result = builtin_diff_b_f(&rev, argc, argv, blob, path);
+ result = builtin_diff_b_f(&rev, argc, argv, blob);
break;
case 2:
if (paths)
diff --git a/builtin/fast-export.c b/builtin/fast-export.c
index 78250ea..ea63052 100644
--- a/builtin/fast-export.c
+++ b/builtin/fast-export.c
@@ -287,7 +287,7 @@ static void handle_commit(struct commit *commit, struct rev_info *rev)
rev->diffopt.output_format = DIFF_FORMAT_CALLBACK;
- parse_commit(commit);
+ parse_commit_or_die(commit);
author = strstr(commit->buffer, "\nauthor ");
if (!author)
die ("Could not find author in commit %s",
@@ -308,7 +308,7 @@ static void handle_commit(struct commit *commit, struct rev_info *rev)
if (commit->parents &&
get_object_mark(&commit->parents->item->object) != 0 &&
!full_tree) {
- parse_commit(commit->parents->item);
+ parse_commit_or_die(commit->parents->item);
diff_tree_sha1(commit->parents->item->tree->object.sha1,
commit->tree->object.sha1, "", &rev->diffopt);
}
diff --git a/builtin/fetch.c b/builtin/fetch.c
index bd7a101..3d978eb 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c
@@ -160,48 +160,156 @@ static void add_merge_config(struct ref **head,
}
}
+static int add_existing(const char *refname, const unsigned char *sha1,
+ int flag, void *cbdata)
+{
+ struct string_list *list = (struct string_list *)cbdata;
+ struct string_list_item *item = string_list_insert(list, refname);
+ item->util = xmalloc(20);
+ hashcpy(item->util, sha1);
+ return 0;
+}
+
+static int will_fetch(struct ref **head, const unsigned char *sha1)
+{
+ struct ref *rm = *head;
+ while (rm) {
+ if (!hashcmp(rm->old_sha1, sha1))
+ return 1;
+ rm = rm->next;
+ }
+ return 0;
+}
+
static void find_non_local_tags(struct transport *transport,
struct ref **head,
- struct ref ***tail);
+ struct ref ***tail)
+{
+ struct string_list existing_refs = STRING_LIST_INIT_DUP;
+ struct string_list remote_refs = STRING_LIST_INIT_NODUP;
+ const struct ref *ref;
+ struct string_list_item *item = NULL;
+
+ for_each_ref(add_existing, &existing_refs);
+ for (ref = transport_get_remote_refs(transport); ref; ref = ref->next) {
+ if (prefixcmp(ref->name, "refs/tags/"))
+ continue;
+
+ /*
+ * The peeled ref always follows the matching base
+ * ref, so if we see a peeled ref that we don't want
+ * to fetch then we can mark the ref entry in the list
+ * as one to ignore by setting util to NULL.
+ */
+ if (!suffixcmp(ref->name, "^{}")) {
+ if (item && !has_sha1_file(ref->old_sha1) &&
+ !will_fetch(head, ref->old_sha1) &&
+ !has_sha1_file(item->util) &&
+ !will_fetch(head, item->util))
+ item->util = NULL;
+ item = NULL;
+ continue;
+ }
+
+ /*
+ * If item is non-NULL here, then we previously saw a
+ * ref not followed by a peeled reference, so we need
+ * to check if it is a lightweight tag that we want to
+ * fetch.
+ */
+ if (item && !has_sha1_file(item->util) &&
+ !will_fetch(head, item->util))
+ item->util = NULL;
+
+ item = NULL;
+
+ /* skip duplicates and refs that we already have */
+ if (string_list_has_string(&remote_refs, ref->name) ||
+ string_list_has_string(&existing_refs, ref->name))
+ continue;
+
+ item = string_list_insert(&remote_refs, ref->name);
+ item->util = (void *)ref->old_sha1;
+ }
+ string_list_clear(&existing_refs, 1);
+
+ /*
+ * We may have a final lightweight tag that needs to be
+ * checked to see if it needs fetching.
+ */
+ if (item && !has_sha1_file(item->util) &&
+ !will_fetch(head, item->util))
+ item->util = NULL;
+
+ /*
+ * For all the tags in the remote_refs string list,
+ * add them to the list of refs to be fetched
+ */
+ for_each_string_list_item(item, &remote_refs) {
+ /* Unless we have already decided to ignore this item... */
+ if (item->util)
+ {
+ struct ref *rm = alloc_ref(item->string);
+ rm->peer_ref = alloc_ref(item->string);
+ hashcpy(rm->old_sha1, item->util);
+ **tail = rm;
+ *tail = &rm->next;
+ }
+ }
+
+ string_list_clear(&remote_refs, 0);
+}
static struct ref *get_ref_map(struct transport *transport,
- struct refspec *refs, int ref_count, int tags,
- int *autotags)
+ struct refspec *refspecs, int refspec_count,
+ int tags, int *autotags)
{
int i;
struct ref *rm;
struct ref *ref_map = NULL;
struct ref **tail = &ref_map;
- const struct ref *remote_refs = transport_get_remote_refs(transport);
+ /* opportunistically-updated references: */
+ struct ref *orefs = NULL, **oref_tail = &orefs;
- if (ref_count || tags == TAGS_SET) {
- struct ref **old_tail;
+ const struct ref *remote_refs = transport_get_remote_refs(transport);
- for (i = 0; i < ref_count; i++) {
- get_fetch_map(remote_refs, &refs[i], &tail, 0);
- if (refs[i].dst && refs[i].dst[0])
+ if (refspec_count) {
+ for (i = 0; i < refspec_count; i++) {
+ get_fetch_map(remote_refs, &refspecs[i], &tail, 0);
+ if (refspecs[i].dst && refspecs[i].dst[0])
*autotags = 1;
}
- /* Merge everything on the command line, but not --tags */
+ /* Merge everything on the command line (but not --tags) */
for (rm = ref_map; rm; rm = rm->next)
rm->fetch_head_status = FETCH_HEAD_MERGE;
- if (tags == TAGS_SET)
- get_fetch_map(remote_refs, tag_refspec, &tail, 0);
/*
- * For any refs that we happen to be fetching via command-line
- * arguments, take the opportunity to update their configured
- * counterparts. However, we do not want to mention these
- * entries in FETCH_HEAD at all, as they would simply be
- * duplicates of existing entries.
+ * For any refs that we happen to be fetching via
+ * command-line arguments, the destination ref might
+ * have been missing or have been different than the
+ * remote-tracking ref that would be derived from the
+ * configured refspec. In these cases, we want to
+ * take the opportunity to update their configured
+ * remote-tracking reference. However, we do not want
+ * to mention these entries in FETCH_HEAD at all, as
+ * they would simply be duplicates of existing
+ * entries, so we set them FETCH_HEAD_IGNORE below.
+ *
+ * We compute these entries now, based only on the
+ * refspecs specified on the command line. But we add
+ * them to the list following the refspecs resulting
+ * from the tags option so that one of the latter,
+ * which has FETCH_HEAD_NOT_FOR_MERGE, is not removed
+ * by ref_remove_duplicates() in favor of one of these
+ * opportunistic entries with FETCH_HEAD_IGNORE.
*/
- old_tail = tail;
for (i = 0; i < transport->remote->fetch_refspec_nr; i++)
get_fetch_map(ref_map, &transport->remote->fetch[i],
- &tail, 1);
- for (rm = *old_tail; rm; rm = rm->next)
- rm->fetch_head_status = FETCH_HEAD_IGNORE;
+ &oref_tail, 1);
+
+ if (tags == TAGS_SET)
+ get_fetch_map(remote_refs, tag_refspec, &tail, 0);
} else {
/* Use the defaults */
struct remote *remote = transport->remote;
@@ -238,11 +346,21 @@ static struct ref *get_ref_map(struct transport *transport,
tail = &ref_map->next;
}
}
- if (tags == TAGS_DEFAULT && *autotags)
+
+ if (tags == TAGS_SET)
+ /* also fetch all tags */
+ get_fetch_map(remote_refs, tag_refspec, &tail, 0);
+ else if (tags == TAGS_DEFAULT && *autotags)
find_non_local_tags(transport, &ref_map, &tail);
- ref_remove_duplicates(ref_map);
- return ref_map;
+ /* Now append any refs to be updated opportunistically: */
+ *tail = orefs;
+ for (rm = orefs; rm; rm = rm->next) {
+ rm->fetch_head_status = FETCH_HEAD_IGNORE;
+ tail = &rm->next;
+ }
+
+ return ref_remove_duplicates(ref_map);
}
#define STORE_REF_ERROR_OTHER 1
@@ -612,106 +730,6 @@ static int prune_refs(struct refspec *refs, int ref_count, struct ref *ref_map)
return result;
}
-static int add_existing(const char *refname, const unsigned char *sha1,
- int flag, void *cbdata)
-{
- struct string_list *list = (struct string_list *)cbdata;
- struct string_list_item *item = string_list_insert(list, refname);
- item->util = xmalloc(20);
- hashcpy(item->util, sha1);
- return 0;
-}
-
-static int will_fetch(struct ref **head, const unsigned char *sha1)
-{
- struct ref *rm = *head;
- while (rm) {
- if (!hashcmp(rm->old_sha1, sha1))
- return 1;
- rm = rm->next;
- }
- return 0;
-}
-
-static void find_non_local_tags(struct transport *transport,
- struct ref **head,
- struct ref ***tail)
-{
- struct string_list existing_refs = STRING_LIST_INIT_DUP;
- struct string_list remote_refs = STRING_LIST_INIT_NODUP;
- const struct ref *ref;
- struct string_list_item *item = NULL;
-
- for_each_ref(add_existing, &existing_refs);
- for (ref = transport_get_remote_refs(transport); ref; ref = ref->next) {
- if (prefixcmp(ref->name, "refs/tags/"))
- continue;
-
- /*
- * The peeled ref always follows the matching base
- * ref, so if we see a peeled ref that we don't want
- * to fetch then we can mark the ref entry in the list
- * as one to ignore by setting util to NULL.
- */
- if (!suffixcmp(ref->name, "^{}")) {
- if (item && !has_sha1_file(ref->old_sha1) &&
- !will_fetch(head, ref->old_sha1) &&
- !has_sha1_file(item->util) &&
- !will_fetch(head, item->util))
- item->util = NULL;
- item = NULL;
- continue;
- }
-
- /*
- * If item is non-NULL here, then we previously saw a
- * ref not followed by a peeled reference, so we need
- * to check if it is a lightweight tag that we want to
- * fetch.
- */
- if (item && !has_sha1_file(item->util) &&
- !will_fetch(head, item->util))
- item->util = NULL;
-
- item = NULL;
-
- /* skip duplicates and refs that we already have */
- if (string_list_has_string(&remote_refs, ref->name) ||
- string_list_has_string(&existing_refs, ref->name))
- continue;
-
- item = string_list_insert(&remote_refs, ref->name);
- item->util = (void *)ref->old_sha1;
- }
- string_list_clear(&existing_refs, 1);
-
- /*
- * We may have a final lightweight tag that needs to be
- * checked to see if it needs fetching.
- */
- if (item && !has_sha1_file(item->util) &&
- !will_fetch(head, item->util))
- item->util = NULL;
-
- /*
- * For all the tags in the remote_refs string list,
- * add them to the list of refs to be fetched
- */
- for_each_string_list_item(item, &remote_refs) {
- /* Unless we have already decided to ignore this item... */
- if (item->util)
- {
- struct ref *rm = alloc_ref(item->string);
- rm->peer_ref = alloc_ref(item->string);
- hashcpy(rm->old_sha1, item->util);
- **tail = rm;
- *tail = &rm->next;
- }
- }
-
- string_list_clear(&remote_refs, 0);
-}
-
static void check_not_current_branch(struct ref *ref_map)
{
struct branch *current_branch = branch_get(NULL);
@@ -831,30 +849,16 @@ static int do_fetch(struct transport *transport,
}
if (prune) {
/*
- * If --tags was specified, pretend that the user gave us
- * the canonical tags refspec
+ * We only prune based on refspecs specified
+ * explicitly (via command line or configuration); we
+ * don't care whether --tags was specified.
*/
- if (tags == TAGS_SET) {
- const char *tags_str = "refs/tags/*:refs/tags/*";
- struct refspec *tags_refspec, *refspec;
-
- /* Copy the refspec and add the tags to it */
- refspec = xcalloc(ref_count + 1, sizeof(struct refspec));
- tags_refspec = parse_fetch_refspec(1, &tags_str);
- memcpy(refspec, refs, ref_count * sizeof(struct refspec));
- memcpy(&refspec[ref_count], tags_refspec, sizeof(struct refspec));
- ref_count++;
-
- prune_refs(refspec, ref_count, ref_map);
-
- ref_count--;
- /* The rest of the strings belong to fetch_one */
- free_refspec(1, tags_refspec);
- free(refspec);
- } else if (ref_count) {
+ if (ref_count) {
prune_refs(refs, ref_count, ref_map);
} else {
- prune_refs(transport->remote->fetch, transport->remote->fetch_refspec_nr, ref_map);
+ prune_refs(transport->remote->fetch,
+ transport->remote->fetch_refspec_nr,
+ ref_map);
}
}
free_refs(ref_map);
@@ -930,8 +934,8 @@ static void add_options_to_argv(struct argv_array *argv)
{
if (dry_run)
argv_array_push(argv, "--dry-run");
- if (prune > 0)
- argv_array_push(argv, "--prune");
+ if (prune != -1)
+ argv_array_push(argv, prune ? "--prune" : "--no-prune");
if (update_head_ok)
argv_array_push(argv, "--update-head-ok");
if (force)
diff --git a/builtin/for-each-ref.c b/builtin/for-each-ref.c
index d096051..875bd81 100644
--- a/builtin/for-each-ref.c
+++ b/builtin/for-each-ref.c
@@ -9,6 +9,7 @@
#include "quote.h"
#include "parse-options.h"
#include "remote.h"
+#include "color.h"
/* Quoting styles */
#define QUOTE_NONE 0
@@ -75,6 +76,8 @@ static struct {
{ "upstream" },
{ "symref" },
{ "flag" },
+ { "HEAD" },
+ { "color" },
};
/*
@@ -90,6 +93,7 @@ static struct {
static const char **used_atom;
static cmp_type *used_atom_type;
static int used_atom_cnt, sort_atom_limit, need_tagged, need_symref;
+static int need_color_reset_at_eol;
/*
* Used to parse format string and sort specifiers
@@ -176,13 +180,21 @@ static const char *find_next(const char *cp)
static int verify_format(const char *format)
{
const char *cp, *sp;
+ static const char color_reset[] = "color:reset";
+
+ need_color_reset_at_eol = 0;
for (cp = format; *cp && (sp = find_next(cp)); ) {
const char *ep = strchr(sp, ')');
+ int at;
+
if (!ep)
return error("malformed format string %s", sp);
/* sp points at "%(" and ep points at the closing ")" */
- parse_atom(sp + 2, ep);
+ at = parse_atom(sp + 2, ep);
cp = ep + 1;
+
+ if (!memcmp(used_atom[at], "color:", 6))
+ need_color_reset_at_eol = !!strcmp(used_atom[at], color_reset);
}
return 0;
}
@@ -649,6 +661,7 @@ static void populate_value(struct refinfo *ref)
int deref = 0;
const char *refname;
const char *formatp;
+ struct branch *branch = NULL;
if (*name == '*') {
deref = 1;
@@ -660,7 +673,6 @@ static void populate_value(struct refinfo *ref)
else if (!prefixcmp(name, "symref"))
refname = ref->symref ? ref->symref : "";
else if (!prefixcmp(name, "upstream")) {
- struct branch *branch;
/* only local branches may have an upstream */
if (prefixcmp(ref->refname, "refs/heads/"))
continue;
@@ -670,8 +682,13 @@ static void populate_value(struct refinfo *ref)
!branch->merge[0]->dst)
continue;
refname = branch->merge[0]->dst;
- }
- else if (!strcmp(name, "flag")) {
+ } else if (!prefixcmp(name, "color:")) {
+ char color[COLOR_MAXLEN] = "";
+
+ color_parse(name + 6, "--format", color);
+ v->s = xstrdup(color);
+ continue;
+ } else if (!strcmp(name, "flag")) {
char buf[256], *cp = buf;
if (ref->flag & REF_ISSYMREF)
cp = copy_advance(cp, ",symref");
@@ -684,20 +701,62 @@ static void populate_value(struct refinfo *ref)
v->s = xstrdup(buf + 1);
}
continue;
- }
- else if (!deref && grab_objectname(name, ref->objectname, v))
+ } else if (!deref && grab_objectname(name, ref->objectname, v)) {
continue;
- else
+ } else if (!strcmp(name, "HEAD")) {
+ const char *head;
+ unsigned char sha1[20];
+
+ head = resolve_ref_unsafe("HEAD", sha1, 1, NULL);
+ if (!strcmp(ref->refname, head))
+ v->s = "*";
+ else
+ v->s = " ";
+ continue;
+ } else
continue;
formatp = strchr(name, ':');
- /* look for "short" refname format */
if (formatp) {
+ int num_ours, num_theirs;
+
formatp++;
if (!strcmp(formatp, "short"))
refname = shorten_unambiguous_ref(refname,
warn_ambiguous_refs);
- else
+ else if (!strcmp(formatp, "track") &&
+ !prefixcmp(name, "upstream")) {
+ char buf[40];
+
+ stat_tracking_info(branch, &num_ours, &num_theirs);
+ if (!num_ours && !num_theirs)
+ v->s = "";
+ else if (!num_ours) {
+ sprintf(buf, "[behind %d]", num_theirs);
+ v->s = xstrdup(buf);
+ } else if (!num_theirs) {
+ sprintf(buf, "[ahead %d]", num_ours);
+ v->s = xstrdup(buf);
+ } else {
+ sprintf(buf, "[ahead %d, behind %d]",
+ num_ours, num_theirs);
+ v->s = xstrdup(buf);
+ }
+ continue;
+ } else if (!strcmp(formatp, "trackshort") &&
+ !prefixcmp(name, "upstream")) {
+ assert(branch);
+ stat_tracking_info(branch, &num_ours, &num_theirs);
+ if (!num_ours && !num_theirs)
+ v->s = "=";
+ else if (!num_ours)
+ v->s = "<";
+ else if (!num_theirs)
+ v->s = ">";
+ else
+ v->s = "<>";
+ continue;
+ } else
die("unknown %.*s format %s",
(int)(formatp - name), name, formatp);
}
@@ -875,11 +934,9 @@ static void sort_refs(struct ref_sort *sort, struct refinfo **refs, int num_refs
qsort(refs, num_refs, sizeof(struct refinfo *), compare_refs);
}
-static void print_value(struct refinfo *ref, int atom, int quote_style)
+static void print_value(struct atom_value *v, int quote_style)
{
- struct atom_value *v;
struct strbuf sb = STRBUF_INIT;
- get_value(ref, atom, &v);
switch (quote_style) {
case QUOTE_NONE:
fputs(v->s, stdout);
@@ -946,15 +1003,26 @@ static void show_ref(struct refinfo *info, const char *format, int quote_style)
const char *cp, *sp, *ep;
for (cp = format; *cp && (sp = find_next(cp)); cp = ep + 1) {
+ struct atom_value *atomv;
+
ep = strchr(sp, ')');
if (cp < sp)
emit(cp, sp);
- print_value(info, parse_atom(sp + 2, ep), quote_style);
+ get_value(info, parse_atom(sp + 2, ep), &atomv);
+ print_value(atomv, quote_style);
}
if (*cp) {
sp = cp + strlen(cp);
emit(cp, sp);
}
+ if (need_color_reset_at_eol) {
+ struct atom_value resetv;
+ char color[COLOR_MAXLEN] = "";
+
+ color_parse("reset", "--format", color);
+ resetv.s = color;
+ print_value(&resetv, quote_style);
+ }
putchar('\n');
}
diff --git a/builtin/get-tar-commit-id.c b/builtin/get-tar-commit-id.c
new file mode 100644
index 0000000..aa72596
--- /dev/null
+++ b/builtin/get-tar-commit-id.c
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2005, 2006 Rene Scharfe
+ */
+#include "cache.h"
+#include "commit.h"
+#include "tar.h"
+#include "builtin.h"
+#include "quote.h"
+
+static const char builtin_get_tar_commit_id_usage[] =
+"git get-tar-commit-id < <tarfile>";
+
+/* ustar header + extended global header content */
+#define RECORDSIZE (512)
+#define HEADERSIZE (2 * RECORDSIZE)
+
+int cmd_get_tar_commit_id(int argc, const char **argv, const char *prefix)
+{
+ char buffer[HEADERSIZE];
+ struct ustar_header *header = (struct ustar_header *)buffer;
+ char *content = buffer + RECORDSIZE;
+ ssize_t n;
+
+ if (argc != 1)
+ usage(builtin_get_tar_commit_id_usage);
+
+ n = read_in_full(0, buffer, HEADERSIZE);
+ if (n < HEADERSIZE)
+ die("git get-tar-commit-id: read error");
+ if (header->typeflag[0] != 'g')
+ return 1;
+ if (memcmp(content, "52 comment=", 11))
+ return 1;
+
+ n = write_in_full(1, content + 11, 41);
+ if (n < 41)
+ die_errno("git get-tar-commit-id: write error");
+
+ return 0;
+}
diff --git a/builtin/merge-base.c b/builtin/merge-base.c
index e88eb93..a292323 100644
--- a/builtin/merge-base.c
+++ b/builtin/merge-base.c
@@ -1,6 +1,9 @@
#include "builtin.h"
#include "cache.h"
#include "commit.h"
+#include "refs.h"
+#include "diff.h"
+#include "revision.h"
#include "parse-options.h"
static int show_merge_base(struct commit **rev, int rev_nr, int show_all)
@@ -27,6 +30,7 @@ static const char * const merge_base_usage[] = {
N_("git merge-base [-a|--all] --octopus <commit>..."),
N_("git merge-base --independent <commit>..."),
N_("git merge-base --is-ancestor <commit> <commit>"),
+ N_("git merge-base --fork-point <ref> [<commit>]"),
NULL
};
@@ -85,37 +89,148 @@ static int handle_is_ancestor(int argc, const char **argv)
return 1;
}
+struct rev_collect {
+ struct commit **commit;
+ int nr;
+ int alloc;
+ unsigned int initial : 1;
+};
+
+static void add_one_commit(unsigned char *sha1, struct rev_collect *revs)
+{
+ struct commit *commit;
+
+ if (is_null_sha1(sha1))
+ return;
+
+ commit = lookup_commit(sha1);
+ if (!commit ||
+ (commit->object.flags & TMP_MARK) ||
+ parse_commit(commit))
+ return;
+
+ ALLOC_GROW(revs->commit, revs->nr + 1, revs->alloc);
+ revs->commit[revs->nr++] = commit;
+ commit->object.flags |= TMP_MARK;
+}
+
+static int collect_one_reflog_ent(unsigned char *osha1, unsigned char *nsha1,
+ const char *ident, unsigned long timestamp,
+ int tz, const char *message, void *cbdata)
+{
+ struct rev_collect *revs = cbdata;
+
+ if (revs->initial) {
+ revs->initial = 0;
+ add_one_commit(osha1, revs);
+ }
+ add_one_commit(nsha1, revs);
+ return 0;
+}
+
+static int handle_fork_point(int argc, const char **argv)
+{
+ unsigned char sha1[20];
+ char *refname;
+ const char *commitname;
+ struct rev_collect revs;
+ struct commit *derived;
+ struct commit_list *bases;
+ int i, ret = 0;
+
+ switch (dwim_ref(argv[0], strlen(argv[0]), sha1, &refname)) {
+ case 0:
+ die("No such ref: '%s'", argv[0]);
+ case 1:
+ break; /* good */
+ default:
+ die("Ambiguous refname: '%s'", argv[0]);
+ }
+
+ commitname = (argc == 2) ? argv[1] : "HEAD";
+ if (get_sha1(commitname, sha1))
+ die("Not a valid object name: '%s'", commitname);
+
+ derived = lookup_commit_reference(sha1);
+ memset(&revs, 0, sizeof(revs));
+ revs.initial = 1;
+ for_each_reflog_ent(refname, collect_one_reflog_ent, &revs);
+
+ for (i = 0; i < revs.nr; i++)
+ revs.commit[i]->object.flags &= ~TMP_MARK;
+
+ bases = get_merge_bases_many(derived, revs.nr, revs.commit, 0);
+
+ /*
+ * There should be one and only one merge base, when we found
+ * a common ancestor among reflog entries.
+ */
+ if (!bases || bases->next) {
+ ret = 1;
+ goto cleanup_return;
+ }
+
+ /* And the found one must be one of the reflog entries */
+ for (i = 0; i < revs.nr; i++)
+ if (&bases->item->object == &revs.commit[i]->object)
+ break; /* found */
+ if (revs.nr <= i) {
+ ret = 1; /* not found */
+ goto cleanup_return;
+ }
+
+ printf("%s\n", sha1_to_hex(bases->item->object.sha1));
+
+cleanup_return:
+ free_commit_list(bases);
+ return ret;
+}
+
int cmd_merge_base(int argc, const char **argv, const char *prefix)
{
struct commit **rev;
int rev_nr = 0;
int show_all = 0;
- int octopus = 0;
- int reduce = 0;
- int is_ancestor = 0;
+ int cmdmode = 0;
struct option options[] = {
OPT_BOOL('a', "all", &show_all, N_("output all common ancestors")),
- OPT_BOOL(0, "octopus", &octopus, N_("find ancestors for a single n-way merge")),
- OPT_BOOL(0, "independent", &reduce, N_("list revs not reachable from others")),
- OPT_BOOL(0, "is-ancestor", &is_ancestor,
- N_("is the first one ancestor of the other?")),
+ OPT_CMDMODE(0, "octopus", &cmdmode,
+ N_("find ancestors for a single n-way merge"), 'o'),
+ OPT_CMDMODE(0, "independent", &cmdmode,
+ N_("list revs not reachable from others"), 'r'),
+ OPT_CMDMODE(0, "is-ancestor", &cmdmode,
+ N_("is the first one ancestor of the other?"), 'a'),
+ OPT_CMDMODE(0, "fork-point", &cmdmode,
+ N_("find where <commit> forked from reflog of <ref>"), 'f'),
OPT_END()
};
git_config(git_default_config, NULL);
argc = parse_options(argc, argv, prefix, options, merge_base_usage, 0);
- if (!octopus && !reduce && argc < 2)
- usage_with_options(merge_base_usage, options);
- if (is_ancestor && (show_all || octopus || reduce))
- die("--is-ancestor cannot be used with other options");
- if (is_ancestor)
+
+ if (cmdmode == 'a') {
+ if (argc < 2)
+ usage_with_options(merge_base_usage, options);
+ if (show_all)
+ die("--is-ancestor cannot be used with --all");
return handle_is_ancestor(argc, argv);
- if (reduce && (show_all || octopus))
- die("--independent cannot be used with other options");
+ }
+
+ if (cmdmode == 'r' && show_all)
+ die("--independent cannot be used with --all");
- if (octopus || reduce)
- return handle_octopus(argc, argv, reduce, show_all);
+ if (cmdmode == 'r' || cmdmode == 'o')
+ return handle_octopus(argc, argv, cmdmode == 'r', show_all);
+
+ if (cmdmode == 'f') {
+ if (argc < 1 || 2 < argc)
+ usage_with_options(merge_base_usage, options);
+ return handle_fork_point(argc, argv);
+ }
+
+ if (argc < 2)
+ usage_with_options(merge_base_usage, options);
rev = xmalloc(argc * sizeof(*rev));
while (argc-- > 0)
diff --git a/builtin/merge.c b/builtin/merge.c
index 02a69c1..41fb66d 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c
@@ -186,13 +186,6 @@ static int option_parse_n(const struct option *opt,
return 0;
}
-static int option_parse_ff_only(const struct option *opt,
- const char *arg, int unset)
-{
- fast_forward = FF_ONLY;
- return 0;
-}
-
static struct option builtin_merge_options[] = {
{ OPTION_CALLBACK, 'n', NULL, NULL, NULL,
N_("do not show a diffstat at the end of the merge"),
@@ -210,9 +203,9 @@ static struct option builtin_merge_options[] = {
OPT_BOOL('e', "edit", &option_edit,
N_("edit message before committing")),
OPT_SET_INT(0, "ff", &fast_forward, N_("allow fast-forward (default)"), FF_ALLOW),
- { OPTION_CALLBACK, 0, "ff-only", NULL, NULL,
+ { OPTION_SET_INT, 0, "ff-only", &fast_forward, NULL,
N_("abort if fast-forward is not possible"),
- PARSE_OPT_NOARG | PARSE_OPT_NONEG, option_parse_ff_only },
+ PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, FF_ONLY },
OPT_RERERE_AUTOUPDATE(&allow_rerere_auto),
OPT_BOOL(0, "verify-signatures", &verify_signatures,
N_("Verify that the named commit has a valid GPG signature")),
diff --git a/builtin/name-rev.c b/builtin/name-rev.c
index 20fcf8c..23daaa7 100644
--- a/builtin/name-rev.c
+++ b/builtin/name-rev.c
@@ -27,8 +27,7 @@ static void name_rev(struct commit *commit,
struct commit_list *parents;
int parent_number = 1;
- if (!commit->object.parsed)
- parse_commit(commit);
+ parse_commit(commit);
if (commit->date < cutoff)
return;
diff --git a/builtin/push.c b/builtin/push.c
index 7b1b66c..a73982a 100644
--- a/builtin/push.c
+++ b/builtin/push.c
@@ -174,6 +174,13 @@ N_("push.default is unset; its implicit value is changing in\n"
"\n"
" git config --global push.default simple\n"
"\n"
+ "When push.default is set to 'matching', git will push local branches\n"
+ "to the remote branches that already exist with the same name.\n"
+ "\n"
+ "In Git 2.0, Git will default to the more conservative 'simple'\n"
+ "behavior, which only pushes the current branch to the corresponding\n"
+ "remote branch that 'git pull' uses to update the current branch.\n"
+ "\n"
"See 'git help config' and search for 'push.default' for further information.\n"
"(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
"'current' instead of 'simple' if you sometimes use older versions of Git)");
diff --git a/builtin/remote.c b/builtin/remote.c
index 4e14891..f532f35 100644
--- a/builtin/remote.c
+++ b/builtin/remote.c
@@ -6,6 +6,7 @@
#include "strbuf.h"
#include "run-command.h"
#include "refs.h"
+#include "argv-array.h"
static const char * const builtin_remote_usage[] = {
N_("git remote [-v | --verbose]"),
@@ -77,9 +78,6 @@ static const char * const builtin_remote_seturl_usage[] = {
static int verbose;
-static int show_all(void);
-static int prune_remote(const char *remote, int dry_run);
-
static inline int postfixcmp(const char *string, const char *postfix)
{
int len1 = strlen(string), len2 = strlen(postfix);
@@ -1084,6 +1082,64 @@ static int show_push_info_item(struct string_list_item *item, void *cb_data)
return 0;
}
+static int get_one_entry(struct remote *remote, void *priv)
+{
+ struct string_list *list = priv;
+ struct strbuf url_buf = STRBUF_INIT;
+ const char **url;
+ int i, url_nr;
+
+ if (remote->url_nr > 0) {
+ strbuf_addf(&url_buf, "%s (fetch)", remote->url[0]);
+ string_list_append(list, remote->name)->util =
+ strbuf_detach(&url_buf, NULL);
+ } else
+ string_list_append(list, remote->name)->util = NULL;
+ if (remote->pushurl_nr) {
+ url = remote->pushurl;
+ url_nr = remote->pushurl_nr;
+ } else {
+ url = remote->url;
+ url_nr = remote->url_nr;
+ }
+ for (i = 0; i < url_nr; i++)
+ {
+ strbuf_addf(&url_buf, "%s (push)", url[i]);
+ string_list_append(list, remote->name)->util =
+ strbuf_detach(&url_buf, NULL);
+ }
+
+ return 0;
+}
+
+static int show_all(void)
+{
+ struct string_list list = STRING_LIST_INIT_NODUP;
+ int result;
+
+ list.strdup_strings = 1;
+ result = for_each_remote(get_one_entry, &list);
+
+ if (!result) {
+ int i;
+
+ sort_string_list(&list);
+ for (i = 0; i < list.nr; i++) {
+ struct string_list_item *item = list.items + i;
+ if (verbose)
+ printf("%s\t%s\n", item->string,
+ item->util ? (const char *)item->util : "");
+ else {
+ if (i && !strcmp((item - 1)->string, item->string))
+ continue;
+ printf("%s\n", item->string);
+ }
+ }
+ }
+ string_list_clear(&list, 1);
+ return result;
+}
+
static int show(int argc, const char **argv)
{
int no_query = 0, result = 0, query_flag = 0;
@@ -1246,26 +1302,6 @@ static int set_head(int argc, const char **argv)
return result;
}
-static int prune(int argc, const char **argv)
-{
- int dry_run = 0, result = 0;
- struct option options[] = {
- OPT__DRY_RUN(&dry_run, N_("dry run")),
- OPT_END()
- };
-
- argc = parse_options(argc, argv, NULL, options, builtin_remote_prune_usage,
- 0);
-
- if (argc < 1)
- usage_with_options(builtin_remote_prune_usage, options);
-
- for (; argc; argc--, argv++)
- result |= prune_remote(*argv, dry_run);
-
- return result;
-}
-
static int prune_remote(const char *remote, int dry_run)
{
int result = 0, i;
@@ -1304,6 +1340,26 @@ static int prune_remote(const char *remote, int dry_run)
return result;
}
+static int prune(int argc, const char **argv)
+{
+ int dry_run = 0, result = 0;
+ struct option options[] = {
+ OPT__DRY_RUN(&dry_run, N_("dry run")),
+ OPT_END()
+ };
+
+ argc = parse_options(argc, argv, NULL, options, builtin_remote_prune_usage,
+ 0);
+
+ if (argc < 1)
+ usage_with_options(builtin_remote_prune_usage, options);
+
+ for (; argc; argc--, argv++)
+ result |= prune_remote(*argv, dry_run);
+
+ return result;
+}
+
static int get_remote_default(const char *key, const char *value, void *priv)
{
if (strcmp(key, "remotes.default") == 0) {
@@ -1315,42 +1371,42 @@ static int get_remote_default(const char *key, const char *value, void *priv)
static int update(int argc, const char **argv)
{
- int i, prune = 0;
+ int i, prune = -1;
struct option options[] = {
OPT_BOOL('p', "prune", &prune,
N_("prune remotes after fetching")),
OPT_END()
};
- const char **fetch_argv;
- int fetch_argc = 0;
+ struct argv_array fetch_argv = ARGV_ARRAY_INIT;
int default_defined = 0;
-
- fetch_argv = xmalloc(sizeof(char *) * (argc+5));
+ int retval;
argc = parse_options(argc, argv, NULL, options, builtin_remote_update_usage,
PARSE_OPT_KEEP_ARGV0);
- fetch_argv[fetch_argc++] = "fetch";
+ argv_array_push(&fetch_argv, "fetch");
- if (prune)
- fetch_argv[fetch_argc++] = "--prune";
+ if (prune != -1)
+ argv_array_push(&fetch_argv, prune ? "--prune" : "--no-prune");
if (verbose)
- fetch_argv[fetch_argc++] = "-v";
- fetch_argv[fetch_argc++] = "--multiple";
+ argv_array_push(&fetch_argv, "-v");
+ argv_array_push(&fetch_argv, "--multiple");
if (argc < 2)
- fetch_argv[fetch_argc++] = "default";
+ argv_array_push(&fetch_argv, "default");
for (i = 1; i < argc; i++)
- fetch_argv[fetch_argc++] = argv[i];
+ argv_array_push(&fetch_argv, argv[i]);
- if (strcmp(fetch_argv[fetch_argc-1], "default") == 0) {
+ if (strcmp(fetch_argv.argv[fetch_argv.argc-1], "default") == 0) {
git_config(get_remote_default, &default_defined);
- if (!default_defined)
- fetch_argv[fetch_argc-1] = "--all";
+ if (!default_defined) {
+ argv_array_pop(&fetch_argv);
+ argv_array_push(&fetch_argv, "--all");
+ }
}
- fetch_argv[fetch_argc] = NULL;
-
- return run_command_v_opt(fetch_argv, RUN_GIT_CMD);
+ retval = run_command_v_opt(fetch_argv.argv, RUN_GIT_CMD);
+ argv_array_clear(&fetch_argv);
+ return retval;
}
static int remove_all_fetch_refspecs(const char *remote, const char *key)
@@ -1505,64 +1561,6 @@ static int set_url(int argc, const char **argv)
return 0;
}
-static int get_one_entry(struct remote *remote, void *priv)
-{
- struct string_list *list = priv;
- struct strbuf url_buf = STRBUF_INIT;
- const char **url;
- int i, url_nr;
-
- if (remote->url_nr > 0) {
- strbuf_addf(&url_buf, "%s (fetch)", remote->url[0]);
- string_list_append(list, remote->name)->util =
- strbuf_detach(&url_buf, NULL);
- } else
- string_list_append(list, remote->name)->util = NULL;
- if (remote->pushurl_nr) {
- url = remote->pushurl;
- url_nr = remote->pushurl_nr;
- } else {
- url = remote->url;
- url_nr = remote->url_nr;
- }
- for (i = 0; i < url_nr; i++)
- {
- strbuf_addf(&url_buf, "%s (push)", url[i]);
- string_list_append(list, remote->name)->util =
- strbuf_detach(&url_buf, NULL);
- }
-
- return 0;
-}
-
-static int show_all(void)
-{
- struct string_list list = STRING_LIST_INIT_NODUP;
- int result;
-
- list.strdup_strings = 1;
- result = for_each_remote(get_one_entry, &list);
-
- if (!result) {
- int i;
-
- sort_string_list(&list);
- for (i = 0; i < list.nr; i++) {
- struct string_list_item *item = list.items + i;
- if (verbose)
- printf("%s\t%s\n", item->string,
- item->util ? (const char *)item->util : "");
- else {
- if (i && !strcmp((item - 1)->string, item->string))
- continue;
- printf("%s\n", item->string);
- }
- }
- }
- string_list_clear(&list, 1);
- return result;
-}
-
int cmd_remote(int argc, const char **argv, const char *prefix)
{
struct option options[] = {
diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c
index c76b89d..1d9ecaf 100644
--- a/builtin/rev-parse.c
+++ b/builtin/rev-parse.c
@@ -9,6 +9,8 @@
#include "quote.h"
#include "builtin.h"
#include "parse-options.h"
+#include "diff.h"
+#include "revision.h"
#define DO_REVS 1
#define DO_NOREV 2
@@ -30,6 +32,9 @@ static int abbrev_ref;
static int abbrev_ref_strict;
static int output_sq;
+static int stuck_long;
+static struct string_list *ref_excludes;
+
/*
* Some arguments are relevant "revision" arguments,
* others are about output format or other details.
@@ -185,6 +190,8 @@ static int show_default(void)
static int show_reference(const char *refname, const unsigned char *sha1, int flag, void *cb_data)
{
+ if (ref_excluded(ref_excludes, refname))
+ return 0;
show_rev(NORMAL, sha1, refname);
return 0;
}
@@ -320,12 +327,15 @@ static int parseopt_dump(const struct option *o, const char *arg, int unset)
struct strbuf *parsed = o->value;
if (unset)
strbuf_addf(parsed, " --no-%s", o->long_name);
- else if (o->short_name)
+ else if (o->short_name && (o->long_name == NULL || !stuck_long))
strbuf_addf(parsed, " -%c", o->short_name);
else
strbuf_addf(parsed, " --%s", o->long_name);
if (arg) {
- strbuf_addch(parsed, ' ');
+ if (!stuck_long)
+ strbuf_addch(parsed, ' ');
+ else if (o->long_name)
+ strbuf_addch(parsed, '=');
sq_quote_buf(parsed, arg);
}
return 0;
@@ -351,6 +361,8 @@ static int cmd_parseopt(int argc, const char **argv, const char *prefix)
OPT_BOOL(0, "stop-at-non-option", &stop_at_non_option,
N_("stop parsing after the "
"first non-option argument")),
+ OPT_BOOL(0, "stuck-long", &stuck_long,
+ N_("output in stuck long form")),
OPT_END(),
};
@@ -618,32 +630,43 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix)
if (!prefixcmp(arg, "--branches=")) {
for_each_glob_ref_in(show_reference, arg + 11,
"refs/heads/", NULL);
+ clear_ref_exclusion(&ref_excludes);
continue;
}
if (!strcmp(arg, "--branches")) {
for_each_branch_ref(show_reference, NULL);
+ clear_ref_exclusion(&ref_excludes);
continue;
}
if (!prefixcmp(arg, "--tags=")) {
for_each_glob_ref_in(show_reference, arg + 7,
"refs/tags/", NULL);
+ clear_ref_exclusion(&ref_excludes);
continue;
}
if (!strcmp(arg, "--tags")) {
for_each_tag_ref(show_reference, NULL);
+ clear_ref_exclusion(&ref_excludes);
continue;
}
if (!prefixcmp(arg, "--glob=")) {
for_each_glob_ref(show_reference, arg + 7, NULL);
+ clear_ref_exclusion(&ref_excludes);
continue;
}
if (!prefixcmp(arg, "--remotes=")) {
for_each_glob_ref_in(show_reference, arg + 10,
"refs/remotes/", NULL);
+ clear_ref_exclusion(&ref_excludes);
continue;
}
if (!strcmp(arg, "--remotes")) {
for_each_remote_ref(show_reference, NULL);
+ clear_ref_exclusion(&ref_excludes);
+ continue;
+ }
+ if (!prefixcmp(arg, "--exclude=")) {
+ add_ref_exclusion(&ref_excludes, arg + 10);
continue;
}
if (!strcmp(arg, "--local-env-vars")) {
diff --git a/builtin/show-branch.c b/builtin/show-branch.c
index 001f29c..46902c3 100644
--- a/builtin/show-branch.c
+++ b/builtin/show-branch.c
@@ -227,8 +227,7 @@ static void join_revs(struct commit_list **list_p,
parents = parents->next;
if ((this_flag & flags) == flags)
continue;
- if (!p->object.parsed)
- parse_commit(p);
+ parse_commit(p);
if (mark_seen(p, seen_p) && !still_interesting)
extra--;
p->object.flags |= flags;
diff --git a/builtin/tar-tree.c b/builtin/tar-tree.c
deleted file mode 100644
index ba3ffe6..0000000
--- a/builtin/tar-tree.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (c) 2005, 2006 Rene Scharfe
- */
-#include "cache.h"
-#include "commit.h"
-#include "tar.h"
-#include "builtin.h"
-#include "quote.h"
-
-static const char tar_tree_usage[] =
-"git tar-tree [--remote=<repo>] <tree-ish> [basedir]\n"
-"*** Note that this command is now deprecated; use \"git archive\" instead.";
-
-static const char builtin_get_tar_commit_id_usage[] =
-"git get-tar-commit-id < <tarfile>";
-
-int cmd_tar_tree(int argc, const char **argv, const char *prefix)
-{
- /*
- * "git tar-tree" is now a wrapper around "git archive --format=tar"
- *
- * $0 --remote=<repo> arg... ==>
- * git archive --format=tar --remote=<repo> arg...
- * $0 tree-ish ==>
- * git archive --format=tar tree-ish
- * $0 tree-ish basedir ==>
- * git archive --format-tar --prefix=basedir tree-ish
- */
- const char **nargv = xcalloc(sizeof(*nargv), argc + 3);
- struct strbuf sb = STRBUF_INIT;
- char *basedir_arg;
- int nargc = 0;
-
- nargv[nargc++] = "archive";
- nargv[nargc++] = "--format=tar";
-
- if (2 <= argc && !prefixcmp(argv[1], "--remote=")) {
- nargv[nargc++] = argv[1];
- argv++;
- argc--;
- }
-
- /*
- * Because it's just a compatibility wrapper, tar-tree supports only
- * the old behaviour of reading attributes from the work tree.
- */
- nargv[nargc++] = "--worktree-attributes";
-
- switch (argc) {
- default:
- usage(tar_tree_usage);
- break;
- case 3:
- /* base-path */
- basedir_arg = xmalloc(strlen(argv[2]) + 11);
- sprintf(basedir_arg, "--prefix=%s/", argv[2]);
- nargv[nargc++] = basedir_arg;
- /* fallthru */
- case 2:
- /* tree-ish */
- nargv[nargc++] = argv[1];
- }
- nargv[nargc] = NULL;
-
- fprintf(stderr,
- "*** \"git tar-tree\" is now deprecated.\n"
- "*** Running \"git archive\" instead.\n***");
- sq_quote_argv(&sb, nargv, 0);
- strbuf_addch(&sb, '\n');
- fputs(sb.buf, stderr);
- strbuf_release(&sb);
- return cmd_archive(nargc, nargv, prefix);
-}
-
-/* ustar header + extended global header content */
-#define RECORDSIZE (512)
-#define HEADERSIZE (2 * RECORDSIZE)
-
-int cmd_get_tar_commit_id(int argc, const char **argv, const char *prefix)
-{
- char buffer[HEADERSIZE];
- struct ustar_header *header = (struct ustar_header *)buffer;
- char *content = buffer + RECORDSIZE;
- ssize_t n;
-
- if (argc != 1)
- usage(builtin_get_tar_commit_id_usage);
-
- n = read_in_full(0, buffer, HEADERSIZE);
- if (n < HEADERSIZE)
- die("git get-tar-commit-id: read error");
- if (header->typeflag[0] != 'g')
- return 1;
- if (memcmp(content, "52 comment=", 11))
- return 1;
-
- n = write_in_full(1, content + 11, 41);
- if (n < 41)
- die_errno("git get-tar-commit-id: write error");
-
- return 0;
-}
diff --git a/bundle.c b/bundle.c
index 3d64311..e99065c 100644
--- a/bundle.c
+++ b/bundle.c
@@ -7,6 +7,7 @@
#include "list-objects.h"
#include "run-command.h"
#include "refs.h"
+#include "argv-array.h"
static const char bundle_signature[] = "# v2 git bundle\n";
@@ -234,13 +235,13 @@ static int is_tag_in_date_range(struct object *tag, struct rev_info *revs)
}
int create_bundle(struct bundle_header *header, const char *path,
- int argc, const char **argv)
+ int argc, const char **argv)
{
static struct lock_file lock;
int bundle_fd = -1;
int bundle_to_stdout;
- const char **argv_boundary = xmalloc((argc + 4) * sizeof(const char *));
- const char **argv_pack = xmalloc(6 * sizeof(const char *));
+ struct argv_array argv_boundary = ARGV_ARRAY_INIT;
+ struct argv_array argv_pack = ARGV_ARRAY_INIT;
int i, ref_count = 0;
struct strbuf buf = STRBUF_INIT;
struct rev_info revs;
@@ -262,13 +263,14 @@ int create_bundle(struct bundle_header *header, const char *path,
init_revisions(&revs, NULL);
/* write prerequisites */
- memcpy(argv_boundary + 3, argv + 1, argc * sizeof(const char *));
- argv_boundary[0] = "rev-list";
- argv_boundary[1] = "--boundary";
- argv_boundary[2] = "--pretty=oneline";
- argv_boundary[argc + 2] = NULL;
+ argv_array_pushl(&argv_boundary,
+ "rev-list", "--boundary", "--pretty=oneline",
+ NULL);
+ for (i = 1; i < argc; i++)
+ argv_array_push(&argv_boundary, argv[i]);
+
memset(&rls, 0, sizeof(rls));
- rls.argv = argv_boundary;
+ rls.argv = argv_boundary.argv;
rls.out = -1;
rls.git_cmd = 1;
if (start_command(&rls))
@@ -383,14 +385,12 @@ int create_bundle(struct bundle_header *header, const char *path,
write_or_die(bundle_fd, "\n", 1);
/* write pack */
- argv_pack[0] = "pack-objects";
- argv_pack[1] = "--all-progress-implied";
- argv_pack[2] = "--stdout";
- argv_pack[3] = "--thin";
- argv_pack[4] = "--delta-base-offset";
- argv_pack[5] = NULL;
+ argv_array_pushl(&argv_pack,
+ "pack-objects", "--all-progress-implied",
+ "--stdout", "--thin", "--delta-base-offset",
+ NULL);
memset(&rls, 0, sizeof(rls));
- rls.argv = argv_pack;
+ rls.argv = argv_pack.argv;
rls.in = -1;
rls.out = bundle_fd;
rls.git_cmd = 1;
diff --git a/command-list.txt b/command-list.txt
index 08b04e2..cf36c3d 100644
--- a/command-list.txt
+++ b/command-list.txt
@@ -64,7 +64,6 @@ git-init mainporcelain common
git-instaweb ancillaryinterrogators
gitk mainporcelain
git-log mainporcelain common
-git-lost-found ancillarymanipulators deprecated
git-ls-files plumbinginterrogators
git-ls-remote plumbinginterrogators
git-ls-tree plumbinginterrogators
@@ -88,7 +87,6 @@ git-pack-redundant plumbinginterrogators
git-pack-refs ancillarymanipulators
git-parse-remote synchelpers
git-patch-id purehelpers
-git-peek-remote purehelpers deprecated
git-prune ancillarymanipulators
git-prune-packed plumbingmanipulators
git-pull mainporcelain common
@@ -102,7 +100,6 @@ git-relink ancillarymanipulators
git-remote ancillarymanipulators
git-repack ancillarymanipulators
git-replace ancillarymanipulators
-git-repo-config ancillarymanipulators deprecated
git-request-pull foreignscminterface
git-rerere ancillaryinterrogators
git-reset mainporcelain common
@@ -127,7 +124,6 @@ git-submodule mainporcelain
git-svn foreignscminterface
git-symbolic-ref plumbingmanipulators
git-tag mainporcelain common
-git-tar-tree plumbinginterrogators deprecated
git-unpack-file plumbinginterrogators
git-unpack-objects plumbingmanipulators
git-update-index plumbingmanipulators
diff --git a/commit-slab.h b/commit-slab.h
index d4c8286..cc114b5 100644
--- a/commit-slab.h
+++ b/commit-slab.h
@@ -22,8 +22,17 @@
*
* Initializes the indegree slab that associates an array of integers
* to each commit. 'stride' specifies how big each array is. The slab
- * that id initialied by the variant without "_with_stride" associates
+ * that is initialized by the variant without "_with_stride" associates
* each commit with an array of one integer.
+ *
+ * - void clear_indegree(struct indegree *);
+ *
+ * Empties the slab. The slab can be reused with the same stride
+ * without calling init_indegree() again or can be reconfigured to a
+ * different stride by calling init_indegree_with_stride().
+ *
+ * Call this function before the slab falls out of scope to avoid
+ * leaking memory.
*/
/* allocate ~512kB at once, allowing for malloc overhead */
@@ -31,6 +40,8 @@
#define COMMIT_SLAB_SIZE (512*1024-32)
#endif
+#define MAYBE_UNUSED __attribute__((__unused__))
+
#define define_commit_slab(slabname, elemtype) \
\
struct slabname { \
@@ -41,8 +52,8 @@ struct slabname { \
}; \
static int stat_ ##slabname## realloc; \
\
-static void init_ ##slabname## _with_stride(struct slabname *s, \
- unsigned stride) \
+static MAYBE_UNUSED void init_ ##slabname## _with_stride(struct slabname *s, \
+ unsigned stride) \
{ \
unsigned int elem_size; \
if (!stride) \
@@ -54,12 +65,12 @@ static void init_ ##slabname## _with_stride(struct slabname *s, \
s->slab = NULL; \
} \
\
-static void init_ ##slabname(struct slabname *s) \
+static MAYBE_UNUSED void init_ ##slabname(struct slabname *s) \
{ \
init_ ##slabname## _with_stride(s, 1); \
} \
\
-static void clear_ ##slabname(struct slabname *s) \
+static MAYBE_UNUSED void clear_ ##slabname(struct slabname *s) \
{ \
int i; \
for (i = 0; i < s->slab_count; i++) \
@@ -69,8 +80,8 @@ static void clear_ ##slabname(struct slabname *s) \
s->slab = NULL; \
} \
\
-static elemtype *slabname## _at(struct slabname *s, \
- const struct commit *c) \
+static MAYBE_UNUSED elemtype *slabname## _at(struct slabname *s, \
+ const struct commit *c) \
{ \
int nth_slab, nth_slot; \
\
@@ -80,7 +91,7 @@ static elemtype *slabname## _at(struct slabname *s, \
if (s->slab_count <= nth_slab) { \
int i; \
s->slab = xrealloc(s->slab, \
- (nth_slab + 1) * sizeof(s->slab)); \
+ (nth_slab + 1) * sizeof(*s->slab)); \
stat_ ##slabname## realloc++; \
for (i = s->slab_count; i <= nth_slab; i++) \
s->slab[i] = NULL; \
@@ -94,4 +105,16 @@ static elemtype *slabname## _at(struct slabname *s, \
\
static int stat_ ##slabname## realloc
+/*
+ * Note that this seemingly redundant second declaration is required
+ * to allow a terminating semicolon, which makes instantiations look
+ * like function declarations. I.e., the expansion of
+ *
+ * define_commit_slab(indegree, int);
+ *
+ * ends in 'static int stat_indegreerealloc;'. This would otherwise
+ * be a syntax error according (at least) to ISO C. It's hard to
+ * catch because GCC silently parses it by default.
+ */
+
#endif /* COMMIT_SLAB_H */
diff --git a/commit.c b/commit.c
index de16a3c..11509ff 100644
--- a/commit.c
+++ b/commit.c
@@ -79,7 +79,7 @@ struct commit *lookup_commit_reference_by_name(const char *name)
if (get_sha1_committish(name, sha1))
return NULL;
commit = lookup_commit_reference(sha1);
- if (!commit || parse_commit(commit))
+ if (parse_commit(commit))
return NULL;
return commit;
}
@@ -341,6 +341,13 @@ int parse_commit(struct commit *item)
return ret;
}
+void parse_commit_or_die(struct commit *item)
+{
+ if (parse_commit(item))
+ die("unable to parse commit %s",
+ item ? sha1_to_hex(item->object.sha1) : "(null)");
+}
+
int find_commit_subject(const char *commit_buffer, const char **subject)
{
const char *eol;
diff --git a/commit.h b/commit.h
index bd841f4..934af88 100644
--- a/commit.h
+++ b/commit.h
@@ -49,6 +49,7 @@ struct commit *lookup_commit_or_die(const unsigned char *sha1, const char *ref_n
int parse_commit_buffer(struct commit *item, const void *buffer, unsigned long size);
int parse_commit(struct commit *item);
+void parse_commit_or_die(struct commit *item);
/* Find beginning and length of commit subject. */
int find_commit_subject(const char *commit_buffer, const char **subject);
diff --git a/config.c b/config.c
index e1d66a1..a2c22ab 100644
--- a/config.c
+++ b/config.c
@@ -1210,15 +1210,14 @@ int git_config(config_fn_t fn, void *data)
* Find all the stuff for git_config_set() below.
*/
-#define MAX_MATCHES 512
-
static struct {
int baselen;
char *key;
int do_not_match;
regex_t *value_regex;
int multi_replace;
- size_t offset[MAX_MATCHES];
+ size_t *offset;
+ unsigned int offset_alloc;
enum { START, SECTION_SEEN, SECTION_END_SEEN, KEY_SEEN } state;
int seen;
} store;
@@ -1241,11 +1240,11 @@ static int store_aux(const char *key, const char *value, void *cb)
if (matches(key, value)) {
if (store.seen == 1 && store.multi_replace == 0) {
warning("%s has multiple values", key);
- } else if (store.seen >= MAX_MATCHES) {
- error("too many matches for %s", key);
- return 1;
}
+ ALLOC_GROW(store.offset, store.seen + 1,
+ store.offset_alloc);
+
store.offset[store.seen] = cf->do_ftell(cf);
store.seen++;
}
@@ -1273,11 +1272,15 @@ static int store_aux(const char *key, const char *value, void *cb)
* Do not increment matches: this is no match, but we
* just made sure we are in the desired section.
*/
+ ALLOC_GROW(store.offset, store.seen + 1,
+ store.offset_alloc);
store.offset[store.seen] = cf->do_ftell(cf);
/* fallthru */
case SECTION_END_SEEN:
case START:
if (matches(key, value)) {
+ ALLOC_GROW(store.offset, store.seen + 1,
+ store.offset_alloc);
store.offset[store.seen] = cf->do_ftell(cf);
store.state = KEY_SEEN;
store.seen++;
@@ -1285,6 +1288,9 @@ static int store_aux(const char *key, const char *value, void *cb)
if (strrchr(key, '.') - key == store.baselen &&
!strncmp(key, store.key, store.baselen)) {
store.state = SECTION_SEEN;
+ ALLOC_GROW(store.offset,
+ store.seen + 1,
+ store.offset_alloc);
store.offset[store.seen] = cf->do_ftell(cf);
}
}
@@ -1583,6 +1589,7 @@ int git_config_set_multivar_in_file(const char *config_filename,
}
}
+ ALLOC_GROW(store.offset, 1, store.offset_alloc);
store.offset[0] = 0;
store.state = START;
store.seen = 0;
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index dba3c15..874611d 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -673,7 +673,6 @@ __git_list_porcelain_commands ()
index-pack) : plumbing;;
init-db) : deprecated;;
local-fetch) : plumbing;;
- lost-found) : infrequent;;
ls-files) : plumbing;;
ls-remote) : plumbing;;
ls-tree) : plumbing;;
@@ -687,14 +686,12 @@ __git_list_porcelain_commands ()
pack-refs) : plumbing;;
parse-remote) : plumbing;;
patch-id) : plumbing;;
- peek-remote) : plumbing;;
prune) : plumbing;;
prune-packed) : plumbing;;
quiltimport) : import;;
read-tree) : plumbing;;
receive-pack) : plumbing;;
remote-*) : transport;;
- repo-config) : deprecated;;
rerere) : plumbing;;
rev-list) : plumbing;;
rev-parse) : plumbing;;
@@ -707,7 +704,6 @@ __git_list_porcelain_commands ()
ssh-*) : transport;;
stripspace) : plumbing;;
symbolic-ref) : plumbing;;
- tar-tree) : deprecated;;
unpack-file) : plumbing;;
unpack-objects) : plumbing;;
update-index) : plumbing;;
diff --git a/contrib/examples/git-whatchanged.sh b/contrib/examples/git-whatchanged.sh
index 1fb9feb..2edbdc6 100755
--- a/contrib/examples/git-whatchanged.sh
+++ b/contrib/examples/git-whatchanged.sh
@@ -9,12 +9,12 @@ case "$0" in
*whatchanged)
count=
test -z "$diff_tree_flags" &&
- diff_tree_flags=$(git-repo-config --get whatchanged.difftree)
+ diff_tree_flags=$(git config --get whatchanged.difftree)
diff_tree_default_flags='-c -M --abbrev' ;;
*show)
count=-n1
test -z "$diff_tree_flags" &&
- diff_tree_flags=$(git-repo-config --get show.difftree)
+ diff_tree_flags=$(git config --get show.difftree)
diff_tree_default_flags='--cc --always' ;;
esac
test -z "$diff_tree_flags" &&
diff --git a/contrib/gitview/gitview b/contrib/gitview/gitview
index 4c99dfb..4e23c65 100755
--- a/contrib/gitview/gitview
+++ b/contrib/gitview/gitview
@@ -1205,7 +1205,7 @@ class GitView(object):
#The first parent always continue on the same line
try:
- # check we alreay have the value
+ # check we already have the value
tmp_node_pos = self.nodepos[commit.parent_sha1[0]]
except KeyError:
self.colours[commit.parent_sha1[0]] = colour
diff --git a/contrib/mw-to-git/Makefile b/contrib/mw-to-git/Makefile
index f206f96..a4b6f7a 100644
--- a/contrib/mw-to-git/Makefile
+++ b/contrib/mw-to-git/Makefile
@@ -18,9 +18,13 @@ SCRIPT_PERL+=git-mw.perl
GIT_ROOT_DIR=../..
HERE=contrib/mw-to-git/
+INSTALL = install
+
SCRIPT_PERL_FULL=$(patsubst %,$(HERE)/%,$(SCRIPT_PERL))
INSTLIBDIR=$(shell $(MAKE) -C $(GIT_ROOT_DIR)/perl \
-s --no-print-directory instlibdir)
+DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
+INSTLIBDIR_SQ = $(subst ','\'',$(INSTLIBDIR))
all: build
@@ -30,7 +34,9 @@ test: all
check: perlcritic test
install_pm:
- install $(GIT_MEDIAWIKI_PM) $(INSTLIBDIR)/$(GIT_MEDIAWIKI_PM)
+ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(INSTLIBDIR_SQ)/Git'
+ $(INSTALL) -m 644 $(GIT_MEDIAWIKI_PM) \
+ '$(DESTDIR_SQ)$(INSTLIBDIR_SQ)/$(GIT_MEDIAWIKI_PM)'
build:
$(MAKE) -C $(GIT_ROOT_DIR) SCRIPT_PERL="$(SCRIPT_PERL_FULL)" \
@@ -43,7 +49,6 @@ install: install_pm
clean:
$(MAKE) -C $(GIT_ROOT_DIR) SCRIPT_PERL="$(SCRIPT_PERL_FULL)" \
clean-perl-script
- rm $(INSTLIBDIR)/$(GIT_MEDIAWIKI_PM)
perlcritic:
perlcritic -5 $(SCRIPT_PERL)
diff --git a/contrib/mw-to-git/git-remote-mediawiki.perl b/contrib/mw-to-git/git-remote-mediawiki.perl
index 476e0a2..3f8d993 100755
--- a/contrib/mw-to-git/git-remote-mediawiki.perl
+++ b/contrib/mw-to-git/git-remote-mediawiki.perl
@@ -1315,7 +1315,7 @@ sub get_mw_namespace_id {
# Store "notANameSpace" as special value for inexisting namespaces
my $store_id = ($id || 'notANameSpace');
- # Store explicitely requested namespaces on disk
+ # Store explicitly requested namespaces on disk
if (!exists $cached_mw_namespace_id{$name}) {
run_git(qq(config --add remote.${remotename}.namespaceCache "${name}:${store_id}"));
$cached_mw_namespace_id{$name} = 1;
diff --git a/contrib/mw-to-git/t/test-gitmw-lib.sh b/contrib/mw-to-git/t/test-gitmw-lib.sh
index ca6860f..3372b2a 100755
--- a/contrib/mw-to-git/t/test-gitmw-lib.sh
+++ b/contrib/mw-to-git/t/test-gitmw-lib.sh
@@ -91,7 +91,7 @@ test_diff_directories () {
# Check that <dir> contains exactly <N> files
test_contains_N_files () {
if test `ls -- "$1" | wc -l` -ne "$2"; then
- echo "directory $1 sould contain $2 files"
+ echo "directory $1 should contain $2 files"
echo "it contains these files:"
ls "$1"
false
diff --git a/contrib/mw-to-git/t/test.config b/contrib/mw-to-git/t/test.config
index 4cfebe9..5ba0684 100644
--- a/contrib/mw-to-git/t/test.config
+++ b/contrib/mw-to-git/t/test.config
@@ -12,7 +12,7 @@ SERVER_ADDR=localhost
TMP=/tmp
DB_FILE=wikidb.sqlite
-# If LIGHTTPD is not set to true, the script will use the defaut
+# If LIGHTTPD is not set to true, the script will use the default
# web server running in WIKI_DIR_INST.
WIKI_DIR_INST=/var/www
diff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr
index 054161a..7e34532 100755
--- a/contrib/remote-helpers/git-remote-bzr
+++ b/contrib/remote-helpers/git-remote-bzr
@@ -44,8 +44,8 @@ import StringIO
import atexit, shutil, hashlib, urlparse, subprocess
NAME_RE = re.compile('^([^<>]+)')
-AUTHOR_RE = re.compile('^([^<>]+?)? ?<([^<>]*)>$')
-EMAIL_RE = re.compile('^([^<>]+[^ \\\t<>])?\\b(?:[ \\t<>]*?)\\b([^ \\t<>]+@[^ \\t<>]+)')
+AUTHOR_RE = re.compile('^([^<>]+?)? ?[<>]([^<>]*)(?:$|>)')
+EMAIL_RE = re.compile(r'([^ \t<>]+@[^ \t<>]+)')
RAW_AUTHOR_RE = re.compile('^(\w+) (.+)? <(.*)> (\d+) ([+-]\d+)')
def die(msg, *args):
@@ -193,8 +193,7 @@ def fixup_user(user):
else:
m = EMAIL_RE.match(user)
if m:
- name = m.group(1)
- mail = m.group(2)
+ mail = m.group(1)
else:
m = NAME_RE.match(user)
if m:
diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg
index 3222afd..30402d5 100755
--- a/contrib/remote-helpers/git-remote-hg
+++ b/contrib/remote-helpers/git-remote-hg
@@ -51,8 +51,8 @@ import time as ptime
#
NAME_RE = re.compile('^([^<>]+)')
-AUTHOR_RE = re.compile('^([^<>]+?)? ?<([^<>]*)>$')
-EMAIL_RE = re.compile('^([^<>]+[^ \\\t<>])?\\b(?:[ \\t<>]*?)\\b([^ \\t<>]+@[^ \\t<>]+)')
+AUTHOR_RE = re.compile('^([^<>]+?)? ?[<>]([^<>]*)(?:$|>)')
+EMAIL_RE = re.compile(r'([^ \t<>]+@[^ \t<>]+)')
AUTHOR_HG_RE = re.compile('^(.*?) ?<(.*?)(?:>(.+)?)?$')
RAW_AUTHOR_RE = re.compile('^(\w+) (?:(.+)? )?<(.*)> (\d+) ([+-]\d+)')
@@ -316,8 +316,7 @@ def fixup_user_git(user):
else:
m = EMAIL_RE.match(user)
if m:
- name = m.group(1)
- mail = m.group(2)
+ mail = m.group(1)
else:
m = NAME_RE.match(user)
if m:
@@ -747,7 +746,7 @@ def parse_commit(parser):
f = { 'deleted' : True }
else:
die('Unknown file command: %s' % line)
- path = c_style_unescape(path).decode('utf-8')
+ path = c_style_unescape(path)
files[path] = f
# only export the commits if we are on an internal proxy repo
diff --git a/contrib/remote-helpers/test-bzr.sh b/contrib/remote-helpers/test-bzr.sh
index 5c50251..1e53ff9 100755
--- a/contrib/remote-helpers/test-bzr.sh
+++ b/contrib/remote-helpers/test-bzr.sh
@@ -5,7 +5,8 @@
test_description='Test remote-bzr'
-. ./test-lib.sh
+test -n "$TEST_DIRECTORY" || TEST_DIRECTORY=${0%/*}/../../t
+. "$TEST_DIRECTORY"/test-lib.sh
if ! test_have_prereq PYTHON
then
@@ -378,7 +379,7 @@ test_expect_success 'export utf-8 authors' '
git add content &&
git commit -m one &&
git remote add bzr "bzr::../bzrrepo" &&
- git push bzr
+ git push bzr master
) &&
(
diff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh
index 72f745d..347e812 100755
--- a/contrib/remote-helpers/test-hg.sh
+++ b/contrib/remote-helpers/test-hg.sh
@@ -8,7 +8,8 @@
test_description='Test remote-hg'
-. ./test-lib.sh
+test -n "$TEST_DIRECTORY" || TEST_DIRECTORY=${0%/*}/../../t
+. "$TEST_DIRECTORY"/test-lib.sh
if ! test_have_prereq PYTHON
then
@@ -53,14 +54,14 @@ check_bookmark () {
}
check_push () {
- local expected_ret=$1 ret=0 ref_ret=0 IFS=':'
+ expected_ret=$1 ret=0 ref_ret=0
shift
git push origin "$@" 2>error
ret=$?
cat error
- while read branch kind
+ while IFS=':' read branch kind
do
case "$kind" in
'new')
@@ -82,7 +83,7 @@ check_push () {
test $ref_ret -ne 0 && echo "match for '$branch' failed" && break
done
- if test $expected_ret -ne $ret -o $ref_ret -ne 0
+ if test $expected_ret -ne $ret || test $ref_ret -ne 0
then
return 1
fi
@@ -205,16 +206,17 @@ test_expect_success 'authors' '
>../expected &&
author_test alpha "" "H G Wells <wells@example.com>" &&
- author_test beta "test" "test <unknown>" &&
- author_test beta "test <test@example.com> (comment)" "test <test@example.com>" &&
- author_test gamma "<test@example.com>" "Unknown <test@example.com>" &&
- author_test delta "name<test@example.com>" "name <test@example.com>" &&
- author_test epsilon "name <test@example.com" "name <test@example.com>" &&
- author_test zeta " test " "test <unknown>" &&
- author_test eta "test < test@example.com >" "test <test@example.com>" &&
- author_test theta "test >test@example.com>" "test <test@example.com>" &&
- author_test iota "test < test <at> example <dot> com>" "test <unknown>" &&
- author_test kappa "test@example.com" "Unknown <test@example.com>"
+ author_test beta "beta" "beta <unknown>" &&
+ author_test gamma "gamma <test@example.com> (comment)" "gamma <test@example.com>" &&
+ author_test delta "<delta@example.com>" "Unknown <delta@example.com>" &&
+ author_test epsilon "epsilon<test@example.com>" "epsilon <test@example.com>" &&
+ author_test zeta "zeta <test@example.com" "zeta <test@example.com>" &&
+ author_test eta " eta " "eta <unknown>" &&
+ author_test theta "theta < test@example.com >" "theta <test@example.com>" &&
+ author_test iota "iota >test@example.com>" "iota <test@example.com>" &&
+ author_test kappa "kappa < test <at> example <dot> com>" "kappa <unknown>" &&
+ author_test lambda "lambda@example.com" "Unknown <lambda@example.com>" &&
+ author_test mu "mu.mu@example.com" "Unknown <mu.mu@example.com>"
) &&
git clone "hg::hgrepo" gitrepo &&
diff --git a/diff.c b/diff.c
index e34bf97..3950e01 100644
--- a/diff.c
+++ b/diff.c
@@ -3394,7 +3394,7 @@ int parse_long_opt(const char *opt, const char **argv,
if (prefixcmp(arg, opt))
return 0;
arg += strlen(opt);
- if (*arg == '=') { /* sticked form: --option=value */
+ if (*arg == '=') { /* stuck form: --option=value */
*optarg = arg + 1;
return 1;
}
diff --git a/diff.h b/diff.h
index e342325..1c05b3a 100644
--- a/diff.h
+++ b/diff.h
@@ -244,7 +244,7 @@ extern struct diff_filepair *diff_unmerge(struct diff_options *, const char *pat
#define DIFF_SETUP_USE_SIZE_CACHE 4
/*
- * Poor man's alternative to parse-option, to allow both sticked form
+ * Poor man's alternative to parse-option, to allow both stuck form
* (--option=value) and separate form (--option value).
*/
extern int parse_long_opt(const char *opt, const char **argv,
diff --git a/fetch-pack.c b/fetch-pack.c
index 1042448..5a1200f 100644
--- a/fetch-pack.c
+++ b/fetch-pack.c
@@ -47,9 +47,8 @@ static void rev_list_push(struct commit *commit, int mark)
if (!(commit->object.flags & mark)) {
commit->object.flags |= mark;
- if (!(commit->object.parsed))
- if (parse_commit(commit))
- return;
+ if (parse_commit(commit))
+ return;
prio_queue_put(&rev_list, commit);
@@ -128,8 +127,7 @@ static const unsigned char *get_rev(void)
return NULL;
commit = prio_queue_get(&rev_list);
- if (!commit->object.parsed)
- parse_commit(commit);
+ parse_commit(commit);
parents = commit->parents;
commit->object.flags |= POPPED;
diff --git a/git-am.sh b/git-am.sh
index 7ea40fe..bbea430 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -302,7 +302,7 @@ split_patches () {
# not starting with Author, From or Date is the
# subject, and the body starts with the next nonempty
# line not starting with Author, From or Date
- perl -ne 'BEGIN { $subject = 0 }
+ @@PERL@@ -ne 'BEGIN { $subject = 0 }
if ($subject > 1) { print ; }
elsif (/^\s+$/) { next ; }
elsif (/^Author:/) { s/Author/From/ ; print ;}
@@ -334,7 +334,7 @@ split_patches () {
# Since we cannot guarantee that the commit message is in
# git-friendly format, we put no Subject: line and just consume
# all of the message as the body
- LANG=C LC_ALL=C perl -M'POSIX qw(strftime)' -ne 'BEGIN { $subject = 0 }
+ LANG=C LC_ALL=C @@PERL@@ -M'POSIX qw(strftime)' -ne 'BEGIN { $subject = 0 }
if ($subject) { print ; }
elsif (/^\# User /) { s/\# User/From:/ ; print ; }
elsif (/^\# Date /) {
diff --git a/git-bisect.sh b/git-bisect.sh
index 9f064b6..73b4c14 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -137,7 +137,7 @@ bisect_start() {
# cogito usage, and cogito users should understand
# it relates to cg-seek.
[ -s "$GIT_DIR/head-name" ] &&
- die "$(gettext "won't bisect on seeked tree")"
+ die "$(gettext "won't bisect on cg-seek'ed tree")"
start_head="${head#refs/heads/}"
;;
*)
diff --git a/git-gui/Makefile b/git-gui/Makefile
index e9c2bc3..cde8b2e 100644
--- a/git-gui/Makefile
+++ b/git-gui/Makefile
@@ -4,7 +4,7 @@ all::
#
# Define NO_MSGFMT if you do not have msgfmt from the GNU gettext
# package and want to use our rough pure Tcl po->msg translator.
-# TCL_PATH must be vaild for this to work.
+# TCL_PATH must be valid for this to work.
#
GIT-VERSION-FILE: FORCE
diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh
index 153f85d..db46ac5 100755
--- a/git-gui/git-gui.sh
+++ b/git-gui/git-gui.sh
@@ -894,6 +894,7 @@ set default_config(gui.textconv) true
set default_config(gui.pruneduringfetch) false
set default_config(gui.trustmtime) false
set default_config(gui.fastcopyblame) false
+set default_config(gui.maxrecentrepo) 10
set default_config(gui.copyblamethreshold) 40
set default_config(gui.blamehistoryctx) 7
set default_config(gui.diffcontext) 5
@@ -912,6 +913,7 @@ set font_descs {
{fontdiff font_diff {mc "Diff/Console Font"}}
}
set default_config(gui.stageuntracked) ask
+set default_config(gui.displayuntracked) true
######################################################################
##
@@ -1282,7 +1284,11 @@ apply_config
# v1.7.0 introduced --show-toplevel to return the canonical work-tree
if {[package vsatisfies $_git_version 1.7.0]} {
- set _gitworktree [git rev-parse --show-toplevel]
+ if { [is_Cygwin] } {
+ catch {set _gitworktree [exec cygpath --windows [git rev-parse --show-toplevel]]}
+ } else {
+ set _gitworktree [git rev-parse --show-toplevel]
+ }
} else {
# try to set work tree from environment, core.worktree or use
# cdup to obtain a relative path to the top of the worktree. If
@@ -1550,18 +1556,23 @@ proc rescan_stage2 {fd after} {
set buf_rdf {}
set buf_rlo {}
- set rescan_active 3
+ set rescan_active 2
ui_status [mc "Scanning for modified files ..."]
set fd_di [git_read diff-index --cached -z [PARENT]]
set fd_df [git_read diff-files -z]
- set fd_lo [eval git_read ls-files --others -z $ls_others]
fconfigure $fd_di -blocking 0 -translation binary -encoding binary
fconfigure $fd_df -blocking 0 -translation binary -encoding binary
- fconfigure $fd_lo -blocking 0 -translation binary -encoding binary
+
fileevent $fd_di readable [list read_diff_index $fd_di $after]
fileevent $fd_df readable [list read_diff_files $fd_df $after]
- fileevent $fd_lo readable [list read_ls_others $fd_lo $after]
+
+ if {[is_config_true gui.displayuntracked]} {
+ set fd_lo [eval git_read ls-files --others -z $ls_others]
+ fconfigure $fd_lo -blocking 0 -translation binary -encoding binary
+ fileevent $fd_lo readable [list read_ls_others $fd_lo $after]
+ incr rescan_active
+ }
}
proc load_message {file {encoding {}}} {
@@ -2654,6 +2665,16 @@ if {![is_bare]} {
.mbar.repository add command \
-label [mc "Explore Working Copy"] \
-command {do_explore}
+}
+
+if {[is_Windows]} {
+ .mbar.repository add command \
+ -label [mc "Git Bash"] \
+ -command {eval exec [auto_execok start] \
+ [list "Git Bash" bash --login -l &]}
+}
+
+if {[is_Windows] || ![is_bare]} {
.mbar.repository add separator
}
@@ -3203,13 +3224,19 @@ unset i
# -- Diff and Commit Area
#
-${NS}::frame .vpane.lower -height 300 -width 400
+${NS}::panedwindow .vpane.lower -orient vertical
${NS}::frame .vpane.lower.commarea
-${NS}::frame .vpane.lower.diff -relief sunken -borderwidth 1
-pack .vpane.lower.diff -fill both -expand 1
-pack .vpane.lower.commarea -side bottom -fill x
+${NS}::frame .vpane.lower.diff -relief sunken -borderwidth 1 -height 500
+.vpane.lower add .vpane.lower.diff
+.vpane.lower add .vpane.lower.commarea
.vpane add .vpane.lower
-if {!$use_ttk} {.vpane paneconfigure .vpane.lower -sticky nsew}
+if {$use_ttk} {
+ .vpane.lower pane .vpane.lower.diff -weight 1
+ .vpane.lower pane .vpane.lower.commarea -weight 0
+} else {
+ .vpane.lower paneconfigure .vpane.lower.diff -stretch always
+ .vpane.lower paneconfigure .vpane.lower.commarea -stretch never
+}
# -- Commit Area Buttons
#
diff --git a/git-gui/lib/blame.tcl b/git-gui/lib/blame.tcl
index 324f774..b1d15f4 100644
--- a/git-gui/lib/blame.tcl
+++ b/git-gui/lib/blame.tcl
@@ -5,7 +5,7 @@ class blame {
image create photo ::blame::img_back_arrow -data {R0lGODlhGAAYAIUAAPwCBEzKXFTSZIz+nGzmhGzqfGTidIT+nEzGXHTqhGzmfGzifFzadETCVES+VARWDFzWbHzyjAReDGTadFTOZDSyRDyyTCymPARaFGTedFzSbDy2TCyqRCyqPARaDAyCHES6VDy6VCyiPAR6HCSeNByWLARyFARiDARqFGTifARiFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAAALAAAAAAYABgAAAajQIBwSCwaj8ikcsk0BppJwRPqHEypQwHBis0WDAdEFyBIKBaMAKLBdjQeSkFBYTBAIvgEoS6JmhUTEwIUDQ4VFhcMGEhyCgoZExoUaxsWHB0THkgfAXUGAhoBDSAVFR0XBnCbDRmgog0hpSIiDJpJIyEQhBUcJCIlwA22SSYVogknEg8eD82qSigdDSknY0IqJQXPYxIl1dZCGNvWw+Dm510GQQAh/mhDcmVhdGVkIGJ5IEJNUFRvR0lGIFBybyB2ZXJzaW9uIDIuNQ0KqSBEZXZlbENvciAxOTk3LDE5OTguIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQpodHRwOi8vd3d3LmRldmVsY29yLmNvbQA7}
-# Persistant data (survives loads)
+# Persistent data (survives loads)
#
field history {}; # viewer history: {commit path}
field header ; # array commit,key -> header field
diff --git a/git-gui/lib/choose_repository.tcl b/git-gui/lib/choose_repository.tcl
index ee58981..3c10bc6 100644
--- a/git-gui/lib/choose_repository.tcl
+++ b/git-gui/lib/choose_repository.tcl
@@ -24,6 +24,10 @@ field sorted_recent ; # recent repositories (sorted)
constructor pick {} {
global M1T M1B use_ttk NS
+ if {[set maxrecent [get_config gui.maxrecentrepo]] eq {}} {
+ set maxrecent 10
+ }
+
make_dialog top w
wm title $top [mc "Git Gui"]
@@ -148,7 +152,7 @@ constructor pick {} {
-background [get_bg_color $w_body.recentlabel] \
-wrap none \
-width 50 \
- -height 10
+ -height $maxrecent
$w_recentlist tag conf link \
-foreground blue \
-underline 1
@@ -264,7 +268,11 @@ proc _append_recentrepos {path} {
git config --global --add gui.recentrepo $path
load_config 1
- while {[llength $recent] > 10} {
+ if {[set maxrecent [get_config gui.maxrecentrepo]] eq {}} {
+ set maxrecent 10
+ }
+
+ while {[llength $recent] > $maxrecent} {
_unset_recentrepo [lindex $recent 0]
set recent [lrange $recent 1 end]
}
diff --git a/git-gui/lib/index.tcl b/git-gui/lib/index.tcl
index 8efbbdd..74a81a7 100644
--- a/git-gui/lib/index.tcl
+++ b/git-gui/lib/index.tcl
@@ -414,7 +414,7 @@ proc revert_helper {txt paths} {
# such distinction is needed in some languages. Previously, the
# code used "Revert changes in" for both, but that can't work
# in languages where 'in' must be combined with word from
- # rest of string (in diffrent way for both cases of course).
+ # rest of string (in different way for both cases of course).
#
# FIXME: Unfortunately, even that isn't enough in some languages
# as they have quite complex plural-form rules. Unfortunately,
diff --git a/git-gui/lib/option.tcl b/git-gui/lib/option.tcl
index 0cf1da1..23c9ae7 100644
--- a/git-gui/lib/option.tcl
+++ b/git-gui/lib/option.tcl
@@ -150,6 +150,7 @@ proc do_options {} {
{b gui.matchtrackingbranch {mc "Match Tracking Branches"}}
{b gui.textconv {mc "Use Textconv For Diffs and Blames"}}
{b gui.fastcopyblame {mc "Blame Copy Only On Changed Files"}}
+ {i-0..100 gui.maxrecentrepo {mc "Maximum Length of Recent Repositories List"}}
{i-20..200 gui.copyblamethreshold {mc "Minimum Letters To Blame Copy On"}}
{i-0..300 gui.blamehistoryctx {mc "Blame History Context Radius (days)"}}
{i-1..99 gui.diffcontext {mc "Number of Diff Context Lines"}}
@@ -159,6 +160,7 @@ proc do_options {} {
{c gui.encoding {mc "Default File Contents Encoding"}}
{b gui.warndetachedcommit {mc "Warn before committing to a detached head"}}
{s gui.stageuntracked {mc "Staging of untracked files"} {list "yes" "no" "ask"}}
+ {b gui.displayuntracked {mc "Show untracked files"}}
} {
set type [lindex $option 0]
set name [lindex $option 1]
diff --git a/git-gui/lib/spellcheck.tcl b/git-gui/lib/spellcheck.tcl
index e612030..538d61c 100644
--- a/git-gui/lib/spellcheck.tcl
+++ b/git-gui/lib/spellcheck.tcl
@@ -14,7 +14,7 @@ field w_menu ; # context menu for the widget
field s_menuidx 0 ; # last index of insertion into $w_menu
field s_i {} ; # timer registration for _run callbacks
-field s_clear 0 ; # did we erase mispelled tags yet?
+field s_clear 0 ; # did we erase misspelled tags yet?
field s_seen [list] ; # lines last seen from $w_text in _run
field s_checked [list] ; # lines already checked
field s_pending [list] ; # [$line $data] sent to ispell/aspell
@@ -259,7 +259,7 @@ method _run {} {
if {$n == $cur_line
&& ![regexp {^\W$} [$w_text get $cur_pos insert]]} {
- # If the current word is mispelled remove the tag
+ # If the current word is misspelled remove the tag
# but force a spellcheck later.
#
set tags [$w_text tag names $cur_pos]
diff --git a/git-gui/macosx/Info.plist b/git-gui/macosx/Info.plist
index b3bf15f..1ade121 100644
--- a/git-gui/macosx/Info.plist
+++ b/git-gui/macosx/Info.plist
@@ -24,5 +24,7 @@
<string>GITg</string>
<key>CFBundleVersion</key>
<string>@@GITGUI_VERSION@@</string>
+ <key>NSHighResolutionCapable</key>
+ <true/>
</dict>
</plist>
diff --git a/git-instaweb.sh b/git-instaweb.sh
index 01a1b05..e93a238 100755
--- a/git-instaweb.sh
+++ b/git-instaweb.sh
@@ -581,7 +581,7 @@ EOF
gitweb_conf() {
cat > "$fqgitdir/gitweb/gitweb_config.perl" <<EOF
-#!/usr/bin/perl
+#!@@PERL@@
our \$projectroot = "$(dirname "$fqgitdir")";
our \$git_temp = "$fqgitdir/gitweb/tmp";
our \$projects_list = \$projectroot;
diff --git a/git-lost-found.sh b/git-lost-found.sh
deleted file mode 100755
index 0b3e8c7..0000000
--- a/git-lost-found.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/sh
-
-USAGE=''
-SUBDIRECTORY_OK='Yes'
-OPTIONS_SPEC=
-. git-sh-setup
-
-echo "WARNING: '$0' is deprecated in favor of 'git fsck --lost-found'" >&2
-
-if [ "$#" != "0" ]
-then
- usage
-fi
-
-laf="$GIT_DIR/lost-found"
-rm -fr "$laf" && mkdir -p "$laf/commit" "$laf/other" || exit
-
-git fsck --full --no-reflogs |
-while read dangling type sha1
-do
- case "$dangling" in
- dangling)
- if git rev-parse -q --verify "$sha1^0" >/dev/null
- then
- dir="$laf/commit"
- git show-branch "$sha1"
- else
- dir="$laf/other"
- fi
- echo "$sha1" >"$dir/$sha1"
- ;;
- esac
-done
diff --git a/git-p4.py b/git-p4.py
index 06a3cc6..5ea8bb8 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -1311,7 +1311,7 @@ class P4Submit(Command, P4UserMap):
else:
die("unknown modifier %s for %s" % (modifier, path))
- diffcmd = "git format-patch -k --stdout \"%s^\"..\"%s\"" % (id, id)
+ diffcmd = "git diff-tree -p \"%s\"" % (id)
patchcmd = diffcmd + " | git apply "
tryPatchCmd = patchcmd + "--check -"
applyPatchCmd = patchcmd + "--check --apply -"
diff --git a/git-pull.sh b/git-pull.sh
index b946fd9..97716b8 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -172,7 +172,7 @@ error_on_no_merge_candidates () {
do
case "$opt" in
-t|--t|--ta|--tag|--tags)
- echo "Fetching tags only, you probably meant:"
+ echo "It doesn't make sense to pull all tags; you probably meant:"
echo " git fetch --tags"
exit 1
esac
diff --git a/git-request-pull.sh b/git-request-pull.sh
index ebf1269..fe21d5d 100755
--- a/git-request-pull.sh
+++ b/git-request-pull.sh
@@ -106,7 +106,7 @@ find_matching_ref='
}
'
-ref=$(git ls-remote "$url" | perl -e "$find_matching_ref" "$head" "$headrev" "$tag_name")
+ref=$(git ls-remote "$url" | @@PERL@@ -e "$find_matching_ref" "$head" "$headrev" "$tag_name")
url=$(git ls-remote --get-url "$url")
diff --git a/git-submodule.sh b/git-submodule.sh
index 896f1c9..2677f2e 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -156,7 +156,7 @@ module_list()
git ls-files -z --error-unmatch --stage -- "$@" ||
echo "unmatched pathspec exists"
) |
- perl -e '
+ @@PERL@@ -e '
my %unmerged = ();
my ($null_sha1) = ("0" x 40);
my @out = ();
@@ -545,7 +545,12 @@ cmd_foreach()
sm_path=$(relative_path "$sm_path") &&
# we make $path available to scripts ...
path=$sm_path &&
- eval "$@" &&
+ if test $# -eq 1
+ then
+ eval "$1"
+ else
+ "$@"
+ fi &&
if test -n "$recursive"
then
cmd_foreach "--recursive" "$@"
@@ -612,11 +617,21 @@ cmd_init()
fi
# Copy "update" setting when it is not set yet
- upd="$(git config -f .gitmodules submodule."$name".update)"
- test -z "$upd" ||
- test -n "$(git config submodule."$name".update)" ||
- git config submodule."$name".update "$upd" ||
- die "$(eval_gettext "Failed to register update mode for submodule path '\$displaypath'")"
+ if upd="$(git config -f .gitmodules submodule."$name".update)" &&
+ test -n "$upd" &&
+ test -z "$(git config submodule."$name".update)"
+ then
+ case "$upd" in
+ rebase | merge | none)
+ ;; # known modes of updating
+ *)
+ echo >&2 "warning: unknown update mode '$upd' suggested for submodule '$name'"
+ upd=none
+ ;;
+ esac
+ git config submodule."$name".update "$upd" ||
+ die "$(eval_gettext "Failed to register update mode for submodule path '\$displaypath'")"
+ fi
done
}
@@ -706,7 +721,6 @@ cmd_deinit()
cmd_update()
{
# parse $args after "submodule ... update".
- orig_flags=
while test $# -ne 0
do
case "$1" in
@@ -731,7 +745,6 @@ cmd_update()
--reference)
case "$2" in '') usage ;; esac
reference="--reference=$2"
- orig_flags="$orig_flags $(git rev-parse --sq-quote "$1")"
shift
;;
--reference=*)
@@ -765,7 +778,6 @@ cmd_update()
break
;;
esac
- orig_flags="$orig_flags $(git rev-parse --sq-quote "$1")"
shift
done
@@ -909,7 +921,7 @@ Maybe you want to use 'update --init'?")"
prefix="$prefix$sm_path/"
clear_local_git_env
cd "$sm_path" &&
- eval cmd_update "$orig_flags"
+ eval cmd_update
)
res=$?
if test $res -gt 0
diff --git a/git.c b/git.c
index cb5208d..727e380 100644
--- a/git.c
+++ b/git.c
@@ -408,7 +408,6 @@ static void handle_internal_command(int argc, const char **argv)
{ "pack-redundant", cmd_pack_redundant, RUN_SETUP },
{ "pack-refs", cmd_pack_refs, RUN_SETUP },
{ "patch-id", cmd_patch_id },
- { "peek-remote", cmd_ls_remote, RUN_SETUP_GENTLY },
{ "pickaxe", cmd_blame, RUN_SETUP },
{ "prune", cmd_prune, RUN_SETUP },
{ "prune-packed", cmd_prune_packed, RUN_SETUP },
@@ -421,7 +420,6 @@ static void handle_internal_command(int argc, const char **argv)
{ "remote-fd", cmd_remote_fd },
{ "repack", cmd_repack, RUN_SETUP },
{ "replace", cmd_replace, RUN_SETUP },
- { "repo-config", cmd_repo_config, RUN_SETUP_GENTLY },
{ "rerere", cmd_rerere, RUN_SETUP },
{ "reset", cmd_reset, RUN_SETUP },
{ "rev-list", cmd_rev_list, RUN_SETUP },
@@ -438,7 +436,6 @@ static void handle_internal_command(int argc, const char **argv)
{ "stripspace", cmd_stripspace },
{ "symbolic-ref", cmd_symbolic_ref, RUN_SETUP },
{ "tag", cmd_tag, RUN_SETUP },
- { "tar-tree", cmd_tar_tree },
{ "unpack-file", cmd_unpack_file, RUN_SETUP },
{ "unpack-objects", cmd_unpack_objects, RUN_SETUP },
{ "update-index", cmd_update_index, RUN_SETUP },
diff --git a/gitk-git/gitk b/gitk-git/gitk
index 5cd00d8..33c3a6c 100755
--- a/gitk-git/gitk
+++ b/gitk-git/gitk
@@ -156,10 +156,12 @@ proc unmerged_files {files} {
proc parseviewargs {n arglist} {
global vdatemode vmergeonly vflags vdflags vrevs vfiltered vorigargs env
+ global vinlinediff
global worddiff git_version
set vdatemode($n) 0
set vmergeonly($n) 0
+ set vinlinediff($n) 0
set glflags {}
set diffargs {}
set nextisval 0
@@ -227,12 +229,20 @@ proc parseviewargs {n arglist} {
"--until=*" - "--before=*" - "--max-age=*" - "--min-age=*" -
"--author=*" - "--committer=*" - "--grep=*" - "-[iE]" -
"--remove-empty" - "--first-parent" - "--cherry-pick" -
- "-S*" - "--pickaxe-all" - "--pickaxe-regex" -
+ "-S*" - "-G*" - "--pickaxe-all" - "--pickaxe-regex" -
"--simplify-by-decoration" {
# These mean that we get a subset of the commits
set filtered 1
lappend glflags $arg
}
+ "-L*" {
+ # Line-log with 'stuck' argument (unstuck form is
+ # not supported)
+ set filtered 1
+ set vinlinediff($n) 1
+ set allknown 0
+ lappend glflags $arg
+ }
"-n" {
# This appears to be the only one that has a value as a
# separate word following it
@@ -1704,8 +1714,17 @@ proc parsecommit {id contents listed} {
set comment $newcomment
}
set hasnote [string first "\nNotes:\n" $contents]
+ set diff ""
+ # If there is diff output shown in the git-log stream, split it
+ # out. But get rid of the empty line that always precedes the
+ # diff.
+ set i [string first "\n\ndiff" $comment]
+ if {$i >= 0} {
+ set diff [string range $comment $i+1 end]
+ set comment [string range $comment 0 $i-1]
+ }
set commitinfo($id) [list $headline $auname $audate \
- $comname $comdate $comment $hasnote]
+ $comname $comdate $comment $hasnote $diff]
}
proc getcommit {id} {
@@ -2385,6 +2404,7 @@ proc makewindow {} {
$ctext tag conf found -back $foundbgcolor
$ctext tag conf currentsearchhit -back $currentsearchhitbgcolor
$ctext tag conf wwrap -wrap word
+ $ctext tag conf bold -font textfontbold
.pwbottom add .bleft
if {!$use_ttk} {
@@ -6387,6 +6407,25 @@ proc bindline {t id} {
$canv bind $t <Button-1> "lineclick %x %y $id 1"
}
+proc graph_pane_width {} {
+ global use_ttk
+
+ if {$use_ttk} {
+ set g [.tf.histframe.pwclist sashpos 0]
+ } else {
+ set g [.tf.histframe.pwclist sash coord 0]
+ }
+ return [lindex $g 0]
+}
+
+proc totalwidth {l font extra} {
+ set tot 0
+ foreach str $l {
+ set tot [expr {$tot + [font measure $font $str] + $extra}]
+ }
+ return $tot
+}
+
proc drawtags {id x xt y1} {
global idtags idheads idotherrefs mainhead
global linespc lthickness
@@ -6398,9 +6437,27 @@ proc drawtags {id x xt y1} {
set marks {}
set ntags 0
set nheads 0
+ set singletag 0
+ set maxtags 3
+ set maxtagpct 25
+ set maxwidth [expr {[graph_pane_width] * $maxtagpct / 100}]
+ set delta [expr {int(0.5 * ($linespc - $lthickness))}]
+ set extra [expr {$delta + $lthickness + $linespc}]
+
if {[info exists idtags($id)]} {
set marks $idtags($id)
set ntags [llength $marks]
+ if {$ntags > $maxtags ||
+ [totalwidth $marks mainfont $extra] > $maxwidth} {
+ # show just a single "n tags..." tag
+ set singletag 1
+ if {$ntags == 1} {
+ set marks [list "tag..."]
+ } else {
+ set marks [list [format "%d tags..." $ntags]]
+ }
+ set ntags 1
+ }
}
if {[info exists idheads($id)]} {
set marks [concat $marks $idheads($id)]
@@ -6413,7 +6470,6 @@ proc drawtags {id x xt y1} {
return $xt
}
- set delta [expr {int(0.5 * ($linespc - $lthickness))}]
set yt [expr {$y1 - 0.5 * $linespc}]
set yb [expr {$yt + $linespc - 1}]
set xvals {}
@@ -6428,7 +6484,7 @@ proc drawtags {id x xt y1} {
}
lappend xvals $xt
lappend wvals $wid
- set xt [expr {$xt + $delta + $wid + $lthickness + $linespc}]
+ set xt [expr {$xt + $wid + $extra}]
}
set t [$canv create line $x $y1 [lindex $xvals end] $y1 \
-width $lthickness -fill $reflinecolor -tags tag.$id]
@@ -6444,7 +6500,12 @@ proc drawtags {id x xt y1} {
$xr $yt $xr $yb $xl $yb $x [expr {$yb - $delta}] \
-width 1 -outline $tagoutlinecolor -fill $tagbgcolor \
-tags tag.$id]
- $canv bind $t <1> [list showtag $tag_quoted 1]
+ if {$singletag} {
+ set tagclick [list showtags $id 1]
+ } else {
+ set tagclick [list showtag $tag_quoted 1]
+ }
+ $canv bind $t <1> $tagclick
set rowtextx([rowofcommit $id]) [expr {$xr + $linespc}]
} else {
# draw a head or other ref
@@ -6471,7 +6532,7 @@ proc drawtags {id x xt y1} {
set t [$canv create text $xl $y1 -anchor w -text $tag -fill $headfgcolor \
-font $font -tags [list tag.$id text]]
if {$ntags >= 0} {
- $canv bind $t <1> [list showtag $tag_quoted 1]
+ $canv bind $t <1> $tagclick
} elseif {$nheads >= 0} {
$canv bind $t $ctxbut [list headmenu %X %Y $id $tag_quoted]
}
@@ -7080,6 +7141,7 @@ proc selectline {l isnew {desired_loc {}}} {
global cmitmode showneartags allcommits
global targetrow targetid lastscrollrows
global autoselect autosellen jump_to_here
+ global vinlinediff
catch {unset pending_select}
$canv delete hover
@@ -7221,6 +7283,8 @@ proc selectline {l isnew {desired_loc {}}} {
init_flist [mc "Comments"]
if {$cmitmode eq "tree"} {
gettree $id
+ } elseif {$vinlinediff($curview) == 1} {
+ showinlinediff $id
} elseif {[llength $olds] <= 1} {
startdiff $id
} else {
@@ -7557,6 +7621,39 @@ proc startdiff {ids} {
}
}
+proc showinlinediff {ids} {
+ global commitinfo commitdata ctext
+ global treediffs
+
+ set info $commitinfo($ids)
+ set diff [lindex $info 7]
+ set difflines [split $diff "\n"]
+
+ initblobdiffvars
+ set treediff {}
+
+ set inhdr 0
+ foreach line $difflines {
+ if {![string compare -length 5 "diff " $line]} {
+ set inhdr 1
+ } elseif {$inhdr && ![string compare -length 4 "+++ " $line]} {
+ # offset also accounts for the b/ prefix
+ lappend treediff [string range $line 6 end]
+ set inhdr 0
+ }
+ }
+
+ set treediffs($ids) $treediff
+ add_flist $treediff
+
+ $ctext conf -state normal
+ foreach line $difflines {
+ parseblobdiffline $ids $line
+ }
+ maybe_scroll_ctext 1
+ $ctext conf -state disabled
+}
+
# If the filename (name) is under any of the passed filter paths
# then return true to include the file in the listing.
proc path_filter {filter name} {
@@ -7710,15 +7807,25 @@ proc changeworddiff {name ix op} {
reselectline
}
+proc initblobdiffvars {} {
+ global diffencoding targetline diffnparents
+ global diffinhdr currdiffsubmod diffseehere
+ set targetline {}
+ set diffnparents 0
+ set diffinhdr 0
+ set diffencoding [get_path_encoding {}]
+ set currdiffsubmod ""
+ set diffseehere -1
+}
+
proc getblobdiffs {ids} {
global blobdifffd diffids env
- global diffinhdr treediffs
+ global treediffs
global diffcontext
global ignorespace
global worddiff
global limitdiffs vfilelimit curview
- global diffencoding targetline diffnparents
- global git_version currdiffsubmod
+ global git_version
set textconv {}
if {[package vcompare $git_version "1.6.1"] >= 0} {
@@ -7742,13 +7849,9 @@ proc getblobdiffs {ids} {
error_popup [mc "Error getting diffs: %s" $err]
return
}
- set targetline {}
- set diffnparents 0
- set diffinhdr 0
- set diffencoding [get_path_encoding {}]
fconfigure $bdf -blocking 0 -encoding binary -eofchar {}
set blobdifffd($ids) $bdf
- set currdiffsubmod ""
+ initblobdiffvars
filerun $bdf [list getblobdiffline $bdf $diffids]
}
@@ -7814,13 +7917,17 @@ proc makediffhdr {fname ids} {
set diffline 0
}
+proc blobdiffmaybeseehere {ateof} {
+ global diffseehere
+ if {$diffseehere >= 0} {
+ mark_ctext_line [lindex [split $diffseehere .] 0]
+ }
+ maybe_scroll_ctext ateof
+}
+
proc getblobdiffline {bdf ids} {
- global diffids blobdifffd ctext curdiffstart
- global diffnexthead diffnextnote difffilestart
- global ctext_file_names ctext_file_lines
- global diffinhdr treediffs mergemax diffnparents
- global diffencoding jump_to_here targetline diffline currdiffsubmod
- global worddiff
+ global diffids blobdifffd
+ global ctext
set nr 0
$ctext conf -state normal
@@ -7829,212 +7936,220 @@ proc getblobdiffline {bdf ids} {
catch {close $bdf}
return 0
}
- if {![string compare -length 5 "diff " $line]} {
- if {![regexp {^diff (--cc|--git) } $line m type]} {
- set line [encoding convertfrom $line]
- $ctext insert end "$line\n" hunksep
- continue
+ parseblobdiffline $ids $line
+ }
+ $ctext conf -state disabled
+ blobdiffmaybeseehere [eof $bdf]
+ if {[eof $bdf]} {
+ catch {close $bdf}
+ return 0
+ }
+ return [expr {$nr >= 1000? 2: 1}]
+}
+
+proc parseblobdiffline {ids line} {
+ global ctext curdiffstart
+ global diffnexthead diffnextnote difffilestart
+ global ctext_file_names ctext_file_lines
+ global diffinhdr treediffs mergemax diffnparents
+ global diffencoding jump_to_here targetline diffline currdiffsubmod
+ global worddiff diffseehere
+
+ if {![string compare -length 5 "diff " $line]} {
+ if {![regexp {^diff (--cc|--git) } $line m type]} {
+ set line [encoding convertfrom $line]
+ $ctext insert end "$line\n" hunksep
+ continue
+ }
+ # start of a new file
+ set diffinhdr 1
+ $ctext insert end "\n"
+ set curdiffstart [$ctext index "end - 1c"]
+ lappend ctext_file_names ""
+ lappend ctext_file_lines [lindex [split $curdiffstart "."] 0]
+ $ctext insert end "\n" filesep
+
+ if {$type eq "--cc"} {
+ # start of a new file in a merge diff
+ set fname [string range $line 10 end]
+ if {[lsearch -exact $treediffs($ids) $fname] < 0} {
+ lappend treediffs($ids) $fname
+ add_flist [list $fname]
}
- # start of a new file
- set diffinhdr 1
- $ctext insert end "\n"
- set curdiffstart [$ctext index "end - 1c"]
- lappend ctext_file_names ""
- lappend ctext_file_lines [lindex [split $curdiffstart "."] 0]
- $ctext insert end "\n" filesep
-
- if {$type eq "--cc"} {
- # start of a new file in a merge diff
- set fname [string range $line 10 end]
- if {[lsearch -exact $treediffs($ids) $fname] < 0} {
- lappend treediffs($ids) $fname
- add_flist [list $fname]
- }
+ } else {
+ set line [string range $line 11 end]
+ # If the name hasn't changed the length will be odd,
+ # the middle char will be a space, and the two bits either
+ # side will be a/name and b/name, or "a/name" and "b/name".
+ # If the name has changed we'll get "rename from" and
+ # "rename to" or "copy from" and "copy to" lines following
+ # this, and we'll use them to get the filenames.
+ # This complexity is necessary because spaces in the
+ # filename(s) don't get escaped.
+ set l [string length $line]
+ set i [expr {$l / 2}]
+ if {!(($l & 1) && [string index $line $i] eq " " &&
+ [string range $line 2 [expr {$i - 1}]] eq \
+ [string range $line [expr {$i + 3}] end])} {
+ return
+ }
+ # unescape if quoted and chop off the a/ from the front
+ if {[string index $line 0] eq "\""} {
+ set fname [string range [lindex $line 0] 2 end]
} else {
- set line [string range $line 11 end]
- # If the name hasn't changed the length will be odd,
- # the middle char will be a space, and the two bits either
- # side will be a/name and b/name, or "a/name" and "b/name".
- # If the name has changed we'll get "rename from" and
- # "rename to" or "copy from" and "copy to" lines following
- # this, and we'll use them to get the filenames.
- # This complexity is necessary because spaces in the
- # filename(s) don't get escaped.
- set l [string length $line]
- set i [expr {$l / 2}]
- if {!(($l & 1) && [string index $line $i] eq " " &&
- [string range $line 2 [expr {$i - 1}]] eq \
- [string range $line [expr {$i + 3}] end])} {
- continue
- }
- # unescape if quoted and chop off the a/ from the front
- if {[string index $line 0] eq "\""} {
- set fname [string range [lindex $line 0] 2 end]
- } else {
- set fname [string range $line 2 [expr {$i - 1}]]
- }
+ set fname [string range $line 2 [expr {$i - 1}]]
}
- makediffhdr $fname $ids
+ }
+ makediffhdr $fname $ids
+
+ } elseif {![string compare -length 16 "* Unmerged path " $line]} {
+ set fname [encoding convertfrom [string range $line 16 end]]
+ $ctext insert end "\n"
+ set curdiffstart [$ctext index "end - 1c"]
+ lappend ctext_file_names $fname
+ lappend ctext_file_lines [lindex [split $curdiffstart "."] 0]
+ $ctext insert end "$line\n" filesep
+ set i [lsearch -exact $treediffs($ids) $fname]
+ if {$i >= 0} {
+ setinlist difffilestart $i $curdiffstart
+ }
- } elseif {![string compare -length 16 "* Unmerged path " $line]} {
- set fname [encoding convertfrom [string range $line 16 end]]
- $ctext insert end "\n"
- set curdiffstart [$ctext index "end - 1c"]
- lappend ctext_file_names $fname
- lappend ctext_file_lines [lindex [split $curdiffstart "."] 0]
+ } elseif {![string compare -length 2 "@@" $line]} {
+ regexp {^@@+} $line ats
+ set line [encoding convertfrom $diffencoding $line]
+ $ctext insert end "$line\n" hunksep
+ if {[regexp { \+(\d+),\d+ @@} $line m nl]} {
+ set diffline $nl
+ }
+ set diffnparents [expr {[string length $ats] - 1}]
+ set diffinhdr 0
+
+ } elseif {![string compare -length 10 "Submodule " $line]} {
+ # start of a new submodule
+ if {[regexp -indices "\[0-9a-f\]+\\.\\." $line nameend]} {
+ set fname [string range $line 10 [expr [lindex $nameend 0] - 2]]
+ } else {
+ set fname [string range $line 10 [expr [string first "contains " $line] - 2]]
+ }
+ if {$currdiffsubmod != $fname} {
+ $ctext insert end "\n"; # Add newline after commit message
+ }
+ set curdiffstart [$ctext index "end - 1c"]
+ lappend ctext_file_names ""
+ if {$currdiffsubmod != $fname} {
+ lappend ctext_file_lines $fname
+ makediffhdr $fname $ids
+ set currdiffsubmod $fname
+ $ctext insert end "\n$line\n" filesep
+ } else {
$ctext insert end "$line\n" filesep
+ }
+ } elseif {![string compare -length 3 " >" $line]} {
+ set $currdiffsubmod ""
+ set line [encoding convertfrom $diffencoding $line]
+ $ctext insert end "$line\n" dresult
+ } elseif {![string compare -length 3 " <" $line]} {
+ set $currdiffsubmod ""
+ set line [encoding convertfrom $diffencoding $line]
+ $ctext insert end "$line\n" d0
+ } elseif {$diffinhdr} {
+ if {![string compare -length 12 "rename from " $line]} {
+ set fname [string range $line [expr 6 + [string first " from " $line] ] end]
+ if {[string index $fname 0] eq "\""} {
+ set fname [lindex $fname 0]
+ }
+ set fname [encoding convertfrom $fname]
set i [lsearch -exact $treediffs($ids) $fname]
if {$i >= 0} {
setinlist difffilestart $i $curdiffstart
}
-
- } elseif {![string compare -length 2 "@@" $line]} {
- regexp {^@@+} $line ats
- set line [encoding convertfrom $diffencoding $line]
- $ctext insert end "$line\n" hunksep
- if {[regexp { \+(\d+),\d+ @@} $line m nl]} {
- set diffline $nl
+ } elseif {![string compare -length 10 $line "rename to "] ||
+ ![string compare -length 8 $line "copy to "]} {
+ set fname [string range $line [expr 4 + [string first " to " $line] ] end]
+ if {[string index $fname 0] eq "\""} {
+ set fname [lindex $fname 0]
}
- set diffnparents [expr {[string length $ats] - 1}]
+ makediffhdr $fname $ids
+ } elseif {[string compare -length 3 $line "---"] == 0} {
+ # do nothing
+ return
+ } elseif {[string compare -length 3 $line "+++"] == 0} {
set diffinhdr 0
+ return
+ }
+ $ctext insert end "$line\n" filesep
- } elseif {![string compare -length 10 "Submodule " $line]} {
- # start of a new submodule
- if {[regexp -indices "\[0-9a-f\]+\\.\\." $line nameend]} {
- set fname [string range $line 10 [expr [lindex $nameend 0] - 2]]
- } else {
- set fname [string range $line 10 [expr [string first "contains " $line] - 2]]
- }
- if {$currdiffsubmod != $fname} {
- $ctext insert end "\n"; # Add newline after commit message
- }
- set curdiffstart [$ctext index "end - 1c"]
- lappend ctext_file_names ""
- if {$currdiffsubmod != $fname} {
- lappend ctext_file_lines $fname
- makediffhdr $fname $ids
- set currdiffsubmod $fname
- $ctext insert end "\n$line\n" filesep
- } else {
- $ctext insert end "$line\n" filesep
- }
- } elseif {![string compare -length 3 " >" $line]} {
- set $currdiffsubmod ""
- set line [encoding convertfrom $diffencoding $line]
- $ctext insert end "$line\n" dresult
- } elseif {![string compare -length 3 " <" $line]} {
- set $currdiffsubmod ""
- set line [encoding convertfrom $diffencoding $line]
- $ctext insert end "$line\n" d0
- } elseif {$diffinhdr} {
- if {![string compare -length 12 "rename from " $line]} {
- set fname [string range $line [expr 6 + [string first " from " $line] ] end]
- if {[string index $fname 0] eq "\""} {
- set fname [lindex $fname 0]
- }
- set fname [encoding convertfrom $fname]
- set i [lsearch -exact $treediffs($ids) $fname]
- if {$i >= 0} {
- setinlist difffilestart $i $curdiffstart
+ } else {
+ set line [string map {\x1A ^Z} \
+ [encoding convertfrom $diffencoding $line]]
+ # parse the prefix - one ' ', '-' or '+' for each parent
+ set prefix [string range $line 0 [expr {$diffnparents - 1}]]
+ set tag [expr {$diffnparents > 1? "m": "d"}]
+ set dowords [expr {$worddiff ne [mc "Line diff"] && $diffnparents == 1}]
+ set words_pre_markup ""
+ set words_post_markup ""
+ if {[string trim $prefix " -+"] eq {}} {
+ # prefix only has " ", "-" and "+" in it: normal diff line
+ set num [string first "-" $prefix]
+ if {$dowords} {
+ set line [string range $line 1 end]
+ }
+ if {$num >= 0} {
+ # removed line, first parent with line is $num
+ if {$num >= $mergemax} {
+ set num "max"
}
- } elseif {![string compare -length 10 $line "rename to "] ||
- ![string compare -length 8 $line "copy to "]} {
- set fname [string range $line [expr 4 + [string first " to " $line] ] end]
- if {[string index $fname 0] eq "\""} {
- set fname [lindex $fname 0]
+ if {$dowords && $worddiff eq [mc "Markup words"]} {
+ $ctext insert end "\[-$line-\]" $tag$num
+ } else {
+ $ctext insert end "$line" $tag$num
}
- makediffhdr $fname $ids
- } elseif {[string compare -length 3 $line "---"] == 0} {
- # do nothing
- continue
- } elseif {[string compare -length 3 $line "+++"] == 0} {
- set diffinhdr 0
- continue
- }
- $ctext insert end "$line\n" filesep
-
- } else {
- set line [string map {\x1A ^Z} \
- [encoding convertfrom $diffencoding $line]]
- # parse the prefix - one ' ', '-' or '+' for each parent
- set prefix [string range $line 0 [expr {$diffnparents - 1}]]
- set tag [expr {$diffnparents > 1? "m": "d"}]
- set dowords [expr {$worddiff ne [mc "Line diff"] && $diffnparents == 1}]
- set words_pre_markup ""
- set words_post_markup ""
- if {[string trim $prefix " -+"] eq {}} {
- # prefix only has " ", "-" and "+" in it: normal diff line
- set num [string first "-" $prefix]
- if {$dowords} {
- set line [string range $line 1 end]
+ if {!$dowords} {
+ $ctext insert end "\n" $tag$num
}
- if {$num >= 0} {
- # removed line, first parent with line is $num
- if {$num >= $mergemax} {
- set num "max"
- }
- if {$dowords && $worddiff eq [mc "Markup words"]} {
- $ctext insert end "\[-$line-\]" $tag$num
- } else {
- $ctext insert end "$line" $tag$num
- }
- if {!$dowords} {
- $ctext insert end "\n" $tag$num
- }
- } else {
- set tags {}
- if {[string first "+" $prefix] >= 0} {
- # added line
- lappend tags ${tag}result
- if {$diffnparents > 1} {
- set num [string first " " $prefix]
- if {$num >= 0} {
- if {$num >= $mergemax} {
- set num "max"
- }
- lappend tags m$num
+ } else {
+ set tags {}
+ if {[string first "+" $prefix] >= 0} {
+ # added line
+ lappend tags ${tag}result
+ if {$diffnparents > 1} {
+ set num [string first " " $prefix]
+ if {$num >= 0} {
+ if {$num >= $mergemax} {
+ set num "max"
}
+ lappend tags m$num
}
- set words_pre_markup "{+"
- set words_post_markup "+}"
}
- if {$targetline ne {}} {
- if {$diffline == $targetline} {
- set seehere [$ctext index "end - 1 chars"]
- set targetline {}
- } else {
- incr diffline
- }
- }
- if {$dowords && $worddiff eq [mc "Markup words"]} {
- $ctext insert end "$words_pre_markup$line$words_post_markup" $tags
+ set words_pre_markup "{+"
+ set words_post_markup "+}"
+ }
+ if {$targetline ne {}} {
+ if {$diffline == $targetline} {
+ set diffseehere [$ctext index "end - 1 chars"]
+ set targetline {}
} else {
- $ctext insert end "$line" $tags
- }
- if {!$dowords} {
- $ctext insert end "\n" $tags
+ incr diffline
}
}
- } elseif {$dowords && $prefix eq "~"} {
- $ctext insert end "\n" {}
- } else {
- # "\ No newline at end of file",
- # or something else we don't recognize
- $ctext insert end "$line\n" hunksep
+ if {$dowords && $worddiff eq [mc "Markup words"]} {
+ $ctext insert end "$words_pre_markup$line$words_post_markup" $tags
+ } else {
+ $ctext insert end "$line" $tags
+ }
+ if {!$dowords} {
+ $ctext insert end "\n" $tags
+ }
}
+ } elseif {$dowords && $prefix eq "~"} {
+ $ctext insert end "\n" {}
+ } else {
+ # "\ No newline at end of file",
+ # or something else we don't recognize
+ $ctext insert end "$line\n" hunksep
}
}
- if {[info exists seehere]} {
- mark_ctext_line [lindex [split $seehere .] 0]
- }
- maybe_scroll_ctext [eof $bdf]
- $ctext conf -state disabled
- if {[eof $bdf]} {
- catch {close $bdf}
- return 0
- }
- return [expr {$nr >= 1000? 2: 1}]
}
proc changediffdisp {} {
@@ -10878,6 +10993,23 @@ proc listrefs {id} {
return [list $x $y $z]
}
+proc add_tag_ctext {tag} {
+ global ctext cached_tagcontent tagids
+
+ if {![info exists cached_tagcontent($tag)]} {
+ catch {
+ set cached_tagcontent($tag) [exec git cat-file -p $tag]
+ }
+ }
+ $ctext insert end "[mc "Tag"]: $tag\n" bold
+ if {[info exists cached_tagcontent($tag)]} {
+ set text $cached_tagcontent($tag)
+ } else {
+ set text "[mc "Id"]: $tagids($tag)"
+ }
+ appendwithlinks $text {}
+}
+
proc showtag {tag isnew} {
global ctext cached_tagcontent tagids linknum tagobjid
@@ -10888,17 +11020,28 @@ proc showtag {tag isnew} {
clear_ctext
settabs 0
set linknum 0
- if {![info exists cached_tagcontent($tag)]} {
- catch {
- set cached_tagcontent($tag) [exec git cat-file -p $tag]
- }
+ add_tag_ctext $tag
+ maybe_scroll_ctext 1
+ $ctext conf -state disabled
+ init_flist {}
+}
+
+proc showtags {id isnew} {
+ global idtags ctext linknum
+
+ if {$isnew} {
+ addtohistory [list showtags $id 0] savectextpos
}
- if {[info exists cached_tagcontent($tag)]} {
- set text $cached_tagcontent($tag)
- } else {
- set text "[mc "Tag"]: $tag\n[mc "Id"]: $tagids($tag)"
+ $ctext conf -state normal
+ clear_ctext
+ settabs 0
+ set linknum 0
+ set sep {}
+ foreach tag $idtags($id) {
+ $ctext insert end $sep
+ add_tag_ctext $tag
+ set sep "\n\n"
}
- appendwithlinks $text {}
maybe_scroll_ctext 1
$ctext conf -state disabled
init_flist {}
diff --git a/http.c b/http.c
index bcf54aa..ccb813b 100644
--- a/http.c
+++ b/http.c
@@ -761,6 +761,12 @@ void finish_active_slot(struct active_request_slot *slot)
if (slot->results != NULL) {
slot->results->curl_result = slot->curl_result;
slot->results->http_code = slot->http_code;
+#if LIBCURL_VERSION_NUM >= 0x070a08
+ curl_easy_getinfo(slot->curl, CURLINFO_HTTPAUTH_AVAIL,
+ &slot->results->auth_avail);
+#else
+ slot->results->auth_avail = 0;
+#endif
}
/* Run callback if appropriate */
diff --git a/http.h b/http.h
index 12ca5c8..cd37d58 100644
--- a/http.h
+++ b/http.h
@@ -54,6 +54,7 @@
struct slot_results {
CURLcode curl_result;
long http_code;
+ long auth_avail;
};
struct active_request_slot {
diff --git a/log-tree.c b/log-tree.c
index 8534d91..e958d07 100644
--- a/log-tree.c
+++ b/log-tree.c
@@ -734,7 +734,7 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log
if (!opt->diff && !DIFF_OPT_TST(&opt->diffopt, EXIT_WITH_STATUS))
return 0;
- parse_commit(commit);
+ parse_commit_or_die(commit);
sha1 = commit->tree->object.sha1;
/* Root commit? */
@@ -759,7 +759,7 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log
* parent, showing summary diff of the others
* we merged _in_.
*/
- parse_commit(parents->item);
+ parse_commit_or_die(parents->item);
diff_tree_sha1(parents->item->tree->object.sha1,
sha1, "", &opt->diffopt);
log_tree_diff_flush(opt);
@@ -774,7 +774,7 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log
for (;;) {
struct commit *parent = parents->item;
- parse_commit(parent);
+ parse_commit_or_die(parent);
diff_tree_sha1(parent->tree->object.sha1,
sha1, "", &opt->diffopt);
log_tree_diff_flush(opt);
diff --git a/notes-utils.c b/notes-utils.c
index 9107c37..7bb3473 100644
--- a/notes-utils.c
+++ b/notes-utils.c
@@ -18,7 +18,7 @@ void create_notes_commit(struct notes_tree *t, struct commit_list *parents,
unsigned char parent_sha1[20];
if (!read_ref(t->ref, parent_sha1)) {
struct commit *parent = lookup_commit(parent_sha1);
- if (!parent || parse_commit(parent))
+ if (parse_commit(parent))
die("Failed to find/parse commit %s", t->ref);
commit_list_insert(parent, &parents);
}
diff --git a/pathspec.c b/pathspec.c
index ad1a9f5..87b3b82 100644
--- a/pathspec.c
+++ b/pathspec.c
@@ -128,7 +128,11 @@ static unsigned prefix_pathspec(struct pathspec_item *item,
die(_("global 'literal' pathspec setting is incompatible "
"with all other global pathspec settings"));
- if (elt[0] != ':' || literal_global) {
+ if (flags & PATHSPEC_LITERAL_PATH)
+ global_magic = 0;
+
+ if (elt[0] != ':' || literal_global ||
+ (flags & PATHSPEC_LITERAL_PATH)) {
; /* nothing to do */
} else if (elt[1] == '(') {
/* longhand */
@@ -193,11 +197,11 @@ static unsigned prefix_pathspec(struct pathspec_item *item,
magic |= short_magic;
*p_short_magic = short_magic;
- /* --noglob-pathspec adds :(literal) _unless_ :(glob) is specifed */
+ /* --noglob-pathspec adds :(literal) _unless_ :(glob) is specified */
if (noglob_global && !(magic & PATHSPEC_GLOB))
global_magic |= PATHSPEC_LITERAL;
- /* --glob-pathspec is overriden by :(literal) */
+ /* --glob-pathspec is overridden by :(literal) */
if ((global_magic & PATHSPEC_GLOB) && (magic & PATHSPEC_LITERAL))
global_magic &= ~PATHSPEC_GLOB;
@@ -405,6 +409,9 @@ void parse_pathspec(struct pathspec *pathspec,
item[i].magic = prefix_pathspec(item + i, &short_magic,
argv + i, flags,
prefix, prefixlen, entry);
+ if ((flags & PATHSPEC_LITERAL_PATH) &&
+ !(magic_mask & PATHSPEC_LITERAL))
+ item[i].magic |= PATHSPEC_LITERAL;
if (item[i].magic & magic_mask)
unsupported_magic(entry,
item[i].magic & magic_mask,
diff --git a/pathspec.h b/pathspec.h
index 944baeb..a75e924 100644
--- a/pathspec.h
+++ b/pathspec.h
@@ -58,6 +58,13 @@ struct pathspec {
#define PATHSPEC_STRIP_SUBMODULE_SLASH_EXPENSIVE (1<<5)
#define PATHSPEC_PREFIX_ORIGIN (1<<6)
#define PATHSPEC_KEEP_ORDER (1<<7)
+/*
+ * For the callers that just need pure paths from somewhere else, not
+ * from command line. Global --*-pathspecs options are ignored. No
+ * magic is parsed in each pathspec either. If PATHSPEC_LITERAL is
+ * allowed, then it will automatically set for every pathspec.
+ */
+#define PATHSPEC_LITERAL_PATH (1<<8)
extern void parse_pathspec(struct pathspec *pathspec,
unsigned magic_mask,
diff --git a/po/TEAMS b/po/TEAMS
index 107aa59..f9a99ed 100644
--- a/po/TEAMS
+++ b/po/TEAMS
@@ -8,7 +8,7 @@ Leader: Byrial Jensen <byrial@vip.cybercity.dk>
Language: de (German)
Repository: https://github.com/ralfth/git-po-de
Leader: Ralf Thielow <ralf.thielow@googlemail.com>
-Members: Thomas Rast <trast@student.ethz.ch>
+Members: Thomas Rast <tr@thomasrast.ch>
Jan Krüger <jk@jk.gs>
Christian Stimming <stimming@tuhh.de>
diff --git a/po/de.po b/po/de.po
index 35a44b9..5e2d709 100644
--- a/po/de.po
+++ b/po/de.po
@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: git 1.8.4\n"
+"Project-Id-Version: git 1.8.5\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2013-08-06 14:10+0800\n"
+"POT-Creation-Date: 2013-11-02 08:06+0800\n"
"PO-Revision-Date: 2013-07-28 18:42+0200\n"
"Last-Translator: Ralf Thielow <ralf.thielow@gmail.com>\n"
"Language-Team: German <>\n"
@@ -57,71 +57,76 @@ msgstr ""
msgid "git archive --remote <repo> [--exec <cmd>] --list"
msgstr "git archive --remote <Repository> [--exec <Programm>] --list"
-#: archive.c:323
+#: archive.c:242 builtin/add.c:240 builtin/add.c:556 builtin/rm.c:328
+#, c-format
+msgid "pathspec '%s' did not match any files"
+msgstr "Pfadspezifikation '%s' stimmt mit keinen Dateien überein"
+
+#: archive.c:327
msgid "fmt"
msgstr "Format"
-#: archive.c:323
+#: archive.c:327
msgid "archive format"
msgstr "Archivformat"
-#: archive.c:324 builtin/log.c:1173
+#: archive.c:328 builtin/log.c:1193
msgid "prefix"
msgstr "Prefix"
-#: archive.c:325
+#: archive.c:329
msgid "prepend prefix to each pathname in the archive"
msgstr "stellt einen Präfix vor jeden Pfadnamen in dem Archiv"
-#: archive.c:326 builtin/archive.c:88 builtin/blame.c:2292
-#: builtin/blame.c:2293 builtin/config.c:56 builtin/fast-export.c:673
-#: builtin/fast-export.c:675 builtin/grep.c:714 builtin/hash-object.c:77
-#: builtin/ls-files.c:496 builtin/ls-files.c:499 builtin/notes.c:408
-#: builtin/notes.c:565 builtin/read-tree.c:108 parse-options.h:152
+#: archive.c:330 builtin/archive.c:88 builtin/blame.c:2264
+#: builtin/blame.c:2265 builtin/config.c:58 builtin/fast-export.c:680
+#: builtin/fast-export.c:682 builtin/grep.c:716 builtin/hash-object.c:77
+#: builtin/ls-files.c:486 builtin/ls-files.c:489 builtin/notes.c:408
+#: builtin/notes.c:565 builtin/read-tree.c:108 parse-options.h:154
msgid "file"
msgstr "Datei"
-#: archive.c:327 builtin/archive.c:89
+#: archive.c:331 builtin/archive.c:89
msgid "write the archive to this file"
msgstr "schreibt das Archiv in diese Datei"
-#: archive.c:329
+#: archive.c:333
msgid "read .gitattributes in working directory"
msgstr "liest .gitattributes aus dem Arbeitsverzeichnis"
-#: archive.c:330
+#: archive.c:334
msgid "report archived files on stderr"
msgstr "gibt archivierte Dateien in der Standard-Fehlerausgabe aus"
-#: archive.c:331
+#: archive.c:335
msgid "store only"
msgstr "nur speichern"
-#: archive.c:332
+#: archive.c:336
msgid "compress faster"
msgstr "schneller komprimieren"
-#: archive.c:340
+#: archive.c:344
msgid "compress better"
msgstr "besser komprimieren"
-#: archive.c:343
+#: archive.c:347
msgid "list supported archive formats"
msgstr "listet unterstützte Archivformate auf"
-#: archive.c:345 builtin/archive.c:90 builtin/clone.c:85
+#: archive.c:349 builtin/archive.c:90 builtin/clone.c:84
msgid "repo"
msgstr "Repository"
-#: archive.c:346 builtin/archive.c:91
+#: archive.c:350 builtin/archive.c:91
msgid "retrieve the archive from remote repository <repo>"
msgstr "ruft das Archiv von Remote-Repository <Repository> ab"
-#: archive.c:347 builtin/archive.c:92 builtin/notes.c:487
+#: archive.c:351 builtin/archive.c:92 builtin/notes.c:487
msgid "command"
msgstr "Programm"
-#: archive.c:348 builtin/archive.c:93
+#: archive.c:352 builtin/archive.c:93
msgid "path to the remote git-upload-archive command"
msgstr "Pfad zum externen \"git-upload-archive\"-Programm"
@@ -207,19 +212,19 @@ msgstr "Branch '%s' existiert bereits."
msgid "Cannot force update the current branch."
msgstr "Kann Aktualisierung des aktuellen Branches nicht erzwingen."
-#: branch.c:216
+#: branch.c:215
#, c-format
msgid "Cannot setup tracking information; starting point '%s' is not a branch."
msgstr ""
"Kann Tracking-Informationen nicht einrichten; Startpunkt '%s' ist kein "
"Branch."
-#: branch.c:218
+#: branch.c:217
#, c-format
msgid "the requested upstream branch '%s' does not exist"
msgstr "der angeforderte Upstream-Branch '%s' existiert nicht"
-#: branch.c:220
+#: branch.c:219
msgid ""
"\n"
"If you are planning on basing your work on an upstream\n"
@@ -240,26 +245,26 @@ msgstr ""
"\"git push -u\" verwenden, um den Upstream-Branch beim \"push\"\n"
"zu konfigurieren."
-#: branch.c:265
+#: branch.c:264
#, c-format
msgid "Not a valid object name: '%s'."
msgstr "Ungültiger Objekt-Name: '%s'"
-#: branch.c:285
+#: branch.c:284
#, c-format
msgid "Ambiguous object name: '%s'."
msgstr "mehrdeutiger Objekt-Name: '%s'"
-#: branch.c:290
+#: branch.c:289
#, c-format
msgid "Not a valid branch point: '%s'."
msgstr "Ungültiger Branchpunkt: '%s'"
-#: branch.c:296
+#: branch.c:295
msgid "Failed to lock ref for update"
msgstr "Fehler beim Sperren der Referenz zur Aktualisierung."
-#: branch.c:314
+#: branch.c:313
msgid "Failed to write ref"
msgstr "Fehler beim Schreiben der Referenz."
@@ -273,7 +278,7 @@ msgstr "'%s' sieht nicht wie eine v2 Paketdatei aus"
msgid "unrecognized header: %s%s (%d)"
msgstr "nicht erkannter Kopfbereich: %s%s (%d)"
-#: bundle.c:89 builtin/commit.c:697
+#: bundle.c:89 builtin/commit.c:706
#, c-format
msgid "could not open '%s'"
msgstr "Konnte '%s' nicht öffnen"
@@ -282,9 +287,9 @@ msgstr "Konnte '%s' nicht öffnen"
msgid "Repository lacks these prerequisite commits:"
msgstr "Dem Repository fehlen folgende vorausgesetzte Commits:"
-#: bundle.c:164 sequencer.c:661 sequencer.c:1111 builtin/log.c:331
-#: builtin/log.c:801 builtin/log.c:1399 builtin/log.c:1625 builtin/merge.c:364
-#: builtin/shortlog.c:156
+#: bundle.c:164 sequencer.c:662 sequencer.c:1112 builtin/log.c:332
+#: builtin/log.c:821 builtin/log.c:1418 builtin/log.c:1644 builtin/merge.c:364
+#: builtin/shortlog.c:158
msgid "revision walk setup failed"
msgstr "Einrichtung des Revisionsgangs fehlgeschlagen"
@@ -310,7 +315,7 @@ msgstr[1] "Das Paket benötigt diese %d Referenzen:"
msgid "rev-list died"
msgstr "\"rev-list\" abgebrochen"
-#: bundle.c:300 builtin/log.c:1310 builtin/shortlog.c:259
+#: bundle.c:300 builtin/log.c:1329 builtin/shortlog.c:261
#, c-format
msgid "unrecognized argument: %s"
msgstr "nicht erkanntes Argument: %s"
@@ -461,7 +466,7 @@ msgstr ""
"Fehler in 'diff.dirstat' Konfigurationsvariable gefunden:\n"
"%s"
-#: diff.c:3487
+#: diff.c:3490
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -470,7 +475,7 @@ msgstr ""
"Fehler beim Parsen des --dirstat/-X Optionsparameters:\n"
"%s"
-#: diff.c:3501
+#: diff.c:3504
#, c-format
msgid "Failed to parse --submodule option parameter: '%s'"
msgstr "Fehler beim Parsen des --submodule Optionsparameters: '%s'"
@@ -497,17 +502,17 @@ msgstr "konnte temporäre Datei '%s' nicht erstellen: %s"
msgid "failed writing detached signature to '%s': %s"
msgstr "Fehler beim Schreiben der Signatur nach '%s': %s"
-#: grep.c:1623
+#: grep.c:1695
#, c-format
msgid "'%s': unable to read %s"
msgstr "'%s': konnte nicht lesen %s"
-#: grep.c:1640
+#: grep.c:1712
#, c-format
msgid "'%s': %s"
msgstr "'%s': %s"
-#: grep.c:1651
+#: grep.c:1723
#, c-format
msgid "'%s': short read %s"
msgstr "'%s': read() zu kurz %s"
@@ -580,8 +585,8 @@ msgstr "%s: %s - %s"
msgid "failed to read the cache"
msgstr "Lesen des Zwischenspeichers fehlgeschlagen"
-#: merge.c:110 builtin/checkout.c:365 builtin/checkout.c:566
-#: builtin/clone.c:656
+#: merge.c:110 builtin/checkout.c:358 builtin/checkout.c:559
+#: builtin/clone.c:655
msgid "unable to write new index file"
msgstr "Konnte neue Staging-Area-Datei nicht schreiben."
@@ -630,7 +635,7 @@ msgstr "kann Objekt %s '%s' nicht lesen"
msgid "blob expected for %s '%s'"
msgstr "Blob erwartet für %s '%s'"
-#: merge-recursive.c:774 builtin/clone.c:312
+#: merge-recursive.c:774 builtin/clone.c:311
#, c-format
msgid "failed to open '%s'"
msgstr "Fehler beim Öffnen von '%s'"
@@ -767,7 +772,7 @@ msgstr "%s ausgelassen (Ergebnis des Merges existiert bereits)"
msgid "Auto-merging %s"
msgstr "automatischer Merge von %s"
-#: merge-recursive.c:1634 git-submodule.sh:1118
+#: merge-recursive.c:1634 git-submodule.sh:1125
msgid "submodule"
msgstr "Submodul"
@@ -866,58 +871,122 @@ msgstr ""
msgid "Bad %s value: '%s'"
msgstr "Ungültiger %s Wert: '%s'"
-#: object.c:204
+#: object.c:202
#, c-format
msgid "unable to parse object: %s"
msgstr "Konnte Objekt '%s' nicht parsen."
-#: parse-options.c:489
+#: parse-options.c:537
msgid "..."
msgstr "..."
-#: parse-options.c:507
+#: parse-options.c:555
#, c-format
msgid "usage: %s"
msgstr "Verwendung: %s"
#. TRANSLATORS: the colon here should align with the
#. one in "usage: %s" translation
-#: parse-options.c:511
+#: parse-options.c:559
#, c-format
msgid " or: %s"
msgstr " oder: %s"
-#: parse-options.c:514
+#: parse-options.c:562
#, c-format
msgid " %s"
msgstr " %s"
-#: parse-options.c:548
+#: parse-options.c:596
msgid "-NUM"
msgstr "-NUM"
-#: pathspec.c:83
+#: pathspec.c:118
+msgid "global 'glob' and 'noglob' pathspec settings are incompatible"
+msgstr "Globale Einstellungen zur Pfadspezifikation 'glob' und 'noglob' sind inkompatibel."
+
+#: pathspec.c:128
+msgid ""
+"global 'literal' pathspec setting is incompatible with all other global "
+"pathspec settings"
+msgstr "Globale Einstellung zur Pfadspezifikation 'literal' ist inkompatibel\n"
+"mit allen anderen Optionen."
+
+#: pathspec.c:158
+msgid "invalid parameter for pathspec magic 'prefix'"
+msgstr "ungültiger Parameter für Pfadspezifikationsangabe 'prefix'"
+
+#: pathspec.c:164
+#, c-format
+msgid "Invalid pathspec magic '%.*s' in '%s'"
+msgstr "ungültige Pfadspezifikationsangabe '%.*s' in '%s'"
+
+#: pathspec.c:168
+#, c-format
+msgid "Missing ')' at the end of pathspec magic in '%s'"
+msgstr "Fehlendes ')' am Ende der Pfadspezifikationsangabe in '%s'"
+
+#: pathspec.c:186
+#, c-format
+msgid "Unimplemented pathspec magic '%c' in '%s'"
+msgstr "nicht unterstützte Pfadspezifikationsangabe '%c' in '%s'"
+
+#: pathspec.c:211
+#, c-format
+msgid "%s: 'literal' and 'glob' are incompatible"
+msgstr "%s: 'literal' und 'glob' sind inkompatibel"
+
+#: pathspec.c:222
+#, c-format
+msgid "%s: '%s' is outside repository"
+msgstr "%s: '%s' liegt außerhalb des Repositories"
+
+#: pathspec.c:278
#, c-format
-msgid "Path '%s' is in submodule '%.*s'"
-msgstr "Pfad '%s' befindet sich in Submodul '%.*s'"
+msgid "Pathspec '%s' is in submodule '%.*s'"
+msgstr "Pfadspezifikation '%s' befindet sich in Submodul '%.*s'"
-#: pathspec.c:99
+#.
+#. * We may want to substitute "this command" with a command
+#. * name. E.g. when add--interactive dies when running
+#. * "checkout -p"
+#.
+#: pathspec.c:340
#, c-format
-msgid "'%s' is beyond a symbolic link"
-msgstr "'%s' ist hinter einem symbolischen Verweis"
+msgid "%s: pathspec magic not supported by this command: %s"
+msgstr "%s: Pfadspezifikationsangabe wird von diesem Kommando nicht unterstützt: %s"
-#: remote.c:1788
+#: pathspec.c:415
+#, c-format
+msgid "pathspec '%s' is beyond a symbolic link"
+msgstr "Pfadspezifikation '%s' ist hinter einem symbolischen Verweis"
+
+#: remote.c:1833
+#, c-format
+msgid "Your branch is based on '%s', but the upstream is gone.\n"
+msgstr "Ihr Branch basiert auf '%s', aber Upstream-Branch wurde entfernt.\n"
+
+#: remote.c:1837
+msgid " (use \"git branch --unset-upstream\" to fixup)\n"
+msgstr " (benutzen Sie \"git branch --unset-upstream\" zum Beheben)\n"
+
+#: remote.c:1840
+#, c-format
+msgid "Your branch is up-to-date with '%s'.\n"
+msgstr "Ihr Branch ist auf dem selben Stand wie '%s'.\n"
+
+#: remote.c:1844
#, c-format
msgid "Your branch is ahead of '%s' by %d commit.\n"
msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
msgstr[0] "Ihr Branch ist vor '%s' um %d Commit.\n"
msgstr[1] "Ihr Branch ist vor '%s' um %d Commits.\n"
-#: remote.c:1794
+#: remote.c:1850
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (benutzen Sie \"git push\" um lokale Commits zu publizieren)\n"
-#: remote.c:1797
+#: remote.c:1853
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -927,12 +996,12 @@ msgstr[0] ""
msgstr[1] ""
"Ihr Branch ist zu '%s' um %d Commits hinterher, und kann vorgespult werden.\n"
-#: remote.c:1805
+#: remote.c:1861
msgid " (use \"git pull\" to update your local branch)\n"
msgstr ""
" (benutzen Sie \"git pull\" um Ihren lokalen Branch zu aktualisieren)\n"
-#: remote.c:1808
+#: remote.c:1864
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -947,7 +1016,7 @@ msgstr[1] ""
"Ihr Branch und '%s' sind divergiert,\n"
"und haben jeweils %d und %d unterschiedliche Commits.\n"
-#: remote.c:1818
+#: remote.c:1874
msgid " (use \"git pull\" to merge the remote branch into yours)\n"
msgstr ""
" (benutzen Sie \"git pull\" um Ihren Branch mit dem Remote-Branch "
@@ -992,7 +1061,7 @@ msgstr ""
"mit 'git add <Pfade>' oder 'git rm <Pfade>'und tragen Sie das Ergebnis mit\n"
"'git commit' ein"
-#: sequencer.c:245 sequencer.c:869 sequencer.c:952
+#: sequencer.c:245 sequencer.c:870 sequencer.c:953
#, c-format
msgid "Could not write to %s"
msgstr "Konnte nicht nach %s schreiben"
@@ -1017,197 +1086,197 @@ msgstr ""
"Tragen Sie Ihre Änderungen ein oder benutzen Sie \"stash\" um fortzufahren."
#. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:324
+#: sequencer.c:325
#, c-format
msgid "%s: Unable to write new index file"
msgstr "%s: Konnte neue Staging-Area-Datei nicht schreiben"
-#: sequencer.c:355
+#: sequencer.c:356
msgid "Could not resolve HEAD commit\n"
msgstr "Konnte Commit von HEAD nicht auflösen\n"
-#: sequencer.c:377
+#: sequencer.c:378
msgid "Unable to update cache tree\n"
msgstr "Konnte Cache-Verzeichnis nicht aktualisieren\n"
-#: sequencer.c:422
+#: sequencer.c:423
#, c-format
msgid "Could not parse commit %s\n"
msgstr "Konnte Commit %s nicht parsen\n"
-#: sequencer.c:427
+#: sequencer.c:428
#, c-format
msgid "Could not parse parent commit %s\n"
msgstr "Konnte Eltern-Commit %s nicht parsen\n"
-#: sequencer.c:493
+#: sequencer.c:494
msgid "Your index file is unmerged."
msgstr "Ihre Staging-Area-Datei ist nicht zusammengeführt."
-#: sequencer.c:512
+#: sequencer.c:513
#, c-format
msgid "Commit %s is a merge but no -m option was given."
msgstr "Commit %s ist ein Merge, aber die Option -m wurde nicht angegeben."
-#: sequencer.c:520
+#: sequencer.c:521
#, c-format
msgid "Commit %s does not have parent %d"
msgstr "Commit %s hat keinen Elternteil %d"
-#: sequencer.c:524
+#: sequencer.c:525
#, c-format
msgid "Mainline was specified but commit %s is not a merge."
msgstr "Hauptlinie wurde spezifiziert, aber Commit %s ist kein Merge."
#. TRANSLATORS: The first %s will be "revert" or
#. "cherry-pick", the second %s a SHA1
-#: sequencer.c:537
+#: sequencer.c:538
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s: kann Eltern-Commit %s nicht parsen"
-#: sequencer.c:541
+#: sequencer.c:542
#, c-format
msgid "Cannot get commit message for %s"
msgstr "Kann keine Commit-Beschreibung für %s bekommen"
-#: sequencer.c:627
+#: sequencer.c:628
#, c-format
msgid "could not revert %s... %s"
msgstr "Konnte \"revert\" nicht auf %s ausführen... %s"
-#: sequencer.c:628
+#: sequencer.c:629
#, c-format
msgid "could not apply %s... %s"
msgstr "Konnte %s nicht anwenden... %s"
-#: sequencer.c:664
+#: sequencer.c:665
msgid "empty commit set passed"
msgstr "leere Menge von Commits übergeben"
-#: sequencer.c:672
+#: sequencer.c:673
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s: Fehler beim Lesen der Staging-Area"
-#: sequencer.c:677
+#: sequencer.c:678
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s: Fehler beim Aktualisieren der Staging-Area"
-#: sequencer.c:735
+#: sequencer.c:736
#, c-format
msgid "Cannot %s during a %s"
msgstr "Kann %s nicht während eines %s durchführen"
-#: sequencer.c:757
+#: sequencer.c:758
#, c-format
msgid "Could not parse line %d."
msgstr "Konnte Zeile %d nicht parsen."
-#: sequencer.c:762
+#: sequencer.c:763
msgid "No commits parsed."
msgstr "Keine Commits geparst."
-#: sequencer.c:775
+#: sequencer.c:776
#, c-format
msgid "Could not open %s"
msgstr "Konnte %s nicht öffnen"
-#: sequencer.c:779
+#: sequencer.c:780
#, c-format
msgid "Could not read %s."
msgstr "Konnte %s nicht lesen."
-#: sequencer.c:786
+#: sequencer.c:787
#, c-format
msgid "Unusable instruction sheet: %s"
msgstr "Unbenutzbares Instruktionsblatt: %s"
-#: sequencer.c:814
+#: sequencer.c:815
#, c-format
msgid "Invalid key: %s"
msgstr "Ungültiger Schlüssel: %s"
-#: sequencer.c:817
+#: sequencer.c:818
#, c-format
msgid "Invalid value for %s: %s"
msgstr "Ungültiger Wert für %s: %s"
-#: sequencer.c:829
+#: sequencer.c:830
#, c-format
msgid "Malformed options sheet: %s"
msgstr "Fehlerhaftes Optionsblatt: %s"
-#: sequencer.c:850
+#: sequencer.c:851
msgid "a cherry-pick or revert is already in progress"
msgstr "\"cherry-pick\" oder \"revert\" ist bereits im Gang"
-#: sequencer.c:851
+#: sequencer.c:852
msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
msgstr "versuchen Sie \"git cherry-pick (--continue | --quit | --abort)\""
-#: sequencer.c:855
+#: sequencer.c:856
#, c-format
msgid "Could not create sequencer directory %s"
msgstr "Konnte \"sequencer\"-Verzeichnis %s nicht erstellen"
-#: sequencer.c:871 sequencer.c:956
+#: sequencer.c:872 sequencer.c:957
#, c-format
msgid "Error wrapping up %s."
msgstr "Fehler beim Einpacken von %s."
-#: sequencer.c:890 sequencer.c:1024
+#: sequencer.c:891 sequencer.c:1025
msgid "no cherry-pick or revert in progress"
msgstr "kein \"cherry-pick\" oder \"revert\" im Gang"
-#: sequencer.c:892
+#: sequencer.c:893
msgid "cannot resolve HEAD"
msgstr "kann HEAD nicht auflösen"
-#: sequencer.c:894
+#: sequencer.c:895
msgid "cannot abort from a branch yet to be born"
msgstr "kann nicht abbrechen: bin auf einem Branch, der noch geboren wird"
-#: sequencer.c:916 builtin/apply.c:4061
+#: sequencer.c:917 builtin/apply.c:4061
#, c-format
msgid "cannot open %s: %s"
msgstr "Kann %s nicht öffnen: %s"
-#: sequencer.c:919
+#: sequencer.c:920
#, c-format
msgid "cannot read %s: %s"
msgstr "Kann %s nicht lesen: %s"
-#: sequencer.c:920
+#: sequencer.c:921
msgid "unexpected end of file"
msgstr "Unerwartetes Dateiende"
-#: sequencer.c:926
+#: sequencer.c:927
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr "gespeicherte \"pre-cherry-pick\" HEAD Datei '%s' ist beschädigt"
-#: sequencer.c:949
+#: sequencer.c:950
#, c-format
msgid "Could not format %s."
msgstr "Konnte %s nicht formatieren."
-#: sequencer.c:1092
+#: sequencer.c:1093
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s: %s kann nicht in \"cherry-pick\" benutzt werden"
-#: sequencer.c:1095
+#: sequencer.c:1096
#, c-format
msgid "%s: bad revision"
msgstr "%s: ungültiger Commit"
-#: sequencer.c:1129
+#: sequencer.c:1130
msgid "Can't revert as initial commit"
msgstr "Kann nicht als allerersten Commit einen Revert ausführen."
-#: sequencer.c:1130
+#: sequencer.c:1131
msgid "Can't cherry-pick into empty head"
msgstr "Kann nicht als allerersten Commit einen Cherry-Pick ausführen."
@@ -1236,275 +1305,368 @@ msgstr ""
"indem Sie \"git config advice.objectNameWarning false\"\n"
"ausführen."
-#: sha1_name.c:1097
+#: sha1_name.c:1112
msgid "HEAD does not point to a branch"
msgstr "HEAD zeigt auf keinen Branch"
-#: sha1_name.c:1100
+#: sha1_name.c:1115
#, c-format
msgid "No such branch: '%s'"
msgstr "Kein solcher Branch '%s'"
-#: sha1_name.c:1102
+#: sha1_name.c:1117
#, c-format
msgid "No upstream configured for branch '%s'"
msgstr "Kein Upstream-Branch für Branch '%s' konfiguriert."
-#: sha1_name.c:1106
+#: sha1_name.c:1121
#, c-format
msgid "Upstream branch '%s' not stored as a remote-tracking branch"
msgstr "Upstream-Branch '%s' ist nicht als Remote-Tracking-Branch gespeichert"
-#: wrapper.c:408
+#: submodule.c:64 submodule.c:98
+msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
+msgstr "Kann nicht zusammengeführte .gitmodules-Datei nicht ändern, lösen\n"
+"Sie zuerst die Konflikte auf"
+
+#: submodule.c:68 submodule.c:102
+#, c-format
+msgid "Could not find section in .gitmodules where path=%s"
+msgstr "Konnte keine Sektion in .gitmodules mit Pfad \"%s\" finden"
+
+#. Maybe the user already did that, don't error out here
+#: submodule.c:76
+#, c-format
+msgid "Could not update .gitmodules entry %s"
+msgstr "Konnte Eintrag '%s' in .gitmodules nicht aktualisieren"
+
+#. Maybe the user already did that, don't error out here
+#: submodule.c:109
+#, c-format
+msgid "Could not remove .gitmodules entry for %s"
+msgstr "Konnte Eintrag '%s' nicht aus .gitmodules entfernen"
+
+#: submodule.c:127
+msgid "could not find .gitmodules in index"
+msgstr "Konnte .gitmodules nicht in der Staging-Area finden"
+
+#: submodule.c:133
+msgid "reading updated .gitmodules failed"
+msgstr "Lesen der aktualisierten .gitmodules-Datei fehlgeschlagen"
+
+#: submodule.c:135
+msgid "unable to stat updated .gitmodules"
+msgstr "Konnte aktualisierte .gitmodules-Datei nicht lesen"
+
+#: submodule.c:139
+msgid "unable to remove .gitmodules from index"
+msgstr "Konnte .gitmodules nicht aus der Staging-Area entfernen"
+
+#: submodule.c:141
+msgid "adding updated .gitmodules failed"
+msgstr "Konnte aktualisierte .gitmodules-Datei nicht hinzufügen"
+
+#: submodule.c:143
+msgid "staging updated .gitmodules failed"
+msgstr "Konnte aktualisierte .gitmodules-Datei nicht zum Commit vormerken"
+
+#: submodule.c:1144 builtin/init-db.c:363
+#, c-format
+msgid "Could not create git link %s"
+msgstr "Konnte git-Verweis %s nicht erstellen"
+
+#: submodule.c:1155
+#, c-format
+msgid "Could not set core.worktree in %s"
+msgstr "Konnte core.worktree in '%s' nicht setzen."
+
+#: urlmatch.c:120
+msgid "invalid URL scheme name or missing '://' suffix"
+msgstr "Ungültiges URL-Schema oder Suffix '://' fehlt"
+
+#: urlmatch.c:144 urlmatch.c:297 urlmatch.c:356
+#, c-format
+msgid "invalid %XX escape sequence"
+msgstr "ungültige Escape-Sequenz %XX"
+
+#: urlmatch.c:172
+msgid "missing host and scheme is not 'file:'"
+msgstr "fehlender Host und Schema ist nicht 'file:'"
+
+#: urlmatch.c:189
+msgid "a 'file:' URL may not have a port number"
+msgstr "eine 'file:' URL darf keine Portnummer enthalten"
+
+#: urlmatch.c:199
+msgid "invalid characters in host name"
+msgstr "Hostname enthält ungültige Zeichen"
+
+#: urlmatch.c:244 urlmatch.c:255
+msgid "invalid port number"
+msgstr "ungültige Portnummer"
+
+#: urlmatch.c:322
+msgid "invalid '..' path segment"
+msgstr "ungültiges '..' Pfadsegment"
+
+#: wrapper.c:422
#, c-format
msgid "unable to access '%s': %s"
msgstr "konnte nicht auf '%s' zugreifen: %s"
-#: wrapper.c:429
+#: wrapper.c:443
#, c-format
msgid "unable to access '%s'"
msgstr "konnte nicht auf '%s' zugreifen"
-#: wrapper.c:440
+#: wrapper.c:454
#, c-format
msgid "unable to look up current user in the passwd file: %s"
msgstr "konnte aktuellen Benutzer nicht in Passwort-Datei finden: %s"
-#: wrapper.c:441
+#: wrapper.c:455
msgid "no such user"
msgstr "kein solcher Benutzer"
-#: wt-status.c:141
+#: wt-status.c:146
msgid "Unmerged paths:"
msgstr "Nicht zusammengeführte Pfade:"
-#: wt-status.c:168 wt-status.c:195
+#: wt-status.c:173 wt-status.c:200
#, c-format
msgid " (use \"git reset %s <file>...\" to unstage)"
msgstr ""
" (benutzen Sie \"git reset %s <Datei>...\" zum Entfernen aus der Staging-"
"Area)"
-#: wt-status.c:170 wt-status.c:197
+#: wt-status.c:175 wt-status.c:202
msgid " (use \"git rm --cached <file>...\" to unstage)"
msgstr ""
" (benutzen Sie \"git rm --cached <Datei>...\" zum Entfernen aus der Staging-"
"Area)"
-#: wt-status.c:174
+#: wt-status.c:179
msgid " (use \"git add <file>...\" to mark resolution)"
msgstr ""
" (benutzen Sie \"git add/rm <Datei>...\" um die Auflösung zu markieren)"
-#: wt-status.c:176 wt-status.c:180
+#: wt-status.c:181 wt-status.c:185
msgid " (use \"git add/rm <file>...\" as appropriate to mark resolution)"
msgstr ""
" (benutzen Sie \"git add/rm <Datei>...\" um die Auflösung entsprechend zu "
"markieren)"
-#: wt-status.c:178
+#: wt-status.c:183
msgid " (use \"git rm <file>...\" to mark resolution)"
msgstr ""
" (benutzen Sie \"git add/rm <Datei>...\" um die Auflösung zu markieren)"
-#: wt-status.c:189
+#: wt-status.c:194
msgid "Changes to be committed:"
msgstr "zum Commit vorgemerkte Änderungen:"
-#: wt-status.c:207
+#: wt-status.c:212
msgid "Changes not staged for commit:"
msgstr "Änderungen, die nicht zum Commit vorgemerkt sind:"
-#: wt-status.c:211
+#: wt-status.c:216
msgid " (use \"git add <file>...\" to update what will be committed)"
msgstr ""
" (benutzen Sie \"git add <Datei>...\" um die Änderungen zum Commit "
"vorzumerken)"
-#: wt-status.c:213
+#: wt-status.c:218
msgid " (use \"git add/rm <file>...\" to update what will be committed)"
msgstr ""
" (benutzen Sie \"git add/rm <Datei>...\" um die Änderungen zum Commit "
"vorzumerken)"
-#: wt-status.c:214
+#: wt-status.c:219
msgid ""
" (use \"git checkout -- <file>...\" to discard changes in working directory)"
msgstr ""
" (benutzen Sie \"git checkout -- <Datei>...\" um die Änderungen im "
"Arbeitsverzeichnis zu verwerfen)"
-#: wt-status.c:216
+#: wt-status.c:221
msgid " (commit or discard the untracked or modified content in submodules)"
msgstr ""
" (committen oder verwerfen Sie den unbeobachteten oder geänderten Inhalt in "
"den Submodulen)"
-#: wt-status.c:228
+#: wt-status.c:233
#, c-format
msgid " (use \"git %s <file>...\" to include in what will be committed)"
msgstr ""
" (benutzen Sie \"git %s <Datei>...\" um die Änderungen zum Commit "
"vorzumerken)"
-#: wt-status.c:245
+#: wt-status.c:250
msgid "bug"
msgstr "Fehler"
-#: wt-status.c:250
+#: wt-status.c:255
msgid "both deleted:"
msgstr "beide gelöscht:"
-#: wt-status.c:251
+#: wt-status.c:256
msgid "added by us:"
msgstr "von uns hinzugefügt:"
-#: wt-status.c:252
+#: wt-status.c:257
msgid "deleted by them:"
msgstr "von denen gelöscht:"
-#: wt-status.c:253
+#: wt-status.c:258
msgid "added by them:"
msgstr "von denen hinzugefügt:"
-#: wt-status.c:254
+#: wt-status.c:259
msgid "deleted by us:"
msgstr "von uns gelöscht:"
-#: wt-status.c:255
+#: wt-status.c:260
msgid "both added:"
msgstr "von beiden hinzugefügt:"
-#: wt-status.c:256
+#: wt-status.c:261
msgid "both modified:"
msgstr "von beiden geändert:"
-#: wt-status.c:286
+#: wt-status.c:291
msgid "new commits, "
msgstr "neue Commits, "
-#: wt-status.c:288
+#: wt-status.c:293
msgid "modified content, "
msgstr "geänderter Inhalt, "
-#: wt-status.c:290
+#: wt-status.c:295
msgid "untracked content, "
msgstr "unbeobachteter Inhalt, "
-#: wt-status.c:307
+#: wt-status.c:312
#, c-format
msgid "new file: %s"
msgstr "neue Datei: %s"
-#: wt-status.c:310
+#: wt-status.c:315
#, c-format
msgid "copied: %s -> %s"
msgstr "kopiert: %s -> %s"
-#: wt-status.c:313
+#: wt-status.c:318
#, c-format
msgid "deleted: %s"
msgstr "gelöscht: %s"
-#: wt-status.c:316
+#: wt-status.c:321
#, c-format
msgid "modified: %s"
msgstr "geändert: %s"
-#: wt-status.c:319
+#: wt-status.c:324
#, c-format
msgid "renamed: %s -> %s"
msgstr "umbenannt: %s -> %s"
-#: wt-status.c:322
+#: wt-status.c:327
#, c-format
msgid "typechange: %s"
msgstr "Typänderung: %s"
-#: wt-status.c:325
+#: wt-status.c:330
#, c-format
msgid "unknown: %s"
msgstr "unbekannt: %s"
-#: wt-status.c:328
+#: wt-status.c:333
#, c-format
msgid "unmerged: %s"
msgstr "nicht zusammengeführt: %s"
-#: wt-status.c:331
+#: wt-status.c:336
#, c-format
msgid "bug: unhandled diff status %c"
msgstr "Fehler: unbehandelter Differenz-Status %c"
-#: wt-status.c:803
+#: wt-status.c:703
+msgid "Submodules changed but not updated:"
+msgstr "Submodule geändert, aber nicht aktualisiert:"
+
+#: wt-status.c:705
+msgid "Submodule changes to be committed:"
+msgstr "Änderungen in Submodul zum Committen:"
+
+#: wt-status.c:848
msgid "You have unmerged paths."
msgstr "Sie haben nicht zusammengeführte Pfade."
-#: wt-status.c:806
+#: wt-status.c:851
msgid " (fix conflicts and run \"git commit\")"
msgstr " (beheben Sie die Konflikte und führen Sie \"git commit\" aus)"
-#: wt-status.c:809
+#: wt-status.c:854
msgid "All conflicts fixed but you are still merging."
msgstr "Alle Konflikte sind behoben, aber Sie sind immer noch beim Merge."
-#: wt-status.c:812
+#: wt-status.c:857
msgid " (use \"git commit\" to conclude merge)"
msgstr " (benutzen Sie \"git commit\" um den Merge abzuschließen)"
-#: wt-status.c:822
+#: wt-status.c:867
msgid "You are in the middle of an am session."
msgstr "Eine \"am\"-Sitzung ist im Gange."
-#: wt-status.c:825
+#: wt-status.c:870
msgid "The current patch is empty."
msgstr "Der aktuelle Patch ist leer."
-#: wt-status.c:829
+#: wt-status.c:874
msgid " (fix conflicts and then run \"git am --continue\")"
msgstr ""
" (beheben Sie die Konflikte und führen Sie dann \"git am --continue\" aus)"
-#: wt-status.c:831
+#: wt-status.c:876
msgid " (use \"git am --skip\" to skip this patch)"
msgstr " (benutzen Sie \"git am --skip\" um diesen Patch auszulassen)"
-#: wt-status.c:833
+#: wt-status.c:878
msgid " (use \"git am --abort\" to restore the original branch)"
msgstr ""
" (benutzen Sie \"git am --abort\" um den ursprünglichen Branch "
"wiederherzustellen)"
-#: wt-status.c:893 wt-status.c:910
+#: wt-status.c:938 wt-status.c:955
#, c-format
msgid "You are currently rebasing branch '%s' on '%s'."
msgstr "Sie sind gerade beim Rebase von Branch '%s' auf '%s'."
-#: wt-status.c:898 wt-status.c:915
+#: wt-status.c:943 wt-status.c:960
msgid "You are currently rebasing."
msgstr "Sie sind gerade beim Rebase."
-#: wt-status.c:901
+#: wt-status.c:946
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:903
+#: wt-status.c:948
msgid " (use \"git rebase --skip\" to skip this patch)"
msgstr " (benutzen Sie \"git rebase --skip\" um diesen Patch auszulassen)"
-#: wt-status.c:905
+#: wt-status.c:950
msgid " (use \"git rebase --abort\" to check out the original branch)"
msgstr ""
" (benutzen Sie \"git rebase --abort\" um den ursprünglichen Branch "
"auszuchecken)"
-#: wt-status.c:918
+#: wt-status.c:963
msgid " (all conflicts fixed: run \"git rebase --continue\")"
msgstr " (alle Konflikte behoben: führen Sie \"git rebase --continue\" aus)"
-#: wt-status.c:922
+#: wt-status.c:967
#, c-format
msgid ""
"You are currently splitting a commit while rebasing branch '%s' on '%s'."
@@ -1512,128 +1674,129 @@ msgstr ""
"Sie teilen gerade einen Commit auf, während ein Rebase von Branch '%s' auf "
"'%s' im Gange ist."
-#: wt-status.c:927
+#: wt-status.c:972
msgid "You are currently splitting a commit during a rebase."
msgstr "Sie teilen gerade einen Commit während eines Rebase auf."
-#: wt-status.c:930
+#: wt-status.c:975
msgid " (Once your working directory is clean, run \"git rebase --continue\")"
msgstr ""
" (Sobald Ihr Arbeitsverzeichnis unverändert ist, führen Sie \"git rebase --"
"continue\" aus)"
-#: wt-status.c:934
+#: wt-status.c:979
#, c-format
msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
msgstr ""
"Sie editieren gerade einen Commit während eines Rebase von Branch '%s' auf "
"'%s'."
-#: wt-status.c:939
+#: wt-status.c:984
msgid "You are currently editing a commit during a rebase."
msgstr "Sie editieren gerade einen Commit während eines Rebase."
-#: wt-status.c:942
+#: wt-status.c:987
msgid " (use \"git commit --amend\" to amend the current commit)"
msgstr ""
" (benutzen Sie \"git commit --amend\" um den aktuellen Commit nachzubessern)"
-#: wt-status.c:944
+#: wt-status.c:989
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:954
-msgid "You are currently cherry-picking."
-msgstr "Sie führen gerade \"cherry-pick\" aus."
+#: wt-status.c:999
+#, c-format
+msgid "You are currently cherry-picking commit %s."
+msgstr "Sie führen gerade \"cherry-pick\" von Commit %s aus."
-#: wt-status.c:958
+#: wt-status.c:1004
msgid " (fix conflicts and run \"git cherry-pick --continue\")"
msgstr ""
" (beheben Sie die Konflikte und führen Sie dann \"git cherry-pick --continue"
"\" aus)"
-#: wt-status.c:961
+#: wt-status.c:1007
msgid " (all conflicts fixed: run \"git cherry-pick --continue\")"
msgstr ""
" (alle Konflikte behoben: führen Sie \"git cherry-pick --continue\" aus)"
-#: wt-status.c:963
+#: wt-status.c:1009
msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
msgstr ""
" (benutzen Sie \"git cherry-pick --abort\" um die Cherry-Pick-Operation "
"abzubrechen)"
-#: wt-status.c:972
+#: wt-status.c:1018
#, c-format
msgid "You are currently reverting commit %s."
msgstr "Sie sind gerade an einem Revert von Commit '%s'."
-#: wt-status.c:977
+#: wt-status.c:1023
msgid " (fix conflicts and run \"git revert --continue\")"
msgstr ""
" (beheben Sie die Konflikte und führen Sie dann \"git revert --continue\" "
"aus)"
-#: wt-status.c:980
+#: wt-status.c:1026
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr " (alle Konflikte behoben: führen Sie \"git revert --continue\" aus)"
-#: wt-status.c:982
+#: wt-status.c:1028
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr ""
" (benutzen Sie \"git revert --abort\" um die Revert-Operation abzubrechen)"
-#: wt-status.c:993
+#: wt-status.c:1039
#, c-format
msgid "You are currently bisecting, started from branch '%s'."
msgstr "Sie sind gerade bei einer binären Suche, gestartet von Branch '%s'."
-#: wt-status.c:997
+#: wt-status.c:1043
msgid "You are currently bisecting."
msgstr "Sie sind gerade bei einer binären Suche."
-#: wt-status.c:1000
+#: wt-status.c:1046
msgid " (use \"git bisect reset\" to get back to the original branch)"
msgstr ""
" (benutzen Sie \"git bisect reset\" um zum ursprünglichen Branch "
"zurückzukehren)"
-#: wt-status.c:1173
+#: wt-status.c:1221
msgid "On branch "
msgstr "Auf Branch "
-#: wt-status.c:1180
+#: wt-status.c:1228
msgid "rebase in progress; onto "
msgstr "Rebase im Gange; auf "
-#: wt-status.c:1187
+#: wt-status.c:1235
msgid "HEAD detached at "
msgstr "HEAD losgelöst bei "
-#: wt-status.c:1189
+#: wt-status.c:1237
msgid "HEAD detached from "
msgstr "HEAD losgelöst von "
-#: wt-status.c:1192
+#: wt-status.c:1240
msgid "Not currently on any branch."
msgstr "Im Moment auf keinem Branch."
-#: wt-status.c:1209
+#: wt-status.c:1257
msgid "Initial commit"
msgstr "Initialer Commit"
-#: wt-status.c:1223
+#: wt-status.c:1271
msgid "Untracked files"
msgstr "Unbeobachtete Dateien"
-#: wt-status.c:1225
+#: wt-status.c:1273
msgid "Ignored files"
msgstr "Ignorierte Dateien"
-#: wt-status.c:1229
+#: wt-status.c:1277
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -1644,32 +1807,32 @@ msgstr ""
"'status -uno' könnte das beschleunigen, aber Sie müssen darauf achten,\n"
"neue Dateien selbstständig hinzuzufügen (siehe 'git help status')."
-#: wt-status.c:1235
+#: wt-status.c:1283
#, c-format
msgid "Untracked files not listed%s"
msgstr "Unbeobachtete Dateien nicht aufgelistet%s"
-#: wt-status.c:1237
+#: wt-status.c:1285
msgid " (use -u option to show untracked files)"
msgstr " (benutzen Sie die Option -u um unbeobachteten Dateien anzuzeigen)"
-#: wt-status.c:1243
+#: wt-status.c:1291
msgid "No changes"
msgstr "Keine Änderungen"
-#: wt-status.c:1248
+#: wt-status.c:1296
#, c-format
msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
msgstr ""
"keine Änderungen zum Commit vorgemerkt (benutzen Sie \"git add\" und/oder "
"\"git commit -a\")\n"
-#: wt-status.c:1251
+#: wt-status.c:1299
#, c-format
msgid "no changes added to commit\n"
msgstr "keine Änderungen zum Commit vorgemerkt\n"
-#: wt-status.c:1254
+#: wt-status.c:1302
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
@@ -1678,56 +1841,60 @@ msgstr ""
"nichts zum Commit vorgemerkt, aber es gibt unbeobachtete Dateien (benutzen "
"Sie \"git add\" zum Beobachten)\n"
-#: wt-status.c:1257
+#: wt-status.c:1305
#, c-format
msgid "nothing added to commit but untracked files present\n"
msgstr "nichts zum Commit vorgemerkt, aber es gibt unbeobachtete Dateien\n"
-#: wt-status.c:1260
+#: wt-status.c:1308
#, c-format
msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
msgstr ""
"nichts zu committen (Erstellen/Kopieren Sie Dateien und benutzen Sie \"git "
"add\" zum Beobachten)\n"
-#: wt-status.c:1263 wt-status.c:1268
+#: wt-status.c:1311 wt-status.c:1316
#, c-format
msgid "nothing to commit\n"
msgstr "nichts zu committen\n"
-#: wt-status.c:1266
+#: wt-status.c:1314
#, c-format
msgid "nothing to commit (use -u to show untracked files)\n"
msgstr ""
"nichts zu committen (benutzen Sie die Option -u, um unbeobachtete Dateien "
"anzuzeigen)\n"
-#: wt-status.c:1270
+#: wt-status.c:1318
#, c-format
msgid "nothing to commit, working directory clean\n"
msgstr "nichts zu committen, Arbeitsverzeichnis unverändert\n"
-#: wt-status.c:1378
+#: wt-status.c:1427
msgid "HEAD (no branch)"
msgstr "HEAD (kein Branch)"
-#: wt-status.c:1384
+#: wt-status.c:1433
msgid "Initial commit on "
msgstr "Initialer Commit auf "
-#: wt-status.c:1399
+#: wt-status.c:1463
+msgid "gone"
+msgstr "entfernt"
+
+#: wt-status.c:1465
msgid "behind "
msgstr "hinterher "
-#: wt-status.c:1402 wt-status.c:1405
+#: wt-status.c:1468 wt-status.c:1471
msgid "ahead "
msgstr "voraus "
-#: wt-status.c:1407
+#: wt-status.c:1473
msgid ", behind "
msgstr ", hinterher "
-#: compat/precompose_utf8.c:58 builtin/clone.c:351
+#: compat/precompose_utf8.c:55 builtin/clone.c:350
#, c-format
msgid "failed to unlink '%s'"
msgstr "Konnte '%s' nicht entfernen."
@@ -1813,7 +1980,7 @@ msgstr ""
msgid "unexpected diff status %c"
msgstr "unerwarteter Differenz-Status %c"
-#: builtin/add.c:149 builtin/commit.c:252
+#: builtin/add.c:149 builtin/commit.c:260
msgid "updating files failed"
msgstr "Aktualisierung der Dateien fehlgeschlagen"
@@ -1822,147 +1989,142 @@ msgstr "Aktualisierung der Dateien fehlgeschlagen"
msgid "remove '%s'\n"
msgstr "lösche '%s'\n"
-#: builtin/add.c:253
+#: builtin/add.c:237
msgid "Unstaged changes after refreshing the index:"
msgstr ""
"Nicht zum Commit vorgemerkte Änderungen nach Aktualisierung der Staging-Area:"
-#: builtin/add.c:256 builtin/add.c:573 builtin/rm.c:337
-#, c-format
-msgid "pathspec '%s' did not match any files"
-msgstr "Pfadspezifikation '%s' stimmt mit keinen Dateien überein"
-
-#: builtin/add.c:339
+#: builtin/add.c:299
msgid "Could not read the index"
msgstr "Konnte die Staging-Area nicht lesen"
-#: builtin/add.c:350
+#: builtin/add.c:310
#, c-format
msgid "Could not open '%s' for writing."
msgstr "Konnte '%s' nicht zum Schreiben öffnen."
-#: builtin/add.c:354
+#: builtin/add.c:314
msgid "Could not write patch"
msgstr "Konnte Patch nicht schreiben"
-#: builtin/add.c:359
+#: builtin/add.c:319
#, c-format
msgid "Could not stat '%s'"
msgstr "Konnte Verzeichnis '%s' nicht lesen"
-#: builtin/add.c:361
+#: builtin/add.c:321
msgid "Empty patch. Aborted."
msgstr "Leerer Patch. Abgebrochen."
-#: builtin/add.c:367
+#: builtin/add.c:327
#, c-format
msgid "Could not apply '%s'"
msgstr "Konnte '%s' nicht anwenden."
-#: builtin/add.c:377
+#: builtin/add.c:337
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:394 builtin/clean.c:875 builtin/fetch.c:78 builtin/mv.c:63
-#: builtin/prune-packed.c:73 builtin/push.c:451 builtin/remote.c:1253
-#: builtin/rm.c:268
+#: builtin/add.c:354 builtin/clean.c:875 builtin/fetch.c:92 builtin/mv.c:66
+#: builtin/prune-packed.c:73 builtin/push.c:459 builtin/remote.c:1253
+#: builtin/rm.c:269
msgid "dry run"
msgstr "Probelauf"
-#: builtin/add.c:395 builtin/apply.c:4410 builtin/check-ignore.c:19
-#: builtin/commit.c:1220 builtin/count-objects.c:95 builtin/fsck.c:613
-#: builtin/log.c:1573 builtin/mv.c:62 builtin/read-tree.c:113
+#: builtin/add.c:355 builtin/apply.c:4410 builtin/check-ignore.c:19
+#: builtin/commit.c:1249 builtin/count-objects.c:95 builtin/fsck.c:612
+#: builtin/log.c:1592 builtin/mv.c:65 builtin/read-tree.c:113
msgid "be verbose"
msgstr "erweiterte Ausgaben"
-#: builtin/add.c:397
+#: builtin/add.c:357
msgid "interactive picking"
msgstr "interaktives Auswählen"
-#: builtin/add.c:398 builtin/checkout.c:1073 builtin/reset.c:261
+#: builtin/add.c:358 builtin/checkout.c:1109 builtin/reset.c:272
msgid "select hunks interactively"
msgstr "Blöcke interaktiv auswählen"
-#: builtin/add.c:399
+#: builtin/add.c:359
msgid "edit current diff and apply"
msgstr "aktuelle Unterschiede editieren und anwenden"
-#: builtin/add.c:400
+#: builtin/add.c:360
msgid "allow adding otherwise ignored files"
msgstr "erlaubt das Hinzufügen andernfalls ignorierter Dateien"
-#: builtin/add.c:401
+#: builtin/add.c:361
msgid "update tracked files"
msgstr "aktualisiert beobachtete Dateien"
-#: builtin/add.c:402
+#: builtin/add.c:362
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:403
+#: builtin/add.c:363
msgid "add changes from all tracked and untracked files"
msgstr ""
"fügt Änderungen von allen beobachteten und unbeobachteten Dateien hinzu"
#. takes no arguments
-#: builtin/add.c:406
+#: builtin/add.c:366
msgid "ignore paths removed in the working tree (same as --no-all)"
msgstr "ignoriert gelöschte Pfade im Arbeitsverzeichnis (genau wie --no-all)"
-#: builtin/add.c:408
+#: builtin/add.c:368
msgid "don't add, only refresh the index"
msgstr "fügt nichts hinzu, aktualisiert nur die Staging-Area"
-#: builtin/add.c:409
+#: builtin/add.c:369
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:410
+#: builtin/add.c:370
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:432
+#: builtin/add.c:392
#, 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:433
+#: builtin/add.c:393
msgid "no files added"
msgstr "keine Dateien hinzugefügt"
-#: builtin/add.c:439
+#: builtin/add.c:399
msgid "adding files failed"
msgstr "Hinzufügen von Dateien fehlgeschlagen"
-#: builtin/add.c:478
+#: builtin/add.c:438
msgid "-A and -u are mutually incompatible"
msgstr "Die Optionen -A und -u sind zueinander inkompatibel."
-#: builtin/add.c:496
+#: builtin/add.c:456
msgid "Option --ignore-missing can only be used together with --dry-run"
msgstr ""
"Die Option --ignore-missing kann nur zusammen mit --dry-run verwendet werden."
-#: builtin/add.c:526
+#: builtin/add.c:486
#, c-format
msgid "Nothing specified, nothing added.\n"
msgstr "Nichts spezifiziert, nichts hinzugefügt.\n"
-#: builtin/add.c:527
+#: builtin/add.c:487
#, c-format
msgid "Maybe you wanted to say 'git add .'?\n"
msgstr "Wollten Sie vielleicht 'git add .' sagen?\n"
-#: builtin/add.c:533 builtin/check-ignore.c:161 builtin/clean.c:919
-#: builtin/commit.c:312 builtin/mv.c:82 builtin/rm.c:297
+#: builtin/add.c:492 builtin/check-ignore.c:172 builtin/clean.c:919
+#: builtin/commit.c:320 builtin/mv.c:86 builtin/reset.c:224 builtin/rm.c:299
msgid "index file corrupt"
msgstr "Staging-Area-Datei beschädigt"
-#: builtin/add.c:605 builtin/apply.c:4506 builtin/mv.c:229 builtin/rm.c:432
+#: builtin/add.c:589 builtin/apply.c:4506 builtin/mv.c:259 builtin/rm.c:432
msgid "Unable to write new index file"
msgstr "Konnte neue Staging-Area-Datei nicht schreiben."
@@ -2220,7 +2382,7 @@ msgstr "%s: Patch konnte nicht angewendet werden"
msgid "Checking patch %s..."
msgstr "Prüfe Patch %s..."
-#: builtin/apply.c:3680 builtin/checkout.c:216 builtin/reset.c:127
+#: builtin/apply.c:3680 builtin/checkout.c:213 builtin/reset.c:127
#, c-format
msgid "make_cache_entry failed for path '%s'"
msgstr "make_cache_entry für Pfad '%s' fehlgeschlagen"
@@ -2300,8 +2462,8 @@ msgstr "nicht erkannte Eingabe"
msgid "unable to read index file"
msgstr "Konnte Staging-Area-Datei nicht lesen"
-#: builtin/apply.c:4357 builtin/apply.c:4360 builtin/clone.c:91
-#: builtin/fetch.c:63
+#: builtin/apply.c:4357 builtin/apply.c:4360 builtin/clone.c:90
+#: builtin/fetch.c:77
msgid "path"
msgstr "Pfad"
@@ -2374,7 +2536,7 @@ msgstr ""
"erstellt eine temporäre Staging-Area basierend auf den integrierten Staging-"
"Area-Informationen"
-#: builtin/apply.c:4389 builtin/checkout-index.c:197 builtin/ls-files.c:462
+#: builtin/apply.c:4389 builtin/checkout-index.c:197 builtin/ls-files.c:452
msgid "paths are separated with NUL character"
msgstr "Pfade sind getrennt durch NUL Zeichen"
@@ -2508,104 +2670,104 @@ msgstr "führt 'git bisect next' aus"
msgid "update BISECT_HEAD instead of checking out the current commit"
msgstr "aktualisiert BISECT_HEAD, anstatt den aktuellen Commit auszuchecken"
-#: builtin/blame.c:26
+#: builtin/blame.c:27
msgid "git blame [options] [rev-opts] [rev] [--] file"
msgstr "git blame [Optionen] [rev-opts] [rev] [--] Datei"
-#: builtin/blame.c:31
+#: builtin/blame.c:32
msgid "[rev-opts] are documented in git-rev-list(1)"
msgstr "[rev-opts] sind dokumentiert in git-rev-list(1)"
-#: builtin/blame.c:2276
+#: builtin/blame.c:2248
msgid "Show blame entries as we find them, incrementally"
msgstr "Zeigt \"blame\"-Einträge schrittweise, während wir sie generieren"
-#: builtin/blame.c:2277
+#: builtin/blame.c:2249
msgid "Show blank SHA-1 for boundary commits (Default: off)"
msgstr "Zeigt leere SHA-1 für Grenz-Commits (Standard: aus)"
-#: builtin/blame.c:2278
+#: builtin/blame.c:2250
msgid "Do not treat root commits as boundaries (Default: off)"
msgstr "Behandelt Ursprungs-Commit nicht als Grenzen (Standard: aus)"
-#: builtin/blame.c:2279
+#: builtin/blame.c:2251
msgid "Show work cost statistics"
msgstr "Zeigt Statistiken zum Arbeitsaufwand"
-#: builtin/blame.c:2280
+#: builtin/blame.c:2252
msgid "Show output score for blame entries"
msgstr "Zeigt Ausgabebewertung für \"blame\"-Einträge"
-#: builtin/blame.c:2281
+#: builtin/blame.c:2253
msgid "Show original filename (Default: auto)"
msgstr "Zeigt ursprünglichen Dateinamen (Standard: auto)"
-#: builtin/blame.c:2282
+#: builtin/blame.c:2254
msgid "Show original linenumber (Default: off)"
msgstr "Zeigt ursprüngliche Zeilennummer (Standard: aus)"
-#: builtin/blame.c:2283
+#: builtin/blame.c:2255
msgid "Show in a format designed for machine consumption"
msgstr "Anzeige in einem Format für maschinelle Auswertung"
-#: builtin/blame.c:2284
+#: builtin/blame.c:2256
msgid "Show porcelain format with per-line commit information"
msgstr ""
"Anzeige in Format für Fremdprogramme mit Commit-Informationen pro Zeile"
-#: builtin/blame.c:2285
+#: builtin/blame.c:2257
msgid "Use the same output mode as git-annotate (Default: off)"
msgstr "Benutzt den gleichen Ausgabemodus wie \"git-annotate\" (Standard: aus)"
-#: builtin/blame.c:2286
+#: builtin/blame.c:2258
msgid "Show raw timestamp (Default: off)"
msgstr "Zeigt unbearbeiteten Zeitstempel (Standard: aus)"
-#: builtin/blame.c:2287
+#: builtin/blame.c:2259
msgid "Show long commit SHA1 (Default: off)"
msgstr "Zeigt langen Commit-SHA1 (Standard: aus)"
-#: builtin/blame.c:2288
+#: builtin/blame.c:2260
msgid "Suppress author name and timestamp (Default: off)"
msgstr "Unterdrückt den Namen des Autors und den Zeitstempel (Standard: aus)"
-#: builtin/blame.c:2289
+#: builtin/blame.c:2261
msgid "Show author email instead of name (Default: off)"
msgstr "Zeigt anstatt des Namens die Email-Adresse des Autors (Standard: aus)"
-#: builtin/blame.c:2290
+#: builtin/blame.c:2262
msgid "Ignore whitespace differences"
msgstr "Ignoriert Unterschiede im Whitespace"
-#: builtin/blame.c:2291
+#: builtin/blame.c:2263
msgid "Spend extra cycles to find better match"
msgstr "arbeite länger, um bessere Übereinstimmungen zu finden"
-#: builtin/blame.c:2292
+#: builtin/blame.c:2264
msgid "Use revisions from <file> instead of calling git-rev-list"
msgstr "Benutzt Commits von <Datei> anstatt \"git-rev-list\" aufzurufen"
-#: builtin/blame.c:2293
+#: builtin/blame.c:2265
msgid "Use <file>'s contents as the final image"
msgstr "Benutzt Inhalte der <Datei>en als entgültiges Abbild"
-#: builtin/blame.c:2294 builtin/blame.c:2295
+#: builtin/blame.c:2266 builtin/blame.c:2267
msgid "score"
msgstr "Bewertung"
-#: builtin/blame.c:2294
+#: builtin/blame.c:2266
msgid "Find line copies within and across files"
msgstr "Findet kopierte Zeilen innerhalb oder zwischen Dateien"
-#: builtin/blame.c:2295
+#: builtin/blame.c:2267
msgid "Find line movements within and across files"
msgstr "Findet verschobene Zeilen innerhalb oder zwischen Dateien"
-#: builtin/blame.c:2296
+#: builtin/blame.c:2268
msgid "n,m"
msgstr "n,m"
-#: builtin/blame.c:2296
+#: builtin/blame.c:2268
msgid "Process only line range n,m, counting from 1"
msgstr "Verarbeitet nur Zeilen im Bereich n,m, gezählt von 1"
@@ -2713,240 +2875,250 @@ msgstr "Branch '%s' zeigt auf keinen Commit"
#: builtin/branch.c:453
#, c-format
+msgid "[%s: gone]"
+msgstr "[%s: entfernt]"
+
+#: builtin/branch.c:456
+#, c-format
+msgid "[%s]"
+msgstr "[%s]"
+
+#: builtin/branch.c:459
+#, c-format
msgid "[%s: behind %d]"
msgstr "[%s: %d hinterher]"
-#: builtin/branch.c:455
+#: builtin/branch.c:461
#, c-format
msgid "[behind %d]"
msgstr "[%d hinterher]"
-#: builtin/branch.c:459
+#: builtin/branch.c:465
#, c-format
msgid "[%s: ahead %d]"
msgstr "[%s: %d voraus]"
-#: builtin/branch.c:461
+#: builtin/branch.c:467
#, c-format
msgid "[ahead %d]"
msgstr "[%d voraus]"
-#: builtin/branch.c:464
+#: builtin/branch.c:470
#, c-format
msgid "[%s: ahead %d, behind %d]"
msgstr "[%s: %d voraus, %d hinterher]"
-#: builtin/branch.c:467
+#: builtin/branch.c:473
#, c-format
msgid "[ahead %d, behind %d]"
msgstr "[%d voraus, %d hinterher]"
-#: builtin/branch.c:490
+#: builtin/branch.c:496
msgid " **** invalid ref ****"
msgstr " **** ungültige Referenz ****"
-#: builtin/branch.c:582
+#: builtin/branch.c:588
#, c-format
msgid "(no branch, rebasing %s)"
msgstr "(kein Branch, Rebase von Branch %s im Gange)"
-#: builtin/branch.c:585
+#: builtin/branch.c:591
#, c-format
msgid "(no branch, bisect started on %s)"
msgstr "(kein Branch, binäre Suche begonnen bei %s)"
-#: builtin/branch.c:588
+#: builtin/branch.c:594
#, c-format
msgid "(detached from %s)"
msgstr "(losgelöst von %s)"
-#: builtin/branch.c:591
+#: builtin/branch.c:597
msgid "(no branch)"
msgstr "(kein Branch)"
-#: builtin/branch.c:637
+#: builtin/branch.c:643
#, c-format
msgid "object '%s' does not point to a commit"
msgstr "Objekt '%s' zeigt auf keinen Commit"
-#: builtin/branch.c:669
+#: builtin/branch.c:675
msgid "some refs could not be read"
msgstr "Konnte einige Referenzen nicht lesen"
-#: builtin/branch.c:682
+#: builtin/branch.c:688
msgid "cannot rename the current branch while not on any."
msgstr ""
"Kann aktuellen Branch nicht umbenennen, solange Sie sich auf keinem befinden."
-#: builtin/branch.c:692
+#: builtin/branch.c:698
#, c-format
msgid "Invalid branch name: '%s'"
msgstr "Ungültiger Branchname: '%s'"
-#: builtin/branch.c:707
+#: builtin/branch.c:713
msgid "Branch rename failed"
msgstr "Umbenennung des Branches fehlgeschlagen"
-#: builtin/branch.c:711
+#: builtin/branch.c:717
#, c-format
msgid "Renamed a misnamed branch '%s' away"
msgstr "falsch benannten Branch '%s' umbenannt"
-#: builtin/branch.c:715
+#: builtin/branch.c:721
#, c-format
msgid "Branch renamed to %s, but HEAD is not updated!"
msgstr "Branch umbenannt zu %s, aber HEAD ist nicht aktualisiert!"
-#: builtin/branch.c:722
+#: builtin/branch.c:728
msgid "Branch is renamed, but update of config-file failed"
msgstr ""
"Branch ist umbenannt, aber die Aktualisierung der Konfigurationsdatei ist "
"fehlgeschlagen."
-#: builtin/branch.c:737
+#: builtin/branch.c:743
#, c-format
msgid "malformed object name %s"
msgstr "Missgebildeter Objektname %s"
-#: builtin/branch.c:761
+#: builtin/branch.c:767
#, c-format
msgid "could not write branch description template: %s"
msgstr "Konnte Beschreibungsvorlage für Branch nicht schreiben: %s"
-#: builtin/branch.c:791
+#: builtin/branch.c:797
msgid "Generic options"
msgstr "Allgemeine Optionen"
-#: builtin/branch.c:793
+#: builtin/branch.c:799
msgid "show hash and subject, give twice for upstream branch"
msgstr "Zeigt Hash und Betreff; -vv: zusätzlich Upstream-Branch"
-#: builtin/branch.c:794
+#: builtin/branch.c:800
msgid "suppress informational messages"
msgstr "unterdrückt Informationsmeldungen"
-#: builtin/branch.c:795
+#: builtin/branch.c:801
msgid "set up tracking mode (see git-pull(1))"
msgstr "stellt den Übernahmemodus ein (siehe git-pull(1))"
-#: builtin/branch.c:797
+#: builtin/branch.c:803
msgid "change upstream info"
msgstr "ändert Informationen zum Upstream-Branch"
-#: builtin/branch.c:801
+#: builtin/branch.c:807
msgid "use colored output"
msgstr "verwendet farbliche Ausgaben"
-#: builtin/branch.c:802
+#: builtin/branch.c:808
msgid "act on remote-tracking branches"
msgstr "wirkt auf Remote-Tracking-Branches"
-#: builtin/branch.c:805 builtin/branch.c:811 builtin/branch.c:832
-#: builtin/branch.c:838 builtin/commit.c:1433 builtin/commit.c:1434
-#: builtin/commit.c:1435 builtin/commit.c:1436 builtin/tag.c:468
+#: builtin/branch.c:811 builtin/branch.c:817 builtin/branch.c:838
+#: builtin/branch.c:844 builtin/commit.c:1460 builtin/commit.c:1461
+#: builtin/commit.c:1462 builtin/commit.c:1463 builtin/tag.c:468
msgid "commit"
msgstr "Commit"
-#: builtin/branch.c:806 builtin/branch.c:812
+#: builtin/branch.c:812 builtin/branch.c:818
msgid "print only branches that contain the commit"
msgstr "gibt nur Branches aus, welche diesen Commit beinhalten"
-#: builtin/branch.c:818
+#: builtin/branch.c:824
msgid "Specific git-branch actions:"
msgstr "spezifische Aktionen für \"git-branch\":"
-#: builtin/branch.c:819
+#: builtin/branch.c:825
msgid "list both remote-tracking and local branches"
msgstr "listet Remote-Tracking und lokale Branches auf"
-#: builtin/branch.c:821
+#: builtin/branch.c:827
msgid "delete fully merged branch"
msgstr "entfernt vollständig zusammengeführten Branch"
-#: builtin/branch.c:822
+#: builtin/branch.c:828
msgid "delete branch (even if not merged)"
msgstr "löscht Branch (auch wenn nicht zusammengeführt)"
-#: builtin/branch.c:823
+#: builtin/branch.c:829
msgid "move/rename a branch and its reflog"
msgstr "verschiebt/benennt einen Branch und dessen Reflog um"
-#: builtin/branch.c:824
+#: builtin/branch.c:830
msgid "move/rename a branch, even if target exists"
msgstr ""
"verschiebt/benennt einen Branch um, auch wenn das Ziel bereits existiert"
-#: builtin/branch.c:825
+#: builtin/branch.c:831
msgid "list branch names"
msgstr "listet Branchnamen auf"
-#: builtin/branch.c:826
+#: builtin/branch.c:832
msgid "create the branch's reflog"
msgstr "erzeugt das Reflog des Branches"
-#: builtin/branch.c:828
+#: builtin/branch.c:834
msgid "edit the description for the branch"
msgstr "bearbeitet die Beschreibung für den Branch"
-#: builtin/branch.c:829
+#: builtin/branch.c:835
msgid "force creation (when already exists)"
msgstr "erzeuge auch, wenn der Branch bereits existiert"
-#: builtin/branch.c:832
+#: builtin/branch.c:838
msgid "print only not merged branches"
msgstr "gibt nur Branches aus, die nicht zusammengeführt sind"
-#: builtin/branch.c:838
+#: builtin/branch.c:844
msgid "print only merged branches"
msgstr "gibt nur Branches aus, die zusammengeführt sind"
-#: builtin/branch.c:842
+#: builtin/branch.c:848
msgid "list branches in columns"
msgstr "listet Branches in Spalten auf"
-#: builtin/branch.c:855
+#: builtin/branch.c:861
msgid "Failed to resolve HEAD as a valid ref."
msgstr "Konnte HEAD nicht als gültige Referenz auflösen."
-#: builtin/branch.c:860 builtin/clone.c:630
+#: builtin/branch.c:866 builtin/clone.c:629
msgid "HEAD not found below refs/heads!"
msgstr "HEAD wurde nicht unter \"refs/heads\" gefunden!"
-#: builtin/branch.c:883
+#: builtin/branch.c:890
msgid "--column and --verbose are incompatible"
msgstr "Die Optionen --column und --verbose sind inkompatibel."
-#: builtin/branch.c:889 builtin/branch.c:928
+#: builtin/branch.c:896 builtin/branch.c:935
msgid "branch name required"
msgstr "Branchname erforderlich"
-#: builtin/branch.c:904
+#: builtin/branch.c:911
msgid "Cannot give description to detached HEAD"
msgstr "zu losgelöstem HEAD kann keine Beschreibung hinterlegt werden"
-#: builtin/branch.c:909
+#: builtin/branch.c:916
msgid "cannot edit description of more than one branch"
msgstr "Beschreibung von mehr als einem Branch kann nicht bearbeitet werden"
-#: builtin/branch.c:916
+#: builtin/branch.c:923
#, c-format
msgid "No commit on branch '%s' yet."
msgstr "Noch kein Commit in Branch '%s'."
-#: builtin/branch.c:919
+#: builtin/branch.c:926
#, c-format
msgid "No branch named '%s'."
msgstr "Branch '%s' nicht vorhanden."
-#: builtin/branch.c:934
+#: builtin/branch.c:941
msgid "too many branches for a rename operation"
msgstr "zu viele Branches für eine Umbenennen-Operation angegeben"
-#: builtin/branch.c:939
+#: builtin/branch.c:946
msgid "too many branches to set new upstream"
msgstr "zu viele Branches angegeben um Upstream-Branch zu setzen"
-#: builtin/branch.c:943
+#: builtin/branch.c:950
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
@@ -2954,43 +3126,43 @@ msgstr ""
"Konnte keinen neuen Upstream-Branch von HEAD zu %s setzen, da dieser auf\n"
"keinen Branch zeigt."
-#: builtin/branch.c:946 builtin/branch.c:968 builtin/branch.c:990
+#: builtin/branch.c:953 builtin/branch.c:975 builtin/branch.c:997
#, c-format
msgid "no such branch '%s'"
msgstr "Kein solcher Branch '%s'"
-#: builtin/branch.c:950
+#: builtin/branch.c:957
#, c-format
msgid "branch '%s' does not exist"
msgstr "Branch '%s' existiert nicht"
-#: builtin/branch.c:962
+#: builtin/branch.c:969
msgid "too many branches to unset upstream"
msgstr ""
"zu viele Branches angegeben um Konfiguration zu Upstream-Branch zu entfernen"
-#: builtin/branch.c:966
+#: builtin/branch.c:973
msgid "could not unset upstream of HEAD when it does not point to any branch."
msgstr ""
"Konnte Konfiguration zu Upstream-Branch von HEAD nicht entfernen, da dieser\n"
"auf keinen Branch zeigt."
-#: builtin/branch.c:972
+#: builtin/branch.c:979
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr "Branch '%s' hat keinen Upstream-Branch gesetzt"
-#: builtin/branch.c:987
+#: builtin/branch.c:994
msgid "it does not make sense to create 'HEAD' manually"
msgstr "'HEAD' darf nicht manuell erstellt werden"
-#: builtin/branch.c:993
+#: builtin/branch.c:1000
msgid "-a and -r options to 'git branch' do not make sense with a branch name"
msgstr ""
"Die Optionen -a und -r bei 'git branch' können nicht gemeimsam mit einem "
"Branchnamen verwendet werden."
-#: builtin/branch.c:996
+#: builtin/branch.c:1003
#, c-format
msgid ""
"The --set-upstream flag is deprecated and will be removed. Consider using --"
@@ -2999,7 +3171,7 @@ msgstr ""
"Die --set-upstream Option ist veraltet und wird entfernt. Benutzen Sie --"
"track oder --set-upstream-to\n"
-#: builtin/branch.c:1013
+#: builtin/branch.c:1020
#, c-format
msgid ""
"\n"
@@ -3010,12 +3182,12 @@ msgstr ""
"Wenn Sie wollten, dass '%s' den Branch '%s' als Upstream-Branch hat, führen "
"Sie aus:\n"
-#: builtin/branch.c:1014
+#: builtin/branch.c:1021
#, c-format
msgid " git branch -d %s\n"
msgstr " git branch -d %s\n"
-#: builtin/branch.c:1015
+#: builtin/branch.c:1022
#, c-format
msgid " git branch --set-upstream-to %s\n"
msgstr " git branch --set-upstream-to %s\n"
@@ -3033,45 +3205,45 @@ msgstr "Um ein Paket zu erstellen wird ein Repository benötigt."
msgid "Need a repository to unbundle."
msgstr "Zum Entpacken wird ein Repository benötigt."
-#: builtin/cat-file.c:285
+#: builtin/cat-file.c:312
msgid "git cat-file (-t|-s|-e|-p|<type>|--textconv) <object>"
msgstr "git cat-file (-t|-s|-e|-p|<Art>|--textconv) <Objekt>"
-#: builtin/cat-file.c:286
+#: builtin/cat-file.c:313
msgid "git cat-file (--batch|--batch-check) < <list_of_objects>"
msgstr "git cat-file (--batch|--batch-check) < <Liste_von_Objekten>"
-#: builtin/cat-file.c:323
+#: builtin/cat-file.c:350
msgid "<type> can be one of: blob, tree, commit, tag"
msgstr "<Art> kann sein: blob, tree, commit, tag"
-#: builtin/cat-file.c:324
+#: builtin/cat-file.c:351
msgid "show object type"
msgstr "zeigt Objektart"
-#: builtin/cat-file.c:325
+#: builtin/cat-file.c:352
msgid "show object size"
msgstr "zeigt Objektgröße"
-#: builtin/cat-file.c:327
+#: builtin/cat-file.c:354
msgid "exit with zero when there's no error"
msgstr "beendet mit Rückgabewert 0, wenn kein Fehler aufgetreten ist"
-#: builtin/cat-file.c:328
+#: builtin/cat-file.c:355
msgid "pretty-print object's content"
msgstr "ansprechende Anzeige des Objektinhaltes"
-#: builtin/cat-file.c:330
+#: builtin/cat-file.c:357
msgid "for blob objects, run textconv on object's content"
msgstr "führt eine Textkonvertierung auf den Inhalt von Blob-Objekten aus"
-#: builtin/cat-file.c:332
+#: builtin/cat-file.c:359
msgid "show info and content of objects fed from the standard input"
msgstr ""
"Anzeige von Informationen und Inhalt von Objekten, gelesen von der Standard-"
"Eingabe"
-#: builtin/cat-file.c:335
+#: builtin/cat-file.c:362
msgid "show info about objects fed from the standard input"
msgstr ""
"Anzeige von Informationen über Objekte, gelesen von der Standard-Eingabe"
@@ -3098,10 +3270,10 @@ msgid "read file names from stdin"
msgstr "liest Dateinamen von der Standard-Eingabe"
#: 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"
+msgid "terminate input and output records by a NUL character"
+msgstr "schließt Einträge von Ein- und Ausgabe mit NUL-Zeichen ab"
-#: builtin/check-ignore.c:18 builtin/checkout.c:1054 builtin/gc.c:177
+#: builtin/check-ignore.c:18 builtin/checkout.c:1090 builtin/gc.c:259
msgid "suppress progress reporting"
msgstr "unterdrückt Fortschrittsanzeige"
@@ -3109,28 +3281,32 @@ msgstr "unterdrückt Fortschrittsanzeige"
msgid "show non-matching input paths"
msgstr "zeigt Eingabe-Pfade ohne Übereinstimmungen"
-#: builtin/check-ignore.c:143
+#: builtin/check-ignore.c:28
+msgid "ignore index when checking"
+msgstr "ignoriert Staging-Area bei der Prüfung"
+
+#: builtin/check-ignore.c:154
msgid "cannot specify pathnames with --stdin"
msgstr "Angabe von Pfadnamen kann nicht gemeinsam mit --stdin verwendet werden"
-#: builtin/check-ignore.c:146
+#: builtin/check-ignore.c:157
msgid "-z only makes sense with --stdin"
msgstr "Die Option -z kann nur mit --stdin verwendet werden."
-#: builtin/check-ignore.c:148
+#: builtin/check-ignore.c:159
msgid "no path specified"
msgstr "kein Pfad angegeben"
-#: builtin/check-ignore.c:152
+#: builtin/check-ignore.c:163
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:154
+#: builtin/check-ignore.c:165
msgid "cannot have both --quiet and --verbose"
msgstr ""
"Die Optionen --quiet und --verbose können nicht gemeinsam verwendet werden."
-#: builtin/check-ignore.c:157
+#: builtin/check-ignore.c:168
msgid "--non-matching is only valid with --verbose"
msgstr "--non-matching ist nur mit --verbose zulässig"
@@ -3206,107 +3382,107 @@ msgstr "git checkout [Optionen] <Branch>"
msgid "git checkout [options] [<branch>] -- <file>..."
msgstr "git checkout [Optionen] [<Branch>] -- <Datei>..."
-#: builtin/checkout.c:117 builtin/checkout.c:150
+#: builtin/checkout.c:114 builtin/checkout.c:147
#, c-format
msgid "path '%s' does not have our version"
msgstr "Pfad '%s' hat nicht unsere Version."
-#: builtin/checkout.c:119 builtin/checkout.c:152
+#: builtin/checkout.c:116 builtin/checkout.c:149
#, c-format
msgid "path '%s' does not have their version"
msgstr "Pfad '%s' hat nicht deren Version."
-#: builtin/checkout.c:135
+#: builtin/checkout.c:132
#, c-format
msgid "path '%s' does not have all necessary versions"
msgstr "Pfad '%s' hat nicht alle notwendigen Versionen."
-#: builtin/checkout.c:179
+#: builtin/checkout.c:176
#, c-format
msgid "path '%s' does not have necessary versions"
msgstr "Pfad '%s' hat nicht die notwendigen Versionen."
-#: builtin/checkout.c:196
+#: builtin/checkout.c:193
#, c-format
msgid "path '%s': cannot merge"
msgstr "Pfad '%s': kann nicht zusammenführen"
-#: builtin/checkout.c:213
+#: builtin/checkout.c:210
#, c-format
msgid "Unable to add merge result for '%s'"
msgstr "Konnte Merge-Ergebnis von '%s' nicht hinzufügen."
-#: builtin/checkout.c:237 builtin/checkout.c:240 builtin/checkout.c:243
-#: builtin/checkout.c:246
+#: builtin/checkout.c:232 builtin/checkout.c:235 builtin/checkout.c:238
+#: builtin/checkout.c:241
#, c-format
msgid "'%s' cannot be used with updating paths"
msgstr "'%s' kann nicht mit Pfaden verwendet werden"
-#: builtin/checkout.c:249 builtin/checkout.c:252
+#: builtin/checkout.c:244 builtin/checkout.c:247
#, c-format
msgid "'%s' cannot be used with %s"
msgstr "'%s' kann nicht mit '%s' verwendet werden"
-#: builtin/checkout.c:255
+#: builtin/checkout.c:250
#, c-format
msgid "Cannot update paths and switch to branch '%s' at the same time."
msgstr ""
"Kann nicht gleichzeitig Pfade aktualisieren und zu Branch '%s' wechseln"
-#: builtin/checkout.c:266 builtin/checkout.c:458
+#: builtin/checkout.c:261 builtin/checkout.c:451
msgid "corrupt index file"
msgstr "beschädigte Staging-Area-Datei"
-#: builtin/checkout.c:329 builtin/checkout.c:336
+#: builtin/checkout.c:322 builtin/checkout.c:329
#, c-format
msgid "path '%s' is unmerged"
msgstr "Pfad '%s' ist nicht zusammengeführt."
-#: builtin/checkout.c:480
+#: builtin/checkout.c:473
msgid "you need to resolve your current index first"
msgstr "Sie müssen zuerst Ihre aktuelle Staging-Area auflösen."
-#: builtin/checkout.c:601
+#: builtin/checkout.c:594
#, c-format
msgid "Can not do reflog for '%s'\n"
msgstr "Konnte \"reflog\" für '%s' nicht durchführen\n"
-#: builtin/checkout.c:639
+#: builtin/checkout.c:632
msgid "HEAD is now at"
msgstr "HEAD ist jetzt bei"
-#: builtin/checkout.c:646
+#: builtin/checkout.c:639
#, c-format
msgid "Reset branch '%s'\n"
msgstr "Setze Branch '%s' neu\n"
-#: builtin/checkout.c:649
+#: builtin/checkout.c:642
#, c-format
msgid "Already on '%s'\n"
msgstr "Bereits auf '%s'\n"
-#: builtin/checkout.c:653
+#: builtin/checkout.c:646
#, c-format
msgid "Switched to and reset branch '%s'\n"
msgstr "Gewechselt zu umgesetzten Branch '%s'\n"
-#: builtin/checkout.c:655 builtin/checkout.c:997
+#: builtin/checkout.c:648 builtin/checkout.c:1033
#, c-format
msgid "Switched to a new branch '%s'\n"
msgstr "Gewechselt zu einem neuem Branch '%s'\n"
-#: builtin/checkout.c:657
+#: builtin/checkout.c:650
#, c-format
msgid "Switched to branch '%s'\n"
msgstr "Gewechselt zu Branch '%s'\n"
-#: builtin/checkout.c:713
+#: builtin/checkout.c:706
#, c-format
msgid " ... and %d more.\n"
msgstr " ... und %d weitere.\n"
#. The singular version
-#: builtin/checkout.c:719
+#: builtin/checkout.c:712
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -3329,7 +3505,7 @@ msgstr[1] ""
"\n"
"%s\n"
-#: builtin/checkout.c:737
+#: builtin/checkout.c:730
#, c-format
msgid ""
"If you want to keep them by creating a new branch, this may be a good time\n"
@@ -3344,136 +3520,140 @@ msgstr ""
" git branch neuer_branch_name %s\n"
"\n"
-#: builtin/checkout.c:767
+#: builtin/checkout.c:760
msgid "internal error in revision walk"
msgstr "interner Fehler im Revisionsgang"
-#: builtin/checkout.c:771
+#: builtin/checkout.c:764
msgid "Previous HEAD position was"
msgstr "Vorherige Position von HEAD war"
-#: builtin/checkout.c:798 builtin/checkout.c:992
+#: builtin/checkout.c:791 builtin/checkout.c:1028
msgid "You are on a branch yet to be born"
msgstr "Sie sind auf einem Branch, der noch geboren wird"
-#. case (1)
-#: builtin/checkout.c:928
+#: builtin/checkout.c:935
+#, c-format
+msgid "only one reference expected, %d given."
+msgstr "nur eine Referenz erwartet, %d gegeben."
+
+#: builtin/checkout.c:974
#, c-format
msgid "invalid reference: %s"
msgstr "Ungültige Referenz: %s"
#. case (1): want a tree
-#: builtin/checkout.c:967
+#: builtin/checkout.c:1003
#, c-format
msgid "reference is not a tree: %s"
msgstr "Referenz ist kein \"Tree\"-Objekt: %s"
-#: builtin/checkout.c:1006
+#: builtin/checkout.c:1042
msgid "paths cannot be used with switching branches"
msgstr "Pfade können nicht beim Wechseln von Branches verwendet werden"
-#: builtin/checkout.c:1009 builtin/checkout.c:1013
+#: builtin/checkout.c:1045 builtin/checkout.c:1049
#, c-format
msgid "'%s' cannot be used with switching branches"
msgstr "'%s' kann nicht beim Wechseln von Branches verwendet werden"
-#: builtin/checkout.c:1017 builtin/checkout.c:1020 builtin/checkout.c:1025
-#: builtin/checkout.c:1028
+#: builtin/checkout.c:1053 builtin/checkout.c:1056 builtin/checkout.c:1061
+#: builtin/checkout.c:1064
#, c-format
msgid "'%s' cannot be used with '%s'"
msgstr "'%s' kann nicht mit '%s' verwendet werden"
-#: builtin/checkout.c:1033
+#: builtin/checkout.c:1069
#, c-format
msgid "Cannot switch branch to a non-commit '%s'"
msgstr "Kann Branch nicht zu Nicht-Commit '%s' wechseln"
-#: builtin/checkout.c:1055 builtin/checkout.c:1057 builtin/clone.c:89
+#: builtin/checkout.c:1091 builtin/checkout.c:1093 builtin/clone.c:88
#: builtin/remote.c:169 builtin/remote.c:171
msgid "branch"
msgstr "Branch"
-#: builtin/checkout.c:1056
+#: builtin/checkout.c:1092
msgid "create and checkout a new branch"
msgstr "erzeugt und checkt einen neuen Branch aus"
-#: builtin/checkout.c:1058
+#: builtin/checkout.c:1094
msgid "create/reset and checkout a branch"
msgstr "erzeugt/setzt um und checkt einen Branch aus"
-#: builtin/checkout.c:1059
+#: builtin/checkout.c:1095
msgid "create reflog for new branch"
msgstr "erzeugt das Reflog für den neuen Branch"
-#: builtin/checkout.c:1060
+#: builtin/checkout.c:1096
msgid "detach the HEAD at named commit"
msgstr "setzt HEAD zu benanntem Commit"
-#: builtin/checkout.c:1061
+#: builtin/checkout.c:1097
msgid "set upstream info for new branch"
msgstr "setzt Informationen zum Upstream-Branch für den neuen Branch"
-#: builtin/checkout.c:1063
+#: builtin/checkout.c:1099
msgid "new branch"
msgstr "neuer Branch"
-#: builtin/checkout.c:1063
+#: builtin/checkout.c:1099
msgid "new unparented branch"
msgstr "neuer Branch ohne Eltern-Commit"
-#: builtin/checkout.c:1064
+#: builtin/checkout.c:1100
msgid "checkout our version for unmerged files"
msgstr "checkt unsere Variante für nicht zusammengeführte Dateien aus"
-#: builtin/checkout.c:1066
+#: builtin/checkout.c:1102
msgid "checkout their version for unmerged files"
msgstr "checkt ihre Variante für nicht zusammengeführte Dateien aus"
-#: builtin/checkout.c:1068
+#: builtin/checkout.c:1104
msgid "force checkout (throw away local modifications)"
msgstr "erzwingt Auschecken (verwirft lokale Änderungen)"
-#: builtin/checkout.c:1069
+#: builtin/checkout.c:1105
msgid "perform a 3-way merge with the new branch"
msgstr "führt einen 3-Wege-Merge mit dem neuen Branch aus"
-#: builtin/checkout.c:1070 builtin/merge.c:232
+#: builtin/checkout.c:1106 builtin/merge.c:232
msgid "update ignored files (default)"
msgstr "aktualisiert ignorierte Dateien (Standard)"
-#: builtin/checkout.c:1071 builtin/log.c:1208 parse-options.h:249
+#: builtin/checkout.c:1107 builtin/log.c:1228 parse-options.h:251
msgid "style"
msgstr "Stil"
-#: builtin/checkout.c:1072
+#: builtin/checkout.c:1108
msgid "conflict style (merge or diff3)"
msgstr "Konfliktstil (merge oder diff3)"
-#: builtin/checkout.c:1075
+#: builtin/checkout.c:1111
msgid "do not limit pathspecs to sparse entries only"
msgstr "Pfadspezifikationen ignorieren Einstellungen zum partiellen Auschecken"
-#: builtin/checkout.c:1077
+#: builtin/checkout.c:1113
msgid "second guess 'git checkout no-such-branch'"
msgstr "second guess 'git checkout no-such-branch'"
-#: builtin/checkout.c:1101
+#: builtin/checkout.c:1136
msgid "-b, -B and --orphan are mutually exclusive"
msgstr "Die Optionen -b, -B und --orphan schließen sich gegenseitig aus."
-#: builtin/checkout.c:1118
+#: builtin/checkout.c:1153
msgid "--track needs a branch name"
msgstr "Bei der Option --track muss ein Branchname angegeben werden."
-#: builtin/checkout.c:1125
+#: builtin/checkout.c:1160
msgid "Missing branch name; try -b"
msgstr "Vermisse Branchnamen; versuchen Sie -b"
-#: builtin/checkout.c:1160
+#: builtin/checkout.c:1197
msgid "invalid path specification"
msgstr "ungültige Pfadspezifikation"
-#: builtin/checkout.c:1167
+#: builtin/checkout.c:1204
#, c-format
msgid ""
"Cannot update paths and switch to branch '%s' at the same time.\n"
@@ -3483,12 +3663,12 @@ msgstr ""
"Haben Sie beabsichtigt '%s' auszuchecken, welcher nicht als Commit aufgelöst "
"werden kann?"
-#: builtin/checkout.c:1172
+#: builtin/checkout.c:1209
#, c-format
msgid "git checkout: --detach does not take a path argument '%s'"
msgstr "git checkout: --detach nimmt kein Pfad-Argument '%s'"
-#: builtin/checkout.c:1176
+#: builtin/checkout.c:1213
msgid ""
"git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
"checking out of the index."
@@ -3496,38 +3676,38 @@ msgstr ""
"git checkout: --ours/--theirs, --force und --merge sind inkompatibel wenn\n"
"Sie aus der Staging-Area auschecken."
-#: builtin/clean.c:25
+#: builtin/clean.c:26
msgid ""
"git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <paths>..."
msgstr ""
"git clean [-d] [-f] [-i] [-n] [-q] [-e <Muster>] [-x | -X] [--] <Pfade>..."
-#: builtin/clean.c:29
+#: builtin/clean.c:30
#, c-format
msgid "Removing %s\n"
msgstr "Lösche %s\n"
-#: builtin/clean.c:30
+#: builtin/clean.c:31
#, c-format
msgid "Would remove %s\n"
msgstr "Würde %s löschen\n"
-#: builtin/clean.c:31
+#: builtin/clean.c:32
#, c-format
msgid "Skipping repository %s\n"
msgstr "Überspringe Repository %s\n"
-#: builtin/clean.c:32
+#: builtin/clean.c:33
#, c-format
msgid "Would skip repository %s\n"
msgstr "Würde Repository %s überspringen\n"
-#: builtin/clean.c:33
+#: builtin/clean.c:34
#, c-format
msgid "failed to remove %s"
msgstr "Fehler beim Löschen von %s"
-#: builtin/clean.c:293
+#: builtin/clean.c:294
msgid ""
"Prompt help:\n"
"1 - select a numbered item\n"
@@ -3539,7 +3719,7 @@ msgstr ""
"foo - Element anhand eines eindeutigen Prefix auswählen\n"
" - (leer) nichts auswählen"
-#: builtin/clean.c:297
+#: builtin/clean.c:298
msgid ""
"Prompt help:\n"
"1 - select a single item\n"
@@ -3559,35 +3739,35 @@ msgstr ""
"* - alle Elemente auswählen\n"
" - (leer) Auswahl beenden"
-#: builtin/clean.c:515
+#: builtin/clean.c:516
#, c-format
msgid "Huh (%s)?"
msgstr "Wie bitte (%s)?"
-#: builtin/clean.c:658
+#: builtin/clean.c:659
#, c-format
msgid "Input ignore patterns>> "
msgstr "Ignorier-Muster eingeben>> "
-#: builtin/clean.c:695
+#: builtin/clean.c:696
#, c-format
msgid "WARNING: Cannot find items matched by: %s"
msgstr "WARNUNG: Kann keine Einträge finden die Muster entsprechen: %s"
-#: builtin/clean.c:716
+#: builtin/clean.c:717
msgid "Select items to delete"
msgstr "Wählen Sie Einträge zum Löschen"
-#: builtin/clean.c:756
+#: builtin/clean.c:757
#, c-format
msgid "remove %s? "
msgstr "'%s' löschen? "
-#: builtin/clean.c:781
+#: builtin/clean.c:782
msgid "Bye."
msgstr "Tschüss."
-#: builtin/clean.c:789
+#: builtin/clean.c:790
msgid ""
"clean - start cleaning\n"
"filter by pattern - exclude items from deletion\n"
@@ -3605,21 +3785,21 @@ msgstr ""
"help - diese Meldung anzeigen\n"
"? - Hilfe zur Auswahl mittels Eingabe anzeigen"
-#: builtin/clean.c:816
+#: builtin/clean.c:817
msgid "*** Commands ***"
msgstr "*** Kommandos ***"
-#: builtin/clean.c:817
+#: builtin/clean.c:818
msgid "What now"
msgstr "Was nun"
-#: builtin/clean.c:825
+#: builtin/clean.c:826
msgid "Would remove the following item:"
msgid_plural "Would remove the following items:"
msgstr[0] "Würde das folgende Element entfernen:"
msgstr[1] "Würde die folgenden Elemente entfernen:"
-#: builtin/clean.c:842
+#: builtin/clean.c:843
msgid "No more files to clean, exiting."
msgstr "Keine Dateien mehr zum Löschen, beende."
@@ -3639,8 +3819,8 @@ msgstr "interaktives Clean"
msgid "remove whole directories"
msgstr "löscht ganze Verzeichnisse"
-#: builtin/clean.c:880 builtin/describe.c:420 builtin/grep.c:716
-#: builtin/ls-files.c:493 builtin/name-rev.c:315 builtin/show-ref.c:186
+#: builtin/clean.c:880 builtin/describe.c:420 builtin/grep.c:718
+#: builtin/ls-files.c:483 builtin/name-rev.c:315 builtin/show-ref.c:185
msgid "pattern"
msgstr "Muster"
@@ -3680,8 +3860,8 @@ msgstr ""
msgid "git clone [options] [--] <repo> [<dir>]"
msgstr "git clone [Optionen] [--] <Repository> [<Verzeichnis>]"
-#: builtin/clone.c:64 builtin/fetch.c:82 builtin/merge.c:229
-#: builtin/push.c:462
+#: builtin/clone.c:64 builtin/fetch.c:96 builtin/merge.c:229
+#: builtin/push.c:474
msgid "force progress reporting"
msgstr "erzwingt Fortschrittsanzeige"
@@ -3693,123 +3873,123 @@ msgstr "kein Auschecken"
msgid "create a bare repository"
msgstr "erstellt ein Bare-Repository"
-#: builtin/clone.c:72
+#: builtin/clone.c:71
msgid "create a mirror repository (implies bare)"
msgstr "erstellt ein Spiegelarchiv (impliziert --bare)"
-#: builtin/clone.c:74
+#: builtin/clone.c:73
msgid "to clone from a local repository"
msgstr "um von einem lokalen Repository zu klonen"
-#: builtin/clone.c:76
+#: builtin/clone.c:75
msgid "don't use local hardlinks, always copy"
msgstr "verwendet lokal keine harten Verweise, immer Kopien"
-#: builtin/clone.c:78
+#: builtin/clone.c:77
msgid "setup as shared repository"
msgstr "Einrichtung als verteiltes Repository"
-#: builtin/clone.c:80 builtin/clone.c:82
+#: builtin/clone.c:79 builtin/clone.c:81
msgid "initialize submodules in the clone"
msgstr "initialisiert Submodule im Klon"
-#: builtin/clone.c:83 builtin/init-db.c:485
+#: builtin/clone.c:82 builtin/init-db.c:485
msgid "template-directory"
msgstr "Vorlagenverzeichnis"
-#: builtin/clone.c:84 builtin/init-db.c:486
+#: builtin/clone.c:83 builtin/init-db.c:486
msgid "directory from which templates will be used"
msgstr "Verzeichnis, von welchem die Vorlagen verwendet werden"
-#: builtin/clone.c:86
+#: builtin/clone.c:85
msgid "reference repository"
msgstr "referenziert Repository"
-#: builtin/clone.c:87 builtin/column.c:26 builtin/merge-file.c:44
+#: builtin/clone.c:86 builtin/column.c:26 builtin/merge-file.c:44
msgid "name"
msgstr "Name"
-#: builtin/clone.c:88
+#: builtin/clone.c:87
msgid "use <name> instead of 'origin' to track upstream"
msgstr "verwendet <Name> statt 'origin' für Upstream-Repository"
-#: builtin/clone.c:90
+#: builtin/clone.c:89
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "checkt <Branch> aus, anstatt HEAD des Remote-Repositories"
-#: builtin/clone.c:92
+#: builtin/clone.c:91
msgid "path to git-upload-pack on the remote"
msgstr "Pfad zu \"git-upload-pack\" auf der Gegenseite"
-#: builtin/clone.c:93 builtin/fetch.c:83 builtin/grep.c:661
+#: builtin/clone.c:92 builtin/fetch.c:97 builtin/grep.c:663
msgid "depth"
msgstr "Tiefe"
-#: builtin/clone.c:94
+#: builtin/clone.c:93
msgid "create a shallow clone of that depth"
msgstr "erstellt einen flachen Klon mit dieser Tiefe"
-#: builtin/clone.c:96
+#: builtin/clone.c:95
msgid "clone only one branch, HEAD or --branch"
msgstr "klont nur einen Branch, HEAD oder --branch"
-#: builtin/clone.c:97 builtin/init-db.c:494
+#: builtin/clone.c:96 builtin/init-db.c:494
msgid "gitdir"
msgstr ".git-Verzeichnis"
-#: builtin/clone.c:98 builtin/init-db.c:495
+#: builtin/clone.c:97 builtin/init-db.c:495
msgid "separate git dir from working tree"
msgstr "separiert Git-Verzeichnis vom Arbeitsverzeichnis"
-#: builtin/clone.c:99
+#: builtin/clone.c:98
msgid "key=value"
msgstr "Schlüssel=Wert"
-#: builtin/clone.c:100
+#: builtin/clone.c:99
msgid "set config inside the new repository"
msgstr "setzt Konfiguration innerhalb des neuen Repositories"
-#: builtin/clone.c:253
+#: builtin/clone.c:252
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "Referenziertes Repository '%s' ist kein lokales Repository."
-#: builtin/clone.c:316
+#: builtin/clone.c:315
#, c-format
msgid "failed to create directory '%s'"
msgstr "Fehler beim Erstellen von Verzeichnis '%s'"
-#: builtin/clone.c:318 builtin/diff.c:77
+#: builtin/clone.c:317 builtin/diff.c:77
#, c-format
msgid "failed to stat '%s'"
msgstr "Konnte '%s' nicht lesen"
-#: builtin/clone.c:320
+#: builtin/clone.c:319
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s existiert und ist kein Verzeichnis"
-#: builtin/clone.c:334
+#: builtin/clone.c:333
#, c-format
msgid "failed to stat %s\n"
msgstr "Konnte %s nicht lesen\n"
-#: builtin/clone.c:356
+#: builtin/clone.c:355
#, c-format
msgid "failed to create link '%s'"
msgstr "Konnte Verweis '%s' nicht erstellen"
-#: builtin/clone.c:360
+#: builtin/clone.c:359
#, c-format
msgid "failed to copy file to '%s'"
msgstr "Konnte Datei nicht nach '%s' kopieren"
-#: builtin/clone.c:383
+#: builtin/clone.c:382 builtin/clone.c:559
#, c-format
msgid "done.\n"
msgstr "Fertig.\n"
-#: builtin/clone.c:396
+#: builtin/clone.c:395
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -3819,108 +3999,103 @@ msgstr ""
"Sie können mit 'git status' prüfen, was ausgecheckt worden ist\n"
"und das Auschecken mit 'git checkout -f HEAD' erneut versuchen.\n"
-#: builtin/clone.c:475
+#: builtin/clone.c:474
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "Konnte zu klonenden Remote-Branch %s nicht finden."
-#: builtin/clone.c:555
+#: builtin/clone.c:554
#, c-format
msgid "Checking connectivity... "
msgstr "Prüfe Konnektivität... "
-#: builtin/clone.c:558
+#: builtin/clone.c:557
msgid "remote did not send all necessary objects"
msgstr "Remote-Repository hat nicht alle erforderlichen Objekte gesendet."
-#: builtin/clone.c:560
-#, c-format
-msgid "done\n"
-msgstr "Fertig\n"
-
-#: builtin/clone.c:621
+#: builtin/clone.c:620
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr ""
"Externer HEAD bezieht sich auf eine nicht existierende Referenz und kann "
"nicht ausgecheckt werden.\n"
-#: builtin/clone.c:652
+#: builtin/clone.c:651
msgid "unable to checkout working tree"
msgstr "Arbeitsverzeichnis konnte nicht ausgecheckt werden"
-#: builtin/clone.c:760
+#: builtin/clone.c:759
msgid "Too many arguments."
msgstr "Zu viele Argumente."
-#: builtin/clone.c:764
+#: builtin/clone.c:763
msgid "You must specify a repository to clone."
msgstr "Sie müssen ein Repository zum Klonen angeben."
-#: builtin/clone.c:775
+#: builtin/clone.c:774
#, c-format
msgid "--bare and --origin %s options are incompatible."
msgstr "Die Optionen --bare und --origin %s sind inkompatibel."
-#: builtin/clone.c:778
+#: builtin/clone.c:777
msgid "--bare and --separate-git-dir are incompatible."
msgstr "Die Optionen --bare und --separate-git-dir sind inkompatibel."
-#: builtin/clone.c:791
+#: builtin/clone.c:790
#, c-format
msgid "repository '%s' does not exist"
msgstr "Repository '%s' existiert nicht."
-#: builtin/clone.c:796
+#: builtin/clone.c:795
msgid "--depth is ignored in local clones; use file:// instead."
msgstr ""
"Die Option --depth wird in lokalen Klonen ignoriert; benutzen Sie "
"stattdessen file://"
-#: builtin/clone.c:798
+#: builtin/clone.c:797
msgid "--local is ignored"
msgstr "--local wird ignoriert"
-#: builtin/clone.c:808
+#: builtin/clone.c:807
#, c-format
msgid "destination path '%s' already exists and is not an empty directory."
msgstr "Zielpfad '%s' existiert bereits und ist kein leeres Verzeichnis."
-#: builtin/clone.c:818
+#: builtin/clone.c:817
#, c-format
msgid "working tree '%s' already exists."
msgstr "Arbeitsverzeichnis '%s' existiert bereits."
-#: builtin/clone.c:831 builtin/clone.c:843
+#: builtin/clone.c:830 builtin/clone.c:842
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "Konnte führende Verzeichnisse von '%s' nicht erstellen."
-#: builtin/clone.c:834
+#: builtin/clone.c:833
#, c-format
msgid "could not create work tree dir '%s'."
msgstr "Konnte Arbeitsverzeichnis '%s' nicht erstellen."
-#: builtin/clone.c:853
+#: builtin/clone.c:852
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "Klone in Bare-Repository '%s'...\n"
-#: builtin/clone.c:855
+#: builtin/clone.c:854
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "Klone nach '%s'...\n"
-#: builtin/clone.c:890
+#: builtin/clone.c:888
#, c-format
msgid "Don't know how to clone %s"
msgstr "Weiß nicht wie %s zu klonen ist."
-#: builtin/clone.c:942
+#: builtin/clone.c:939 builtin/clone.c:947
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "Remote-Branch %s nicht im Upstream-Repository %s gefunden"
-#: builtin/clone.c:949
+#: builtin/clone.c:950
msgid "You appear to have cloned an empty repository."
msgstr "Sie scheinen ein leeres Repository geklont zu haben."
@@ -3956,15 +4131,15 @@ msgstr "Abstand zwischen Spalten"
msgid "--command must be the first argument"
msgstr "Die Option --command muss an erster Stelle stehen."
-#: builtin/commit.c:35
+#: builtin/commit.c:36
msgid "git commit [options] [--] <pathspec>..."
msgstr "git commit [Optionen] [--] <Pfadspezifikation>..."
-#: builtin/commit.c:40
+#: builtin/commit.c:41
msgid "git status [options] [--] <pathspec>..."
msgstr "git status [Optionen] [--] <Pfadspezifikation>..."
-#: builtin/commit.c:45
+#: builtin/commit.c:46
msgid ""
"Your name and email address were configured automatically based\n"
"on your username and hostname. Please check that they are accurate.\n"
@@ -3990,7 +4165,7 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: builtin/commit.c:57
+#: builtin/commit.c:58
msgid ""
"You asked to amend the most recent commit, but doing so would make\n"
"it empty. You can repeat your command with --allow-empty, or you can\n"
@@ -4000,7 +4175,7 @@ msgstr ""
"machen. Sie können Ihr Kommando mit --allow-empty wiederholen, oder diesen\n"
"Commit mit \"git reset HEAD^\" vollständig entfernen.\n"
-#: builtin/commit.c:62
+#: builtin/commit.c:63
msgid ""
"The previous cherry-pick is now empty, possibly due to conflict resolution.\n"
"If you wish to commit it anyway, use:\n"
@@ -4015,11 +4190,11 @@ msgstr ""
" git commit --allow-empty\n"
"\n"
-#: builtin/commit.c:69
+#: builtin/commit.c:70
msgid "Otherwise, please use 'git reset'\n"
msgstr "Andernfalls benutzen Sie bitte 'git reset'\n"
-#: builtin/commit.c:72
+#: builtin/commit.c:73
msgid ""
"If you wish to skip this commit, use:\n"
"\n"
@@ -4035,94 +4210,94 @@ msgstr ""
"Benutzen Sie anschließend \"git cherry-pick --continue\", um die\n"
"Cherry-Pick-Operation mit den verbleibenden Commits fortzusetzen.\n"
-#: builtin/commit.c:279
+#: builtin/commit.c:287
msgid "failed to unpack HEAD tree object"
msgstr "Fehler beim Entpacken des \"Tree\"-Objektes von HEAD."
-#: builtin/commit.c:321
+#: builtin/commit.c:329
msgid "unable to create temporary index"
msgstr "Konnte temporäre Staging-Area nicht erstellen."
-#: builtin/commit.c:327
+#: builtin/commit.c:335
msgid "interactive add failed"
msgstr "interaktives Hinzufügen fehlgeschlagen"
-#: builtin/commit.c:360 builtin/commit.c:381 builtin/commit.c:431
+#: builtin/commit.c:368 builtin/commit.c:389 builtin/commit.c:439
msgid "unable to write new_index file"
msgstr "Konnte new_index Datei nicht schreiben"
-#: builtin/commit.c:412
+#: builtin/commit.c:420
msgid "cannot do a partial commit during a merge."
msgstr "Kann keinen Teil-Commit durchführen, während ein Merge im Gange ist."
-#: builtin/commit.c:414
+#: builtin/commit.c:422
msgid "cannot do a partial commit during a cherry-pick."
msgstr ""
"Kann keinen Teil-Commit durchführen, während \"cherry-pick\" im Gange ist."
-#: builtin/commit.c:424
+#: builtin/commit.c:432
msgid "cannot read the index"
msgstr "Kann Staging-Area nicht lesen"
-#: builtin/commit.c:444
+#: builtin/commit.c:452
msgid "unable to write temporary index file"
msgstr "Konnte temporäre Staging-Area-Datei nicht schreiben."
-#: builtin/commit.c:535 builtin/commit.c:541
+#: builtin/commit.c:543 builtin/commit.c:549
#, c-format
msgid "invalid commit: %s"
msgstr "Ungültiger Commit: %s"
-#: builtin/commit.c:563
+#: builtin/commit.c:571
msgid "malformed --author parameter"
msgstr "Fehlerhafter --author Parameter"
-#: builtin/commit.c:583
+#: builtin/commit.c:591
#, c-format
msgid "Malformed ident string: '%s'"
msgstr "Fehlerhafter Ident-String: '%s'"
-#: builtin/commit.c:621 builtin/commit.c:654 builtin/commit.c:982
+#: builtin/commit.c:630 builtin/commit.c:663 builtin/commit.c:1007
#, c-format
msgid "could not lookup commit %s"
msgstr "Konnte Commit %s nicht nachschlagen"
-#: builtin/commit.c:633 builtin/shortlog.c:271
+#: builtin/commit.c:642 builtin/shortlog.c:273
#, c-format
msgid "(reading log message from standard input)\n"
msgstr "(lese Log-Nachricht von Standard-Eingabe)\n"
-#: builtin/commit.c:635
+#: builtin/commit.c:644
msgid "could not read log from standard input"
msgstr "Konnte Log nicht von Standard-Eingabe lesen."
-#: builtin/commit.c:639
+#: builtin/commit.c:648
#, c-format
msgid "could not read log file '%s'"
msgstr "Konnte Log-Datei '%s' nicht lesen"
-#: builtin/commit.c:645
+#: builtin/commit.c:654
msgid "commit has empty message"
msgstr "Commit hat eine leere Beschreibung"
-#: builtin/commit.c:661
+#: builtin/commit.c:670
msgid "could not read MERGE_MSG"
msgstr "Konnte MERGE_MSG nicht lesen"
-#: builtin/commit.c:665
+#: builtin/commit.c:674
msgid "could not read SQUASH_MSG"
msgstr "Konnte SQUASH_MSG nicht lesen"
-#: builtin/commit.c:669
+#: builtin/commit.c:678
#, c-format
msgid "could not read '%s'"
msgstr "Konnte '%s' nicht lesen"
-#: builtin/commit.c:730
+#: builtin/commit.c:749
msgid "could not write commit template"
msgstr "Konnte Commit-Vorlage nicht schreiben"
-#: builtin/commit.c:741
+#: builtin/commit.c:760
#, c-format
msgid ""
"\n"
@@ -4137,7 +4312,7 @@ msgstr ""
"\t%s\n"
"und versuchen Sie es erneut.\n"
-#: builtin/commit.c:746
+#: builtin/commit.c:765
#, c-format
msgid ""
"\n"
@@ -4152,7 +4327,7 @@ msgstr ""
"\t%s\n"
"und versuchen Sie es erneut.\n"
-#: builtin/commit.c:758
+#: builtin/commit.c:777
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -4162,7 +4337,7 @@ msgstr ""
"die mit '%c' beginnen, werden ignoriert, und eine leere Beschreibung\n"
"bricht den Commit ab.\n"
-#: builtin/commit.c:763
+#: builtin/commit.c:782
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -4175,152 +4350,152 @@ msgstr ""
"entfernen.\n"
"Eine leere Beschreibung bricht den Commit ab.\n"
-#: builtin/commit.c:776
+#: builtin/commit.c:795
#, c-format
msgid "%sAuthor: %s"
msgstr "%sAutor: %s"
-#: builtin/commit.c:783
+#: builtin/commit.c:802
#, c-format
msgid "%sCommitter: %s"
msgstr "%sCommit-Ersteller: %s"
-#: builtin/commit.c:803
+#: builtin/commit.c:822
msgid "Cannot read index"
msgstr "Kann Staging-Area nicht lesen"
-#: builtin/commit.c:845
+#: builtin/commit.c:865
msgid "Error building trees"
msgstr "Fehler beim Erzeugen der \"Tree\"-Objekte"
-#: builtin/commit.c:860 builtin/tag.c:359
+#: builtin/commit.c:880 builtin/tag.c:359
#, c-format
msgid "Please supply the message using either -m or -F option.\n"
msgstr ""
"Bitte liefern Sie eine Beschreibung entweder mit der Option -m oder -F.\n"
-#: builtin/commit.c:957
+#: builtin/commit.c:982
#, c-format
msgid "No existing author found with '%s'"
msgstr "Kein existierender Autor mit '%s' gefunden."
-#: builtin/commit.c:972 builtin/commit.c:1208
+#: builtin/commit.c:997 builtin/commit.c:1237
#, c-format
msgid "Invalid untracked files mode '%s'"
msgstr "Ungültiger Modus '%s' für unbeobachtete Dateien"
-#: builtin/commit.c:1009
+#: builtin/commit.c:1034
msgid "--long and -z are incompatible"
msgstr "Die Optionen --long und -z sind inkompatibel."
-#: builtin/commit.c:1039
+#: builtin/commit.c:1064
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:1050
+#: builtin/commit.c:1075
msgid "You have nothing to amend."
msgstr "Sie haben nichts für \"--amend\"."
-#: builtin/commit.c:1053
+#: builtin/commit.c:1078
msgid "You are in the middle of a merge -- cannot amend."
msgstr "Ein Merge ist im Gange -- kann \"--amend\" nicht ausführen."
-#: builtin/commit.c:1055
+#: builtin/commit.c:1080
msgid "You are in the middle of a cherry-pick -- cannot amend."
msgstr "\"cherry-pick\" ist im Gange -- kann \"--amend\" nicht ausführen."
-#: builtin/commit.c:1058
+#: builtin/commit.c:1083
msgid "Options --squash and --fixup cannot be used together"
msgstr ""
"Die Optionen --squash und --fixup können nicht gemeinsam verwendet werden."
-#: builtin/commit.c:1068
+#: builtin/commit.c:1093
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:1070
+#: builtin/commit.c:1095
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:1078
+#: builtin/commit.c:1103
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:1095
+#: builtin/commit.c:1120
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:1097
+#: builtin/commit.c:1122
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:1099
+#: builtin/commit.c:1124
msgid "Clever... amending the last one with dirty index."
msgstr ""
"Klug... den letzten Commit mit einer geänderten Staging-Area nachbessern."
-#: builtin/commit.c:1101
+#: builtin/commit.c:1126
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:1111 builtin/tag.c:575
+#: builtin/commit.c:1136 builtin/tag.c:572
#, c-format
msgid "Invalid cleanup mode %s"
msgstr "Ungültiger \"cleanup\" Modus %s"
-#: builtin/commit.c:1116
+#: builtin/commit.c:1141
msgid "Paths with -a does not make sense."
msgstr "Die Option -a kann nur mit der Angabe von Pfaden verwendet werden."
-#: builtin/commit.c:1222 builtin/commit.c:1455
+#: builtin/commit.c:1251 builtin/commit.c:1482
msgid "show status concisely"
msgstr "zeigt Status im Kurzformat"
-#: builtin/commit.c:1224 builtin/commit.c:1457
+#: builtin/commit.c:1253 builtin/commit.c:1484
msgid "show branch information"
msgstr "zeigt Branchinformationen"
-#: builtin/commit.c:1226 builtin/commit.c:1459 builtin/push.c:452
+#: builtin/commit.c:1255 builtin/commit.c:1486 builtin/push.c:460
msgid "machine-readable output"
msgstr "maschinenlesbare Ausgabe"
-#: builtin/commit.c:1229 builtin/commit.c:1461
+#: builtin/commit.c:1258 builtin/commit.c:1488
msgid "show status in long format (default)"
msgstr "zeigt Status im Langformat (Standard)"
-#: builtin/commit.c:1232 builtin/commit.c:1464
+#: builtin/commit.c:1261 builtin/commit.c:1491
msgid "terminate entries with NUL"
msgstr "schließt Einträge mit NUL-Zeichen ab"
-#: builtin/commit.c:1234 builtin/commit.c:1467 builtin/fast-export.c:667
-#: builtin/fast-export.c:670 builtin/tag.c:459
+#: builtin/commit.c:1263 builtin/commit.c:1494 builtin/fast-export.c:674
+#: builtin/fast-export.c:677 builtin/tag.c:459
msgid "mode"
msgstr "Modus"
-#: builtin/commit.c:1235 builtin/commit.c:1467
+#: builtin/commit.c:1264 builtin/commit.c:1494
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:1238
+#: builtin/commit.c:1267
msgid "show ignored files"
msgstr "zeigt ignorierte Dateien"
-#: builtin/commit.c:1239 parse-options.h:154
+#: builtin/commit.c:1268 parse-options.h:156
msgid "when"
msgstr "wann"
-#: builtin/commit.c:1240
+#: builtin/commit.c:1269
msgid ""
"ignore changes to submodules, optional when: all, dirty, untracked. "
"(Default: all)"
@@ -4328,219 +4503,219 @@ msgstr ""
"ignoriert Änderungen in Submodulen, optional wenn: all, dirty, untracked. "
"(Standard: all)"
-#: builtin/commit.c:1242
+#: builtin/commit.c:1271
msgid "list untracked files in columns"
msgstr "listet unbeobachtete Dateien in Spalten auf"
-#: builtin/commit.c:1313
+#: builtin/commit.c:1340
msgid "couldn't look up newly created commit"
msgstr "Konnte neu erstellten Commit nicht nachschlagen."
-#: builtin/commit.c:1315
+#: builtin/commit.c:1342
msgid "could not parse newly created commit"
msgstr "Konnte neulich erstellten Commit nicht analysieren."
-#: builtin/commit.c:1356
+#: builtin/commit.c:1383
msgid "detached HEAD"
msgstr "losgelöster HEAD"
-#: builtin/commit.c:1358
+#: builtin/commit.c:1385
msgid " (root-commit)"
msgstr " (Basis-Commit)"
-#: builtin/commit.c:1425
+#: builtin/commit.c:1452
msgid "suppress summary after successful commit"
msgstr "unterdrückt Zusammenfassung nach erfolgreichem Commit"
-#: builtin/commit.c:1426
+#: builtin/commit.c:1453
msgid "show diff in commit message template"
msgstr "zeigt Unterschiede in Commit-Beschreibungsvorlage an"
-#: builtin/commit.c:1428
+#: builtin/commit.c:1455
msgid "Commit message options"
msgstr "Optionen für Commit-Beschreibung"
-#: builtin/commit.c:1429 builtin/tag.c:457
+#: builtin/commit.c:1456 builtin/tag.c:457
msgid "read message from file"
msgstr "liest Beschreibung von Datei"
-#: builtin/commit.c:1430
+#: builtin/commit.c:1457
msgid "author"
msgstr "Autor"
-#: builtin/commit.c:1430
+#: builtin/commit.c:1457
msgid "override author for commit"
msgstr "überschreibt Autor eines Commits"
-#: builtin/commit.c:1431 builtin/gc.c:178
+#: builtin/commit.c:1458 builtin/gc.c:260
msgid "date"
msgstr "Datum"
-#: builtin/commit.c:1431
+#: builtin/commit.c:1458
msgid "override date for commit"
msgstr "überschreibt Datum eines Commits"
-#: builtin/commit.c:1432 builtin/merge.c:223 builtin/notes.c:405
+#: builtin/commit.c:1459 builtin/merge.c:223 builtin/notes.c:405
#: builtin/notes.c:562 builtin/tag.c:455
msgid "message"
msgstr "Beschreibung"
-#: builtin/commit.c:1432
+#: builtin/commit.c:1459
msgid "commit message"
msgstr "Commit-Beschreibung"
-#: builtin/commit.c:1433
+#: builtin/commit.c:1460
msgid "reuse and edit message from specified commit"
msgstr "verwendet wieder und editiert Beschreibung des angegebenen Commits"
-#: builtin/commit.c:1434
+#: builtin/commit.c:1461
msgid "reuse message from specified commit"
msgstr "verwendet Beschreibung des angegebenen Commits wieder"
-#: builtin/commit.c:1435
+#: builtin/commit.c:1462
msgid "use autosquash formatted message to fixup specified commit"
msgstr ""
"verwendet eine automatisch zusammengesetzte Beschreibung zum Nachbessern des "
"angegebenen Commits"
-#: builtin/commit.c:1436
+#: builtin/commit.c:1463
msgid "use autosquash formatted message to squash specified commit"
msgstr ""
"verwendet eine automatisch zusammengesetzte Beschreibung beim \"squash\" des "
"angegebenen Commits"
-#: builtin/commit.c:1437
+#: builtin/commit.c:1464
msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr "Setzt Sie als Autor des Commits (verwendet mit -C/-c/--amend)"
-#: builtin/commit.c:1438 builtin/log.c:1160 builtin/revert.c:111
+#: builtin/commit.c:1465 builtin/log.c:1180 builtin/revert.c:86
msgid "add Signed-off-by:"
msgstr "fügt 'Signed-off-by:'-Zeile hinzu"
-#: builtin/commit.c:1439
+#: builtin/commit.c:1466
msgid "use specified template file"
msgstr "verwendet angegebene Vorlagendatei"
-#: builtin/commit.c:1440
+#: builtin/commit.c:1467
msgid "force edit of commit"
msgstr "erzwingt Bearbeitung des Commits"
-#: builtin/commit.c:1441
+#: builtin/commit.c:1468
msgid "default"
msgstr "Standard"
-#: builtin/commit.c:1441 builtin/tag.c:460
+#: builtin/commit.c:1468 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:1442
+#: builtin/commit.c:1469
msgid "include status in commit message template"
msgstr "fügt Status in die Commit-Beschreibungsvorlage ein"
-#: builtin/commit.c:1443 builtin/merge.c:230 builtin/tag.c:461
+#: builtin/commit.c:1470 builtin/merge.c:230 builtin/tag.c:461
msgid "key id"
msgstr "Schlüssel-ID"
-#: builtin/commit.c:1444 builtin/merge.c:231
+#: builtin/commit.c:1471 builtin/merge.c:231
msgid "GPG sign commit"
msgstr "signiert Commit mit GPG"
#. end commit message options
-#: builtin/commit.c:1447
+#: builtin/commit.c:1474
msgid "Commit contents options"
msgstr "Optionen für Commit-Inhalt"
-#: builtin/commit.c:1448
+#: builtin/commit.c:1475
msgid "commit all changed files"
msgstr "committet alle geänderten Dateien"
-#: builtin/commit.c:1449
+#: builtin/commit.c:1476
msgid "add specified files to index for commit"
msgstr "merkt die angegebenen Dateien zusätzlich zum Commit vor"
-#: builtin/commit.c:1450
+#: builtin/commit.c:1477
msgid "interactively add files"
msgstr "interaktives Hinzufügen von Dateien"
-#: builtin/commit.c:1451
+#: builtin/commit.c:1478
msgid "interactively add changes"
msgstr "interaktives Hinzufügen von Änderungen"
-#: builtin/commit.c:1452
+#: builtin/commit.c:1479
msgid "commit only specified files"
msgstr "committet nur die angegebenen Dateien"
-#: builtin/commit.c:1453
+#: builtin/commit.c:1480
msgid "bypass pre-commit hook"
msgstr "umgeht \"pre-commit hook\""
-#: builtin/commit.c:1454
+#: builtin/commit.c:1481
msgid "show what would be committed"
msgstr "zeigt an, was committet werden würde"
-#: builtin/commit.c:1465
+#: builtin/commit.c:1492
msgid "amend previous commit"
msgstr "ändert vorherigen Commit"
-#: builtin/commit.c:1466
+#: builtin/commit.c:1493
msgid "bypass post-rewrite hook"
msgstr "umgeht \"post-rewrite hook\""
-#: builtin/commit.c:1471
+#: builtin/commit.c:1498
msgid "ok to record an empty change"
msgstr "erlaubt Aufzeichnung einer leeren Änderung"
-#: builtin/commit.c:1474
+#: builtin/commit.c:1500
msgid "ok to record a change with an empty message"
msgstr "erlaubt Aufzeichnung einer Änderung mit einer leeren Beschreibung"
-#: builtin/commit.c:1507
+#: builtin/commit.c:1529
msgid "could not parse HEAD commit"
msgstr "Konnte Commit von HEAD nicht analysieren."
-#: builtin/commit.c:1545 builtin/merge.c:525
+#: builtin/commit.c:1567 builtin/merge.c:525
#, c-format
msgid "could not open '%s' for reading"
msgstr "Konnte '%s' nicht zum Lesen öffnen."
-#: builtin/commit.c:1552
+#: builtin/commit.c:1574
#, c-format
msgid "Corrupt MERGE_HEAD file (%s)"
msgstr "Beschädigte MERGE_HEAD-Datei (%s)"
-#: builtin/commit.c:1559
+#: builtin/commit.c:1581
msgid "could not read MERGE_MODE"
msgstr "Konnte MERGE_MODE nicht lesen"
-#: builtin/commit.c:1578
+#: builtin/commit.c:1600
#, c-format
msgid "could not read commit message: %s"
msgstr "Konnte Commit-Beschreibung nicht lesen: %s"
-#: builtin/commit.c:1592
+#: builtin/commit.c:1614
#, c-format
msgid "Aborting commit; you did not edit the message.\n"
msgstr "Commit abgebrochen; Sie haben die Beschreibung nicht editiert.\n"
-#: builtin/commit.c:1597
+#: builtin/commit.c:1619
#, c-format
msgid "Aborting commit due to empty commit message.\n"
msgstr "Commit aufgrund leerer Beschreibung abgebrochen.\n"
-#: builtin/commit.c:1612 builtin/merge.c:861 builtin/merge.c:886
+#: builtin/commit.c:1634 builtin/merge.c:861 builtin/merge.c:886
msgid "failed to write commit object"
msgstr "Fehler beim Schreiben des Commit-Objektes."
-#: builtin/commit.c:1633
+#: builtin/commit.c:1655
msgid "cannot lock HEAD ref"
msgstr "Kann Referenz von HEAD nicht sperren."
-#: builtin/commit.c:1637
+#: builtin/commit.c:1659
msgid "cannot update HEAD ref"
msgstr "Kann Referenz von HEAD nicht aktualisieren."
-#: builtin/commit.c:1648
+#: builtin/commit.c:1670
msgid ""
"Repository has been updated, but unable to write\n"
"new_index file. Check that disk is not full or quota is\n"
@@ -4551,127 +4726,131 @@ msgstr ""
"voll und Ihr Kontingent nicht aufgebraucht ist und führen Sie\n"
"anschließend \"git reset HEAD\" zu Wiederherstellung aus."
-#: builtin/config.c:7
+#: builtin/config.c:8
msgid "git config [options]"
msgstr "git config [Optionen]"
-#: builtin/config.c:52
+#: builtin/config.c:54
msgid "Config file location"
msgstr "Ort der Konfigurationsdatei"
-#: builtin/config.c:53
+#: builtin/config.c:55
msgid "use global config file"
msgstr "verwendet globale Konfigurationsdatei"
-#: builtin/config.c:54
+#: builtin/config.c:56
msgid "use system config file"
msgstr "verwendet systemweite Konfigurationsdatei"
-#: builtin/config.c:55
+#: builtin/config.c:57
msgid "use repository config file"
msgstr "verwendet Konfigurationsdatei des Repositories"
-#: builtin/config.c:56
+#: builtin/config.c:58
msgid "use given config file"
msgstr "verwendet die angegebene Konfigurationsdatei"
-#: builtin/config.c:57
+#: builtin/config.c:59
msgid "blob-id"
msgstr "Blob-Id"
-#: builtin/config.c:57
+#: builtin/config.c:59
msgid "read config from given blob object"
msgstr "liest Konfiguration von angegebenem Blob-Objekt"
-#: builtin/config.c:58
+#: builtin/config.c:60
msgid "Action"
msgstr "Aktion"
-#: builtin/config.c:59
+#: builtin/config.c:61
msgid "get value: name [value-regex]"
msgstr "gibt Wert zurück: Name [Wert-regex]"
-#: builtin/config.c:60
+#: builtin/config.c:62
msgid "get all values: key [value-regex]"
msgstr "gibt alle Werte zurück: Schlüssel [Wert-regex]"
-#: builtin/config.c:61
+#: builtin/config.c:63
msgid "get values for regexp: name-regex [value-regex]"
msgstr "gibt Werte für den regulären Ausdruck zurück: Name-regex [Wert-regex]"
-#: builtin/config.c:62
+#: builtin/config.c:64
+msgid "get value specific for the URL: section[.var] URL"
+msgstr "gibt Wert spezifisch für eine URL zurück: section[.var] URL"
+
+#: builtin/config.c:65
msgid "replace all matching variables: name value [value_regex]"
msgstr "ersetzt alle passenden Variablen: Name Wert [Wert-regex] "
-#: builtin/config.c:63
+#: builtin/config.c:66
msgid "add a new variable: name value"
msgstr "fügt neue Variable hinzu: Name Wert"
-#: builtin/config.c:64
+#: builtin/config.c:67
msgid "remove a variable: name [value-regex]"
msgstr "entfernt eine Variable: Name [Wert-regex]"
-#: builtin/config.c:65
+#: builtin/config.c:68
msgid "remove all matches: name [value-regex]"
msgstr "entfernt alle Übereinstimmungen: Name [Wert-regex]"
-#: builtin/config.c:66
+#: builtin/config.c:69
msgid "rename section: old-name new-name"
msgstr "benennt eine Sektion um: alter-Name neuer-Name"
-#: builtin/config.c:67
+#: builtin/config.c:70
msgid "remove a section: name"
msgstr "entfernt eine Sektion: Name"
-#: builtin/config.c:68
+#: builtin/config.c:71
msgid "list all"
msgstr "listet alles auf"
-#: builtin/config.c:69
+#: builtin/config.c:72
msgid "open an editor"
msgstr "öffnet einen Editor"
-#: builtin/config.c:70 builtin/config.c:71
+#: builtin/config.c:73 builtin/config.c:74
msgid "slot"
msgstr "Slot"
-#: builtin/config.c:70
+#: builtin/config.c:73
msgid "find the color configured: [default]"
msgstr "findet die konfigurierte Farbe: [Standard]"
-#: builtin/config.c:71
+#: builtin/config.c:74
msgid "find the color setting: [stdout-is-tty]"
msgstr "findet die Farbeinstellung: [Standard-Ausgabe-ist-Terminal]"
-#: builtin/config.c:72
+#: builtin/config.c:75
msgid "Type"
msgstr "Typ"
-#: builtin/config.c:73
+#: builtin/config.c:76
msgid "value is \"true\" or \"false\""
msgstr "Wert ist \"true\" oder \"false\""
-#: builtin/config.c:74
+#: builtin/config.c:77
msgid "value is decimal number"
msgstr "Wert ist eine Dezimalzahl"
-#: builtin/config.c:75
+#: builtin/config.c:78
msgid "value is --bool or --int"
msgstr "Wert ist --bool oder --int"
-#: builtin/config.c:76
+#: builtin/config.c:79
msgid "value is a path (file or directory name)"
msgstr "Wert ist ein Pfad (Datei oder Verzeichnisname)"
-#: builtin/config.c:77
+#: builtin/config.c:80
msgid "Other"
msgstr "Sonstiges"
-#: builtin/config.c:78
+#: builtin/config.c:81
msgid "terminate values with NUL byte"
msgstr "schließt Werte mit NUL-Byte ab"
-#: builtin/config.c:79
+#: builtin/config.c:82
msgid "respect include directives on lookup"
msgstr "beachtet \"include\"-Direktiven beim Nachschlagen"
@@ -4858,39 +5037,39 @@ msgstr "unbehandeltes Objekt '%s' angegeben"
msgid "git fast-export [rev-list-opts]"
msgstr "git fast-export [rev-list-opts]"
-#: builtin/fast-export.c:666
+#: builtin/fast-export.c:673
msgid "show progress after <n> objects"
msgstr "zeigt Fortschritt nach <n> Objekten an"
-#: builtin/fast-export.c:668
+#: builtin/fast-export.c:675
msgid "select handling of signed tags"
msgstr "wählt Behandlung von signierten Tags"
-#: builtin/fast-export.c:671
+#: builtin/fast-export.c:678
msgid "select handling of tags that tag filtered objects"
msgstr "wählt Behandlung von Tags, die gefilterte Objekte markieren"
-#: builtin/fast-export.c:674
+#: builtin/fast-export.c:681
msgid "Dump marks to this file"
msgstr "Schreibt Kennzeichen in diese Datei"
-#: builtin/fast-export.c:676
+#: builtin/fast-export.c:683
msgid "Import marks from this file"
msgstr "Importiert Kennzeichen von dieser Datei"
-#: builtin/fast-export.c:678
+#: builtin/fast-export.c:685
msgid "Fake a tagger when tags lack one"
msgstr "erzeugt künstlich einen Tag-Ersteller, wenn das Tag keinen hat"
-#: builtin/fast-export.c:680
+#: builtin/fast-export.c:687
msgid "Output full tree for each commit"
msgstr "gibt für jeden Commit das gesamte Verzeichnis aus"
-#: builtin/fast-export.c:682
+#: builtin/fast-export.c:689
msgid "Use the done feature to terminate the stream"
msgstr "Benutzt die \"done\"-Funktion um den Strom abzuschließen"
-#: builtin/fast-export.c:683
+#: builtin/fast-export.c:690
msgid "Skip output of blob data"
msgstr "Überspringt Ausgabe von Blob-Daten"
@@ -4910,147 +5089,147 @@ msgstr "git fetch --multiple [<Optionen>] [(<Repository> | <Gruppe>)...]"
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<Optionen>]"
-#: builtin/fetch.c:60
+#: builtin/fetch.c:74
msgid "fetch from all remotes"
msgstr "fordert von allen Remote-Repositories an"
-#: builtin/fetch.c:62
+#: builtin/fetch.c:76
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "hängt an .git/FETCH_HEAD an, anstatt zu überschreiben"
-#: builtin/fetch.c:64
+#: builtin/fetch.c:78
msgid "path to upload pack on remote end"
msgstr "Pfad des Programms zum Hochladen von Paketen auf der Gegenseite"
-#: builtin/fetch.c:65
+#: builtin/fetch.c:79
msgid "force overwrite of local branch"
msgstr "erzwingt das Überschreiben von lokalen Branches"
-#: builtin/fetch.c:67
+#: builtin/fetch.c:81
msgid "fetch from multiple remotes"
msgstr "fordert von mehreren Remote-Repositories an"
-#: builtin/fetch.c:69
+#: builtin/fetch.c:83
msgid "fetch all tags and associated objects"
msgstr "fordert alle Tags und verbundene Objekte an"
-#: builtin/fetch.c:71
+#: builtin/fetch.c:85
msgid "do not fetch all tags (--no-tags)"
msgstr "fordert nicht alle Tags an (--no-tags)"
-#: builtin/fetch.c:73
+#: builtin/fetch.c:87
msgid "prune remote-tracking branches no longer on remote"
msgstr ""
"entfernt Remote-Tracking-Branches, die sich nicht mehr im Remote-Repository "
"befinden"
-#: builtin/fetch.c:74
+#: builtin/fetch.c:88
msgid "on-demand"
msgstr "bei-Bedarf"
-#: builtin/fetch.c:75
+#: builtin/fetch.c:89
msgid "control recursive fetching of submodules"
msgstr "kontrolliert rekursive Anforderungen von Submodulen"
-#: builtin/fetch.c:79
+#: builtin/fetch.c:93
msgid "keep downloaded pack"
msgstr "behält heruntergeladenes Paket"
-#: builtin/fetch.c:81
+#: builtin/fetch.c:95
msgid "allow updating of HEAD ref"
msgstr "erlaubt Aktualisierung der \"HEAD\"-Referenz"
-#: builtin/fetch.c:84
+#: builtin/fetch.c:98
msgid "deepen history of shallow clone"
msgstr "vertieft die Historie eines flachen Klons"
-#: builtin/fetch.c:86
+#: builtin/fetch.c:100
msgid "convert to a complete repository"
msgstr "konvertiert zu einem vollständigen Repository"
-#: builtin/fetch.c:88 builtin/log.c:1177
+#: builtin/fetch.c:102 builtin/log.c:1197
msgid "dir"
msgstr "Verzeichnis"
-#: builtin/fetch.c:89
+#: builtin/fetch.c:103
msgid "prepend this to submodule path output"
msgstr "stellt dies an die Ausgabe der Submodul-Pfade voran"
-#: builtin/fetch.c:92
+#: builtin/fetch.c:106
msgid "default mode for recursion"
msgstr "Standard-Modus für Rekursion"
-#: builtin/fetch.c:220
+#: builtin/fetch.c:236
msgid "Couldn't find remote ref HEAD"
msgstr "Konnte Remote-Referenz von HEAD nicht finden."
-#: builtin/fetch.c:273
+#: builtin/fetch.c:290
#, c-format
msgid "object %s not found"
msgstr "Objekt %s nicht gefunden"
-#: builtin/fetch.c:278
+#: builtin/fetch.c:295
msgid "[up to date]"
msgstr "[aktuell]"
-#: builtin/fetch.c:292
+#: builtin/fetch.c:309
#, c-format
msgid "! %-*s %-*s -> %s (can't fetch in current branch)"
msgstr ""
"! %-*s %-*s -> %s (kann \"fetch\" im aktuellen Branch nicht ausführen)"
-#: builtin/fetch.c:293 builtin/fetch.c:379
+#: builtin/fetch.c:310 builtin/fetch.c:396
msgid "[rejected]"
msgstr "[zurückgewiesen]"
-#: builtin/fetch.c:304
+#: builtin/fetch.c:321
msgid "[tag update]"
msgstr "[Tag Aktualisierung]"
-#: builtin/fetch.c:306 builtin/fetch.c:341 builtin/fetch.c:359
+#: builtin/fetch.c:323 builtin/fetch.c:358 builtin/fetch.c:376
msgid " (unable to update local ref)"
msgstr " (kann lokale Referenz nicht aktualisieren)"
-#: builtin/fetch.c:324
+#: builtin/fetch.c:341
msgid "[new tag]"
msgstr "[neues Tag]"
-#: builtin/fetch.c:327
+#: builtin/fetch.c:344
msgid "[new branch]"
msgstr "[neuer Branch]"
-#: builtin/fetch.c:330
+#: builtin/fetch.c:347
msgid "[new ref]"
msgstr "[neue Referenz]"
-#: builtin/fetch.c:375
+#: builtin/fetch.c:392
msgid "unable to update local ref"
msgstr "kann lokale Referenz nicht aktualisieren"
-#: builtin/fetch.c:375
+#: builtin/fetch.c:392
msgid "forced update"
msgstr "Aktualisierung erzwungen"
-#: builtin/fetch.c:381
+#: builtin/fetch.c:398
msgid "(non-fast-forward)"
msgstr "(kein Vorspulen)"
-#: builtin/fetch.c:412 builtin/fetch.c:718
+#: builtin/fetch.c:429 builtin/fetch.c:735
#, c-format
msgid "cannot open %s: %s\n"
msgstr "kann %s nicht öffnen: %s\n"
-#: builtin/fetch.c:421
+#: builtin/fetch.c:438
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr "%s hat nicht alle erforderlichen Objekte gesendet\n"
-#: builtin/fetch.c:520
+#: builtin/fetch.c:537
#, c-format
msgid "From %.*s\n"
msgstr "Von %.*s\n"
-#: builtin/fetch.c:531
+#: builtin/fetch.c:548
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -5059,57 +5238,57 @@ msgstr ""
"Einige lokale Referenzen konnten nicht aktualisiert werden; versuchen Sie\n"
"'git remote prune %s' um jeden älteren, widersprüchlichen Branch zu löschen."
-#: builtin/fetch.c:581
+#: builtin/fetch.c:598
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s wird unreferenziert)"
-#: builtin/fetch.c:582
+#: builtin/fetch.c:599
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s wurde unreferenziert)"
-#: builtin/fetch.c:589
+#: builtin/fetch.c:606
msgid "[deleted]"
msgstr "[gelöscht]"
-#: builtin/fetch.c:590 builtin/remote.c:1055
+#: builtin/fetch.c:607 builtin/remote.c:1055
msgid "(none)"
msgstr "(nichts)"
-#: builtin/fetch.c:708
+#: builtin/fetch.c:725
#, c-format
msgid "Refusing to fetch into current branch %s of non-bare repository"
msgstr ""
"Der \"fetch\" in den aktuellen Branch %s von einem nicht-Bare-Repository "
"wurde verweigert."
-#: builtin/fetch.c:742
-#, c-format
-msgid "Don't know how to fetch from %s"
-msgstr "Weiß nicht wie von %s angefordert wird."
-
-#: builtin/fetch.c:823
+#: builtin/fetch.c:744
#, 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:826
+#: builtin/fetch.c:747
#, c-format
msgid "Option \"%s\" is ignored for %s\n"
msgstr "Option \"%s\" wird ignoriert für %s\n"
-#: builtin/fetch.c:928
+#: builtin/fetch.c:801
+#, c-format
+msgid "Don't know how to fetch from %s"
+msgstr "Weiß nicht wie von %s angefordert wird."
+
+#: builtin/fetch.c:976
#, c-format
msgid "Fetching %s\n"
msgstr "Fordere an von %s\n"
-#: builtin/fetch.c:930 builtin/remote.c:100
+#: builtin/fetch.c:978 builtin/remote.c:100
#, c-format
msgid "Could not fetch %s"
msgstr "Konnte nicht von %s anfordern"
-#: builtin/fetch.c:949
+#: builtin/fetch.c:997
msgid ""
"No remote repository specified. Please, specify either a URL or a\n"
"remote name from which new revisions should be fetched."
@@ -5118,35 +5297,35 @@ msgstr ""
"oder den Namen des Remote-Repositories an, von welchem neue\n"
"Commits angefordert werden sollen."
-#: builtin/fetch.c:969
+#: builtin/fetch.c:1020
msgid "You need to specify a tag name."
msgstr "Sie müssen den Namen des Tags angeben."
-#: builtin/fetch.c:1015
+#: builtin/fetch.c:1068
msgid "--depth and --unshallow cannot be used together"
msgstr ""
"Die Optionen --depth und --unshallow können nicht gemeinsam verwendet werden."
-#: builtin/fetch.c:1017
+#: builtin/fetch.c:1070
msgid "--unshallow on a complete repository does not make sense"
msgstr ""
"Die Option --unshallow kann nicht in einem vollständigen Repository "
"verwendet werden."
-#: builtin/fetch.c:1036
+#: builtin/fetch.c:1089
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all akzeptiert kein Repository als Argument"
-#: builtin/fetch.c:1038
+#: builtin/fetch.c:1091
msgid "fetch --all does not make sense with refspecs"
msgstr "fetch --all kann nicht mit Refspecs verwendet werden."
-#: builtin/fetch.c:1049
+#: builtin/fetch.c:1102
#, c-format
msgid "No such remote or remote group: %s"
msgstr "Kein Remote-Repository (einzeln oder Gruppe): %s"
-#: builtin/fetch.c:1057
+#: builtin/fetch.c:1110
msgid "Fetching a group and specifying refspecs does not make sense"
msgstr ""
"Das Abholen einer Gruppe von Remote-Repositories kann nicht mit der Angabe\n"
@@ -5157,9 +5336,9 @@ msgid "git fmt-merge-msg [-m <message>] [--log[=<n>]|--no-log] [--file <file>]"
msgstr ""
"git fmt-merge-msg [-m <Beschreibung>] [--log[=<n>]|--no-log] [--file <Datei>]"
-#: builtin/fmt-merge-msg.c:663 builtin/fmt-merge-msg.c:666 builtin/grep.c:700
-#: builtin/merge.c:203 builtin/show-branch.c:655 builtin/show-ref.c:179
-#: builtin/tag.c:446 parse-options.h:133 parse-options.h:243
+#: builtin/fmt-merge-msg.c:663 builtin/fmt-merge-msg.c:666 builtin/grep.c:702
+#: builtin/merge.c:203 builtin/show-branch.c:655 builtin/show-ref.c:178
+#: builtin/tag.c:446 parse-options.h:135 parse-options.h:245
msgid "n"
msgstr "Anzahl"
@@ -5183,117 +5362,122 @@ msgstr "verwendet <Text> als Beschreibungsanfang"
msgid "file to read from"
msgstr "Datei zum Einlesen"
-#: builtin/for-each-ref.c:979
+#: builtin/for-each-ref.c:995
msgid "git for-each-ref [options] [<pattern>]"
msgstr "git for-each-ref [Optionen] [<Muster>]"
-#: builtin/for-each-ref.c:994
+#: builtin/for-each-ref.c:1010
msgid "quote placeholders suitably for shells"
msgstr "formatiert Platzhalter als Shell-String"
-#: builtin/for-each-ref.c:996
+#: builtin/for-each-ref.c:1012
msgid "quote placeholders suitably for perl"
msgstr "formatiert Platzhalter als Perl-String"
-#: builtin/for-each-ref.c:998
+#: builtin/for-each-ref.c:1014
msgid "quote placeholders suitably for python"
msgstr "formatiert Platzhalter als Python-String"
-#: builtin/for-each-ref.c:1000
+#: builtin/for-each-ref.c:1016
msgid "quote placeholders suitably for tcl"
msgstr "formatiert Platzhalter als TCL-String"
-#: builtin/for-each-ref.c:1003
+#: builtin/for-each-ref.c:1019
msgid "show only <n> matched refs"
msgstr "zeigt nur <n> passende Referenzen"
-#: builtin/for-each-ref.c:1004
+#: builtin/for-each-ref.c:1020
msgid "format"
msgstr "Format"
-#: builtin/for-each-ref.c:1004
+#: builtin/for-each-ref.c:1020
msgid "format to use for the output"
msgstr "für die Ausgabe zu verwendendes Format"
-#: builtin/for-each-ref.c:1005
+#: builtin/for-each-ref.c:1021
msgid "key"
msgstr "Schüssel"
-#: builtin/for-each-ref.c:1006
+#: builtin/for-each-ref.c:1022
msgid "field name to sort on"
msgstr "sortiere nach diesem Feld"
-#: builtin/fsck.c:608
+#: builtin/fsck.c:607
msgid "git fsck [options] [<object>...]"
msgstr "git fsck [Optionen] [<Objekt>...]"
-#: builtin/fsck.c:614
+#: builtin/fsck.c:613
msgid "show unreachable objects"
msgstr "zeigt unerreichbare Objekte"
-#: builtin/fsck.c:615
+#: builtin/fsck.c:614
msgid "show dangling objects"
msgstr "zeigt unreferenzierte Objekte"
-#: builtin/fsck.c:616
+#: builtin/fsck.c:615
msgid "report tags"
msgstr "meldet Tags"
-#: builtin/fsck.c:617
+#: builtin/fsck.c:616
msgid "report root nodes"
msgstr "meldet Hauptwurzeln"
-#: builtin/fsck.c:618
+#: builtin/fsck.c:617
msgid "make index objects head nodes"
msgstr "prüft Objekte in der Staging-Area"
-#: builtin/fsck.c:619
+#: builtin/fsck.c:618
msgid "make reflogs head nodes (default)"
msgstr "prüft die Reflogs (Standard)"
-#: builtin/fsck.c:620
+#: builtin/fsck.c:619
msgid "also consider packs and alternate objects"
msgstr ""
-#: builtin/fsck.c:621
+#: builtin/fsck.c:620
msgid "enable more strict checking"
msgstr "aktiviert genauere Prüfung"
-#: builtin/fsck.c:623
+#: builtin/fsck.c:622
msgid "write dangling objects in .git/lost-found"
msgstr "schreibt unreferenzierte Objekte nach .git/lost-found"
-#: builtin/fsck.c:624 builtin/prune.c:134
+#: builtin/fsck.c:623 builtin/prune.c:134
msgid "show progress"
msgstr "zeigt Fortschrittsanzeige"
-#: builtin/gc.c:22
+#: builtin/gc.c:23
msgid "git gc [options]"
msgstr "git gc [Optionen]"
-#: builtin/gc.c:63
+#: builtin/gc.c:79
#, c-format
msgid "Invalid %s: '%s'"
msgstr "Ungültiger %s: '%s'"
-#: builtin/gc.c:90
+#: builtin/gc.c:106
#, c-format
msgid "insanely long object directory %.*s"
msgstr "zu langes Objekt-Verzeichnis %.*s"
-#: builtin/gc.c:179
+#: builtin/gc.c:261
msgid "prune unreferenced objects"
msgstr "entfernt unreferenzierte Objekte"
-#: builtin/gc.c:181
+#: builtin/gc.c:263
msgid "be more thorough (increased runtime)"
msgstr "mehr Gründlichkeit (erhöht Laufzeit)"
-#: builtin/gc.c:182
+#: builtin/gc.c:264
msgid "enable auto-gc mode"
msgstr "aktiviert \"auto-gc\" Modus"
-#: builtin/gc.c:222
+#: builtin/gc.c:265
+msgid "force running gc even if there may be another gc running"
+msgstr "erzwingt Ausführung von \"git gc\" selbst wenn ein anderes\n"
+"\"git gc\" bereits ausgeführt wird"
+
+#: builtin/gc.c:305
#, c-format
msgid ""
"Auto packing the repository for optimum performance. You may also\n"
@@ -5303,43 +5487,52 @@ msgstr ""
"komprimiert. Sie können auch \"git gc\" manuell ausführen.\n"
"Siehe \"git help gc\" für weitere Informationen.\n"
-#: builtin/gc.c:249
+#. be quiet on --auto
+#: builtin/gc.c:315
+#, c-format
+msgid ""
+"gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)"
+msgstr ""
+"\"git gc\" wird bereits auf Maschine '%s' pid %<PRIuMAX> ausgeführt\n"
+"(benutzen Sie --force falls nicht)"
+
+#: builtin/gc.c:340
msgid ""
"There are too many unreachable loose objects; run 'git prune' to remove them."
msgstr ""
"Es gibt zu viele unerreichbare lose Objekte; führen Sie 'git prune' aus, um "
"diese zu löschen."
-#: builtin/grep.c:22
+#: builtin/grep.c:23
msgid "git grep [options] [-e] <pattern> [<rev>...] [[--] <path>...]"
msgstr "git grep [Optionen] [-e] <Muster> [<Commit>...] [[--] <Pfad>...]"
-#: builtin/grep.c:217
+#: builtin/grep.c:218
#, c-format
msgid "grep: failed to create thread: %s"
msgstr "grep: Fehler beim Erzeugen eines Thread: %s"
-#: builtin/grep.c:364
+#: builtin/grep.c:365
#, c-format
msgid "Failed to chdir: %s"
msgstr "Fehler beim Verzeichniswechsel: %s"
-#: builtin/grep.c:442 builtin/grep.c:477
+#: builtin/grep.c:443 builtin/grep.c:478
#, c-format
msgid "unable to read tree (%s)"
msgstr "konnte \"Tree\"-Objekt (%s) nicht lesen"
-#: builtin/grep.c:492
+#: builtin/grep.c:493
#, c-format
msgid "unable to grep from object of type %s"
msgstr "kann \"grep\" nicht mit Objekten des Typs %s durchführen"
-#: builtin/grep.c:550
+#: builtin/grep.c:551
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "Schalter '%c' erwartet einen numerischen Wert"
-#: builtin/grep.c:567
+#: builtin/grep.c:568
#, c-format
msgid "cannot open '%s'"
msgstr "kann '%s' nicht öffnen"
@@ -5381,169 +5574,173 @@ msgid "don't match patterns in binary files"
msgstr "findet keine Muster in Binärdateien"
#: builtin/grep.c:662
+msgid "process binary files with textconv filters"
+msgstr "verarbeitet binäre Dateien mit \"textconv\"-Filtern"
+
+#: builtin/grep.c:664
msgid "descend at most <depth> levels"
msgstr "durchläuft höchstens <Tiefe> Ebenen"
-#: builtin/grep.c:666
+#: builtin/grep.c:668
msgid "use extended POSIX regular expressions"
msgstr "verwendet erweiterte reguläre Ausdrücke aus POSIX"
-#: builtin/grep.c:669
+#: builtin/grep.c:671
msgid "use basic POSIX regular expressions (default)"
msgstr "verwendet grundlegende reguläre Ausdrücke aus POSIX (Standard)"
-#: builtin/grep.c:672
+#: builtin/grep.c:674
msgid "interpret patterns as fixed strings"
msgstr "interpretiert Muster als feste Zeichenketten"
-#: builtin/grep.c:675
+#: builtin/grep.c:677
msgid "use Perl-compatible regular expressions"
msgstr "verwendet Perl-kompatible reguläre Ausdrücke"
-#: builtin/grep.c:678
+#: builtin/grep.c:680
msgid "show line numbers"
msgstr "zeigt Zeilennummern"
-#: builtin/grep.c:679
+#: builtin/grep.c:681
msgid "don't show filenames"
msgstr "zeigt keine Dateinamen"
-#: builtin/grep.c:680
+#: builtin/grep.c:682
msgid "show filenames"
msgstr "zeigt Dateinamen"
-#: builtin/grep.c:682
+#: builtin/grep.c:684
msgid "show filenames relative to top directory"
msgstr "zeigt Dateinamen relativ zum Projektverzeichnis"
-#: builtin/grep.c:684
+#: builtin/grep.c:686
msgid "show only filenames instead of matching lines"
msgstr "zeigt nur Dateinamen anstatt übereinstimmende Zeilen"
-#: builtin/grep.c:686
+#: builtin/grep.c:688
msgid "synonym for --files-with-matches"
msgstr "Synonym für --files-with-matches"
-#: builtin/grep.c:689
+#: builtin/grep.c:691
msgid "show only the names of files without match"
msgstr "zeigt nur die Dateinamen ohne Übereinstimmungen"
-#: builtin/grep.c:691
+#: builtin/grep.c:693
msgid "print NUL after filenames"
msgstr "gibt NUL-Zeichen nach Dateinamen aus"
-#: builtin/grep.c:693
+#: builtin/grep.c:695
msgid "show the number of matches instead of matching lines"
msgstr "zeigt, anstatt der Zeilen, die Anzahl der übereinstimmenden Zeilen"
-#: builtin/grep.c:694
+#: builtin/grep.c:696
msgid "highlight matches"
msgstr "hebt Übereinstimmungen hervor"
-#: builtin/grep.c:696
+#: builtin/grep.c:698
msgid "print empty line between matches from different files"
msgstr ""
"gibt eine Leerzeile zwischen Übereinstimmungen in verschiedenen Dateien aus"
-#: builtin/grep.c:698
+#: builtin/grep.c:700
msgid "show filename only once above matches from same file"
msgstr ""
"zeigt den Dateinamen nur einmal oberhalb der Übereinstimmungen aus dieser "
"Datei an"
-#: builtin/grep.c:701
+#: builtin/grep.c:703
msgid "show <n> context lines before and after matches"
msgstr "zeigt <n> Zeilen vor und nach den Übereinstimmungen an"
-#: builtin/grep.c:704
+#: builtin/grep.c:706
msgid "show <n> context lines before matches"
msgstr "zeigt <n> Zeilen vor den Übereinstimmungen an"
-#: builtin/grep.c:706
+#: builtin/grep.c:708
msgid "show <n> context lines after matches"
msgstr "zeigt <n> Zeilen nach den Übereinstimmungen an"
-#: builtin/grep.c:707
+#: builtin/grep.c:709
msgid "shortcut for -C NUM"
msgstr "Kurzform für -C NUM"
-#: builtin/grep.c:710
+#: builtin/grep.c:712
msgid "show a line with the function name before matches"
msgstr "zeigt eine Zeile mit dem Funktionsnamen vor Übereinstimmungen an"
-#: builtin/grep.c:712
+#: builtin/grep.c:714
msgid "show the surrounding function"
msgstr "zeigt die umgebende Funktion an"
-#: builtin/grep.c:715
+#: builtin/grep.c:717
msgid "read patterns from file"
msgstr "liest Muster von einer Datei"
-#: builtin/grep.c:717
+#: builtin/grep.c:719
msgid "match <pattern>"
msgstr "findet <Muster>"
-#: builtin/grep.c:719
+#: builtin/grep.c:721
msgid "combine patterns specified with -e"
msgstr "kombiniert Muster, die mit -e angegeben wurden"
-#: builtin/grep.c:731
+#: builtin/grep.c:733
msgid "indicate hit with exit status without output"
msgstr "zeigt Übereinstimmungen nur durch Beendigungsstatus an"
-#: builtin/grep.c:733
+#: builtin/grep.c:735
msgid "show only matches from files that match all patterns"
msgstr "zeigt nur Übereinstimmungen von Dateien, die allen Mustern entsprechen"
-#: builtin/grep.c:735
+#: builtin/grep.c:737
msgid "show parse tree for grep expression"
msgstr "zeigt geparstes Verzeichnis für \"grep\"-Ausdruck"
-#: builtin/grep.c:739
+#: builtin/grep.c:741
msgid "pager"
msgstr "Anzeigeprogramm"
-#: builtin/grep.c:739
+#: builtin/grep.c:741
msgid "show matching files in the pager"
msgstr "zeigt Dateien mit Übereinstimmungen im Anzeigeprogramm"
-#: builtin/grep.c:742
+#: builtin/grep.c:744
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "erlaubt den Aufruf von grep(1) (von dieser Programmversion ignoriert)"
-#: builtin/grep.c:743 builtin/show-ref.c:188
+#: builtin/grep.c:745 builtin/show-ref.c:187
msgid "show usage"
msgstr "zeigt Verwendung"
-#: builtin/grep.c:810
+#: builtin/grep.c:812
msgid "no pattern given."
msgstr "keine Muster angegeben"
-#: builtin/grep.c:865
+#: builtin/grep.c:870
msgid "--open-files-in-pager only works on the worktree"
msgstr ""
"Die Option --open-files-in-pager kann nur innerhalb des "
"Arbeitsverzeichnisses verwendet werden."
-#: builtin/grep.c:888
+#: builtin/grep.c:893
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:893
+#: builtin/grep.c:898
msgid "--no-index or --untracked cannot be used with revs."
msgstr ""
"Die Optionen --no-index und --untracked können nicht mit Commits verwendet "
"werden."
-#: builtin/grep.c:896
+#: builtin/grep.c:901
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:904
+#: builtin/grep.c:909
msgid "both --cached and trees are given."
msgstr "Die Option --cached kann nicht mit \"Tree\"-Objekten verwendet werden."
@@ -5799,8 +5996,8 @@ msgstr "ernsthafte Inkonsistenz nach Dekomprimierung"
msgid "SHA1 COLLISION FOUND WITH %s !"
msgstr "SHA1 KOLLISION MIT %s GEFUNDEN !"
-#: builtin/index-pack.c:669 builtin/pack-objects.c:170
-#: builtin/pack-objects.c:262
+#: builtin/index-pack.c:669 builtin/pack-objects.c:171
+#: builtin/pack-objects.c:263
#, c-format
msgid "unable to read %s"
msgstr "kann %s nicht lesen"
@@ -5829,155 +6026,155 @@ msgstr "Fehler in Objekt"
msgid "Not all child objects of %s are reachable"
msgstr "Nicht alle Kind-Objekte von %s sind erreichbar"
-#: builtin/index-pack.c:838 builtin/index-pack.c:868
+#: builtin/index-pack.c:839 builtin/index-pack.c:869
msgid "failed to apply delta"
msgstr "Konnte Dateiunterschied nicht anwenden"
-#: builtin/index-pack.c:1009
+#: builtin/index-pack.c:1010
msgid "Receiving objects"
msgstr "Empfange Objekte"
-#: builtin/index-pack.c:1009
+#: builtin/index-pack.c:1010
msgid "Indexing objects"
msgstr "Indiziere Objekte"
-#: builtin/index-pack.c:1035
+#: builtin/index-pack.c:1036
msgid "pack is corrupted (SHA1 mismatch)"
msgstr "Paket ist beschädigt (SHA1 unterschiedlich)"
-#: builtin/index-pack.c:1040
+#: builtin/index-pack.c:1041
msgid "cannot fstat packfile"
msgstr "kann Paketdatei nicht lesen"
-#: builtin/index-pack.c:1043
+#: builtin/index-pack.c:1044
msgid "pack has junk at the end"
msgstr "Paketende enthält nicht verwendbaren Inhalt"
-#: builtin/index-pack.c:1054
+#: builtin/index-pack.c:1055
msgid "confusion beyond insanity in parse_pack_objects()"
msgstr "Fehler beim Ausführen von \"parse_pack_objects()\""
-#: builtin/index-pack.c:1077
+#: builtin/index-pack.c:1078
msgid "Resolving deltas"
msgstr "Löse Unterschiede auf"
-#: builtin/index-pack.c:1087
+#: builtin/index-pack.c:1088
#, c-format
msgid "unable to create thread: %s"
msgstr "kann Thread nicht erzeugen: %s"
-#: builtin/index-pack.c:1129
+#: builtin/index-pack.c:1130
msgid "confusion beyond insanity"
msgstr "Fehler beim Auflösen der Unterschiede"
-#: builtin/index-pack.c:1137
+#: builtin/index-pack.c:1138
#, c-format
msgid "completed with %d local objects"
msgstr "vervollständigt mit %d lokalen Objekten"
-#: builtin/index-pack.c:1147
+#: builtin/index-pack.c:1148
#, c-format
msgid "Unexpected tail checksum for %s (disk corruption?)"
msgstr "Unerwartete Prüfsumme für %s (Festplattenfehler?)"
-#: builtin/index-pack.c:1151
+#: builtin/index-pack.c:1152
#, c-format
msgid "pack has %d unresolved delta"
msgid_plural "pack has %d unresolved deltas"
msgstr[0] "Paket hat %d unaufgelöste Unterschied"
msgstr[1] "Paket hat %d unaufgelöste Unterschiede"
-#: builtin/index-pack.c:1176
+#: builtin/index-pack.c:1177
#, c-format
msgid "unable to deflate appended object (%d)"
msgstr "Konnte angehängtes Objekt (%d) nicht komprimieren"
-#: builtin/index-pack.c:1255
+#: builtin/index-pack.c:1256
#, c-format
msgid "local object %s is corrupt"
msgstr "lokales Objekt %s ist beschädigt"
-#: builtin/index-pack.c:1279
+#: builtin/index-pack.c:1280
msgid "error while closing pack file"
msgstr "Fehler beim Schließen der Paketdatei"
-#: builtin/index-pack.c:1292
+#: builtin/index-pack.c:1293
#, c-format
msgid "cannot write keep file '%s'"
msgstr "Kann Paketbeschreibungsdatei '%s' nicht schreiben"
-#: builtin/index-pack.c:1300
+#: builtin/index-pack.c:1301
#, c-format
msgid "cannot close written keep file '%s'"
msgstr "Kann eben erstellte Paketbeschreibungsdatei '%s' nicht schließen"
-#: builtin/index-pack.c:1313
+#: builtin/index-pack.c:1314
msgid "cannot store pack file"
msgstr "Kann Paketdatei nicht speichern"
-#: builtin/index-pack.c:1324
+#: builtin/index-pack.c:1325
msgid "cannot store index file"
msgstr "Kann Indexdatei nicht speichern"
-#: builtin/index-pack.c:1357
+#: builtin/index-pack.c:1358
#, c-format
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "\"pack.indexversion=%<PRIu32>\" ist ungültig"
-#: builtin/index-pack.c:1363
+#: builtin/index-pack.c:1364
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr "ungültige Anzahl von Threads angegeben (%d)"
-#: builtin/index-pack.c:1367 builtin/index-pack.c:1545
+#: builtin/index-pack.c:1368 builtin/index-pack.c:1546
#, c-format
msgid "no threads support, ignoring %s"
msgstr "keine Unterstützung von Threads, '%s' wird ignoriert"
-#: builtin/index-pack.c:1425
+#: builtin/index-pack.c:1426
#, c-format
msgid "Cannot open existing pack file '%s'"
msgstr "Kann existierende Paketdatei '%s' nicht öffnen"
-#: builtin/index-pack.c:1427
+#: builtin/index-pack.c:1428
#, c-format
msgid "Cannot open existing pack idx file for '%s'"
msgstr "Kann existierende Indexdatei für Paket '%s' nicht öffnen"
-#: builtin/index-pack.c:1474
+#: builtin/index-pack.c:1475
#, c-format
msgid "non delta: %d object"
msgid_plural "non delta: %d objects"
msgstr[0] "kein Unterschied: %d Objekt"
msgstr[1] "kein Unterschied: %d Objekte"
-#: builtin/index-pack.c:1481
+#: builtin/index-pack.c:1482
#, c-format
msgid "chain length = %d: %lu object"
msgid_plural "chain length = %d: %lu objects"
msgstr[0] "Länge der Objekt-Liste = %d: %lu Objekt"
msgstr[1] "Länge der Objekt-Liste = %d: %lu Objekte"
-#: builtin/index-pack.c:1509
+#: builtin/index-pack.c:1510
msgid "Cannot come back to cwd"
msgstr "Kann nicht zurück zu Arbeitsverzeichnis wechseln"
-#: builtin/index-pack.c:1557 builtin/index-pack.c:1560
-#: builtin/index-pack.c:1572 builtin/index-pack.c:1576
+#: builtin/index-pack.c:1558 builtin/index-pack.c:1561
+#: builtin/index-pack.c:1573 builtin/index-pack.c:1577
#, c-format
msgid "bad %s"
msgstr "%s ist ungültig"
-#: builtin/index-pack.c:1590
+#: builtin/index-pack.c:1591
msgid "--fix-thin cannot be used without --stdin"
msgstr "Die Option --fix-thin kann nicht ohne --stdin verwendet werden."
-#: builtin/index-pack.c:1594 builtin/index-pack.c:1604
+#: builtin/index-pack.c:1595 builtin/index-pack.c:1605
#, c-format
msgid "packfile name '%s' does not end with '.pack'"
msgstr "Name der Paketdatei '%s' endet nicht mit '.pack'"
-#: builtin/index-pack.c:1613
+#: builtin/index-pack.c:1614
msgid "--verify with no packfile name given"
msgstr "Die Option --verify wurde ohne Namen der Paketdatei angegeben."
@@ -6066,11 +6263,6 @@ msgstr "kann nicht mit Dateityp %d umgehen"
msgid "unable to move %s to %s"
msgstr "Konnte %s nicht nach %s verschieben"
-#: builtin/init-db.c:363
-#, c-format
-msgid "Could not create git link %s"
-msgstr "Konnte git-Verweis %s nicht erstellen"
-
#.
#. * TRANSLATORS: The first '%s' is either "Reinitialized
#. * existing" or "Initialized empty", the second " shared" or
@@ -6113,7 +6305,7 @@ msgstr "Berechtigungen"
msgid "specify that the git repository is to be shared amongst several users"
msgstr "gibt an, dass das Git-Repository mit mehreren Benutzern geteilt wird"
-#: builtin/init-db.c:493 builtin/prune-packed.c:75
+#: builtin/init-db.c:493 builtin/prune-packed.c:75 builtin/repack.c:155
msgid "be quiet"
msgstr "weniger Ausgaben"
@@ -6153,249 +6345,249 @@ msgstr "git log [<Optionen>] [Commitbereich>] [[--] <Pfad>...]\n"
msgid " or: git show [options] <object>..."
msgstr " oder: git show [Optionen] <Objekt>..."
-#: builtin/log.c:124
+#: builtin/log.c:125
msgid "suppress diff output"
msgstr "unterdrückt Ausgabe der Unterschiede"
-#: builtin/log.c:125
+#: builtin/log.c:126
msgid "show source"
msgstr "zeigt Quelle"
-#: builtin/log.c:126
+#: builtin/log.c:127
msgid "Use mail map file"
msgstr "verwendet \"mailmap\"-Datei"
-#: builtin/log.c:127
+#: builtin/log.c:128
msgid "decorate options"
msgstr "decorate-Optionen"
-#: builtin/log.c:230
+#: builtin/log.c:231
#, c-format
msgid "Final output: %d %s\n"
msgstr "letzte Ausgabe: %d %s\n"
-#: builtin/log.c:453 builtin/log.c:545
+#: builtin/log.c:473 builtin/log.c:565
#, c-format
msgid "Could not read object %s"
msgstr "Kann Objekt %s nicht lesen."
-#: builtin/log.c:569
+#: builtin/log.c:589
#, c-format
msgid "Unknown type: %d"
msgstr "Unbekannter Typ: %d"
-#: builtin/log.c:669
+#: builtin/log.c:689
msgid "format.headers without value"
msgstr "format.headers ohne Wert"
-#: builtin/log.c:751
+#: builtin/log.c:771
msgid "name of output directory is too long"
msgstr "Name des Ausgabeverzeichnisses ist zu lang."
-#: builtin/log.c:767
+#: builtin/log.c:787
#, c-format
msgid "Cannot open patch file %s"
msgstr "Kann Patch-Datei %s nicht öffnen"
-#: builtin/log.c:781
+#: builtin/log.c:801
msgid "Need exactly one range."
msgstr "Brauche genau einen Commit-Bereich."
-#: builtin/log.c:789
+#: builtin/log.c:809
msgid "Not a range."
msgstr "Kein Commit-Bereich."
-#: builtin/log.c:891
+#: builtin/log.c:911
msgid "Cover letter needs email format"
msgstr "Anschreiben benötigt E-Mail-Format"
-#: builtin/log.c:967
+#: builtin/log.c:987
#, c-format
msgid "insane in-reply-to: %s"
msgstr "ungültiges in-reply-to: %s"
-#: builtin/log.c:995
+#: builtin/log.c:1015
msgid "git format-patch [options] [<since> | <revision range>]"
msgstr "git format-patch [Optionen] [<seit> | <Commitbereich>]"
-#: builtin/log.c:1040
+#: builtin/log.c:1060
msgid "Two output directories?"
msgstr "Zwei Ausgabeverzeichnisse?"
-#: builtin/log.c:1155
+#: builtin/log.c:1175
msgid "use [PATCH n/m] even with a single patch"
msgstr "verwendet [PATCH n/m] auch mit einzelnem Patch"
-#: builtin/log.c:1158
+#: builtin/log.c:1178
msgid "use [PATCH] even with multiple patches"
msgstr "verwendet [PATCH] auch mit mehreren Patches"
-#: builtin/log.c:1162
+#: builtin/log.c:1182
msgid "print patches to standard out"
msgstr "Ausgabe der Patches in Standard-Ausgabe"
-#: builtin/log.c:1164
+#: builtin/log.c:1184
msgid "generate a cover letter"
msgstr "erzeugt ein Deckblatt"
-#: builtin/log.c:1166
+#: builtin/log.c:1186
msgid "use simple number sequence for output file names"
msgstr "verwendet einfache Nummernfolge für die Namen der Ausgabedateien"
-#: builtin/log.c:1167
+#: builtin/log.c:1187
msgid "sfx"
msgstr "Dateiendung"
-#: builtin/log.c:1168
+#: builtin/log.c:1188
msgid "use <sfx> instead of '.patch'"
msgstr "verwendet <Dateiendung> anstatt '.patch'"
-#: builtin/log.c:1170
+#: builtin/log.c:1190
msgid "start numbering patches at <n> instead of 1"
msgstr "beginnt die Nummerierung der Patches bei <n> anstatt bei 1"
-#: builtin/log.c:1172
+#: builtin/log.c:1192
msgid "mark the series as Nth re-roll"
msgstr "kennzeichnet die Serie als n-te Fassung"
-#: builtin/log.c:1174
+#: builtin/log.c:1194
msgid "Use [<prefix>] instead of [PATCH]"
msgstr "verwendet [<Prefix>] anstatt [PATCH]"
-#: builtin/log.c:1177
+#: builtin/log.c:1197
msgid "store resulting files in <dir>"
msgstr "speichert erzeugte Dateien in <Verzeichnis>"
-#: builtin/log.c:1180
+#: builtin/log.c:1200
msgid "don't strip/add [PATCH]"
msgstr "[PATCH] wird nicht entfernt/hinzugefügt"
-#: builtin/log.c:1183
+#: builtin/log.c:1203
msgid "don't output binary diffs"
msgstr "gibt keine binären Unterschiede aus"
-#: builtin/log.c:1185
+#: builtin/log.c:1205
msgid "don't include a patch matching a commit upstream"
msgstr ""
"schließt keine Patches ein, die einem Commit im Upstream-Branch entsprechen"
-#: builtin/log.c:1187
+#: builtin/log.c:1207
msgid "show patch format instead of default (patch + stat)"
msgstr "zeigt Patchformat anstatt des Standards (Patch + Zusammenfassung)"
-#: builtin/log.c:1189
+#: builtin/log.c:1209
msgid "Messaging"
msgstr "Email-Einstellungen"
-#: builtin/log.c:1190
+#: builtin/log.c:1210
msgid "header"
msgstr "Header"
-#: builtin/log.c:1191
+#: builtin/log.c:1211
msgid "add email header"
msgstr "fügt Email-Header hinzu"
-#: builtin/log.c:1192 builtin/log.c:1194
+#: builtin/log.c:1212 builtin/log.c:1214
msgid "email"
msgstr "Email"
-#: builtin/log.c:1192
+#: builtin/log.c:1212
msgid "add To: header"
msgstr "fügt \"To:\"-Header hinzu"
-#: builtin/log.c:1194
+#: builtin/log.c:1214
msgid "add Cc: header"
msgstr "fügt \"Cc:\"-Header hinzu"
-#: builtin/log.c:1196
+#: builtin/log.c:1216
msgid "ident"
msgstr "Ident"
-#: builtin/log.c:1197
+#: builtin/log.c:1217
msgid "set From address to <ident> (or committer ident if absent)"
msgstr ""
"setzt \"From\"-Adresse auf <Ident> (oder Ident des Commit-Erstellers,wenn "
"fehlend)"
-#: builtin/log.c:1199
+#: builtin/log.c:1219
msgid "message-id"
msgstr "message-id"
-#: builtin/log.c:1200
+#: builtin/log.c:1220
msgid "make first mail a reply to <message-id>"
msgstr "macht aus erster Email eine Antwort zu <message-id>"
-#: builtin/log.c:1201 builtin/log.c:1204
+#: builtin/log.c:1221 builtin/log.c:1224
msgid "boundary"
msgstr "Grenze"
-#: builtin/log.c:1202
+#: builtin/log.c:1222
msgid "attach the patch"
msgstr "hängt einen Patch an"
-#: builtin/log.c:1205
+#: builtin/log.c:1225
msgid "inline the patch"
msgstr "fügt den Patch direkt in die Nachricht ein"
-#: builtin/log.c:1209
+#: builtin/log.c:1229
msgid "enable message threading, styles: shallow, deep"
msgstr "aktiviert Nachrichtenverkettung, Stile: shallow, deep"
-#: builtin/log.c:1211
+#: builtin/log.c:1231
msgid "signature"
msgstr "Signatur"
-#: builtin/log.c:1212
+#: builtin/log.c:1232
msgid "add a signature"
msgstr "fügt eine Signatur hinzu"
-#: builtin/log.c:1214
+#: builtin/log.c:1233
msgid "don't print the patch filenames"
msgstr "zeigt keine Dateinamen der Patches"
-#: builtin/log.c:1288
+#: builtin/log.c:1307
#, c-format
msgid "invalid ident line: %s"
msgstr "Ungültige Identifikationszeile: %s"
-#: builtin/log.c:1303
+#: builtin/log.c:1322
msgid "-n and -k are mutually exclusive."
msgstr "Die Optionen -n und -k schließen sich gegenseitig aus."
-#: builtin/log.c:1305
+#: builtin/log.c:1324
msgid "--subject-prefix and -k are mutually exclusive."
msgstr "Die Optionen --subject-prefix und -k schließen sich gegenseitig aus."
-#: builtin/log.c:1313
+#: builtin/log.c:1332
msgid "--name-only does not make sense"
msgstr "Die Option --name-only kann nicht verwendet werden."
-#: builtin/log.c:1315
+#: builtin/log.c:1334
msgid "--name-status does not make sense"
msgstr "Die Option --name-status kann nicht verwendet werden."
-#: builtin/log.c:1317
+#: builtin/log.c:1336
msgid "--check does not make sense"
msgstr "Die Option --check kann nicht verwendet werden."
-#: builtin/log.c:1340
+#: builtin/log.c:1359
msgid "standard output, or directory, which one?"
msgstr "Standard-Ausgabe oder Verzeichnis, welches von beidem?"
-#: builtin/log.c:1342
+#: builtin/log.c:1361
#, c-format
msgid "Could not create directory '%s'"
msgstr "Konnte Verzeichnis '%s' nicht erstellen."
-#: builtin/log.c:1490
+#: builtin/log.c:1509
msgid "Failed to create output files"
msgstr "Fehler beim Erstellen der Ausgabedateien."
-#: builtin/log.c:1539
+#: builtin/log.c:1558
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<Upstream> [<Branch> [<Limit>]]]"
-#: builtin/log.c:1594
+#: builtin/log.c:1613
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -6403,143 +6595,143 @@ msgstr ""
"Konnte gefolgten Remote-Branch nicht finden, bitte geben Sie <Upstream> "
"manuell an.\n"
-#: builtin/log.c:1607 builtin/log.c:1609 builtin/log.c:1621
+#: builtin/log.c:1626 builtin/log.c:1628 builtin/log.c:1640
#, c-format
msgid "Unknown commit %s"
msgstr "Unbekannter Commit %s"
-#: builtin/ls-files.c:408
+#: builtin/ls-files.c:398
msgid "git ls-files [options] [<file>...]"
msgstr "git ls-files [Optionen] [<Datei>...]"
-#: builtin/ls-files.c:465
+#: builtin/ls-files.c:455
msgid "identify the file status with tags"
msgstr "zeigt den Dateistatus mit Tags"
-#: builtin/ls-files.c:467
+#: builtin/ls-files.c:457
msgid "use lowercase letters for 'assume unchanged' files"
msgstr ""
"verwendet Kleinbuchstaben für Dateien mit 'assume unchanged' Markierung"
-#: builtin/ls-files.c:469
+#: builtin/ls-files.c:459
msgid "show cached files in the output (default)"
msgstr "zeigt zwischengespeicherten Dateien in der Ausgabe an (Standard)"
-#: builtin/ls-files.c:471
+#: builtin/ls-files.c:461
msgid "show deleted files in the output"
msgstr "zeigt entfernte Dateien in der Ausgabe an"
-#: builtin/ls-files.c:473
+#: builtin/ls-files.c:463
msgid "show modified files in the output"
msgstr "zeigt geänderte Dateien in der Ausgabe an"
-#: builtin/ls-files.c:475
+#: builtin/ls-files.c:465
msgid "show other files in the output"
msgstr "zeigt sonstige Dateien in der Ausgabe an"
-#: builtin/ls-files.c:477
+#: builtin/ls-files.c:467
msgid "show ignored files in the output"
msgstr "zeigt ignorierte Dateien in der Ausgabe an"
-#: builtin/ls-files.c:480
+#: builtin/ls-files.c:470
msgid "show staged contents' object name in the output"
msgstr ""
"zeigt Objektnamen von Inhalten, die zum Commit vorgemerkt sind, in der "
"Ausgabe an"
-#: builtin/ls-files.c:482
+#: builtin/ls-files.c:472
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:484
+#: builtin/ls-files.c:474
msgid "show 'other' directories' name only"
msgstr "zeigt nur Namen von 'sonstigen' Verzeichnissen an"
-#: builtin/ls-files.c:487
+#: builtin/ls-files.c:477
msgid "don't show empty directories"
msgstr "zeigt keine leeren Verzeichnisse an"
-#: builtin/ls-files.c:490
+#: builtin/ls-files.c:480
msgid "show unmerged files in the output"
msgstr "zeigt nicht zusammengeführte Dateien in der Ausgabe an"
-#: builtin/ls-files.c:492
+#: builtin/ls-files.c:482
msgid "show resolve-undo information"
msgstr "zeigt 'resolve-undo' Informationen an"
-#: builtin/ls-files.c:494
+#: builtin/ls-files.c:484
msgid "skip files matching pattern"
msgstr "lässt Dateien aus, die einem Muster entsprechen"
-#: builtin/ls-files.c:497
+#: builtin/ls-files.c:487
msgid "exclude patterns are read from <file>"
msgstr "schließt Muster, gelesen von <Datei>, aus"
-#: builtin/ls-files.c:500
+#: builtin/ls-files.c:490
msgid "read additional per-directory exclude patterns in <file>"
msgstr "liest zusätzliche pro-Verzeichnis Auschlussmuster aus <Datei>"
-#: builtin/ls-files.c:502
+#: builtin/ls-files.c:492
msgid "add the standard git exclusions"
msgstr "fügt die standardmäßigen Git-Ausschlüsse hinzu"
-#: builtin/ls-files.c:505
+#: builtin/ls-files.c:495
msgid "make the output relative to the project top directory"
msgstr "Ausgabe relativ zum Projektverzeichnis"
-#: builtin/ls-files.c:508
+#: builtin/ls-files.c:498
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 Staging-Area "
"befindet"
-#: builtin/ls-files.c:509
+#: builtin/ls-files.c:499
msgid "tree-ish"
msgstr "Commit-Referenz"
-#: builtin/ls-files.c:510
+#: builtin/ls-files.c:500
msgid "pretend that paths removed since <tree-ish> are still present"
msgstr ""
"gibt vor, dass Pfade, die seit <Commit-Referenz> gelöscht wurden, immer noch "
"vorhanden sind"
-#: builtin/ls-files.c:512
+#: builtin/ls-files.c:502
msgid "show debugging data"
msgstr "zeigt Ausgaben zur Fehlersuche an"
-#: builtin/ls-tree.c:27
+#: builtin/ls-tree.c:28
msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
msgstr "git ls-tree [<Optionen>] <Commit-Referenz> [<Pfad>...]"
-#: builtin/ls-tree.c:125
+#: builtin/ls-tree.c:126
msgid "only show trees"
msgstr "zeigt nur Verzeichnisse an"
-#: builtin/ls-tree.c:127
+#: builtin/ls-tree.c:128
msgid "recurse into subtrees"
msgstr "führt Rekursion in Unterverzeichnissen durch"
-#: builtin/ls-tree.c:129
+#: builtin/ls-tree.c:130
msgid "show trees when recursing"
msgstr "zeigt Verzeichnisse bei Rekursion an"
-#: builtin/ls-tree.c:132
+#: builtin/ls-tree.c:133
msgid "terminate entries with NUL byte"
msgstr "schließt Einträge mit NUL-Byte ab"
-#: builtin/ls-tree.c:133
+#: builtin/ls-tree.c:134
msgid "include object size"
msgstr "schließt Objektgröße ein"
-#: builtin/ls-tree.c:135 builtin/ls-tree.c:137
+#: builtin/ls-tree.c:136 builtin/ls-tree.c:138
msgid "list only filenames"
msgstr "listet nur Dateinamen auf"
-#: builtin/ls-tree.c:140
+#: builtin/ls-tree.c:141
msgid "use full path names"
msgstr "verwendet vollständige Pfadnamen"
-#: builtin/ls-tree.c:142
+#: builtin/ls-tree.c:143
msgid "list entire tree; not just current directory (implies --full-name)"
msgstr ""
"listet das gesamte Verzeichnis auf; nicht nur das aktuelle Verzeichnis "
@@ -6618,7 +6810,7 @@ msgstr "bricht ab, wenn kein Vorspulen möglich ist"
msgid "Verify that the named commit has a valid GPG signature"
msgstr "überprüft den genannten Commit auf eine gültige GPG-Signatur"
-#: builtin/merge.c:219 builtin/notes.c:738 builtin/revert.c:114
+#: builtin/merge.c:219 builtin/notes.c:738 builtin/revert.c:89
msgid "strategy"
msgstr "Strategie"
@@ -6994,76 +7186,87 @@ msgstr "erlaubt fehlende Objekte"
msgid "allow creation of more than one tree"
msgstr "erlaubt die Erstellung von mehr als einem \"Tree\"-Objekt"
-#: builtin/mv.c:14
+#: builtin/mv.c:15
msgid "git mv [options] <source>... <destination>"
msgstr "git mv [Optionen] <Quelle>... <Ziel>"
-#: builtin/mv.c:64
+#: builtin/mv.c:67
msgid "force move/rename even if target exists"
msgstr "erzwingt Verschieben/Umbenennen, auch wenn das Ziel existiert"
-#: builtin/mv.c:65
+#: builtin/mv.c:68
msgid "skip move/rename errors"
msgstr "überspringt Fehler beim Verschieben oder Umbenennen"
-#: builtin/mv.c:108
+#: builtin/mv.c:113
#, c-format
msgid "Checking rename of '%s' to '%s'\n"
msgstr "Prüfe Umbenennung von '%s' nach '%s'\n"
-#: builtin/mv.c:112
+#: builtin/mv.c:117
msgid "bad source"
msgstr "ungültige Quelle"
-#: builtin/mv.c:115
+#: builtin/mv.c:120
msgid "can not move directory into itself"
msgstr "kann Verzeichnis nicht in sich selbst verschieben"
-#: builtin/mv.c:118
+#: builtin/mv.c:123
msgid "cannot move directory over file"
msgstr "kann Verzeichnis nicht über Datei verschieben"
-#: builtin/mv.c:128
+#: builtin/mv.c:129
+#, c-format
+msgid "Huh? Directory %s is in index and no submodule?"
+msgstr "Huh? Verzeichnis %s ist zum Commit vorgemerkt und kein Submodul?"
+
+#: builtin/mv.c:131 builtin/rm.c:318
+msgid "Please, stage your changes to .gitmodules or stash them to proceed"
+msgstr ""
+"Bitte merken Sie Ihre Änderungen in .gitmodules zum Commit vor oder benutzen\n"
+"Sie \"stash\" um fortzufahren."
+
+#: builtin/mv.c:147
#, c-format
msgid "Huh? %.*s is in index?"
msgstr "Huh? %.*s ist zum Commit vorgemerkt?"
-#: builtin/mv.c:140
+#: builtin/mv.c:159
msgid "source directory is empty"
msgstr "Quellverzeichnis ist leer"
-#: builtin/mv.c:171
+#: builtin/mv.c:191
msgid "not under version control"
msgstr "nicht unter Versionskontrolle"
-#: builtin/mv.c:173
+#: builtin/mv.c:193
msgid "destination exists"
msgstr "Ziel existiert bereits"
-#: builtin/mv.c:181
+#: builtin/mv.c:201
#, c-format
msgid "overwriting '%s'"
msgstr "überschreibe '%s'"
-#: builtin/mv.c:184
+#: builtin/mv.c:204
msgid "Cannot overwrite"
msgstr "Kann nicht überschreiben"
-#: builtin/mv.c:187
+#: builtin/mv.c:207
msgid "multiple sources for the same target"
msgstr "mehrere Quellen für das selbe Ziel"
-#: builtin/mv.c:202
+#: builtin/mv.c:222
#, c-format
msgid "%s, source=%s, destination=%s"
msgstr "%s, Quelle=%s, Ziel=%s"
-#: builtin/mv.c:212
+#: builtin/mv.c:232
#, c-format
msgid "Renaming %s to %s\n"
msgstr "Benenne %s nach %s um\n"
-#: builtin/mv.c:215 builtin/remote.c:731
+#: builtin/mv.c:235 builtin/remote.c:731 builtin/repack.c:330
#, c-format
msgid "renaming '%s' failed"
msgstr "Umbenennung von '%s' fehlgeschlagen"
@@ -7101,8 +7304,8 @@ msgid "read from stdin"
msgstr "liest von der Standard-Eingabe"
#: builtin/name-rev.c:320
-msgid "allow to print `undefined` names"
-msgstr "erlaubt Ausgabe von `undefinierten` Namen"
+msgid "allow to print `undefined` names (default)"
+msgstr "erlaubt Ausgabe von `undefinierten` Namen (Standard)"
#: builtin/name-rev.c:326
msgid "dereference tags in the input (internal use)"
@@ -7258,12 +7461,12 @@ msgstr "Konnte Notiz-Objekt nicht schreiben"
msgid "The note contents has been left in %s"
msgstr "Die Notiz-Inhalte wurden in %s belassen"
-#: builtin/notes.c:248 builtin/tag.c:540
+#: builtin/notes.c:248 builtin/tag.c:537
#, c-format
msgid "cannot read '%s'"
msgstr "kann '%s' nicht lesen"
-#: builtin/notes.c:250 builtin/tag.c:543
+#: builtin/notes.c:250 builtin/tag.c:540
#, c-format
msgid "could not open or read '%s'"
msgstr "konnte '%s' nicht öffnen oder lesen"
@@ -7271,7 +7474,7 @@ msgstr "konnte '%s' nicht öffnen oder lesen"
#: builtin/notes.c:269 builtin/notes.c:316 builtin/notes.c:318
#: builtin/notes.c:378 builtin/notes.c:432 builtin/notes.c:515
#: builtin/notes.c:520 builtin/notes.c:595 builtin/notes.c:637
-#: builtin/notes.c:839 builtin/tag.c:556
+#: builtin/notes.c:839 builtin/tag.c:553
#, c-format
msgid "Failed to resolve '%s' as a valid ref."
msgstr "Konnte '%s' nicht als gültige Referenz auflösen."
@@ -7448,153 +7651,153 @@ msgid "git pack-objects [options...] base-name [< ref-list | < object-list]"
msgstr ""
"git pack-objects [Optionen...] Basis-Name [< Referenzliste | < Objektliste]"
-#: builtin/pack-objects.c:183 builtin/pack-objects.c:186
+#: builtin/pack-objects.c:184 builtin/pack-objects.c:187
#, c-format
msgid "deflate error (%d)"
msgstr "Fehler beim Komprimieren (%d)"
-#: builtin/pack-objects.c:2397
+#: builtin/pack-objects.c:2398
#, c-format
msgid "unsupported index version %s"
msgstr "Nicht unterstützte Staging-Area-Version %s"
-#: builtin/pack-objects.c:2401
+#: builtin/pack-objects.c:2402
#, c-format
msgid "bad index version '%s'"
msgstr "Ungültige Staging-Area-Version '%s'"
-#: builtin/pack-objects.c:2424
+#: builtin/pack-objects.c:2425
#, c-format
msgid "option %s does not accept negative form"
msgstr "Option %s akzeptiert keine negative Form"
-#: builtin/pack-objects.c:2428
+#: builtin/pack-objects.c:2429
#, c-format
msgid "unable to parse value '%s' for option %s"
msgstr "konnte Wert '%s' für Option %s nicht parsen"
-#: builtin/pack-objects.c:2447
+#: builtin/pack-objects.c:2448
msgid "do not show progress meter"
msgstr "zeigt keine Fortschrittsanzeige"
-#: builtin/pack-objects.c:2449
+#: builtin/pack-objects.c:2450
msgid "show progress meter"
msgstr "zeigt Fortschrittsanzeige"
-#: builtin/pack-objects.c:2451
+#: builtin/pack-objects.c:2452
msgid "show progress meter during object writing phase"
msgstr "zeigt Forschrittsanzeige während der Phase des Schreibens der Objekte"
-#: builtin/pack-objects.c:2454
+#: builtin/pack-objects.c:2455
msgid "similar to --all-progress when progress meter is shown"
msgstr "ähnlich zu --all-progress wenn Fortschrittsanzeige darstellt wird"
-#: builtin/pack-objects.c:2455
+#: builtin/pack-objects.c:2456
msgid "version[,offset]"
msgstr "version[,offset]"
-#: builtin/pack-objects.c:2456
+#: builtin/pack-objects.c:2457
msgid "write the pack index file in the specified idx format version"
msgstr ""
"schreibt die Index-Datei des Paketes in der angegebenen Indexformat-Version"
-#: builtin/pack-objects.c:2459
+#: builtin/pack-objects.c:2460
msgid "maximum size of each output pack file"
msgstr "maximale Größe für jede ausgegebene Paketdatei"
-#: builtin/pack-objects.c:2461
+#: builtin/pack-objects.c:2462
msgid "ignore borrowed objects from alternate object store"
msgstr "ignoriert geliehene Objekte von alternativem Objektspeicher"
-#: builtin/pack-objects.c:2463
+#: builtin/pack-objects.c:2464
msgid "ignore packed objects"
msgstr "ignoriert gepackte Objekte"
-#: builtin/pack-objects.c:2465
+#: builtin/pack-objects.c:2466
msgid "limit pack window by objects"
msgstr "begrenzt Paketfenster durch Objekte"
-#: builtin/pack-objects.c:2467
+#: builtin/pack-objects.c:2468
msgid "limit pack window by memory in addition to object limit"
msgstr "begrenzt Paketfenster, zusätzlich zur Objektbegrenzung, durch Speicher"
-#: builtin/pack-objects.c:2469
+#: builtin/pack-objects.c:2470
msgid "maximum length of delta chain allowed in the resulting pack"
msgstr ""
"maximale Länge der erlaubten Differenzverkettung im resultierenden Paket"
-#: builtin/pack-objects.c:2471
+#: builtin/pack-objects.c:2472
msgid "reuse existing deltas"
msgstr "verwendet existierende Unterschiede wieder"
-#: builtin/pack-objects.c:2473
+#: builtin/pack-objects.c:2474
msgid "reuse existing objects"
msgstr "verwendet existierende Objekte wieder"
-#: builtin/pack-objects.c:2475
+#: builtin/pack-objects.c:2476
msgid "use OFS_DELTA objects"
msgstr "verwendet OFS_DELTA Objekte"
-#: builtin/pack-objects.c:2477
+#: builtin/pack-objects.c:2478
msgid "use threads when searching for best delta matches"
msgstr ""
"verwendet Threads bei der Suche nach den besten Übereinstimmungen bei "
"Unterschieden"
-#: builtin/pack-objects.c:2479
+#: builtin/pack-objects.c:2480
msgid "do not create an empty pack output"
msgstr "erzeugt keine leeren Pakete"
-#: builtin/pack-objects.c:2481
+#: builtin/pack-objects.c:2482
msgid "read revision arguments from standard input"
msgstr "liest Argumente bezüglich Commits von der Standard-Eingabe"
-#: builtin/pack-objects.c:2483
+#: builtin/pack-objects.c:2484
msgid "limit the objects to those that are not yet packed"
msgstr "begrenzt die Objekte zu solchen, die noch nicht gepackt wurden"
-#: builtin/pack-objects.c:2486
+#: builtin/pack-objects.c:2487
msgid "include objects reachable from any reference"
msgstr "schließt Objekte ein, die von jeder Referenz erreichbar sind"
-#: builtin/pack-objects.c:2489
+#: builtin/pack-objects.c:2490
msgid "include objects referred by reflog entries"
msgstr ""
"schließt Objekte ein, die von Einträgen des Reflogs referenziert werden"
-#: builtin/pack-objects.c:2492
+#: builtin/pack-objects.c:2493
msgid "output pack to stdout"
msgstr "schreibt Paket in die Standard-Ausgabe"
-#: builtin/pack-objects.c:2494
+#: builtin/pack-objects.c:2495
msgid "include tag objects that refer to objects to be packed"
msgstr "schließt Tag-Objekte ein, die auf gepackte Objekte referenzieren"
-#: builtin/pack-objects.c:2496
+#: builtin/pack-objects.c:2497
msgid "keep unreachable objects"
msgstr "behält nicht erreichbare Objekte"
-#: builtin/pack-objects.c:2497 parse-options.h:141
+#: builtin/pack-objects.c:2498 parse-options.h:143
msgid "time"
msgstr "Zeit"
-#: builtin/pack-objects.c:2498
+#: builtin/pack-objects.c:2499
msgid "unpack unreachable objects newer than <time>"
msgstr "entpackt nicht erreichbare Objekte, die neuer als <Zeit> sind"
-#: builtin/pack-objects.c:2501
+#: builtin/pack-objects.c:2502
msgid "create thin packs"
msgstr "erzeugt dünnere Pakete"
-#: builtin/pack-objects.c:2503
+#: builtin/pack-objects.c:2504
msgid "ignore packs that have companion .keep file"
msgstr "ignoriert Pakete die .keep Dateien haben"
-#: builtin/pack-objects.c:2505
+#: builtin/pack-objects.c:2506
msgid "pack compression level"
msgstr "Komprimierungsgrad für Paketierung"
-#: builtin/pack-objects.c:2507
+#: builtin/pack-objects.c:2508
msgid "do not hide commits by grafts"
msgstr "verbirgt keine Commits mit künstlichen Vorgängern (\"grafts\")"
@@ -7634,15 +7837,15 @@ msgstr "lässt Objekte älter als <Zeit> verfallen"
msgid "git push [<options>] [<repository> [<refspec>...]]"
msgstr "git push [<Optionen>] [<Repository> [<Refspec>...]]"
-#: builtin/push.c:45
+#: builtin/push.c:47
msgid "tag shorthand without <tag>"
msgstr "Kurzschrift für Tag ohne <Tag>"
-#: builtin/push.c:64
+#: builtin/push.c:66
msgid "--delete only accepts plain target ref names"
msgstr "Die Option --delete akzeptiert nur reine Referenznamen als Ziel."
-#: builtin/push.c:99
+#: builtin/push.c:101
msgid ""
"\n"
"To choose either option permanently, see push.default in 'git help config'."
@@ -7651,7 +7854,7 @@ msgstr ""
"Um eine Variante permanent zu verwenden, siehe push.default in 'git help "
"config'."
-#: builtin/push.c:102
+#: builtin/push.c:104
#, c-format
msgid ""
"The upstream branch of your current branch does not match\n"
@@ -7677,7 +7880,7 @@ msgstr ""
" git push %s %s\n"
"%s"
-#: builtin/push.c:117
+#: builtin/push.c:119
#, c-format
msgid ""
"You are not currently on a branch.\n"
@@ -7692,7 +7895,7 @@ msgstr ""
"\n"
" git push %s HEAD:<Name-des-Remote-Branches>\n"
-#: builtin/push.c:131
+#: builtin/push.c:133
#, c-format
msgid ""
"The current branch %s has no upstream branch.\n"
@@ -7706,13 +7909,13 @@ msgstr ""
"\n"
" git push --set-upstream %s %s\n"
-#: builtin/push.c:139
+#: builtin/push.c:141
#, c-format
msgid "The current branch %s has multiple upstream branches, refusing to push."
msgstr ""
"Der aktuelle Branch %s hat mehrere Upstream-Branches, \"push\" verweigert."
-#: builtin/push.c:142
+#: builtin/push.c:144
#, c-format
msgid ""
"You are pushing to remote '%s', which is not the upstream of\n"
@@ -7720,10 +7923,10 @@ msgid ""
"to update which remote branch."
msgstr ""
"Sie versenden nach '%s', welches kein Upstream-Repository Ihres aktuellen\n"
-"Branches '%s' ist, ohne mir mitzuteilen, was ich versenden soll, um welchen\n"
+"Branches '%s' ist, ohne anzugeben, was versendet werden soll, um welchen\n"
"Remote-Branch zu aktualisieren."
-#: builtin/push.c:165
+#: builtin/push.c:167
msgid ""
"push.default is unset; its implicit value is changing in\n"
"Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
@@ -7758,14 +7961,14 @@ msgstr ""
"Modus 'current' anstatt 'simple', falls Sie gelegentlich ältere Versionen "
"von Git benutzen.)"
-#: builtin/push.c:225
+#: builtin/push.c:227
msgid ""
"You didn't specify any refspecs to push, and push.default is \"nothing\"."
msgstr ""
"Sie haben keine Refspec für \"push\" angegeben, und push.default ist "
"\"nothing\"."
-#: builtin/push.c:232
+#: builtin/push.c:234
msgid ""
"Updates were rejected because the tip of your current branch is behind\n"
"its remote counterpart. Integrate the remote changes (e.g.\n"
@@ -7779,7 +7982,7 @@ msgstr ""
"Siehe auch die Sektion 'Note about fast-forwards' in 'git push --help'\n"
"für weitere Details."
-#: builtin/push.c:238
+#: builtin/push.c:240
msgid ""
"Updates were rejected because a pushed branch tip is behind its remote\n"
"counterpart. If you did not intend to push that branch, you may want to\n"
@@ -7795,7 +7998,7 @@ msgstr ""
"'simple', 'current'\n"
"oder 'upstream' setzen, um nur den aktuellen Branch zu versenden."
-#: builtin/push.c:244
+#: builtin/push.c:246
msgid ""
"Updates were rejected because a pushed branch tip is behind its remote\n"
"counterpart. Check out this branch and integrate the remote changes\n"
@@ -7809,7 +8012,7 @@ msgstr ""
"Siehe auch die Sektion 'Note about fast-forwards' in 'git push --help'\n"
"für weitere Details."
-#: builtin/push.c:250
+#: builtin/push.c:252
msgid ""
"Updates were rejected because the remote contains work that you do\n"
"not have locally. This is usually caused by another repository pushing\n"
@@ -7828,13 +8031,13 @@ msgstr ""
"Siehe auch die Sektion 'Note about fast-forwards' in 'git push --help'\n"
"für weitere Details."
-#: builtin/push.c:257
+#: builtin/push.c:259
msgid "Updates were rejected because the tag already exists in the remote."
msgstr ""
"Aktualisierungen wurden zurückgewiesen, weil das Tag bereits\n"
"im Remote-Repository existiert."
-#: builtin/push.c:260
+#: builtin/push.c:262
msgid ""
"You cannot update a remote ref that points at a non-commit object,\n"
"or update a remote ref to make it point at a non-commit object,\n"
@@ -7844,22 +8047,22 @@ msgstr ""
"das kein Commit ist, oder es auf ein solches Objekt zeigen lassen, ohne\n"
"die Option '--force' zu verwenden.\n"
-#: builtin/push.c:320
+#: builtin/push.c:328
#, c-format
msgid "Pushing to %s\n"
msgstr "Versende nach %s\n"
-#: builtin/push.c:324
+#: builtin/push.c:332
#, c-format
msgid "failed to push some refs to '%s'"
msgstr "Fehler beim Versenden einiger Referenzen nach '%s'"
-#: builtin/push.c:357
+#: builtin/push.c:365
#, c-format
msgid "bad repository '%s'"
msgstr "ungültiges Repository '%s'"
-#: builtin/push.c:358
+#: builtin/push.c:366
msgid ""
"No configured push destination.\n"
"Either specify the URL from the command-line or configure a remote "
@@ -7881,87 +8084,95 @@ msgstr ""
"\n"
" git push <Name>\n"
-#: builtin/push.c:373
+#: builtin/push.c:381
msgid "--all and --tags are incompatible"
msgstr "Die Optionen --all und --tags sind inkompatibel."
-#: builtin/push.c:374
+#: builtin/push.c:382
msgid "--all can't be combined with refspecs"
msgstr "Die Option --all kann nicht mit Refspecs kombiniert werden."
-#: builtin/push.c:379
+#: builtin/push.c:387
msgid "--mirror and --tags are incompatible"
msgstr "Die Optionen --mirror und --tags sind inkompatibel."
-#: builtin/push.c:380
+#: builtin/push.c:388
msgid "--mirror can't be combined with refspecs"
msgstr "Die Option --mirror kann nicht mit Refspecs kombiniert werden."
-#: builtin/push.c:385
+#: builtin/push.c:393
msgid "--all and --mirror are incompatible"
msgstr "Die Optionen --all und --mirror sind inkompatibel."
-#: builtin/push.c:445
+#: builtin/push.c:453
msgid "repository"
msgstr "Repository"
-#: builtin/push.c:446
+#: builtin/push.c:454
msgid "push all refs"
msgstr "versendet alle Referenzen"
-#: builtin/push.c:447
+#: builtin/push.c:455
msgid "mirror all refs"
msgstr "spiegelt alle Referenzen"
-#: builtin/push.c:449
+#: builtin/push.c:457
msgid "delete refs"
msgstr "löscht Referenzen"
-#: builtin/push.c:450
+#: builtin/push.c:458
msgid "push tags (can't be used with --all or --mirror)"
msgstr "versendet Tags (kann nicht mit --all oder --mirror verwendet werden)"
-#: builtin/push.c:453
+#: builtin/push.c:461
msgid "force updates"
msgstr "erzwingt Aktualisierung"
-#: builtin/push.c:454
+#: builtin/push.c:463
+msgid "refname>:<expect"
+msgstr "Referenzname>:<Erwartungswert"
+
+#: builtin/push.c:464
+msgid "require old value of ref to be at this value"
+msgstr "Referenz muss sich auf dem angegebenen Wert befinden"
+
+#: builtin/push.c:466
msgid "check"
msgstr ""
-#: builtin/push.c:455
+#: builtin/push.c:467
msgid "control recursive pushing of submodules"
msgstr "steuert rekursiven \"push\" von Submodulen"
-#: builtin/push.c:457
+#: builtin/push.c:469
msgid "use thin pack"
msgstr "verwendet kleinere Pakete"
-#: builtin/push.c:458 builtin/push.c:459
+#: builtin/push.c:470 builtin/push.c:471
msgid "receive pack program"
msgstr "'receive pack' Programm"
-#: builtin/push.c:460
+#: builtin/push.c:472
msgid "set upstream for git pull/status"
msgstr "setzt Upstream für \"git pull/status\""
-#: builtin/push.c:463
+#: builtin/push.c:475
msgid "prune locally removed refs"
msgstr "entfernt lokal gelöschte Referenzen"
-#: builtin/push.c:465
+#: builtin/push.c:477
msgid "bypass pre-push hook"
msgstr "umgeht \"pre-push hook\""
-#: builtin/push.c:466
+#: builtin/push.c:478
msgid "push missing but relevant tags"
msgstr "versendet fehlende, aber relevante Tags"
-#: builtin/push.c:476
+#: builtin/push.c:488
msgid "--delete is incompatible with --all, --mirror and --tags"
msgstr "Die Option --delete ist inkompatibel mit --all, --mirror und --tags."
-#: builtin/push.c:478
+#: builtin/push.c:490
msgid "--delete doesn't make sense without any refs"
msgstr "Die Option --delete kann nur mit Referenzen verwendet werden."
@@ -8040,12 +8251,12 @@ msgstr "überspringt Anwendung des Filters für spärliches Auschecken"
msgid "debug unpack-trees"
msgstr "protokolliert Entpacken der Bäume"
-#: builtin/reflog.c:500
+#: builtin/reflog.c:499
#, c-format
msgid "%s' for '%s' is not a valid timestamp"
msgstr "'%s' für '%s' ist kein gültiger Zeitstempel"
-#: builtin/reflog.c:616 builtin/reflog.c:621
+#: builtin/reflog.c:615 builtin/reflog.c:620
#, c-format
msgid "'%s' is not a valid timestamp"
msgstr "'%s' ist kein gültiger Zeitstempel"
@@ -8070,9 +8281,9 @@ msgstr "git remote rename <alt> <neu>"
msgid "git remote remove <name>"
msgstr "git remote remove <Name>"
-#: builtin/remote.c:15 builtin/remote.c:42
-msgid "git remote set-head <name> (-a | -d | <branch>)"
-msgstr "git remote set-head <Name> (-a | -d | <Branch>)"
+#: builtin/remote.c:15
+msgid "git remote set-head <name> (-a | --auto | -d | --delete |<branch>)"
+msgstr "git remote set-head <Name> (-a | --auto | -d | --delete | <Branch>)"
#: builtin/remote.c:16
msgid "git remote [-v | --verbose] show [-n] <name>"
@@ -8108,6 +8319,10 @@ msgstr "git remote set-url --delete <Name> <URL>"
msgid "git remote add [<options>] <name> <url>"
msgstr "git remote add [<Optionen>] <Name> <URL>"
+#: builtin/remote.c:42
+msgid "git remote set-head <name> (-a | --auto | -d | --delete | <branch>)"
+msgstr "git remote set-head <Name> (-a | --auto | -d | --delete | <Branch>)"
+
#: builtin/remote.c:47
msgid "git remote set-branches <name> <branch>..."
msgstr "git remote set-branches <Name> <Branch>..."
@@ -8557,6 +8772,68 @@ msgstr "Werde keine URLs entfernen, die nicht für \"push\" bestimmt sind"
msgid "be verbose; must be placed before a subcommand"
msgstr "erweiterte Ausgaben; muss vor einem Unterkommando angegeben werden"
+#: builtin/repack.c:15
+msgid "git repack [options]"
+msgstr "git repack [Optionen]"
+
+#: builtin/repack.c:143
+msgid "pack everything in a single pack"
+msgstr "packt alles in eine einzige Pack-Datei"
+
+#: builtin/repack.c:145
+msgid "same as -a, and turn unreachable objects loose"
+msgstr "genau wie -a, unerreichbare Objekte werden aber nicht gelöscht"
+
+#: builtin/repack.c:148
+msgid "remove redundant packs, and run git-prune-packed"
+msgstr "entfernt redundante Pakete und führt \"git-prune-packed\" aus"
+
+#: builtin/repack.c:150
+msgid "pass --no-reuse-delta to git-pack-objects"
+msgstr "übergibt --no-reuse-delta an git-pack-objects"
+
+#: builtin/repack.c:152
+msgid "pass --no-reuse-object to git-pack-objects"
+msgstr "übergibt --no-reuse-object an git-pack-objects"
+
+#: builtin/repack.c:154
+msgid "do not run git-update-server-info"
+msgstr "git-update-server-info nicht ausführen"
+
+#: builtin/repack.c:157
+msgid "pass --local to git-pack-objects"
+msgstr "übergibt --local an git-pack-objects"
+
+#: builtin/repack.c:158
+msgid "approxidate"
+msgstr "Datumsangabe"
+
+#: builtin/repack.c:159
+msgid "with -A, do not loosen objects older than this"
+msgstr "mit -A, löscht keine Objekte älter als dieses Datum"
+
+#: builtin/repack.c:161
+msgid "size of the window used for delta compression"
+msgstr "Größe des Fensters für die Delta-Kompression"
+
+#: builtin/repack.c:163
+msgid "same as the above, but limit memory size instead of entries count"
+msgstr "gleiches wie oben, limitiert aber die Speichergröße anstatt der\n"
+"Anzahl der Einträge"
+
+#: builtin/repack.c:165
+msgid "limits the maximum delta depth"
+msgstr "limitiert die maximale Delta-Tiefe"
+
+#: builtin/repack.c:167
+msgid "maximum size of each packfile"
+msgstr "maximale Größe für jede Paketdatei"
+
+#: builtin/repack.c:345
+#, c-format
+msgid "removing '%s' failed"
+msgstr "Löschen von '%s' fehlgeschlagen"
+
#: builtin/replace.c:17
msgid "git replace [-f] <object> <replacement>"
msgstr "git replace [-f] <Objekt> <Ersetzung>"
@@ -8569,23 +8846,23 @@ msgstr "git replace -d <Objekt>..."
msgid "git replace -l [<pattern>]"
msgstr "git replace -l [<Muster>]"
-#: builtin/replace.c:121
+#: builtin/replace.c:131
msgid "list replace refs"
msgstr "listet ersetzende Referenzen auf"
-#: builtin/replace.c:122
+#: builtin/replace.c:132
msgid "delete replace refs"
msgstr "löscht ersetzende Referenzen"
-#: builtin/replace.c:123
+#: builtin/replace.c:133
msgid "replace the ref if it exists"
msgstr "ersetzt die Referenz, wenn sie existiert"
-#: builtin/rerere.c:11
+#: builtin/rerere.c:12
msgid "git rerere [clear | forget path... | status | remaining | diff | gc]"
msgstr "git rerere [clean | forget path... | status | remaining | diff | gc]"
-#: builtin/rerere.c:56
+#: builtin/rerere.c:57
msgid "register clean resolutions in index"
msgstr "registriert saubere Auflösungen in der Staging-Area"
@@ -8646,71 +8923,71 @@ msgstr "HEAD ist jetzt bei %s"
msgid "Cannot do a %s reset in the middle of a merge."
msgstr "Kann keinen '%s'-Reset durchführen, während ein Merge im Gange ist."
-#: builtin/reset.c:251
+#: builtin/reset.c:262
msgid "be quiet, only report errors"
msgstr "weniger Ausgaben, meldet nur Fehler"
-#: builtin/reset.c:253
+#: builtin/reset.c:264
msgid "reset HEAD and index"
msgstr "setzt HEAD und Staging-Area um"
-#: builtin/reset.c:254
+#: builtin/reset.c:265
msgid "reset only HEAD"
msgstr "setzt nur HEAD um"
-#: builtin/reset.c:256 builtin/reset.c:258
+#: builtin/reset.c:267 builtin/reset.c:269
msgid "reset HEAD, index and working tree"
msgstr "setzt HEAD, Staging-Area und Arbeitsverzeichnis um"
-#: builtin/reset.c:260
+#: builtin/reset.c:271
msgid "reset HEAD but keep local changes"
msgstr "setzt HEAD um, behält aber lokale Änderungen"
-#: builtin/reset.c:278
+#: builtin/reset.c:289
#, c-format
msgid "Failed to resolve '%s' as a valid revision."
msgstr "Konnte '%s' nicht als gültigen Commit auflösen."
-#: builtin/reset.c:281 builtin/reset.c:289
+#: builtin/reset.c:292 builtin/reset.c:300
#, c-format
msgid "Could not parse object '%s'."
msgstr "Konnte Objekt '%s' nicht parsen."
-#: builtin/reset.c:286
+#: builtin/reset.c:297
#, c-format
msgid "Failed to resolve '%s' as a valid tree."
msgstr "Konnte '%s' nicht als gültiges \"Tree\"-Objekt auflösen."
-#: builtin/reset.c:295
+#: builtin/reset.c:306
msgid "--patch is incompatible with --{hard,mixed,soft}"
msgstr "--patch ist inkompatibel mit --{hard,mixed,soft}"
-#: builtin/reset.c:304
+#: builtin/reset.c:315
msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead."
msgstr ""
"--mixed mit Pfaden ist veraltet; benutzen Sie stattdessen 'git reset -- "
"<Pfade>'."
-#: builtin/reset.c:306
+#: builtin/reset.c:317
#, c-format
msgid "Cannot do %s reset with paths."
msgstr "Ein '%s'-Reset mit Pfaden ist nicht möglich."
-#: builtin/reset.c:316
+#: builtin/reset.c:327
#, c-format
msgid "%s reset is not allowed in a bare repository"
msgstr "'%s'-Reset ist in einem Bare-Repository nicht erlaubt"
-#: builtin/reset.c:336
+#: builtin/reset.c:344
+msgid "Unstaged changes after reset:"
+msgstr "Nicht zum Commit vorgemerkte Änderungen nach Zurücksetzung:"
+
+#: builtin/reset.c:350
#, c-format
msgid "Could not reset index file to revision '%s'."
msgstr "Konnte Staging-Area-Datei nicht zu Commit '%s' setzen."
-#: builtin/reset.c:342
-msgid "Unstaged changes after reset:"
-msgstr "Nicht zum Commit vorgemerkte Änderungen nach Zurücksetzung:"
-
-#: builtin/reset.c:347
+#: builtin/reset.c:355
msgid "Could not write new index file."
msgstr "Konnte neue Staging-Area-Datei nicht schreiben."
@@ -8757,84 +9034,84 @@ msgstr "git cherry-pick [Optionen] <Commit-Angabe>..."
msgid "git cherry-pick <subcommand>"
msgstr "git cherry-pick <Unterkommando>"
-#: builtin/revert.c:71 builtin/revert.c:94
+#: builtin/revert.c:71
#, c-format
msgid "%s: %s cannot be used with %s"
msgstr "%s: %s kann nicht mit %s verwendet werden"
-#: builtin/revert.c:105
+#: builtin/revert.c:80
msgid "end revert or cherry-pick sequence"
msgstr "beendet \"revert\" oder \"cherry-pick\" Ablauf"
-#: builtin/revert.c:106
+#: builtin/revert.c:81
msgid "resume revert or cherry-pick sequence"
msgstr "setzt \"revert\" oder \"cherry-pick\" Ablauf fort"
-#: builtin/revert.c:107
+#: builtin/revert.c:82
msgid "cancel revert or cherry-pick sequence"
msgstr "bricht \"revert\" oder \"cherry-pick\" Ablauf ab"
-#: builtin/revert.c:108
+#: builtin/revert.c:83
msgid "don't automatically commit"
msgstr "committet nicht automatisch"
-#: builtin/revert.c:109
+#: builtin/revert.c:84
msgid "edit the commit message"
msgstr "Bearbeitung der Commit-Beschreibung"
-#: builtin/revert.c:112
+#: builtin/revert.c:87
msgid "parent number"
msgstr "Nummer des Elternteils"
-#: builtin/revert.c:114
+#: builtin/revert.c:89
msgid "merge strategy"
msgstr "Merge-Strategie"
-#: builtin/revert.c:115
+#: builtin/revert.c:90
msgid "option"
msgstr "Option"
-#: builtin/revert.c:116
+#: builtin/revert.c:91
msgid "option for merge strategy"
msgstr "Option für Merge-Strategie"
-#: builtin/revert.c:127
+#: builtin/revert.c:102
msgid "append commit name"
msgstr "hängt Commit-Namen an"
-#: builtin/revert.c:128
+#: builtin/revert.c:103
msgid "allow fast-forward"
msgstr "erlaubt Vorspulen"
-#: builtin/revert.c:129
+#: builtin/revert.c:104
msgid "preserve initially empty commits"
msgstr "erhält ursprüngliche, leere Commits"
-#: builtin/revert.c:130
+#: builtin/revert.c:105
msgid "allow commits with empty messages"
msgstr "erlaubt Commits mit leerer Beschreibung"
-#: builtin/revert.c:131
+#: builtin/revert.c:106
msgid "keep redundant, empty commits"
msgstr "behält redundante, leere Commits"
-#: builtin/revert.c:135
+#: builtin/revert.c:110
msgid "program error"
msgstr "Programmfehler"
-#: builtin/revert.c:225
+#: builtin/revert.c:195
msgid "revert failed"
msgstr "\"revert\" fehlgeschlagen"
-#: builtin/revert.c:240
+#: builtin/revert.c:210
msgid "cherry-pick failed"
msgstr "\"cherry-pick\" fehlgeschlagen"
-#: builtin/rm.c:16
+#: builtin/rm.c:17
msgid "git rm [options] [--] <file>..."
msgstr "git rm [Optionen] [--] [<Datei>...]"
-#: builtin/rm.c:64
+#: builtin/rm.c:65
msgid ""
"the following submodule (or one of its nested submodules)\n"
"uses a .git directory:"
@@ -8848,7 +9125,7 @@ msgstr[1] ""
"die folgenden Submodule (oder ein geschachteltes Submodul hiervon)\n"
"benutzen ein .git-Verzeichnis:"
-#: builtin/rm.c:70
+#: builtin/rm.c:71
msgid ""
"\n"
"(use 'rm -rf' if you really want to remove it including all of its history)"
@@ -8857,7 +9134,7 @@ msgstr ""
"(benutzen Sie 'rm -rf' wenn Sie dieses Submodul wirklich mitsamt\n"
"seiner Historie löschen möchten)"
-#: builtin/rm.c:230
+#: builtin/rm.c:231
msgid ""
"the following file has staged content different from both the\n"
"file and the HEAD:"
@@ -8872,7 +9149,7 @@ msgstr[1] ""
"unterschiedlich\n"
"zu der Datei und HEAD:"
-#: builtin/rm.c:235
+#: builtin/rm.c:236
msgid ""
"\n"
"(use -f to force removal)"
@@ -8880,13 +9157,13 @@ msgstr ""
"\n"
"(benutzen Sie -f um die Löschung zu erzwingen)"
-#: builtin/rm.c:239
+#: builtin/rm.c:240
msgid "the following file has changes staged in the index:"
msgid_plural "the following files have changes staged in the index:"
msgstr[0] "die folgende Datei hat zum Commit vorgemerkte Änderungen:"
msgstr[1] "die folgenden Dateien haben zum Commit vorgemerkte Änderungen:"
-#: builtin/rm.c:243 builtin/rm.c:254
+#: builtin/rm.c:244 builtin/rm.c:255
msgid ""
"\n"
"(use --cached to keep the file, or -f to force removal)"
@@ -8895,38 +9172,38 @@ msgstr ""
"(benutzen Sie --cached um die Datei zu behalten, oder -f um die Entfernung "
"zu erzwingen)"
-#: builtin/rm.c:251
+#: builtin/rm.c:252
msgid "the following file has local modifications:"
msgid_plural "the following files have local modifications:"
msgstr[0] "die folgende Datei hat lokale Änderungen:"
msgstr[1] "die folgenden Dateien haben lokale Änderungen:"
-#: builtin/rm.c:269
+#: builtin/rm.c:270
msgid "do not list removed files"
msgstr "listet keine gelöschten Dateien auf"
-#: builtin/rm.c:270
+#: builtin/rm.c:271
msgid "only remove from the index"
msgstr "entfernt nur aus der Staging-Area"
-#: builtin/rm.c:271
+#: builtin/rm.c:272
msgid "override the up-to-date check"
msgstr "überschreibt die \"up-to-date\" Prüfung"
-#: builtin/rm.c:272
+#: builtin/rm.c:273
msgid "allow recursive removal"
msgstr "erlaubt rekursive Entfernung"
-#: builtin/rm.c:274
+#: builtin/rm.c:275
msgid "exit with a zero status even if nothing matched"
msgstr "beendet mit Rückgabewert 0, wenn keine Übereinstimmung gefunden wurde"
-#: builtin/rm.c:345
+#: builtin/rm.c:336
#, c-format
msgid "not removing '%s' recursively without -r"
msgstr "'%s' wird nicht ohne -r rekursiv entfernt"
-#: builtin/rm.c:384
+#: builtin/rm.c:375
#, c-format
msgid "git rm: unable to remove %s"
msgstr "git rm: konnte %s nicht löschen"
@@ -8940,23 +9217,23 @@ msgstr "git shortlog [<Optionen>] [Commitbereich] [[--] <Pfad>...]"
msgid "Missing author: %s"
msgstr "fehlender Autor: %s"
-#: builtin/shortlog.c:228
+#: builtin/shortlog.c:230
msgid "sort output according to the number of commits per author"
msgstr "sortiert die Ausgabe entsprechend der Anzahl von Commits pro Autor"
-#: builtin/shortlog.c:230
+#: builtin/shortlog.c:232
msgid "Suppress commit descriptions, only provides commit count"
msgstr "Unterdrückt Commit-Beschreibungen, liefert nur Anzahl der Commits"
-#: builtin/shortlog.c:232
+#: builtin/shortlog.c:234
msgid "Show the email address of each author"
msgstr "Zeigt die Email-Adresse von jedem Autor"
-#: builtin/shortlog.c:233
+#: builtin/shortlog.c:235
msgid "w[,i1[,i2]]"
msgstr "w[,i1[,i2]]"
-#: builtin/shortlog.c:234
+#: builtin/shortlog.c:236
msgid "Linewrap output"
msgstr "Ausgabe mit Zeilenumbrüchen"
@@ -9064,24 +9341,24 @@ msgstr "zeigt nur Branches (kann mit \"tags\" kombiniert werden)"
msgid "stricter reference checking, requires exact ref path"
msgstr "strengere Referenzprüfung, erfordert exakten Referenzpfad"
-#: builtin/show-ref.c:173 builtin/show-ref.c:176
+#: builtin/show-ref.c:173 builtin/show-ref.c:175
msgid "show the HEAD reference, even if it would be filtered out"
msgstr "zeigt die HEAD-Referenz, selbst wenn diese ausgefiltert werden würde"
-#: builtin/show-ref.c:178
+#: builtin/show-ref.c:177
msgid "dereference tags into object IDs"
msgstr "dereferenziert Tags in Objekt-Identifikationen"
-#: builtin/show-ref.c:180
+#: builtin/show-ref.c:179
msgid "only show SHA1 hash using <n> digits"
msgstr "zeigt nur SHA1 Hash mit <n> Ziffern"
-#: builtin/show-ref.c:184
+#: builtin/show-ref.c:183
msgid "do not print results to stdout (useful with --verify)"
msgstr ""
"keine Ausgabe der Ergebnisse in die Standard-Ausgabe (nützlich mit --verify)"
-#: builtin/show-ref.c:186
+#: builtin/show-ref.c:185
msgid "show refs from stdin that aren't in local repository"
msgstr ""
"zeigt Referenzen von der Standard-Eingabe, die sich nicht im lokalen "
@@ -9108,11 +9385,11 @@ msgstr "löscht symbolische Referenzen"
msgid "shorten ref output"
msgstr "verkürzte Ausgabe der Referenzen"
-#: builtin/symbolic-ref.c:43 builtin/update-ref.c:18
+#: builtin/symbolic-ref.c:43 builtin/update-ref.c:254
msgid "reason"
msgstr "Grund"
-#: builtin/symbolic-ref.c:43 builtin/update-ref.c:18
+#: builtin/symbolic-ref.c:43 builtin/update-ref.c:254
msgid "reason of the update"
msgstr "Grund für die Aktualisierung"
@@ -9278,191 +9555,203 @@ msgstr "gibt nur Tags aus, die diesen Commit beinhalten"
msgid "print only tags of the object"
msgstr "gibt nur Tags von dem Objekt aus"
-#: builtin/tag.c:504
+#: builtin/tag.c:501
msgid "--column and -n are incompatible"
msgstr "--column und -n sind inkompatibel"
-#: builtin/tag.c:521
+#: builtin/tag.c:518
msgid "-n option is only allowed with -l."
msgstr "-n Option ist nur erlaubt mit -l."
-#: builtin/tag.c:523
+#: builtin/tag.c:520
msgid "--contains option is only allowed with -l."
msgstr "--contains Option ist nur erlaubt mit -l."
-#: builtin/tag.c:525
+#: builtin/tag.c:522
msgid "--points-at option is only allowed with -l."
msgstr "--points-at Option ist nur erlaubt mit -l."
-#: builtin/tag.c:533
+#: builtin/tag.c:530
msgid "only one -F or -m option is allowed."
msgstr "nur eine -F oder -m Option ist erlaubt."
-#: builtin/tag.c:553
+#: builtin/tag.c:550
msgid "too many params"
msgstr "zu viele Parameter"
-#: builtin/tag.c:559
+#: builtin/tag.c:556
#, c-format
msgid "'%s' is not a valid tag name."
msgstr "'%s' ist kein gültiger Tagname."
-#: builtin/tag.c:564
+#: builtin/tag.c:561
#, c-format
msgid "tag '%s' already exists"
msgstr "Tag '%s' existiert bereits"
-#: builtin/tag.c:582
+#: builtin/tag.c:579
#, c-format
msgid "%s: cannot lock the ref"
msgstr "%s: kann Referenz nicht sperren"
-#: builtin/tag.c:584
+#: builtin/tag.c:581
#, c-format
msgid "%s: cannot update the ref"
msgstr "%s: kann Referenz nicht aktualisieren"
-#: builtin/tag.c:586
+#: builtin/tag.c:583
#, c-format
msgid "Updated tag '%s' (was %s)\n"
msgstr "Tag '%s' aktualisiert (war %s)\n"
-#: builtin/update-index.c:401
+#: builtin/update-index.c:402
msgid "git update-index [options] [--] [<file>...]"
msgstr "git update-index [Optionen] [--] [<Datei>...]"
-#: builtin/update-index.c:718
+#: builtin/update-index.c:720
msgid "continue refresh even when index needs update"
msgstr ""
"Aktualisierung fortsetzen, auch wenn die Staging-Area aktualisiert werden "
"muss"
-#: builtin/update-index.c:721
+#: builtin/update-index.c:723
msgid "refresh: ignore submodules"
msgstr "Aktualisierung: ignoriert Submodule"
-#: builtin/update-index.c:724
+#: builtin/update-index.c:726
msgid "do not ignore new files"
msgstr "ignoriert keine neuen Dateien"
-#: builtin/update-index.c:726
+#: builtin/update-index.c:728
msgid "let files replace directories and vice-versa"
msgstr "lässt Dateien Verzeichnisse ersetzen, und umgedreht"
-#: builtin/update-index.c:728
+#: builtin/update-index.c:730
msgid "notice files missing from worktree"
msgstr "beachtet fehlende Dateien im Arbeitsverzeichnis"
-#: builtin/update-index.c:730
+#: builtin/update-index.c:732
msgid "refresh even if index contains unmerged entries"
msgstr ""
"aktualisiert, auch wenn die Staging-Area nicht zusammengeführte Einträge "
"beinhaltet"
-#: builtin/update-index.c:733
+#: builtin/update-index.c:735
msgid "refresh stat information"
msgstr "aktualisiert Dateiinformationen"
-#: builtin/update-index.c:737
+#: builtin/update-index.c:739
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "wie --refresh, ignoriert aber \"assume-unchanged\" Einstellung"
-#: builtin/update-index.c:741
+#: builtin/update-index.c:743
msgid "<mode> <object> <path>"
msgstr "<Modus> <Objekt> <Pfad>"
-#: builtin/update-index.c:742
+#: builtin/update-index.c:744
msgid "add the specified entry to the index"
msgstr "merkt den angegebenen Eintrag zum Commit vor"
-#: builtin/update-index.c:746
+#: builtin/update-index.c:748
msgid "(+/-)x"
msgstr "(+/-)x"
-#: builtin/update-index.c:747
+#: builtin/update-index.c:749
msgid "override the executable bit of the listed files"
msgstr "überschreibt das \"ausführbar\"-Bit der aufgelisteten Dateien"
-#: builtin/update-index.c:751
+#: builtin/update-index.c:753
msgid "mark files as \"not changing\""
msgstr "betrachte diese Datei immer als unverändert"
-#: builtin/update-index.c:754
+#: builtin/update-index.c:756
msgid "clear assumed-unchanged bit"
msgstr "löscht \"assumed-unchanged\"-Bit"
-#: builtin/update-index.c:757
+#: builtin/update-index.c:759
msgid "mark files as \"index-only\""
msgstr "markiert Dateien als \"index-only\""
-#: builtin/update-index.c:760
+#: builtin/update-index.c:762
msgid "clear skip-worktree bit"
msgstr "löscht \"skip-worktree\"-Bit"
-#: builtin/update-index.c:763
+#: builtin/update-index.c:765
msgid "add to index only; do not add content to object database"
msgstr ""
"merkt die Änderungen nur zum Commit vor; Inhalt wird nicht der Objekt-"
"Datenbank hinzugefügt"
-#: builtin/update-index.c:765
+#: builtin/update-index.c:767
msgid "remove named paths even if present in worktree"
msgstr ""
"löscht benannte Pfade, auch wenn sie sich im Arbeitsverzeichnis befinden"
-#: builtin/update-index.c:767
+#: builtin/update-index.c:769
msgid "with --stdin: input lines are terminated by null bytes"
msgstr "mit --stdin: eingegebene Zeilen sind durch NUL-Bytes abgeschlossen"
-#: builtin/update-index.c:769
+#: builtin/update-index.c:771
msgid "read list of paths to be updated from standard input"
msgstr "liest Liste der zu aktualisierenden Pfade von der Standard-Eingabe"
-#: builtin/update-index.c:773
+#: builtin/update-index.c:775
msgid "add entries from standard input to the index"
msgstr "merkt Einträge von der Standard-Eingabe zum Commit vor"
-#: builtin/update-index.c:777
+#: builtin/update-index.c:779
msgid "repopulate stages #2 and #3 for the listed paths"
msgstr ""
"wiederholtes Einpflegen der Zustände #2 und #3 für die aufgelisteten Pfade"
-#: builtin/update-index.c:781
+#: builtin/update-index.c:783
msgid "only update entries that differ from HEAD"
msgstr "aktualisiert nur Einträge, die unterschiedlich zu HEAD sind"
-#: builtin/update-index.c:785
+#: builtin/update-index.c:787
msgid "ignore files missing from worktree"
msgstr "ignoriert fehlende Dateien im Arbeitsverzeichnis"
-#: builtin/update-index.c:788
+#: builtin/update-index.c:790
msgid "report actions to standard output"
msgstr "gibt die Aktionen in der Standard-Ausgabe aus"
-#: builtin/update-index.c:790
+#: builtin/update-index.c:792
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr "(für Fremdprogramme) keine gespeicherten, nicht aufgelöste Konflikte"
-#: builtin/update-index.c:794
+#: builtin/update-index.c:796
msgid "write index in this format"
msgstr "schreibt Staging-Area-Datei in diesem Format"
-#: builtin/update-ref.c:7
+#: builtin/update-ref.c:9
msgid "git update-ref [options] -d <refname> [<oldval>]"
msgstr "git update-ref [Optionen] -d <Referenzname> [<alterWert>]"
-#: builtin/update-ref.c:8
+#: builtin/update-ref.c:10
msgid "git update-ref [options] <refname> <newval> [<oldval>]"
msgstr "git update-ref [Optionen] <Referenzname> <neuerWert> [<alterWert>]"
-#: builtin/update-ref.c:19
+#: builtin/update-ref.c:11
+msgid "git update-ref [options] --stdin [-z]"
+msgstr "git update-ref [Optionen] --stdin [-z]"
+
+#: builtin/update-ref.c:255
msgid "delete the reference"
msgstr "löscht diese Referenz"
-#: builtin/update-ref.c:21
+#: builtin/update-ref.c:257
msgid "update <refname> not the one it points to"
msgstr "aktualisiert <Referenzname>, nicht den Verweis"
+#: builtin/update-ref.c:258
+msgid "stdin has NUL-terminated arguments"
+msgstr "Standard-Eingabe hat durch NUL-Zeichen abgeschlossene Argumente"
+
+#: builtin/update-ref.c:259
+msgid "read updates from stdin"
+msgstr "liest Aktualisierungen von der Standard-Eingabe"
+
#: builtin/update-server-info.c:6
msgid "git update-server-info [--force]"
msgstr "git update-server-info [--force]"
@@ -9518,23 +9807,23 @@ msgstr ""
"oder 'git help <Konzept>' um mehr über ein spezifisches Kommando oder\n"
"Konzept zu erfahren."
-#: parse-options.h:144
+#: parse-options.h:146
msgid "expiry date"
msgstr "Verfallsdatum"
-#: parse-options.h:159
+#: parse-options.h:161
msgid "no-op (backward compatibility)"
msgstr "Kein Effekt (Rückwärtskompatibilität)"
-#: parse-options.h:236
+#: parse-options.h:238
msgid "be more verbose"
msgstr "erweiterte Ausgaben"
-#: parse-options.h:238
+#: parse-options.h:240
msgid "be more quiet"
msgstr "weniger Ausgaben"
-#: parse-options.h:244
+#: parse-options.h:246
msgid "use <n> digits to display SHA-1s"
msgstr "benutze <n> Ziffern zur Anzeige von SHA-1s"
@@ -9993,7 +10282,7 @@ msgid "Pull is not possible because you have unmerged files."
msgstr ""
"\"pull\" ist nicht möglich, weil Sie nicht zusammengeführte Dateien haben."
-#: git-pull.sh:203
+#: git-pull.sh:223
msgid "updating an unborn branch with changes added to the index"
msgstr ""
"Aktualisiere einen ungeborenen Branch mit Änderungen, die zum Commit "
@@ -10003,7 +10292,7 @@ msgstr ""
#. The working tree and the index file is still based on the
#. $orig_head commit, but we are merging into $curr_head.
#. First update the working tree to match $curr_head.
-#: git-pull.sh:235
+#: git-pull.sh:255
#, sh-format
msgid ""
"Warning: fetch updated the current branch head.\n"
@@ -10013,11 +10302,11 @@ msgstr ""
"Warnung: \"fetch\" aktualisierte die Spitze des aktuellen Branches.\n"
"Warnung: Spule Ihr Arbeitsverzeichnis von Commit $orig_head vor."
-#: git-pull.sh:260
+#: git-pull.sh:280
msgid "Cannot merge multiple branches into empty head"
msgstr "Kann nicht mehrere Branches in einen ungeborenen Branch zusammenführen"
-#: git-pull.sh:264
+#: git-pull.sh:284
msgid "Cannot rebase onto multiple branches"
msgstr "kann Rebase nicht auf mehrere Branches ausführen"
@@ -10054,33 +10343,33 @@ msgstr ""
"Ihre Änderungen sind im Stash sicher.\n"
"Sie können jederzeit \"git stash pop\" oder \"git stash drop\" ausführen.\n"
-#: git-rebase.sh:190
+#: git-rebase.sh:199
msgid "The pre-rebase hook refused to rebase."
msgstr "Der \"pre-rebase hook\" hat den Rebase zurückgewiesen."
-#: git-rebase.sh:195
+#: git-rebase.sh:204
msgid "It looks like git-am is in progress. Cannot rebase."
msgstr "\"git-am\" scheint im Gange zu sein. Kann Rebase nicht durchführen."
-#: git-rebase.sh:329
+#: git-rebase.sh:338
msgid "The --exec option must be used with the --interactive option"
msgstr "Die Option --exec muss mit --interactive verwendet werden."
-#: git-rebase.sh:334
+#: git-rebase.sh:343
msgid "No rebase in progress?"
msgstr "Kein Rebase im Gange?"
-#: git-rebase.sh:345
+#: git-rebase.sh:354
msgid "The --edit-todo action can only be used during interactive rebase."
msgstr ""
"Die --edit-todo Aktion kann nur während eines interaktiven Rebase verwendet "
"werden."
-#: git-rebase.sh:352
+#: git-rebase.sh:361
msgid "Cannot read HEAD"
msgstr "Kann HEAD nicht lesen"
-#: git-rebase.sh:355
+#: git-rebase.sh:364
msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
@@ -10088,12 +10377,12 @@ msgstr ""
"Sie müssen alle Merge-Konflikte editieren und diese dann\n"
"mittels \"git add\" als aufgelöst markieren"
-#: git-rebase.sh:373
+#: git-rebase.sh:382
#, sh-format
msgid "Could not move back to $head_name"
msgstr "Konnte nicht zu $head_name zurückgehen"
-#: git-rebase.sh:392
+#: git-rebase.sh:401
#, sh-format
msgid ""
"It seems that there is already a $state_dir_base directory, and\n"
@@ -10114,68 +10403,68 @@ msgstr ""
"und führen Sie dieses Kommando nochmal aus. Es wird angehalten, falls noch\n"
"etwas Schützenswertes vorhanden ist."
-#: git-rebase.sh:437
+#: git-rebase.sh:446
#, sh-format
msgid "invalid upstream $upstream_name"
msgstr "ungültiger Upstream-Branch $upstream_name"
-#: git-rebase.sh:461
+#: git-rebase.sh:470
#, sh-format
msgid "$onto_name: there are more than one merge bases"
msgstr "$onto_name: es gibt mehr als eine Merge-Basis"
-#: git-rebase.sh:464 git-rebase.sh:468
+#: git-rebase.sh:473 git-rebase.sh:477
#, sh-format
msgid "$onto_name: there is no merge base"
msgstr "$onto_name: es gibt keine Merge-Basis"
-#: git-rebase.sh:473
+#: git-rebase.sh:482
#, sh-format
msgid "Does not point to a valid commit: $onto_name"
msgstr "$onto_name zeigt auf keinen gültigen Commit"
-#: git-rebase.sh:496
+#: git-rebase.sh:505
#, sh-format
msgid "fatal: no such branch: $branch_name"
msgstr "fatal: Branch $branch_name nicht gefunden"
-#: git-rebase.sh:519
+#: git-rebase.sh:528
msgid "Cannot autostash"
msgstr "Kann \"autostash\" nicht ausführen."
-#: git-rebase.sh:524
+#: git-rebase.sh:533
#, sh-format
msgid "Created autostash: $stash_abbrev"
msgstr "\"autostash\" erzeugt: $stash_abbrev"
-#: git-rebase.sh:528
+#: git-rebase.sh:537
msgid "Please commit or stash them."
msgstr "Bitte committen Sie die Änderungen oder benutzen Sie \"stash\"."
-#: git-rebase.sh:548
+#: git-rebase.sh:557
#, sh-format
msgid "Current branch $branch_name is up to date."
msgstr "Aktueller Branch $branch_name ist auf dem neusten Stand."
-#: git-rebase.sh:552
+#: git-rebase.sh:561
#, sh-format
msgid "Current branch $branch_name is up to date, rebase forced."
msgstr ""
"Aktueller Branch $branch_name ist auf dem neusten Stand, Rebase erzwungen."
-#: git-rebase.sh:563
+#: git-rebase.sh:572
#, sh-format
msgid "Changes from $mb to $onto:"
msgstr "Änderungen von $mb zu $onto:"
#. Detach HEAD and reset the tree
-#: git-rebase.sh:572
+#: git-rebase.sh:581
msgid "First, rewinding head to replay your work on top of it..."
msgstr ""
"Zunächst wird der Branch zurückgespult, um Ihre Änderungen\n"
"darauf neu anzuwenden..."
-#: git-rebase.sh:582
+#: git-rebase.sh:591
#, sh-format
msgid "Fast-forwarded $branch_name to $onto_name."
msgstr "$branch_name zu $onto_name vorgespult."
@@ -10223,7 +10512,7 @@ msgstr "Kann $ref_stash nicht mit $w_commit aktualisieren."
#. $ git stash save --blah-blah 2>&1 | head -n 2
#. error: unknown option for 'stash save': --blah-blah
#. To provide a message, use git stash save -- '--blah-blah'
-#: git-stash.sh:241
+#: git-stash.sh:237
#, sh-format
msgid ""
"error: unknown option for 'stash save': $option\n"
@@ -10233,100 +10522,85 @@ msgstr ""
" Um eine Beschreibung anzugeben, benutzen Sie \"git stash save -- "
"'$option'\""
-#: git-stash.sh:262
+#: git-stash.sh:258
msgid "No local changes to save"
msgstr "Keine lokalen Änderungen zum Speichern"
-#: git-stash.sh:268
-msgid ""
-"The following untracked files would NOT be saved but need to be removed by "
-"stash save:"
-msgstr ""
-"Die folgenden unbeobachteten Dateien würden NICHT gespeichert werden,\n"
-"müssen aber durch \"stash save\" entfernt werden:"
-
-#: git-stash.sh:270
-msgid ""
-"Aborting. Consider using either the --force or --include-untracked option."
-msgstr ""
-"Abgebrochen. Benutzen Sie entweder die Option --force oder --include-"
-"untracked."
-
-#: git-stash.sh:274
+#: git-stash.sh:262
msgid "Cannot initialize stash"
msgstr "Kann \"stash\" nicht initialisieren"
-#: git-stash.sh:278
+#: git-stash.sh:266
msgid "Cannot save the current status"
msgstr "Kann den aktuellen Status nicht speichern"
-#: git-stash.sh:296
+#: git-stash.sh:284
msgid "Cannot remove worktree changes"
msgstr "Kann Änderungen im Arbeitsverzeichnis nicht löschen"
-#: git-stash.sh:395
+#: git-stash.sh:383
msgid "No stash found."
msgstr "Kein \"stash\" gefunden."
-#: git-stash.sh:402
+#: git-stash.sh:390
#, sh-format
msgid "Too many revisions specified: $REV"
msgstr "Zu viele Commits angegeben: $REV"
-#: git-stash.sh:408
+#: git-stash.sh:396
#, sh-format
msgid "$reference is not valid reference"
msgstr "$reference ist keine gültige Referenz"
-#: git-stash.sh:436
+#: git-stash.sh:424
#, sh-format
msgid "'$args' is not a stash-like commit"
msgstr "'$args' ist kein \"stash\"-artiger Commit"
-#: git-stash.sh:447
+#: git-stash.sh:435
#, sh-format
msgid "'$args' is not a stash reference"
msgstr "'$args' ist keine \"stash\"-Referenz"
-#: git-stash.sh:455
+#: git-stash.sh:443
msgid "unable to refresh index"
msgstr "unfähig die Staging-Area zu aktualisieren"
-#: git-stash.sh:459
+#: git-stash.sh:447
msgid "Cannot apply a stash in the middle of a merge"
msgstr "Kann \"stash\" nicht anwenden, solang ein Merge im Gange ist"
-#: git-stash.sh:467
+#: git-stash.sh:455
msgid "Conflicts in index. Try without --index."
msgstr "Konflikte in der Staging-Area. Versuchen Sie es ohne --index."
-#: git-stash.sh:469
+#: git-stash.sh:457
msgid "Could not save index tree"
msgstr "Konnte Staging-Area-Verzeichnis nicht speichern"
-#: git-stash.sh:503
+#: git-stash.sh:491
msgid "Cannot unstage modified files"
msgstr "Kann geänderte Dateien nicht aus der Staging-Area entfernen"
-#: git-stash.sh:518
+#: git-stash.sh:506
msgid "Index was not unstashed."
msgstr "Staging-Area wurde nicht aus dem Stash zurückgeladen."
-#: git-stash.sh:535
+#: git-stash.sh:523
#, sh-format
msgid "Dropped ${REV} ($s)"
msgstr "Gelöscht ${REV} ($s)"
-#: git-stash.sh:536
+#: git-stash.sh:524
#, sh-format
msgid "${REV}: Could not drop stash entry"
msgstr "${REV}: Konnte \"stash\"-Eintrag nicht löschen"
-#: git-stash.sh:543
+#: git-stash.sh:531
msgid "No branch name specified"
msgstr "Kein Branchname spezifiziert"
-#: git-stash.sh:615
+#: git-stash.sh:603
msgid "(To restore them type \"git stash apply\")"
msgstr "(Zur Wiederherstellung geben Sie \"git stash apply\" ein)"
@@ -10608,49 +10882,60 @@ msgstr ""
"Die Optionen --cached und --files können nicht gemeinsam verwendet werden."
#. unexpected type
-#: git-submodule.sh:1066
+#: git-submodule.sh:1073
#, sh-format
msgid "unexpected mode $mod_dst"
msgstr "unerwarteter Modus $mod_dst"
-#: git-submodule.sh:1086
+#: git-submodule.sh:1093
#, sh-format
msgid " Warn: $display_name doesn't contain commit $sha1_src"
msgstr " Warnung: $display_name beinhaltet nicht Commit $sha1_src"
-#: git-submodule.sh:1089
+#: git-submodule.sh:1096
#, sh-format
msgid " Warn: $display_name doesn't contain commit $sha1_dst"
msgstr " Warnung: $display_name beinhaltet nicht Commit $sha1_dst"
-#: git-submodule.sh:1092
+#: git-submodule.sh:1099
#, sh-format
msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
msgstr ""
" Warnung: $display_name beinhaltet nicht die Commits $sha1_src und $sha1_dst"
-#: git-submodule.sh:1117
+#: git-submodule.sh:1124
msgid "blob"
msgstr "Blob"
-#: git-submodule.sh:1155
-msgid "Submodules changed but not updated:"
-msgstr "Submodule geändert, aber nicht aktualisiert:"
-
-#: git-submodule.sh:1157
-msgid "Submodule changes to be committed:"
-msgstr "Änderungen in Submodul zum Committen:"
-
-#: git-submodule.sh:1242
+#: git-submodule.sh:1238
#, sh-format
msgid "Failed to recurse into submodule path '$sm_path'"
msgstr "Fehler bei Rekursion in Submodul-Pfad '$sm_path'"
-#: git-submodule.sh:1306
+#: git-submodule.sh:1302
#, sh-format
msgid "Synchronizing submodule url for '$displaypath'"
msgstr "Synchronisiere Submodul-URL für '$displaypath'"
+#~ msgid "input paths are terminated by a null character"
+#~ msgstr "Eingabepfade sind durch ein NUL Zeichen abgeschlossen"
+
+#~ msgid "done\n"
+#~ msgstr "Fertig\n"
+
+#~ msgid ""
+#~ "The following untracked files would NOT be saved but need to be removed "
+#~ "by stash save:"
+#~ msgstr ""
+#~ "Die folgenden unbeobachteten Dateien würden NICHT gespeichert werden,\n"
+#~ "müssen aber durch \"stash save\" entfernt werden:"
+
+#~ msgid ""
+#~ "Aborting. Consider using either the --force or --include-untracked option."
+#~ msgstr ""
+#~ "Abgebrochen. Benutzen Sie entweder die Option --force oder --include-"
+#~ "untracked."
+
#~ msgid " (fix conflicts and then run \"git am --resolved\")"
#~ msgstr ""
#~ " (beheben Sie die Konflikte und führen Sie dann \"git am --resolved\" "
@@ -10783,9 +11068,6 @@ msgstr "Synchronisiere Submodul-URL für '$displaypath'"
#~ msgid "-B cannot be used with -b"
#~ msgstr "-B kann nicht mit -b benutzt werden"
-#~ msgid "--patch is incompatible with all other options"
-#~ msgstr "--patch ist inkompatibel mit allen anderen Optionen"
-
#~ msgid "--detach cannot be used with -b/-B/--orphan"
#~ msgstr "--detach kann nicht mit -b/-B/--orphan benutzt werden"
diff --git a/po/fr.po b/po/fr.po
index 7a7daa3..44995ba 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -72,8 +72,8 @@ msgid ""
msgstr ""
"Project-Id-Version: git\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2013-08-06 14:10+0800\n"
-"PO-Revision-Date: 2013-10-05 21:17+0200\n"
+"POT-Creation-Date: 2013-11-02 08:06+0800\n"
+"PO-Revision-Date: 2013-11-07 21:41+0100\n"
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: Jean-Noël Avila <jn.avila@free.fr>\n"
"Language: fr\n"
@@ -123,71 +123,76 @@ msgstr ""
msgid "git archive --remote <repo> [--exec <cmd>] --list"
msgstr "git archive --remote <dépôt> [--exec <commande>] --list"
-#: archive.c:323
+#: archive.c:242 builtin/add.c:240 builtin/add.c:556 builtin/rm.c:328
+#, c-format
+msgid "pathspec '%s' did not match any files"
+msgstr "le chemin '%s' ne correspond à aucun fichier"
+
+#: archive.c:327
msgid "fmt"
msgstr "fmt"
-#: archive.c:323
+#: archive.c:327
msgid "archive format"
msgstr "format d'archive"
-#: archive.c:324 builtin/log.c:1173
+#: archive.c:328 builtin/log.c:1193
msgid "prefix"
msgstr "préfixe"
-#: archive.c:325
+#: archive.c:329
msgid "prepend prefix to each pathname in the archive"
msgstr "préfixer chaque chemin de fichier dans l'archive"
-#: archive.c:326 builtin/archive.c:88 builtin/blame.c:2292
-#: builtin/blame.c:2293 builtin/config.c:56 builtin/fast-export.c:673
-#: builtin/fast-export.c:675 builtin/grep.c:714 builtin/hash-object.c:77
-#: builtin/ls-files.c:496 builtin/ls-files.c:499 builtin/notes.c:408
-#: builtin/notes.c:565 builtin/read-tree.c:108 parse-options.h:152
+#: archive.c:330 builtin/archive.c:88 builtin/blame.c:2264
+#: builtin/blame.c:2265 builtin/config.c:58 builtin/fast-export.c:680
+#: builtin/fast-export.c:682 builtin/grep.c:716 builtin/hash-object.c:77
+#: builtin/ls-files.c:486 builtin/ls-files.c:489 builtin/notes.c:408
+#: builtin/notes.c:565 builtin/read-tree.c:108 parse-options.h:154
msgid "file"
msgstr "fichier"
-#: archive.c:327 builtin/archive.c:89
+#: archive.c:331 builtin/archive.c:89
msgid "write the archive to this file"
msgstr "écrire l'archive dans ce fichier"
-#: archive.c:329
+#: archive.c:333
msgid "read .gitattributes in working directory"
msgstr "lire .gitattributes dans le répertoire de travail"
-#: archive.c:330
+#: archive.c:334
msgid "report archived files on stderr"
msgstr "afficher les fichiers archivés sur stderr"
-#: archive.c:331
+#: archive.c:335
msgid "store only"
msgstr "stockage seulement"
-#: archive.c:332
+#: archive.c:336
msgid "compress faster"
msgstr "compression rapide"
-#: archive.c:340
+#: archive.c:344
msgid "compress better"
msgstr "compression efficace"
-#: archive.c:343
+#: archive.c:347
msgid "list supported archive formats"
msgstr "afficher les formats d'archive supportés"
-#: archive.c:345 builtin/archive.c:90 builtin/clone.c:85
+#: archive.c:349 builtin/archive.c:90 builtin/clone.c:84
msgid "repo"
msgstr "dépôt"
-#: archive.c:346 builtin/archive.c:91
+#: archive.c:350 builtin/archive.c:91
msgid "retrieve the archive from remote repository <repo>"
msgstr "récupérer l'archive depuis le dépôt distant <dépôt>"
-#: archive.c:347 builtin/archive.c:92 builtin/notes.c:487
+#: archive.c:351 builtin/archive.c:92 builtin/notes.c:487
msgid "command"
msgstr "commande"
-#: archive.c:348 builtin/archive.c:93
+#: archive.c:352 builtin/archive.c:93
msgid "path to the remote git-upload-archive command"
msgstr "chemin vers la commande distante git-upload-archive"
@@ -275,19 +280,19 @@ msgstr "Une branche nommée '%s' existe déjà."
msgid "Cannot force update the current branch."
msgstr "Impossible de forcer la mise à jour de la branche courante."
-#: branch.c:216
+#: branch.c:215
#, c-format
msgid "Cannot setup tracking information; starting point '%s' is not a branch."
msgstr ""
"Impossible de paramétrer le suivi de branche ; le point de départ '%s' n'est "
"pas une branche."
-#: branch.c:218
+#: branch.c:217
#, c-format
msgid "the requested upstream branch '%s' does not exist"
msgstr "la branche amont demandée '%s' n'existe pas"
-#: branch.c:220
+#: branch.c:219
msgid ""
"\n"
"If you are planning on basing your work on an upstream\n"
@@ -307,26 +312,26 @@ msgstr ""
"sa jumelle distante, vous souhaiterez utiliser \"git push -u\"\n"
"pour paramétrer le suivi distant en même temps que vous poussez."
-#: branch.c:265
+#: branch.c:264
#, c-format
msgid "Not a valid object name: '%s'."
msgstr "Nom d'objet invalide : '%s'."
-#: branch.c:285
+#: branch.c:284
#, c-format
msgid "Ambiguous object name: '%s'."
msgstr "Nom d'objet ambigu : '%s'."
-#: branch.c:290
+#: branch.c:289
#, c-format
msgid "Not a valid branch point: '%s'."
msgstr "Point d'embranchement invalide : '%s'."
-#: branch.c:296
+#: branch.c:295
msgid "Failed to lock ref for update"
msgstr "Échec du verrouillage de la référence pour mise à jour"
-#: branch.c:314
+#: branch.c:313
msgid "Failed to write ref"
msgstr "Échec de l'écriture de la référence"
@@ -340,7 +345,7 @@ msgstr "'%s' ne semble pas être un fichier bundle v2"
msgid "unrecognized header: %s%s (%d)"
msgstr "en-tête non reconnu : %s%s (%d)"
-#: bundle.c:89 builtin/commit.c:697
+#: bundle.c:89 builtin/commit.c:706
#, c-format
msgid "could not open '%s'"
msgstr "impossible d'ouvrir '%s'"
@@ -349,9 +354,9 @@ msgstr "impossible d'ouvrir '%s'"
msgid "Repository lacks these prerequisite commits:"
msgstr "Le dépôt ne dispose pas des commits prérequis :"
-#: bundle.c:164 sequencer.c:661 sequencer.c:1111 builtin/log.c:331
-#: builtin/log.c:801 builtin/log.c:1399 builtin/log.c:1625 builtin/merge.c:364
-#: builtin/shortlog.c:156
+#: bundle.c:164 sequencer.c:662 sequencer.c:1112 builtin/log.c:332
+#: builtin/log.c:821 builtin/log.c:1418 builtin/log.c:1644 builtin/merge.c:364
+#: builtin/shortlog.c:158
msgid "revision walk setup failed"
msgstr "échec de la préparation du parcours des révisions"
@@ -377,7 +382,7 @@ msgstr[1] "Le colis exige ces %d références :"
msgid "rev-list died"
msgstr "rev-list a disparu"
-#: bundle.c:300 builtin/log.c:1310 builtin/shortlog.c:259
+#: bundle.c:300 builtin/log.c:1329 builtin/shortlog.c:261
#, c-format
msgid "unrecognized argument: %s"
msgstr "argument non reconnu : %s"
@@ -529,7 +534,7 @@ msgstr ""
"Erreurs dans la variable de configuration 'diff.dirstat' :\n"
"%s"
-#: diff.c:3487
+#: diff.c:3490
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -538,7 +543,7 @@ msgstr ""
"Impossible d'analyser le paramètre de l'option --dirstat/-X :\n"
"%s"
-#: diff.c:3501
+#: diff.c:3504
#, c-format
msgid "Failed to parse --submodule option parameter: '%s'"
msgstr "Impossible d'analyser le paramètre de l'option --submodule : '%s'"
@@ -565,17 +570,17 @@ msgstr "impossible de créer un fichier temporaire '%s' : %s"
msgid "failed writing detached signature to '%s': %s"
msgstr "impossible d'écrire la signature détachée dans '%s' : %s"
-#: grep.c:1623
+#: grep.c:1695
#, c-format
msgid "'%s': unable to read %s"
msgstr "'%s' : lecture de %s impossible"
-#: grep.c:1640
+#: grep.c:1712
#, c-format
msgid "'%s': %s"
msgstr "'%s' : %s"
-#: grep.c:1651
+#: grep.c:1723
#, c-format
msgid "'%s': short read %s"
msgstr "'%s' : lecture tronquée %s"
@@ -649,8 +654,8 @@ msgstr "%s: %s - %s"
msgid "failed to read the cache"
msgstr "impossible de lire le cache"
-#: merge.c:110 builtin/checkout.c:365 builtin/checkout.c:566
-#: builtin/clone.c:656
+#: merge.c:110 builtin/checkout.c:358 builtin/checkout.c:559
+#: builtin/clone.c:655
msgid "unable to write new index file"
msgstr "impossible d'écrire le nouveau fichier d'index"
@@ -699,7 +704,7 @@ msgstr "impossible de lire l'objet %s '%s'"
msgid "blob expected for %s '%s'"
msgstr "blob attendu pour %s '%s'"
-#: merge-recursive.c:774 builtin/clone.c:312
+#: merge-recursive.c:774 builtin/clone.c:311
#, c-format
msgid "failed to open '%s'"
msgstr "échec à l'ouverture de '%s'"
@@ -835,7 +840,7 @@ msgstr "%s sauté (fusion identique à l'existant)"
msgid "Auto-merging %s"
msgstr "Fusion automatique de %s"
-#: merge-recursive.c:1634 git-submodule.sh:1118
+#: merge-recursive.c:1634 git-submodule.sh:1125
msgid "submodule"
msgstr "sous-module"
@@ -931,58 +936,121 @@ msgstr "Refus de réécrire des notes dans %s (hors de refs/notes/)"
msgid "Bad %s value: '%s'"
msgstr "Mauvaise valeur de %s : '%s'"
-#: object.c:204
+#: object.c:202
#, c-format
msgid "unable to parse object: %s"
msgstr "impossible d'analyser l'objet : %s"
-#: parse-options.c:489
+#: parse-options.c:537
msgid "..."
msgstr "..."
-#: parse-options.c:507
+#: parse-options.c:555
#, c-format
msgid "usage: %s"
msgstr "usage : %s"
#. TRANSLATORS: the colon here should align with the
#. one in "usage: %s" translation
-#: parse-options.c:511
+#: parse-options.c:559
#, c-format
msgid " or: %s"
msgstr " ou : %s"
-#: parse-options.c:514
+#: parse-options.c:562
#, c-format
msgid " %s"
msgstr " %s"
-#: parse-options.c:548
+#: parse-options.c:596
msgid "-NUM"
msgstr "-NUM"
-#: pathspec.c:83
+#: pathspec.c:118
+msgid "global 'glob' and 'noglob' pathspec settings are incompatible"
+msgstr "les réglages de spécificateurs de chemin généraux 'glob' et 'noglob' sont incompatibles"
+
+#: pathspec.c:128
+msgid ""
+"global 'literal' pathspec setting is incompatible with all other global "
+"pathspec settings"
+msgstr "le réglage global de spécificateur de chemin 'literal' est incompatible avec tous les autres réglages globaux de spécificateur de chemin"
+
+#: pathspec.c:158
+msgid "invalid parameter for pathspec magic 'prefix'"
+msgstr "paramètre invalide pour le spécificateur magique de chemin 'prefix'"
+
+#: pathspec.c:164
+#, c-format
+msgid "Invalid pathspec magic '%.*s' in '%s'"
+msgstr "La spécification magique de chemin '%.*s' est invalide dans '%s'"
+
+#: pathspec.c:168
+#, c-format
+msgid "Missing ')' at the end of pathspec magic in '%s'"
+msgstr "')' manquante à la fin du spécificateur magique de chemin dans '%s'"
+
+#: pathspec.c:186
+#, c-format
+msgid "Unimplemented pathspec magic '%c' in '%s'"
+msgstr "Spécificateur magique '%c' non implémenté dans '%s'"
+
+#: pathspec.c:211
+#, c-format
+msgid "%s: 'literal' and 'glob' are incompatible"
+msgstr "%s : 'literal' et 'glob' sont incompatibles"
+
+#: pathspec.c:222
+#, c-format
+msgid "%s: '%s' is outside repository"
+msgstr "%s : '%s' est hors du dépôt"
+
+#: pathspec.c:278
#, c-format
-msgid "Path '%s' is in submodule '%.*s'"
+msgid "Pathspec '%s' is in submodule '%.*s'"
msgstr "Le chemin '%s' est dans le sous-module '%.*s'"
-#: pathspec.c:99
+#.
+#. * We may want to substitute "this command" with a command
+#. * name. E.g. when add--interactive dies when running
+#. * "checkout -p"
+#.
+#: pathspec.c:340
#, c-format
-msgid "'%s' is beyond a symbolic link"
-msgstr "'%s' est au delà d'un lien symbolique"
+msgid "%s: pathspec magic not supported by this command: %s"
+msgstr "%s : le spécificateur magique de chemin n'est pas supporté par cette commande : %s"
-#: remote.c:1788
+#: pathspec.c:415
+#, c-format
+msgid "pathspec '%s' is beyond a symbolic link"
+msgstr "le chemin '%s' est au-delà d'un lien symbolique"
+
+#: remote.c:1833
+#, c-format
+msgid "Your branch is based on '%s', but the upstream is gone.\n"
+msgstr "Votre branche est basée sur '%s', mais la branche amont a disparu.\n"
+
+#: remote.c:1837
+msgid " (use \"git branch --unset-upstream\" to fixup)\n"
+msgstr " (utilisez \"git branch -unset-upstream\" pour corriger)\n"
+
+#: remote.c:1840
+#, c-format
+msgid "Your branch is up-to-date with '%s'.\n"
+msgstr "Votre branche est à jour avec '%s'.\n"
+
+#: remote.c:1844
#, c-format
msgid "Your branch is ahead of '%s' by %d commit.\n"
msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
msgstr[0] "Votre branche est en avance sur '%s' de %d commit.\n"
msgstr[1] "Votre branche est en avance sur '%s' de %d commits.\n"
-#: remote.c:1794
+#: remote.c:1850
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (utilisez \"git push\" pour publier vos commits locaux)\n"
-#: remote.c:1797
+#: remote.c:1853
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -994,11 +1062,11 @@ msgstr[1] ""
"Votre branche est en retard sur '%s' de %d commits, et peut être mise à jour "
"en avance rapide.\n"
-#: remote.c:1805
+#: remote.c:1861
msgid " (use \"git pull\" to update your local branch)\n"
msgstr " (utilisez \"git pull\" pour mettre à jour votre branche locale)\n"
-#: remote.c:1808
+#: remote.c:1864
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -1013,7 +1081,7 @@ msgstr[1] ""
"Votre branche et '%s' ont divergé,\n"
"et ont %d et %d commits différents chacune respectivement.\n"
-#: remote.c:1818
+#: remote.c:1874
msgid " (use \"git pull\" to merge the remote branch into yours)\n"
msgstr ""
" (utilisez \"git pull\" pour fusionner la branche distante dans la vôtre)\n"
@@ -1057,7 +1125,7 @@ msgstr ""
"avec 'git add <chemins>' ou 'git rm <chemins>'\n"
"puis validez le résultat avec 'git commit'"
-#: sequencer.c:245 sequencer.c:869 sequencer.c:952
+#: sequencer.c:245 sequencer.c:870 sequencer.c:953
#, c-format
msgid "Could not write to %s"
msgstr "Impossible d'écrire dans %s"
@@ -1077,47 +1145,47 @@ msgstr "Vos modifications locales seraient écrasées par revert."
#: sequencer.c:268
msgid "Commit your changes or stash them to proceed."
-msgstr "Validez vos modifications ou remisez-les pour continuer."
+msgstr "Validez vos modifications ou les remiser pour continuer."
#. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:324
+#: sequencer.c:325
#, c-format
msgid "%s: Unable to write new index file"
msgstr "%s: Impossible d'écrire le nouveau fichier index"
-#: sequencer.c:355
+#: sequencer.c:356
msgid "Could not resolve HEAD commit\n"
msgstr "Impossible de résoudre le commit HEAD\n"
-#: sequencer.c:377
+#: sequencer.c:378
msgid "Unable to update cache tree\n"
msgstr "Impossible de mettre à jour l'arbre de cache\n"
-#: sequencer.c:422
+#: sequencer.c:423
#, c-format
msgid "Could not parse commit %s\n"
msgstr "Impossible d'analyser le commit %s\n"
-#: sequencer.c:427
+#: sequencer.c:428
#, c-format
msgid "Could not parse parent commit %s\n"
msgstr "Impossible d'analyser le commit parent %s\n"
-#: sequencer.c:493
+#: sequencer.c:494
msgid "Your index file is unmerged."
msgstr "Votre fichier d'index n'est pas fusionné."
-#: sequencer.c:512
+#: sequencer.c:513
#, c-format
msgid "Commit %s is a merge but no -m option was given."
msgstr "Le commit %s est une fusion mais l'option -m n'a pas été spécifiée."
-#: sequencer.c:520
+#: sequencer.c:521
#, c-format
msgid "Commit %s does not have parent %d"
msgstr "Le commit %s n'a pas le parent %d"
-#: sequencer.c:524
+#: sequencer.c:525
#, c-format
msgid "Mainline was specified but commit %s is not a merge."
msgstr ""
@@ -1126,153 +1194,153 @@ msgstr ""
#. TRANSLATORS: The first %s will be "revert" or
#. "cherry-pick", the second %s a SHA1
-#: sequencer.c:537
+#: sequencer.c:538
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s : impossible d'analyser le commit parent %s"
-#: sequencer.c:541
+#: sequencer.c:542
#, c-format
msgid "Cannot get commit message for %s"
msgstr "Impossible d'obtenir un message de validation pour %s"
-#: sequencer.c:627
+#: sequencer.c:628
#, c-format
msgid "could not revert %s... %s"
msgstr "impossible d'annuler %s... %s"
-#: sequencer.c:628
+#: sequencer.c:629
#, c-format
msgid "could not apply %s... %s"
msgstr "impossible d'appliquer %s... %s"
-#: sequencer.c:664
+#: sequencer.c:665
msgid "empty commit set passed"
msgstr "l'ensemble de commits spécifié est vide"
-#: sequencer.c:672
+#: sequencer.c:673
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s : échec à la lecture de l'index"
-#: sequencer.c:677
+#: sequencer.c:678
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s : échec du rafraîchissement de l'index"
-#: sequencer.c:735
+#: sequencer.c:736
#, c-format
msgid "Cannot %s during a %s"
msgstr "Impossible de %s pendant un %s"
-#: sequencer.c:757
+#: sequencer.c:758
#, c-format
msgid "Could not parse line %d."
msgstr "Impossible d'analyser la ligne %d."
-#: sequencer.c:762
+#: sequencer.c:763
msgid "No commits parsed."
msgstr "Aucun commit analysé."
-#: sequencer.c:775
+#: sequencer.c:776
#, c-format
msgid "Could not open %s"
msgstr "Impossible d'ouvrir %s"
-#: sequencer.c:779
+#: sequencer.c:780
#, c-format
msgid "Could not read %s."
msgstr "Impossible de lire %s."
-#: sequencer.c:786
+#: sequencer.c:787
#, c-format
msgid "Unusable instruction sheet: %s"
msgstr "Feuille d'instruction inutilisable : %s"
-#: sequencer.c:814
+#: sequencer.c:815
#, c-format
msgid "Invalid key: %s"
msgstr "Clé invalide: %s"
-#: sequencer.c:817
+#: sequencer.c:818
#, c-format
msgid "Invalid value for %s: %s"
msgstr "Valeur invalide pour %s : %s"
-#: sequencer.c:829
+#: sequencer.c:830
#, c-format
msgid "Malformed options sheet: %s"
msgstr "Feuille d'options malformée : %s"
-#: sequencer.c:850
+#: sequencer.c:851
msgid "a cherry-pick or revert is already in progress"
msgstr "un picorage ou un retour est déjà en cours"
-#: sequencer.c:851
+#: sequencer.c:852
msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
msgstr "essayez \"git cherry-pick (--continue|--quit|-- abort)\""
-#: sequencer.c:855
+#: sequencer.c:856
#, c-format
msgid "Could not create sequencer directory %s"
msgstr "Impossible de créer le répertoire de séquenceur %s"
-#: sequencer.c:871 sequencer.c:956
+#: sequencer.c:872 sequencer.c:957
#, c-format
msgid "Error wrapping up %s."
msgstr "Erreur lors de l'emballage de %s."
-#: sequencer.c:890 sequencer.c:1024
+#: sequencer.c:891 sequencer.c:1025
msgid "no cherry-pick or revert in progress"
msgstr "aucun picorage ou retour en cours"
-#: sequencer.c:892
+#: sequencer.c:893
msgid "cannot resolve HEAD"
msgstr "impossible de résoudre HEAD"
-#: sequencer.c:894
+#: sequencer.c:895
msgid "cannot abort from a branch yet to be born"
msgstr "impossible d'abandonner depuis une branche non encore créée"
-#: sequencer.c:916 builtin/apply.c:4061
+#: sequencer.c:917 builtin/apply.c:4061
#, c-format
msgid "cannot open %s: %s"
msgstr "impossible d'ouvrir %s : %s"
-#: sequencer.c:919
+#: sequencer.c:920
#, c-format
msgid "cannot read %s: %s"
msgstr "impossible de lire %s : %s"
-#: sequencer.c:920
+#: sequencer.c:921
msgid "unexpected end of file"
msgstr "fin de fichier inattendue"
-#: sequencer.c:926
+#: sequencer.c:927
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr "le fichier HEAD de préparation de picorage '%s' est corrompu"
-#: sequencer.c:949
+#: sequencer.c:950
#, c-format
msgid "Could not format %s."
msgstr "Impossible de formater %s."
-#: sequencer.c:1092
+#: sequencer.c:1093
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s : impossible de picorer un %s"
-#: sequencer.c:1095
+#: sequencer.c:1096
#, c-format
msgid "%s: bad revision"
msgstr "%s : mauvaise révision"
-#: sequencer.c:1129
+#: sequencer.c:1130
msgid "Can't revert as initial commit"
msgstr "Impossible d'annuler en tant que commit initial"
-#: sequencer.c:1130
+#: sequencer.c:1131
msgid "Can't cherry-pick into empty head"
msgstr "Impossible de picorer vers une HEAD vide"
@@ -1301,261 +1369,354 @@ msgstr ""
"message\n"
"en lançant \"git config advice.objectNameWarning false\""
-#: sha1_name.c:1097
+#: sha1_name.c:1112
msgid "HEAD does not point to a branch"
msgstr "HEAD ne pointe pas sur une branche"
-#: sha1_name.c:1100
+#: sha1_name.c:1115
#, c-format
msgid "No such branch: '%s'"
msgstr "Branche inconnue : '%s'"
-#: sha1_name.c:1102
+#: sha1_name.c:1117
#, c-format
msgid "No upstream configured for branch '%s'"
msgstr "Aucune branche amont configurée pour la branche '%s'"
-#: sha1_name.c:1106
+#: sha1_name.c:1121
#, c-format
msgid "Upstream branch '%s' not stored as a remote-tracking branch"
msgstr "La branche amont '%s' n'est pas stockée comme branche de suivi"
-#: wrapper.c:408
+#: submodule.c:64 submodule.c:98
+msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
+msgstr "Modification impossible de .gitmodules non fusionné, résolvez les conflits d'abord"
+
+#: submodule.c:68 submodule.c:102
+#, c-format
+msgid "Could not find section in .gitmodules where path=%s"
+msgstr "Impossible de trouver une section où path=%s dans .gitmodules"
+
+#. Maybe the user already did that, don't error out here
+#: submodule.c:76
+#, c-format
+msgid "Could not update .gitmodules entry %s"
+msgstr "Impossible de mettre à jour l'élément %s de .gitmodules"
+
+# ici %s est un chemin
+#. Maybe the user already did that, don't error out here
+#: submodule.c:109
+#, c-format
+msgid "Could not remove .gitmodules entry for %s"
+msgstr "Impossible de supprimer l'élément de .gitmodules pour %s"
+
+#: submodule.c:127
+msgid "could not find .gitmodules in index"
+msgstr "impossible de trouver .gitmodules dans l'index"
+
+#: submodule.c:133
+msgid "reading updated .gitmodules failed"
+msgstr "échec de la lecture du .gitmodules mis à jour"
+
+#: submodule.c:135
+msgid "unable to stat updated .gitmodules"
+msgstr "échec de stat du .gitmodules mis à jour"
+
+#: submodule.c:139
+msgid "unable to remove .gitmodules from index"
+msgstr "suppression du .gitmodules dans l'index impossible"
+
+#: submodule.c:141
+msgid "adding updated .gitmodules failed"
+msgstr "échec de l'ajout du .gitmodules mis à jour"
+
+#: submodule.c:143
+msgid "staging updated .gitmodules failed"
+msgstr "échec de la mise en index du .gitmodules mis à jour"
+
+#: submodule.c:1144 builtin/init-db.c:363
+#, c-format
+msgid "Could not create git link %s"
+msgstr "Impossible de créer le lien git %s"
+
+#: submodule.c:1155
+#, c-format
+msgid "Could not set core.worktree in %s"
+msgstr "Impossible de paramétrer core.worktree dans %s"
+
+#: urlmatch.c:120
+msgid "invalid URL scheme name or missing '://' suffix"
+msgstr "nom de schéma d'URL invalide ou suffixe '://' manquant"
+
+#: urlmatch.c:144 urlmatch.c:297 urlmatch.c:356
+#, c-format
+msgid "invalid %XX escape sequence"
+msgstr "séquence d'échappement %XX invalide"
+
+#: urlmatch.c:172
+msgid "missing host and scheme is not 'file:'"
+msgstr "hôte manquant et le schéma n'est pas 'file:'"
+
+#: urlmatch.c:189
+msgid "a 'file:' URL may not have a port number"
+msgstr "une URL 'file:' ne peut pas contenir de numéro de port"
+
+#: urlmatch.c:199
+msgid "invalid characters in host name"
+msgstr "caractères invalides dans le nom d'hôte"
+
+#: urlmatch.c:244 urlmatch.c:255
+msgid "invalid port number"
+msgstr "numéro de port invalide"
+
+#: urlmatch.c:322
+msgid "invalid '..' path segment"
+msgstr "segment de chemin '..' invalide"
+
+#: wrapper.c:422
#, c-format
msgid "unable to access '%s': %s"
msgstr "impossible d'accéder à '%s' : %s"
-#: wrapper.c:429
+#: wrapper.c:443
#, c-format
msgid "unable to access '%s'"
msgstr "impossible d'accéder à '%s'"
-#: wrapper.c:440
+#: wrapper.c:454
#, c-format
msgid "unable to look up current user in the passwd file: %s"
msgstr ""
"impossible de rechercher l'utilisateur actuel dans le fichier de mots de "
"passe : %s"
-#: wrapper.c:441
+#: wrapper.c:455
msgid "no such user"
msgstr "utilisateur inconnu"
-#: wt-status.c:141
+#: wt-status.c:146
msgid "Unmerged paths:"
msgstr "Chemins non fusionnés :"
-#: wt-status.c:168 wt-status.c:195
+#: wt-status.c:173 wt-status.c:200
#, c-format
msgid " (use \"git reset %s <file>...\" to unstage)"
msgstr " (utilisez \"git reset %s <fichier>...\" pour désindexer)"
-#: wt-status.c:170 wt-status.c:197
+#: wt-status.c:175 wt-status.c:202
msgid " (use \"git rm --cached <file>...\" to unstage)"
msgstr " (utilisez \"git rm --cached <fichier>...\" pour désindexer)"
-#: wt-status.c:174
+#: wt-status.c:179
msgid " (use \"git add <file>...\" to mark resolution)"
msgstr " (utilisez \"git add <fichier>...\" pour marquer comme résolu)"
-#: wt-status.c:176 wt-status.c:180
+#: wt-status.c:181 wt-status.c:185
msgid " (use \"git add/rm <file>...\" as appropriate to mark resolution)"
msgstr ""
" (utilisez \"git add/rm <fichier>...\" si nécessaire pour marquer comme "
"résolu)"
-#: wt-status.c:178
+#: wt-status.c:183
msgid " (use \"git rm <file>...\" to mark resolution)"
msgstr " (utilisez \"git rm <fichier>...\" pour marquer comme résolu)"
-#: wt-status.c:189
+#: wt-status.c:194
msgid "Changes to be committed:"
msgstr "Modifications qui seront validées :"
-#: wt-status.c:207
+#: wt-status.c:212
msgid "Changes not staged for commit:"
msgstr "Modifications qui ne seront pas validées :"
-#: wt-status.c:211
+#: wt-status.c:216
msgid " (use \"git add <file>...\" to update what will be committed)"
msgstr ""
" (utilisez \"git add <fichier>...\" pour mettre à jour ce qui sera validé)"
-#: wt-status.c:213
+#: wt-status.c:218
msgid " (use \"git add/rm <file>...\" to update what will be committed)"
msgstr ""
" (utilisez \"git add/rm <fichier>...\" pour mettre à jour ce qui sera "
"validé)"
-#: wt-status.c:214
+#: wt-status.c:219
msgid ""
" (use \"git checkout -- <file>...\" to discard changes in working directory)"
msgstr ""
" (utilisez \"git checkout -- <fichier>...\" pour annuler les modifications "
"dans la copie de travail)"
-#: wt-status.c:216
+#: wt-status.c:221
msgid " (commit or discard the untracked or modified content in submodules)"
msgstr ""
" (valider ou annuler le contenu non suivi ou modifié dans les sous-modules)"
-#: wt-status.c:228
+#: wt-status.c:233
#, c-format
msgid " (use \"git %s <file>...\" to include in what will be committed)"
msgstr ""
" (utilisez \"git %s <fichier>...\" pour inclure dans ce qui sera validé)"
-#: wt-status.c:245
+#: wt-status.c:250
msgid "bug"
msgstr "bogue"
-#: wt-status.c:250
+#: wt-status.c:255
msgid "both deleted:"
msgstr "supprimé des deux côtés :"
-#: wt-status.c:251
+#: wt-status.c:256
msgid "added by us:"
msgstr "ajouté par nous :"
-#: wt-status.c:252
+#: wt-status.c:257
msgid "deleted by them:"
msgstr "supprimé par eux :"
-#: wt-status.c:253
+#: wt-status.c:258
msgid "added by them:"
msgstr "ajouté par eux :"
-#: wt-status.c:254
+#: wt-status.c:259
msgid "deleted by us:"
msgstr "supprimé par nous :"
-#: wt-status.c:255
+#: wt-status.c:260
msgid "both added:"
msgstr "ajouté de deux côtés :"
-#: wt-status.c:256
+#: wt-status.c:261
msgid "both modified:"
msgstr "modifié des deux côtés :"
-#: wt-status.c:286
+#: wt-status.c:291
msgid "new commits, "
msgstr "nouveaux commits, "
-#: wt-status.c:288
+#: wt-status.c:293
msgid "modified content, "
msgstr "contenu modifié, "
-#: wt-status.c:290
+#: wt-status.c:295
msgid "untracked content, "
msgstr "contenu non suivi, "
-#: wt-status.c:307
+#: wt-status.c:312
#, c-format
msgid "new file: %s"
msgstr "nouveau : %s"
-#: wt-status.c:310
+#: wt-status.c:315
#, c-format
msgid "copied: %s -> %s"
msgstr "copié : %s -> %s"
-#: wt-status.c:313
+#: wt-status.c:318
#, c-format
msgid "deleted: %s"
msgstr "supprimé : %s"
-#: wt-status.c:316
+#: wt-status.c:321
#, c-format
msgid "modified: %s"
msgstr "modifié : %s"
-#: wt-status.c:319
+#: wt-status.c:324
#, c-format
msgid "renamed: %s -> %s"
msgstr "renommé : %s -> %s"
-#: wt-status.c:322
+#: wt-status.c:327
#, c-format
msgid "typechange: %s"
msgstr "nv type : %s"
-#: wt-status.c:325
+#: wt-status.c:330
#, c-format
msgid "unknown: %s"
msgstr "inconnu : %s"
-#: wt-status.c:328
+#: wt-status.c:333
#, c-format
msgid "unmerged: %s"
msgstr "non fus. : %s"
-#: wt-status.c:331
+#: wt-status.c:336
#, c-format
msgid "bug: unhandled diff status %c"
msgstr "bogue : état de diff non géré %c"
-#: wt-status.c:803
+#: wt-status.c:703
+msgid "Submodules changed but not updated:"
+msgstr "Sous-modules modifiés mais non mis à jour :"
+
+#: wt-status.c:705
+msgid "Submodule changes to be committed:"
+msgstr "Changements du sous-module à valider :"
+
+#: wt-status.c:848
msgid "You have unmerged paths."
msgstr "Vous avez des chemins non fusionnés."
-#: wt-status.c:806
+#: wt-status.c:851
msgid " (fix conflicts and run \"git commit\")"
msgstr " (réglez les conflits puis lancez \"git commit\")"
-#: wt-status.c:809
+#: wt-status.c:854
msgid "All conflicts fixed but you are still merging."
msgstr "Tous les conflits sont réglés mais la fusion n'est pas terminée."
-#: wt-status.c:812
+#: wt-status.c:857
msgid " (use \"git commit\" to conclude merge)"
msgstr " (utilisez \"git commit\" pour terminer la fusion)"
-#: wt-status.c:822
+#: wt-status.c:867
msgid "You are in the middle of an am session."
msgstr "Vous êtes au milieu d'une session am."
-#: wt-status.c:825
+#: wt-status.c:870
msgid "The current patch is empty."
msgstr "Le patch actuel est vide."
-#: wt-status.c:829
+#: wt-status.c:874
msgid " (fix conflicts and then run \"git am --continue\")"
msgstr " (réglez les conflits puis lancez \"git am --continue\")"
-#: wt-status.c:831
+#: wt-status.c:876
msgid " (use \"git am --skip\" to skip this patch)"
msgstr " (utilisez \"git am --skip\" pour sauter ce patch)"
-#: wt-status.c:833
+#: wt-status.c:878
msgid " (use \"git am --abort\" to restore the original branch)"
msgstr " (utilisez \"git am --abort\" pour restaurer la branche d'origine)"
-#: wt-status.c:893 wt-status.c:910
+#: wt-status.c:938 wt-status.c:955
#, c-format
msgid "You are currently rebasing branch '%s' on '%s'."
msgstr "Vous êtes en train de rebaser la branche '%s' sur '%s'."
-#: wt-status.c:898 wt-status.c:915
+#: wt-status.c:943 wt-status.c:960
msgid "You are currently rebasing."
msgstr "Vous êtes en train de rebaser."
-#: wt-status.c:901
+#: wt-status.c:946
msgid " (fix conflicts and then run \"git rebase --continue\")"
msgstr " (réglez les conflits puis lancez \"git rebase --continue\")"
-#: wt-status.c:903
+#: wt-status.c:948
msgid " (use \"git rebase --skip\" to skip this patch)"
msgstr " (utilisez \"git rebase --skip\" pour sauter ce patch)"
-#: wt-status.c:905
+#: wt-status.c:950
msgid " (use \"git rebase --abort\" to check out the original branch)"
msgstr " (utilisez \"git rebase --abort\" pour extraire la branche d'origine)"
-#: wt-status.c:918
+#: wt-status.c:963
msgid " (all conflicts fixed: run \"git rebase --continue\")"
msgstr " (tous les conflits sont réglés : lancez \"git rebase --continue\")"
-#: wt-status.c:922
+#: wt-status.c:967
#, c-format
msgid ""
"You are currently splitting a commit while rebasing branch '%s' on '%s'."
@@ -1563,119 +1724,120 @@ msgstr ""
"Vous êtes actuellement en train de fractionner un commit pendant un rebasage "
"de la branche '%s' sur '%s'."
-#: wt-status.c:927
+#: wt-status.c:972
msgid "You are currently splitting a commit during a rebase."
msgstr ""
"Vous êtes actuellement en train de fractionner un commit pendant un rebasage."
-#: wt-status.c:930
+#: wt-status.c:975
msgid " (Once your working directory is clean, run \"git rebase --continue\")"
msgstr ""
" (Une fois la copie de travail nettoyée, lancez \"git rebase --continue\")"
-#: wt-status.c:934
+#: wt-status.c:979
#, c-format
msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
msgstr ""
"Vous êtes actuellement en train d'éditer un commit pendant un rebasage de la "
"branche '%s' sur '%s'."
-#: wt-status.c:939
+#: wt-status.c:984
msgid "You are currently editing a commit during a rebase."
msgstr ""
"Vous êtes actuellement en train d'éditer un commit pendant un rebasage."
-#: wt-status.c:942
+#: wt-status.c:987
msgid " (use \"git commit --amend\" to amend the current commit)"
msgstr " (utilisez \"git commit --amend\" pour corriger le commit actuel)"
-#: wt-status.c:944
+#: wt-status.c:989
msgid ""
" (use \"git rebase --continue\" once you are satisfied with your changes)"
msgstr ""
" (utilisez \"git rebase --continue\" quand vous êtes satisfait de vos "
"modifications)"
-#: wt-status.c:954
-msgid "You are currently cherry-picking."
-msgstr "Vous êtes actuellement en train de picorer."
+#: wt-status.c:999
+#, c-format
+msgid "You are currently cherry-picking commit %s."
+msgstr "Vous êtes actuellement en train de picorer le commit %s."
-#: wt-status.c:958
+#: wt-status.c:1004
msgid " (fix conflicts and run \"git cherry-pick --continue\")"
msgstr " (réglez les conflits puis lancez \"git cherry-pick --continue\")"
-#: wt-status.c:961
+#: wt-status.c:1007
msgid " (all conflicts fixed: run \"git cherry-pick --continue\")"
msgstr ""
" (tous les conflits sont réglés : lancez \"git cherry-pick --continue\")"
-#: wt-status.c:963
+#: wt-status.c:1009
msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
msgstr " (utilisez \"git cherry-pick --abort\" pour annuler le picorage)"
-#: wt-status.c:972
+#: wt-status.c:1018
#, c-format
msgid "You are currently reverting commit %s."
msgstr "Vous êtes actuellement en train de rétablir le commit %s."
-#: wt-status.c:977
+#: wt-status.c:1023
msgid " (fix conflicts and run \"git revert --continue\")"
msgstr " (réglez les conflits puis lancez \"git revert --continue\")"
-#: wt-status.c:980
+#: wt-status.c:1026
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr " (tous les conflits sont réglés : lancez \"git revert --continue\")"
-#: wt-status.c:982
+#: wt-status.c:1028
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr " (utilisez \"git revert --abort\" pour annuler le rétablissement)"
-#: wt-status.c:993
+#: wt-status.c:1039
#, c-format
msgid "You are currently bisecting, started from branch '%s'."
msgstr "Vous êtes en cours de bissection, depuis la branche '%s'."
-#: wt-status.c:997
+#: wt-status.c:1043
msgid "You are currently bisecting."
msgstr "Vous êtes en cours de bissection."
-#: wt-status.c:1000
+#: wt-status.c:1046
msgid " (use \"git bisect reset\" to get back to the original branch)"
msgstr " (utilisez \"git bisect reset\" pour revenir à la branche d'origine)"
-#: wt-status.c:1173
+#: wt-status.c:1221
msgid "On branch "
msgstr "Sur la branche "
-#: wt-status.c:1180
+#: wt-status.c:1228
msgid "rebase in progress; onto "
msgstr "rebasage en cours ; sur "
-#: wt-status.c:1187
+#: wt-status.c:1235
msgid "HEAD detached at "
msgstr "HEAD détachée sur "
-#: wt-status.c:1189
+#: wt-status.c:1237
msgid "HEAD detached from "
msgstr "HEAD détachée depuis "
-#: wt-status.c:1192
+#: wt-status.c:1240
msgid "Not currently on any branch."
msgstr "Actuellement sur aucun branche."
-#: wt-status.c:1209
+#: wt-status.c:1257
msgid "Initial commit"
msgstr "Validation initiale"
-#: wt-status.c:1223
+#: wt-status.c:1271
msgid "Untracked files"
msgstr "Fichiers non suivis"
-#: wt-status.c:1225
+#: wt-status.c:1273
msgid "Ignored files"
msgstr "Fichiers ignorés"
-#: wt-status.c:1229
+#: wt-status.c:1277
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -1687,32 +1849,32 @@ msgstr ""
"oublier d'ajouter les nouveaux fichiers par vous-même (voir 'git help "
"status')."
-#: wt-status.c:1235
+#: wt-status.c:1283
#, c-format
msgid "Untracked files not listed%s"
msgstr "Fichiers non suivis non affichés%s"
-#: wt-status.c:1237
+#: wt-status.c:1285
msgid " (use -u option to show untracked files)"
msgstr " (utilisez -u pour afficher les fichiers non suivis)"
-#: wt-status.c:1243
+#: wt-status.c:1291
msgid "No changes"
msgstr "Aucune modification"
-#: wt-status.c:1248
+#: wt-status.c:1296
#, c-format
msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
msgstr ""
"aucune modification n'a été ajoutée à la validation (utilisez \"git add\" ou "
"\"git commit -a\")\n"
-#: wt-status.c:1251
+#: wt-status.c:1299
#, c-format
msgid "no changes added to commit\n"
msgstr "aucune modification ajoutée à la validation\n"
-#: wt-status.c:1254
+#: wt-status.c:1302
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
@@ -1721,56 +1883,61 @@ msgstr ""
"aucune modification ajoutée à la validation mais des fichiers non suivis "
"sont présents (utilisez \"git add\" pour les suivre)\n"
-#: wt-status.c:1257
+#: wt-status.c:1305
#, c-format
msgid "nothing added to commit but untracked files present\n"
msgstr ""
"aucune modification ajoutée à la validation mais des fichiers non suivis "
"sont présents\n"
-#: wt-status.c:1260
+#: wt-status.c:1308
#, c-format
msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
msgstr ""
"rien à valider (créez/copiez des fichiers et utilisez \"git add\" pour les "
"suivre)\n"
-#: wt-status.c:1263 wt-status.c:1268
+#: wt-status.c:1311 wt-status.c:1316
#, c-format
msgid "nothing to commit\n"
msgstr "rien à valider\n"
-#: wt-status.c:1266
+#: wt-status.c:1314
#, c-format
msgid "nothing to commit (use -u to show untracked files)\n"
msgstr "rien à valider (utilisez -u pour afficher les fichiers non suivis)\n"
-#: wt-status.c:1270
+#: wt-status.c:1318
#, c-format
msgid "nothing to commit, working directory clean\n"
msgstr "rien à valider, la copie de travail est propre\n"
-#: wt-status.c:1378
+#: wt-status.c:1427
msgid "HEAD (no branch)"
msgstr "HEAD (aucune branche)"
-#: wt-status.c:1384
+#: wt-status.c:1433
msgid "Initial commit on "
msgstr "Validation initiale sur "
-#: wt-status.c:1399
+# à priori on parle d'une branche ici
+#: wt-status.c:1463
+msgid "gone"
+msgstr "disparue"
+
+#: wt-status.c:1465
msgid "behind "
msgstr "derrière "
-#: wt-status.c:1402 wt-status.c:1405
+#: wt-status.c:1468 wt-status.c:1471
msgid "ahead "
msgstr "devant "
-#: wt-status.c:1407
+#: wt-status.c:1473
msgid ", behind "
msgstr ", derrière "
-#: compat/precompose_utf8.c:58 builtin/clone.c:351
+#: compat/precompose_utf8.c:55 builtin/clone.c:350
#, c-format
msgid "failed to unlink '%s'"
msgstr "échec lors de l'unlink de '%s'"
@@ -1859,7 +2026,7 @@ msgstr ""
msgid "unexpected diff status %c"
msgstr "status de diff inattendu %c"
-#: builtin/add.c:149 builtin/commit.c:252
+#: builtin/add.c:149 builtin/commit.c:260
msgid "updating files failed"
msgstr "échec de la mise à jour des fichiers"
@@ -1868,145 +2035,140 @@ msgstr "échec de la mise à jour des fichiers"
msgid "remove '%s'\n"
msgstr "suppression de '%s'\n"
-#: builtin/add.c:253
+#: builtin/add.c:237
msgid "Unstaged changes after refreshing the index:"
msgstr "Modifications non indexées après rafraîchissement de l'index :"
-#: builtin/add.c:256 builtin/add.c:573 builtin/rm.c:337
-#, c-format
-msgid "pathspec '%s' did not match any files"
-msgstr "le chemin '%s' ne correspond à aucun fichier"
-
-#: builtin/add.c:339
+#: builtin/add.c:299
msgid "Could not read the index"
msgstr "Impossible de lire l'index"
-#: builtin/add.c:350
+#: builtin/add.c:310
#, c-format
msgid "Could not open '%s' for writing."
msgstr "Impossible d'ouvrir '%s' en écriture."
-#: builtin/add.c:354
+#: builtin/add.c:314
msgid "Could not write patch"
msgstr "Impossible d'écrire le patch"
-#: builtin/add.c:359
+#: builtin/add.c:319
#, c-format
msgid "Could not stat '%s'"
msgstr "Stat de '%s' impossible"
-#: builtin/add.c:361
+#: builtin/add.c:321
msgid "Empty patch. Aborted."
msgstr "Patch vide. Abandon."
-#: builtin/add.c:367
+#: builtin/add.c:327
#, c-format
msgid "Could not apply '%s'"
msgstr "Impossible d'appliquer '%s'"
-#: builtin/add.c:377
+#: builtin/add.c:337
msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr ""
"Les chemins suivants sont ignorés par un de vos fichiers .gitignore :\n"
-#: builtin/add.c:394 builtin/clean.c:875 builtin/fetch.c:78 builtin/mv.c:63
-#: builtin/prune-packed.c:73 builtin/push.c:451 builtin/remote.c:1253
-#: builtin/rm.c:268
+#: builtin/add.c:354 builtin/clean.c:875 builtin/fetch.c:92 builtin/mv.c:66
+#: builtin/prune-packed.c:73 builtin/push.c:459 builtin/remote.c:1253
+#: builtin/rm.c:269
msgid "dry run"
msgstr "simuler l'action"
-#: builtin/add.c:395 builtin/apply.c:4410 builtin/check-ignore.c:19
-#: builtin/commit.c:1220 builtin/count-objects.c:95 builtin/fsck.c:613
-#: builtin/log.c:1573 builtin/mv.c:62 builtin/read-tree.c:113
+#: builtin/add.c:355 builtin/apply.c:4410 builtin/check-ignore.c:19
+#: builtin/commit.c:1249 builtin/count-objects.c:95 builtin/fsck.c:612
+#: builtin/log.c:1592 builtin/mv.c:65 builtin/read-tree.c:113
msgid "be verbose"
msgstr "mode verbeux"
-#: builtin/add.c:397
+#: builtin/add.c:357
msgid "interactive picking"
msgstr "sélection interactive"
-#: builtin/add.c:398 builtin/checkout.c:1073 builtin/reset.c:261
+#: builtin/add.c:358 builtin/checkout.c:1109 builtin/reset.c:272
msgid "select hunks interactively"
msgstr "sélection interactive des sections"
-#: builtin/add.c:399
+#: builtin/add.c:359
msgid "edit current diff and apply"
msgstr "édition du diff actuel et application"
-#: builtin/add.c:400
+#: builtin/add.c:360
msgid "allow adding otherwise ignored files"
msgstr "permettre l'ajout de fichiers ignorés"
-#: builtin/add.c:401
+#: builtin/add.c:361
msgid "update tracked files"
msgstr "mettre à jour les fichiers suivis"
-#: builtin/add.c:402
+#: builtin/add.c:362
msgid "record only the fact that the path will be added later"
msgstr "enregistrer seulement le fait que le chemin sera ajouté plus tard"
-#: builtin/add.c:403
+#: builtin/add.c:363
msgid "add changes from all tracked and untracked files"
msgstr "ajouter les modifications de tous les fichiers suivis et non suivis"
#. takes no arguments
-#: builtin/add.c:406
+#: builtin/add.c:366
msgid "ignore paths removed in the working tree (same as --no-all)"
msgstr ""
"ignorer les chemins effacés dans la copie de travail (identique à --no-all)"
-#: builtin/add.c:408
+#: builtin/add.c:368
msgid "don't add, only refresh the index"
msgstr "ne pas ajouter, juste rafraîchir l'index"
-#: builtin/add.c:409
+#: builtin/add.c:369
msgid "just skip files which cannot be added because of errors"
msgstr ""
"sauter seulement les fichiers qui ne peuvent pas être ajoutés du fait "
"d'erreurs"
-#: builtin/add.c:410
+#: builtin/add.c:370
msgid "check if - even missing - files are ignored in dry run"
msgstr "vérifier si des fichiers - même manquants - sont ignorés, à vide"
-#: builtin/add.c:432
+#: builtin/add.c:392
#, c-format
msgid "Use -f if you really want to add them.\n"
msgstr "Utilisez -f si vous voulez réellement les ajouter.\n"
-#: builtin/add.c:433
+#: builtin/add.c:393
msgid "no files added"
msgstr "aucun fichier ajouté"
-#: builtin/add.c:439
+#: builtin/add.c:399
msgid "adding files failed"
msgstr "échec de l'ajout de fichiers"
-#: builtin/add.c:478
+#: builtin/add.c:438
msgid "-A and -u are mutually incompatible"
msgstr "-A et -u sont mutuellement incompatibles"
-#: builtin/add.c:496
+#: builtin/add.c:456
msgid "Option --ignore-missing can only be used together with --dry-run"
msgstr ""
"L'option --ignore-missing ne peut être utilisée qu'en complément de --dry-run"
-#: builtin/add.c:526
+#: builtin/add.c:486
#, c-format
msgid "Nothing specified, nothing added.\n"
msgstr "Rien de spécifié, rien n'a été ajouté.\n"
-#: builtin/add.c:527
+#: builtin/add.c:487
#, c-format
msgid "Maybe you wanted to say 'git add .'?\n"
msgstr "Vous vouliez sûrement dire 'git add .' ?\n"
-#: builtin/add.c:533 builtin/check-ignore.c:161 builtin/clean.c:919
-#: builtin/commit.c:312 builtin/mv.c:82 builtin/rm.c:297
+#: builtin/add.c:492 builtin/check-ignore.c:172 builtin/clean.c:919
+#: builtin/commit.c:320 builtin/mv.c:86 builtin/reset.c:224 builtin/rm.c:299
msgid "index file corrupt"
msgstr "fichier d'index corrompu"
-#: builtin/add.c:605 builtin/apply.c:4506 builtin/mv.c:229 builtin/rm.c:432
+#: builtin/add.c:589 builtin/apply.c:4506 builtin/mv.c:259 builtin/rm.c:432
msgid "Unable to write new index file"
msgstr "Impossible d'écrire le nouveau fichier d'index"
@@ -2268,7 +2430,7 @@ msgstr "%s : le patch ne s'applique pas"
msgid "Checking patch %s..."
msgstr "Vérification du patch %s..."
-#: builtin/apply.c:3680 builtin/checkout.c:216 builtin/reset.c:127
+#: builtin/apply.c:3680 builtin/checkout.c:213 builtin/reset.c:127
#, c-format
msgid "make_cache_entry failed for path '%s'"
msgstr "échec de make_cache_entry pour le chemin '%s'"
@@ -2350,8 +2512,8 @@ msgstr "entrée non reconnue"
msgid "unable to read index file"
msgstr "lecture du fichier d'index impossible"
-#: builtin/apply.c:4357 builtin/apply.c:4360 builtin/clone.c:91
-#: builtin/fetch.c:63
+#: builtin/apply.c:4357 builtin/apply.c:4360 builtin/clone.c:90
+#: builtin/fetch.c:77
msgid "path"
msgstr "chemin"
@@ -2413,7 +2575,7 @@ msgid "build a temporary index based on embedded index information"
msgstr ""
"construire un index temporaire fondé sur l'information de l'index embarqué"
-#: builtin/apply.c:4389 builtin/checkout-index.c:197 builtin/ls-files.c:462
+#: builtin/apply.c:4389 builtin/checkout-index.c:197 builtin/ls-files.c:452
msgid "paths are separated with NUL character"
msgstr "les chemins sont séparés par un caractère NUL"
@@ -2547,108 +2709,108 @@ msgstr "effectuer 'git bisect next'"
msgid "update BISECT_HEAD instead of checking out the current commit"
msgstr "mettre à jour BISECT_HEAD au lieu d'extraire le commit actuel"
-#: builtin/blame.c:26
+#: builtin/blame.c:27
msgid "git blame [options] [rev-opts] [rev] [--] file"
msgstr "git blame [options] [options-de-révision] [rev] [--] fichier"
-#: builtin/blame.c:31
+#: builtin/blame.c:32
msgid "[rev-opts] are documented in git-rev-list(1)"
msgstr "[options-de-révision] sont documentés dans git-rev-list(1)"
-#: builtin/blame.c:2276
+#: builtin/blame.c:2248
msgid "Show blame entries as we find them, incrementally"
msgstr ""
"Montrer les éléments de blâme au fur et à mesure de leur découverte, de "
"manière incrémentale"
-#: builtin/blame.c:2277
+#: builtin/blame.c:2249
msgid "Show blank SHA-1 for boundary commits (Default: off)"
msgstr "Montrer un SHA-1 blanc pour les commits de limite (Défaut : désactivé)"
-#: builtin/blame.c:2278
+#: builtin/blame.c:2250
msgid "Do not treat root commits as boundaries (Default: off)"
msgstr ""
"Ne pas traiter les commits racine comme des limites (Défaut : désactivé)"
-#: builtin/blame.c:2279
+#: builtin/blame.c:2251
msgid "Show work cost statistics"
msgstr "Montrer les statistiques de coût d'activité"
-#: builtin/blame.c:2280
+#: builtin/blame.c:2252
msgid "Show output score for blame entries"
msgstr "Montrer le score de sortie pour les éléments de blâme"
-#: builtin/blame.c:2281
+#: builtin/blame.c:2253
msgid "Show original filename (Default: auto)"
msgstr "Montrer les noms de fichier originaux (Défaut : auto)"
-#: builtin/blame.c:2282
+#: builtin/blame.c:2254
msgid "Show original linenumber (Default: off)"
msgstr "Montrer les numéros de lignes originaux (Défaut : désactivé)"
-#: builtin/blame.c:2283
+#: builtin/blame.c:2255
msgid "Show in a format designed for machine consumption"
msgstr "Afficher dans un format propice à la consommation par machine"
-#: builtin/blame.c:2284
+#: builtin/blame.c:2256
msgid "Show porcelain format with per-line commit information"
msgstr "Afficher en format porcelaine avec l'information de commit par ligne"
-#: builtin/blame.c:2285
+#: builtin/blame.c:2257
msgid "Use the same output mode as git-annotate (Default: off)"
msgstr "Utiliser le même mode de sortie que git-annotate (Défaut : désactivé)"
-#: builtin/blame.c:2286
+#: builtin/blame.c:2258
msgid "Show raw timestamp (Default: off)"
msgstr "Afficher les horodatages bruts (Défaut : désactivé)"
-#: builtin/blame.c:2287
+#: builtin/blame.c:2259
msgid "Show long commit SHA1 (Default: off)"
msgstr "Afficher les longs SHA1 de commits (Défaut : désactivé)"
-#: builtin/blame.c:2288
+#: builtin/blame.c:2260
msgid "Suppress author name and timestamp (Default: off)"
msgstr "Supprimer le nom de l'auteur et l'horodatage (Défaut : désactivé)"
-#: builtin/blame.c:2289
+#: builtin/blame.c:2261
msgid "Show author email instead of name (Default: off)"
msgstr "Afficher l'e-mail de l'auteur au lieu du nom (Défaut : désactivé)"
-#: builtin/blame.c:2290
+#: builtin/blame.c:2262
msgid "Ignore whitespace differences"
msgstr "Ignorer les différences d'espace"
-#: builtin/blame.c:2291
+#: builtin/blame.c:2263
msgid "Spend extra cycles to find better match"
msgstr ""
"Dépenser des cycles supplémentaires pour trouver une meilleure correspondance"
-#: builtin/blame.c:2292
+#: builtin/blame.c:2264
msgid "Use revisions from <file> instead of calling git-rev-list"
msgstr ""
"Utiliser les révisions du fichier <fichier> au lieu d'appeler git-rev-list"
-#: builtin/blame.c:2293
+#: builtin/blame.c:2265
msgid "Use <file>'s contents as the final image"
msgstr "Utiliser le contenu de <fichier> comme image finale"
-#: builtin/blame.c:2294 builtin/blame.c:2295
+#: builtin/blame.c:2266 builtin/blame.c:2267
msgid "score"
msgstr "score"
-#: builtin/blame.c:2294
+#: builtin/blame.c:2266
msgid "Find line copies within and across files"
msgstr "Trouver les copies de ligne dans et entre les fichiers"
-#: builtin/blame.c:2295
+#: builtin/blame.c:2267
msgid "Find line movements within and across files"
msgstr "Trouver les mouvements de ligne dans et entre les fichiers"
-#: builtin/blame.c:2296
+#: builtin/blame.c:2268
msgid "n,m"
msgstr "n,m"
-#: builtin/blame.c:2296
+#: builtin/blame.c:2268
msgid "Process only line range n,m, counting from 1"
msgstr ""
"Traiter seulement l'intervalle de ligne n,m en commençant le compte à 1"
@@ -2753,240 +2915,251 @@ msgstr "Branche %s supprimée (précédemment %s).\n"
msgid "branch '%s' does not point at a commit"
msgstr "la branche '%s' ne pointe pas sur un commit"
+# féminin pour une branche
#: builtin/branch.c:453
#, c-format
+msgid "[%s: gone]"
+msgstr "[%s: disparue]"
+
+#: builtin/branch.c:456
+#, c-format
+msgid "[%s]"
+msgstr "[%s]"
+
+#: builtin/branch.c:459
+#, c-format
msgid "[%s: behind %d]"
msgstr "[%s: en retard de %d]"
-#: builtin/branch.c:455
+#: builtin/branch.c:461
#, c-format
msgid "[behind %d]"
msgstr "[en retard de %d]"
-#: builtin/branch.c:459
+#: builtin/branch.c:465
#, c-format
msgid "[%s: ahead %d]"
msgstr "[%s : en avance de %d]"
-#: builtin/branch.c:461
+#: builtin/branch.c:467
#, c-format
msgid "[ahead %d]"
msgstr "[en avance de %d]"
-#: builtin/branch.c:464
+#: builtin/branch.c:470
#, c-format
msgid "[%s: ahead %d, behind %d]"
msgstr "[%s : en avance de %d, en retard de %d]"
-#: builtin/branch.c:467
+#: builtin/branch.c:473
#, c-format
msgid "[ahead %d, behind %d]"
msgstr "[en avance de %d, en retard de %d]"
-#: builtin/branch.c:490
+#: builtin/branch.c:496
msgid " **** invalid ref ****"
msgstr " **** référence invalide ****"
-#: builtin/branch.c:582
+#: builtin/branch.c:588
#, c-format
msgid "(no branch, rebasing %s)"
msgstr "(aucune branche, rebasage de %s)"
-#: builtin/branch.c:585
+#: builtin/branch.c:591
#, c-format
msgid "(no branch, bisect started on %s)"
msgstr "(aucune branche, bisect a démarré sur %s)"
-#: builtin/branch.c:588
+#: builtin/branch.c:594
#, c-format
msgid "(detached from %s)"
msgstr "(détaché de %s)"
-#: builtin/branch.c:591
+#: builtin/branch.c:597
msgid "(no branch)"
msgstr "(aucune branche)"
-#: builtin/branch.c:637
+#: builtin/branch.c:643
#, c-format
msgid "object '%s' does not point to a commit"
msgstr "l'objet '%s' ne pointe pas sur un commit"
-#: builtin/branch.c:669
+#: builtin/branch.c:675
msgid "some refs could not be read"
msgstr "des références n'ont pas pu être lues"
-#: builtin/branch.c:682
+#: builtin/branch.c:688
msgid "cannot rename the current branch while not on any."
msgstr "impossible de renommer la branche actuelle, il n'y en a pas."
-#: builtin/branch.c:692
+#: builtin/branch.c:698
#, c-format
msgid "Invalid branch name: '%s'"
msgstr "Nom de branche invalide : '%s'"
-#: builtin/branch.c:707
+#: builtin/branch.c:713
msgid "Branch rename failed"
msgstr "Échec de renommage de la branche"
-#: builtin/branch.c:711
+#: builtin/branch.c:717
#, c-format
msgid "Renamed a misnamed branch '%s' away"
msgstr "Renommage d'un branche mal nommée '%s'"
-#: builtin/branch.c:715
+#: builtin/branch.c:721
#, c-format
msgid "Branch renamed to %s, but HEAD is not updated!"
msgstr "La branche a été renommée en %s, mais HEAD n'est pas mise à jour !"
-#: builtin/branch.c:722
+#: builtin/branch.c:728
msgid "Branch is renamed, but update of config-file failed"
msgstr ""
"La branche est renommée, mais la mise à jour du fichier de configuration a "
"échoué"
-#: builtin/branch.c:737
+#: builtin/branch.c:743
#, c-format
msgid "malformed object name %s"
msgstr "nom d'objet malformé %s"
-#: builtin/branch.c:761
+#: builtin/branch.c:767
#, c-format
msgid "could not write branch description template: %s"
msgstr "impossible d'écrire le modèle de description de branche : %s"
-#: builtin/branch.c:791
+#: builtin/branch.c:797
msgid "Generic options"
msgstr "Options génériques"
-#: builtin/branch.c:793
+#: builtin/branch.c:799
msgid "show hash and subject, give twice for upstream branch"
msgstr "afficher le hachage et le sujet, doublé pour la branche amont"
-#: builtin/branch.c:794
+#: builtin/branch.c:800
msgid "suppress informational messages"
msgstr "supprimer les messages d'information"
-#: builtin/branch.c:795
+#: builtin/branch.c:801
msgid "set up tracking mode (see git-pull(1))"
msgstr "régler le mode de suivi (voir git-pull(1))"
-#: builtin/branch.c:797
+#: builtin/branch.c:803
msgid "change upstream info"
msgstr "modifier l'information amont"
-#: builtin/branch.c:801
+#: builtin/branch.c:807
msgid "use colored output"
msgstr "utiliser la coloration dans la sortie"
-#: builtin/branch.c:802
+#: builtin/branch.c:808
msgid "act on remote-tracking branches"
msgstr "agir sur les branches de suivi distantes"
-#: builtin/branch.c:805 builtin/branch.c:811 builtin/branch.c:832
-#: builtin/branch.c:838 builtin/commit.c:1433 builtin/commit.c:1434
-#: builtin/commit.c:1435 builtin/commit.c:1436 builtin/tag.c:468
+#: builtin/branch.c:811 builtin/branch.c:817 builtin/branch.c:838
+#: builtin/branch.c:844 builtin/commit.c:1460 builtin/commit.c:1461
+#: builtin/commit.c:1462 builtin/commit.c:1463 builtin/tag.c:468
msgid "commit"
msgstr "commit"
-#: builtin/branch.c:806 builtin/branch.c:812
+#: builtin/branch.c:812 builtin/branch.c:818
msgid "print only branches that contain the commit"
msgstr "afficher seulement les branches qui contiennent le commit"
-#: builtin/branch.c:818
+#: builtin/branch.c:824
msgid "Specific git-branch actions:"
msgstr "Actions spécifiques à git-branch :"
-#: builtin/branch.c:819
+#: builtin/branch.c:825
msgid "list both remote-tracking and local branches"
msgstr "afficher à la fois les branches de suivi et les branches locales"
-#: builtin/branch.c:821
+#: builtin/branch.c:827
msgid "delete fully merged branch"
msgstr "supprimer une branche totalement fusionnée"
-#: builtin/branch.c:822
+#: builtin/branch.c:828
msgid "delete branch (even if not merged)"
msgstr "supprimer une branche (même non fusionnée)"
-#: builtin/branch.c:823
+#: builtin/branch.c:829
msgid "move/rename a branch and its reflog"
msgstr "déplacer/renommer une branche et son reflog"
-#: builtin/branch.c:824
+#: builtin/branch.c:830
msgid "move/rename a branch, even if target exists"
msgstr "déplacer/renommer une branche, même si la cible existe"
-#: builtin/branch.c:825
+#: builtin/branch.c:831
msgid "list branch names"
msgstr "afficher les noms des branches"
-#: builtin/branch.c:826
+#: builtin/branch.c:832
msgid "create the branch's reflog"
msgstr "créer le reflog de la branche"
-#: builtin/branch.c:828
+#: builtin/branch.c:834
msgid "edit the description for the branch"
msgstr "éditer la description de la branche"
-#: builtin/branch.c:829
+#: builtin/branch.c:835
msgid "force creation (when already exists)"
msgstr "forcer la création (même si la cible existe)"
-#: builtin/branch.c:832
+#: builtin/branch.c:838
msgid "print only not merged branches"
msgstr "afficher seulement les branches non fusionnées"
-#: builtin/branch.c:838
+#: builtin/branch.c:844
msgid "print only merged branches"
msgstr "afficher seulement les branches fusionnées"
-#: builtin/branch.c:842
+#: builtin/branch.c:848
msgid "list branches in columns"
msgstr "afficher les branches en colonnes"
-#: builtin/branch.c:855
+#: builtin/branch.c:861
msgid "Failed to resolve HEAD as a valid ref."
msgstr "Échec de résolution de HEAD comme référence valide."
-#: builtin/branch.c:860 builtin/clone.c:630
+#: builtin/branch.c:866 builtin/clone.c:629
msgid "HEAD not found below refs/heads!"
msgstr "HEAD non trouvée sous refs/heads !"
-#: builtin/branch.c:883
+#: builtin/branch.c:890
msgid "--column and --verbose are incompatible"
msgstr "--column et --verbose sont incompatibles"
-#: builtin/branch.c:889 builtin/branch.c:928
+#: builtin/branch.c:896 builtin/branch.c:935
msgid "branch name required"
msgstr "le nom de branche est requis"
-#: builtin/branch.c:904
+#: builtin/branch.c:911
msgid "Cannot give description to detached HEAD"
msgstr "Impossible de décrire une HEAD détachée"
-#: builtin/branch.c:909
+#: builtin/branch.c:916
msgid "cannot edit description of more than one branch"
msgstr "impossible d'éditer la description de plus d'une branche"
-#: builtin/branch.c:916
+#: builtin/branch.c:923
#, c-format
msgid "No commit on branch '%s' yet."
msgstr "Aucun commit sur la branche '%s'."
-#: builtin/branch.c:919
+#: builtin/branch.c:926
#, c-format
msgid "No branch named '%s'."
msgstr "Aucune branche nommée '%s'."
-#: builtin/branch.c:934
+#: builtin/branch.c:941
msgid "too many branches for a rename operation"
msgstr "trop de branches pour une opération de renommage"
-#: builtin/branch.c:939
+#: builtin/branch.c:946
msgid "too many branches to set new upstream"
msgstr "trop de branches pour spécifier une branche amont"
-#: builtin/branch.c:943
+#: builtin/branch.c:950
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
@@ -2994,41 +3167,41 @@ msgstr ""
"impossible de spécifier une branche amont de HEAD par %s qui ne pointe sur "
"aucune branche."
-#: builtin/branch.c:946 builtin/branch.c:968 builtin/branch.c:990
+#: builtin/branch.c:953 builtin/branch.c:975 builtin/branch.c:997
#, c-format
msgid "no such branch '%s'"
msgstr "pas de branche '%s'"
-#: builtin/branch.c:950
+#: builtin/branch.c:957
#, c-format
msgid "branch '%s' does not exist"
msgstr "la branche '%s' n'existe pas"
-#: builtin/branch.c:962
+#: builtin/branch.c:969
msgid "too many branches to unset upstream"
msgstr "trop de branches pour désactiver un amont"
-#: builtin/branch.c:966
+#: builtin/branch.c:973
msgid "could not unset upstream of HEAD when it does not point to any branch."
msgstr ""
"impossible de désactiver une branche amont de HEAD quand elle ne pointe sur "
"aucune branche."
-#: builtin/branch.c:972
+#: builtin/branch.c:979
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr "La branche '%s' n'a aucune information de branche amont"
-#: builtin/branch.c:987
+#: builtin/branch.c:994
msgid "it does not make sense to create 'HEAD' manually"
msgstr "créer manuellement 'HEAD' n'a pas de sens"
-#: builtin/branch.c:993
+#: builtin/branch.c:1000
msgid "-a and -r options to 'git branch' do not make sense with a branch name"
msgstr ""
"les options -a et -r de 'git branch' n'ont pas de sens avec un nom de branche"
-#: builtin/branch.c:996
+#: builtin/branch.c:1003
#, c-format
msgid ""
"The --set-upstream flag is deprecated and will be removed. Consider using --"
@@ -3037,7 +3210,7 @@ msgstr ""
"l'option --set-upstream est obsolète et va disparaître. Utilisez plutôt --"
"track ou --set-upstream-to\n"
-#: builtin/branch.c:1013
+#: builtin/branch.c:1020
#, c-format
msgid ""
"\n"
@@ -3048,12 +3221,12 @@ msgstr ""
"Si vous vouliez que '%s' suive '%s', faîtes ceci :\n"
"\n"
-#: builtin/branch.c:1014
+#: builtin/branch.c:1021
#, c-format
msgid " git branch -d %s\n"
msgstr " git branch -d %s\n"
-#: builtin/branch.c:1015
+#: builtin/branch.c:1022
#, c-format
msgid " git branch --set-upstream-to %s\n"
msgstr " git branch -set-upstream-to %s\n"
@@ -3071,44 +3244,44 @@ msgstr "La création d'un colis requiert un dépôt."
msgid "Need a repository to unbundle."
msgstr "Le dépaquetage d'un colis requiert un dépôt."
-#: builtin/cat-file.c:285
+#: builtin/cat-file.c:312
msgid "git cat-file (-t|-s|-e|-p|<type>|--textconv) <object>"
msgstr "git cat-file (-t|-s|-e|-p|<type>|--textconv) <objet>"
-#: builtin/cat-file.c:286
+#: builtin/cat-file.c:313
msgid "git cat-file (--batch|--batch-check) < <list_of_objects>"
msgstr "git cat-file (--batch|--batch-check) < <liste_d_objets>"
-#: builtin/cat-file.c:323
+#: builtin/cat-file.c:350
msgid "<type> can be one of: blob, tree, commit, tag"
msgstr "<type> peut être : blob, tree, commit ou tag"
-#: builtin/cat-file.c:324
+#: builtin/cat-file.c:351
msgid "show object type"
msgstr "afficher le type de l'objet"
-#: builtin/cat-file.c:325
+#: builtin/cat-file.c:352
msgid "show object size"
msgstr "afficher la taille de l'objet"
-#: builtin/cat-file.c:327
+#: builtin/cat-file.c:354
msgid "exit with zero when there's no error"
msgstr "sortir avec un code d'erreur nul quand il n'y a aucune erreur"
-#: builtin/cat-file.c:328
+#: builtin/cat-file.c:355
msgid "pretty-print object's content"
msgstr "afficher avec mise en forme le contenu de l'objet"
-#: builtin/cat-file.c:330
+#: builtin/cat-file.c:357
msgid "for blob objects, run textconv on object's content"
msgstr "pour les objets blob, lancer textconv sur le contenu de l'objet"
-#: builtin/cat-file.c:332
+#: builtin/cat-file.c:359
msgid "show info and content of objects fed from the standard input"
msgstr ""
"afficher l'information et le contenu des objets passés en entrée standard"
-#: builtin/cat-file.c:335
+#: builtin/cat-file.c:362
msgid "show info about objects fed from the standard input"
msgstr "afficher l'information des objets passés en entrée standard"
@@ -3134,10 +3307,10 @@ msgid "read file names from stdin"
msgstr "lire les noms de fichier depuis l'entrée standard"
#: builtin/check-attr.c:23 builtin/check-ignore.c:24
-msgid "input paths are terminated by a null character"
-msgstr "les chemins en entrée sont terminés par le caractère nul"
+msgid "terminate input and output records by a NUL character"
+msgstr "terminer les enregistrements en entrée et en sortie par un caractère NUL"
-#: builtin/check-ignore.c:18 builtin/checkout.c:1054 builtin/gc.c:177
+#: builtin/check-ignore.c:18 builtin/checkout.c:1090 builtin/gc.c:259
msgid "suppress progress reporting"
msgstr "supprimer l'état d'avancement"
@@ -3145,27 +3318,31 @@ msgstr "supprimer l'état d'avancement"
msgid "show non-matching input paths"
msgstr "afficher les chemins en entrée qui ne correspondent pas"
-#: builtin/check-ignore.c:143
+#: builtin/check-ignore.c:28
+msgid "ignore index when checking"
+msgstr "ignorer l'index pendant la vérification"
+
+#: builtin/check-ignore.c:154
msgid "cannot specify pathnames with --stdin"
msgstr "impossible de spécifier les chemins avec --stdin"
-#: builtin/check-ignore.c:146
+#: builtin/check-ignore.c:157
msgid "-z only makes sense with --stdin"
msgstr "-z n'a de sens qu'avec l'option --stdin"
-#: builtin/check-ignore.c:148
+#: builtin/check-ignore.c:159
msgid "no path specified"
msgstr "aucun chemin spécifié"
-#: builtin/check-ignore.c:152
+#: builtin/check-ignore.c:163
msgid "--quiet is only valid with a single pathname"
msgstr "--quiet n'est valide qu'avec un seul chemin"
-#: builtin/check-ignore.c:154
+#: builtin/check-ignore.c:165
msgid "cannot have both --quiet and --verbose"
msgstr "impossible d'avoir --quiet et --verbose"
-#: builtin/check-ignore.c:157
+#: builtin/check-ignore.c:168
msgid "--non-matching is only valid with --verbose"
msgstr "--non-matching n'est valide qu'avec --verbose"
@@ -3240,108 +3417,108 @@ msgstr "git checkout [options] <branche>"
msgid "git checkout [options] [<branch>] -- <file>..."
msgstr "git checkout [options] [<branche>] -- <fichier>..."
-#: builtin/checkout.c:117 builtin/checkout.c:150
+#: builtin/checkout.c:114 builtin/checkout.c:147
#, c-format
msgid "path '%s' does not have our version"
msgstr "le chemin '%s' n'a pas notre version"
-#: builtin/checkout.c:119 builtin/checkout.c:152
+#: builtin/checkout.c:116 builtin/checkout.c:149
#, c-format
msgid "path '%s' does not have their version"
msgstr "le chemin '%s' n'a pas leur version"
-#: builtin/checkout.c:135
+#: builtin/checkout.c:132
#, c-format
msgid "path '%s' does not have all necessary versions"
msgstr "le chemin '%s' n'a aucune des versions nécessaires"
-#: builtin/checkout.c:179
+#: builtin/checkout.c:176
#, c-format
msgid "path '%s' does not have necessary versions"
msgstr "le chemin '%s' n'a pas les versions nécessaires"
-#: builtin/checkout.c:196
+#: builtin/checkout.c:193
#, c-format
msgid "path '%s': cannot merge"
msgstr "chemin '%s' : impossible de fusionner"
-#: builtin/checkout.c:213
+#: builtin/checkout.c:210
#, c-format
msgid "Unable to add merge result for '%s'"
msgstr "Impossible d'ajouter le résultat de fusion pour '%s'"
-#: builtin/checkout.c:237 builtin/checkout.c:240 builtin/checkout.c:243
-#: builtin/checkout.c:246
+#: builtin/checkout.c:232 builtin/checkout.c:235 builtin/checkout.c:238
+#: builtin/checkout.c:241
#, c-format
msgid "'%s' cannot be used with updating paths"
msgstr "'%s' ne peut pas être utilisé avec des mises à jour de chemins"
-#: builtin/checkout.c:249 builtin/checkout.c:252
+#: builtin/checkout.c:244 builtin/checkout.c:247
#, c-format
msgid "'%s' cannot be used with %s"
msgstr "'%s' ne peut pas être utilisé avec %s"
-#: builtin/checkout.c:255
+#: builtin/checkout.c:250
#, c-format
msgid "Cannot update paths and switch to branch '%s' at the same time."
msgstr ""
"Impossible de mettre à jour les chemins et basculer sur la branche '%s' en "
"même temps."
-#: builtin/checkout.c:266 builtin/checkout.c:458
+#: builtin/checkout.c:261 builtin/checkout.c:451
msgid "corrupt index file"
msgstr "fichier d'index corrompu"
-#: builtin/checkout.c:329 builtin/checkout.c:336
+#: builtin/checkout.c:322 builtin/checkout.c:329
#, c-format
msgid "path '%s' is unmerged"
msgstr "le chemin '%s' n'est pas fusionné"
-#: builtin/checkout.c:480
+#: builtin/checkout.c:473
msgid "you need to resolve your current index first"
msgstr "vous devez d'abord résoudre votre index courant"
-#: builtin/checkout.c:601
+#: builtin/checkout.c:594
#, c-format
msgid "Can not do reflog for '%s'\n"
msgstr "Impossible de faire un reflog pour '%s'\n"
-#: builtin/checkout.c:639
+#: builtin/checkout.c:632
msgid "HEAD is now at"
msgstr "HEAD est maintenant sur"
-#: builtin/checkout.c:646
+#: builtin/checkout.c:639
#, c-format
msgid "Reset branch '%s'\n"
msgstr "Remise à zéro de la branche '%s'\n"
-#: builtin/checkout.c:649
+#: builtin/checkout.c:642
#, c-format
msgid "Already on '%s'\n"
msgstr "Déjà sur '%s'\n"
-#: builtin/checkout.c:653
+#: builtin/checkout.c:646
#, c-format
msgid "Switched to and reset branch '%s'\n"
msgstr "Basculement et remise à zéro de la branche '%s'\n"
-#: builtin/checkout.c:655 builtin/checkout.c:997
+#: builtin/checkout.c:648 builtin/checkout.c:1033
#, c-format
msgid "Switched to a new branch '%s'\n"
msgstr "Basculement sur la nouvelle branche '%s'\n"
-#: builtin/checkout.c:657
+#: builtin/checkout.c:650
#, c-format
msgid "Switched to branch '%s'\n"
msgstr "Basculement sur la branche '%s'\n"
-#: builtin/checkout.c:713
+#: builtin/checkout.c:706
#, c-format
msgid " ... and %d more.\n"
msgstr " ... et %d en plus.\n"
#. The singular version
-#: builtin/checkout.c:719
+#: builtin/checkout.c:712
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -3364,7 +3541,7 @@ msgstr[1] ""
"\n"
"%s\n"
-#: builtin/checkout.c:737
+#: builtin/checkout.c:730
#, c-format
msgid ""
"If you want to keep them by creating a new branch, this may be a good time\n"
@@ -3380,136 +3557,140 @@ msgstr ""
"git branche nouvelle_branche %s\n"
"\n"
-#: builtin/checkout.c:767
+#: builtin/checkout.c:760
msgid "internal error in revision walk"
msgstr "erreur interne lors du parcours des révisions"
-#: builtin/checkout.c:771
+#: builtin/checkout.c:764
msgid "Previous HEAD position was"
msgstr "La position précédente de HEAD était"
-#: builtin/checkout.c:798 builtin/checkout.c:992
+#: builtin/checkout.c:791 builtin/checkout.c:1028
msgid "You are on a branch yet to be born"
msgstr "Vous êtes sur une branche qui doit encore naître"
-#. case (1)
-#: builtin/checkout.c:928
+#: builtin/checkout.c:935
+#, c-format
+msgid "only one reference expected, %d given."
+msgstr "une seule référence attendue, %d fournies."
+
+#: builtin/checkout.c:974
#, c-format
msgid "invalid reference: %s"
msgstr "référence invalide : %s"
#. case (1): want a tree
-#: builtin/checkout.c:967
+#: builtin/checkout.c:1003
#, c-format
msgid "reference is not a tree: %s"
msgstr "la référence n'est pas un arbre : %s"
-#: builtin/checkout.c:1006
+#: builtin/checkout.c:1042
msgid "paths cannot be used with switching branches"
msgstr "impossible d'utiliser des chemins avec un basculement de branches"
-#: builtin/checkout.c:1009 builtin/checkout.c:1013
+#: builtin/checkout.c:1045 builtin/checkout.c:1049
#, c-format
msgid "'%s' cannot be used with switching branches"
msgstr "'%s' ne peut pas être utilisé avec un basculement de branches"
-#: builtin/checkout.c:1017 builtin/checkout.c:1020 builtin/checkout.c:1025
-#: builtin/checkout.c:1028
+#: builtin/checkout.c:1053 builtin/checkout.c:1056 builtin/checkout.c:1061
+#: builtin/checkout.c:1064
#, c-format
msgid "'%s' cannot be used with '%s'"
msgstr "'%s' ne peut pas être utilisé avec '%s'"
-#: builtin/checkout.c:1033
+#: builtin/checkout.c:1069
#, c-format
msgid "Cannot switch branch to a non-commit '%s'"
msgstr "Impossible de basculer de branche vers '%s' qui n'est pas un commit"
-#: builtin/checkout.c:1055 builtin/checkout.c:1057 builtin/clone.c:89
+#: builtin/checkout.c:1091 builtin/checkout.c:1093 builtin/clone.c:88
#: builtin/remote.c:169 builtin/remote.c:171
msgid "branch"
msgstr "branche"
-#: builtin/checkout.c:1056
+#: builtin/checkout.c:1092
msgid "create and checkout a new branch"
msgstr "créer et extraire une nouvelle branche"
-#: builtin/checkout.c:1058
+#: builtin/checkout.c:1094
msgid "create/reset and checkout a branch"
msgstr "créer/réinitialiser et extraire une branche"
-#: builtin/checkout.c:1059
+#: builtin/checkout.c:1095
msgid "create reflog for new branch"
msgstr "créer un reflog pour une nouvelle branche"
-#: builtin/checkout.c:1060
+#: builtin/checkout.c:1096
msgid "detach the HEAD at named commit"
msgstr "détacher la HEAD à la validation nommée"
-#: builtin/checkout.c:1061
+#: builtin/checkout.c:1097
msgid "set upstream info for new branch"
msgstr "paramétrer l'information de branche amont pour une nouvelle branche"
-#: builtin/checkout.c:1063
+#: builtin/checkout.c:1099
msgid "new branch"
msgstr "nouvelle branche"
-#: builtin/checkout.c:1063
+#: builtin/checkout.c:1099
msgid "new unparented branch"
msgstr "nouvelle branche sans parent"
-#: builtin/checkout.c:1064
+#: builtin/checkout.c:1100
msgid "checkout our version for unmerged files"
msgstr "extraire notre version pour les fichiers non fusionnés"
-#: builtin/checkout.c:1066
+#: builtin/checkout.c:1102
msgid "checkout their version for unmerged files"
msgstr "extraire leur version pour les fichiers non fusionnés"
-#: builtin/checkout.c:1068
+#: builtin/checkout.c:1104
msgid "force checkout (throw away local modifications)"
msgstr "forcer l'extraction (laisser tomber les modifications locales)"
-#: builtin/checkout.c:1069
+#: builtin/checkout.c:1105
msgid "perform a 3-way merge with the new branch"
msgstr "effectuer une fusion à 3 points avec la nouvelle branche"
-#: builtin/checkout.c:1070 builtin/merge.c:232
+#: builtin/checkout.c:1106 builtin/merge.c:232
msgid "update ignored files (default)"
msgstr "mettre à jour les fichiers ignorés (par défaut)"
-#: builtin/checkout.c:1071 builtin/log.c:1208 parse-options.h:249
+#: builtin/checkout.c:1107 builtin/log.c:1228 parse-options.h:251
msgid "style"
msgstr "style"
-#: builtin/checkout.c:1072
+#: builtin/checkout.c:1108
msgid "conflict style (merge or diff3)"
msgstr "style de conflit (fusion ou diff3)"
-#: builtin/checkout.c:1075
+#: builtin/checkout.c:1111
msgid "do not limit pathspecs to sparse entries only"
msgstr "ne pas limiter les spécificateurs de chemins aux seuls éléments creux"
-#: builtin/checkout.c:1077
+#: builtin/checkout.c:1113
msgid "second guess 'git checkout no-such-branch'"
msgstr "deuxième chance 'git checkout branche-inexistante'"
-#: builtin/checkout.c:1101
+#: builtin/checkout.c:1136
msgid "-b, -B and --orphan are mutually exclusive"
msgstr "-b, -B et --orphan sont mutuellement exclusifs"
-#: builtin/checkout.c:1118
+#: builtin/checkout.c:1153
msgid "--track needs a branch name"
msgstr "--track requiert un nom de branche"
-#: builtin/checkout.c:1125
+#: builtin/checkout.c:1160
msgid "Missing branch name; try -b"
msgstr "Nom de branche manquant ; essayez -b"
-#: builtin/checkout.c:1160
+#: builtin/checkout.c:1197
msgid "invalid path specification"
msgstr "spécification de chemin invalide"
-#: builtin/checkout.c:1167
+#: builtin/checkout.c:1204
#, c-format
msgid ""
"Cannot update paths and switch to branch '%s' at the same time.\n"
@@ -3519,12 +3700,12 @@ msgstr ""
"en même temps.\n"
"Souhaitiez-vous extraire '%s' qui ne peut être résolu comme commit ?"
-#: builtin/checkout.c:1172
+#: builtin/checkout.c:1209
#, c-format
msgid "git checkout: --detach does not take a path argument '%s'"
msgstr "git checkout: --detach n'accepte pas un argument de chemin '%s'"
-#: builtin/checkout.c:1176
+#: builtin/checkout.c:1213
msgid ""
"git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
"checking out of the index."
@@ -3532,38 +3713,38 @@ msgstr ""
"git checkout: --ours/--theirs, --force et --merge sont incompatibles lors\n"
"de l'extraction de l'index."
-#: builtin/clean.c:25
+#: builtin/clean.c:26
msgid ""
"git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <paths>..."
msgstr ""
"git clean [-d] [-f] [-i] [-n] [-q] [-e <motif>] [-x | -X] [--] <chemins>..."
-#: builtin/clean.c:29
+#: builtin/clean.c:30
#, c-format
msgid "Removing %s\n"
msgstr "Suppression de %s\n"
-#: builtin/clean.c:30
+#: builtin/clean.c:31
#, c-format
msgid "Would remove %s\n"
msgstr "Supprimerait %s\n"
-#: builtin/clean.c:31
+#: builtin/clean.c:32
#, c-format
msgid "Skipping repository %s\n"
msgstr "Ignore le dépôt %s\n"
-#: builtin/clean.c:32
+#: builtin/clean.c:33
#, c-format
msgid "Would skip repository %s\n"
msgstr "Ignorerait le dépôt %s\n"
-#: builtin/clean.c:33
+#: builtin/clean.c:34
#, c-format
msgid "failed to remove %s"
msgstr "échec de la suppression de %s"
-#: builtin/clean.c:293
+#: builtin/clean.c:294
msgid ""
"Prompt help:\n"
"1 - select a numbered item\n"
@@ -3575,7 +3756,7 @@ msgstr ""
"foo - sélectionner un élément par un préfixe unique\n"
" - (vide) ne rien sélectionner"
-#: builtin/clean.c:297
+#: builtin/clean.c:298
msgid ""
"Prompt help:\n"
"1 - select a single item\n"
@@ -3595,35 +3776,35 @@ msgstr ""
"* - choisir tous les éléments\n"
" - (vide) terminer la sélection"
-#: builtin/clean.c:515
+#: builtin/clean.c:516
#, c-format
msgid "Huh (%s)?"
msgstr "Hein (%s) ?"
-#: builtin/clean.c:658
+#: builtin/clean.c:659
#, c-format
msgid "Input ignore patterns>> "
msgstr "Entrez les motifs à ignorer>> "
-#: builtin/clean.c:695
+#: builtin/clean.c:696
#, c-format
msgid "WARNING: Cannot find items matched by: %s"
msgstr "ATTENTION : Impossible de trouver les éléments correspondant à : %s"
-#: builtin/clean.c:716
+#: builtin/clean.c:717
msgid "Select items to delete"
msgstr "Sélectionner les éléments à supprimer"
-#: builtin/clean.c:756
+#: builtin/clean.c:757
#, c-format
msgid "remove %s? "
msgstr "supprimer %s ? "
-#: builtin/clean.c:781
+#: builtin/clean.c:782
msgid "Bye."
msgstr "Au revoir."
-#: builtin/clean.c:789
+#: builtin/clean.c:790
msgid ""
"clean - start cleaning\n"
"filter by pattern - exclude items from deletion\n"
@@ -3641,21 +3822,21 @@ msgstr ""
"help - cet écran\n"
"? - aide pour la sélection en ligne"
-#: builtin/clean.c:816
+#: builtin/clean.c:817
msgid "*** Commands ***"
msgstr "*** Commandes ***"
-#: builtin/clean.c:817
+#: builtin/clean.c:818
msgid "What now"
msgstr "Et maintenant ?"
-#: builtin/clean.c:825
+#: builtin/clean.c:826
msgid "Would remove the following item:"
msgid_plural "Would remove the following items:"
msgstr[0] "Supprimerait l'élément suivant :"
msgstr[1] "Supprimerait les éléments suivants :"
-#: builtin/clean.c:842
+#: builtin/clean.c:843
msgid "No more files to clean, exiting."
msgstr "Plus de fichier à nettoyer, sortie."
@@ -3675,8 +3856,8 @@ msgstr "nettoyage interactif"
msgid "remove whole directories"
msgstr "supprimer les répertoires entiers"
-#: builtin/clean.c:880 builtin/describe.c:420 builtin/grep.c:716
-#: builtin/ls-files.c:493 builtin/name-rev.c:315 builtin/show-ref.c:186
+#: builtin/clean.c:880 builtin/describe.c:420 builtin/grep.c:718
+#: builtin/ls-files.c:483 builtin/name-rev.c:315 builtin/show-ref.c:185
msgid "pattern"
msgstr "motif"
@@ -3716,8 +3897,8 @@ msgstr ""
msgid "git clone [options] [--] <repo> [<dir>]"
msgstr "git clone [options] [--] <dépôt> [<répertoire>]"
-#: builtin/clone.c:64 builtin/fetch.c:82 builtin/merge.c:229
-#: builtin/push.c:462
+#: builtin/clone.c:64 builtin/fetch.c:96 builtin/merge.c:229
+#: builtin/push.c:474
msgid "force progress reporting"
msgstr "forcer l'état d'avancement"
@@ -3729,123 +3910,123 @@ msgstr "ne pas créer d'extraction"
msgid "create a bare repository"
msgstr "créer un dépôt nu"
-#: builtin/clone.c:72
+#: builtin/clone.c:71
msgid "create a mirror repository (implies bare)"
msgstr "créer un dépôt miroir (implique dépôt nu)"
-#: builtin/clone.c:74
+#: builtin/clone.c:73
msgid "to clone from a local repository"
msgstr "pour cloner depuis un dépôt local"
-#: builtin/clone.c:76
+#: builtin/clone.c:75
msgid "don't use local hardlinks, always copy"
msgstr "ne pas utiliser de liens durs locaux, toujours copier"
-#: builtin/clone.c:78
+#: builtin/clone.c:77
msgid "setup as shared repository"
msgstr "régler comme dépôt partagé"
-#: builtin/clone.c:80 builtin/clone.c:82
+#: builtin/clone.c:79 builtin/clone.c:81
msgid "initialize submodules in the clone"
msgstr "initialiser les sous-modules dans le clone"
-#: builtin/clone.c:83 builtin/init-db.c:485
+#: builtin/clone.c:82 builtin/init-db.c:485
msgid "template-directory"
msgstr "répertoire-modèle"
-#: builtin/clone.c:84 builtin/init-db.c:486
+#: builtin/clone.c:83 builtin/init-db.c:486
msgid "directory from which templates will be used"
msgstr "répertoire depuis lequel les modèles vont être utilisés"
-#: builtin/clone.c:86
+#: builtin/clone.c:85
msgid "reference repository"
msgstr "dépôt de référence"
-#: builtin/clone.c:87 builtin/column.c:26 builtin/merge-file.c:44
+#: builtin/clone.c:86 builtin/column.c:26 builtin/merge-file.c:44
msgid "name"
msgstr "nom"
-#: builtin/clone.c:88
+#: builtin/clone.c:87
msgid "use <name> instead of 'origin' to track upstream"
msgstr "utiliser <nom> au lieu de 'origin' pour suivre la branche amont"
-#: builtin/clone.c:90
+#: builtin/clone.c:89
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "extraire <branche> au lieu de la HEAD du répertoire distant"
-#: builtin/clone.c:92
+#: builtin/clone.c:91
msgid "path to git-upload-pack on the remote"
msgstr "chemin vers git-upload-pack sur le serveur distant"
-#: builtin/clone.c:93 builtin/fetch.c:83 builtin/grep.c:661
+#: builtin/clone.c:92 builtin/fetch.c:97 builtin/grep.c:663
msgid "depth"
msgstr "profondeur"
-#: builtin/clone.c:94
+#: builtin/clone.c:93
msgid "create a shallow clone of that depth"
msgstr "créer un clone superficiel de cette profondeur"
-#: builtin/clone.c:96
+#: builtin/clone.c:95
msgid "clone only one branch, HEAD or --branch"
msgstr "cloner seulement une branche, HEAD ou --branch"
-#: builtin/clone.c:97 builtin/init-db.c:494
+#: builtin/clone.c:96 builtin/init-db.c:494
msgid "gitdir"
msgstr "gitdir"
-#: builtin/clone.c:98 builtin/init-db.c:495
+#: builtin/clone.c:97 builtin/init-db.c:495
msgid "separate git dir from working tree"
msgstr "séparer le répertoire git de la copie de travail"
-#: builtin/clone.c:99
+#: builtin/clone.c:98
msgid "key=value"
msgstr "clé=valeur"
-#: builtin/clone.c:100
+#: builtin/clone.c:99
msgid "set config inside the new repository"
msgstr "régler la configuration dans le nouveau dépôt"
-#: builtin/clone.c:253
+#: builtin/clone.c:252
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "le dépôt de référence '%s' n'est pas un dépôt local."
-#: builtin/clone.c:316
+#: builtin/clone.c:315
#, c-format
msgid "failed to create directory '%s'"
msgstr "échec de la création du répertoire '%s'"
-#: builtin/clone.c:318 builtin/diff.c:77
+#: builtin/clone.c:317 builtin/diff.c:77
#, c-format
msgid "failed to stat '%s'"
msgstr "échec du stat de '%s'"
-#: builtin/clone.c:320
+#: builtin/clone.c:319
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s existe et n'est pas un répertoire"
-#: builtin/clone.c:334
+#: builtin/clone.c:333
#, c-format
msgid "failed to stat %s\n"
msgstr "échec du stat de %s\n"
-#: builtin/clone.c:356
+#: builtin/clone.c:355
#, c-format
msgid "failed to create link '%s'"
msgstr "échec de la création du lien '%s'"
-#: builtin/clone.c:360
+#: builtin/clone.c:359
#, c-format
msgid "failed to copy file to '%s'"
msgstr "échec de la copie vers '%s'"
-#: builtin/clone.c:383
+#: builtin/clone.c:382 builtin/clone.c:559
#, c-format
msgid "done.\n"
msgstr "fait.\n"
-#: builtin/clone.c:396
+#: builtin/clone.c:395
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -3855,108 +4036,103 @@ msgstr ""
"Vous pouvez inspecter ce qui a été extrait avec 'git status'\n"
"et réessayer l'extraction avec 'git checkout -f HEAD'\n"
-#: builtin/clone.c:475
+#: builtin/clone.c:474
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "Impossible de trouver la branche distante '%s' à cloner."
-#: builtin/clone.c:555
+#: builtin/clone.c:554
#, c-format
msgid "Checking connectivity... "
msgstr "Vérification de la connectivité... "
-#: builtin/clone.c:558
+#: builtin/clone.c:557
msgid "remote did not send all necessary objects"
msgstr "le serveur distant n'a pas envoyé tous les objets nécessaires"
-#: builtin/clone.c:560
-#, c-format
-msgid "done\n"
-msgstr "fait\n"
-
-#: builtin/clone.c:621
+#: builtin/clone.c:620
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr ""
"la HEAD distante réfère à une référence non existante, impossible de "
"l'extraire.\n"
-#: builtin/clone.c:652
+#: builtin/clone.c:651
msgid "unable to checkout working tree"
msgstr "impossible d'extraire la copie de travail"
-#: builtin/clone.c:760
+#: builtin/clone.c:759
msgid "Too many arguments."
msgstr "Trop d'arguments."
-#: builtin/clone.c:764
+#: builtin/clone.c:763
msgid "You must specify a repository to clone."
msgstr "Vous devez spécifier un dépôt à cloner."
-#: builtin/clone.c:775
+#: builtin/clone.c:774
#, c-format
msgid "--bare and --origin %s options are incompatible."
msgstr "les options --bare et --origin %s sont incompatibles."
-#: builtin/clone.c:778
+#: builtin/clone.c:777
msgid "--bare and --separate-git-dir are incompatible."
msgstr "--bare et --separate-git-dir sont incompatibles."
-#: builtin/clone.c:791
+#: builtin/clone.c:790
#, c-format
msgid "repository '%s' does not exist"
msgstr "le dépôt '%s' n'existe pas"
-#: builtin/clone.c:796
+#: builtin/clone.c:795
msgid "--depth is ignored in local clones; use file:// instead."
msgstr ""
"--depth est ignoré dans les clones locaux : utilisez plutôt \"file://\"."
-#: builtin/clone.c:798
+#: builtin/clone.c:797
msgid "--local is ignored"
msgstr "--local est ignoré"
-#: builtin/clone.c:808
+#: builtin/clone.c:807
#, c-format
msgid "destination path '%s' already exists and is not an empty directory."
msgstr ""
"le chemin de destination '%s' existe déjà et n'est pas un répertoire vide."
-#: builtin/clone.c:818
+#: builtin/clone.c:817
#, c-format
msgid "working tree '%s' already exists."
msgstr "la copie de travail '%s' existe déjà."
-#: builtin/clone.c:831 builtin/clone.c:843
+#: builtin/clone.c:830 builtin/clone.c:842
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "impossible de créer les répertoires de premier niveau dans '%s'"
-#: builtin/clone.c:834
+#: builtin/clone.c:833
#, c-format
msgid "could not create work tree dir '%s'."
msgstr "impossible de créer le répertoire de la copie de travail '%s'."
-#: builtin/clone.c:853
+#: builtin/clone.c:852
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "Clonage dans le dépôt nu '%s'\n"
-#: builtin/clone.c:855
+#: builtin/clone.c:854
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "Clonage dans '%s'...\n"
-#: builtin/clone.c:890
+#: builtin/clone.c:888
#, c-format
msgid "Don't know how to clone %s"
msgstr "Je ne sais pas cloner %s"
-#: builtin/clone.c:942
+#: builtin/clone.c:939 builtin/clone.c:947
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "La branche distante %s n'a pas été trouvée dans le dépôt amont %s"
-#: builtin/clone.c:949
+#: builtin/clone.c:950
msgid "You appear to have cloned an empty repository."
msgstr "Vous semblez avoir cloné un dépôt vide."
@@ -3992,15 +4168,15 @@ msgstr "Remplissage d'espace entre les colonnes"
msgid "--command must be the first argument"
msgstr "--command doit être le premier argument"
-#: builtin/commit.c:35
+#: builtin/commit.c:36
msgid "git commit [options] [--] <pathspec>..."
msgstr "git commit [options] [--] <spécification-de-chemin>..."
-#: builtin/commit.c:40
+#: builtin/commit.c:41
msgid "git status [options] [--] <pathspec>..."
msgstr "git status [options] [--] <spécification-de-chemin>..."
-#: builtin/commit.c:45
+#: builtin/commit.c:46
msgid ""
"Your name and email address were configured automatically based\n"
"on your username and hostname. Please check that they are accurate.\n"
@@ -4026,7 +4202,7 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: builtin/commit.c:57
+#: builtin/commit.c:58
msgid ""
"You asked to amend the most recent commit, but doing so would make\n"
"it empty. You can repeat your command with --allow-empty, or you can\n"
@@ -4037,7 +4213,7 @@ msgstr ""
"vide. Vous pouvez répéter votre commande avec --allow-empty, ou vous pouvez\n"
"supprimer complètement le commit avec \"git reset HEAD^\".\n"
-#: builtin/commit.c:62
+#: builtin/commit.c:63
msgid ""
"The previous cherry-pick is now empty, possibly due to conflict resolution.\n"
"If you wish to commit it anyway, use:\n"
@@ -4052,11 +4228,11 @@ msgstr ""
" git commit --allow-empty\n"
"\n"
-#: builtin/commit.c:69
+#: builtin/commit.c:70
msgid "Otherwise, please use 'git reset'\n"
msgstr "Sinon, veuillez utiliser 'git reset'\n"
-#: builtin/commit.c:72
+#: builtin/commit.c:73
msgid ""
"If you wish to skip this commit, use:\n"
"\n"
@@ -4072,93 +4248,93 @@ msgstr ""
"Puis \"git cherry-pick --continue\" continuera le picorage \n"
"des commits restants.\n"
-#: builtin/commit.c:279
+#: builtin/commit.c:287
msgid "failed to unpack HEAD tree object"
msgstr "échec du dépaquetage de l'objet arbre HEAD"
-#: builtin/commit.c:321
+#: builtin/commit.c:329
msgid "unable to create temporary index"
msgstr "impossible de créer l'index temporaire"
-#: builtin/commit.c:327
+#: builtin/commit.c:335
msgid "interactive add failed"
msgstr "échec de l'ajout interactif"
-#: builtin/commit.c:360 builtin/commit.c:381 builtin/commit.c:431
+#: builtin/commit.c:368 builtin/commit.c:389 builtin/commit.c:439
msgid "unable to write new_index file"
msgstr "impossible d'écrire le fichier new_index"
-#: builtin/commit.c:412
+#: builtin/commit.c:420
msgid "cannot do a partial commit during a merge."
msgstr "impossible de faire une validation partielle pendant une fusion."
-#: builtin/commit.c:414
+#: builtin/commit.c:422
msgid "cannot do a partial commit during a cherry-pick."
msgstr "impossible de faire une validation partielle pendant un picorage."
-#: builtin/commit.c:424
+#: builtin/commit.c:432
msgid "cannot read the index"
msgstr "impossible de lire l'index"
-#: builtin/commit.c:444
+#: builtin/commit.c:452
msgid "unable to write temporary index file"
msgstr "impossible d'écrire le fichier d'index temporaire"
-#: builtin/commit.c:535 builtin/commit.c:541
+#: builtin/commit.c:543 builtin/commit.c:549
#, c-format
msgid "invalid commit: %s"
msgstr "commit invalide : %s"
-#: builtin/commit.c:563
+#: builtin/commit.c:571
msgid "malformed --author parameter"
msgstr "paramètre --author mal formé"
-#: builtin/commit.c:583
+#: builtin/commit.c:591
#, c-format
msgid "Malformed ident string: '%s'"
msgstr "Chaîne ident mal formée : '%s'"
-#: builtin/commit.c:621 builtin/commit.c:654 builtin/commit.c:982
+#: builtin/commit.c:630 builtin/commit.c:663 builtin/commit.c:1007
#, c-format
msgid "could not lookup commit %s"
msgstr "impossible de rechercher le commit %s"
-#: builtin/commit.c:633 builtin/shortlog.c:271
+#: builtin/commit.c:642 builtin/shortlog.c:273
#, c-format
msgid "(reading log message from standard input)\n"
msgstr "(lecture du message de journal depuis l'entrée standard)\n"
-#: builtin/commit.c:635
+#: builtin/commit.c:644
msgid "could not read log from standard input"
msgstr "impossible de lire le journal depuis l'entrée standard"
-#: builtin/commit.c:639
+#: builtin/commit.c:648
#, c-format
msgid "could not read log file '%s'"
msgstr "impossible de lire le fichier de journal '%s'"
-#: builtin/commit.c:645
+#: builtin/commit.c:654
msgid "commit has empty message"
msgstr "le commit a un message vide"
-#: builtin/commit.c:661
+#: builtin/commit.c:670
msgid "could not read MERGE_MSG"
msgstr "impossible de lire MERGE_MSG"
-#: builtin/commit.c:665
+#: builtin/commit.c:674
msgid "could not read SQUASH_MSG"
msgstr "impossible de lire SQUASH_MSG"
-#: builtin/commit.c:669
+#: builtin/commit.c:678
#, c-format
msgid "could not read '%s'"
msgstr "impossible de lire '%s'"
-#: builtin/commit.c:730
+#: builtin/commit.c:749
msgid "could not write commit template"
msgstr "impossible d'écrire le modèle de commit"
-#: builtin/commit.c:741
+#: builtin/commit.c:760
#, c-format
msgid ""
"\n"
@@ -4173,7 +4349,7 @@ msgstr ""
"\t%s\n"
"et essayez à nouveau.\n"
-#: builtin/commit.c:746
+#: builtin/commit.c:765
#, c-format
msgid ""
"\n"
@@ -4188,7 +4364,7 @@ msgstr ""
"\t%s\n"
"et essayez à nouveau.\n"
-#: builtin/commit.c:758
+#: builtin/commit.c:777
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -4198,7 +4374,7 @@ msgstr ""
"commençant par '%c' seront ignorées, et un message vide abandonne la "
"validation.\n"
-#: builtin/commit.c:763
+#: builtin/commit.c:782
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -4209,142 +4385,142 @@ msgstr ""
"commençant par '%c' seront conservées ; vous pouvez les supprimer vous-même\n"
"si vous le souhaitez. Un message vide abandonne la validation.\n"
-#: builtin/commit.c:776
+#: builtin/commit.c:795
#, c-format
msgid "%sAuthor: %s"
msgstr "%sAuteur : %s"
-#: builtin/commit.c:783
+#: builtin/commit.c:802
#, c-format
msgid "%sCommitter: %s"
msgstr "%sValidateur : %s"
-#: builtin/commit.c:803
+#: builtin/commit.c:822
msgid "Cannot read index"
msgstr "Impossible de lire l'index"
-#: builtin/commit.c:845
+#: builtin/commit.c:865
msgid "Error building trees"
msgstr "Erreur lors de la construction des arbres"
-#: builtin/commit.c:860 builtin/tag.c:359
+#: builtin/commit.c:880 builtin/tag.c:359
#, c-format
msgid "Please supply the message using either -m or -F option.\n"
msgstr "Veuillez fournir le message en utilisant l'option -m ou -F.\n"
-#: builtin/commit.c:957
+#: builtin/commit.c:982
#, c-format
msgid "No existing author found with '%s'"
msgstr "Aucun auteur existant trouvé avec '%s'"
-#: builtin/commit.c:972 builtin/commit.c:1208
+#: builtin/commit.c:997 builtin/commit.c:1237
#, c-format
msgid "Invalid untracked files mode '%s'"
msgstr "Mode de fichier non suivi invalide '%s'"
-#: builtin/commit.c:1009
+#: builtin/commit.c:1034
msgid "--long and -z are incompatible"
msgstr "--long et -z sont incompatibles"
-#: builtin/commit.c:1039
+#: builtin/commit.c:1064
msgid "Using both --reset-author and --author does not make sense"
msgstr "L'utilisation simultanée de --reset-author et --author n'a pas de sens"
-#: builtin/commit.c:1050
+#: builtin/commit.c:1075
msgid "You have nothing to amend."
msgstr "Il n'y a rien à corriger."
-#: builtin/commit.c:1053
+#: builtin/commit.c:1078
msgid "You are in the middle of a merge -- cannot amend."
msgstr "Vous êtes en pleine fusion -- impossible de corriger (amend)."
-#: builtin/commit.c:1055
+#: builtin/commit.c:1080
msgid "You are in the middle of a cherry-pick -- cannot amend."
msgstr "Vous êtes en plein picorage -- impossible de corriger (amend)."
-#: builtin/commit.c:1058
+#: builtin/commit.c:1083
msgid "Options --squash and --fixup cannot be used together"
msgstr "Les options --squash et --fixup ne peuvent pas être utilisées ensemble"
-#: builtin/commit.c:1068
+#: builtin/commit.c:1093
msgid "Only one of -c/-C/-F/--fixup can be used."
msgstr "Une seule option parmi -c/-C/-F/--fixup peut être utilisée."
-#: builtin/commit.c:1070
+#: builtin/commit.c:1095
msgid "Option -m cannot be combined with -c/-C/-F/--fixup."
msgstr "L'option -m ne peut pas être combinée avec -c/-C/-F/--fixup."
-#: builtin/commit.c:1078
+#: builtin/commit.c:1103
msgid "--reset-author can be used only with -C, -c or --amend."
msgstr "--reset-author ne peut être utilisé qu'avec -C, -c ou --amend."
-#: builtin/commit.c:1095
+#: builtin/commit.c:1120
msgid "Only one of --include/--only/--all/--interactive/--patch can be used."
msgstr ""
"Une seule option parmi --include/--only/--all/--interactive/--patch peut "
"être utilisée."
-#: builtin/commit.c:1097
+#: builtin/commit.c:1122
msgid "No paths with --include/--only does not make sense."
msgstr "Aucun chemin avec les options --include/--only n'a pas de sens."
-#: builtin/commit.c:1099
+#: builtin/commit.c:1124
msgid "Clever... amending the last one with dirty index."
msgstr "Malin... correction du dernier avec un index sale."
-#: builtin/commit.c:1101
+#: builtin/commit.c:1126
msgid "Explicit paths specified without -i nor -o; assuming --only paths..."
msgstr "Chemins explicites spécifiés sans -i ni -o ; --only supposé..."
-#: builtin/commit.c:1111 builtin/tag.c:575
+#: builtin/commit.c:1136 builtin/tag.c:572
#, c-format
msgid "Invalid cleanup mode %s"
msgstr "Mode de nettoyage invalide %s"
-#: builtin/commit.c:1116
+#: builtin/commit.c:1141
msgid "Paths with -a does not make sense."
msgstr "Spécifier des chemins avec l'option -a n'a pas de sens."
-#: builtin/commit.c:1222 builtin/commit.c:1455
+#: builtin/commit.c:1251 builtin/commit.c:1482
msgid "show status concisely"
msgstr "afficher le statut avec concision"
-#: builtin/commit.c:1224 builtin/commit.c:1457
+#: builtin/commit.c:1253 builtin/commit.c:1484
msgid "show branch information"
msgstr "afficher l'information de branche"
-#: builtin/commit.c:1226 builtin/commit.c:1459 builtin/push.c:452
+#: builtin/commit.c:1255 builtin/commit.c:1486 builtin/push.c:460
msgid "machine-readable output"
msgstr "sortie pour traitement automatique"
-#: builtin/commit.c:1229 builtin/commit.c:1461
+#: builtin/commit.c:1258 builtin/commit.c:1488
msgid "show status in long format (default)"
msgstr "afficher le statut en format long (par défaut)"
-#: builtin/commit.c:1232 builtin/commit.c:1464
+#: builtin/commit.c:1261 builtin/commit.c:1491
msgid "terminate entries with NUL"
msgstr "terminer les éléments par NUL"
-#: builtin/commit.c:1234 builtin/commit.c:1467 builtin/fast-export.c:667
-#: builtin/fast-export.c:670 builtin/tag.c:459
+#: builtin/commit.c:1263 builtin/commit.c:1494 builtin/fast-export.c:674
+#: builtin/fast-export.c:677 builtin/tag.c:459
msgid "mode"
msgstr "mode"
-#: builtin/commit.c:1235 builtin/commit.c:1467
+#: builtin/commit.c:1264 builtin/commit.c:1494
msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
msgstr ""
"afficher les fichiers non suivis, \"mode\" facultatif : all (tous), normal, "
"no. (Défaut : all)"
-#: builtin/commit.c:1238
+#: builtin/commit.c:1267
msgid "show ignored files"
msgstr "afficher les fichiers ignorés"
-#: builtin/commit.c:1239 parse-options.h:154
+#: builtin/commit.c:1268 parse-options.h:156
msgid "when"
msgstr "quand"
-#: builtin/commit.c:1240
+#: builtin/commit.c:1269
msgid ""
"ignore changes to submodules, optional when: all, dirty, untracked. "
"(Default: all)"
@@ -4352,217 +4528,217 @@ msgstr ""
"ignorer les modifications dans les sous-modules, \"quand\" facultatif : all "
"(tous), dirty (sale), untracked (non suivi). (Défaut : all)"
-#: builtin/commit.c:1242
+#: builtin/commit.c:1271
msgid "list untracked files in columns"
msgstr "afficher les fichiers non suivis en colonnes"
-#: builtin/commit.c:1313
+#: builtin/commit.c:1340
msgid "couldn't look up newly created commit"
msgstr "impossible de retrouver le commit nouvellement créé"
-#: builtin/commit.c:1315
+#: builtin/commit.c:1342
msgid "could not parse newly created commit"
msgstr "impossible d'analyser le commit nouvellement créé"
-#: builtin/commit.c:1356
+#: builtin/commit.c:1383
msgid "detached HEAD"
msgstr "HEAD détachée"
-#: builtin/commit.c:1358
+#: builtin/commit.c:1385
msgid " (root-commit)"
msgstr " (commit racine)"
-#: builtin/commit.c:1425
+#: builtin/commit.c:1452
msgid "suppress summary after successful commit"
msgstr "supprimer le résumé après une validation réussie"
-#: builtin/commit.c:1426
+#: builtin/commit.c:1453
msgid "show diff in commit message template"
msgstr "afficher les diff dans le modèle de message de validation"
-#: builtin/commit.c:1428
+#: builtin/commit.c:1455
msgid "Commit message options"
msgstr "Options du message de validation"
-#: builtin/commit.c:1429 builtin/tag.c:457
+#: builtin/commit.c:1456 builtin/tag.c:457
msgid "read message from file"
msgstr "lire le message depuis un fichier"
-#: builtin/commit.c:1430
+#: builtin/commit.c:1457
msgid "author"
msgstr "auteur"
-#: builtin/commit.c:1430
+#: builtin/commit.c:1457
msgid "override author for commit"
msgstr "remplacer l'auteur pour la validation"
-#: builtin/commit.c:1431 builtin/gc.c:178
+#: builtin/commit.c:1458 builtin/gc.c:260
msgid "date"
msgstr "date"
-#: builtin/commit.c:1431
+#: builtin/commit.c:1458
msgid "override date for commit"
msgstr "remplacer la date pour la validation"
-#: builtin/commit.c:1432 builtin/merge.c:223 builtin/notes.c:405
+#: builtin/commit.c:1459 builtin/merge.c:223 builtin/notes.c:405
#: builtin/notes.c:562 builtin/tag.c:455
msgid "message"
msgstr "message"
-#: builtin/commit.c:1432
+#: builtin/commit.c:1459
msgid "commit message"
msgstr "message de validation"
-#: builtin/commit.c:1433
+#: builtin/commit.c:1460
msgid "reuse and edit message from specified commit"
msgstr "réutiliser et éditer le message du commit spécifié"
-#: builtin/commit.c:1434
+#: builtin/commit.c:1461
msgid "reuse message from specified commit"
msgstr "réutiliser le message du commit spécifié"
-#: builtin/commit.c:1435
+#: builtin/commit.c:1462
msgid "use autosquash formatted message to fixup specified commit"
msgstr ""
"utiliser un message formaté par autosquash pour corriger le commit spécifié"
-#: builtin/commit.c:1436
+#: builtin/commit.c:1463
msgid "use autosquash formatted message to squash specified commit"
msgstr ""
"utiliser un message formaté par autosquash pour compresser le commit spécifié"
-#: builtin/commit.c:1437
+#: builtin/commit.c:1464
msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr ""
"à présent je suis l'auteur de la validation (utilisé avec -C/-c/--amend)"
-#: builtin/commit.c:1438 builtin/log.c:1160 builtin/revert.c:111
+#: builtin/commit.c:1465 builtin/log.c:1180 builtin/revert.c:86
msgid "add Signed-off-by:"
msgstr "ajouter une entrée Signed-off-by :"
-#: builtin/commit.c:1439
+#: builtin/commit.c:1466
msgid "use specified template file"
msgstr "utiliser le fichier de modèle spécifié"
-#: builtin/commit.c:1440
+#: builtin/commit.c:1467
msgid "force edit of commit"
msgstr "forcer l'édition du commit"
-#: builtin/commit.c:1441
+#: builtin/commit.c:1468
msgid "default"
msgstr "défaut"
-#: builtin/commit.c:1441 builtin/tag.c:460
+#: builtin/commit.c:1468 builtin/tag.c:460
msgid "how to strip spaces and #comments from message"
msgstr "comment éliminer les espaces et les commentaires # du message"
-#: builtin/commit.c:1442
+#: builtin/commit.c:1469
msgid "include status in commit message template"
msgstr "inclure le statut dans le modèle de message de validation"
-#: builtin/commit.c:1443 builtin/merge.c:230 builtin/tag.c:461
+#: builtin/commit.c:1470 builtin/merge.c:230 builtin/tag.c:461
msgid "key id"
msgstr "identifiant de clé"
-#: builtin/commit.c:1444 builtin/merge.c:231
+#: builtin/commit.c:1471 builtin/merge.c:231
msgid "GPG sign commit"
msgstr "signer la validation avec GPG"
#. end commit message options
-#: builtin/commit.c:1447
+#: builtin/commit.c:1474
msgid "Commit contents options"
msgstr "Valider les options des contenus"
-#: builtin/commit.c:1448
+#: builtin/commit.c:1475
msgid "commit all changed files"
msgstr "valider tous les fichiers modifiés"
-#: builtin/commit.c:1449
+#: builtin/commit.c:1476
msgid "add specified files to index for commit"
msgstr "ajouter les fichiers spécifiés à l'index pour la validation"
-#: builtin/commit.c:1450
+#: builtin/commit.c:1477
msgid "interactively add files"
msgstr "ajouter des fichiers en mode interactif"
-#: builtin/commit.c:1451
+#: builtin/commit.c:1478
msgid "interactively add changes"
msgstr "ajouter les modifications en mode interactif"
-#: builtin/commit.c:1452
+#: builtin/commit.c:1479
msgid "commit only specified files"
msgstr "valider seulement les fichiers spécifiés"
-#: builtin/commit.c:1453
+#: builtin/commit.c:1480
msgid "bypass pre-commit hook"
msgstr "éviter d'utiliser le crochet pre-commit"
-#: builtin/commit.c:1454
+#: builtin/commit.c:1481
msgid "show what would be committed"
msgstr "afficher ce qui serait validé"
-#: builtin/commit.c:1465
+#: builtin/commit.c:1492
msgid "amend previous commit"
msgstr "corriger la validation précédente"
-#: builtin/commit.c:1466
+#: builtin/commit.c:1493
msgid "bypass post-rewrite hook"
msgstr "éviter d'utiliser le crochet post-rewrite"
-#: builtin/commit.c:1471
+#: builtin/commit.c:1498
msgid "ok to record an empty change"
msgstr "accepter d'enregistrer une modification vide"
-#: builtin/commit.c:1474
+#: builtin/commit.c:1500
msgid "ok to record a change with an empty message"
msgstr "accepter d'enregistrer une modification avec un message vide"
-#: builtin/commit.c:1507
+#: builtin/commit.c:1529
msgid "could not parse HEAD commit"
msgstr "impossible d'analyser le commit HEAD"
-#: builtin/commit.c:1545 builtin/merge.c:525
+#: builtin/commit.c:1567 builtin/merge.c:525
#, c-format
msgid "could not open '%s' for reading"
msgstr "impossible d'ouvrir '%s' en lecture"
-#: builtin/commit.c:1552
+#: builtin/commit.c:1574
#, c-format
msgid "Corrupt MERGE_HEAD file (%s)"
msgstr "Fichier MERGE_HEAD corrompu (%s)"
-#: builtin/commit.c:1559
+#: builtin/commit.c:1581
msgid "could not read MERGE_MODE"
msgstr "impossible de lire MERGE_MODE"
-#: builtin/commit.c:1578
+#: builtin/commit.c:1600
#, c-format
msgid "could not read commit message: %s"
msgstr "impossible de lire le message de validation : %s"
-#: builtin/commit.c:1592
+#: builtin/commit.c:1614
#, c-format
msgid "Aborting commit; you did not edit the message.\n"
msgstr "Abandon de la validation ; vous n'avez pas édité le message\n"
-#: builtin/commit.c:1597
+#: builtin/commit.c:1619
#, c-format
msgid "Aborting commit due to empty commit message.\n"
msgstr "Abandon de la validation du à un message de validation vide\n"
-#: builtin/commit.c:1612 builtin/merge.c:861 builtin/merge.c:886
+#: builtin/commit.c:1634 builtin/merge.c:861 builtin/merge.c:886
msgid "failed to write commit object"
msgstr "échec de l'écriture de l'objet commit"
-#: builtin/commit.c:1633
+#: builtin/commit.c:1655
msgid "cannot lock HEAD ref"
msgstr "impossible de verrouiller la référence HEAD"
-#: builtin/commit.c:1637
+#: builtin/commit.c:1659
msgid "cannot update HEAD ref"
msgstr "impossible de mettre à jour la référence HEAD"
-#: builtin/commit.c:1648
+#: builtin/commit.c:1670
msgid ""
"Repository has been updated, but unable to write\n"
"new_index file. Check that disk is not full or quota is\n"
@@ -4572,128 +4748,132 @@ msgstr ""
"new_index. Vérifiez que le disque n'est pas plein ou que le quota\n"
"n'a pas été dépassé, puis lancez \"git reset HEAD\" pour réparer."
-#: builtin/config.c:7
+#: builtin/config.c:8
msgid "git config [options]"
msgstr "git config [options]"
-#: builtin/config.c:52
+#: builtin/config.c:54
msgid "Config file location"
msgstr "Emplacement du fichier de configuration"
-#: builtin/config.c:53
+#: builtin/config.c:55
msgid "use global config file"
msgstr "utiliser les fichier de configuration global"
-#: builtin/config.c:54
+#: builtin/config.c:56
msgid "use system config file"
msgstr "utiliser le fichier de configuration du système"
-#: builtin/config.c:55
+#: builtin/config.c:57
msgid "use repository config file"
msgstr "utiliser le fichier de configuration du dépôt"
-#: builtin/config.c:56
+#: builtin/config.c:58
msgid "use given config file"
msgstr "utiliser le fichier de configuration spécifié"
-#: builtin/config.c:57
+#: builtin/config.c:59
msgid "blob-id"
msgstr "blob-id"
-#: builtin/config.c:57
+#: builtin/config.c:59
msgid "read config from given blob object"
msgstr "lire la configuration depuis l'objet blob fourni"
-#: builtin/config.c:58
+#: builtin/config.c:60
msgid "Action"
msgstr "Action"
-#: builtin/config.c:59
+#: builtin/config.c:61
msgid "get value: name [value-regex]"
msgstr "obtenir la valeur : nom [regex-de-valeur]"
-#: builtin/config.c:60
+#: builtin/config.c:62
msgid "get all values: key [value-regex]"
msgstr "obtenir toutes le valeurs : clé [regex-de-valeur]"
-#: builtin/config.c:61
+#: builtin/config.c:63
msgid "get values for regexp: name-regex [value-regex]"
msgstr "obtenir les valeur pour la regexp : regex-de-nom [regex-de-valeur]"
-#: builtin/config.c:62
+#: builtin/config.c:64
+msgid "get value specific for the URL: section[.var] URL"
+msgstr "obtenir la valeur spécifique pour l'URL : section[.var] URL"
+
+#: builtin/config.c:65
msgid "replace all matching variables: name value [value_regex]"
msgstr ""
"remplacer toutes les variables correspondant : nom valeur [regex-de-valeur]"
-#: builtin/config.c:63
+#: builtin/config.c:66
msgid "add a new variable: name value"
msgstr "ajouter une nouvelle variable : nom valeur"
-#: builtin/config.c:64
+#: builtin/config.c:67
msgid "remove a variable: name [value-regex]"
msgstr "supprimer une variable : nom [regex-de-valeur]"
-#: builtin/config.c:65
+#: builtin/config.c:68
msgid "remove all matches: name [value-regex]"
msgstr "supprimer toutes les correspondances nom [regex-de-valeur]"
-#: builtin/config.c:66
+#: builtin/config.c:69
msgid "rename section: old-name new-name"
msgstr "renommer une section : ancien-nom nouveau-nom"
-#: builtin/config.c:67
+#: builtin/config.c:70
msgid "remove a section: name"
msgstr "supprimer une section : nom"
-#: builtin/config.c:68
+#: builtin/config.c:71
msgid "list all"
msgstr "afficher tout"
-#: builtin/config.c:69
+#: builtin/config.c:72
msgid "open an editor"
msgstr "ouvrir un éditeur"
-#: builtin/config.c:70 builtin/config.c:71
+#: builtin/config.c:73 builtin/config.c:74
msgid "slot"
msgstr "emplacement"
-#: builtin/config.c:70
+#: builtin/config.c:73
msgid "find the color configured: [default]"
msgstr "trouver la couleur configurée : [par défaut]"
-#: builtin/config.c:71
+#: builtin/config.c:74
msgid "find the color setting: [stdout-is-tty]"
msgstr "trouver le réglage de la couleur : [stdout-est-tty]"
-#: builtin/config.c:72
+#: builtin/config.c:75
msgid "Type"
msgstr "Type"
-#: builtin/config.c:73
+#: builtin/config.c:76
msgid "value is \"true\" or \"false\""
msgstr "la valeur est \"true\" (vrai) our \"false\" (faux)"
-#: builtin/config.c:74
+#: builtin/config.c:77
msgid "value is decimal number"
msgstr "la valeur est un nombre décimal"
-#: builtin/config.c:75
+#: builtin/config.c:78
msgid "value is --bool or --int"
msgstr "la valeur est --bool ou --int"
-#: builtin/config.c:76
+#: builtin/config.c:79
msgid "value is a path (file or directory name)"
msgstr "la valeur est un chemin (vers un fichier ou un répertoire)"
-#: builtin/config.c:77
+#: builtin/config.c:80
msgid "Other"
msgstr "Autre"
-#: builtin/config.c:78
+#: builtin/config.c:81
msgid "terminate values with NUL byte"
msgstr "terminer les valeurs avec un caractère NUL"
-#: builtin/config.c:79
+#: builtin/config.c:82
msgid "respect include directives on lookup"
msgstr "respecter les directives d'inclusion lors de la recherche"
@@ -4705,7 +4885,7 @@ msgstr "git count-objects [-v] [-H | --human-readable]"
msgid "print sizes in human readable format"
msgstr "affiche les tailles dans un format humainement lisible"
-#: builtin/describe.c:15
+#: builtin/describe.c:16
msgid "git describe [options] <commit-ish>*"
msgstr "git describe [options] <commit ou apparenté>*"
@@ -4843,7 +5023,7 @@ msgstr "--long et --abbrev=0 sont incompatibles"
msgid "No names found, cannot describe anything."
msgstr "aucun nom trouvé, impossible de décrire quoi que ce soit."
-#: builtin/describe.c:481
+#: builtin/describe.c:489
msgid "--dirty is incompatible with commit-ishes"
msgstr "--dirty est incompatible avec la spécification de commits ou assimilés"
@@ -4880,40 +5060,40 @@ msgstr "objet non géré '%s' spécifié."
msgid "git fast-export [rev-list-opts]"
msgstr "git fast-export [options-de-liste-de-révisions]"
-#: builtin/fast-export.c:666
+#: builtin/fast-export.c:673
msgid "show progress after <n> objects"
msgstr "afficher la progression après <n> objets"
-#: builtin/fast-export.c:668
+#: builtin/fast-export.c:675
msgid "select handling of signed tags"
msgstr "sélectionner la gestion des étiquettes signées"
-#: builtin/fast-export.c:671
+#: builtin/fast-export.c:678
msgid "select handling of tags that tag filtered objects"
msgstr ""
"sélectionner la gestion des étiquettes qui pointent sur des objets filtrés"
-#: builtin/fast-export.c:674
+#: builtin/fast-export.c:681
msgid "Dump marks to this file"
msgstr "Enregistrer les marques dans ce fichier"
-#: builtin/fast-export.c:676
+#: builtin/fast-export.c:683
msgid "Import marks from this file"
msgstr "importer les marques depuis ce fichier"
-#: builtin/fast-export.c:678
+#: builtin/fast-export.c:685
msgid "Fake a tagger when tags lack one"
msgstr "falsifier un auteur d'étiquette si l'étiquette n'en présente pas"
-#: builtin/fast-export.c:680
+#: builtin/fast-export.c:687
msgid "Output full tree for each commit"
msgstr "Afficher l'arbre complet pour chaque commit"
-#: builtin/fast-export.c:682
+#: builtin/fast-export.c:689
msgid "Use the done feature to terminate the stream"
msgstr "Utiliser la fonction \"done\" pour terminer le flux"
-#: builtin/fast-export.c:683
+#: builtin/fast-export.c:690
msgid "Skip output of blob data"
msgstr "Sauter l'affichage de données de blob"
@@ -4933,146 +5113,146 @@ msgstr "git fetch --multiple [<options>] [(<dépôt> | <groupe>)...]"
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<options>]"
-#: builtin/fetch.c:60
+#: builtin/fetch.c:74
msgid "fetch from all remotes"
msgstr "récupérer depuis tous le dépôts distants"
-#: builtin/fetch.c:62
+#: builtin/fetch.c:76
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "ajouter à .git/FETCH_HEAD au lieu de l'écraser"
-#: builtin/fetch.c:64
+#: builtin/fetch.c:78
msgid "path to upload pack on remote end"
msgstr "chemin vers lequel télécharger le paquet sur le poste distant"
-#: builtin/fetch.c:65
+#: builtin/fetch.c:79
msgid "force overwrite of local branch"
msgstr "forcer l'écrasement de la branche locale"
-#: builtin/fetch.c:67
+#: builtin/fetch.c:81
msgid "fetch from multiple remotes"
msgstr "récupérer depuis plusieurs dépôts distants"
-#: builtin/fetch.c:69
+#: builtin/fetch.c:83
msgid "fetch all tags and associated objects"
msgstr "récupérer toutes les étiquettes et leurs objets associés"
-#: builtin/fetch.c:71
+#: builtin/fetch.c:85
msgid "do not fetch all tags (--no-tags)"
msgstr "ne pas récupérer toutes les étiquettes (--no-tags)"
-#: builtin/fetch.c:73
+#: builtin/fetch.c:87
msgid "prune remote-tracking branches no longer on remote"
msgstr ""
"éliminer les branches de suivi distant si la branche n'existe plus dans le "
"dépôt distant"
-#: builtin/fetch.c:74
+#: builtin/fetch.c:88
msgid "on-demand"
msgstr "à la demande"
-#: builtin/fetch.c:75
+#: builtin/fetch.c:89
msgid "control recursive fetching of submodules"
msgstr "contrôler la récupération récursive dans les sous-modules"
-#: builtin/fetch.c:79
+#: builtin/fetch.c:93
msgid "keep downloaded pack"
msgstr "conserver le paquet téléchargé"
-#: builtin/fetch.c:81
+#: builtin/fetch.c:95
msgid "allow updating of HEAD ref"
msgstr "permettre la mise à jour de la référence HEAD"
-#: builtin/fetch.c:84
+#: builtin/fetch.c:98
msgid "deepen history of shallow clone"
msgstr "approfondir l'historique d'un clone superficiel"
-#: builtin/fetch.c:86
+#: builtin/fetch.c:100
msgid "convert to a complete repository"
msgstr "convertir en un dépôt complet"
-#: builtin/fetch.c:88 builtin/log.c:1177
+#: builtin/fetch.c:102 builtin/log.c:1197
msgid "dir"
msgstr "dir"
-#: builtin/fetch.c:89
+#: builtin/fetch.c:103
msgid "prepend this to submodule path output"
msgstr "préfixer ceci à la sortie du chemin du sous-module"
-#: builtin/fetch.c:92
+#: builtin/fetch.c:106
msgid "default mode for recursion"
msgstr "mode par défaut pour la récursion"
-#: builtin/fetch.c:220
+#: builtin/fetch.c:236
msgid "Couldn't find remote ref HEAD"
msgstr "impossible de trouver la référence HEAD distante"
-#: builtin/fetch.c:273
+#: builtin/fetch.c:290
#, c-format
msgid "object %s not found"
msgstr "objet %s non trouvé"
-#: builtin/fetch.c:278
+#: builtin/fetch.c:295
msgid "[up to date]"
msgstr "[à jour]"
-#: builtin/fetch.c:292
+#: builtin/fetch.c:309
#, c-format
msgid "! %-*s %-*s -> %s