* Re: [WIP RFC 2/5] Documentation: add Packfile URIs design doc
From: brian m. carlson @ 2018-12-04 1:54 UTC (permalink / raw)
To: Jonathan Tan; +Cc: git
In-Reply-To: <0461b362569362c6d0e73951469c547a03a1b59d.1543879256.git.jonathantanmy@google.com>
[-- Attachment #1: Type: text/plain, Size: 3058 bytes --]
On Mon, Dec 03, 2018 at 03:37:35PM -0800, Jonathan Tan wrote:
> Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
> ---
> Documentation/technical/packfile-uri.txt | 83 ++++++++++++++++++++++++
> Documentation/technical/protocol-v2.txt | 6 +-
> 2 files changed, 88 insertions(+), 1 deletion(-)
> create mode 100644 Documentation/technical/packfile-uri.txt
>
> diff --git a/Documentation/technical/packfile-uri.txt b/Documentation/technical/packfile-uri.txt
> new file mode 100644
> index 0000000000..6535801486
> --- /dev/null
> +++ b/Documentation/technical/packfile-uri.txt
> @@ -0,0 +1,83 @@
> +Packfile URIs
> +=============
> +
> +This feature allows servers to serve part of their packfile response as URIs.
> +This allows server designs that improve scalability in bandwidth and CPU usage
> +(for example, by serving some data through a CDN), and (in the future) provides
> +some measure of resumability to clients.
> +
> +This feature is available only in protocol version 2.
> +
> +Protocol
> +--------
> +
> +The server advertises `packfile-uris`.
> +
> +If the client replies with the following arguments:
> +
> + * packfile-uris
> + * thin-pack
> + * ofs-delta
> +
> +when the server sends the packfile, it MAY send a `packfile-uris` section
> +directly before the `packfile` section (right after `wanted-refs` if it is
> +sent) containing HTTP(S) URIs. See protocol-v2.txt for the documentation of
> +this section.
> +
> +Clients then should understand that the returned packfile could be incomplete,
> +and that it needs to download all the given URIs before the fetch or clone is
> +complete. Each URI should point to a Git packfile (which may be a thin pack and
> +which may contain offset deltas).
Some thoughts here:
First, I'd like to see a section (and a bit in the implementation)
requiring HTTPS if the original protocol is secure (SSH or HTTPS).
Allowing the server to downgrade to HTTP, even by accident, would be a
security problem.
Second, this feature likely should be opt-in for SSH. One issue I've
seen repeatedly is that people don't want to use HTTPS to fetch things
when they're using SSH for Git. Many people in corporate environments
have proxies that break HTTP for non-browser use cases[0], and using SSH
is the only way that they can make a functional Git connection.
Third, I think the server needs to be required to both support Range
headers and never change the content of a URI, so that we can have
resumable clone implicit in this design. There are some places in the
world where connections are poor and fetching even the initial packfile
at once might be a problem. (I've seen such questions on Stack
Overflow, for example.)
Having said that, I think overall this is a good idea and I'm glad to
see a proposal for it.
[0] For example, a naughty-word filter may corrupt or block certain byte
sequences that occur incidentally in the pack stream.
--
brian m. carlson: Houston, Texas, US
OpenPGP: https://keybase.io/bk2204
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 868 bytes --]
^ permalink raw reply
* Re: [RFC 2/2] exclude-promisor-objects: declare when option is allowed
From: Junio C Hamano @ 2018-12-04 2:20 UTC (permalink / raw)
To: Jeff King
Cc: Matthew DeVore, Matthew DeVore, git, pclouds, jonathantanmy,
jeffhost
In-Reply-To: <20181203211555.GA8700@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
> That said, our C99 designated initializer weather-balloons haven't
> gotten any complaints yet. So I think you could actually do:
>
> struct setup_revision_opt s_r_opt = {
> .allow_exclude_promisor_objects = 1,
> };
> ...
> setup_revisions(...);
>
> which is pretty nice.
Yup. The output from
$ git grep -n ' \.[a-z0-9_]* =' -- \*.[ch]
with a bit of "git blame" tells us that cbc0f81d ("strbuf: use
designated initializers in STRBUF_INIT", 2017-07-10) is the balloon
for this exact feature. The same for array was done in 512f41cf
("clean.c: use designated initializer", 2017-07-14)
[I am writing it down so that I do not have to dig for it every time
and instead can ask the list archive]
^ permalink raw reply
* Re: [PATCH 1/3] RelNotes 2.20: move some items between sections
From: Junio C Hamano @ 2018-12-04 2:23 UTC (permalink / raw)
To: Martin Ågren; +Cc: git
In-Reply-To: <d69f63b5f6d2405f455664c936f329e7971ef1cc.1543868120.git.martin.agren@gmail.com>
Martin Ågren <martin.agren@gmail.com> writes:
> Some items that should be in "Performance, Internal Implementation,
> Development Support etc." have ended up in "UI, Workflows & Features"
> and "Fixes since v2.19". Move them, and do s/uses/use/ while at it.
>
> Signed-off-by: Martin Ågren <martin.agren@gmail.com>
> ---
I agree with the early half of this change; I think it is OK to
consider lack of preparation for Travis transition and lack of
better testing in the maintenance track as bugs, though.
> Documentation/RelNotes/2.20.0.txt | 26 +++++++++++++-------------
> 1 file changed, 13 insertions(+), 13 deletions(-)
>
> diff --git a/Documentation/RelNotes/2.20.0.txt b/Documentation/RelNotes/2.20.0.txt
> index b1deaf37da..e5ab8cc609 100644
> --- a/Documentation/RelNotes/2.20.0.txt
> +++ b/Documentation/RelNotes/2.20.0.txt
> @@ -137,11 +137,6 @@ UI, Workflows & Features
> command line, or setting sendemail.suppresscc configuration
> variable to "misc-by", can be used to disable this behaviour.
>
> - * Developer builds now uses -Wunused-function compilation option.
> -
> - * One of our CI tests to run with "unusual/experimental/random"
> - settings now also uses commit-graph and midx.
> -
> * "git mergetool" learned to take the "--[no-]gui" option, just like
> "git difftool" does.
>
> @@ -185,6 +180,11 @@ UI, Workflows & Features
>
> Performance, Internal Implementation, Development Support etc.
>
> + * Developer builds now use -Wunused-function compilation option.
> +
> + * One of our CI tests to run with "unusual/experimental/random"
> + settings now also uses commit-graph and midx.
> +
> * When there are too many packfiles in a repository (which is not
> recommended), looking up an object in these would require
> consulting many pack .idx files; a new mechanism to have a single
> @@ -387,6 +387,14 @@ Performance, Internal Implementation, Development Support etc.
> two classes to ease code migration process has been proposed and
> its support has been added to the Makefile.
>
> + * The "container" mode of TravisCI is going away. Our .travis.yml
> + file is getting prepared for the transition.
> + (merge 32ee384be8 ss/travis-ci-force-vm-mode later to maint).
> +
> + * Our test scripts can now take the '-V' option as a synonym for the
> + '--verbose-log' option.
> + (merge a5f52c6dab sg/test-verbose-log later to maint).
> +
>
> Fixes since v2.19
> -----------------
> @@ -544,14 +552,6 @@ Fixes since v2.19
> didn't make much sense. This has been corrected.
> (merge 669b1d2aae md/exclude-promisor-objects-fix later to maint).
>
> - * The "container" mode of TravisCI is going away. Our .travis.yml
> - file is getting prepared for the transition.
> - (merge 32ee384be8 ss/travis-ci-force-vm-mode later to maint).
> -
> - * Our test scripts can now take the '-V' option as a synonym for the
> - '--verbose-log' option.
> - (merge a5f52c6dab sg/test-verbose-log later to maint).
> -
> * A regression in Git 2.12 era made "git fsck" fall into an infinite
> loop while processing truncated loose objects.
> (merge 18ad13e5b2 jk/detect-truncated-zlib-input later to maint).
^ permalink raw reply
* Re: [PATCH 2/3] RelNotes 2.20: clarify sentence
From: Junio C Hamano @ 2018-12-04 2:23 UTC (permalink / raw)
To: Martin Ågren; +Cc: git
In-Reply-To: <eccb7edd082b55ba1ddd8f0eebb7c2bb9a1f6ada.1543868120.git.martin.agren@gmail.com>
Martin Ågren <martin.agren@gmail.com> writes:
> I had to read this sentence a few times to understand it. Let's try to
> clarify it.
Great. Thanks.
>
> Signed-off-by: Martin Ågren <martin.agren@gmail.com>
> ---
> Documentation/RelNotes/2.20.0.txt | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Documentation/RelNotes/2.20.0.txt b/Documentation/RelNotes/2.20.0.txt
> index e5ab8cc609..201135d80c 100644
> --- a/Documentation/RelNotes/2.20.0.txt
> +++ b/Documentation/RelNotes/2.20.0.txt
> @@ -305,7 +305,7 @@ Performance, Internal Implementation, Development Support etc.
>
> * The overly large Documentation/config.txt file have been split into
> million little pieces. This potentially allows each individual piece
> - included into the manual page of the command it affects more easily.
> + to be included into the manual page of the command it affects more easily.
>
> * Replace three string-list instances used as look-up tables in "git
> fetch" with hashmaps.
^ permalink raw reply
* Re: [PATCH 3/3] RelNotes 2.20: drop spurious double quote
From: Junio C Hamano @ 2018-12-04 2:26 UTC (permalink / raw)
To: Martin Ågren; +Cc: git
In-Reply-To: <78f3043b6589f7e3b1872d940ae2ee1315553373.1543868120.git.martin.agren@gmail.com>
Martin Ågren <martin.agren@gmail.com> writes:
> We have three double-quote characters, which is one too many or too few.
> Dropping the last one seems to match the original intention best.
Thanks for spotting. The actual original intention was that the
user says two things:
first saying "add only what does not match '*' out of all
branches" and then saying "add all branches, without any
exclusion this time".
But letting the user first say one thing and then doing another
thing without saying it is also fine, which is what your version is.
>
> Signed-off-by: Martin Ågren <martin.agren@gmail.com>
> ---
> Documentation/RelNotes/2.20.0.txt | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Documentation/RelNotes/2.20.0.txt b/Documentation/RelNotes/2.20.0.txt
> index 201135d80c..e71fe3dee1 100644
> --- a/Documentation/RelNotes/2.20.0.txt
> +++ b/Documentation/RelNotes/2.20.0.txt
> @@ -578,7 +578,7 @@ Fixes since v2.19
>
> * "git rev-parse --exclude=* --branches --branches" (i.e. first
> saying "add only things that do not match '*' out of all branches"
> - and then adding all branches, without any exclusion this time")
> + and then adding all branches, without any exclusion this time)
> worked as expected, but "--exclude=* --all --all" did not work the
> same way, which has been fixed.
> (merge 5221048092 ag/rev-parse-all-exclude-fix later to maint).
^ permalink raw reply
* Re: [RFC] git clean --local
From: Junio C Hamano @ 2018-12-04 2:45 UTC (permalink / raw)
To: git
Cc: 'Ævar Arnfjörð Bjarmason',
'Cameron Boehmer', Randall S. Becker
In-Reply-To: <xmqqk1kriuu8.fsf@gitster-ct.c.googlers.com>
Junio C Hamano <gitster@pobox.com> writes:
> If "git clean" takes a pathspec, perhaps you can give a negative
> pathspec to exclude whatever you do not want to get cleaned,
> something like
>
> git clean '*.o' ':!precious.o'
>
> to say "presious.o is ignored (hence normally expendable), but I do
> not want to clean it with this invocation of 'git clean'"?
Hmph, this leads me to an interesting thought. With today's code,
these two commands behave in meaningfully different ways when I mark
some paths that match .gitignore patterns with the precious
attribute.
echo "*.ignored" >>.git/info/exclude
echo "precious.* precious" >>.git/info/attributes
: >expendable.ignored 2>precious.ignored
git clean -n -x
git clean -n -x ':(exclude,attr:precious)'
I am not suggesting that giving "git clean" a configuration knob
that always append pathspec elements, which would allow users to use
the mechanism to set the above magic pathspec, would be a good
approach. If we were to follow through this line of thought, an
obvious thing to do is to always unconditonally append the above
magic pathspec internally when running "git clean", which would mean
* Existing projects and users' repositories will see no behaviour
change, because they are unaware of the "precious" attribute.
* People who learn the new feature can start using the "ignored but
precious" class, without any need for transition period.
^ permalink raw reply
* Re: [PATCH] rebase docs: fix incorrect format of the section Behavioral Differences
From: Junio C Hamano @ 2018-12-04 2:49 UTC (permalink / raw)
To: Johannes Sixt; +Cc: Martin Ågren, Git Mailing List
In-Reply-To: <3d8da8da-755f-7114-2274-77bd92720a83@kdbg.org>
Johannes Sixt <j6t@kdbg.org> writes:
> Am 03.12.18 um 21:42 schrieb Martin Ågren:
>> On Mon, 3 Dec 2018 at 18:35, Johannes Sixt <j6t@kdbg.org> wrote:
>>> I actually did not test the result, because I don't have the
>>> infrastructure.
>>
>> I've tested with asciidoc and Asciidoctor, html and man-page. Looks
>> good.
>
> Thank you so much!
>
> -- Hannes
Thanks, both.
^ permalink raw reply
* Re: [PATCH] sideband: color lines with keyword only
From: Junio C Hamano @ 2018-12-04 3:16 UTC (permalink / raw)
To: Jonathan Nieder; +Cc: Stefan Beller, git, Han-Wen Nienhuys
In-Reply-To: <20181203234257.GC157301@google.com>
Jonathan Nieder <jrnieder@gmail.com> writes:
> Stefan Beller wrote:
>> On Mon, Dec 3, 2018 at 3:23 PM Jonathan Nieder <jrnieder@gmail.com> wrote:
>
>>> I was curious about what versions of Gerrit this is designed to
>>> support (or in other words whether it's a bug fix or a feature).
Well, bf1a11f0 ("sideband: highlight keywords in remote sideband
output", 2018-08-07) clearly wanted to allow a keyword followed by
anything !isalnum() to be painted, and we accepted that change
because we thought it was a good idea, so anything that made a
keyword alone not to be painted is a bug, isn't it? Whether output
lines from Gerrit benefits from this fix is a different matter, of
course.
> No worries. Can't hurt for Junio to have a few patches to apply to
> "pu" or "next" to practice using the release candidates. :)
This change falls into "an obvious and small fix to a bug that went
unnoticed and is in an older release (2.19)" category, which is not
eligible for the upcoming release this late in the cycle. I think
enough eyeballs looked at the change already, so let's not waste the
already-spent review braincycle and mark it as "Will merge to 'next'".
^ permalink raw reply
* Re: [PATCH v3 07/14] checkout: split into switch-branch and restore-files
From: Junio C Hamano @ 2018-12-04 3:33 UTC (permalink / raw)
To: Elijah Newren
Cc: Nguyễn Thái Ngọc, Ævar Arnfjörð,
Git Mailing List, Stefan Beller, Thomas Gummerer, sxenos
In-Reply-To: <CABPp-BHQ68pkvO8yXYuy=0D6ne8u=5CUMDqiN0jtRrxCL55n2g@mail.gmail.com>
Elijah Newren <newren@gmail.com> writes:
>> +Updates files in the working tree to match the version in the index
>> +or the specified tree.
>> +
>> +'git restore-files' [--from=<tree-ish>] <pathspec>...::
>
> <tree-ish> and <pathspec>? I understand <commit-ish> and <pathspec>,
> or <tree-ish> but have no clue why it'd be okay to specify <tree-ish>
> and <pathspec> together. What does that even mean?
I have this tree object v2.6.11-tree that is not enclosed in a
commit object. I want to take the top-level Makefile out of that
tree, stuff it in the index and overwrite the working tree file.
$ git checkout v2.6.11-tree Makefile
$ git restore-files --from=v2.6.11-tree Makefile
>> + Overwrite paths in the working tree by replacing with the
>> + contents in the index or in the <tree-ish> (most often a
>> + commit). When a <tree-ish> is given, the paths that
>> + match the <pathspec> are updated both in the index and in
>> + the working tree.
>
> Is that the default we really want for this command? Why do we
> automatically assume these files are ready for commit? I understand
> that it's what checkout did, but I'd find it more natural to only
> affect the working tree by default. We can give it an option for
> affecting the index instead (or perhaps in addition).
Oooah. Now this is getting juicy.
I do think supporting "--index" (which would make it more in line
with what Duy wrote), with optionally "--cached" as well, and making
the "working tree only" mode as default may not be a bad idea. I am
offhand not sure how the "working tree only" mode (similar to the
default mode of "git apply" that mimics the way "patch -p1" works)
should interact with the non-overlay mode of the command, but other
than that, I tend to agree with the idea that restore-files is only
a part of making the contents into committable shape, not exactly
ready for it yet.
^ permalink raw reply
* sharedrepository=group not working
From: Jamie Zawinski @ 2018-12-04 3:27 UTC (permalink / raw)
To: git
I think sharedrepository=group stopped working some time between 2.10.5 (works) and 2.12.4 (does not). 2.19.2 also does not.
I have a user trying to push to a shared repo; the user is not the owner of the files but it is in the same group. All the repo files are g+rw and all the repo directories are g+srw.
drwxrwsr-x. 252 jwz cvs 4096 Dec 3 18:53 /cvsroot/dna.git/objects/
I am getting:
error: remote unpack failed: unable to create temporary object directory
To /cvsroot/dna.git
! [remote rejected] master -> master (unpacker error)
If I'm reading this strace right, it looks like git is successfully creating a directory under objects/ and then failing to create a subdirectory of it (maybe because the just-created parent directory ended up with the wrong permissions?)
mkdir("./objects/incoming-U5EN8D", 0700 <unfinished ...>
<... mkdir resumed> ) = 0
rt_sigaction(SIGINT, {0x56a860, [INT], SA_RESTORER|SA_RESTART, 0x7f842cb3b2f0}, <unfinished ...>
<... rt_sigaction resumed> {SIG_IGN, [], 0}, 8) = 0
rt_sigaction(SIGHUP, {0x56a860, [HUP], SA_RESTORER|SA_RESTART, 0x7f842cb3b2f0}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTERM, {0x56a860, [TERM], SA_RESTORER|SA_RESTART, 0x7f842cb3b2f0}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGQUIT, {0x56a860, [QUIT], SA_RESTORER|SA_RESTART, 0x7f842cb3b2f0}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGPIPE, {0x56a860, [PIPE], SA_RESTORER|SA_RESTART, 0x7f842cb3b2f0}, {SIG_DFL, [PIPE], SA_RESTORER|SA_RESTART, 0x7f842cb3b2f0}, 8) = 0
mkdir("./objects/incoming-U5EN8D/pack", 0777) = -1 EACCES (Permission denied)
--
Jamie Zawinski https://www.jwz.org/ https://www.dnalounge.com/
^ permalink raw reply
* Re: sharedrepository=group not working
From: Jeff King @ 2018-12-04 4:09 UTC (permalink / raw)
To: Jamie Zawinski; +Cc: git
In-Reply-To: <F9365CBF-3D2D-4A05-AC0D-4604067B5826@jwz.org>
On Mon, Dec 03, 2018 at 07:27:13PM -0800, Jamie Zawinski wrote:
> I think sharedrepository=group stopped working some time between
> 2.10.5 (works) and 2.12.4 (does not). 2.19.2 also does not.
Hmm. Given the time-frame and the fact that your strace shows problems
writing into the objects/incoming-* directory, it's likely caused by
722ff7f876 (receive-pack: quarantine objects until pre-receive accepts,
2016-10-03).
The big change there is that instead of writing directly into objects/,
we create a temporary objects/incoming-* directory, write there, and
then migrate the objects over after we determine they're sane.
So in your strace we see the temp directory get created:
> mkdir("./objects/incoming-U5EN8D", 0700 <unfinished ...>
> <... mkdir resumed> ) = 0
The permissions are tighter than we ultimately want, but that's OK.
This tempdir is just for this process (and its children) to look at, and
then we'd eventually migrate the files out.
I could definitely imagine there being a bug in which we don't then
properly loosen permissions when we move things out of the tempdir, but
we don't even get that far. We fail immediately:
> mkdir("./objects/incoming-U5EN8D/pack", 0777) = -1 EACCES (Permission denied)
That seems strange. The outer directory is only 0700, but the user
permissions should be sufficient. Even with the g+s bit set, it should
still be owned by the same user, shouldn't it?
I tried reproducing your state like this:
git init --bare dst.git
git -C dst.git config core.sharedrepository group
chgrp -R somegroup dst.git
find dst.git -type f | xargs chmod g+rw
find dst.git -type d | xargs chmod g+srw
# push works from original user
git clone dst.git client
(
cd client &&
git commit --allow-empty -m foo
git push
)
# push works from alternate user
sudo su anotheruser sh -c '
git clone dst.git /tmp/other &&
cd /tmp/other &&
git commit --allow-empty -m foo &&
git push --receive-pack="strace -e mkdir git-receive-pack"
'
but it works fine. Might there be some effective-uid trickiness with the
way the server side of git is invoked? Or is this a network mount where
the filesystem uid might not match the process uid?
-Peff
^ permalink raw reply
* Re: sharedrepository=group not working
From: Jamie Zawinski @ 2018-12-04 4:19 UTC (permalink / raw)
To: Jeff King; +Cc: git
In-Reply-To: <20181204040903.GA17059@sigill.intra.peff.net>
On Dec 3, 2018, at 8:09 PM, Jeff King <peff@peff.net> wrote:
>
> but it works fine. Might there be some effective-uid trickiness with the
> way the server side of git is invoked? Or is this a network mount where
> the filesystem uid might not match the process uid?
Huh. They're on the same ext4 fs (it's an AWS EBS sc1 volume, but I think that still counts as "not a network mount" as far as Linux is concerned.)
The way I was seeing this fail was a CGI invoking "git push", as user "httpd" (and I verified that when the cgi was invoked, "groups" reported that "httpd" was a member of group "cvs") but when I tried to reproduce the error with "sudo -u apache git push" it didn't fail. So possibly something hinky is going on with group permissions when httpd invokes git, but I did verify that whoami, groups and pwd were as expected, so I couldn't tell what that might be... (Oh, I didn't check what umask was, but it should have been 022...)
--
Jamie Zawinski https://www.jwz.org/ https://www.dnalounge.com/
^ permalink raw reply
* Re: sharedrepository=group not working
From: Jamie Zawinski @ 2018-12-04 4:20 UTC (permalink / raw)
To: Jeff King; +Cc: git
In-Reply-To: <53C59F2A-6D97-45F9-AF86-E255F6777E7F@jwz.org>
On Dec 3, 2018, at 8:19 PM, Jamie Zawinski <jwz@jwz.org> wrote:
>
> (Oh, I didn't check what umask was, but it should have been 022...)
Typo, I mean to say 002.
--
Jamie Zawinski https://www.jwz.org/ https://www.dnalounge.com/
^ permalink raw reply
* Re: sharedrepository=group not working
From: Jeff King @ 2018-12-04 4:50 UTC (permalink / raw)
To: Jamie Zawinski; +Cc: git
In-Reply-To: <53C59F2A-6D97-45F9-AF86-E255F6777E7F@jwz.org>
On Mon, Dec 03, 2018 at 08:19:12PM -0800, Jamie Zawinski wrote:
> On Dec 3, 2018, at 8:09 PM, Jeff King <peff@peff.net> wrote:
> >
> > but it works fine. Might there be some effective-uid trickiness with the
> > way the server side of git is invoked? Or is this a network mount where
> > the filesystem uid might not match the process uid?
>
> Huh. They're on the same ext4 fs (it's an AWS EBS sc1 volume, but I
> think that still counts as "not a network mount" as far as Linux is
> concerned.)
Yeah, I think we can discount any oddness there.
> The way I was seeing this fail was a CGI invoking "git push", as user
> "httpd" (and I verified that when the cgi was invoked, "groups"
> reported that "httpd" was a member of group "cvs") but when I tried to
> reproduce the error with "sudo -u apache git push" it didn't fail. So
> possibly something hinky is going on with group permissions when httpd
> invokes git, but I did verify that whoami, groups and pwd were as
> expected, so I couldn't tell what that might be... (Oh, I didn't check
> what umask was, but it should have been 022...)
Hrm. I don't think group permissions would even matter. We asked to
mkdir() with 0700 anyway, so we know they'd be zero.
But a funny umask does seem like a likely candidate for causing the
problem. We asked for 0700, but if there were bits set in umask (say,
0200 or something), that would restrict that further. And it would
explain what you're seeing (inability to write into a directory we
just created), and it might have worked with previous versions (which
was less strict on the group permissions).
I don't suppose this is leaving those incoming-* directories sitting
around so we can inspect their permissions (it's suppose to clean them
up, so I doubt it). If you're up for it, it might be interesting to
patch Git to inspect the umask and "ls -l" the objects/ directory at the
problematic moment. The interesting point is when we call into
tmp-objdir.c:setup_tmp_objdir().
-Peff
^ permalink raw reply
* Re: sharedrepository=group not working
From: Jamie Zawinski @ 2018-12-04 5:24 UTC (permalink / raw)
To: Jeff King; +Cc: git
In-Reply-To: <20181204045051.GA23351@sigill.intra.peff.net>
On Dec 3, 2018, at 8:50 PM, Jeff King <peff@peff.net> wrote:
>
> I don't suppose this is leaving those incoming-* directories sitting
> around so we can inspect their permissions (it's suppose to clean them
> up, so I doubt it). If you're up for it, it might be interesting to
> patch Git to inspect the umask and "ls -l" the objects/ directory at the
> problematic moment. The interesting point is when we call into
> tmp-objdir.c:setup_tmp_objdir().
The problem was that Apache was setting my umask to 113! With that:
+ ls -ldF ./objects/incoming-w7agmb/pack objects/incoming-w7agmb
ls: cannot access ./objects/incoming-w7agmb/pack: Permission denied
drw---S--- 2 apache cvs 4096 Dec 3 21:14 objects/incoming-w7agmb/
error: remote unpack failed: unable to create temporary object directory
With 002 it succeeds:
+ ls -ldF ./objects/incoming-IbGS6h/pack objects/incoming-IbGS6h
drwx--S--- 3 apache cvs 4096 Dec 3 21:19 objects/incoming-IbGS6h/
drwxrwsr-x 2 apache cvs 4096 Dec 3 21:19 ./objects/incoming-IbGS6h/pack/
So I fixed my umask and got it working, but maybe a test for "your umask is dumb" is worthwhile.
Thanks for your help!
--
Jamie Zawinski https://www.jwz.org/ https://www.dnalounge.com/
^ permalink raw reply
* Re: [PATCH v3] range-diff: always pass at least minimal diff options
From: Martin Ågren @ 2018-12-04 5:40 UTC (permalink / raw)
To: Eric Sunshine
Cc: Git Mailing List, Junio C Hamano, Johannes Schindelin,
Ævar Arnfjörð Bjarmason
In-Reply-To: <20181203212131.11299-1-sunshine@sunshineco.com>
On Mon, 3 Dec 2018 at 22:21, Eric Sunshine <sunshine@sunshineco.com> wrote:
> [es: retain diff coloring when going to stdout]
>
> Signed-off-by: Martin Ågren <martin.agren@gmail.com>
> Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
> ---
>
> This is a re-roll of Martin's v2[1]. The only difference from v2 is that
> it retains coloring when emitting to the terminal (plus an in-code
> comment was simplified).
Thank you so much for this.
> if (rev->rdiff1) {
> + /*
> + * Pass minimum required diff-options to range-diff; others
> + * can be added later if deemed desirable.
> + */
Agreed.
> + struct diff_options opts;
> + diff_setup(&opts);
> + opts.file = rev->diffopt.file;
> + opts.use_color = rev->diffopt.use_color;
Ah, s/0/rev->diffopt.use_color/, well that's obvious.
Thanks!
Martin
^ permalink raw reply
* Re: [PATCH 1/3] RelNotes 2.20: move some items between sections
From: Martin Ågren @ 2018-12-04 5:43 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
In-Reply-To: <xmqq36reghdk.fsf@gitster-ct.c.googlers.com>
On Tue, 4 Dec 2018 at 03:23, Junio C Hamano <gitster@pobox.com> wrote:
>
> Martin Ågren <martin.agren@gmail.com> writes:
>
> > Some items that should be in "Performance, Internal Implementation,
> > Development Support etc." have ended up in "UI, Workflows & Features"
> > and "Fixes since v2.19". Move them, and do s/uses/use/ while at it.
>
> I agree with the early half of this change; I think it is OK to
> consider lack of preparation for Travis transition and lack of
> better testing in the maintenance track as bugs, though.
Sure. Here's a resend where patch 1/3 has been simplified accordingly.
Martin Ågren (3):
RelNotes 2.20: move some items between sections
RelNotes 2.20: clarify sentence
RelNotes 2.20: drop spurious double quote
Documentation/RelNotes/2.20.0.txt | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
Range-diff against v1:
1: d69f63b5f6 ! 1: 961bfc2ad6 RelNotes 2.20: move some items between sections
@@ -3,8 +3,8 @@
RelNotes 2.20: move some items between sections
Some items that should be in "Performance, Internal Implementation,
- Development Support etc." have ended up in "UI, Workflows & Features"
- and "Fixes since v2.19". Move them, and do s/uses/use/ while at it.
+ Development Support etc." have ended up in "UI, Workflows & Features".
+ Move them, and do s/uses/use/ while at it.
Signed-off-by: Martin Ågren <martin.agren@gmail.com>
@@ -35,33 +35,3 @@
* When there are too many packfiles in a repository (which is not
recommended), looking up an object in these would require
consulting many pack .idx files; a new mechanism to have a single
-@@
- two classes to ease code migration process has been proposed and
- its support has been added to the Makefile.
-
-+ * The "container" mode of TravisCI is going away. Our .travis.yml
-+ file is getting prepared for the transition.
-+ (merge 32ee384be8 ss/travis-ci-force-vm-mode later to maint).
-+
-+ * Our test scripts can now take the '-V' option as a synonym for the
-+ '--verbose-log' option.
-+ (merge a5f52c6dab sg/test-verbose-log later to maint).
-+
-
- Fixes since v2.19
- -----------------
-@@
- didn't make much sense. This has been corrected.
- (merge 669b1d2aae md/exclude-promisor-objects-fix later to maint).
-
-- * The "container" mode of TravisCI is going away. Our .travis.yml
-- file is getting prepared for the transition.
-- (merge 32ee384be8 ss/travis-ci-force-vm-mode later to maint).
--
-- * Our test scripts can now take the '-V' option as a synonym for the
-- '--verbose-log' option.
-- (merge a5f52c6dab sg/test-verbose-log later to maint).
--
- * A regression in Git 2.12 era made "git fsck" fall into an infinite
- loop while processing truncated loose objects.
- (merge 18ad13e5b2 jk/detect-truncated-zlib-input later to maint).
2: eccb7edd08 = 2: 3027a34938 RelNotes 2.20: clarify sentence
3: 78f3043b65 = 3: a5e2df91b4 RelNotes 2.20: drop spurious double quote
--
2.20.0.rc2.1.gc81af441bb
^ permalink raw reply
* [PATCH v2 1/3] RelNotes 2.20: move some items between sections
From: Martin Ågren @ 2018-12-04 5:43 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
In-Reply-To: <cover.1543901498.git.martin.agren@gmail.com>
Some items that should be in "Performance, Internal Implementation,
Development Support etc." have ended up in "UI, Workflows & Features".
Move them, and do s/uses/use/ while at it.
Signed-off-by: Martin Ågren <martin.agren@gmail.com>
---
Documentation/RelNotes/2.20.0.txt | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/Documentation/RelNotes/2.20.0.txt b/Documentation/RelNotes/2.20.0.txt
index b1deaf37da..f4e79c4cfb 100644
--- a/Documentation/RelNotes/2.20.0.txt
+++ b/Documentation/RelNotes/2.20.0.txt
@@ -137,11 +137,6 @@ UI, Workflows & Features
command line, or setting sendemail.suppresscc configuration
variable to "misc-by", can be used to disable this behaviour.
- * Developer builds now uses -Wunused-function compilation option.
-
- * One of our CI tests to run with "unusual/experimental/random"
- settings now also uses commit-graph and midx.
-
* "git mergetool" learned to take the "--[no-]gui" option, just like
"git difftool" does.
@@ -185,6 +180,11 @@ UI, Workflows & Features
Performance, Internal Implementation, Development Support etc.
+ * Developer builds now use -Wunused-function compilation option.
+
+ * One of our CI tests to run with "unusual/experimental/random"
+ settings now also uses commit-graph and midx.
+
* When there are too many packfiles in a repository (which is not
recommended), looking up an object in these would require
consulting many pack .idx files; a new mechanism to have a single
--
2.20.0.rc2.1.gc81af441bb
^ permalink raw reply related
* [PATCH v2 2/3] RelNotes 2.20: clarify sentence
From: Martin Ågren @ 2018-12-04 5:43 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
In-Reply-To: <cover.1543901498.git.martin.agren@gmail.com>
I had to read this sentence a few times to understand it. Let's try to
clarify it.
Signed-off-by: Martin Ågren <martin.agren@gmail.com>
---
Documentation/RelNotes/2.20.0.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Documentation/RelNotes/2.20.0.txt b/Documentation/RelNotes/2.20.0.txt
index f4e79c4cfb..1a5bbd2e91 100644
--- a/Documentation/RelNotes/2.20.0.txt
+++ b/Documentation/RelNotes/2.20.0.txt
@@ -305,7 +305,7 @@ Performance, Internal Implementation, Development Support etc.
* The overly large Documentation/config.txt file have been split into
million little pieces. This potentially allows each individual piece
- included into the manual page of the command it affects more easily.
+ to be included into the manual page of the command it affects more easily.
* Replace three string-list instances used as look-up tables in "git
fetch" with hashmaps.
--
2.20.0.rc2.1.gc81af441bb
^ permalink raw reply related
* [PATCH v2 3/3] RelNotes 2.20: drop spurious double quote
From: Martin Ågren @ 2018-12-04 5:43 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
In-Reply-To: <cover.1543901498.git.martin.agren@gmail.com>
We have three double-quote characters, which is one too many or too few.
Dropping the last one seems to match the original intention best.
Signed-off-by: Martin Ågren <martin.agren@gmail.com>
---
Documentation/RelNotes/2.20.0.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Documentation/RelNotes/2.20.0.txt b/Documentation/RelNotes/2.20.0.txt
index 1a5bbd2e91..659474f7c3 100644
--- a/Documentation/RelNotes/2.20.0.txt
+++ b/Documentation/RelNotes/2.20.0.txt
@@ -578,7 +578,7 @@ Fixes since v2.19
* "git rev-parse --exclude=* --branches --branches" (i.e. first
saying "add only things that do not match '*' out of all branches"
- and then adding all branches, without any exclusion this time")
+ and then adding all branches, without any exclusion this time)
worked as expected, but "--exclude=* --all --all" did not work the
same way, which has been fixed.
(merge 5221048092 ag/rev-parse-all-exclude-fix later to maint).
--
2.20.0.rc2.1.gc81af441bb
^ permalink raw reply related
* Re: [PATCH] t/lib-git-daemon: fix signal checking
From: Jeff King @ 2018-12-04 6:34 UTC (permalink / raw)
To: SZEDER Gábor; +Cc: Junio C Hamano, git
In-Reply-To: <20181126200337.32462-1-szeder.dev@gmail.com>
On Mon, Nov 26, 2018 at 09:03:37PM +0100, SZEDER Gábor wrote:
> Test scripts checking 'git daemon' stop the daemon with a TERM signal,
> and the 'stop_git_daemon' helper checks the daemon's exit status to
> make sure that it indeed died because of that signal.
>
> This check is bogus since 03c39b3458 (t/lib-git-daemon: use
> test_match_signal, 2016-06-24), for two reasons:
>
> - Right after killing 'git daemon', 'stop_git_daemon' saves its exit
> status in a variable, but since 03c39b3458 the condition checking
> the exit status looks at '$?', which at this point is not the exit
> status of 'git daemon', but that of the variable assignment, i.e.
> it's always 0.
>
> - The unexpected exit status should abort the whole test script with
> 'error', but it doesn't, because 03c39b3458 forgot to negate
> 'test_match_signal's exit status in the condition.
>
> This patch fixes both issues.
Oof. Who says two wrongs don't make a right? :)
Thanks for catching this, and the patch looks obviously correct.
I peeked at the other test_match_signal conversions from that era, and
they all look sane.
-Peff
^ permalink raw reply
* [PATCH v2] l10n: update German translation
From: Ralf Thielow @ 2018-12-04 6:54 UTC (permalink / raw)
To: git; +Cc: Matthias Rüster, Phillip Szelat, Ralf Thielow
In-Reply-To: <20181130173531.10073-1-ralf.thielow@gmail.com>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
---
v2 updates the translation up to the latest update of git.pot.
range-diff:
1: f0a6c76bf ! 1: f8313495e l10n: update German translation
@@ -205,13 +205,13 @@
-msgstr ""
+msgstr "Falsche Reihenfolge bei multi-pack-index Pack-Namen: '%s' vor '%s'"
#: midx.c:205
#, c-format
- msgid "bad pack-int-id: %u (%u total packs"
+ msgid "bad pack-int-id: %u (%u total packs)"
-msgstr ""
-+msgstr "Fehlerhafte pack-int-id: %u (%u Pakete insgesamt)"
++msgstr "Ungültige pack-int-id: %u (%u Pakete insgesamt)"
#: midx.c:246
msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
-msgstr ""
+msgstr "multi-pack-index speichert einen 64-Bit Offset, aber off_t ist zu klein."
@@ -364,31 +364,31 @@
+#, c-format
msgid "unable to join load_cache_entries thread: %s"
-msgstr "kann Thread nicht erzeugen: %s"
+msgstr "Kann Thread für load_cache_entries nicht erzeugen: %s"
- #: read-cache.c:2200
+ #: read-cache.c:2201
-#, fuzzy, c-format
+#, c-format
msgid "unable to create load_index_extensions thread: %s"
-msgstr "kann Thread nicht erzeugen: %s"
+msgstr "Kann Thread für load_index_extensions nicht erzeugen: %s"
- #: read-cache.c:2227
+ #: read-cache.c:2228
-#, fuzzy, c-format
+#, c-format
msgid "unable to join load_index_extensions thread: %s"
-msgstr "kann Thread nicht erzeugen: %s"
-+msgstr "Kann Thread für load_index_extensions nicht erzeugen: %s"
++msgstr "Kann Thread für load_index_extensions nicht beitreten: %s"
- #: read-cache.c:2953 sequencer.c:4727 wrapper.c:658 builtin/merge.c:1086
+ #: read-cache.c:2982 sequencer.c:4727 wrapper.c:658 builtin/merge.c:1086
#, c-format
msgid "could not close '%s'"
-msgstr "Konnte '%s' nicht schließen"
+msgstr "Konnte '%s' nicht schließen."
- #: read-cache.c:3026 sequencer.c:2203 sequencer.c:3592
+ #: read-cache.c:3055 sequencer.c:2203 sequencer.c:3592
#, c-format
@@
msgstr "Konnte '%s' nicht entfernen."
#: rebase-interactive.c:10
@@ -802,14 +802,19 @@
#: builtin/grep.c:1051
-#, fuzzy
msgid "invalid option combination, ignoring --threads"
-msgstr "keine Unterstützung von Threads, --threads wird ignoriert"
-+msgstr "ungültige Kombination von Optionen, --threads wird ignoriert"
++msgstr "Ungültige Kombination von Optionen, --threads wird ignoriert."
- #: builtin/grep.c:1054 builtin/pack-objects.c:3395
+ #: builtin/grep.c:1054 builtin/pack-objects.c:3397
msgid "no threads support, ignoring --threads"
+-msgstr "keine Unterstützung von Threads, --threads wird ignoriert"
++msgstr "Keine Unterstützung für Threads, --threads wird ignoriert."
+
+ #: builtin/grep.c:1057 builtin/index-pack.c:1503 builtin/pack-objects.c:2716
+ #, c-format
@@
msgstr "Für '%s' wurde der Alias '%s' angelegt."
#: builtin/help.c:444
-#, fuzzy, c-format
@@ -944,17 +949,17 @@
#: builtin/pack-objects.c:2123
msgid "suboptimal pack - out of memory"
@@
"packen"
- #: builtin/pack-objects.c:3316
+ #: builtin/pack-objects.c:3318
-#, fuzzy
msgid "respect islands during delta compression"
-msgstr "Größe des Fensters für die Delta-Kompression"
+msgstr "Delta-Islands bei Delta-Kompression beachten"
- #: builtin/pack-objects.c:3340
+ #: builtin/pack-objects.c:3342
#, c-format
@@
"wurde nicht angefordert."
#: builtin/pull.c:565
@@ -964,10 +969,28 @@
-msgstr "Konnte Commit '%s' nicht parsen."
+msgstr "Konnte nicht auf Commit '%s' zugreifen."
#: builtin/pull.c:843
msgid "ignoring --verify-signatures for rebase"
+@@
+ "config'."
+
+ #: builtin/push.c:168
+-#, fuzzy, c-format
++#, c-format
+ msgid ""
+ "The upstream branch of your current branch does not match\n"
+ "the name of your current branch. To push to the upstream branch\n"
+@@
+ "Um auf den Branch mit demselben Namen im Remote-Repository zu versenden,\n"
+ "benutzen Sie:\n"
+ "\n"
+-" git push %s %s\n"
++" git push %s HEAD\n"
+ "%s"
+
+ #: builtin/push.c:183
@@
msgstr "unpack-trees protokollieren"
#: builtin/rebase.c:29
-#, fuzzy
@@ -1041,11 +1064,11 @@
-#, fuzzy
msgid "could not determine HEAD revision"
-msgstr "Konnte HEAD nicht loslösen"
+msgstr "Konnte HEAD-Commit nicht bestimmen."
- #: builtin/rebase.c:752
+ #: builtin/rebase.c:753
-#, fuzzy, c-format
+#, c-format
msgid ""
"%s\n"
"Please specify which branch you want to rebase against.\n"
@@ -1060,11 +1083,11 @@
+"Siehe git-rebase(1) für Details.\n"
+"\n"
+" git rebase '<Branch>'\n"
+"\n"
- #: builtin/rebase.c:768
+ #: builtin/rebase.c:769
-#, fuzzy, c-format
+#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
"\n"
@@ -1078,212 +1101,212 @@
+"können Sie dies tun mit:\n"
+"\n"
+" git branch --set-upstream-to=%s/<Branch> %s\n"
+"\n"
- #: builtin/rebase.c:814
+ #: builtin/rebase.c:832
-#, fuzzy
msgid "rebase onto given branch instead of upstream"
-msgstr "Branch %s kann nicht sein eigener Upstream-Branch sein."
+msgstr "Rebase auf angegebenen Branch anstelle des Upstream-Branches ausführen"
- #: builtin/rebase.c:816
+ #: builtin/rebase.c:834
-#, fuzzy
msgid "allow pre-rebase hook to run"
-msgstr "Der \"pre-rebase hook\" hat den Rebase zurückgewiesen."
+msgstr "Ausführung des pre-rebase-Hooks erlauben"
- #: builtin/rebase.c:818
+ #: builtin/rebase.c:836
msgid "be quiet. implies --no-stat"
-msgstr ""
+msgstr "weniger Ausgaben (impliziert --no-stat)"
- #: builtin/rebase.c:821
+ #: builtin/rebase.c:839
msgid "display a diffstat of what changed upstream"
-msgstr ""
+msgstr "Zusammenfassung der Unterschiede gegenüber dem Upstream-Branch anzeigen"
- #: builtin/rebase.c:824
+ #: builtin/rebase.c:842
-#, fuzzy
msgid "do not show diffstat of what changed upstream"
-msgstr "keine Zusammenfassung der Unterschiede am Schluss des Merges anzeigen"
+msgstr "Zusammenfassung der Unterschiede gegenüber dem Upstream-Branch verbergen"
- #: builtin/rebase.c:827
+ #: builtin/rebase.c:845
-#, fuzzy
msgid "add a Signed-off-by: line to each commit"
-msgstr "der Commit-Beschreibung eine Signed-off-by Zeile hinzufügen"
+msgstr "eine \"Signed-off-by:\"-Zeile zu jedem Commit hinzufügen"
- #: builtin/rebase.c:829 builtin/rebase.c:833 builtin/rebase.c:835
+ #: builtin/rebase.c:847 builtin/rebase.c:851 builtin/rebase.c:853
msgid "passed to 'git am'"
-msgstr ""
+msgstr "an 'git am' übergeben"
- #: builtin/rebase.c:837 builtin/rebase.c:839
+ #: builtin/rebase.c:855 builtin/rebase.c:857
-#, fuzzy
msgid "passed to 'git apply'"
-msgstr "an git-apply übergeben"
-+msgstr "an 'git-apply' übergeben"
++msgstr "an 'git apply' übergeben"
- #: builtin/rebase.c:841 builtin/rebase.c:844
+ #: builtin/rebase.c:859 builtin/rebase.c:862
msgid "cherry-pick all commits, even if unchanged"
-msgstr ""
+msgstr "Cherry-Pick auf alle Commits ausführen, auch wenn diese unverändert sind"
- #: builtin/rebase.c:846
+ #: builtin/rebase.c:864
-#, fuzzy
msgid "continue"
-msgstr "Rebase fortsetzen"
+msgstr "fortsetzen"
- #: builtin/rebase.c:849
+ #: builtin/rebase.c:867
-#, fuzzy
msgid "skip current patch and continue"
-msgstr "den aktuellen Patch auslassen"
+msgstr "den aktuellen Patch auslassen und fortfahren"
- #: builtin/rebase.c:851
+ #: builtin/rebase.c:869
-#, fuzzy
msgid "abort and check out the original branch"
-msgstr ""
-" (benutzen Sie \"git rebase --abort\", um den ursprünglichen Branch "
-"auszuchecken)"
+msgstr "abbrechen und den ursprünglichen Branch auschecken"
- #: builtin/rebase.c:854
+ #: builtin/rebase.c:872
-#, fuzzy
msgid "abort but keep HEAD where it is"
-msgstr "Patch-Operation abbrechen, aber HEAD an aktueller Stelle belassen"
+msgstr "abbrechen, aber HEAD an aktueller Stelle belassen"
- #: builtin/rebase.c:855
+ #: builtin/rebase.c:873
-#, fuzzy
msgid "edit the todo list during an interactive rebase"
-msgstr ""
-"Die --edit-todo Aktion kann nur während eines interaktiven Rebase verwendet "
-"werden."
+msgstr "TODO-Liste während eines interaktiven Rebase bearbeiten"
- #: builtin/rebase.c:858
+ #: builtin/rebase.c:876
-#, fuzzy
msgid "show the patch file being applied or merged"
-msgstr "den Patch, der gerade angewendet wird, anzeigen"
+msgstr "den Patch, der gerade angewendet oder zusammengeführt wird, anzeigen"
- #: builtin/rebase.c:861
+ #: builtin/rebase.c:879
-#, fuzzy
msgid "use merging strategies to rebase"
-msgstr "zu verwendende Merge-Strategie"
+msgstr "Merge-Strategien beim Rebase verwenden"
- #: builtin/rebase.c:865
+ #: builtin/rebase.c:883
msgid "let the user edit the list of commits to rebase"
-msgstr ""
+msgstr "den Benutzer die Liste der Commits für den Rebase bearbeiten lassen"
- #: builtin/rebase.c:869
+ #: builtin/rebase.c:887
msgid "try to recreate merges instead of ignoring them"
-msgstr ""
+msgstr "versuchen, Merges wiederherzustellen anstatt sie zu ignorieren"
- #: builtin/rebase.c:873
- msgid "allow rerere to update index with resolved conflict"
+ #: builtin/rebase.c:891
+ msgid "allow rerere to update index with resolved conflict"
-msgstr ""
-+msgstr "Rerere erlauben, den Index mit aufgelöstem Konflikt zu aktualisieren"
++msgstr "Rerere erlauben, den Index mit dem aufgelöstem Konflikt zu aktualisieren"
- #: builtin/rebase.c:876
+ #: builtin/rebase.c:894
-#, fuzzy
msgid "preserve empty commits during rebase"
-msgstr "ursprüngliche, leere Commits erhalten"
+msgstr "leere Commits während des Rebase erhalten"
- #: builtin/rebase.c:878
+ #: builtin/rebase.c:896
msgid "move commits that begin with squash!/fixup! under -i"
-msgstr ""
+msgstr "bei -i Commits verschieben, die mit squash!/fixup! beginnen"
- #: builtin/rebase.c:884
+ #: builtin/rebase.c:902
-#, fuzzy
msgid "automatically stash/stash pop before and after"
-msgstr "automatischer Stash/Stash-Pop vor und nach eines Rebase"
+msgstr "automatischer Stash/Stash-Pop davor und danach"
- #: builtin/rebase.c:886
+ #: builtin/rebase.c:904
msgid "add exec lines after each commit of the editable list"
-msgstr ""
+msgstr "exec-Zeilen nach jedem Commit der editierbaren Liste hinzufügen"
- #: builtin/rebase.c:890
+ #: builtin/rebase.c:908
-#, fuzzy
msgid "allow rebasing commits with empty messages"
-msgstr "Commits mit leerer Beschreibung erlauben"
+msgstr "Rebase von Commits mit leerer Beschreibung erlauben"
- #: builtin/rebase.c:893
+ #: builtin/rebase.c:911
msgid "try to rebase merges instead of skipping them"
-msgstr ""
+msgstr "versuchen, Rebase mit Merges auszuführen, anstatt diese zu überspringen"
- #: builtin/rebase.c:896
+ #: builtin/rebase.c:914
-#, fuzzy
msgid "use 'merge-base --fork-point' to refine upstream"
-msgstr "git merge-base --fork-point <Referenz> [<Commit>]"
+msgstr "'git merge-base --fork-point' benutzen, um Upstream-Branch zu bestimmen"
- #: builtin/rebase.c:898
+ #: builtin/rebase.c:916
-#, fuzzy
msgid "use the given merge strategy"
-msgstr "Option für Merge-Strategie"
+msgstr "angegebene Merge-Strategie verwenden"
- #: builtin/rebase.c:900 builtin/revert.c:111
+ #: builtin/rebase.c:918 builtin/revert.c:111
msgid "option"
@@
- #: builtin/rebase.c:901
+ #: builtin/rebase.c:919
msgid "pass the argument through to the merge strategy"
-msgstr ""
+msgstr "Argument zur Merge-Strategie durchreichen"
- #: builtin/rebase.c:904
+ #: builtin/rebase.c:922
-#, fuzzy
msgid "rebase all reachable commits up to the root(s)"
-msgstr "alle nicht erreichbaren Objekte von der Objektdatenbank entfernen"
+msgstr "Rebase auf alle erreichbaren Commits bis zum Root-Commit ausführen"
- #: builtin/rebase.c:920
+ #: builtin/rebase.c:938
-#, fuzzy, c-format
+#, c-format
msgid "could not exec %s"
-msgstr "konnte %s nicht parsen"
+msgstr "Konnte 'exec %s' nicht ausführen."
- #: builtin/rebase.c:938 git-legacy-rebase.sh:213
+ #: builtin/rebase.c:956 git-legacy-rebase.sh:213
msgid "It looks like 'git am' is in progress. Cannot rebase."
@@
"mittels \"git add\" als aufgelöst markieren"
- #: builtin/rebase.c:1026
+ #: builtin/rebase.c:1047
-#, fuzzy
msgid "could not discard worktree changes"
-msgstr "Kann Änderungen im Arbeitsverzeichnis nicht löschen"
+msgstr "Konnte Änderungen im Arbeitsverzeichnis nicht verwerfen."
- #: builtin/rebase.c:1044
+ #: builtin/rebase.c:1066
-#, fuzzy, c-format
+#, c-format
msgid "could not move back to %s"
-msgstr "Konnte nicht zu $head_name zurückgehen"
+msgstr "Konnte nicht zu %s zurückgehen."
- #: builtin/rebase.c:1055 builtin/rm.c:368
+ #: builtin/rebase.c:1077 builtin/rm.c:368
#, c-format
@@
msgstr "Konnte '%s' nicht löschen"
- #: builtin/rebase.c:1081
+ #: builtin/rebase.c:1103
-#, fuzzy, c-format
+#, c-format
msgid ""
"It seems that there is already a %s directory, and\n"
"I wonder if you are in the middle of another rebase. If that is the\n"
@@ -1302,220 +1325,228 @@
+"\t%s\n"
"und führen Sie diesen Befehl nochmal aus. Es wird angehalten, falls noch\n"
-"etwas Schützenswertes vorhanden ist."
+"etwas Schützenswertes vorhanden ist.\n"
- #: builtin/rebase.c:1102
+ #: builtin/rebase.c:1124
-#, fuzzy
msgid "switch `C' expects a numerical value"
-msgstr "Schalter '%c' erwartet einen numerischen Wert"
+msgstr "Schalter `C' erwartet einen numerischen Wert."
- #: builtin/rebase.c:1139
+ #: builtin/rebase.c:1161
-#, fuzzy, c-format
+#, c-format
msgid "Unknown mode: %s"
-msgstr "Unbekannter --patch Modus: %s"
+msgstr "Unbekannter Modus: %s"
- #: builtin/rebase.c:1161
+ #: builtin/rebase.c:1183
msgid "--strategy requires --merge or --interactive"
-msgstr ""
+msgstr "--strategy erfordert --merge oder --interactive"
- #: builtin/rebase.c:1204
+ #: builtin/rebase.c:1226
#, c-format
@@
"error: cannot combine interactive options (--interactive, --exec, --rebase-"
"merges, --preserve-merges, --keep-empty, --root + --onto) with am options "
"(%s)"
-msgstr ""
+msgstr "Fehler: 'interactive'-Optionen (--interactive, --exec, --rebase-merges, --preserve-merges, --keep-empty, --root + --onto ) können nicht mit 'am'-Optionen (%s) kombiniert werden."
- #: builtin/rebase.c:1209
+ #: builtin/rebase.c:1231
-#, fuzzy, c-format
+#, c-format
msgid ""
"error: cannot combine merge options (--merge, --strategy, --strategy-option) "
"with am options (%s)"
-msgstr ""
-"Fehler: '--rebase-merges' und '--strategy-option' können nicht kombiniert "
-"werden."
+msgstr "Fehler: 'merge'-Optionen (--merge, --strategy, --strategy-option) können nicht mit 'am'-Optionen (%s) kombiniert werden."
- #: builtin/rebase.c:1229 git-legacy-rebase.sh:528
+ #: builtin/rebase.c:1251 git-legacy-rebase.sh:536
-#, fuzzy
msgid "error: cannot combine '--preserve-merges' with '--rebase-merges'"
- msgstr ""
- "Fehler: '--preserve-merges' und '--rebase-merges' können nicht kombiniert "
- "werden."
+-msgstr ""
+-"Fehler: '--preserve-merges' und '--rebase-merges' können nicht kombiniert "
+-"werden."
++msgstr "Fehler: '--preserve-merges' und '--rebase-merges' können nicht kombiniert werden."
- #: builtin/rebase.c:1234 git-legacy-rebase.sh:534
+ #: builtin/rebase.c:1256 git-legacy-rebase.sh:542
-#, fuzzy
msgid "error: cannot combine '--rebase-merges' with '--strategy-option'"
msgstr ""
"Fehler: '--rebase-merges' und '--strategy-option' können nicht kombiniert "
"werden."
- #: builtin/rebase.c:1237 git-legacy-rebase.sh:536
+ #: builtin/rebase.c:1259 git-legacy-rebase.sh:544
-#, fuzzy
msgid "error: cannot combine '--rebase-merges' with '--strategy'"
msgstr ""
"Fehler: '--rebase-merges' und '--strategy' können nicht kombiniert werden."
- #: builtin/rebase.c:1261
+ #: builtin/rebase.c:1283
-#, fuzzy, c-format
+#, c-format
msgid "invalid upstream '%s'"
-msgstr "Ungültiger Pfad '%s'"
+msgstr "Ungültiger Upstream '%s'"
- #: builtin/rebase.c:1267
+ #: builtin/rebase.c:1289
-#, fuzzy
msgid "Could not create new root commit"
-msgstr "Konnte neu erstellten Commit nicht analysieren."
+msgstr "Konnte neuen Root-Commit nicht erstellen."
- #: builtin/rebase.c:1285
+ #: builtin/rebase.c:1307
-#, fuzzy, c-format
+#, c-format
msgid "'%s': need exactly one merge base"
-msgstr "Brauche genau einen Commit-Bereich."
-+msgstr "'%s': brauche genau eine Merge-Basis"
++msgstr "'%s': benötige genau eine Merge-Basis"
- #: builtin/rebase.c:1292
+ #: builtin/rebase.c:1314
-#, fuzzy, c-format
+#, c-format
msgid "Does not point to a valid commit '%s'"
-msgstr "$onto_name zeigt auf keinen gültigen Commit"
+msgstr "'%s' zeigt auf keinen gültigen Commit."
- #: builtin/rebase.c:1317
+ #: builtin/rebase.c:1339
-#, fuzzy, c-format
+#, c-format
msgid "fatal: no such branch/commit '%s'"
-msgstr "fatal: Branch/Commit '$branch_name' nicht gefunden"
+msgstr "fatal: Branch/Commit '%s' nicht gefunden"
- #: builtin/rebase.c:1325 builtin/submodule--helper.c:37
+ #: builtin/rebase.c:1347 builtin/submodule--helper.c:37
#: builtin/submodule--helper.c:1930
@@
msgstr "Referenz nicht gefunden: %s"
- #: builtin/rebase.c:1337
+ #: builtin/rebase.c:1359
-#, fuzzy
msgid "Could not resolve HEAD to a revision"
-msgstr "Konnte HEAD-Commit nicht auflösen."
+msgstr "Konnte HEAD zu keinem Commit auflösen."
- #: builtin/rebase.c:1377 git-legacy-rebase.sh:657
+ #: builtin/rebase.c:1399 git-legacy-rebase.sh:665
msgid "Cannot autostash"
msgstr "Kann automatischen Stash nicht erzeugen."
- #: builtin/rebase.c:1380
+ #: builtin/rebase.c:1402
-#, fuzzy, c-format
+#, c-format
msgid "Unexpected stash response: '%s'"
-msgstr "Unerwartetes wanted-ref: '%s'"
+msgstr "Unerwartete 'stash'-Antwort: '%s'"
- #: builtin/rebase.c:1386
+ #: builtin/rebase.c:1408
-#, fuzzy, c-format
+#, c-format
msgid "Could not create directory for '%s'"
-msgstr "Konnte Verzeichnis '%s' nicht erstellen."
+msgstr "Konnte Verzeichnis für '%s' nicht erstellen."
- #: builtin/rebase.c:1389
+ #: builtin/rebase.c:1411
-#, fuzzy, c-format
+#, c-format
msgid "Created autostash: %s\n"
-msgstr "Automatischen Stash erzeugt: $stash_abbrev"
+msgstr "Automatischen Stash erzeugt: %s\n"
- #: builtin/rebase.c:1392
+ #: builtin/rebase.c:1414
-#, fuzzy
msgid "could not reset --hard"
-msgstr "Konnte orig-head nicht lesen."
+msgstr "Konnte 'reset --hard' nicht ausführen."
- #: builtin/rebase.c:1393 builtin/reset.c:113
+ #: builtin/rebase.c:1415 builtin/reset.c:113
#, c-format
@@
msgstr "Bitte committen Sie die Änderungen oder benutzen Sie \"stash\"."
- #: builtin/rebase.c:1436
+ #: builtin/rebase.c:1458
-#, fuzzy, c-format
+#, c-format
msgid "could not parse '%s'"
-msgstr "konnte %s nicht parsen"
+msgstr "Konnte '%s' nicht parsen."
- #: builtin/rebase.c:1447
+ #: builtin/rebase.c:1470
-#, fuzzy, c-format
+#, c-format
msgid "could not switch to %s"
-msgstr "Konnte nicht nach '%s' schreiben."
+msgstr "Konnte nicht zu %s wechseln."
- #: builtin/rebase.c:1458 git-legacy-rebase.sh:689
+ #: builtin/rebase.c:1481 git-legacy-rebase.sh:697
#, sh-format
@@
msgstr "HEAD ist aktuell."
- #: builtin/rebase.c:1460
+ #: builtin/rebase.c:1483
-#, fuzzy, c-format
+#, c-format
msgid "Current branch %s is up to date.\n"
-msgstr "Aktueller Branch $branch_name ist auf dem neuesten Stand."
+msgstr "Aktueller Branch %s ist auf dem neuesten Stand.\n"
- #: builtin/rebase.c:1468 git-legacy-rebase.sh:699
+ #: builtin/rebase.c:1491 git-legacy-rebase.sh:707
#, sh-format
@@
msgstr "HEAD ist aktuell, Rebase erzwungen."
- #: builtin/rebase.c:1470
+ #: builtin/rebase.c:1493
-#, fuzzy, c-format
+#, c-format
msgid "Current branch %s is up to date, rebase forced.\n"
-msgstr ""
-"Aktueller Branch $branch_name ist auf dem neuesten Stand, Rebase erzwungen."
+msgstr "Aktueller Branch %s ist auf dem neuesten Stand, Rebase erzwungen.\n"
- #: builtin/rebase.c:1478 git-legacy-rebase.sh:208
+ #: builtin/rebase.c:1501 git-legacy-rebase.sh:208
msgid "The pre-rebase hook refused to rebase."
msgstr "Der \"pre-rebase hook\" hat den Rebase zurückgewiesen."
- #: builtin/rebase.c:1484
+ #: builtin/rebase.c:1508
+-#, fuzzy, c-format
++#, c-format
+ msgid "Changes to %s:\n"
+-msgstr "Änderungen von $mb zu $onto:"
++msgstr "Änderungen zu %s:\n"
+
+ #: builtin/rebase.c:1511
-#, fuzzy, c-format
+#, c-format
msgid "Changes from %s to %s:\n"
-msgstr "Änderungen von $mb zu $onto:"
+msgstr "Änderungen von %s zu %s:\n"
- #: builtin/rebase.c:1507
+ #: builtin/rebase.c:1536
-#, fuzzy, c-format
+#, c-format
msgid "First, rewinding head to replay your work on top of it...\n"
-msgstr ""
-"Zunächst wird der Branch zurückgespult, um Ihre Änderungen\n"
-"darauf neu anzuwenden ..."
+msgstr "Zunächst wird der Branch zurückgespult, um Ihre Änderungen darauf neu anzuwenden...\n"
- #: builtin/rebase.c:1513
+ #: builtin/rebase.c:1543
-#, fuzzy
msgid "Could not detach HEAD"
-msgstr "Konnte HEAD nicht loslösen"
+msgstr "Konnte HEAD nicht loslösen."
- #: builtin/rebase.c:1522
+ #: builtin/rebase.c:1552
-#, fuzzy, c-format
+#, c-format
- msgid "Fast-forwarded %s to %s. \n"
+ msgid "Fast-forwarded %s to %s.\n"
-msgstr "Spule vor zu $sha1"
-+msgstr "%s zu %s vorgespult.\n"
++msgstr "Spule %s vor zu %s.\n"
#: builtin/rebase--interactive.c:24
-#, fuzzy
msgid "no HEAD?"
msgstr "Kein HEAD?"
@@ -1972,11 +2003,11 @@
@@
"nicht unterstützt."
#: http.c:837
-#, fuzzy
- msgid "CURLSSLOPT_NO_REVOKE not suported with cURL < 7.44.0"
+ msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0"
-msgstr ""
-"Das Anheften des öffentlichen Schlüssels wird mit cURL < 7.44.0\n"
-"nicht unterstützt."
+msgstr "CURLSSLOPT_NO_REVOKE wird mit cURL < 7.44.0 nicht unterstützt."
@@ -2040,10 +2071,22 @@
-msgstr "Git Commit Graph-Dateien schreiben und überprüfen"
+msgstr "multi-pack-indexes schreiben und überprüfen"
#: command-list.h:129
msgid "Creates a tag object"
+@@
+ "Aktueller Branch $branch_name ist auf dem neuesten Stand, Rebase erzwungen."
+
+ #: git-legacy-rebase.sh:723
+-#, fuzzy, sh-format
++#, sh-format
+ msgid "Changes to $onto:"
+-msgstr "Änderungen von $mb zu $onto:"
++msgstr "Änderungen zu $onto:"
+
+ #: git-legacy-rebase.sh:725
+ #, sh-format
@@
#: git-send-email.perl:525
#, perl-format
msgid "warning: sendmail alias with quotes is not supported: %s\n"
-msgstr ""
po/de.po | 845 +++++++++++++++++++++++++------------------------------
1 file changed, 383 insertions(+), 462 deletions(-)
diff --git a/po/de.po b/po/de.po
index 899b95120..eb213d742 100644
--- a/po/de.po
+++ b/po/de.po
@@ -943,17 +943,17 @@ msgid ""
"Use '\\!' for literal leading exclamation."
msgstr ""
"Verneinende Muster werden in Git-Attributen ignoriert.\n"
"Benutzen Sie '\\!' für führende Ausrufezeichen."
#: bisect.c:468
#, c-format
msgid "Badly quoted content in file '%s': %s"
-msgstr "Ungültiger Inhalt bzgl. Anführungsstriche in Datei '%s': %s"
+msgstr "Ungültiger Inhalt bzgl. Anführungszeichen in Datei '%s': %s"
#: bisect.c:676
#, c-format
msgid "We cannot bisect more!\n"
msgstr "Keine binäre Suche mehr möglich!\n"
#: bisect.c:730
#, c-format
@@ -1282,19 +1282,18 @@ msgstr "Das Paket speichert eine komplette Historie."
#: bundle.c:201
#, c-format
msgid "The bundle requires this ref:"
msgid_plural "The bundle requires these %d refs:"
msgstr[0] "Das Paket benötigt diese Referenz:"
msgstr[1] "Das Paket benötigt diese %d Referenzen:"
#: bundle.c:267
-#, fuzzy
msgid "unable to dup bundle descriptor"
-msgstr "Konnte Descriptor nicht umleiten."
+msgstr "Konnte dup für Descriptor des Pakets nicht ausführen."
#: bundle.c:274
msgid "Could not spawn pack-objects"
msgstr "Konnte Paketobjekte nicht erstellen"
#: bundle.c:285
msgid "pack-objects died"
msgstr "Erstellung der Paketobjekte abgebrochen"
@@ -1433,28 +1432,26 @@ msgid "could not find commit %s"
msgstr "Konnte Commit %s nicht finden."
#: commit-graph.c:617 builtin/pack-objects.c:2652
#, c-format
msgid "unable to get type of object %s"
msgstr "Konnte Art von Objekt '%s' nicht bestimmen."
#: commit-graph.c:651
-#, fuzzy
msgid "Annotating commits in commit graph"
-msgstr "Zu viele Commits zum Schreiben des Graphen."
+msgstr "Annotiere Commits in Commit-Graphen"
#: commit-graph.c:691
msgid "Computing commit graph generation numbers"
-msgstr ""
+msgstr "Commit-Graph Generierungsnummern berechnen"
#: commit-graph.c:803 commit-graph.c:826 commit-graph.c:852
-#, fuzzy
msgid "Finding commits for commit graph"
-msgstr "Zu viele Commits zum Schreiben des Graphen."
+msgstr "Bestimme Commits für Commit-Graphen"
#: commit-graph.c:812
#, c-format
msgid "error adding pack %s"
msgstr "Fehler beim Hinzufügen von Paket %s."
#: commit-graph.c:814
#, c-format
@@ -1478,17 +1475,17 @@ msgstr "Konnte führende Verzeichnisse von '%s' nicht erstellen."
#: commit-graph.c:1002
msgid "the commit-graph file has incorrect checksum and is likely corrupt"
msgstr ""
"Die Commit-Graph-Datei hat eine falsche Prüfsumme und ist wahrscheinlich "
"beschädigt."
#: commit-graph.c:1046
msgid "Verifying commits in commit graph"
-msgstr ""
+msgstr "Commit in Commit-Graph überprüfen"
#: compat/obstack.c:405 compat/obstack.c:407
msgid "memory exhausted"
msgstr "Speicher verbraucht"
#: config.c:123
#, c-format
msgid ""
@@ -2193,37 +2190,39 @@ msgstr[1] "%s, und %<PRIuMAX> Monaten"
#, c-format
msgid "%<PRIuMAX> year ago"
msgid_plural "%<PRIuMAX> years ago"
msgstr[0] "vor %<PRIuMAX> Jahr"
msgstr[1] "vor %<PRIuMAX> Jahren"
#: delta-islands.c:268
msgid "Propagating island marks"
-msgstr ""
+msgstr "Erzeuge Delta-Island Markierungen"
#: delta-islands.c:286
-#, fuzzy, c-format
+#, c-format
msgid "bad tree object %s"
-msgstr "Konnte Objekt %s nicht lesen."
+msgstr "Ungültiges Tree-Objekt %s."
#: delta-islands.c:330
-#, fuzzy, c-format
+#, c-format
msgid "failed to load island regex for '%s': %s"
-msgstr "Fehler beim Finden des \"Tree\"-Objektes von %s."
+msgstr "Fehler beim Laden des regulären Ausdrucks des Delta-Island für '%s': %s"
#: delta-islands.c:386
#, c-format
msgid "island regex from config has too many capture groups (max=%d)"
msgstr ""
+"Regulärer Ausdruck des Delta-Island aus Konfiguration hat zu\n"
+"viele Capture-Gruppen (maximal %d)."
#: delta-islands.c:462
#, c-format
msgid "Marked %d islands, done.\n"
-msgstr ""
+msgstr "%d Delta-Islands markiert, fertig.\n"
#: diffcore-order.c:24
#, c-format
msgid "failed to read orderfile '%s'"
msgstr "Fehler beim Lesen der Reihenfolgedatei '%s'."
#: diffcore-rename.c:544
msgid "Performing inexact rename detection"
@@ -2592,21 +2591,21 @@ msgstr "Unerwartete Acknowledgment-Zeile: '%s'"
#: fetch-pack.c:1249
#, c-format
msgid "error processing acks: %d"
msgstr "Fehler beim Verarbeiten von ACKS: %d"
#: fetch-pack.c:1259
msgid "expected packfile to be sent after 'ready'"
-msgstr ""
+msgstr "Erwartete Versand einer Packdatei nach 'ready'."
#: fetch-pack.c:1261
msgid "expected no other sections to be sent after no 'ready'"
-msgstr ""
+msgstr "Erwartete keinen Versand einer anderen Sektion ohne 'ready'."
#: fetch-pack.c:1298
#, c-format
msgid "error processing shallow info: %d"
msgstr "Fehler beim Verarbeiten von Shallow-Informationen: %d"
#: fetch-pack.c:1314
#, c-format
@@ -2746,26 +2745,25 @@ msgid "unsupported command listing type '%s'"
msgstr "Nicht unterstützte Art zur Befehlsauflistung '%s'."
#: help.c:408
msgid "The common Git guides are:"
msgstr "Die allgemeinen Git-Anleitungen sind:"
#: help.c:517
msgid "See 'git help <command>' to read about a specific subcommand"
-msgstr ""
+msgstr "Siehe 'git help <Befehl>', um mehr über einen spezifischen Unterbefehl zu lesen."
#: help.c:522
-#, fuzzy
msgid "External commands"
-msgstr "führe $command aus"
+msgstr "Externe Befehle"
#: help.c:530
msgid "Command aliases"
-msgstr ""
+msgstr "Alias-Befehle"
#: help.c:594
#, c-format
msgid ""
"'%s' appears to be a git command, but we were not\n"
"able to execute it. Maybe git-%s is broken?"
msgstr ""
"'%s' scheint ein git-Befehl zu sein, konnte aber\n"
@@ -2892,19 +2890,18 @@ msgstr "Name besteht nur aus nicht erlaubten Zeichen: %s"
msgid "invalid date format: %s"
msgstr "Ungültiges Datumsformat: %s"
#: list-objects-filter-options.c:35
msgid "multiple filter-specs cannot be combined"
msgstr "Mehrere filter-specs können nicht kombiniert werden."
#: list-objects-filter-options.c:58
-#, fuzzy
msgid "only 'tree:0' is supported"
-msgstr "Protokoll '%s' wird nicht unterstützt."
+msgstr "Es wird nur 'tree:0' unterstützt."
#: list-objects-filter-options.c:137
msgid "cannot change partial clone promisor remote"
msgstr "Kann Remote-Repository für partielles Klonen nicht ändern."
#: lockfile.c:151
#, c-format
msgid ""
@@ -3355,142 +3352,141 @@ msgstr "Merge hat keinen Commit zurückgegeben"
msgid "Could not parse object '%s'"
msgstr "Konnte Objekt '%s' nicht parsen."
#: merge-recursive.c:3553 builtin/merge.c:691 builtin/merge.c:849
msgid "Unable to write index."
msgstr "Konnte Index nicht schreiben."
#: midx.c:65
-#, fuzzy, c-format
+#, c-format
msgid "multi-pack-index file %s is too small"
-msgstr "Graph-Datei %s ist zu klein."
+msgstr "multi-pack-index-Datei %s ist zu klein."
#: midx.c:81
-#, fuzzy, c-format
+#, c-format
msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
-msgstr "Graph-Signatur %X stimmt nicht mit Signatur %X überein."
+msgstr "multi-pack-index-Signatur 0x%08x stimmt nicht mit Signatur 0x%08x überein."
#: midx.c:86
#, c-format
msgid "multi-pack-index version %d not recognized"
-msgstr ""
+msgstr "multi-pack-index-Version %d nicht erkannt."
#: midx.c:91
-#, fuzzy, c-format
+#, c-format
msgid "hash version %u does not match"
-msgstr "Hash-Version %X stimmt nicht mit Version %X überein."
+msgstr "Hash-Version %u stimmt nicht überein."
#: midx.c:105
msgid "invalid chunk offset (too large)"
-msgstr ""
+msgstr "Ungültiger Chunk-Offset (zu groß)"
#: midx.c:129
msgid "terminating multi-pack-index chunk id appears earlier than expected"
-msgstr ""
+msgstr "Abschließende multi-pack-index Chunk-Id erscheint eher als erwartet."
#: midx.c:142
msgid "multi-pack-index missing required pack-name chunk"
-msgstr ""
+msgstr "multi-pack-index fehlt erforderlicher pack-name Chunk."
#: midx.c:144
msgid "multi-pack-index missing required OID fanout chunk"
-msgstr ""
+msgstr "multi-pack-index fehlt erforderlicher OID fanout Chunk."
#: midx.c:146
msgid "multi-pack-index missing required OID lookup chunk"
-msgstr ""
+msgstr "multi-pack-index fehlt erforderlicher OID lookup Chunk."
#: midx.c:148
msgid "multi-pack-index missing required object offsets chunk"
-msgstr ""
+msgstr "multi-pack-index fehlt erforderlicher object offset Chunk."
#: midx.c:162
#, c-format
msgid "multi-pack-index pack names out of order: '%s' before '%s'"
-msgstr ""
+msgstr "Falsche Reihenfolge bei multi-pack-index Pack-Namen: '%s' vor '%s'"
#: midx.c:205
#, c-format
msgid "bad pack-int-id: %u (%u total packs)"
-msgstr ""
+msgstr "Ungültige pack-int-id: %u (%u Pakete insgesamt)"
#: midx.c:246
msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
-msgstr ""
+msgstr "multi-pack-index speichert einen 64-Bit Offset, aber off_t ist zu klein."
#: midx.c:271
msgid "error preparing packfile from multi-pack-index"
-msgstr ""
+msgstr "Fehler bei Vorbereitung der Packdatei aus multi-pack-index."
#: midx.c:407
-#, fuzzy, c-format
+#, c-format
msgid "failed to add packfile '%s'"
-msgstr "Fehler beim Lesen der Reihenfolgedatei '%s'."
+msgstr "Fehler beim Hinzufügen von Packdatei'%s'."
#: midx.c:413
-#, fuzzy, c-format
+#, c-format
msgid "failed to open pack-index '%s'"
-msgstr "Fehler beim Öffnen von '%s'"
+msgstr "Fehler beim Öffnen von pack-index '%s'"
#: midx.c:507
-#, fuzzy, c-format
+#, c-format
msgid "failed to locate object %d in packfile"
-msgstr "Konnte Objekt %s nicht lesen."
+msgstr "Fehler beim Lokalisieren von Objekt %d in Packdatei."
#: midx.c:943
-#, fuzzy, c-format
+#, c-format
msgid "failed to clear multi-pack-index at %s"
-msgstr "Fehler beim Bereinigen des Index"
+msgstr "Fehler beim Löschen des multi-pack-index bei %s"
#: midx.c:981
#, c-format
msgid ""
"oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
-msgstr ""
+msgstr "Ungültige oid fanout Reihenfolge: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
#: midx.c:992
#, c-format
msgid "oid lookup out of order: oid[%d] = %s >= %s = oid[%d]"
-msgstr ""
+msgstr "Ungültige oid lookup Reihenfolge: oid[%d] = %s >= %s = oid[%d]"
#: midx.c:996
-#, fuzzy
msgid "Verifying object offsets"
-msgstr "Schreibe Objekte"
+msgstr "Überprüfe Objekt-Offsets"
#: midx.c:1004
-#, fuzzy, c-format
+#, c-format
msgid "failed to load pack entry for oid[%d] = %s"
-msgstr "kann für %s keinen Eintrag in den Zwischenspeicher hinzufügen"
+msgstr "Fehler beim Laden des Pack-Eintrags für oid[%d] = %s"
#: midx.c:1010
-#, fuzzy, c-format
+#, c-format
msgid "failed to load pack-index for packfile %s"
-msgstr "Fehler beim Lesen der Reihenfolgedatei '%s'."
+msgstr "Fehler beim Laden des Pack-Index für Packdatei %s"
#: midx.c:1019
#, c-format
msgid "incorrect object offset for oid[%d] = %s: %<PRIx64> != %<PRIx64>"
-msgstr ""
+msgstr "Falscher Objekt-Offset für oid[%d] = %s: %<PRIx64> != %<PRIx64>"
#: name-hash.c:532
-#, fuzzy, c-format
+#, c-format
msgid "unable to create lazy_dir thread: %s"
-msgstr "kann Thread nicht erzeugen: %s"
+msgstr "Kann lazy_dir Thread nicht erzeugen: %s"
#: name-hash.c:554
-#, fuzzy, c-format
+#, c-format
msgid "unable to create lazy_name thread: %s"
-msgstr "kann Thread nicht erzeugen: %s"
+msgstr "Kann lazy_name Thread nicht erzeugen: %s"
#: name-hash.c:560
-#, fuzzy, c-format
+#, c-format
msgid "unable to join lazy_name thread: %s"
-msgstr "kann Thread nicht erzeugen: %s"
+msgstr "Kann lazy_name Thread nicht beitreten: %s"
#: notes-merge.c:275
#, c-format
msgid ""
"You have not concluded your previous notes merge (%s exists).\n"
"Please, use 'git notes merge --commit' or 'git notes merge --abort' to "
"commit/abort the previous merge before you start a new notes merge."
msgstr ""
@@ -3723,24 +3719,23 @@ msgid "protocol error: bad line length character: %.4s"
msgstr "Protokollfehler: ungültiges Zeichen für Zeilenlänge: %.4s"
#: pkt-line.c:337 pkt-line.c:342
#, c-format
msgid "protocol error: bad line length %d"
msgstr "Protokollfehler: ungültige Zeilenlänge %d"
#: preload-index.c:118
-#, fuzzy
msgid "Refreshing index"
-msgstr "Konnte den Index nicht aktualisieren."
+msgstr "Aktualisiere Index"
#: preload-index.c:137
-#, fuzzy, c-format
+#, c-format
msgid "unable to create threaded lstat: %s"
-msgstr "kann Thread nicht erzeugen: %s"
+msgstr "Kann Thread für lstat nicht erzeugen: %s"
#: pretty.c:962
msgid "unable to parse --pretty format"
msgstr "Konnte --pretty Format nicht parsen."
#: range-diff.c:56
msgid "could not start `log`"
msgstr "Konnte `log` nicht starten."
@@ -3759,19 +3754,18 @@ msgid "failed to generate diff"
msgstr "Fehler beim Generieren des Diffs."
#: range-diff.c:455 range-diff.c:457
#, c-format
msgid "could not parse log for '%s'"
msgstr "Konnte Log für '%s' nicht parsen."
#: read-cache.c:1490
-#, fuzzy
msgid "Refresh index"
-msgstr "Konnte den Index nicht aktualisieren."
+msgstr "Aktualisiere Index"
#: read-cache.c:1604
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
"Using version %i"
msgstr ""
"index.version gesetzt, aber Wert ungültig.\n"
@@ -3784,50 +3778,50 @@ msgid ""
"Using version %i"
msgstr ""
"GIT_INDEX_VERSION gesetzt, aber Wert ungültig.\n"
"Verwende Version %i"
#: read-cache.c:1792
#, c-format
msgid "malformed name field in the index, near path '%s'"
-msgstr ""
+msgstr "Ungültiges Namensfeld im Index, in der Nähe von Pfad '%s'."
#: read-cache.c:1960 rerere.c:565 rerere.c:599 rerere.c:1111 builtin/add.c:458
#: builtin/check-ignore.c:177 builtin/checkout.c:289 builtin/checkout.c:585
#: builtin/checkout.c:953 builtin/clean.c:954 builtin/commit.c:343
#: builtin/diff-tree.c:115 builtin/grep.c:489 builtin/mv.c:144
#: builtin/reset.c:244 builtin/rm.c:270 builtin/submodule--helper.c:329
msgid "index file corrupt"
msgstr "Index-Datei beschädigt"
#: read-cache.c:2101
-#, fuzzy, c-format
+#, c-format
msgid "unable to create load_cache_entries thread: %s"
-msgstr "kann Thread nicht erzeugen: %s"
+msgstr "Kann Thread für load_cache_entries nicht erzeugen: %s"
#: read-cache.c:2114
-#, fuzzy, c-format
+#, c-format
msgid "unable to join load_cache_entries thread: %s"
-msgstr "kann Thread nicht erzeugen: %s"
+msgstr "Kann Thread für load_cache_entries nicht erzeugen: %s"
#: read-cache.c:2201
-#, fuzzy, c-format
+#, c-format
msgid "unable to create load_index_extensions thread: %s"
-msgstr "kann Thread nicht erzeugen: %s"
+msgstr "Kann Thread für load_index_extensions nicht erzeugen: %s"
#: read-cache.c:2228
-#, fuzzy, c-format
+#, c-format
msgid "unable to join load_index_extensions thread: %s"
-msgstr "kann Thread nicht erzeugen: %s"
+msgstr "Kann Thread für load_index_extensions nicht beitreten: %s"
#: read-cache.c:2982 sequencer.c:4727 wrapper.c:658 builtin/merge.c:1086
#, c-format
msgid "could not close '%s'"
-msgstr "Konnte '%s' nicht schließen"
+msgstr "Konnte '%s' nicht schließen."
#: read-cache.c:3055 sequencer.c:2203 sequencer.c:3592
#, c-format
msgid "could not stat '%s'"
msgstr "Konnte '%s' nicht lesen."
#: read-cache.c:3068
#, c-format
@@ -3835,17 +3829,16 @@ msgid "unable to open git dir: %s"
msgstr "konnte Git-Verzeichnis nicht öffnen: %s"
#: read-cache.c:3080
#, c-format
msgid "unable to unlink: %s"
msgstr "Konnte '%s' nicht entfernen."
#: rebase-interactive.c:10
-#, fuzzy
msgid ""
"\n"
"Commands:\n"
"p, pick <commit> = use commit\n"
"r, reword <commit> = use commit, but edit the commit message\n"
"e, edit <commit> = use commit, but stop for amending\n"
"s, squash <commit> = use commit, but meld into previous commit\n"
"f, fixup <commit> = like \"squash\", but discard this commit's log message\n"
@@ -3862,26 +3855,25 @@ msgid ""
"These lines can be re-ordered; they are executed from top to bottom.\n"
msgstr ""
"\n"
"Befehle:\n"
"p, pick <Commit> = Commit verwenden\n"
"r, reword <Commit> = Commit verwenden, aber Commit-Beschreibung bearbeiten\n"
"e, edit <Commit> = Commit verwenden, aber zum Nachbessern anhalten\n"
"s, squash <Commit> = Commit verwenden, aber mit vorherigem Commit vereinen\n"
-"f, fixup <Commit> = wie \"squash\", aber diese Commit-Beschreibung "
-"verwerfen\n"
+"f, fixup <Commit> = wie \"squash\", aber diese Commit-Beschreibung verwerfen\n"
"x, exec <Commit> = Befehl (Rest der Zeile) mittels Shell ausführen\n"
+"b, break = hier anhalten (Rebase später mit 'git rebase --continue' fortsetzen)\n"
"d, drop <Commit> = Commit entfernen\n"
"l, label <Label> = aktuellen HEAD mit Label versehen\n"
"t, reset <Label> = HEAD zu einem Label umsetzen\n"
"m, merge [-C <Commit> | -c <Commit>] <Label> [# <eineZeile>]\n"
". Merge-Commit mit der originalen Merge-Commit-Beschreibung erstellen\n"
-". (oder die eine Zeile, wenn keine originale Merge-Commit-"
-"Beschreibung\n"
+". (oder die eine Zeile, wenn keine originale Merge-Commit-Beschreibung\n"
". spezifiziert ist). Benutzen Sie -c <Commit> zum Bearbeiten der\n"
". Commit-Beschreibung.\n"
"\n"
"Diese Zeilen können umsortiert werden; Sie werden von oben nach unten\n"
"ausgeführt.\n"
#: rebase-interactive.c:31 git-rebase--preserve-merges.sh:173
msgid ""
@@ -4182,17 +4174,17 @@ msgstr "Fehlerhafter Feldname: %.*s"
#, c-format
msgid "unknown field name: %.*s"
msgstr "Unbekannter Feldname: %.*s"
#: ref-filter.c:539
#, c-format
msgid ""
"not a git repository, but the field '%.*s' requires access to object data"
-msgstr ""
+msgstr "Kein Git-Repository, aber das Feld '%.*s' erfordert Zugriff auf Objektdaten."
#: ref-filter.c:663
#, c-format
msgid "format: %%(if) atom used without a %%(then) atom"
msgstr "format: %%(if) Atom ohne ein %%(then) Atom verwendet"
#: ref-filter.c:726
#, c-format
@@ -4446,113 +4438,111 @@ msgstr "doppelte ersetzende Referenz: %s"
#: replace-object.c:73
#, c-format
msgid "replace depth too high for object %s"
msgstr "Ersetzungstiefe zu hoch für Objekt %s"
#: rerere.c:217 rerere.c:226 rerere.c:229
msgid "corrupt MERGE_RR"
-msgstr ""
+msgstr "Fehlerhaftes MERGE_RR"
#: rerere.c:264 rerere.c:269
-#, fuzzy
msgid "unable to write rerere record"
-msgstr "Konnte Notiz-Objekt nicht schreiben"
+msgstr "Konnte Rerere-Eintrag nicht schreiben."
#: rerere.c:485 rerere.c:692 sequencer.c:3136 sequencer.c:3162
#, c-format
msgid "could not write '%s'"
msgstr "Konnte '%s' nicht schreiben."
#: rerere.c:495
-#, fuzzy, c-format
+#, c-format
msgid "there were errors while writing '%s' (%s)"
-msgstr "Lesefehler beim Indizieren von '%s'."
+msgstr "Fehler beim Schreiben von '%s' (%s)."
#: rerere.c:498
-#, fuzzy, c-format
+#, c-format
msgid "failed to flush '%s'"
-msgstr "Konnte '%s' nicht lesen"
+msgstr "Flush bei '%s' fehlgeschlagen."
#: rerere.c:503 rerere.c:1039
-#, fuzzy, c-format
+#, c-format
msgid "could not parse conflict hunks in '%s'"
-msgstr "Konnte Commit '%s' nicht parsen."
+msgstr "Konnte Konflikt-Blöcke in '%s' nicht parsen."
#: rerere.c:684
-#, fuzzy, c-format
+#, c-format
msgid "failed utime() on '%s'"
msgstr "Fehler beim Aufruf von utime() auf '%s'."
#: rerere.c:694
-#, fuzzy, c-format
+#, c-format
msgid "writing '%s' failed"
-msgstr "Konnte '%s' nicht erstellen"
+msgstr "Schreiben von '%s' fehlgeschlagen."
#: rerere.c:714
#, c-format
msgid "Staged '%s' using previous resolution."
-msgstr ""
+msgstr "'%s' mit vorheriger Konfliktauflösung zum Commit vorgemerkt."
#: rerere.c:753
-#, fuzzy, c-format
+#, c-format
msgid "Recorded resolution for '%s'."
-msgstr "aufgezeichnete Auflösung von Merge-Konflikten wiederverwenden"
+msgstr "Konfliktauflösung für '%s' aufgezeichnet."
#: rerere.c:788
#, c-format
msgid "Resolved '%s' using previous resolution."
-msgstr ""
+msgstr "Konflikte in '%s' mit vorheriger Konfliktauflösung beseitigt."
#: rerere.c:803
-#, fuzzy, c-format
+#, c-format
msgid "cannot unlink stray '%s'"
-msgstr "kann symbolische Verknüpfung '%s' auf '%s' nicht erstellen"
+msgstr "Kann '%s' nicht löschen."
#: rerere.c:807
-#, fuzzy, c-format
+#, c-format
msgid "Recorded preimage for '%s'"
-msgstr "Konnte Log für '%s' nicht parsen."
+msgstr "Preimage für '%s' aufgezeichnet."
#: rerere.c:881 submodule.c:1763 builtin/submodule--helper.c:1413
#: builtin/submodule--helper.c:1423
#, c-format
msgid "could not create directory '%s'"
msgstr "Konnte Verzeichnis '%s' nicht erstellen."
#: rerere.c:1057
-#, fuzzy, c-format
+#, c-format
msgid "failed to update conflicted state in '%s'"
-msgstr "Fehler beim Ausführen von 'git status' auf '%s'"
+msgstr "Fehler beim Aktualisieren des Konflikt-Status in '%s'."
#: rerere.c:1068 rerere.c:1075
-#, fuzzy, c-format
+#, c-format
msgid "no remembered resolution for '%s'"
-msgstr "Konnte Merge-Ergebnis von '%s' nicht hinzufügen."
+msgstr "Keine aufgezeichnete Konfliktauflösung für '%s'."
#: rerere.c:1077
-#, fuzzy, c-format
+#, c-format
msgid "cannot unlink '%s'"
-msgstr "kann Verweis '%s' nicht lesen"
+msgstr "Kann '%s' nicht löschen."
#: rerere.c:1087
-#, fuzzy, c-format
+#, c-format
msgid "Updated preimage for '%s'"
-msgstr "Ersetzende Referenz '%s' gelöscht."
+msgstr "Preimage für '%s' aktualisiert."
#: rerere.c:1096
-#, fuzzy, c-format
+#, c-format
msgid "Forgot resolution for '%s'\n"
-msgstr "Konnte Log für '%s' nicht parsen."
+msgstr "Aufgezeichnete Konfliktauflösung für '%s' gelöscht.\n"
#: rerere.c:1199
-#, fuzzy
msgid "unable to open rr-cache directory"
-msgstr "Konnte Cache-Verzeichnis nicht aktualisieren."
+msgstr "Konnte rr-cache Verzeichnis nicht öffnen."
#: revision.c:2324
msgid "your current branch appears to be broken"
msgstr "Ihr aktueller Branch scheint fehlerhaft zu sein."
#: revision.c:2327
#, c-format
msgid "your current branch '%s' does not have any commits yet"
@@ -4562,19 +4552,19 @@ msgstr "Ihr aktueller Branch '%s' hat noch keine Commits."
msgid "--first-parent is incompatible with --bisect"
msgstr "Die Optionen --first-parent und --bisect sind inkompatibel."
#: run-command.c:740
msgid "open /dev/null failed"
msgstr "Öffnen von /dev/null fehlgeschlagen"
#: run-command.c:1229
-#, fuzzy, c-format
+#, c-format
msgid "cannot create async thread: %s"
-msgstr "kann Thread nicht erzeugen: %s"
+msgstr "Kann Thread für async nicht erzeugen: %s"
#: run-command.c:1293
#, c-format
msgid ""
"The '%s' hook was ignored because it's not set as executable.\n"
"You can disable this warning with `git config advice.ignoredHook false`."
msgstr ""
"Der '%s' Hook wurde ignoriert, weil er nicht als ausführbar markiert ist.\n"
@@ -4715,59 +4705,59 @@ msgstr "%s: Konnte neue Index-Datei nicht schreiben"
msgid "unable to update cache tree"
msgstr "Konnte Cache-Verzeichnis nicht aktualisieren."
#: sequencer.c:604
msgid "could not resolve HEAD commit"
msgstr "Konnte HEAD-Commit nicht auflösen."
#: sequencer.c:684
-#, fuzzy, c-format
+#, c-format
msgid "no key present in '%.*s'"
-msgstr "Konnte '%.*s' nicht parsen."
+msgstr "Kein Schlüssel in '%.*s' vorhanden."
#: sequencer.c:695
-#, fuzzy, c-format
+#, c-format
msgid "unable to dequote value of '%s'"
-msgstr "Konnte Remote-Helper für '%s' nicht finden."
+msgstr "Konnte Anführungszeichen von '%s' nicht entfernen."
#: sequencer.c:732 wrapper.c:227 wrapper.c:397 builtin/am.c:719
#: builtin/am.c:811 builtin/merge.c:1081
#, c-format
msgid "could not open '%s' for reading"
msgstr "Konnte '%s' nicht zum Lesen öffnen."
#: sequencer.c:742
msgid "'GIT_AUTHOR_NAME' already given"
-msgstr ""
+msgstr "'GIT_AUTHOR_NAME' bereits angegeben."
#: sequencer.c:747
msgid "'GIT_AUTHOR_EMAIL' already given"
-msgstr ""
+msgstr "'GIT_AUTHOR_EMAIL' bereits angegeben."
#: sequencer.c:752
msgid "'GIT_AUTHOR_DATE' already given"
-msgstr ""
+msgstr "'GIT_AUTHOR_DATE' bereits angegeben."
#: sequencer.c:756
-#, fuzzy, c-format
+#, c-format
msgid "unknown variable '%s'"
-msgstr "Unbekanntes Archivformat '%s'"
+msgstr "Unbekannte Variable '%s'"
#: sequencer.c:761
msgid "missing 'GIT_AUTHOR_NAME'"
-msgstr ""
+msgstr "'GIT_AUTHOR_NAME' fehlt."
#: sequencer.c:763
msgid "missing 'GIT_AUTHOR_EMAIL'"
-msgstr ""
+msgstr "'GIT_AUTHOR_EMAIL' fehlt."
#: sequencer.c:765
msgid "missing 'GIT_AUTHOR_DATE'"
-msgstr ""
+msgstr "'GIT_AUTHOR_DATE' fehlt."
#: sequencer.c:825
#, c-format
msgid "invalid date format '%s' in '%s'"
msgstr "Ungültiges Datumsformat '%s' in '%s'"
#: sequencer.c:842
#, c-format
@@ -5310,38 +5300,38 @@ msgid ""
"Your changes are safe in the stash.\n"
"You can run \"git stash pop\" or \"git stash drop\" at any time.\n"
msgstr ""
"Anwendung des automatischen Stash resultierte in Konflikten.\n"
"Ihre Änderungen sind im Stash sicher.\n"
"Sie können jederzeit \"git stash pop\" oder \"git stash drop\" ausführen.\n"
#: sequencer.c:3427
-#, fuzzy, c-format
+#, c-format
msgid "could not checkout %s"
-msgstr "kann %s nicht auschecken"
+msgstr "Konnte %s nicht auschecken."
#: sequencer.c:3441
-#, fuzzy, c-format
+#, c-format
msgid "%s: not a valid OID"
-msgstr "%s ist kein gültiges Objekt"
+msgstr "%s: keine gültige OID"
#: sequencer.c:3446 git-rebase--preserve-merges.sh:724
msgid "could not detach HEAD"
msgstr "Konnte HEAD nicht loslösen"
#: sequencer.c:3461
-#, fuzzy, c-format
+#, c-format
msgid "Stopped at HEAD\n"
-msgstr "Angehalten bei %s... %.*s\n"
+msgstr "Angehalten bei HEAD\n"
#: sequencer.c:3463
-#, fuzzy, c-format
+#, c-format
msgid "Stopped at %s\n"
-msgstr "Angehalten bei %s... %.*s\n"
+msgstr "Angehalten bei %s\n"
#: sequencer.c:3471
#, c-format
msgid ""
"Could not execute the todo command\n"
"\n"
" %.*s\n"
"It has been rescheduled; To edit the command before continuing, please\n"
@@ -5495,41 +5485,38 @@ msgid ""
"continue'.\n"
"Or you can abort the rebase with 'git rebase --abort'.\n"
msgstr ""
"Sie können das mit 'git rebase --edit-todo' beheben. Führen Sie danach\n"
"'git rebase --continue' aus.\n"
"Oder Sie können den Rebase mit 'git rebase --abort' abbrechen.\n"
#: sequencer.c:4848 sequencer.c:4886
-#, fuzzy
msgid "nothing to do"
-msgstr "nichts zu committen\n"
+msgstr "Nichts zu tun."
#: sequencer.c:4852
-#, fuzzy, c-format
+#, c-format
msgid "Rebase %s onto %s (%d command)"
msgid_plural "Rebase %s onto %s (%d commands)"
-msgstr[0] "Rebase von $shortrevisions auf $shortonto ($todocount Kommando)"
-msgstr[1] "Rebase von $shortrevisions auf $shortonto ($todocount Kommandos)"
+msgstr[0] "Rebase von %s auf %s (%d Kommando)"
+msgstr[1] "Rebase von %s auf %s (%d Kommandos)"
#: sequencer.c:4864
-#, fuzzy, c-format
+#, c-format
msgid "could not copy '%s' to '%s'."
msgstr "Konnte '%s' nicht nach '%s' kopieren."
#: sequencer.c:4868 sequencer.c:4897
-#, fuzzy
msgid "could not transform the todo list"
-msgstr "Konnte TODO-Liste nicht erzeugen."
+msgstr "Konnte die TODO-Liste nicht umwandeln."
#: sequencer.c:4900
-#, fuzzy
msgid "could not skip unnecessary pick commands"
-msgstr "nicht erforderliche \"pick\"-Befehle auslassen"
+msgstr "Konnte unnötige \"pick\"-Befehle nicht auslassen."
#: sequencer.c:4983
msgid "the script was already rearranged."
msgstr "Das Script wurde bereits umgeordnet."
#: setup.c:123
#, c-format
msgid "'%s' is outside repository"
@@ -6091,17 +6078,17 @@ msgstr "Ignoriere verdächtigen Submodulnamen: %s"
#: submodule-config.c:296
msgid "negative values not allowed for submodule.fetchjobs"
msgstr "Negative Werte für submodule.fetchjobs nicht erlaubt."
#: submodule-config.c:390
#, c-format
msgid "ignoring '%s' which may be interpreted as a command-line option: %s"
-msgstr ""
+msgstr "Ignoriere '%s', was als eine Befehlszeilenoption '%s' interpretiert werden würde."
#: submodule-config.c:479
#, c-format
msgid "invalid value for %s"
msgstr "Ungültiger Wert für %s"
#: submodule-config.c:754
#, c-format
@@ -6690,16 +6677,19 @@ msgid "Checking out files"
msgstr "Checke Dateien aus"
#: unpack-trees.c:368
msgid ""
"the following paths have collided (e.g. case-sensitive paths\n"
"on a case-insensitive filesystem) and only one from the same\n"
"colliding group is in the working tree:\n"
msgstr ""
+"Die folgenden Pfade haben kollidiert (z.B. case-sensitive Pfade\n"
+"auf einem case-insensitiven Dateisystem) und nur einer von der\n"
+"selben Kollissionsgruppe ist im Arbeitsverzeichnis:\n"
#: urlmatch.c:163
msgid "invalid URL scheme name or missing '://' suffix"
msgstr "Ungültiges URL-Schema oder Suffix '://' fehlt"
#: urlmatch.c:187 urlmatch.c:346 urlmatch.c:405
#, c-format
msgid "invalid %XX escape sequence"
@@ -7571,17 +7561,17 @@ msgstr ""
#, c-format
msgid "To restore the original branch and stop patching, run \"%s --abort\"."
msgstr ""
"Um den ursprünglichen Branch wiederherzustellen und die Anwendung der "
"Patches abzubrechen, führen Sie \"%s --abort\" aus."
#: builtin/am.c:1196
msgid "Patch sent with format=flowed; space at the end of lines might be lost."
-msgstr ""
+msgstr "Patch mit format=flowed versendet; Leerzeichen am Ende von Zeilen könnte verloren gehen."
#: builtin/am.c:1224
msgid "Patch is empty."
msgstr "Patch ist leer."
#: builtin/am.c:1290
#, c-format
msgid "invalid ident line: %.*s"
@@ -8584,19 +8574,18 @@ msgstr ""
msgid ""
"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
"filters]"
msgstr ""
"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
"filters]"
#: builtin/cat-file.c:609
-#, fuzzy
msgid "only one batch option may be specified"
-msgstr "Nur eine Aktion erlaubt."
+msgstr "Nur eine Batch-Option erlaubt."
#: builtin/cat-file.c:627
msgid "<type> can be one of: blob, tree, commit, tag"
msgstr "<Art> kann sein: blob, tree, commit, tag"
#: builtin/cat-file.c:628
msgid "show object type"
msgstr "Objektart anzeigen"
@@ -10363,19 +10352,18 @@ msgstr "globale Konfigurationsdatei verwenden"
msgid "use system config file"
msgstr "systemweite Konfigurationsdatei verwenden"
#: builtin/config.c:127
msgid "use repository config file"
msgstr "Konfigurationsdatei des Repositories verwenden"
#: builtin/config.c:128
-#, fuzzy
msgid "use per-worktree config file"
-msgstr "Konfigurationsdatei des Repositories verwenden"
+msgstr "Konfigurationsdatei pro Arbeitsverzeichnis verwenden"
#: builtin/config.c:129
msgid "use given config file"
msgstr "die angegebene Konfigurationsdatei verwenden"
#: builtin/config.c:130
msgid "blob-id"
msgstr "Blob-Id"
@@ -10576,16 +10564,19 @@ msgid "$HOME not set"
msgstr "$HOME nicht gesetzt."
#: builtin/config.c:657
msgid ""
"--worktree cannot be used with multiple working trees unless the config\n"
"extension worktreeConfig is enabled. Please read \"CONFIGURATION FILE\"\n"
"section in \"git help worktree\" for details"
msgstr ""
+"--worktree kann nicht mit mehreren Arbeitsverzeichnissen verwendet werden,\n"
+"außer die Konfigurationserweiterung worktreeConfig ist aktiviert. Bitte\n"
+"lesen Sie die Sektion \"CONFIGURATION_FILE\" in \"git help worktree\" für Details"
#: builtin/config.c:687
msgid "--get-color and variable type are incoherent"
msgstr "Angabe von --get-color und Variablentyp sind ungültig."
#: builtin/config.c:692
msgid "only one action at a time"
msgstr "Nur eine Aktion erlaubt."
@@ -11030,19 +11021,18 @@ msgstr "fordert von allen Remote-Repositories an"
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "an .git/FETCH_HEAD anhängen, anstatt zu überschreiben"
#: builtin/fetch.c:119 builtin/pull.c:200
msgid "path to upload pack on remote end"
msgstr "Pfad des Programms zum Hochladen von Paketen auf der Gegenseite"
#: builtin/fetch.c:120
-#, fuzzy
msgid "force overwrite of local reference"
-msgstr "das Überschreiben von lokalen Branches erzwingen"
+msgstr "das Überschreiben einer lokalen Referenz erzwingen"
#: builtin/fetch.c:122
msgid "fetch from multiple remotes"
msgstr "von mehreren Remote-Repositories anfordern"
#: builtin/fetch.c:124 builtin/pull.c:204
msgid "fetch all tags and associated objects"
msgstr "alle Tags und verbundene Objekte anfordern"
@@ -11171,17 +11161,17 @@ msgstr "[Tag Aktualisierung]"
#: builtin/fetch.c:731 builtin/fetch.c:771 builtin/fetch.c:787
#: builtin/fetch.c:802
msgid "unable to update local ref"
msgstr "kann lokale Referenz nicht aktualisieren"
#: builtin/fetch.c:735
msgid "would clobber existing tag"
-msgstr ""
+msgstr "würde bestehende Tags verändern"
#: builtin/fetch.c:757
msgid "[new tag]"
msgstr "[neues Tag]"
#: builtin/fetch.c:760
msgid "[new branch]"
msgstr "[neuer Branch]"
@@ -11655,19 +11645,18 @@ msgstr "binäre Dateien als Text verarbeiten"
msgid "don't match patterns in binary files"
msgstr "keine Muster in Binärdateien finden"
#: builtin/grep.c:822
msgid "process binary files with textconv filters"
msgstr "binäre Dateien mit \"textconv\"-Filtern verarbeiten"
#: builtin/grep.c:824
-#, fuzzy
msgid "search in subdirectories (default)"
-msgstr "lose Referenzen entfernen (Standard)"
+msgstr "in Unterverzeichnissen suchen (Standard)"
#: builtin/grep.c:826
msgid "descend at most <depth> levels"
msgstr "höchstens <Tiefe> Ebenen durchlaufen"
#: builtin/grep.c:830
msgid "use extended POSIX regular expressions"
msgstr "erweiterte reguläre Ausdrücke aus POSIX verwenden"
@@ -11817,23 +11806,22 @@ msgid "--no-index or --untracked cannot be used with revs"
msgstr "--no-index oder --untracked können nicht mit Commits verwendet werden"
#: builtin/grep.c:1020
#, c-format
msgid "unable to resolve revision: %s"
msgstr "Konnte Commit nicht auflösen: %s"
#: builtin/grep.c:1051
-#, fuzzy
msgid "invalid option combination, ignoring --threads"
-msgstr "keine Unterstützung von Threads, --threads wird ignoriert"
+msgstr "Ungültige Kombination von Optionen, --threads wird ignoriert."
#: builtin/grep.c:1054 builtin/pack-objects.c:3397
msgid "no threads support, ignoring --threads"
-msgstr "keine Unterstützung von Threads, --threads wird ignoriert"
+msgstr "Keine Unterstützung für Threads, --threads wird ignoriert."
#: builtin/grep.c:1057 builtin/index-pack.c:1503 builtin/pack-objects.c:2716
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr "ungültige Anzahl von Threads angegeben (%d)"
#: builtin/grep.c:1080
msgid "--open-files-in-pager only works on the worktree"
@@ -11993,19 +11981,19 @@ msgid "no info viewer handled the request"
msgstr "kein Informations-Betrachter konnte mit dieser Anfrage umgehen"
#: builtin/help.c:430 builtin/help.c:441 git.c:322
#, c-format
msgid "'%s' is aliased to '%s'"
msgstr "Für '%s' wurde der Alias '%s' angelegt."
#: builtin/help.c:444
-#, fuzzy, c-format
+#, c-format
msgid "bad alias.%s string: %s"
-msgstr "Ungültiger branch.%s.mergeoptions String: %s"
+msgstr "Ungültiger alias.%s String: %s"
#: builtin/help.c:473 builtin/help.c:503
#, c-format
msgid "usage: %s%s"
msgstr "Verwendung: %s%s"
#: builtin/help.c:487
msgid "'git help config' for more information"
@@ -12460,17 +12448,17 @@ msgid "join whitespace-continued values"
msgstr "durch Leerzeichen fortgesetzte Werte verbinden"
#: builtin/interpret-trailers.c:107
msgid "set parsing options"
msgstr "Optionen für das Parsen setzen"
#: builtin/interpret-trailers.c:109
msgid "do not treat --- specially"
-msgstr ""
+msgstr "--- nicht speziell behandeln"
#: builtin/interpret-trailers.c:110
msgid "trailer"
msgstr "Anhang"
#: builtin/interpret-trailers.c:111
msgid "trailer(s) to add"
msgstr "Anhang/Anhänge hinzufügen"
@@ -12621,19 +12609,18 @@ msgstr "Basis-Commit sollte der Vorgänger der Revisionsliste sein."
msgid "base commit shouldn't be in revision list"
msgstr "Basis-Commit sollte nicht in der Revisionsliste enthalten sein."
#: builtin/log.c:1418
msgid "cannot get patch id"
msgstr "kann Patch-Id nicht lesen"
#: builtin/log.c:1470
-#, fuzzy
msgid "failed to infer range-diff ranges"
-msgstr "Fehler beim Generieren des Diffs."
+msgstr "Fehler beim Ableiten des range-diff-Bereichs."
#: builtin/log.c:1515
msgid "use [PATCH n/m] even with a single patch"
msgstr "[PATCH n/m] auch mit einzelnem Patch verwenden"
#: builtin/log.c:1518
msgid "use [PATCH] even with multiple patches"
msgstr "[PATCH] auch mit mehreren Patches verwenden"
@@ -12781,30 +12768,28 @@ msgstr "eine Signatur aus einer Datei hinzufügen"
msgid "don't print the patch filenames"
msgstr "keine Dateinamen der Patches anzeigen"
#: builtin/log.c:1584
msgid "show progress while generating patches"
msgstr "Forschrittsanzeige während der Erzeugung der Patches"
#: builtin/log.c:1585
-#, fuzzy
msgid "rev"
-msgstr "Revert"
+msgstr "Commit"
#: builtin/log.c:1586
msgid "show changes against <rev> in cover letter or single patch"
-msgstr ""
+msgstr "Änderungen gegenüber <Commit> im Deckblatt oder einzelnem Patch anzeigen"
#: builtin/log.c:1589
msgid "show changes against <refspec> in cover letter or single patch"
-msgstr ""
+msgstr "Änderungen gegenüber <Refspec> im Deckblatt oder einzelnem Patch anzeigen"
#: builtin/log.c:1591
-#, fuzzy
msgid "percentage by which creation is weighted"
msgstr "Prozentsatz mit welchem Erzeugung gewichtet wird"
#: builtin/log.c:1666
#, c-format
msgid "invalid ident line: %s"
msgstr "Ungültige Identifikationszeile: %s"
@@ -12834,43 +12819,43 @@ msgstr "Standard-Ausgabe oder Verzeichnis, welches von beidem?"
#: builtin/log.c:1729
#, c-format
msgid "Could not create directory '%s'"
msgstr "Konnte Verzeichnis '%s' nicht erstellen."
#: builtin/log.c:1816
msgid "--interdiff requires --cover-letter or single patch"
-msgstr ""
+msgstr "--interdiff erfordert --cover-letter oder einzelnen Patch."
#: builtin/log.c:1820
msgid "Interdiff:"
-msgstr ""
+msgstr "Interdiff:"
#: builtin/log.c:1821
#, c-format
msgid "Interdiff against v%d:"
-msgstr ""
+msgstr "Interdiff gegen v%d:"
#: builtin/log.c:1827
msgid "--creation-factor requires --range-diff"
-msgstr ""
+msgstr "--creation-factor erfordert --range-diff"
#: builtin/log.c:1831
msgid "--range-diff requires --cover-letter or single patch"
-msgstr ""
+msgstr "--range-diff erfordert --cover-letter oder einzelnen Patch."
#: builtin/log.c:1839
msgid "Range-diff:"
-msgstr ""
+msgstr "Range-Diff:"
#: builtin/log.c:1840
#, c-format
msgid "Range-diff against v%d:"
-msgstr ""
+msgstr "Range-Diff gegen v%d:"
#: builtin/log.c:1851
#, c-format
msgid "unable to read signature file '%s'"
msgstr "Konnte Signatur-Datei '%s' nicht lesen"
#: builtin/log.c:1887
msgid "Generating patches"
@@ -13585,31 +13570,30 @@ msgid "allow missing objects"
msgstr "fehlende Objekte erlauben"
#: builtin/mktree.c:156
msgid "allow creation of more than one tree"
msgstr "die Erstellung von mehr als einem \"Tree\"-Objekt erlauben"
#: builtin/multi-pack-index.c:8
msgid "git multi-pack-index [--object-dir=<dir>] (write|verify)"
-msgstr ""
+msgstr "git multi-pack-index [--object-dir=<Verzeichnis>] (write|verify)"
#: builtin/multi-pack-index.c:21
msgid "object directory containing set of packfile and pack-index pairs"
-msgstr ""
+msgstr "Objekt-Verzeichnis, welches Paare von Packdateien und pack-index enthält"
#: builtin/multi-pack-index.c:39
-#, fuzzy
msgid "too many arguments"
msgstr "Zu viele Argumente."
#: builtin/multi-pack-index.c:48
-#, fuzzy, c-format
+#, c-format
msgid "unrecognized verb: %s"
-msgstr "nicht erkanntes Argument: %s"
+msgstr "Nicht erkanntes Verb: %s"
#: builtin/mv.c:17
msgid "git mv [<options>] <source>... <destination>"
msgstr "git mv [<Optionen>] <Quelle>... <Ziel>"
#: builtin/mv.c:82
#, c-format
msgid "Directory %s is in index and no submodule?"
@@ -14268,19 +14252,19 @@ msgstr "Konnte Kopfbereich von Objekt '%s' nicht parsen."
#: builtin/pack-objects.c:2083 builtin/pack-objects.c:2099
#: builtin/pack-objects.c:2109
#, c-format
msgid "object %s cannot be read"
msgstr "Objekt %s kann nicht gelesen werden."
#: builtin/pack-objects.c:2086 builtin/pack-objects.c:2113
-#, fuzzy, c-format
+#, c-format
msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)"
-msgstr "Inkonsistente Objektlänge bei Objekt %s (%lu vs. %lu)"
+msgstr "Inkonsistente Objektlänge bei Objekt %s (%<PRIuMAX> vs %<PRIuMAX>)"
#: builtin/pack-objects.c:2123
msgid "suboptimal pack - out of memory"
msgstr "ungünstiges Packet - Speicher voll"
#: builtin/pack-objects.c:2451
#, c-format
msgid "Delta compression using up to %d threads"
@@ -14512,19 +14496,18 @@ msgstr "Behandlung für fehlende Objekte"
#: builtin/pack-objects.c:3316
msgid "do not pack objects in promisor packfiles"
msgstr ""
"keine Objekte aus Packdateien von partiell geklonten Remote-Repositories "
"packen"
#: builtin/pack-objects.c:3318
-#, fuzzy
msgid "respect islands during delta compression"
-msgstr "Größe des Fensters für die Delta-Kompression"
+msgstr "Delta-Islands bei Delta-Kompression beachten"
#: builtin/pack-objects.c:3342
#, c-format
msgid "delta chain depth %d is too deep, forcing %d"
msgstr "Tiefe für Verkettung von Unterschieden %d ist zu tief, erzwinge %d"
#: builtin/pack-objects.c:3347
#, c-format
@@ -14735,19 +14718,19 @@ msgid ""
"Your configuration specifies to merge with the ref '%s'\n"
"from the remote, but no such ref was fetched."
msgstr ""
"Ihre Konfiguration gibt an, den Merge mit Referenz '%s'\n"
"des Remote-Repositories durchzuführen, aber diese Referenz\n"
"wurde nicht angefordert."
#: builtin/pull.c:565
-#, fuzzy, c-format
+#, c-format
msgid "unable to access commit %s"
-msgstr "Konnte Commit '%s' nicht parsen."
+msgstr "Konnte nicht auf Commit '%s' zugreifen."
#: builtin/pull.c:843
msgid "ignoring --verify-signatures for rebase"
msgstr "Ignoriere --verify-signatures für Rebase"
#: builtin/pull.c:891
msgid "--[no-]autostash option is only valid with --rebase."
msgstr "--[no-]autostash ist nur mit --rebase zulässig."
@@ -14824,17 +14807,17 @@ msgid ""
"\n"
"To choose either option permanently, see push.default in 'git help config'."
msgstr ""
"\n"
"Um eine Variante permanent zu verwenden, siehe push.default in 'git help "
"config'."
#: builtin/push.c:168
-#, fuzzy, c-format
+#, c-format
msgid ""
"The upstream branch of your current branch does not match\n"
"the name of your current branch. To push to the upstream branch\n"
"on the remote, use\n"
"\n"
" git push %s HEAD:%s\n"
"\n"
"To push to the branch of the same name on the remote, use\n"
@@ -14846,17 +14829,17 @@ msgstr ""
"aktuellen Branches überein. Um auf den Upstream-Branch in dem Remote-\n"
"Repository zu versenden, benutzen Sie:\n"
"\n"
" git push %s HEAD:%s\n"
"\n"
"Um auf den Branch mit demselben Namen im Remote-Repository zu versenden,\n"
"benutzen Sie:\n"
"\n"
-" git push %s %s\n"
+" git push %s HEAD\n"
"%s"
#: builtin/push.c:183
#, c-format
msgid ""
"You are not currently on a branch.\n"
"To push the history leading to the current (detached HEAD)\n"
"state now, use\n"
@@ -15214,63 +15197,59 @@ msgstr "weder den Index, noch das Arbeitsverzeichnis aktualisieren"
msgid "skip applying sparse checkout filter"
msgstr "Anwendung des Filters für partielles Auschecken überspringen"
#: builtin/read-tree.c:152
msgid "debug unpack-trees"
msgstr "unpack-trees protokollieren"
#: builtin/rebase.c:29
-#, fuzzy
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] "
"[<branch>]"
-msgstr ""
-"git archive --remote <Repository> [--exec <Programm>] [<Optionen>] <Commit-"
-"Referenz> [<Pfad>...]"
+msgstr "git rebase [-i] [<Optionen>] [--exec <Programm>] [--onto <neue-Basis>] [<Upstream>] [<Branch>]"
#: builtin/rebase.c:31
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]"
-msgstr ""
+msgstr "git rebase [-i] [<Optionen>] [--exec <Programm>] [--onto <neue-Basis>] --root [<Branch>]"
#: builtin/rebase.c:33
-#, fuzzy
msgid "git rebase --continue | --abort | --skip | --edit-todo"
-msgstr "git am [<Optionen>] (--continue | --skip | --abort)"
+msgstr "git rebase --continue | --abort | --skip | --edit-todo"
#: builtin/rebase.c:119
-#, fuzzy, c-format
+#, c-format
msgid "%s requires an interactive rebase"
-msgstr "interaktiv ausführen"
+msgstr "%s erfordert ein interaktives Rebase"
#: builtin/rebase.c:171
-#, fuzzy, c-format
+#, c-format
msgid "could not get 'onto': '%s'"
-msgstr "Konnte '%s' nicht zu '%s' setzen."
+msgstr "Konnte 'onto' nicht bestimmen: '%s'"
#: builtin/rebase.c:186
-#, fuzzy, c-format
+#, c-format
msgid "invalid orig-head: '%s'"
-msgstr "Ungültige Datei: '%s'"
+msgstr "Ungültiges orig-head: '%s'"
#: builtin/rebase.c:214
#, c-format
msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
-msgstr ""
+msgstr "Ignoriere ungültiges allow_rerere_autoupdate: '%s'"
#: builtin/rebase.c:259
-#, fuzzy, c-format
+#, c-format
msgid "Could not read '%s'"
-msgstr "Konnte '%s' nicht lesen"
+msgstr "Konnte '%s' nicht lesen."
#: builtin/rebase.c:277
-#, fuzzy, c-format
+#, c-format
msgid "Cannot store %s"
-msgstr "kann %s nicht speichern"
+msgstr "Kann %s nicht speichern."
#: builtin/rebase.c:337
msgid ""
"Resolve all conflicts manually, mark them as resolved with\n"
"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
"You can instead skip this commit: run \"git rebase --skip\".\n"
"To abort and get back to the state before \"git rebase\", run \"git rebase --"
"abort\"."
@@ -15279,191 +15258,174 @@ msgstr ""
"\"git add/rm <konfliktbehaftete_Dateien>\" und führen Sie dann\n"
"\"git rebase --continue\" aus.\n"
"Sie können auch stattdessen diesen Commit auslassen, indem\n"
"Sie \"git rebase --skip\" ausführen.\n"
"Um abzubrechen und zurück zum Zustand vor \"git rebase\" zu gelangen,\n"
"führen Sie \"git rebase --abort\" aus."
#: builtin/rebase.c:561
-#, fuzzy
msgid "could not determine HEAD revision"
-msgstr "Konnte HEAD nicht loslösen"
+msgstr "Konnte HEAD-Commit nicht bestimmen."
#: builtin/rebase.c:753
-#, fuzzy, c-format
+#, c-format
msgid ""
"%s\n"
"Please specify which branch you want to rebase against.\n"
"See git-rebase(1) for details.\n"
"\n"
" git rebase '<branch>'\n"
"\n"
msgstr ""
-"Bitte geben Sie den Branch an, gegen welchen Sie \"rebase\" ausführen "
-"möchten."
+"%s\n"
+"Bitte geben Sie den Branch an, gegen welchen Sie \"rebase\" ausführen möchten.\n"
+"Siehe git-rebase(1) für Details.\n"
+"\n"
+" git rebase '<Branch>'\n"
+"\n"
#: builtin/rebase.c:769
-#, fuzzy, c-format
+#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
"\n"
" git branch --set-upstream-to=%s/<branch> %s\n"
"\n"
msgstr ""
-"Wenn Sie Tracking-Informationen für diesen Branch setzen möchten, können "
-"Sie\n"
-"dies tun mit:"
+"Wenn Sie Tracking-Informationen für diesen Branch setzen möchten,\n"
+"können Sie dies tun mit:\n"
+"\n"
+" git branch --set-upstream-to=%s/<Branch> %s\n"
+"\n"
#: builtin/rebase.c:832
-#, fuzzy
msgid "rebase onto given branch instead of upstream"
-msgstr "Branch %s kann nicht sein eigener Upstream-Branch sein."
+msgstr "Rebase auf angegebenen Branch anstelle des Upstream-Branches ausführen"
#: builtin/rebase.c:834
-#, fuzzy
msgid "allow pre-rebase hook to run"
-msgstr "Der \"pre-rebase hook\" hat den Rebase zurückgewiesen."
+msgstr "Ausführung des pre-rebase-Hooks erlauben"
#: builtin/rebase.c:836
msgid "be quiet. implies --no-stat"
-msgstr ""
+msgstr "weniger Ausgaben (impliziert --no-stat)"
#: builtin/rebase.c:839
msgid "display a diffstat of what changed upstream"
-msgstr ""
+msgstr "Zusammenfassung der Unterschiede gegenüber dem Upstream-Branch anzeigen"
#: builtin/rebase.c:842
-#, fuzzy
msgid "do not show diffstat of what changed upstream"
-msgstr "keine Zusammenfassung der Unterschiede am Schluss des Merges anzeigen"
+msgstr "Zusammenfassung der Unterschiede gegenüber dem Upstream-Branch verbergen"
#: builtin/rebase.c:845
-#, fuzzy
msgid "add a Signed-off-by: line to each commit"
-msgstr "der Commit-Beschreibung eine Signed-off-by Zeile hinzufügen"
+msgstr "eine \"Signed-off-by:\"-Zeile zu jedem Commit hinzufügen"
#: builtin/rebase.c:847 builtin/rebase.c:851 builtin/rebase.c:853
msgid "passed to 'git am'"
-msgstr ""
+msgstr "an 'git am' übergeben"
#: builtin/rebase.c:855 builtin/rebase.c:857
-#, fuzzy
msgid "passed to 'git apply'"
-msgstr "an git-apply übergeben"
+msgstr "an 'git apply' übergeben"
#: builtin/rebase.c:859 builtin/rebase.c:862
msgid "cherry-pick all commits, even if unchanged"
-msgstr ""
+msgstr "Cherry-Pick auf alle Commits ausführen, auch wenn diese unverändert sind"
#: builtin/rebase.c:864
-#, fuzzy
msgid "continue"
-msgstr "Rebase fortsetzen"
+msgstr "fortsetzen"
#: builtin/rebase.c:867
-#, fuzzy
msgid "skip current patch and continue"
-msgstr "den aktuellen Patch auslassen"
+msgstr "den aktuellen Patch auslassen und fortfahren"
#: builtin/rebase.c:869
-#, fuzzy
msgid "abort and check out the original branch"
-msgstr ""
-" (benutzen Sie \"git rebase --abort\", um den ursprünglichen Branch "
-"auszuchecken)"
+msgstr "abbrechen und den ursprünglichen Branch auschecken"
#: builtin/rebase.c:872
-#, fuzzy
msgid "abort but keep HEAD where it is"
-msgstr "Patch-Operation abbrechen, aber HEAD an aktueller Stelle belassen"
+msgstr "abbrechen, aber HEAD an aktueller Stelle belassen"
#: builtin/rebase.c:873
-#, fuzzy
msgid "edit the todo list during an interactive rebase"
-msgstr ""
-"Die --edit-todo Aktion kann nur während eines interaktiven Rebase verwendet "
-"werden."
+msgstr "TODO-Liste während eines interaktiven Rebase bearbeiten"
#: builtin/rebase.c:876
-#, fuzzy
msgid "show the patch file being applied or merged"
-msgstr "den Patch, der gerade angewendet wird, anzeigen"
+msgstr "den Patch, der gerade angewendet oder zusammengeführt wird, anzeigen"
#: builtin/rebase.c:879
-#, fuzzy
msgid "use merging strategies to rebase"
-msgstr "zu verwendende Merge-Strategie"
+msgstr "Merge-Strategien beim Rebase verwenden"
#: builtin/rebase.c:883
msgid "let the user edit the list of commits to rebase"
-msgstr ""
+msgstr "den Benutzer die Liste der Commits für den Rebase bearbeiten lassen"
#: builtin/rebase.c:887
msgid "try to recreate merges instead of ignoring them"
-msgstr ""
+msgstr "versuchen, Merges wiederherzustellen anstatt sie zu ignorieren"
#: builtin/rebase.c:891
msgid "allow rerere to update index with resolved conflict"
-msgstr ""
+msgstr "Rerere erlauben, den Index mit dem aufgelöstem Konflikt zu aktualisieren"
#: builtin/rebase.c:894
-#, fuzzy
msgid "preserve empty commits during rebase"
-msgstr "ursprüngliche, leere Commits erhalten"
+msgstr "leere Commits während des Rebase erhalten"
#: builtin/rebase.c:896
msgid "move commits that begin with squash!/fixup! under -i"
-msgstr ""
+msgstr "bei -i Commits verschieben, die mit squash!/fixup! beginnen"
#: builtin/rebase.c:902
-#, fuzzy
msgid "automatically stash/stash pop before and after"
-msgstr "automatischer Stash/Stash-Pop vor und nach eines Rebase"
+msgstr "automatischer Stash/Stash-Pop davor und danach"
#: builtin/rebase.c:904
msgid "add exec lines after each commit of the editable list"
-msgstr ""
+msgstr "exec-Zeilen nach jedem Commit der editierbaren Liste hinzufügen"
#: builtin/rebase.c:908
-#, fuzzy
msgid "allow rebasing commits with empty messages"
-msgstr "Commits mit leerer Beschreibung erlauben"
+msgstr "Rebase von Commits mit leerer Beschreibung erlauben"
#: builtin/rebase.c:911
msgid "try to rebase merges instead of skipping them"
-msgstr ""
+msgstr "versuchen, Rebase mit Merges auszuführen, anstatt diese zu überspringen"
#: builtin/rebase.c:914
-#, fuzzy
msgid "use 'merge-base --fork-point' to refine upstream"
-msgstr "git merge-base --fork-point <Referenz> [<Commit>]"
+msgstr "'git merge-base --fork-point' benutzen, um Upstream-Branch zu bestimmen"
#: builtin/rebase.c:916
-#, fuzzy
msgid "use the given merge strategy"
-msgstr "Option für Merge-Strategie"
+msgstr "angegebene Merge-Strategie verwenden"
#: builtin/rebase.c:918 builtin/revert.c:111
msgid "option"
msgstr "Option"
#: builtin/rebase.c:919
msgid "pass the argument through to the merge strategy"
-msgstr ""
+msgstr "Argument zur Merge-Strategie durchreichen"
#: builtin/rebase.c:922
-#, fuzzy
msgid "rebase all reachable commits up to the root(s)"
-msgstr "alle nicht erreichbaren Objekte von der Objektdatenbank entfernen"
+msgstr "Rebase auf alle erreichbaren Commits bis zum Root-Commit ausführen"
#: builtin/rebase.c:938
-#, fuzzy, c-format
+#, c-format
msgid "could not exec %s"
-msgstr "konnte %s nicht parsen"
+msgstr "Konnte 'exec %s' nicht ausführen."
#: builtin/rebase.c:956 git-legacy-rebase.sh:213
msgid "It looks like 'git am' is in progress. Cannot rebase."
msgstr "'git-am' scheint im Gange zu sein. Kann Rebase nicht durchführen."
#: builtin/rebase.c:997 git-legacy-rebase.sh:395
msgid "No rebase in progress?"
msgstr "Kein Rebase im Gange?"
@@ -15482,262 +15444,242 @@ msgstr "Kann HEAD nicht lesen"
msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
msgstr ""
"Sie müssen alle Merge-Konflikte editieren und diese dann\n"
"mittels \"git add\" als aufgelöst markieren"
#: builtin/rebase.c:1047
-#, fuzzy
msgid "could not discard worktree changes"
-msgstr "Kann Änderungen im Arbeitsverzeichnis nicht löschen"
+msgstr "Konnte Änderungen im Arbeitsverzeichnis nicht verwerfen."
#: builtin/rebase.c:1066
-#, fuzzy, c-format
+#, c-format
msgid "could not move back to %s"
-msgstr "Konnte nicht zu $head_name zurückgehen"
+msgstr "Konnte nicht zu %s zurückgehen."
#: builtin/rebase.c:1077 builtin/rm.c:368
#, c-format
msgid "could not remove '%s'"
msgstr "Konnte '%s' nicht löschen"
#: builtin/rebase.c:1103
-#, fuzzy, c-format
+#, c-format
msgid ""
"It seems that there is already a %s directory, and\n"
"I wonder if you are in the middle of another rebase. If that is the\n"
"case, please try\n"
"\t%s\n"
"If that is not the case, please\n"
"\t%s\n"
"and run me again. I am stopping in case you still have something\n"
"valuable there.\n"
msgstr ""
-"Es sieht so aus, als ob es das Verzeichnis $state_dir_base bereits gibt\n"
+"Es sieht so aus, als ob es das Verzeichnis %s bereits gibt\n"
"und es könnte ein anderer Rebase im Gange sein. Wenn das der Fall ist,\n"
"probieren Sie bitte\n"
-"\t$cmd_live_rebase\n"
+"\t%s\n"
"Wenn das nicht der Fall ist, probieren Sie bitte\n"
-"\t$cmd_clear_stale_rebase\n"
+"\t%s\n"
"und führen Sie diesen Befehl nochmal aus. Es wird angehalten, falls noch\n"
-"etwas Schützenswertes vorhanden ist."
+"etwas Schützenswertes vorhanden ist.\n"
#: builtin/rebase.c:1124
-#, fuzzy
msgid "switch `C' expects a numerical value"
-msgstr "Schalter '%c' erwartet einen numerischen Wert"
+msgstr "Schalter `C' erwartet einen numerischen Wert."
#: builtin/rebase.c:1161
-#, fuzzy, c-format
+#, c-format
msgid "Unknown mode: %s"
-msgstr "Unbekannter --patch Modus: %s"
+msgstr "Unbekannter Modus: %s"
#: builtin/rebase.c:1183
msgid "--strategy requires --merge or --interactive"
-msgstr ""
+msgstr "--strategy erfordert --merge oder --interactive"
#: builtin/rebase.c:1226
#, c-format
msgid ""
"error: cannot combine interactive options (--interactive, --exec, --rebase-"
"merges, --preserve-merges, --keep-empty, --root + --onto) with am options "
"(%s)"
-msgstr ""
+msgstr "Fehler: 'interactive'-Optionen (--interactive, --exec, --rebase-merges, --preserve-merges, --keep-empty, --root + --onto ) können nicht mit 'am'-Optionen (%s) kombiniert werden."
#: builtin/rebase.c:1231
-#, fuzzy, c-format
+#, c-format
msgid ""
"error: cannot combine merge options (--merge, --strategy, --strategy-option) "
"with am options (%s)"
-msgstr ""
-"Fehler: '--rebase-merges' und '--strategy-option' können nicht kombiniert "
-"werden."
+msgstr "Fehler: 'merge'-Optionen (--merge, --strategy, --strategy-option) können nicht mit 'am'-Optionen (%s) kombiniert werden."
#: builtin/rebase.c:1251 git-legacy-rebase.sh:536
-#, fuzzy
msgid "error: cannot combine '--preserve-merges' with '--rebase-merges'"
-msgstr ""
-"Fehler: '--preserve-merges' und '--rebase-merges' können nicht kombiniert "
-"werden."
+msgstr "Fehler: '--preserve-merges' und '--rebase-merges' können nicht kombiniert werden."
#: builtin/rebase.c:1256 git-legacy-rebase.sh:542
-#, fuzzy
msgid "error: cannot combine '--rebase-merges' with '--strategy-option'"
msgstr ""
"Fehler: '--rebase-merges' und '--strategy-option' können nicht kombiniert "
"werden."
#: builtin/rebase.c:1259 git-legacy-rebase.sh:544
-#, fuzzy
msgid "error: cannot combine '--rebase-merges' with '--strategy'"
msgstr ""
"Fehler: '--rebase-merges' und '--strategy' können nicht kombiniert werden."
#: builtin/rebase.c:1283
-#, fuzzy, c-format
+#, c-format
msgid "invalid upstream '%s'"
-msgstr "Ungültiger Pfad '%s'"
+msgstr "Ungültiger Upstream '%s'"
#: builtin/rebase.c:1289
-#, fuzzy
msgid "Could not create new root commit"
-msgstr "Konnte neu erstellten Commit nicht analysieren."
+msgstr "Konnte neuen Root-Commit nicht erstellen."
#: builtin/rebase.c:1307
-#, fuzzy, c-format
+#, c-format
msgid "'%s': need exactly one merge base"
-msgstr "Brauche genau einen Commit-Bereich."
+msgstr "'%s': benötige genau eine Merge-Basis"
#: builtin/rebase.c:1314
-#, fuzzy, c-format
+#, c-format
msgid "Does not point to a valid commit '%s'"
-msgstr "$onto_name zeigt auf keinen gültigen Commit"
+msgstr "'%s' zeigt auf keinen gültigen Commit."
#: builtin/rebase.c:1339
-#, fuzzy, c-format
+#, c-format
msgid "fatal: no such branch/commit '%s'"
-msgstr "fatal: Branch/Commit '$branch_name' nicht gefunden"
+msgstr "fatal: Branch/Commit '%s' nicht gefunden"
#: builtin/rebase.c:1347 builtin/submodule--helper.c:37
#: builtin/submodule--helper.c:1930
#, c-format
msgid "No such ref: %s"
msgstr "Referenz nicht gefunden: %s"
#: builtin/rebase.c:1359
-#, fuzzy
msgid "Could not resolve HEAD to a revision"
-msgstr "Konnte HEAD-Commit nicht auflösen."
+msgstr "Konnte HEAD zu keinem Commit auflösen."
#: builtin/rebase.c:1399 git-legacy-rebase.sh:665
msgid "Cannot autostash"
msgstr "Kann automatischen Stash nicht erzeugen."
#: builtin/rebase.c:1402
-#, fuzzy, c-format
+#, c-format
msgid "Unexpected stash response: '%s'"
-msgstr "Unerwartetes wanted-ref: '%s'"
+msgstr "Unerwartete 'stash'-Antwort: '%s'"
#: builtin/rebase.c:1408
-#, fuzzy, c-format
+#, c-format
msgid "Could not create directory for '%s'"
-msgstr "Konnte Verzeichnis '%s' nicht erstellen."
+msgstr "Konnte Verzeichnis für '%s' nicht erstellen."
#: builtin/rebase.c:1411
-#, fuzzy, c-format
+#, c-format
msgid "Created autostash: %s\n"
-msgstr "Automatischen Stash erzeugt: $stash_abbrev"
+msgstr "Automatischen Stash erzeugt: %s\n"
#: builtin/rebase.c:1414
-#, fuzzy
msgid "could not reset --hard"
-msgstr "Konnte orig-head nicht lesen."
+msgstr "Konnte 'reset --hard' nicht ausführen."
#: builtin/rebase.c:1415 builtin/reset.c:113
#, c-format
msgid "HEAD is now at %s"
msgstr "HEAD ist jetzt bei %s"
#: builtin/rebase.c:1431 git-legacy-rebase.sh:674
msgid "Please commit or stash them."
msgstr "Bitte committen Sie die Änderungen oder benutzen Sie \"stash\"."
#: builtin/rebase.c:1458
-#, fuzzy, c-format
+#, c-format
msgid "could not parse '%s'"
-msgstr "konnte %s nicht parsen"
+msgstr "Konnte '%s' nicht parsen."
#: builtin/rebase.c:1470
-#, fuzzy, c-format
+#, c-format
msgid "could not switch to %s"
-msgstr "Konnte nicht nach '%s' schreiben."
+msgstr "Konnte nicht zu %s wechseln."
#: builtin/rebase.c:1481 git-legacy-rebase.sh:697
#, sh-format
msgid "HEAD is up to date."
msgstr "HEAD ist aktuell."
#: builtin/rebase.c:1483
-#, fuzzy, c-format
+#, c-format
msgid "Current branch %s is up to date.\n"
-msgstr "Aktueller Branch $branch_name ist auf dem neuesten Stand."
+msgstr "Aktueller Branch %s ist auf dem neuesten Stand.\n"
#: builtin/rebase.c:1491 git-legacy-rebase.sh:707
#, sh-format
msgid "HEAD is up to date, rebase forced."
msgstr "HEAD ist aktuell, Rebase erzwungen."
#: builtin/rebase.c:1493
-#, fuzzy, c-format
+#, c-format
msgid "Current branch %s is up to date, rebase forced.\n"
-msgstr ""
-"Aktueller Branch $branch_name ist auf dem neuesten Stand, Rebase erzwungen."
+msgstr "Aktueller Branch %s ist auf dem neuesten Stand, Rebase erzwungen.\n"
#: builtin/rebase.c:1501 git-legacy-rebase.sh:208
msgid "The pre-rebase hook refused to rebase."
msgstr "Der \"pre-rebase hook\" hat den Rebase zurückgewiesen."
#: builtin/rebase.c:1508
-#, fuzzy, c-format
+#, c-format
msgid "Changes to %s:\n"
-msgstr "Änderungen von $mb zu $onto:"
+msgstr "Änderungen zu %s:\n"
#: builtin/rebase.c:1511
-#, fuzzy, c-format
+#, c-format
msgid "Changes from %s to %s:\n"
-msgstr "Änderungen von $mb zu $onto:"
+msgstr "Änderungen von %s zu %s:\n"
#: builtin/rebase.c:1536
-#, fuzzy, c-format
+#, c-format
msgid "First, rewinding head to replay your work on top of it...\n"
-msgstr ""
-"Zunächst wird der Branch zurückgespult, um Ihre Änderungen\n"
-"darauf neu anzuwenden ..."
+msgstr "Zunächst wird der Branch zurückgespult, um Ihre Änderungen darauf neu anzuwenden...\n"
#: builtin/rebase.c:1543
-#, fuzzy
msgid "Could not detach HEAD"
-msgstr "Konnte HEAD nicht loslösen"
+msgstr "Konnte HEAD nicht loslösen."
#: builtin/rebase.c:1552
-#, fuzzy, c-format
+#, c-format
msgid "Fast-forwarded %s to %s.\n"
-msgstr "Spule vor zu $sha1"
+msgstr "Spule %s vor zu %s.\n"
#: builtin/rebase--interactive.c:24
-#, fuzzy
msgid "no HEAD?"
msgstr "Kein HEAD?"
#: builtin/rebase--interactive.c:51
-#, fuzzy, c-format
+#, c-format
msgid "could not create temporary %s"
-msgstr "konnte temporäre Datei nicht erstellen"
+msgstr "Konnte temporäres Verzeichnis '%s' nicht erstellen."
#: builtin/rebase--interactive.c:57
-#, fuzzy
msgid "could not mark as interactive"
-msgstr "Konnte nicht als interaktiven Rebase markieren."
+msgstr "Markierung auf interaktiven Rebase fehlgeschlagen."
#: builtin/rebase--interactive.c:101
-#, fuzzy, c-format
+#, c-format
msgid "could not open %s"
-msgstr "Konnte '%s' nicht öffnen"
+msgstr "Konnte '%s' nicht öffnen."
#: builtin/rebase--interactive.c:114
-#, fuzzy
msgid "could not generate todo list"
msgstr "Konnte TODO-Liste nicht erzeugen."
#: builtin/rebase--interactive.c:129
-#, fuzzy
msgid "git rebase--interactive [<options>]"
-msgstr "git rebase--helper [<Optionen>]"
+msgstr "git rebase--interactive [<Optionen>]"
#: builtin/rebase--interactive.c:148
msgid "keep empty commits"
msgstr "leere Commits behalten"
#: builtin/rebase--interactive.c:150 builtin/revert.c:124
msgid "allow commits with empty messages"
msgstr "Commits mit leerer Beschreibung erlauben"
@@ -15747,41 +15689,37 @@ msgid "rebase merge commits"
msgstr "Rebase auf Merge-Commits ausführen"
#: builtin/rebase--interactive.c:153
msgid "keep original branch points of cousins"
msgstr "originale Branch-Punkte der Cousins behalten"
#: builtin/rebase--interactive.c:155
msgid "move commits that begin with squash!/fixup!"
-msgstr ""
+msgstr "Commits verschieben, die mit squash!/fixup! beginnen"
#: builtin/rebase--interactive.c:156
-#, fuzzy
msgid "sign commits"
-msgstr "Commits mit GPG signieren"
+msgstr "Commits signieren"
#: builtin/rebase--interactive.c:158
msgid "continue rebase"
msgstr "Rebase fortsetzen"
#: builtin/rebase--interactive.c:160
-#, fuzzy
msgid "skip commit"
-msgstr "Commit"
+msgstr "Commit auslassen"
#: builtin/rebase--interactive.c:161
-#, fuzzy
msgid "edit the todo list"
-msgstr "die TODO-Liste prüfen"
+msgstr "die TODO-Liste bearbeiten"
#: builtin/rebase--interactive.c:163
-#, fuzzy
msgid "show the current patch"
-msgstr "den aktuellen Patch auslassen"
+msgstr "den aktuellen Patch anzeigen"
#: builtin/rebase--interactive.c:166
msgid "shorten commit ids in the todo list"
msgstr "Commit-IDs in der TODO-Liste verkürzen"
#: builtin/rebase--interactive.c:168
msgid "expand commit ids in the todo list"
msgstr "Commit-IDs in der TODO-Liste erweitern"
@@ -15795,104 +15733,89 @@ msgid "rearrange fixup/squash lines"
msgstr "fixup/squash-Zeilen umordnen"
#: builtin/rebase--interactive.c:174
msgid "insert exec commands in todo list"
msgstr "\"exec\"-Befehle in TODO-Liste einfügen"
#: builtin/rebase--interactive.c:175
msgid "onto"
-msgstr ""
+msgstr "auf"
#: builtin/rebase--interactive.c:177
-#, fuzzy
msgid "restrict-revision"
-msgstr "Commit"
+msgstr "Begrenzungscommit"
#: builtin/rebase--interactive.c:177
-#, fuzzy
msgid "restrict revision"
-msgstr "Commit"
+msgstr "Begrenzungscommit"
#: builtin/rebase--interactive.c:178
-#, fuzzy
msgid "squash-onto"
-msgstr "squash-onto schreiben"
+msgstr "squash-onto"
#: builtin/rebase--interactive.c:179
-#, fuzzy
msgid "squash onto"
-msgstr "squash-onto schreiben"
+msgstr "squash onto"
#: builtin/rebase--interactive.c:181
-#, fuzzy
msgid "the upstream commit"
-msgstr "Informationen zum Upstream-Branch entfernen"
+msgstr "der Upstream-Commit"
#: builtin/rebase--interactive.c:182
-#, fuzzy
msgid "head-name"
-msgstr "umbenennen"
+msgstr "head-Name"
#: builtin/rebase--interactive.c:182
-#, fuzzy
msgid "head name"
-msgstr "voraus "
+msgstr "head-Name"
#: builtin/rebase--interactive.c:187
-#, fuzzy
msgid "rebase strategy"
-msgstr "Merge-Strategie"
+msgstr "Rebase-Strategie"
#: builtin/rebase--interactive.c:188
-#, fuzzy
msgid "strategy-opts"
-msgstr "Strategie"
+msgstr "Strategie-Optionen"
#: builtin/rebase--interactive.c:189
-#, fuzzy
msgid "strategy options"
-msgstr "decorate-Optionen"
+msgstr "Strategie-Optionen"
#: builtin/rebase--interactive.c:190
msgid "switch-to"
-msgstr ""
+msgstr "wechseln zu"
#: builtin/rebase--interactive.c:191
-#, fuzzy
msgid "the branch or commit to checkout"
-msgstr "einzelnen Commit zu einem ausgecheckten CSV-Repository exportieren"
+msgstr "der Branch oder Commit zum Auschecken"
#: builtin/rebase--interactive.c:192
-#, fuzzy
msgid "onto-name"
-msgstr "Name"
+msgstr "onto-Name"
#: builtin/rebase--interactive.c:192
-#, fuzzy
msgid "onto name"
-msgstr "Name des Remote-Repositories"
+msgstr "onto-Name"
#: builtin/rebase--interactive.c:193
-#, fuzzy
msgid "cmd"
-msgstr "Programm"
+msgstr "Befehl"
#: builtin/rebase--interactive.c:193
-#, fuzzy
msgid "the command to run"
-msgstr "Keine Befehle ausgeführt."
+msgstr "auszuführender Befehl"
#: builtin/rebase--interactive.c:220
msgid "--[no-]rebase-cousins has no effect without --rebase-merges"
msgstr "--[no-]rebase-cousins hat ohne --rebase-merges keine Auswirkung"
#: builtin/rebase--interactive.c:226
msgid "a base commit must be provided with --upstream or --onto"
-msgstr ""
+msgstr "Ein Basis-Commit muss mit --upstream oder --onto angegeben werden."
#: builtin/receive-pack.c:33
msgid "git receive-pack <git-dir>"
msgstr "git receive-pack <Git-Verzeichnis>"
#: builtin/receive-pack.c:830
msgid ""
"By default, updating the current branch in a non-bare repository\n"
@@ -16121,19 +16044,19 @@ msgstr "Konnte Fetch-Map für Refspec %s nicht bekommen"
msgid "(matching)"
msgstr "(übereinstimmend)"
#: builtin/remote.c:455
msgid "(delete)"
msgstr "(lösche)"
#: builtin/remote.c:629 builtin/remote.c:765 builtin/remote.c:864
-#, fuzzy, c-format
+#, c-format
msgid "No such remote: '%s'"
-msgstr "Kein solches Remote-Repository '%s'"
+msgstr "Kein solches Remote-Repository: '%s'"
#: builtin/remote.c:646
#, c-format
msgid "Could not rename config section '%s' to '%s'"
msgstr "Konnte Sektion '%s' in Konfiguration nicht nach '%s' umbenennen"
#: builtin/remote.c:666
#, c-format
@@ -16519,19 +16442,18 @@ msgstr "git-update-server-info nicht ausführen"
msgid "pass --local to git-pack-objects"
msgstr "--local an git-pack-objects übergeben"
#: builtin/repack.c:310
msgid "write bitmap index"
msgstr "Bitmap-Index schreiben"
#: builtin/repack.c:312
-#, fuzzy
msgid "pass --delta-islands to git-pack-objects"
-msgstr "--local an git-pack-objects übergeben"
+msgstr "--delta-islands an git-pack-objects übergeben"
#: builtin/repack.c:313
msgid "approxidate"
msgstr "Datumsangabe"
#: builtin/repack.c:314
msgid "with -A, do not loosen objects older than this"
msgstr "mit -A, keine Objekte älter als dieses Datum löschen"
@@ -16842,22 +16764,22 @@ msgid "git rerere [clear | forget <path>... | status | remaining | diff | gc]"
msgstr "git rerere [clean | forget <Pfad>... | status | remaining | diff | gc]"
#: builtin/rerere.c:60
msgid "register clean resolutions in index"
msgstr "saubere Auflösungen im Index registrieren"
#: builtin/rerere.c:79
msgid "'git rerere forget' without paths is deprecated"
-msgstr ""
+msgstr "'git rerere forget' ohne Pfade ist veraltet."
#: builtin/rerere.c:111
-#, fuzzy, c-format
+#, c-format
msgid "unable to generate diff for '%s'"
-msgstr "Fehler beim Generieren des Diffs."
+msgstr "Konnte kein Diff für '%s' generieren."
#: builtin/reset.c:31
msgid ""
"git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]"
msgstr ""
"git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<Commit>]"
#: builtin/reset.c:32
@@ -16971,16 +16893,21 @@ msgstr "Nicht zum Commit vorgemerkte Änderungen nach Zurücksetzung:"
#: builtin/reset.c:390
#, c-format
msgid ""
"\n"
"It took %.2f seconds to enumerate unstaged changes after reset. You can\n"
"use '--quiet' to avoid this. Set the config setting reset.quiet to true\n"
"to make this the default.\n"
msgstr ""
+"\n"
+"Es dauerte %.2f Sekunden, um über die nach einem Reset nicht zum Commit\n"
+"vorgemerkten Änderungen zu zählen. Sie können '--quiet' benutzen, um\n"
+"das zu verhindern. Setzen Sie die Konfigurationseinstellung reset.quiet\n"
+"auf \"true\", um das zum Standard zu machen.\n"
#: builtin/reset.c:400
#, c-format
msgid "Could not reset index file to revision '%s'."
msgstr "Konnte Index-Datei nicht zu Commit '%s' setzen."
#: builtin/reset.c:404
msgid "Could not write new index file."
@@ -17546,24 +17473,23 @@ msgstr ""
msgid "Recurse into nested submodules"
msgstr "Rekursion in verschachtelte Submodule durchführen"
#: builtin/submodule--helper.c:568
msgid "git submodule--helper foreach [--quiet] [--recursive] <command>"
msgstr "git submodule--helper foreach [--quiet] [--recursive] <Befehl>"
#: builtin/submodule--helper.c:595
-#, fuzzy, c-format
+#, c-format
msgid ""
"could not look up configuration '%s'. Assuming this repository is its own "
"authoritative upstream."
msgstr ""
-"Konnte Konfiguration '%s' nicht nachschlagen. Nehme an, dass dieses "
-"Repository\n"
-"sein eigenes verbindliches Upstream-Repository ist."
+"Konnte Konfiguration '%s' nicht nachschlagen. Nehme an, dass dieses\n"
+"Repository sein eigenes verbindliches Upstream-Repository ist."
#: builtin/submodule--helper.c:663
#, c-format
msgid "Failed to register url for submodule path '%s'"
msgstr ""
"Fehler beim Eintragen der URL für Submodul-Pfad '%s' in die Konfiguration."
#: builtin/submodule--helper.c:667
@@ -17768,28 +17694,24 @@ msgid "clone of '%s' into submodule path '%s' failed"
msgstr "Klonen von '%s' in Submodul-Pfad '%s' fehlgeschlagen"
#: builtin/submodule--helper.c:1433
#, c-format
msgid "could not get submodule directory for '%s'"
msgstr "Konnte Submodul-Verzeichnis '%s' nicht finden."
#: builtin/submodule--helper.c:1469
-#, fuzzy, c-format
+#, c-format
msgid "Invalid update mode '%s' for submodule path '%s'"
-msgstr ""
-"Fehler bei Änderung des Aktualisierungsmodus für Submodul-Pfad '%s' in der\n"
-"Konfiguration."
+msgstr "Ungültiger Aktualisierungsmodus '%s' für Submodul-Pfad '%s'."
#: builtin/submodule--helper.c:1473
-#, fuzzy, c-format
+#, c-format
msgid "Invalid update mode '%s' configured for submodule path '%s'"
-msgstr ""
-"Fehler bei Änderung des Aktualisierungsmodus für Submodul-Pfad '%s' in der\n"
-"Konfiguration."
+msgstr "Ungültiger Aktualisierungsmodus '%s' für Submodul-Pfad '%s' konfiguriert."
#: builtin/submodule--helper.c:1566
#, c-format
msgid "Submodule path '%s' not initialized"
msgstr "Submodul-Pfad '%s' nicht initialisiert"
#: builtin/submodule--helper.c:1570
msgid "Maybe you want to use 'update --init'?"
@@ -17862,48 +17784,44 @@ msgstr "Fehlerhafter Wert für --update Parameter"
msgid ""
"Submodule (%s) branch configured to inherit branch from superproject, but "
"the superproject is not on any branch"
msgstr ""
"Branch von Submodul (%s) ist konfiguriert, den Branch des Hauptprojektes\n"
"zu erben, aber das Hauptprojekt befindet sich auf keinem Branch."
#: builtin/submodule--helper.c:2057
-#, fuzzy, c-format
+#, c-format
msgid "could not get a repository handle for submodule '%s'"
-msgstr "konnte Name für Submodul '%s' nicht nachschlagen"
+msgstr "Konnte kein Repository-Handle für Submodul '%s' erhalten."
#: builtin/submodule--helper.c:2090
msgid "recurse into submodules"
msgstr "Rekursion in Submodule durchführen"
#: builtin/submodule--helper.c:2096
msgid "git submodule--helper embed-git-dir [<path>...]"
msgstr "git submodule--helper embed-git-dir [<Pfad>...]"
#: builtin/submodule--helper.c:2152
msgid "check if it is safe to write to the .gitmodules file"
-msgstr ""
+msgstr "prüfen, ob es sicher ist, in die Datei .gitmodules zu schreiben"
#: builtin/submodule--helper.c:2157
-#, fuzzy
msgid "git submodule--helper config name [value]"
-msgstr "git submodule--helper name <Pfad>"
+msgstr "git submodule--helper config name [Wert]"
#: builtin/submodule--helper.c:2158
-#, fuzzy
msgid "git submodule--helper config --check-writeable"
-msgstr "git submodule--helper init [<Pfad>]"
+msgstr "git submodule--helper config --check-writeable"
#: builtin/submodule--helper.c:2175 git-submodule.sh:169
-#, fuzzy, sh-format
+#, sh-format
msgid "please make sure that the .gitmodules file is in the working tree"
-msgstr ""
-"Bitte merken Sie Ihre Änderungen in .gitmodules zum Commit vor oder\n"
-"benutzen Sie \"stash\", um fortzufahren."
+msgstr "Bitte stellen Sie sicher, dass sich die Datei .gitmodules im Arbeitsverzeichnis befindet."
#: builtin/submodule--helper.c:2225
#, c-format
msgid "%s doesn't support --super-prefix"
msgstr "%s unterstützt kein --super-prefix"
#: builtin/submodule--helper.c:2231
#, c-format
@@ -18587,33 +18505,39 @@ msgid "expire working trees older than <time>"
msgstr "Arbeitsverzeichnisse älter als <Zeit> verfallen lassen"
#: builtin/worktree.c:234
#, c-format
msgid "'%s' already exists"
msgstr "'%s' existiert bereits"
#: builtin/worktree.c:251
-#, fuzzy, c-format
+#, c-format
msgid "unable to re-add worktree '%s'"
-msgstr "konnte \"Tree\"-Objekt (%s) nicht lesen"
+msgstr "Konnte Arbeitsverzeichnis '%s' nicht neu hinzufügen."
#: builtin/worktree.c:256
#, c-format
msgid ""
"'%s' is a missing but locked worktree;\n"
"use 'add -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear"
msgstr ""
+"'%s' ist ein fehlendes, aber gesperrtes Arbeitsverzeichnis;\n"
+"Benutzen Sie 'add -f -f' zum Überschrieben, oder 'unlock' und 'prune'\n"
+"oder 'remove' zum Löschen."
#: builtin/worktree.c:258
#, c-format
msgid ""
"'%s' is a missing but already registered worktree;\n"
"use 'add -f' to override, or 'prune' or 'remove' to clear"
msgstr ""
+"'%s' ist ein fehlendes, aber bereits registriertes Arbeitsverzeichnis;\n"
+"Benutzen Sie 'add -f' zum Überschreiben, oder 'prune' oder 'remove' zum\n"
+"Löschen."
#: builtin/worktree.c:309
#, c-format
msgid "could not create directory of '%s'"
msgstr "Konnte Verzeichnis '%s' nicht erstellen."
#: builtin/worktree.c:428 builtin/worktree.c:434
#, c-format
@@ -18707,19 +18631,18 @@ msgstr "'%s' ist nicht gesperrt"
#: builtin/worktree.c:743
msgid "working trees containing submodules cannot be moved or removed"
msgstr ""
"Arbeitsverzeichnisse, die Submodule enthalten, können nicht verschoben oder\n"
"entfernt werden."
#: builtin/worktree.c:751
-#, fuzzy
msgid "force move even if worktree is dirty or locked"
-msgstr "Löschen erzwingen, auch wenn das Arbeitsverzeichnis geändert wurde"
+msgstr "Verschieben erzwingen, auch wenn das Arbeitsverzeichnis geändert oder gesperrt ist"
#: builtin/worktree.c:774 builtin/worktree.c:901
#, c-format
msgid "'%s' is a main working tree"
msgstr "'%s' ist ein Hauptarbeitsverzeichnis"
#: builtin/worktree.c:779
#, c-format
@@ -18727,28 +18650,33 @@ msgid "could not figure out destination name from '%s'"
msgstr "Konnte Zielname aus '%s' nicht bestimmen."
#: builtin/worktree.c:785
#, c-format
msgid "target '%s' already exists"
msgstr "Ziel '%s' existiert bereits."
#: builtin/worktree.c:793
-#, fuzzy, c-format
+#, c-format
msgid ""
"cannot move a locked working tree, lock reason: %s\n"
"use 'move -f -f' to override or unlock first"
-msgstr "Kann gesperrtes Arbeitsverzeichnis nicht verschieben, Sperrgrund: %s"
+msgstr ""
+"Kann kein gesperrtes Arbeitsverzeichnis verschieben, Sperrgrund: %s\n"
+"Benutzen Sie 'move -f -f' zum Überschreiben oder entsperren Sie zuerst\n"
+"das Arbeitsverzeichnis."
#: builtin/worktree.c:795
-#, fuzzy
msgid ""
"cannot move a locked working tree;\n"
"use 'move -f -f' to override or unlock first"
-msgstr "Kann gesperrtes Arbeitsverzeichnis nicht verschieben, Sperrgrund: %s"
+msgstr ""
+"Kann kein gesperrtes Arbeitsverzeichnis verschieben.\n"
+"Benutzen Sie 'move -f -f' zum Überschreiben oder entsperren Sie zuerst\n"
+"das Arbeitsverzeichnis."
#: builtin/worktree.c:798
#, c-format
msgid "validation failed, cannot move working tree: %s"
msgstr "Validierung fehlgeschlagen, kann Arbeitszeichnis nicht verschieben: %s"
#: builtin/worktree.c:803
#, c-format
@@ -18766,33 +18694,37 @@ msgid "'%s' is dirty, use --force to delete it"
msgstr "'%s' ist verändert, benutzen Sie --force zum Löschen"
#: builtin/worktree.c:860
#, c-format
msgid "failed to run 'git status' on '%s', code %d"
msgstr "Fehler beim Ausführen von 'git status' auf '%s'. Code: %d"
#: builtin/worktree.c:883
-#, fuzzy
msgid "force removal even if worktree is dirty or locked"
-msgstr "Löschen erzwingen, auch wenn das Arbeitsverzeichnis geändert wurde"
+msgstr "Löschen erzwingen, auch wenn das Arbeitsverzeichnis geändert oder gesperrt ist"
#: builtin/worktree.c:906
-#, fuzzy, c-format
+#, c-format
msgid ""
"cannot remove a locked working tree, lock reason: %s\n"
"use 'remove -f -f' to override or unlock first"
-msgstr "Kann gesperrtes Arbeitsverzeichnis nicht löschen, Sperrgrund: %s"
+msgstr ""
+"Kann kein gesperrtes Arbeitsverzeichnis löschen, Sperrgrund: %s\n"
+"Benutzen Sie 'remove -f -f' zum Überschreiben oder entsperren Sie zuerst\n"
+"das Arbeitsverzeichnis."
#: builtin/worktree.c:908
-#, fuzzy
msgid ""
"cannot remove a locked working tree;\n"
"use 'remove -f -f' to override or unlock first"
-msgstr "Kann gesperrtes Arbeitsverzeichnis nicht löschen, Sperrgrund: %s"
+msgstr ""
+"Kann kein gesperrtes Arbeitsverzeichnis löschen.\n"
+"Benutzen Sie 'remove -f -f' zum Überschreiben oder entsperren Sie zuerst\n"
+"das Arbeitsverzeichnis."
#: builtin/worktree.c:911
#, c-format
msgid "validation failed, cannot remove working tree: %s"
msgstr "Validierung fehlgeschlagen, kann Arbeitsverzeichnis nicht löschen: %s"
#: builtin/write-tree.c:14
msgid "git write-tree [--missing-ok] [--prefix=<prefix>/]"
@@ -18826,24 +18758,23 @@ msgstr ""
"\n"
"auszuführen."
#: credential-cache--daemon.c:271
msgid "print debugging messages to stderr"
msgstr "Meldungen zur Fehlersuche in Standard-Fehlerausgabe ausgeben"
#: t/helper/test-reach.c:152
-#, fuzzy, c-format
+#, c-format
msgid "commit %s is not marked reachable"
-msgstr "Commit %s hat keinen Eltern-Commit %d"
+msgstr "Commit %s ist nicht als erreichbar gekennzeichnet."
#: t/helper/test-reach.c:162
-#, fuzzy
msgid "too many commits marked reachable"
-msgstr "Zu viele Commits zum Schreiben des Graphen."
+msgstr "Zu viele Commits als erreichbar gekennzeichnet."
#: git.c:27
msgid ""
"git [--version] [--help] [-C <path>] [-c <name>=<value>]\n"
" [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]\n"
" [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--"
"bare]\n"
" [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]\n"
@@ -18900,17 +18831,17 @@ msgstr "Kein Verzeichnis für -C angegeben.\n"
#: git.c:300
#, c-format
msgid "unknown option: %s\n"
msgstr "Unbekannte Option: %s\n"
#: git.c:719
#, c-format
msgid "alias loop detected: expansion of '%s' does not terminate:%s"
-msgstr ""
+msgstr "Alias-Schleife erkannt: Erweiterung von '%s' schließt nicht ab:%s"
#: git.c:802
#, c-format
msgid "expansion of alias '%s' failed; '%s' is not a git command\n"
msgstr "Erweiterung von Alias '%s' fehlgeschlagen; '%s' ist kein Git-Befehl.\n"
#: git.c:814
#, c-format
@@ -18928,43 +18859,37 @@ msgstr "Kontrolle über Delegation wird mit cURL < 7.22.0 nicht unterstützt"
#: http.c:404
msgid "Public key pinning not supported with cURL < 7.44.0"
msgstr ""
"Das Anheften des öffentlichen Schlüssels wird mit cURL < 7.44.0\n"
"nicht unterstützt."
#: http.c:837
-#, fuzzy
msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0"
-msgstr ""
-"Das Anheften des öffentlichen Schlüssels wird mit cURL < 7.44.0\n"
-"nicht unterstützt."
+msgstr "CURLSSLOPT_NO_REVOKE wird mit cURL < 7.44.0 nicht unterstützt."
#: http.c:910
-#, fuzzy
msgid "Protocol restrictions not supported with cURL < 7.19.4"
-msgstr ""
-"Das Anheften des öffentlichen Schlüssels wird mit cURL < 7.44.0\n"
-"nicht unterstützt."
+msgstr "Protokollbeschränkungen werden mit cURL < 7.19.4 nicht unterstützt."
#: http.c:1046
#, c-format
msgid "Unsupported SSL backend '%s'. Supported SSL backends:"
-msgstr ""
+msgstr "Nicht unterstütztes SSL-Backend '%s'. Unterstützte SSL-Backends:"
#: http.c:1053
#, c-format
msgid "Could not set SSL backend to '%s': cURL was built without SSL backends"
-msgstr ""
+msgstr "Konnte SSL-Backend nicht zu '%s' setzen: cURL wurde ohne SSL-Backends gebaut."
#: http.c:1057
-#, fuzzy, c-format
+#, c-format
msgid "Could not set SSL backend to '%s': already set"
-msgstr "Konnte nicht zu $head_name zurückgehen"
+msgstr "Konnte SSL-Backend nicht zu '%s' setzen: bereits gesetzt"
#: http.c:1921
#, c-format
msgid ""
"unable to update url base from redirection:\n"
" asked for: %s\n"
" redirect: %s"
msgstr ""
@@ -19017,19 +18942,18 @@ msgstr "eine Serie von Patches von einer Mailbox anwenden"
msgid "Annotate file lines with commit information"
msgstr "Zeilen der Datei mit Commit-Informationen versehen und anzeigen"
#: command-list.h:53
msgid "Apply a patch to files and/or to the index"
msgstr "einen Patch auf Dateien und/oder den Index anwenden"
#: command-list.h:54
-#, fuzzy
msgid "Import a GNU Arch repository into Git"
-msgstr "ein Arch Repository in Git importieren"
+msgstr "ein GNU Arch Repository in Git importieren"
#: command-list.h:55
msgid "Create an archive of files from a named tree"
msgstr "Dateiarchiv von angegebenem Verzeichnis erstellen"
#: command-list.h:56
msgid "Use binary search to find the commit that introduced a bug"
msgstr ""
@@ -19105,19 +19029,18 @@ msgstr "ein Repository in einem neuen Verzeichnis klonen"
msgid "Display data in columns"
msgstr "Daten in Spalten anzeigen"
#: command-list.h:73
msgid "Record changes to the repository"
msgstr "Änderungen in das Repository eintragen"
#: command-list.h:74
-#, fuzzy
msgid "Write and verify Git commit-graph files"
-msgstr "Git Commit Graph-Dateien schreiben und überprüfen"
+msgstr "Git Commit-Graph-Dateien schreiben und überprüfen"
#: command-list.h:75
msgid "Create a new commit object"
msgstr "ein neues Commit-Objekt erstellen"
#: command-list.h:76
msgid "Get and set repository or global options"
msgstr "repositoryweite oder globale Optionen lesen oder setzen"
@@ -19337,19 +19260,18 @@ msgid "Run merge conflict resolution tools to resolve merge conflicts"
msgstr ""
"Ausführen von Tools zur Auflösung von Merge-Konflikten zur Behebung dieser"
#: command-list.h:127
msgid "Show three-way merge without touching index"
msgstr "3-Wege-Merge anzeigen ohne den Index zu verändern"
#: command-list.h:128
-#, fuzzy
msgid "Write and verify multi-pack-indexes"
-msgstr "Git Commit Graph-Dateien schreiben und überprüfen"
+msgstr "multi-pack-indexes schreiben und überprüfen"
#: command-list.h:129
msgid "Creates a tag object"
msgstr "ein Tag-Objekt erstellen"
#: command-list.h:130
msgid "Build a tree-object from ls-tree formatted text"
msgstr "Tree-Objekt aus ls-tree formattiertem Text erzeugen"
@@ -19980,19 +19902,19 @@ msgstr "Aktueller Branch $branch_name ist auf dem neuesten Stand."
#: git-legacy-rebase.sh:709
#, sh-format
msgid "Current branch $branch_name is up to date, rebase forced."
msgstr ""
"Aktueller Branch $branch_name ist auf dem neuesten Stand, Rebase erzwungen."
#: git-legacy-rebase.sh:723
-#, fuzzy, sh-format
+#, sh-format
msgid "Changes to $onto:"
-msgstr "Änderungen von $mb zu $onto:"
+msgstr "Änderungen zu $onto:"
#: git-legacy-rebase.sh:725
#, sh-format
msgid "Changes from $mb to $onto:"
msgstr "Änderungen von $mb zu $onto:"
#: git-legacy-rebase.sh:736
msgid "First, rewinding head to replay your work on top of it..."
@@ -21348,18 +21270,17 @@ msgstr "Unbekanntes --suppress-cc Feld: '%s'\n"
#: git-send-email.perl:497
#, perl-format
msgid "Unknown --confirm setting: '%s'\n"
msgstr "Unbekannte --confirm Einstellung: '%s'\n"
#: git-send-email.perl:525
#, perl-format
msgid "warning: sendmail alias with quotes is not supported: %s\n"
-msgstr ""
-"Warnung: sendemail Alias mit Anführungsstrichen wird nicht unterstützt: %s\n"
+msgstr "Warnung: sendemail-Alias mit Anführungszeichen wird nicht unterstützt: %s\n"
#: git-send-email.perl:527
#, perl-format
msgid "warning: `:include:` not supported: %s\n"
msgstr "Warnung: `:include:` wird nicht unterstützt: %s\n"
#: git-send-email.perl:529
#, perl-format
--
2.20.0.rc1.379.g1dd7ef354c
^ permalink raw reply related
* Re: How de-duplicate similar repositories with alternates
From: Jeff King @ 2018-12-04 6:59 UTC (permalink / raw)
To: Ævar Arnfjörð Bjarmason
Cc: git, Git for human beings, Christian Couder
In-Reply-To: <87zhtsx73l.fsf@evledraar.gmail.com>
On Thu, Nov 29, 2018 at 03:59:26PM +0100, Ævar Arnfjörð Bjarmason wrote:
> This is the thing I was wrong about, in retrospect probably because I'd
> been putting PATH_TO_REPO in objects/info/alternates, but we actually
> need PATH_TO_REPO/objects, and "git gc" won't warn about this (or "git
> fsck"). Probably a good idea to patch that at some point, i.e. whine
> about paths in alternates that don't have objects, or at the very least
> those that don't exist. #leftoverbits
We do complain about missing directories; see alt_odb_usable().
Pointing to a real directory that doesn't happen to contain any objects
is harder. If there are no loose objects, there might not be any hashed
object directories. For a "real" object database, there should always be
a "pack/" directory. But technically the object storage directory does
not even need to have that; it can just be a directory full of loose
objects that happens not to have any at this moment.
That said, I suspect if we issued a warning for "woah, it looks like
this doesn't have any objects in it, nor does it even have a pack
directory" that nobody would complain.
-Peff
^ permalink raw reply
* Re: How de-duplicate similar repositories with alternates
From: Jeff King @ 2018-12-04 7:06 UTC (permalink / raw)
To: Stefan Beller
Cc: Ævar Arnfjörð Bjarmason, git, git-users,
Christian Couder
In-Reply-To: <CAGZ79ka1sjU+rHctRP4SVMP0GQsK2iZghkU46=f96ugqvX5Neg@mail.gmail.com>
On Thu, Nov 29, 2018 at 10:55:49AM -0800, Stefan Beller wrote:
> On Thu, Nov 29, 2018 at 7:00 AM Ævar Arnfjörð Bjarmason
> <avarab@gmail.com> wrote:
> >
> > A co-worker asked me today how space could be saved when you have
> > multiple checkouts of the same repository (at different revs) on the
> > same machine. I said since these won't block-level de-duplicate well[1]
> > one way to do this is with alternates.
>
> Another way is to use git-worktree, which would solve the gc issues
> mentioned below?
>
> I view alternates as a historic artefact as the deduping
> of objects client side can be done using worktrees, and on the
> serverside - I think - most of the git hosters use namespaces
> and put a fork network into the same repository and use pack islands.
Nope, we definitely use alternates. The ref namespace support in Git is
not nearly complete enough to run a modern hosting site; it only kicks
in for upload-pack and receive-pack. Other commands (e.g., rev-list to
traverse for a history-view page) have no support at all. So we share
object storage, but not ref storage.
In theory the caller could namespace requests (e.g., the user asks for
"foo", the web site feeds "refs/forks/$id/refs/heads/foo" to git). But
any bugs are a lot more likely to lead to security problems (oops, you
accidentally wrote into somebody else's fork!). And ref storage has
traditionally been a sore point for scaling, so giving each fork its own
repo and refs helps break that up.
By contrast, object storage is pretty easy to share. It scales
reasonably well, and the security model is much simpler due to the
immutable nature of object names.
-Peff
^ permalink raw reply
* Re: [PATCH] rebase -i: introduce the 'test' command
From: Johannes Schindelin @ 2018-12-04 9:13 UTC (permalink / raw)
To: Jeff King; +Cc: Luc Van Oostenryck, Paul Morelle, Git Users
In-Reply-To: <20181203213134.GD8700@sigill.intra.peff.net>
Hi Peff,
On Mon, 3 Dec 2018, Jeff King wrote:
> On Mon, Dec 03, 2018 at 08:01:44PM +0100, Johannes Schindelin wrote:
>
> > > In this sort of situation, I often whish to be able to do nested rebases.
> > > Even more because it happen relatively often that I forget that I'm
> > > working in a rebase and not on the head, and then it's quite natural
> > > to me to type things like 'git rebase -i @^^^' while already rebasing.
> > > But I suppose this has already been discussed.
> >
> > Varieties of this have been discussed, but no, not nested rebases.
> >
> > The closest we thought about was re-scheduling the latest <n> commits,
> > which is now harder because of the `--rebase-merges` mode.
> >
> > But I think it would be doable. Your idea of a "nested" rebase actually
> > opens that door quite nicely. It would not *really* be a nested rebase,
> > and it would still only be possible in interactive mode, but I could
> > totally see
> >
> > git rebase --nested -i HEAD~3
> >
> > to generate and prepend the following lines to the `git-rebase-todo` file:
> >
> > reset abcdef01 # This is HEAD~3
> > pick abcdef02 # This is HEAD~2
> > pick abcdef03 # This is HEAD~
> > pick abcdef04 # This is HEAD
> >
> > (assuming that the latest 3 commits were non-merge commits; It would look
> > quite a bit more complicated in other situations.)
>
> Yeah, I would probably use that if it existed.
I kind of use it, even if it does not exist ;-)
> It would be nicer to have real nested sequencer operations, I think, for
> other situations.
I agree. But for the moment, our data format is too married to the exact
layout of .git/, thanks to `git rebase`'s evolution from a Unix shell
script.
Alban has this really great patch series to work on the todo list
in-memory, and that paves the way to decouple the entire sequencer thing
from the file system.
The most notably thing that still would need to be encapsulated would be
the options: currently, there is a plethora of inconsistent options files
being saved into the state directory (for some, the mere presence
indicates `true`, some contain `true` or `false`, others contain text,
etc).
> E.g., cherry-picking a sequence of commits while you're in the middle of
> a rebase.
You will be delighted to learn that you can cherry-pick a sequence of
commits in the middle of a rebase already. I do `exec git cherry-pick
<range>` *all* the time.
> But I suspect getting that right would be _loads_ more work, and
> probably would involve some funky UI corner cases to handle the stack of
> operations (so truly aborting a rebase may mean an arbitrary number of
> "rebase --abort" calls to pop the stack). Your suggestion is probably a
> reasonable trick in the meantime.
You know what is an even more reasonable trick? Worktrees.
I only thought about that this morning, but I should have mentioned it
right away, as I use it quite frequently.
When I have tricky nested rebases to perform, I do use throw-away
worktrees where I check out unnamed branches, work on those, and then
integrate them back into the "outer rebase" via the `reset` command in the
todo list.
Ciao,
Dscho
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox