* Re: generating format-patch options from an e-mail
From: Junio C Hamano @ 2012-12-26 20:35 UTC (permalink / raw)
To: Simon Oosthoek; +Cc: git
In-Reply-To: <20121226200623.GA29446@simaj.xs4all.nl>
Simon Oosthoek <s.oosthoek@xs4all.nl> writes:
> Hi all
>
> I've been very frustrated by the process to setup a commandline for git format-patch, to include everyone in the cc list and reply to the right message-id.
>
> In my frustration I created a perl script to generate the options from a saved e-mail, I realise that it may be non-general and perhaps it could be written better using a module which understands e-mails, but well, it worked for me ;-)
>
> Anyway, I could imagine this as optional flag of git format-patch, so you could say:
> $ git format-patch -s --in-reply-to-email <mboxfile> a7fe7de8
>
> But I'll save that as an exercise for the reader (or the future)
I think a much more general approach would be to turn your script
into "get-msg-id" script and use it like so:
$ git format-patch --in-reply-to $(get-msg-id <mboxfile>) a7fe7de8
Then you can reuse that script in a context outside format-patch,
whereever you need the message-id in a single message in the
mailbox.
^ permalink raw reply
* Re: [PATCH] make __git_ps1 accept a third parameter in pcmode
From: Junio C Hamano @ 2012-12-26 20:32 UTC (permalink / raw)
To: Simon Oosthoek; +Cc: piotr.krukowiecki, git
In-Reply-To: <20121226201944.GA15039@xs4all.nl>
Simon Oosthoek <s.oosthoek@xs4all.nl> writes:
> The problem with doing it in pre-post is when inside non-git
> directories. You want to avoid any gitstring output, including the
> brackets, when not inside a repository.
Ah, Ok, that is probably what I missed.
>> Or we could go the other way and drop "pre/post" strings, making
>> them part of the printf_format string. Perhaps that might be a
>> better interface in the longer term. Then people can use the same
>> "<pre>%s<post>" format string and do either of these:
>>
>> PS1=$(__git_ps1 "<pre>%s<post>")
>> PROMPT_COMMAND='PS1=$(__git_ps1 "<pre>%s<post>")'
>>
>> without __git_ps1 having a special "prompt command" mode, no?
>
> But how to determine which mode to use?
> In pcmode, you must set the PS1, in command-subsitute mode, you must print a formatted gitstring.
The point of the above two was that __git_ps1 does not have to set
PS1 as long as the insn says user to use PROMPT_COMMAND that sets
PS1 himself, exactly as illustrated above. In other words, replace
the last PS1=... in the "prompt command" mode with an echo or
something and make the user responsible for assigning it to PS1 in
his PROMPT_COMMAND.
Or put it in another way, I was hoping that we can do without adding
the prompt command mode---if there is no two modes, there is no need
to switch between them.
But as I said, there probably is a reason why that approach does not
work, that is why I said...
>> I have a feeling that I am missing something major, though...
^ permalink raw reply
* generating format-patch options from an e-mail
From: Simon Oosthoek @ 2012-12-26 20:28 UTC (permalink / raw)
To: git
[-- Attachment #1: Type: text/plain, Size: 655 bytes --]
Hi all
I've been very frustrated by the process to setup a commandline for git format-patch, to include everyone in the cc list and reply to the right message-id.
In my frustration I created a perl script to generate the options from a saved e-mail, I realise that it may be non-general and perhaps it could be written better using a module which understands e-mails, but well, it worked for me ;-)
Anyway, I could imagine this as optional flag of git format-patch, so you could say:
$ git format-patch -s --in-reply-to-email <mboxfile> a7fe7de8
But I'll save that as an exercise for the reader (or the future)
Cheers
Simon
PS, now with the script
[-- Attachment #2: formatpatchreply.pl --]
[-- Type: text/x-perl, Size: 1136 bytes --]
#!/usr/bin/perl
use warnings;
use strict;
our @to;
our @cc;
our @id;
our $emptyline=0;
if (defined $ARGV[0] and -f $ARGV[0]) {
open (MAIL, "<$ARGV[0]") or die "cannot open $ARGV[0]\n";
#while (my $line=<MAIL> && ($emptyline == 0) ) {
while (my $line=<MAIL> ) {
chomp $line;
my $header="";
my $content="";
if ($line =~ /^(.*?):.*[ ,<](.*?@.*?)[>, ]/ ||
$line =~ /^(.*ID?):.*[ ,<](.*?)[>, ]/) {
$header=$1;
$content=$2;
if ($header eq "From") {
push(@to, $content);
} if ($header eq "To") {
push(@cc, $content);
} elsif ($header eq "Cc") {
$line =~ /:(.*)$/;
my @ccs=split(/,/, $1);
foreach my $addr (@ccs) {
if ($addr =~ /<(.*)>/) {
push(@cc, $1);
} else {
push(@cc, $addr);
}
}
} elsif ($header eq "Message-ID") {
push(@id, $content);
}
}
$emptyline++ if (length($line) == 0);
}
close (MAIL);
}
foreach my $item (@to) {
print " --to \"$item\"";
}
foreach my $item (@cc) {
print " --cc \"$item\"";
}
foreach my $item (@id) {
print " --in-reply-to \"$item\"";
}
^ permalink raw reply
* Re: [PATCH] make __git_ps1 accept a third parameter in pcmode
From: Simon Oosthoek @ 2012-12-26 20:19 UTC (permalink / raw)
To: Junio C Hamano; +Cc: piotr.krukowiecki, git
In-Reply-To: <7vmwx0oavn.fsf@alter.siamese.dyndns.org>
* Junio C Hamano <gitster@pobox.com> [2012-12-26 11:45:48 -0800]:
> Simon Oosthoek <s.oosthoek@xs4all.nl> writes:
>
> > The optional third parameter when __git_ps1 is used in
> > PROMPT_COMMAND mode as format string for printf to further
> > customize the way the git status string is embedded in the
> > user's PS1 prompt.
> >
> > Signed-off-by: Simon Oosthoek <s.oosthoek@xs4all.nl>
> > ---
>
> Thanks.
>
> If we do not care about the existing users (and in this case,
> because PROMPT_COMMAND mode is in no released version, we could
> declare there is no existing user), another and simpler approach is
> to just drop " (" and ")" altogether and have the user give these as
> part of the pre/post strings.
>
The problem with doing it in pre-post is when inside non-git directories. You want to avoid any gitstring output, including the brackets, when not inside a repository.
Doing it all in the third parameter is perhaps a better approach, but then it becomes mandatory instead of optional.
> Or we could go the other way and drop "pre/post" strings, making
> them part of the printf_format string. Perhaps that might be a
> better interface in the longer term. Then people can use the same
> "<pre>%s<post>" format string and do either of these:
>
> PS1=$(__git_ps1 "<pre>%s<post>")
> PROMPT_COMMAND='PS1=$(__git_ps1 "<pre>%s<post>")'
>
> without __git_ps1 having a special "prompt command" mode, no?
But how to determine which mode to use?
In pcmode, you must set the PS1, in command-subsitute mode, you must print a formatted gitstring.
>
> I have a feeling that I am missing something major, though...
I think the fundamentally different way of setting the PS1 between the two modes is very confusing. Which is why I originally made a different function (with duplicated code) for both modes.
>
> > if [ "$w" = "*" ]; then
> > - PS1="$PS1\[$bad_color\]$w"
> > + gitstring="$gitstring\[$bad_color\]$w"
> > fi
>
> Every time I looked at this line, I wondered why '*' state is
> "bad". Does a user go into any "bad" state by having a dirty
> working tree? Same for untracked ($u) and detached. These are all
> perfectly normal part of a workflow, so while choice of red may be
> fine to attract attention, calling it "bad" sounds misguided.
Well, I'm most often a really casual user of git and to make this function work the way I want to, I found out by trial-and-error that this was a way to test whether it's time to colour the string red or green ;-)
I'm very open to better ways to determine the colour modes. Anyway, the colours are now more or less the same as what git itself uses when printing the status with colour hints in git status.
Cheers
Simon
^ permalink raw reply
* generating format-patch options from an e-mail
From: Simon Oosthoek @ 2012-12-26 20:06 UTC (permalink / raw)
To: git
Hi all
I've been very frustrated by the process to setup a commandline for git format-patch, to include everyone in the cc list and reply to the right message-id.
In my frustration I created a perl script to generate the options from a saved e-mail, I realise that it may be non-general and perhaps it could be written better using a module which understands e-mails, but well, it worked for me ;-)
Anyway, I could imagine this as optional flag of git format-patch, so you could say:
$ git format-patch -s --in-reply-to-email <mboxfile> a7fe7de8
But I'll save that as an exercise for the reader (or the future)
Cheers
Simon
^ permalink raw reply
* Re: [PATCH] make __git_ps1 accept a third parameter in pcmode
From: Junio C Hamano @ 2012-12-26 19:45 UTC (permalink / raw)
To: Simon Oosthoek; +Cc: piotr.krukowiecki, git
In-Reply-To: <20121226191505.GA29210@simaj.xs4all.nl>
Simon Oosthoek <s.oosthoek@xs4all.nl> writes:
> The optional third parameter when __git_ps1 is used in
> PROMPT_COMMAND mode as format string for printf to further
> customize the way the git status string is embedded in the
> user's PS1 prompt.
>
> Signed-off-by: Simon Oosthoek <s.oosthoek@xs4all.nl>
> ---
Thanks.
If we do not care about the existing users (and in this case,
because PROMPT_COMMAND mode is in no released version, we could
declare there is no existing user), another and simpler approach is
to just drop " (" and ")" altogether and have the user give these as
part of the pre/post strings.
Or we could go the other way and drop "pre/post" strings, making
them part of the printf_format string. Perhaps that might be a
better interface in the longer term. Then people can use the same
"<pre>%s<post>" format string and do either of these:
PS1=$(__git_ps1 "<pre>%s<post>")
PROMPT_COMMAND='PS1=$(__git_ps1 "<pre>%s<post>")'
without __git_ps1 having a special "prompt command" mode, no?
I have a feeling that I am missing something major, though...
> if [ "$w" = "*" ]; then
> - PS1="$PS1\[$bad_color\]$w"
> + gitstring="$gitstring\[$bad_color\]$w"
> fi
Every time I looked at this line, I wondered why '*' state is
"bad". Does a user go into any "bad" state by having a dirty
working tree? Same for untracked ($u) and detached. These are all
perfectly normal part of a workflow, so while choice of red may be
fine to attract attention, calling it "bad" sounds misguided.
^ permalink raw reply
* Re: [PATCH 1/2] log: grep author/committer using mailmap
From: Junio C Hamano @ 2012-12-26 19:27 UTC (permalink / raw)
To: Antoine Pelisse; +Cc: git
In-Reply-To: <1356195512-4846-2-git-send-email-apelisse@gmail.com>
Antoine Pelisse <apelisse@gmail.com> writes:
> Currently mailmap can be used to display log authors and committers
> but there no way to use mailmap to find commits with mapped values.
>
> This commit allows those commands to work:
>
> git log --use-mailmap --author mapped_name_or_email
> git log --use-mailmap --committer mapped_name_or_email
>
> Of course it only works if the --use-mailmap option is used.
>
> Signed-off-by: Antoine Pelisse <apelisse@gmail.com>
> ---
> I probably missed something but I didn't find the connection with
> commit 2d10c55. Let me know if I went the wrong direction.
>
> revision.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++
> t/t4203-mailmap.sh | 18 ++++++++++++++++++
> 2 files changed, 71 insertions(+)
>
> diff --git a/revision.c b/revision.c
> index 95d21e6..fb9fd41 100644
> --- a/revision.c
> +++ b/revision.c
> @@ -13,6 +13,7 @@
> #include "decorate.h"
> #include "log-tree.h"
> #include "string-list.h"
> +#include "mailmap.h"
>
> volatile show_early_output_fn_t show_early_output;
>
> @@ -2219,6 +2220,50 @@ static int rewrite_parents(struct rev_info *revs, struct commit *commit)
> return 0;
> }
>
> +static int commit_rewrite_authors(struct strbuf *buf, const char *what, struct string_list *mailmap)
> +{
> + char *author, *endp;
> + size_t len;
> + struct strbuf name = STRBUF_INIT;
> + struct strbuf mail = STRBUF_INIT;
> + struct ident_split ident;
> +
> + author = strstr(buf->buf, what);
> + if (!author)
> + goto error;
This does not stop at the end of the header part and would match a
random line in the log message that happens to begin with "author ";
is this something we would worry about, or would we leave it to "fsck"?
> + author += strlen(what);
> + endp = strstr(author, "\n");
Using strchr(author, '\n') would feel more natural. Also rename
"author" to "person" or something, as you would be using this
function for the committer information as well?
> + if (!endp)
> + goto error;
> +
> + len = endp - author;
> +
> + if (split_ident_line(&ident, author, len)) {
> + error:
> + strbuf_release(&name);
> + strbuf_release(&mail);
> +
> + return 1;
We usually signal error by returning a negative integer. It does
not matter too much in this case as no callers seem to check the
return value from this function, though.
> + }
> +
> + strbuf_add(&name, ident.name_begin, ident.name_end - ident.name_begin);
> + strbuf_add(&mail, ident.mail_begin, ident.mail_end - ident.mail_begin);
> +
> + map_user(mailmap, &mail, &name);
> +
> + strbuf_addf(&name, " <%s>", mail.buf);
> +
> + strbuf_splice(buf, ident.name_begin - buf->buf,
> + ident.mail_end - ident.name_begin + 1,
> + name.buf, name.len);
Would it give us better performance if we splice only when
map_user() tells us that we actually rewrote the ident?
> + strbuf_release(&name);
> + strbuf_release(&mail);
> +
> + return 0;
> +}
> +
> static int commit_match(struct commit *commit, struct rev_info *opt)
> {
> int retval;
> @@ -2237,6 +2282,14 @@ static int commit_match(struct commit *commit, struct rev_info *opt)
> if (buf.len)
> strbuf_addstr(&buf, commit->buffer);
>
> + if (opt->mailmap) {
> + if (!buf.len)
> + strbuf_addstr(&buf, commit->buffer);
> +
> + commit_rewrite_authors(&buf, "\nauthor ", opt->mailmap);
> + commit_rewrite_authors(&buf, "\ncommitter ", opt->mailmap);
> + }
> +
> /* Append "fake" message parts as needed */
> if (opt->show_notes) {
> if (!buf.len)
> diff --git a/t/t4203-mailmap.sh b/t/t4203-mailmap.sh
> index db043dc..e16187f 100755
> --- a/t/t4203-mailmap.sh
> +++ b/t/t4203-mailmap.sh
> @@ -248,11 +248,29 @@ Author: Other Author <other@author.xx>
> Author: Some Dude <some@dude.xx>
> Author: A U Thor <author@example.com>
> EOF
> +
> test_expect_success 'Log output with --use-mailmap' '
> git log --use-mailmap | grep Author >actual &&
> test_cmp expect actual
> '
>
> +cat >expect <<\EOF
> +Author: Santa Claus <santa.claus@northpole.xx>
> +Author: Santa Claus <santa.claus@northpole.xx>
> +EOF
> +
> +test_expect_success 'Grep author with --use-mailmap' '
> + git log --use-mailmap --author Santa | grep Author >actual &&
> + test_cmp expect actual
> +'
> +
> +>expect
> +
> +test_expect_success 'Only grep replaced author with --use-mailmap' '
> + git log --use-mailmap --author "<cto@coompany.xx>" >actual &&
> + test_cmp expect actual
> +'
> +
> # git blame
> cat >expect <<\EOF
> ^OBJI (A U Thor DATE 1) one
> --
> 1.7.9.5
^ permalink raw reply
* [PATCH] make __git_ps1 accept a third parameter in pcmode
From: Simon Oosthoek @ 2012-12-26 19:15 UTC (permalink / raw)
To: gitster; +Cc: s.oosthoek, piotr.krukowiecki, git
In-Reply-To: <7vvcbpp846.fsf@alter.siamese.dyndns.org>
The optional third parameter when __git_ps1 is used in
PROMPT_COMMAND mode as format string for printf to further
customize the way the git status string is embedded in the
user's PS1 prompt.
Signed-off-by: Simon Oosthoek <s.oosthoek@xs4all.nl>
---
contrib/completion/git-prompt.sh | 32 ++++++++++++++++++++------------
1 file changed, 20 insertions(+), 12 deletions(-)
diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh
index 9b074e1..2922bb3 100644
--- a/contrib/completion/git-prompt.sh
+++ b/contrib/completion/git-prompt.sh
@@ -24,6 +24,8 @@
# will show username, at-sign, host, colon, cwd, then
# various status string, followed by dollar and SP, as
# your prompt.
+# Optionally, you can supply a third argument with a printf
+# format string to finetune the output of the branch status
#
# The argument to __git_ps1 will be displayed only if you are currently
# in a git repository. The %s token will be the name of the current
@@ -222,10 +224,12 @@ __git_ps1_show_upstream ()
# when called from PS1 using command substitution
# in this mode it prints text to add to bash PS1 prompt (includes branch name)
#
-# __git_ps1 requires 2 arguments when called from PROMPT_COMMAND (pc)
+# __git_ps1 requires 2 or 3 arguments when called from PROMPT_COMMAND (pc)
# in that case it _sets_ PS1. The arguments are parts of a PS1 string.
-# when both arguments are given, the first is prepended and the second appended
+# when two arguments are given, the first is prepended and the second appended
# to the state string when assigned to PS1.
+# The optional third parameter will be used as printf format string to further
+# customize the output of the git-status string.
# In this mode you can request colored hints using GIT_PS1_SHOWCOLORHINTS=true
__git_ps1 ()
{
@@ -236,9 +240,10 @@ __git_ps1 ()
local printf_format=' (%s)'
case "$#" in
- 2) pcmode=yes
+ 2|3) pcmode=yes
ps1pc_start="$1"
ps1pc_end="$2"
+ printf_format="${3:-$printf_format}"
;;
0|1) printf_format="${1:-$printf_format}"
;;
@@ -339,6 +344,7 @@ __git_ps1 ()
local f="$w$i$s$u"
if [ $pcmode = yes ]; then
+ local gitstring=
if [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then
local c_red='\e[31m'
local c_green='\e[32m'
@@ -356,29 +362,31 @@ __git_ps1 ()
branch_color="$bad_color"
fi
- # Setting PS1 directly with \[ and \] around colors
+ # Setting gitstring directly with \[ and \] around colors
# is necessary to prevent wrapping issues!
- PS1="$ps1pc_start (\[$branch_color\]$branchstring\[$c_clear\]"
+ gitstring="\[$branch_color\]$branchstring\[$c_clear\]"
if [ -n "$w$i$s$u$r$p" ]; then
- PS1="$PS1 "
+ gitstring="$gitstring "
fi
if [ "$w" = "*" ]; then
- PS1="$PS1\[$bad_color\]$w"
+ gitstring="$gitstring\[$bad_color\]$w"
fi
if [ -n "$i" ]; then
- PS1="$PS1\[$ok_color\]$i"
+ gitstring="$gitstring\[$ok_color\]$i"
fi
if [ -n "$s" ]; then
- PS1="$PS1\[$flags_color\]$s"
+ gitstring="$gitstring\[$flags_color\]$s"
fi
if [ -n "$u" ]; then
- PS1="$PS1\[$bad_color\]$u"
+ gitstring="$gitstring\[$bad_color\]$u"
fi
- PS1="$PS1\[$c_clear\]$r$p)$ps1pc_end"
+ gitstring="$gitstring\[$c_clear\]$r$p"
else
- PS1="$ps1pc_start ($c${b##refs/heads/}${f:+ $f}$r$p)$ps1pc_end"
+ gitstring="$c${b##refs/heads/}${f:+ $f}$r$p"
fi
+ gitstring=$(printf -- "$printf_format" "$gitstring")
+ PS1="$ps1pc_start$gitstring$ps1pc_end"
else
# NO color option unless in PROMPT_COMMAND mode
printf -- "$printf_format" "$c${b##refs/heads/}${f:+ $f}$r$p"
--
1.7.9.5
PS, I was surprised that this worked, because I was under the impression that the \[ \] special characters needed to be put in PS1 directly. This is apparently not exactly the case, but I'm now more confused than before ;-)
^ permalink raw reply related
* Re: [PATCH 2/8] wildmatch: rename constants and update prototype
From: Junio C Hamano @ 2012-12-26 18:44 UTC (permalink / raw)
To: Nguyễn Thái Ngọc Duy; +Cc: git
In-Reply-To: <1356163028-29967-3-git-send-email-pclouds@gmail.com>
Nguyễn Thái Ngọc Duy <pclouds@gmail.com> writes:
> @@ -134,101 +131,102 @@ static int dowild(const uchar *p, const uchar *text, int force_lower_case)
> p_ch = NEGATE_CLASS;
> #endif
> /* Assign literal TRUE/FALSE because of "matched" comparison. */
> - special = p_ch == NEGATE_CLASS? TRUE : FALSE;
> + special = p_ch == NEGATE_CLASS;
Leftover comment needs to be reworded as well???
> if (special) {
> /* Inverted character class. */
> p_ch = *++p;
> }
I'd prefer "special" used in the "case '['" given a more sensible
name here.
^ permalink raw reply
* Re: [PATCH 2/2] log: add log.mailmap configuration option
From: Antoine Pelisse @ 2012-12-26 16:42 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
In-Reply-To: <7vlickpz81.fsf@alter.siamese.dyndns.org>
I was planning to send you a fix pretty close to that,
Thanks a lot Junio!
On Wed, Dec 26, 2012 at 5:14 PM, Junio C Hamano <gitster@pobox.com> wrote:
> Junio C Hamano <gitster@pobox.com> writes:
>
>> Antoine Pelisse <apelisse@gmail.com> writes:
>>
>>> I'm wondering if it would be needed to add a no-use-mailmap option to
>>> log command so that it can cancel this configuration option.
>>
>> The usual way for adding a new feature is to add a --enable-feature
>> long-option without any configuration variable to let users try it
>> out in the field, and then add the configuration to let it be
>> default for users who opt in. The first step should also allow a
>> command line option to disable (which should come for free if you
>> use parse-options API correctly).
>
> It should be sufficient to squash something like this in. Use the
> configured value, if available, to initialize the existing "mailmap"
> variable, which is in turn updated from the command line option with
> either --use-mailmap or --no-use-mailmap. What is left in "mailmap"
> after the command line parsing returns is what the user told us to
> use.
>
> Thanks.
>
> builtin/log.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/builtin/log.c b/builtin/log.c
> index f6936ff..16e6520 100644
> --- a/builtin/log.c
> +++ b/builtin/log.c
> @@ -31,7 +31,7 @@ static int default_abbrev_commit;
> static int default_show_root = 1;
> static int decoration_style;
> static int decoration_given;
> -static int use_mailmap;
> +static int use_mailmap_config;
> static const char *fmt_patch_subject_prefix = "PATCH";
> static const char *fmt_pretty;
>
> @@ -107,6 +107,7 @@ static void cmd_log_init_finish(int argc, const char **argv, const char *prefix,
> OPT_END()
> };
>
> + mailmap = use_mailmap_config;
> argc = parse_options(argc, argv, prefix,
> builtin_log_options, builtin_log_usage,
> PARSE_OPT_KEEP_ARGV0 | PARSE_OPT_KEEP_UNKNOWN |
> @@ -139,7 +140,7 @@ static void cmd_log_init_finish(int argc, const char **argv, const char *prefix,
> if (source)
> rev->show_source = 1;
>
> - if (mailmap || use_mailmap) {
> + if (mailmap) {
> rev->mailmap = xcalloc(1, sizeof(struct string_list));
> read_mailmap(rev->mailmap, NULL);
> }
> @@ -360,7 +361,7 @@ static int git_log_config(const char *var, const char *value, void *cb)
> if (!prefixcmp(var, "color.decorate."))
> return parse_decorate_color_config(var, 15, value);
> if (!strcmp(var, "log.mailmap")) {
> - use_mailmap = git_config_bool(var, value);
> + use_mailmap_config = git_config_bool(var, value);
> return 0;
> }
>
^ permalink raw reply
* Re: [PATCH 2/2] log: add log.mailmap configuration option
From: Junio C Hamano @ 2012-12-26 16:14 UTC (permalink / raw)
To: Antoine Pelisse; +Cc: git
In-Reply-To: <7v8v8ppf6f.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
> Antoine Pelisse <apelisse@gmail.com> writes:
>
>> I'm wondering if it would be needed to add a no-use-mailmap option to
>> log command so that it can cancel this configuration option.
>
> The usual way for adding a new feature is to add a --enable-feature
> long-option without any configuration variable to let users try it
> out in the field, and then add the configuration to let it be
> default for users who opt in. The first step should also allow a
> command line option to disable (which should come for free if you
> use parse-options API correctly).
It should be sufficient to squash something like this in. Use the
configured value, if available, to initialize the existing "mailmap"
variable, which is in turn updated from the command line option with
either --use-mailmap or --no-use-mailmap. What is left in "mailmap"
after the command line parsing returns is what the user told us to
use.
Thanks.
builtin/log.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/builtin/log.c b/builtin/log.c
index f6936ff..16e6520 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -31,7 +31,7 @@ static int default_abbrev_commit;
static int default_show_root = 1;
static int decoration_style;
static int decoration_given;
-static int use_mailmap;
+static int use_mailmap_config;
static const char *fmt_patch_subject_prefix = "PATCH";
static const char *fmt_pretty;
@@ -107,6 +107,7 @@ static void cmd_log_init_finish(int argc, const char **argv, const char *prefix,
OPT_END()
};
+ mailmap = use_mailmap_config;
argc = parse_options(argc, argv, prefix,
builtin_log_options, builtin_log_usage,
PARSE_OPT_KEEP_ARGV0 | PARSE_OPT_KEEP_UNKNOWN |
@@ -139,7 +140,7 @@ static void cmd_log_init_finish(int argc, const char **argv, const char *prefix,
if (source)
rev->show_source = 1;
- if (mailmap || use_mailmap) {
+ if (mailmap) {
rev->mailmap = xcalloc(1, sizeof(struct string_list));
read_mailmap(rev->mailmap, NULL);
}
@@ -360,7 +361,7 @@ static int git_log_config(const char *var, const char *value, void *cb)
if (!prefixcmp(var, "color.decorate."))
return parse_decorate_color_config(var, 15, value);
if (!strcmp(var, "log.mailmap")) {
- use_mailmap = git_config_bool(var, value);
+ use_mailmap_config = git_config_bool(var, value);
return 0;
}
^ permalink raw reply related
* [PATCH] l10n: de.po: address the user formally
From: Ralf Thielow @ 2012-12-26 15:52 UTC (permalink / raw)
To: trast, jk, stimming, git; +Cc: git, Ralf Thielow
Suggested-by: Christian Stimming <stimming@tuhh.de>
Suggested-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
---
po/de.po | 484 +++++++++++++++++++++++++++++++--------------------------------
1 file changed, 242 insertions(+), 242 deletions(-)
diff --git a/po/de.po b/po/de.po
index 0e8ed54..c8ad2f0 100644
--- a/po/de.po
+++ b/po/de.po
@@ -33,10 +33,10 @@ msgid ""
"appropriate to mark resolution and make a commit,\n"
"or use 'git commit -a'."
msgstr ""
-"Korrigiere dies im Arbeitsbaum,\n"
-"und benutze dann 'git add/rm <Datei>'\n"
+"Korrigieren Sie dies im Arbeitsbaum,\n"
+"und benutzen Sie dann 'git add/rm <Datei>'\n"
"um die Auflösung entsprechend zu markieren und einzutragen,\n"
-"oder benutze 'git commit -a'."
+"oder benutzen Sie 'git commit -a'."
#: archive.c:10
msgid "git archive [options] <tree-ish> [<path>...]"
@@ -131,7 +131,7 @@ msgid ""
"Use '\\!' for literal leading exclamation."
msgstr ""
"Verneinende Muster sind in Git-Attributen verboten.\n"
-"Benutze '\\!' für führende Ausrufezeichen."
+"Benutzen Sie '\\!' für führende Ausrufezeichen."
#: bundle.c:36
#, c-format
@@ -381,7 +381,7 @@ msgstr "Vorhandene Git-Kommandos in '%s'"
#: help.c:219
msgid "git commands available from elsewhere on your $PATH"
-msgstr "Vorhandene Git-Kommandos irgendwo in deinem $PATH"
+msgstr "Vorhandene Git-Kommandos irgendwo in Ihrem $PATH"
#: help.c:275
#, c-format
@@ -394,7 +394,7 @@ msgstr ""
#: help.c:332
msgid "Uh oh. Your system reports no Git commands at all."
-msgstr "Uh oh. Keine Git-Kommandos auf deinem System vorhanden."
+msgstr "Uh oh. Keine Git-Kommandos auf Ihrem System vorhanden."
#: help.c:354
#, c-format
@@ -402,8 +402,8 @@ msgid ""
"WARNING: You called a Git command named '%s', which does not exist.\n"
"Continuing under the assumption that you meant '%s'"
msgstr ""
-"Warnung: Du hast das nicht existierende Git-Kommando '%s' ausgeführt.\n"
-"Setze fort unter der Annahme das du '%s' gemeint hast"
+"Warnung: Sie haben das nicht existierende Git-Kommando '%s' ausgeführt.\n"
+"Setze fort unter der Annahme, dass Sie '%s' gemeint haben"
#: help.c:359
#, c-format
@@ -424,10 +424,10 @@ msgid_plural ""
"Did you mean one of these?"
msgstr[0] ""
"\n"
-"Hast du das gemeint?"
+"Haben Sie das gemeint?"
msgstr[1] ""
"\n"
-"Hast du eines von diesen gemeint?"
+"Haben Sie eines von diesen gemeint?"
#: merge.c:56
msgid "failed to read the cache"
@@ -721,12 +721,12 @@ msgstr " %s"
#, c-format
msgid "Your branch is ahead of '%s' by %d commit.\n"
msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
-msgstr[0] "Dein Zweig ist vor '%s' um %d Version.\n"
-msgstr[1] "Dein Zweig ist vor '%s' um %d Versionen.\n"
+msgstr[0] "Ihr Zweig ist vor '%s' um %d Version.\n"
+msgstr[1] "Ihr Zweig ist vor '%s' um %d Versionen.\n"
#: remote.c:1637
msgid " (use \"git push\" to publish your local commits)\n"
-msgstr " (benutze \"git push\" um deine lokalen Versionen herauszubringen)\n"
+msgstr " (benutzen Sie \"git push\" um lokalen Versionen herauszubringen)\n"
#: remote.c:1640
#, c-format
@@ -734,15 +734,15 @@ msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
"Your branch is behind '%s' by %d commits, and can be fast-forwarded.\n"
msgstr[0] ""
-"Dein Zweig ist zu '%s' um %d Version hinterher, und kann vorgespult werden.\n"
+"Ihr Zweig ist zu '%s' um %d Version hinterher, und kann vorgespult werden.\n"
msgstr[1] ""
-"Dein Zweig ist zu '%s' um %d Versionen hinterher, und kann vorgespult "
+"Ihr Zweig ist zu '%s' um %d Versionen hinterher, und kann vorgespult "
"werden.\n"
#: remote.c:1647
msgid " (use \"git pull\" to update your local branch)\n"
msgstr ""
-" (benutze \"git pull\" um deinen lokalen Zweig zu aktualisieren)\n"
+" (benutzen Sie \"git pull\" um Ihren lokalen Zweig zu aktualisieren)\n"
#: remote.c:1650
#, c-format
@@ -753,16 +753,16 @@ msgid_plural ""
"Your branch and '%s' have diverged,\n"
"and have %d and %d different commits each, respectively.\n"
msgstr[0] ""
-"Dein Zweig und '%s' sind divergiert,\n"
+"Ihr Zweig und '%s' sind divergiert,\n"
"und haben jeweils %d und %d unterschiedliche Versionen.\n"
msgstr[1] ""
-"Dein Zweig und '%s' sind divergiert,\n"
+"Ihr Zweig und '%s' sind divergiert,\n"
"und haben jeweils %d und %d unterschiedliche Versionen.\n"
#: remote.c:1659
msgid " (use \"git pull\" to merge the remote branch into yours)\n"
msgstr ""
-" (benutze \"git pull\" um deinen Zweig mit dem externen zusammenzuführen)\n"
+" (benutzen Sie \"git pull\" um Ihren Zweig mit dem externen zusammenzuführen)\n"
#: sequencer.c:123 builtin/merge.c:761 builtin/merge.c:874 builtin/merge.c:984
#: builtin/merge.c:994
@@ -781,7 +781,7 @@ msgid ""
"after resolving the conflicts, mark the corrected paths\n"
"with 'git add <paths>' or 'git rm <paths>'"
msgstr ""
-"nach Auflösung der Konflikte, markiere die korrigierten Pfade\n"
+"nach Auflösung der Konflikte, markieren Sie die korrigierten Pfade\n"
"mit 'git add <Pfade>' oder 'git rm <Pfade>'"
#: sequencer.c:149
@@ -790,9 +790,9 @@ msgid ""
"with 'git add <paths>' or 'git rm <paths>'\n"
"and commit the result with 'git commit'"
msgstr ""
-"nach Auflösung der Konflikte, markiere die korrigierten Pfade\n"
-"mit 'git add <Pfade>' oder 'git rm <Pfade>'und trage das Ergebnis ein mit "
-"'git commit'"
+"nach Auflösung der Konflikte, markieren Sie die korrigierten Pfade\n"
+"mit 'git add <Pfade>' oder 'git rm <Pfade>'und tragen Sie das Ergebnis mit\n"
+"'git commit' ein"
#: sequencer.c:162 sequencer.c:770 sequencer.c:853
#, c-format
@@ -807,15 +807,15 @@ msgstr "Fehler bei Nachbereitung von %s"
#: sequencer.c:180
msgid "Your local changes would be overwritten by cherry-pick."
msgstr ""
-"Deine lokalen Änderungen würden von \"cherry-pick\" überschrieben werden."
+"Ihre lokalen Änderungen würden von \"cherry-pick\" überschrieben werden."
#: sequencer.c:182
msgid "Your local changes would be overwritten by revert."
-msgstr "Deine lokalen Änderungen würden von \"revert\" überschrieben werden."
+msgstr "Ihre lokalen Änderungen würden von \"revert\" überschrieben werden."
#: sequencer.c:185
msgid "Commit your changes or stash them to proceed."
-msgstr "Trage deine Änderungen ein oder benutze \"stash\" um fortzufahren."
+msgstr "Tragen Sie Ihre Änderungen ein oder benutzen Sie \"stash\" um fortzufahren."
#. TRANSLATORS: %s will be "revert" or "cherry-pick"
#: sequencer.c:235
@@ -843,11 +843,11 @@ msgstr "Konnte Elternversion %s nicht parsen\n"
#: sequencer.c:403
msgid "Your index file is unmerged."
-msgstr "Deine Bereitstellungsdatei ist nicht zusammengeführt."
+msgstr "Ihre Bereitstellungsdatei ist nicht zusammengeführt."
#: sequencer.c:406
msgid "You do not have a valid HEAD"
-msgstr "Du hast keine gültige Zweigspitze (HEAD)"
+msgstr "Sie haben keine gültige Zweigspitze (HEAD)"
#: sequencer.c:421
#, c-format
@@ -953,7 +953,7 @@ msgstr "\"cherry-pick\" oder \"revert\" ist bereits im Gang"
#: sequencer.c:752
msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
-msgstr "versuche \"git cherry-pick (--continue | --quit | --abort)\""
+msgstr "versuchen Sie \"git cherry-pick (--continue | --quit | --abort)\""
#: sequencer.c:756
#, c-format
@@ -1053,28 +1053,28 @@ msgstr "Nicht zusammengeführte Pfade:"
#, c-format
msgid " (use \"git reset %s <file>...\" to unstage)"
msgstr ""
-" (benutze \"git reset %s <Datei>...\" zum Herausnehmen aus der "
+" (benutzen Sie \"git reset %s <Datei>...\" zum Herausnehmen aus der "
"Bereitstellung)"
#: wt-status.c:169 wt-status.c:196
msgid " (use \"git rm --cached <file>...\" to unstage)"
msgstr ""
-" (benutze \"git rm --cached <Datei>...\" zum Herausnehmen aus der "
+" (benutzen Sie \"git rm --cached <Datei>...\" zum Herausnehmen aus der "
"Bereitstellung)"
#: wt-status.c:173
msgid " (use \"git add <file>...\" to mark resolution)"
-msgstr " (benutze \"git add/rm <Datei>...\" um die Auflösung zu markieren)"
+msgstr " (benutzen Sie \"git add/rm <Datei>...\" um die Auflösung zu markieren)"
#: wt-status.c:175 wt-status.c:179
msgid " (use \"git add/rm <file>...\" as appropriate to mark resolution)"
msgstr ""
-" (benutze \"git add/rm <Datei>...\" um die Auflösung entsprechend zu "
+" (benutzen Sie \"git add/rm <Datei>...\" um die Auflösung entsprechend zu "
"markieren)"
#: wt-status.c:177
msgid " (use \"git rm <file>...\" to mark resolution)"
-msgstr " (benutze \"git add/rm <Datei>...\" um die Auflösung zu markieren)"
+msgstr " (benutzen Sie \"git add/rm <Datei>...\" um die Auflösung zu markieren)"
#: wt-status.c:188
msgid "Changes to be committed:"
@@ -1086,29 +1086,29 @@ msgstr "Änderungen, die nicht zum Eintragen bereitgestellt sind:"
#: wt-status.c:210
msgid " (use \"git add <file>...\" to update what will be committed)"
-msgstr " (benutze \"git add <Datei>...\" zum Bereitstellen)"
+msgstr " (benutzen Sie \"git add <Datei>...\" zum Bereitstellen)"
#: wt-status.c:212
msgid " (use \"git add/rm <file>...\" to update what will be committed)"
-msgstr " (benutze \"git add/rm <Datei>...\" zum Bereitstellen)"
+msgstr " (benutzen Sie \"git add/rm <Datei>...\" zum Bereitstellen)"
#: wt-status.c:213
msgid ""
" (use \"git checkout -- <file>...\" to discard changes in working directory)"
msgstr ""
-" (benutze \"git checkout -- <Datei>...\" um die Änderungen im "
+" (benutzen Sie \"git checkout -- <Datei>...\" um die Änderungen im "
"Arbeitsverzeichnis zu verwerfen)"
#: wt-status.c:215
msgid " (commit or discard the untracked or modified content in submodules)"
msgstr ""
-" (trage ein oder verwerfe den unbeobachteten oder geänderten Inhalt in den "
+" (tragen Sie ein oder verwerfen Sie den unbeobachteten oder geänderten Inhalt in den "
"Unterprojekten)"
#: wt-status.c:227
#, c-format
msgid " (use \"git %s <file>...\" to include in what will be committed)"
-msgstr " (benutze \"git %s <Datei>...\" zum Einfügen in die Eintragung)"
+msgstr " (benutzen Sie \"git %s <Datei>...\" zum Einfügen in die Eintragung)"
#: wt-status.c:244
msgid "bug"
@@ -1201,20 +1201,20 @@ msgstr "Fehler: unbehandelter Differenz-Status %c"
#: wt-status.c:785
msgid "You have unmerged paths."
-msgstr "Du hast nicht zusammengeführte Pfade."
+msgstr "Sie haben nicht zusammengeführte Pfade."
#: wt-status.c:788 wt-status.c:912
msgid " (fix conflicts and run \"git commit\")"
-msgstr " (behebe die Konflikte und führe \"git commit\" aus)"
+msgstr " (beheben Sie die Konflikte und führen Sie \"git commit\" aus)"
#: wt-status.c:791
msgid "All conflicts fixed but you are still merging."
msgstr ""
-"Alle Konflikte sind behoben, aber du bist immer noch beim Zusammenführen."
+"Alle Konflikte sind behoben, aber Sie sind immer noch beim Zusammenführen."
#: wt-status.c:794
msgid " (use \"git commit\" to conclude merge)"
-msgstr " (benutze \"git commit\" um die Zusammenführung abzuschließen)"
+msgstr " (benutzen Sie \"git commit\" um die Zusammenführung abzuschließen)"
#: wt-status.c:804
msgid "You are in the middle of an am session."
@@ -1226,80 +1226,80 @@ msgstr "Der aktuelle Patch ist leer."
#: wt-status.c:811
msgid " (fix conflicts and then run \"git am --resolved\")"
-msgstr " (behebe die Konflikte und führe dann \"git am --resolved\" aus)"
+msgstr " (beheben Sie die Konflikte und führen Sie dann \"git am --resolved\" aus)"
#: wt-status.c:813
msgid " (use \"git am --skip\" to skip this patch)"
-msgstr " (benutze \"git am --skip\" um diesen Patch auszulassen)"
+msgstr " (benutzen Sie \"git am --skip\" um diesen Patch auszulassen)"
#: wt-status.c:815
msgid " (use \"git am --abort\" to restore the original branch)"
msgstr ""
-" (benutze \"git am --abort\" um den ursprünglichen Zweig wiederherzustellen)"
+" (benutzen Sie \"git am --abort\" um den ursprünglichen Zweig wiederherzustellen)"
#: wt-status.c:873 wt-status.c:883
msgid "You are currently rebasing."
-msgstr "Du bist gerade beim Neuaufbau."
+msgstr "Sie sind gerade beim Neuaufbau."
#: wt-status.c:876
msgid " (fix conflicts and then run \"git rebase --continue\")"
-msgstr " (behebe die Konflikte und führe dann \"git rebase --continue\" aus)"
+msgstr " (beheben Sie die Konflikte und führen Sie dann \"git rebase --continue\" aus)"
#: wt-status.c:878
msgid " (use \"git rebase --skip\" to skip this patch)"
-msgstr " (benutze \"git rebase --skip\" um diesen Patch auszulassen)"
+msgstr " (benutzen Sie \"git rebase --skip\" um diesen Patch auszulassen)"
#: wt-status.c:880
msgid " (use \"git rebase --abort\" to check out the original branch)"
msgstr ""
-" (benutze \"git rebase --abort\" um den ursprünglichen Zweig auszuchecken)"
+" (benutzen Sie \"git rebase --abort\" um den ursprünglichen Zweig auszuchecken)"
#: wt-status.c:886
msgid " (all conflicts fixed: run \"git rebase --continue\")"
-msgstr " (alle Konflikte behoben: führe \"git rebase --continue\" aus)"
+msgstr " (alle Konflikte behoben: führen Sie \"git rebase --continue\" aus)"
#: wt-status.c:888
msgid "You are currently splitting a commit during a rebase."
-msgstr "Du teilst gerade eine Version während eines Neuaufbaus auf."
+msgstr "Sie teilen gerade eine Version während eines Neuaufbaus auf."
#: wt-status.c:891
msgid " (Once your working directory is clean, run \"git rebase --continue\")"
msgstr ""
-" (Sobald dein Arbeitsverzeichnis sauber ist, führe \"git rebase --continue"
+" (Sobald Ihr Arbeitsverzeichnis sauber ist, führen Sie \"git rebase --continue"
"\" aus)"
#: wt-status.c:893
msgid "You are currently editing a commit during a rebase."
-msgstr "Du editierst gerade eine Version während eines Neuaufbaus."
+msgstr "Sie editieren gerade eine Version während eines Neuaufbaus."
#: wt-status.c:896
msgid " (use \"git commit --amend\" to amend the current commit)"
msgstr ""
-" (benutze \"git commit --amend\" um die aktuelle Version nachzubessern)"
+" (benutzen Sie \"git commit --amend\" um die aktuelle Version nachzubessern)"
#: wt-status.c:898
msgid ""
" (use \"git rebase --continue\" once you are satisfied with your changes)"
msgstr ""
-" (benutze \"git rebase --continue\" sobald deine Änderungen abgeschlossen "
+" (benutzen Sie \"git rebase --continue\" sobald Ihre Änderungen abgeschlossen "
"sind)"
#: wt-status.c:908
msgid "You are currently cherry-picking."
-msgstr "Du führst gerade \"cherry-pick\" aus."
+msgstr "Sie führen gerade \"cherry-pick\" aus."
#: wt-status.c:915
msgid " (all conflicts fixed: run \"git commit\")"
-msgstr " (alle Konflikte behoben: führe \"git commit\" aus)"
+msgstr " (alle Konflikte behoben: führen Sie \"git commit\" aus)"
#: wt-status.c:924
msgid "You are currently bisecting."
-msgstr "Du bist gerade beim Halbieren."
+msgstr "Sie sind gerade beim Halbieren."
#: wt-status.c:927
msgid " (use \"git bisect reset\" to get back to the original branch)"
msgstr ""
-" (benutze \"git bisect reset\" um zum ursprünglichen Zweig zurückzukehren)"
+" (benutzen Sie \"git bisect reset\" um zum ursprünglichen Zweig zurückzukehren)"
#: wt-status.c:978
msgid "On branch "
@@ -1328,7 +1328,7 @@ msgstr "Unbeobachtete Dateien nicht aufgelistet%s"
#: wt-status.c:1017
msgid " (use -u option to show untracked files)"
-msgstr " (benutze die Option -u um unbeobachteten Dateien anzuzeigen)"
+msgstr " (benutzen Sie die Option -u um unbeobachteten Dateien anzuzeigen)"
#: wt-status.c:1023
msgid "No changes"
@@ -1338,7 +1338,7 @@ msgstr "Keine Änderungen"
#, c-format
msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
msgstr ""
-"keine Änderungen zum Eintragen hinzugefügt (benutze \"git add\" und/oder "
+"keine Änderungen zum Eintragen hinzugefügt (benutzen Sie \"git add\" und/oder "
"\"git commit -a\")\n"
#: wt-status.c:1031
@@ -1353,7 +1353,7 @@ msgid ""
"track)\n"
msgstr ""
"nichts zum Eintragen hinzugefügt, aber es gibt unbeobachtete Dateien "
-"(benutze \"git add\" zum Beobachten)\n"
+"(benutzen Sie \"git add\" zum Beobachten)\n"
#: wt-status.c:1037
#, c-format
@@ -1364,8 +1364,8 @@ msgstr "nichts zum Eintragen hinzugefügt, aber es gibt unbeobachtete Dateien\n"
#, c-format
msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
msgstr ""
-"nichts einzutragen (Erstelle/Kopiere Dateien und benutze \"git add\" zum "
-"Beobachten)\n"
+"nichts einzutragen (Erstellen/Kopieren Sie Dateien und benutzen Sie \"git add\" "
+"zum Beobachten)\n"
#: wt-status.c:1043 wt-status.c:1048
#, c-format
@@ -1376,7 +1376,7 @@ msgstr "nichts einzutragen\n"
#, c-format
msgid "nothing to commit (use -u to show untracked files)\n"
msgstr ""
-"nichts einzutragen (benutze die Option -u, um unbeobachtete Dateien "
+"nichts einzutragen (benutzen Sie die Option -u, um unbeobachtete Dateien "
"anzuzeigen)\n"
#: wt-status.c:1050
@@ -1477,7 +1477,7 @@ msgstr "Konnte '%s' nicht anwenden."
#: builtin/add.c:313
msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr ""
-"Die folgenden Pfade werden durch eine deiner \".gitignore\" Dateien "
+"Die folgenden Pfade werden durch eine Ihrer \".gitignore\" Dateien "
"ignoriert:\n"
#: builtin/add.c:319 builtin/clean.c:52 builtin/fetch.c:78 builtin/mv.c:63
@@ -1538,7 +1538,7 @@ msgstr "prüft ob - auch fehlende - Dateien im Probelauf ignoriert werden"
#: builtin/add.c:353
#, c-format
msgid "Use -f if you really want to add them.\n"
-msgstr "Verwende -f wenn du diese wirklich hinzufügen möchtest.\n"
+msgstr "Verwenden Sie -f wenn Sie diese wirklich hinzufügen möchten.\n"
#: builtin/add.c:354
msgid "no files added"
@@ -1565,7 +1565,7 @@ msgstr "Nichts spezifiziert, nichts hinzugefügt.\n"
#: builtin/add.c:415
#, c-format
msgid "Maybe you wanted to say 'git add .'?\n"
-msgstr "Wolltest du vielleicht 'git add .' sagen?\n"
+msgstr "Wollten Sie vielleicht 'git add .' sagen?\n"
#: builtin/add.c:421 builtin/clean.c:95 builtin/commit.c:291 builtin/mv.c:82
#: builtin/rm.c:235
@@ -2269,7 +2269,7 @@ msgid ""
"If you are sure you want to delete it, run 'git branch -D %s'."
msgstr ""
"Der Zweig '%s' ist nicht vollständig zusammengeführt.\n"
-"Wenn du sicher bist diesen Zweig zu entfernen, führe 'git branch -D %s' aus."
+"Wenn Sie sicher sind diesen Zweig zu entfernen, führen Sie 'git branch -D %s' aus."
#: builtin/branch.c:180
msgid "Update of config-file failed"
@@ -2287,7 +2287,7 @@ msgstr "Konnte Versionsobjekt für Zweigspitze (HEAD) nicht nachschlagen."
#, c-format
msgid "Cannot delete the branch '%s' which you are currently on."
msgstr ""
-"Kann Zweig '%s' nicht entfernen, da du dich gerade auf diesem befindest."
+"Kann Zweig '%s' nicht entfernen, da Sie sich gerade auf diesem befinden."
#: builtin/branch.c:235
#, c-format
@@ -2365,7 +2365,7 @@ msgstr "Konnte einige Referenzen nicht lesen"
#: builtin/branch.c:638
msgid "cannot rename the current branch while not on any."
msgstr ""
-"Kann aktuellen Zweig nicht umbenennen, solange du dich auf keinem befindest."
+"Kann aktuellen Zweig nicht umbenennen, solange Sie sich auf keinem befinden."
#: builtin/branch.c:648
#, c-format
@@ -2527,8 +2527,8 @@ msgid ""
"The --set-upstream flag is deprecated and will be removed. Consider using --"
"track or --set-upstream-to\n"
msgstr ""
-"Die --set-upstream Option ist veraltet und wird entfernt. Benutze --track "
-"oder --set-upstream-to\n"
+"Die --set-upstream Option ist veraltet und wird entfernt. Benutzen Sie "
+"--track oder --set-upstream-to\n"
#: builtin/branch.c:934
#, c-format
@@ -2538,8 +2538,8 @@ msgid ""
"\n"
msgstr ""
"\n"
-"Wenn du wolltest, dass '%s' den Zweig '%s' als externen Übernahmezweig hat, "
-"führe aus:\n"
+"Wenn Sie wollten, dass '%s' den Zweig '%s' als externen Übernahmezweig hat, "
+"führen Sie aus:\n"
#: builtin/branch.c:935
#, c-format
@@ -2743,7 +2743,7 @@ msgstr "Pfad '%s' ist nicht zusammengeführt."
#: builtin/checkout.c:448
msgid "you need to resolve your current index first"
-msgstr "Du musst zuerst deine aktuelle Bereitstellung auflösen."
+msgstr "Sie müssen zuerst Ihre aktuelle Bereitstellung auflösen."
#: builtin/checkout.c:569
#, c-format
@@ -2798,13 +2798,13 @@ msgid_plural ""
"\n"
"%s\n"
msgstr[0] ""
-"Warnung: Du bist um %d Version hinterher, nicht verbunden zu\n"
-"einem deiner Zweige:\n"
+"Warnung: Sie sind um %d Version hinterher, nicht verbunden zu\n"
+"einem Ihrer Zweige:\n"
"\n"
"%s\n"
msgstr[1] ""
-"Warnung: Du bist um %d Versionen hinterher, nicht verbunden zu\n"
-"einem deiner Zweige:\n"
+"Warnung: Sie sind um %d Versionen hinterher, nicht verbunden zu\n"
+"einem Ihrer Zweige:\n"
"\n"
"%s\n"
@@ -2817,7 +2817,7 @@ msgid ""
" git branch new_branch_name %s\n"
"\n"
msgstr ""
-"Wenn du diese durch einen neuen Zweig behalten möchtest, dann könnte jetzt\n"
+"Wenn Sie diese durch einen neuen Zweig behalten möchten, dann könnte jetzt\n"
"ein guter Zeitpunkt sein dies zu tun mit:\n"
"\n"
" git branch neuer_zweig_name %s\n"
@@ -2833,7 +2833,7 @@ msgstr "Vorherige Position der Zweigspitze (HEAD) war"
#: builtin/checkout.c:761 builtin/checkout.c:950
msgid "You are on a branch yet to be born"
-msgstr "du bist auf einem Zweig, der noch geboren wird"
+msgstr "Sie sind auf einem Zweig, der noch geboren wird"
#. case (1)
#: builtin/checkout.c:886
@@ -2946,7 +2946,7 @@ msgstr "--track benötigt einen Zweignamen"
#: builtin/checkout.c:1081
msgid "Missing branch name; try -b"
-msgstr "Vermisse Zweignamen; versuche -b"
+msgstr "Vermisse Zweignamen; versuchen Sie -b"
#: builtin/checkout.c:1116
msgid "invalid path specification"
@@ -2959,7 +2959,7 @@ msgid ""
"Did you intend to checkout '%s' which can not be resolved as commit?"
msgstr ""
"Kann nicht gleichzeitig Pfade aktualisieren und zu Zweig '%s' wechseln.\n"
-"Hast du beabsichtigt '%s' auszuchecken, welcher nicht als Version aufgelöst "
+"Haben Sie beabsichtigt '%s' auszuchecken, welcher nicht als Version aufgelöst "
"werden kann?"
#: builtin/checkout.c:1128
@@ -2973,7 +2973,7 @@ msgid ""
"checking out of the index."
msgstr ""
"git checkout: --ours/--theirs, --force und --merge sind inkompatibel wenn\n"
-"du aus der Bereitstellung auscheckst."
+"Sie aus der Bereitstellung auschecken."
#: builtin/clean.c:19
msgid "git clean [-d] [-f] [-n] [-q] [-e <pattern>] [-x | -X] [--] <paths>..."
@@ -3203,7 +3203,7 @@ msgstr "Zu viele Argumente."
#: builtin/clone.c:694
msgid "You must specify a repository to clone."
-msgstr "Du musst ein Projektarchiv zum Klonen angeben."
+msgstr "Sie müssen ein Projektarchiv zum Klonen angeben."
#: builtin/clone.c:705
#, c-format
@@ -3217,7 +3217,7 @@ msgstr "Projektarchiv '%s' existiert nicht."
#: builtin/clone.c:724
msgid "--depth is ignored in local clones; use file:// instead."
-msgstr "--depth wird in lokalen Klonen ignoriert; benutze stattdessen file://."
+msgstr "--depth wird in lokalen Klonen ignoriert; benutzen Sie stattdessen file://."
#: builtin/clone.c:734
#, c-format
@@ -3261,7 +3261,7 @@ msgstr "externer Zweig %s nicht im anderen Projektarchiv %s gefunden"
#: builtin/clone.c:879
msgid "You appear to have cloned an empty repository."
-msgstr "Du scheinst ein leeres Projektarchiv geklont zu haben."
+msgstr "Sie scheinen ein leeres Projektarchiv geklont zu haben."
#: builtin/column.c:9
msgid "git column [options]"
@@ -3316,15 +3316,15 @@ msgid ""
"\n"
" git commit --amend --reset-author\n"
msgstr ""
-"Dein Name und E-Mail Adresse wurden automatisch auf Basis\n"
-"deines Benutzer- und Rechnernamens konfiguriert. Bitte prüfe, dass diese\n"
-"zutreffend sind. Du kannst diese Meldung unterdrücken, indem du diese\n"
-"explizit setzt:\n"
+"Ihr Name und E-Mail Adresse wurden automatisch auf Basis\n"
+"Ihres Benutzer- und Rechnernamens konfiguriert. Bitte prüfen Sie, dass\n"
+"diese zutreffend sind. Sie können diese Meldung unterdrücken, indem Sie\n"
+"diese explizit setzen:\n"
"\n"
-" git config --global user.name \"Dein Name\"\n"
-" git config --global user.email deine@emailadresse.de\n"
+" git config --global user.name \"Ihr Name\"\n"
+" git config --global user.email ihre@emailadresse.de\n"
"\n"
-"Nachdem du das getan hast, kannst du deine Identität für diese Version "
+"Nachdem Sie das getan hast, können Sie Ihre Identität für diese Version "
"ändern mit:\n"
"\n"
" git commit --amend --reset-author\n"
@@ -3335,8 +3335,8 @@ msgid ""
"it empty. You can repeat your command with --allow-empty, or you can\n"
"remove the commit entirely with \"git reset HEAD^\".\n"
msgstr ""
-"Du fragtest die jüngste Version nachzubessern, aber das würde diese leer\n"
-"machen. Du kannst Dein Kommando mit --allow-empty wiederholen, oder die\n"
+"Sie fragten die jüngste Version nachzubessern, aber das würde diese leer\n"
+"machen. Sie können Ihr Kommando mit --allow-empty wiederholen, oder die\n"
"Version mit \"git reset HEAD^\" vollständig entfernen.\n"
#: builtin/commit.c:61
@@ -3350,11 +3350,11 @@ msgid ""
msgstr ""
"Der letzte \"cherry-pick\" ist jetzt leer, möglicherweise durch eine "
"Konfliktauflösung.\n"
-"Wenn du dies trotzdem eintragen willst, benutze:\n"
+"Wenn Sie dies trotzdem eintragen wollen, benutzen Sie:\n"
"\n"
" git commit --allow-empty\n"
"\n"
-"Andernfalls benutze bitte 'git reset'\n"
+"Andernfalls benutzen Sie bitte 'git reset'\n"
#: builtin/commit.c:258
msgid "failed to unpack HEAD tree object"
@@ -3456,10 +3456,10 @@ msgid ""
"and try again.\n"
msgstr ""
"\n"
-"Es sieht so aus, als trägst du eine Zusammenführung ein.\n"
-"Falls das nicht korrekt ist, lösche bitte die Datei\n"
+"Es sieht so aus, als tragen Sie eine Zusammenführung ein.\n"
+"Falls das nicht korrekt ist, löschen Sie bitte die Datei\n"
"\t%s\n"
-"und versuche es erneut.\n"
+"und versuchen Sie es erneut.\n"
#: builtin/commit.c:723
#, c-format
@@ -3471,17 +3471,17 @@ msgid ""
"and try again.\n"
msgstr ""
"\n"
-"Es sieht so aus, als trägst du ein \"cherry-pick\" ein.\n"
-"Falls das nicht korrekt ist, lösche bitte die Datei\n"
+"Es sieht so aus, als tragen Sie ein \"cherry-pick\" ein.\n"
+"Falls das nicht korrekt ist, löschen Sie bitte die Datei\n"
"\t%s\n"
-"und versuche es erneut.\n"
+"und versuchen Sie es erneut.\n"
#: builtin/commit.c:735
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
"with '#' will be ignored, and an empty message aborts the commit.\n"
msgstr ""
-"Bitte gebe eine Versionsbeschreibung für deine Änderungen ein. Zeilen,\n"
+"Bitte geben Sie eine Versionsbeschreibung für Ihre Änderungen ein. Zeilen,\n"
"die mit '#' beginnen, werden ignoriert, und eine leere Versionsbeschreibung\n"
"bricht die Eintragung ab.\n"
@@ -3491,8 +3491,8 @@ msgid ""
"with '#' will be kept; you may remove them yourself if you want to.\n"
"An empty message aborts the commit.\n"
msgstr ""
-"Bitte gebe eine Versionsbeschreibung für deine Änderungen ein. Zeilen, die\n"
-"mit '#' beginnen, werden beibehalten; wenn du möchtest, kannst du diese "
+"Bitte geben Sie eine Versionsbeschreibung für Ihre Änderungen ein. Zeilen, die\n"
+"mit '#' beginnen, werden beibehalten; wenn Sie möchten, können Sie diese "
"entfernen.\n"
"Eine leere Versionsbeschreibung bricht die Eintragung ab.\n"
@@ -3535,7 +3535,7 @@ msgstr "Verwendung von --reset-author und --author macht keinen Sinn."
#: builtin/commit.c:995
msgid "You have nothing to amend."
-msgstr "Du hast nichts zum nachbessern."
+msgstr "Sie haben nichts zum nachbessern."
#: builtin/commit.c:998
msgid "You are in the middle of a merge -- cannot amend."
@@ -3726,7 +3726,7 @@ msgstr ""
#: builtin/commit.c:1380
msgid "the commit is authored by me now (used with -C/-c/--amend)"
-msgstr "Setze mich als Autor der Version (benutzt mit -C/-c/--amend)"
+msgstr "Setzt Sie als Autor der Version (benutzt mit -C/-c/--amend)"
#: builtin/commit.c:1381 builtin/log.c:1073 builtin/revert.c:109
msgid "add Signed-off-by:"
@@ -3836,7 +3836,7 @@ msgstr "Konnte Versionsbeschreibung nicht lesen: %s"
#: builtin/commit.c:1534
#, c-format
msgid "Aborting commit; you did not edit the message.\n"
-msgstr "Eintragung abgebrochen; du hast die Beschreibung nicht editiert.\n"
+msgstr "Eintragung abgebrochen; Sie haben die Beschreibung nicht editiert.\n"
#: builtin/commit.c:1539
#, c-format
@@ -3862,8 +3862,8 @@ msgid ""
"not exceeded, and then \"git reset HEAD\" to recover."
msgstr ""
"Das Projektarchiv wurde aktualisiert, aber die \"new_index\"-Datei\n"
-"konnte nicht geschrieben werden. Prüfe, dass deine Festplatte nicht\n"
-"voll und Dein Kontingent nicht aufgebraucht ist und führe\n"
+"konnte nicht geschrieben werden. Prüfen Sie, dass Ihre Festplatte nicht\n"
+"voll und Ihr Kontingent nicht aufgebraucht ist und führen Sie\n"
"anschließend \"git reset HEAD\" zu Wiederherstellung aus."
#: builtin/config.c:7
@@ -4041,7 +4041,7 @@ msgid ""
"However, there were unannotated tags: try --tags."
msgstr ""
"Keine annotierten Markierungen können '%s' beschreiben.\n"
-"Jedoch gab es nicht annotierte Markierungen: versuche --tags."
+"Jedoch gab es nicht annotierte Markierungen: versuchen Sie --tags."
#: builtin/describe.c:357
#, c-format
@@ -4050,7 +4050,7 @@ msgid ""
"Try --always, or create some tags."
msgstr ""
"Keine Markierungen können '%s' beschreiben.\n"
-"Versuche --always oder erstelle einige Markierungen."
+"Versuchen Sie --always oder erstellen Sie einige Markierungen."
#: builtin/describe.c:378
#, c-format
@@ -4354,7 +4354,7 @@ msgid ""
"some local refs could not be updated; try running\n"
" 'git remote prune %s' to remove any old, conflicting branches"
msgstr ""
-"Einige lokale Referenzen konnten nicht aktualisiert werden; versuche\n"
+"Einige lokale Referenzen konnten nicht aktualisiert werden; versuchen Sie\n"
"'git remote prune %s' um jeden älteren, widersprüchlichen Zweig zu löschen."
#: builtin/fetch.c:549
@@ -4412,13 +4412,13 @@ msgid ""
"No remote repository specified. Please, specify either a URL or a\n"
"remote name from which new revisions should be fetched."
msgstr ""
-"Kein externes Projektarchiv angegeben. Bitte gebe entweder eine URL\n"
+"Kein externes Projektarchiv angegeben. Bitte geben Sie entweder eine URL\n"
"oder den Namen des externen Archivs an, von welchem neue\n"
"Versionen angefordert werden sollen."
#: builtin/fetch.c:932
msgid "You need to specify a tag name."
-msgstr "Du musst den Namen der Markierung angeben."
+msgstr "Sie müssen den Namen der Markierung angeben."
#: builtin/fetch.c:984
msgid "fetch --all does not take a repository argument"
@@ -4587,15 +4587,15 @@ msgid ""
"run \"git gc\" manually. See \"git help gc\" for more information.\n"
msgstr ""
"Die Datenbank des Projektarchivs wird für eine optimale Performance\n"
-"komprimiert. Du kannst auch \"git gc\" manuell ausführen.\n"
+"komprimiert. Sie können auch \"git gc\" manuell ausführen.\n"
"Siehe \"git help gc\" für weitere Informationen.\n"
#: builtin/gc.c:249
msgid ""
"There are too many unreachable loose objects; run 'git prune' to remove them."
msgstr ""
-"Es gibt zu viele unerreichbare lose Objekte; führe 'git prune' aus, um diese "
-"zu löschen."
+"Es gibt zu viele unerreichbare lose Objekte; führen Sie 'git prune' aus, um "
+"diese zu löschen."
#: builtin/grep.c:22
msgid "git grep [options] [-e] <pattern> [<rev>...] [[--] <path>...]"
@@ -4918,7 +4918,7 @@ msgid ""
"Please consider using 'man.<tool>.cmd' instead."
msgstr ""
"'%s': Pfad für nicht unterstützten Handbuchbetrachter.\n"
-"Du könntest stattdessen 'man.<Werkzeug>.cmd' benutzen."
+"Sie könnten stattdessen 'man.<Werkzeug>.cmd' benutzen."
#: builtin/help.c:229
#, c-format
@@ -4927,7 +4927,7 @@ msgid ""
"Please consider using 'man.<tool>.path' instead."
msgstr ""
"'%s': Kommando für unterstützten Handbuchbetrachter.\n"
-"Du könntest stattdessen 'man.<Werkzeug>.path' benutzen."
+"Sie könnten stattdessen 'man.<Werkzeug>.path' benutzen."
#: builtin/help.c:299
msgid "The most commonly used git commands are:"
@@ -5636,8 +5636,8 @@ msgstr "git cherry [-v] [<Übernahmezweig> [<Arbeitszweig> [<Limit>]]]"
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
msgstr ""
-"Konnte gefolgten, externen Zweig nicht finden, bitte gebe <upstream> manuell "
-"an.\n"
+"Konnte gefolgten, externen Zweig nicht finden, bitte geben Sie <upstream> "
+"manuell an.\n"
#: builtin/log.c:1517 builtin/log.c:1519 builtin/log.c:1531
#, c-format
@@ -5956,7 +5956,7 @@ msgstr "konnte nicht von '%s' lesen"
#, c-format
msgid "Not committing merge; use 'git commit' to complete the merge.\n"
msgstr ""
-"Zusammenführung wurde nicht eingetragen; benutze 'git commit' um die "
+"Zusammenführung wurde nicht eingetragen; benutzen Sie 'git commit' um die "
"Zusammenführung abzuschließen.\n"
#: builtin/merge.c:788
@@ -5967,7 +5967,7 @@ msgid ""
"Lines starting with '#' will be ignored, and an empty message aborts\n"
"the commit.\n"
msgstr ""
-"Bitte gebe eine Versionsbeschreibung ein um zu erklären, warum diese "
+"Bitte geben Sie eine Versionsbeschreibung ein um zu erklären, warum diese "
"Zusammenführung erforderlich ist,\n"
"insbesondere wenn es einen aktualisierten, externen Zweig mit einem Thema-"
"Zweig zusammenführt.\n"
@@ -5988,8 +5988,8 @@ msgstr "Wunderbar.\n"
#, c-format
msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
msgstr ""
-"Automatische Zusammenführung fehlgeschlagen; behebe die Konflikte und trage "
-"dann das Ergebnis ein.\n"
+"Automatische Zusammenführung fehlgeschlagen; beheben Sie die Konflikte und tragen "
+"Sie dann das Ergebnis ein.\n"
#: builtin/merge.c:905
#, c-format
@@ -5998,7 +5998,7 @@ msgstr "'%s' ist keine Version"
#: builtin/merge.c:946
msgid "No current branch."
-msgstr "Du befindest dich auf keinem Zweig."
+msgstr "Sie befinden sich auf keinem Zweig."
#: builtin/merge.c:948
msgid "No remote for the current branch."
@@ -6029,34 +6029,34 @@ msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you can merge."
msgstr ""
-"Du hast deine Zusammenführung nicht abgeschlossen (MERGE_HEAD existiert).\n"
-"Bitte trage deine Änderungen ein, bevor du zusammenführen kannst."
+"Sie haben Ihre Zusammenführung nicht abgeschlossen (MERGE_HEAD existiert).\n"
+"Bitte tragen Sie Ihre Änderungen ein, bevor Sie zusammenführen können."
#: builtin/merge.c:1129 git-pull.sh:34
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr ""
-"Du hast deine Zusammenführung nicht abgeschlossen (MERGE_HEAD existiert)."
+"Sie haben Ihre Zusammenführung nicht abgeschlossen (MERGE_HEAD existiert)."
#: builtin/merge.c:1133
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you can merge."
msgstr ""
-"Du hast \"cherry-pick\" nicht abgeschlossen (CHERRY_PICK_HEAD existiert).\n"
-"Bitte trage deine Änderungen ein, bevor du zusammenführen kannst."
+"Sie haben \"cherry-pick\" nicht abgeschlossen (CHERRY_PICK_HEAD existiert).\n"
+"Bitte tragen Sie Ihre Änderungen ein, bevor Sie zusammenführen können."
#: builtin/merge.c:1136
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
msgstr ""
-"Du hast \"cherry-pick\" nicht abgeschlossen (CHERRY_PICK_HEAD existiert)."
+"Sie haben \"cherry-pick\" nicht abgeschlossen (CHERRY_PICK_HEAD existiert)."
#: builtin/merge.c:1145
msgid "You cannot combine --squash with --no-ff."
-msgstr "Du kannst --squash nicht mit --no-ff kombinieren."
+msgstr "Sie können --squash nicht mit --no-ff kombinieren."
#: builtin/merge.c:1150
msgid "You cannot combine --no-ff with --ff-only."
-msgstr "Du kannst --no-ff nicht mit --ff--only kombinieren."
+msgstr "Sie können --no-ff nicht mit --ff--only kombinieren."
#: builtin/merge.c:1157
msgid "No commit specified and merge.defaultToUpstream not set."
@@ -6116,7 +6116,7 @@ msgstr "Zusammenführung mit Strategie %s fehlgeschlagen.\n"
#: builtin/merge.c:1491
#, c-format
msgid "Using the %s to prepare resolving by hand.\n"
-msgstr "Benutze \"%s\" um die Auflösung per Hand vorzubereiten.\n"
+msgstr "Benutzen Sie \"%s\" um die Auflösung per Hand vorzubereiten.\n"
#: builtin/merge.c:1503
#, c-format
@@ -6461,7 +6461,7 @@ msgstr "konnte Datei '%s' nicht erstellen"
#: builtin/notes.c:192
msgid "Please supply the note contents using either -m or -F option"
-msgstr "Bitte liefere den Notiz-Inhalt unter Verwendung der Option -m oder -F."
+msgstr "Bitte liefern Sie den Notiz-Inhalt unter Verwendung der Option -m oder -F."
#: builtin/notes.c:213 builtin/notes.c:976
#, c-format
@@ -6575,7 +6575,7 @@ msgid ""
"existing notes"
msgstr ""
"Konnte Notizen nicht hinzufügen. Existierende Notizen für Objekt %s "
-"gefunden. Verwende '-f' um die existierenden Notizen zu überschreiben."
+"gefunden. Verwenden Sie '-f' um die existierenden Notizen zu überschreiben."
#: builtin/notes.c:588 builtin/notes.c:665
#, c-format
@@ -6603,7 +6603,7 @@ msgid ""
"existing notes"
msgstr ""
"Kann Notizen nicht kopieren. Existierende Notizen für Objekt %s gefunden. "
-"Verwende '-f' um die existierenden Notizen zu überschreiben."
+"Verwenden Sie '-f' um die existierenden Notizen zu überschreiben."
#: builtin/notes.c:671
#, c-format
@@ -6617,7 +6617,7 @@ msgid ""
"Please use 'git notes add -f -m/-F/-c/-C' instead.\n"
msgstr ""
"Die Optionen -m/-F/-c/-C sind für das Unterkommando 'edit' veraltet.\n"
-"Bitte benutze stattdessen 'git notes add -f -m/-F/-c/-C'.\n"
+"Bitte benutzen Sie stattdessen 'git notes add -f -m/-F/-c/-C'.\n"
#: builtin/notes.c:867
msgid "General options"
@@ -6908,14 +6908,14 @@ msgid ""
" git push %s %s\n"
"%s"
msgstr ""
-"Der Name des externen Übernahmezweiges stimmt nicht mit dem Namen deines\n"
+"Der Name des externen Übernahmezweiges stimmt nicht mit dem Namen Ihres\n"
"aktuellen Zweiges überein. Um auf den Übernahmezweig in dem externen\n"
-"Projektarchiv zu versenden, benutze:\n"
+"Projektarchiv zu versenden, benutzen Sie:\n"
"\n"
" git push %s HEAD:%s\n"
"\n"
"Um auf den Zweig mit dem selben Namen in dem externen Projekarchiv\n"
-"zu versenden, benutze:\n"
+"zu versenden, benutzen Sie:\n"
"\n"
" git push %s %s\n"
"%s"
@@ -6929,9 +6929,9 @@ msgid ""
"\n"
" git push %s HEAD:<name-of-remote-branch>\n"
msgstr ""
-"Du befindest dich sich im Moment auf keinem Zweig.\n"
+"Sie befinden sich im Moment auf keinem Zweig.\n"
"Um die Historie, führend zum aktuellen (freistehende Zweigspitze (HEAD))\n"
-"Status zu versenden, benutze\n"
+"Status zu versenden, benutzen Sie\n"
"\n"
" git push %s HEAD:<Name-des-externen-Zweiges>\n"
@@ -6945,7 +6945,7 @@ msgid ""
msgstr ""
"Der aktuelle Zweig %s hat keinen Zweig im externen Projektarchiv.\n"
"Um den aktuellen Zweig zu versenden und das Fernarchiv als externes\n"
-"Projektarchiv zu verwenden, benutze\n"
+"Projektarchiv zu verwenden, benutzen Sie\n"
"\n"
" git push --set-upstream %s %s\n"
@@ -6961,7 +6961,7 @@ msgid ""
"your current branch '%s', without telling me what to push\n"
"to update which remote branch."
msgstr ""
-"Du versendest nach '%s', welches kein externes Projektarchiv deines\n"
+"Sie versenden nach '%s', welches kein externes Projektarchiv Ihres\n"
"aktuellen Zweiges '%s' ist, ohne mir mitzuteilen, was ich versenden\n"
"soll, um welchen externen Zweig zu aktualisieren."
@@ -6985,26 +6985,25 @@ msgstr ""
"'push.default' ist nicht gesetzt; der implizit gesetzte Wert\n"
"wird in Git 2.0 von 'matching' nach 'simple' geändert. Um diese Meldung zu\n"
"unterdrücken und das aktuelle Verhalten nach Änderung des Standardwertes\n"
-"beizubehalten, benutze:\n"
+"beizubehalten, benutzen Sie:\n"
" git config --global push.default matching\n"
"\n"
"Um diese Meldung zu unterdrücken und das neue Verhalten jetzt zu "
-"übernehmen,\n"
-"benutze:\n"
+"übernehmen, benutzen Sie:\n"
"\n"
" git config --global push.default simple\n"
"\n"
-"Führe 'git help config' aus und suche nach 'push.default' für weitere "
-"Informationen.\n"
+"Führen Sie 'git help config' aus und suchen Sie nach 'push.default' für "
+"weitere Informationen.\n"
"(Der Modus 'simple' wurde in Git 1.7.11 eingeführt. Benutze den ähnlichen "
-"Modus 'current' anstatt 'simple', falls du gelegentlich ältere Versionen von "
-"Git benutzt.)"
+"Modus 'current' anstatt 'simple', falls Sie gelegentlich ältere Versionen von "
+"Git benutzen.)"
#: builtin/push.c:199
msgid ""
"You didn't specify any refspecs to push, and push.default is \"nothing\"."
msgstr ""
-"Du hast keine Referenzspezifikationen zum Versenden angegeben, und push."
+"Sie haben keine Referenzspezifikationen zum Versenden angegeben, und push."
"default ist \"nothing\"."
#: builtin/push.c:206
@@ -7014,9 +7013,10 @@ msgid ""
"before pushing again.\n"
"See the 'Note about fast-forwards' in 'git push --help' for details."
msgstr ""
-"Aktualisierungen wurden zurückgewiesen, weil die Spitze deines aktuellen\n"
-"Zweiges hinter seinem externen Gegenstück zurückgefallen ist. Führe die\n"
-"externen Änderungen zusammen (z.B. 'git pull') bevor du erneut versendest.\n"
+"Aktualisierungen wurden zurückgewiesen, weil die Spitze Ihres aktuellen\n"
+"Zweiges hinter seinem externen Gegenstück zurückgefallen ist. Führen Sie\n"
+"die externen Änderungen zusammen (z.B. 'git pull') bevor Sie erneut\n"
+"versenden.\n"
"Siehe auch die Sektion 'Note about fast-forwards' in 'git push --help'\n"
"für weitere Details."
@@ -7028,8 +7028,8 @@ msgid ""
"to 'simple', 'current' or 'upstream' to push only the current branch."
msgstr ""
"Aktualisierungen wurden zurückgewiesen, weil die Spitze eines versendeten\n"
-"Zweiges hinter seinem externen Gegenstück zurückgefallen ist. Wenn du nicht\n"
-"beabsichtigt hast, diesen Zweig zu versenden, kannst du auch den zu "
+"Zweiges hinter seinem externen Gegenstück zurückgefallen ist. Wenn Sie nicht\n"
+"beabsichtigt haben, diesen Zweig zu versenden, können Sie auch den zu "
"versendenden\n"
"Zweig spezifizieren oder die Konfigurationsvariable 'push.default' zu "
"'simple', 'current'\n"
@@ -7043,9 +7043,9 @@ msgid ""
"See the 'Note about fast-forwards' in 'git push --help' for details."
msgstr ""
"Aktualisierungen wurden zurückgewiesen, weil die Spitze eines versendeten\n"
-"Zweiges hinter seinem externen Gegenstück zurückgefallen ist. Checke diesen\n"
-"Zweig aus und führe die externen Änderungen zusammen (z.B. 'git pull')\n"
-"bevor du erneut versendest.\n"
+"Zweiges hinter seinem externen Gegenstück zurückgefallen ist. Checken Sie\n"
+"diesen Zweig aus und führen Sie die externen Änderungen zusammen\n"
+"(z.B. 'git pull') bevor Sie erneut versenden.\n"
"Siehe auch die Sektion 'Note about fast-forwards' in 'git push --help'\n"
"für weitere Details."
@@ -7077,12 +7077,12 @@ msgid ""
" git push <name>\n"
msgstr ""
"Kein Ziel zum Versenden konfiguriert.\n"
-"Entweder spezifizierst du die URL von der Kommandozeile oder konfigurierst "
+"Entweder spezifizieren Sie die URL von der Kommandozeile oder konfigurieren "
"ein externes Projektarchiv unter Benutzung von\n"
"\n"
" git remote add <Name> <URL>\n"
"\n"
-"und versendest dann unter Benutzung dieses Namens\n"
+"und versenden dann unter Benutzung dieses Namens\n"
"\n"
" git push <Name>\n"
@@ -7331,7 +7331,7 @@ msgid ""
"\t use --mirror=fetch or --mirror=push instead"
msgstr ""
"--mirror ist gefährlich und veraltet; bitte\n"
-"\t benutze stattdessen --mirror=fetch oder --mirror=push"
+"\t benutzen Sie stattdessen --mirror=fetch oder --mirror=push"
#: builtin/remote.c:147
#, c-format
@@ -7440,7 +7440,7 @@ msgstr ""
"Keine Aktualisierung der nicht standardmäßigen Referenzspezifikation zum "
"Abholen\n"
"\t%s\n"
-"\tBitte aktualisiere, falls notwendig, die Konfiguration manuell."
+"\tBitte aktualisieren Sie, falls notwendig, die Konfiguration manuell."
#: builtin/remote.c:683
#, c-format
@@ -7477,11 +7477,11 @@ msgid_plural ""
msgstr[0] ""
"Hinweis: Ein Zweig außerhalb der /refs/remotes/ Hierachie wurde nicht "
"gelöscht;\n"
-"um diesen zu löschen, benutze:"
+"um diesen zu löschen, benutzen Sie:"
msgstr[1] ""
"Hinweis: Einige Zweige außer der /refs/remotes/ Hierarchie wurden nicht "
"entfernt;\n"
-"um diese zu entfernen, benutze:"
+"um diese zu entfernen, benutzen Sie:"
#: builtin/remote.c:943
#, c-format
@@ -7494,7 +7494,7 @@ msgstr " gefolgt"
#: builtin/remote.c:948
msgid " stale (use 'git remote prune' to remove)"
-msgstr " veraltet (benutze 'git remote prune' zum Löschen)"
+msgstr " veraltet (benutzen Sie 'git remote prune' zum Löschen)"
#: builtin/remote.c:950
msgid " ???"
@@ -7647,8 +7647,8 @@ msgstr "Kann Hauptzweig des externen Projektarchivs nicht bestimmen"
#: builtin/remote.c:1218
msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
msgstr ""
-"Mehrere Hauptzweige im externen Projektarchiv. Bitte wähle explizit einen "
-"aus mit:"
+"Mehrere Hauptzweige im externen Projektarchiv. Bitte wählen Sie explizit "
+"einen aus mit:"
#: builtin/remote.c:1228
#, c-format
@@ -7814,7 +7814,7 @@ msgstr "keep"
#: builtin/reset.c:77
msgid "You do not have a valid HEAD."
-msgstr "Du hast keine gültige Zweigspitze (HEAD)."
+msgstr "Sie haben keine gültige Zweigspitze (HEAD)."
#: builtin/reset.c:79
msgid "Failed to find tree of HEAD."
@@ -7881,7 +7881,8 @@ msgstr "--patch ist inkompatibel mit --{hard,mixed,soft}"
#: builtin/reset.c:317
msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead."
msgstr ""
-"--mixed mit Pfaden ist veraltet; benutze stattdessen 'git reset -- <Pfade>'."
+"--mixed mit Pfaden ist veraltet; benutzen Sie stattdessen "
+"'git reset -- <Pfade>'."
#: builtin/reset.c:319
#, c-format
@@ -7922,7 +7923,7 @@ msgstr ""
" oder: git rev-parse --sq-quote [<Argumente>...]\n"
" oder: git rev-parse [Optionen] [<Argumente>...]\n"
"\n"
-"Führe \"git rev-parse --parseopt -h\" für weitere Informationen bei erster "
+"Führen Sie \"git rev-parse --parseopt -h\" für weitere Informationen bei erster "
"Verwendung aus."
#: builtin/revert.c:22
@@ -8025,8 +8026,8 @@ msgid ""
"(use 'rm -rf' if you really want to remove it including all of its history)"
msgstr ""
"Unterprojekt '%s' (oder ein geschachteltes Unterprojekt hiervon) verwendet\n"
-"ein .git-Verzeichnis (benutze 'rm -rf' wenn du dieses wirklich mitsamt\n"
-"seiner Historie löschen möchtest)"
+"ein .git-Verzeichnis (benutzen Sie 'rm -rf' wenn Sie dieses wirklich mitsamt\n"
+"seiner Historie löschen möchten)"
#: builtin/rm.c:174
#, c-format
@@ -8035,7 +8036,7 @@ msgid ""
"(use -f to force removal)"
msgstr ""
"'%s' hat bereitgestellten Inhalt unterschiedlich zu der Datei und der\n"
-"Zweigspitze (HEAD) (benutze -f um die Entfernung zu erzwingen)"
+"Zweigspitze (HEAD) (benutzen Sie -f um die Entfernung zu erzwingen)"
#: builtin/rm.c:180
#, c-format
@@ -8044,7 +8045,7 @@ msgid ""
"(use --cached to keep the file, or -f to force removal)"
msgstr ""
"'%s' hat Änderungen in der Bereitstellung\n"
-"(benutze --cached um die Datei zu behalten, oder -f um die Entfernung zu "
+"(benutzen Sie --cached um die Datei zu behalten, oder -f um die Entfernung zu "
"erzwingen)"
#: builtin/rm.c:191
@@ -8054,7 +8055,7 @@ msgid ""
"(use --cached to keep the file, or -f to force removal)"
msgstr ""
"'%s' hat lokale Modifikationen\n"
-"(benutze --cached um die Datei zu behalten, oder -f um die Entfernung zu "
+"(benutzen Sie --cached um die Datei zu behalten, oder -f um die Entfernung zu "
"erzwingen)"
#: builtin/rm.c:207
@@ -8334,7 +8335,7 @@ msgid ""
msgstr ""
"\n"
"#\n"
-"# Gebe eine Markierungsbeschreibung ein\n"
+"# Geben Sie eine Markierungsbeschreibung ein.\n"
"# Zeilen, die mit '#' beginnen, werden ignoriert.\n"
"#\n"
@@ -8349,9 +8350,9 @@ msgid ""
msgstr ""
"\n"
"#\n"
-"# Gebe eine Markierungsbeschreibung ein\n"
-"# Zeilen, die mit '#' beginnen, werden behalten; du darfst diese\n"
-"# selbst entfernen wenn du möchtest.\n"
+"# Geben Sie eine Markierungsbeschreibung ein.\n"
+"# Zeilen, die mit '#' beginnen, werden behalten; Sie dürfen diese\n"
+"# selbst entfernen wenn Sie möchten.\n"
"#\n"
#: builtin/tag.c:298
@@ -8790,14 +8791,14 @@ msgstr ""
#: git-am.sh:50
msgid "You need to set your committer info first"
-msgstr "Du musst zuerst die Informationen des Eintragenden setzen."
+msgstr "Sie müssen zuerst die Informationen des Eintragenden setzen."
#: git-am.sh:95
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
msgstr ""
-"Du scheinst seit dem letzten gescheiterten 'am' die Zweigspitze (HEAD)\n"
+"Sie scheinen seit dem letzten gescheiterten 'am' die Zweigspitze (HEAD)\n"
"geändert zu haben.\n"
"Keine Zurücksetzung zu ORIG_HEAD."
@@ -8808,12 +8809,11 @@ msgid ""
"If you prefer to skip this patch, run \"$cmdline --skip\" instead.\n"
"To restore the original branch and stop patching, run \"$cmdline --abort\"."
msgstr ""
-"Wenn du das Problem gelöst hast, führe \"$cmdline --resolved\" aus.\n"
-"Falls du diesen Patch auslassen möchtest, führe stattdessen \"$cmdline --skip"
-"\" aus.\n"
-"Um den ursprünglichen Zweig wiederherzustellen und die Anwendung der "
-"Patches\n"
-"abzubrechen, führe \"$cmdline --abort\" aus."
+"Wenn Sie das Problem gelöst haben, führen Sie \"$cmdline --resolved\" aus.\n"
+"Falls Sie diesen Patch auslassen möchten, führen Sie stattdessen\n"
+"\"$cmdline --skip\" aus.\n"
+"Um den ursprünglichen Zweig wiederherzustellen und die Anwendung der\n"
+"Patches abzubrechen, führen Sie \"$cmdline --abort\" aus."
#: git-am.sh:121
msgid "Cannot fall back to three-way merge."
@@ -8836,7 +8836,7 @@ msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
msgstr ""
-"Hast du den Patch per Hand editiert?\n"
+"Haben Sie den Patch per Hand editiert?\n"
"Er kann nicht auf die Blobs in seiner 'index' Zeile angewendet werden."
#: git-am.sh:163
@@ -8877,7 +8877,7 @@ msgstr ""
#: git-am.sh:482
msgid "Please make up your mind. --skip or --abort?"
-msgstr "Bitte werde dir klar. --skip oder --abort?"
+msgstr "Bitte werden Sie sich klar. --skip oder --abort?"
#: git-am.sh:509
msgid "Resolve operation not in progress, we are not resuming."
@@ -8897,11 +8897,11 @@ msgid ""
"To restore the original branch and stop patching run \"$cmdline --abort\"."
msgstr ""
"Patch ist leer. Wurde er falsch aufgeteilt?\n"
-"Wenn du diesen Patch auslassen möchtest, führe stattdessen \"$cmdline --skip"
-"\" aus.\n"
+"Wenn Sie diesen Patch auslassen möchten, führen Sie stattdessen\n"
+"\"$cmdline --skip\" aus.\n"
"Um den ursprünglichen Zweig wiederherzustellen und die Anwendung der "
"Patches\n"
-"abzubrechen, führe \"$cmdline --abort\" aus."
+"abzubrechen, führen Sie \"$cmdline --abort\" aus."
#: git-am.sh:706
msgid "Patch does not have a valid e-mail address."
@@ -8935,9 +8935,9 @@ msgid ""
"If there is nothing left to stage, chances are that something else\n"
"already introduced the same changes; you might want to skip this patch."
msgstr ""
-"Keine Änderungen - hast du vergessen 'git add' zu benutzen?\n"
+"Keine Änderungen - haben Sie vergessen 'git add' zu benutzen?\n"
"Wenn keine Änderungen mehr zum Bereitstellen vorhanden sind, könnten\n"
-"diese bereits anderweitig eingefügt worden sein; du könntest diesen Patch\n"
+"diese bereits anderweitig eingefügt worden sein; Sie könnten diesen Patch\n"
"auslassen."
#: git-am.sh:829
@@ -8945,8 +8945,8 @@ msgid ""
"You still have unmerged paths in your index\n"
"did you forget to use 'git add'?"
msgstr ""
-"Du hast immer noch nicht zusammengeführte Pfade in der Bereitstellung.\n"
-"Hast du vergessen 'git add' zu benutzen?"
+"Sie haben immer noch nicht zusammengeführte Pfade in der Bereitstellung.\n"
+"Haben Sie vergessen 'git add' zu benutzen?"
#: git-am.sh:845
msgid "No changes -- Patch already applied."
@@ -8972,14 +8972,14 @@ msgstr "wende zu leerer Historie an"
#: git-bisect.sh:48
msgid "You need to start by \"git bisect start\""
-msgstr "Du musst mit \"git bisect start\" beginnen."
+msgstr "Sie müssen mit \"git bisect start\" beginnen."
#. TRANSLATORS: Make sure to include [Y] and [n] in your
#. translation. The program will only accept English input
#. at this point.
#: git-bisect.sh:54
msgid "Do you want me to do it for you [Y/n]? "
-msgstr "Willst du, dass ich es für dich mache [Y/n]? "
+msgstr "Wollen Sie, dass ich es für Sie mache [Y/n]? "
#: git-bisect.sh:95
#, sh-format
@@ -9000,7 +9000,7 @@ msgstr "Ungültige Zweigspitze (HEAD) - Zweigspitze (HEAD) wird benötigt"
msgid ""
"Checking out '$start_head' failed. Try 'git bisect reset <validbranch>'."
msgstr ""
-"Auschecken von '$start_head' fehlgeschlagen. Versuche 'git bisect reset "
+"Auschecken von '$start_head' fehlgeschlagen. Versuchen Sie 'git bisect reset "
"<gueltigerzweig>'."
#: git-bisect.sh:140
@@ -9023,7 +9023,7 @@ msgstr "Ungültige Referenz-Eingabe: $arg"
#: git-bisect.sh:232
msgid "Please call 'bisect_state' with at least one argument."
-msgstr "Bitte rufe 'bisect_state' mit mindestens einem Argument auf."
+msgstr "Bitte rufen Sie 'bisect_state' mit mindestens einem Argument auf."
#: git-bisect.sh:244
#, sh-format
@@ -9045,15 +9045,15 @@ msgstr "Warnung: halbiere nur mit einer fehlerhaften Version"
#. at this point.
#: git-bisect.sh:279
msgid "Are you sure [Y/n]? "
-msgstr "Bist du sicher [Y/n]? "
+msgstr "Sind Sie sicher [Y/n]? "
#: git-bisect.sh:289
msgid ""
"You need to give me at least one good and one bad revisions.\n"
"(You can use \"git bisect bad\" and \"git bisect good\" for that.)"
msgstr ""
-"Du musst mindestens eine korrekte und eine fehlerhafte Version angeben.\n"
-"(Du kannst dafür \"git bisect bad\" und \"git bisect good\" benutzen.)"
+"Sie müssen mindestens eine korrekte und eine fehlerhafte Version angeben.\n"
+"(Sie können dafür \"git bisect bad\" und \"git bisect good\" benutzen.)"
#: git-bisect.sh:292
msgid ""
@@ -9061,10 +9061,10 @@ msgid ""
"You then need to give me at least one good and one bad revisions.\n"
"(You can use \"git bisect bad\" and \"git bisect good\" for that.)"
msgstr ""
-"Du musst mit \"git bisect start\" beginnen.\n"
-"Danach musst du mindestens eine korrekte und eine fehlerhafte Version "
+"Sie müssen mit \"git bisect start\" beginnen.\n"
+"Danach müssen Sie mindestens eine korrekte und eine fehlerhafte Version "
"angeben.\n"
-"(Du kannst dafür \"git bisect bad\" und \"git bisect good\" benutzen.)"
+"(Sie können dafür \"git bisect bad\" und \"git bisect good\" benutzen.)"
#: git-bisect.sh:347 git-bisect.sh:474
msgid "We are not bisecting."
@@ -9082,7 +9082,7 @@ msgid ""
"Try 'git bisect reset <commit>'."
msgstr ""
"Konnte die ursprüngliche Zweigspitze (HEAD) '$branch' nicht auschecken.\n"
-"Versuche 'git bisect reset <Version>'."
+"Versuchen Sie 'git bisect reset <Version>'."
#: git-bisect.sh:390
msgid "No logfile given"
@@ -9095,7 +9095,7 @@ msgstr "kann $file nicht für das Abspielen lesen"
#: git-bisect.sh:408
msgid "?? what are you talking about?"
-msgstr "?? Was redest du da?"
+msgstr "?? Was reden Sie da?"
#: git-bisect.sh:420
#, sh-format
@@ -9134,14 +9134,14 @@ msgid ""
"Please, fix them up in the work tree, and then use 'git add/rm <file>'\n"
"as appropriate to mark resolution, or use 'git commit -a'."
msgstr ""
-"\"pull\" ist nicht möglich, weil du nicht zusammengeführte Dateien hast.\n"
-"Bitte korrigiere dies im Arbeitsbaum und benutze dann 'git add/rm <Datei>'\n"
-"um die Auflösung entsprechend zu markieren, oder benutze 'git commit -a'."
+"\"pull\" ist nicht möglich, weil Sie nicht zusammengeführte Dateien haben.\n"
+"Bitte korrigieren Sie dies im Arbeitsbaum und benutzen Sie dann 'git add/rm <Datei>'\n"
+"um die Auflösung entsprechend zu markieren, oder benutzen Sie 'git commit -a'."
#: git-pull.sh:25
msgid "Pull is not possible because you have unmerged files."
msgstr ""
-"\"pull\" ist nicht möglich, weil du nicht zusammengeführte Dateien hast."
+"\"pull\" ist nicht möglich, weil Sie nicht zusammengeführte Dateien haben."
#: git-pull.sh:197
msgid "updating an unborn branch with changes added to the index"
@@ -9161,7 +9161,7 @@ msgid ""
"Warning: commit $orig_head."
msgstr ""
"Warnung: Die Anforderung aktualisierte die Spitze des aktuellen Zweiges.\n"
-"Warnung: Spule deinen Arbeitszweig von Version $orig_head vor."
+"Warnung: Spule Ihren Arbeitszweig von Version $orig_head vor."
#: git-pull.sh:254
msgid "Cannot merge multiple branches into empty head"
@@ -9178,12 +9178,12 @@ msgid ""
"To check out the original branch and stop rebasing, run \"git rebase --abort"
"\"."
msgstr ""
-"Wenn du das Problem aufgelöst hast, führe \"git rebase --continue\" aus.\n"
-"Falls du diesen Patch auslassen möchtest, führe stattdessen \"git rebase --"
+"Wenn Sie das Problem aufgelöst haben, führen Sie \"git rebase --continue\" aus.\n"
+"Falls Sie diesen Patch auslassen möchten, führen Sie stattdessen \"git rebase --"
"skip\" aus.\n"
"Um den ursprünglichen Zweig wiederherzustellen und den Neuaufbau "
"abzubrechen,\n"
-"führe \"git rebase --abort\" aus."
+"führen Sie \"git rebase --abort\" aus."
#: git-rebase.sh:160
msgid "The pre-rebase hook refused to rebase."
@@ -9215,7 +9215,7 @@ msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
msgstr ""
-"Du musst alle Zusammenführungskonflikte editieren und diese dann\n"
+"Sie müssen alle Zusammenführungskonflikte editieren und diese dann\n"
"mittels \"git add\" als aufgelöst markieren"
#: git-rebase.sh:340
@@ -9237,11 +9237,11 @@ msgid ""
msgstr ""
"Es sieht so aus, als ob es das Verzeichnis $state_dir_base bereits gibt\n"
"und es könnte ein anderer Neuaufbau im Gange sein. Wenn das der Fall ist,\n"
-"probiere bitte\n"
+"probieren Sie bitte\n"
"\t$cmd_live_rebase\n"
-"Wenn das nicht der Fall ist, probiere bitte\n"
+"Wenn das nicht der Fall ist, probieren Sie bitte\n"
"\t$cmd_clear_stale_rebase\n"
-"und führe dieses Kommando nochmal aus. Es wird angehalten, falls noch\n"
+"und führen Sie dieses Kommando nochmal aus. Es wird angehalten, falls noch\n"
"etwas Schützenswertes vorhanden ist."
#: git-rebase.sh:404
@@ -9271,7 +9271,7 @@ msgstr "fatal: Zweig $branch_name nicht gefunden"
#: git-rebase.sh:483
msgid "Please commit or stash them."
-msgstr "Bitte trage die Änderungen ein oder benutze \"stash\"."
+msgstr "Bitte tragen Sie die Änderungen ein oder benutzen Sie \"stash\"."
#: git-rebase.sh:501
#, sh-format
@@ -9293,7 +9293,7 @@ msgstr "Änderungen von $mb zu $onto:"
#: git-rebase.sh:524
msgid "First, rewinding head to replay your work on top of it..."
msgstr ""
-"Zunächst wird die Zweigspitze zurückgespult, um deine Änderungen\n"
+"Zunächst wird die Zweigspitze zurückgespult, um Ihre Änderungen\n"
"darauf neu anzuwenden..."
#: git-rebase.sh:532
@@ -9307,7 +9307,7 @@ msgstr "git stash clear mit Parametern ist nicht implementiert"
#: git-stash.sh:74
msgid "You do not have the initial commit yet"
-msgstr "Du hast bisher noch keine initiale Version"
+msgstr "Sie haben bisher noch keine initiale Version"
#: git-stash.sh:89
msgid "Cannot save the current index state"
@@ -9346,7 +9346,7 @@ msgid ""
" To provide a message, use git stash save -- '$option'"
msgstr ""
"Fehler: unbekannte Option für 'stash save': $option\n"
-" Um eine Beschreibung anzugeben, benutze \"git stash save -- "
+" Um eine Beschreibung anzugeben, benutzen Sie \"git stash save -- "
"'$option'\""
#: git-stash.sh:223
@@ -9400,7 +9400,7 @@ msgstr ""
#: git-stash.sh:424
msgid "Conflicts in index. Try without --index."
-msgstr "Konflikte in der Bereitstellung. Versuche es ohne --index."
+msgstr "Konflikte in der Bereitstellung. Versuchen Sie es ohne --index."
#: git-stash.sh:426
msgid "Could not save index tree"
@@ -9430,7 +9430,7 @@ msgstr "Kein Zweigname spezifiziert"
#: git-stash.sh:571
msgid "(To restore them type \"git stash apply\")"
-msgstr "(Zur Wiederherstellung gebe \"git stash apply\" ein)"
+msgstr "(Zur Wiederherstellung geben Sie \"git stash apply\" ein)"
#: git-submodule.sh:89
#, sh-format
@@ -9471,9 +9471,9 @@ msgid ""
"$sm_path\n"
"Use -f if you really want to add it."
msgstr ""
-"Der folgende Pfad wird durch eine deiner \".gitignore\" Dateien ignoriert:\n"
+"Der folgende Pfad wird durch eine Ihrer \".gitignore\" Dateien ignoriert:\n"
"$sm_path\n"
-"Benutze -f wenn du diesen wirklich hinzufügen möchtest."
+"Benutzen Sie -f wenn Sie diesen wirklich hinzufügen möchten."
#: git-submodule.sh:355
#, sh-format
@@ -9497,7 +9497,7 @@ msgstr "Ein Git-Verzeichnis für '$sm_name' wurde lokal gefunden mit den "
msgid ""
"If you want to reuse this local git directory instead of cloning again from"
msgstr ""
-"Wenn du dieses lokale Git-Verzeichnis wiederverwenden möchtest, anstatt "
+"Wenn Sie dieses lokale Git-Verzeichnis wiederverwenden möchtest, anstatt "
"erneut zu klonen"
#: git-submodule.sh:369
@@ -9505,7 +9505,7 @@ msgstr ""
msgid ""
"use the '--force' option. If the local git directory is not the correct repo"
msgstr ""
-"benutze die Option '--force'. Wenn das lokale Git-Verzeichnis nicht das "
+"benutzen Sie die Option '--force'. Wenn das lokale Git-Verzeichnis nicht das "
"korrekte Projektarchiv ist"
#: git-submodule.sh:370
@@ -9514,8 +9514,8 @@ msgid ""
"or you are unsure what this means choose another name with the '--name' "
"option."
msgstr ""
-"oder du dir unsicher bist, was das bedeutet, wähle einen anderen Namen mit "
-"der Option '--name'."
+"oder Sie sich unsicher sind, was das bedeutet, wählen Sie einen anderen Namen"
+"mit der Option '--name'."
#: git-submodule.sh:372
#, sh-format
@@ -9576,7 +9576,7 @@ msgid ""
"Maybe you want to use 'update --init'?"
msgstr ""
"Unterprojekt-Pfad '$sm_path' ist nicht initialisiert\n"
-"Vielleicht möchtest du 'update --init' benutzen?"
+"Vielleicht möchten Sie 'update --init' benutzen?"
#: git-submodule.sh:627
#, sh-format
--
1.8.1.rc3.dirty
^ permalink raw reply related
* Re: [PATCH v2 10/14] For each exclude pattern, store information about where it came from
From: Adam Spiers @ 2012-12-26 15:46 UTC (permalink / raw)
To: git list
In-Reply-To: <7vzk4k8joy.fsf@alter.siamese.dyndns.org>
On Thu, Sep 20, 2012 at 02:31:57PM -0700, Junio C Hamano wrote:
> Adam Spiers <git@adamspiers.org> writes:
>
> > void add_exclude(const char *string, const char *base,
> > - int baselen, struct exclude_list *el)
> > + int baselen, struct exclude_list *el, const char *src, int srcpos)
> > {
> > struct exclude *x;
> > size_t len;
> > @@ -341,6 +341,8 @@ void add_exclude(const char *string, const char *base,
> > x->base = base;
> > x->baselen = baselen;
> > x->flags = flags;
> > + x->src = src;
> > + x->srcpos = srcpos;
>
> Hrm, don't all elements "x" in "el" share the same "src", even if
> their srcpos may be different?
No not currently - please see the other mail I just sent to the
[PATCH v2 00/14] thread.
^ permalink raw reply
* Re: [PATCH v2 00/14] new git check-ignore sub-command
From: Adam Spiers @ 2012-12-26 15:44 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git list, Jeff King, Nguyễn Thái Ngọc
In-Reply-To: <7vsjac8j52.fsf@alter.siamese.dyndns.org>
On Thu, Sep 20, 2012 at 10:43 PM, Junio C Hamano <gitster@pobox.com> wrote:
> Junio C Hamano <gitster@pobox.com> writes:
>> Adam Spiers <git@adamspiers.org> writes:
>>> Adam Spiers (14):
>>> Update directory listing API doc to match code
>>> Improve documentation and comments regarding directory traversal API
>>> Rename cryptic 'which' variable to more consistent name
>>> Rename path_excluded() to is_path_excluded()
>>> Rename excluded_from_list() to is_excluded_from_list()
>>> Rename excluded() to is_excluded()
>>> Refactor is_excluded_from_list()
>>> Refactor is_excluded()
>>> Refactor is_path_excluded()
>>> For each exclude pattern, store information about where it came from
>>> Refactor treat_gitlinks()
>>> Extract some useful pathspec handling code from builtin/add.c into a
>>> library
>>> Provide free_directory() for reclaiming dir_struct memory
>>> Add git-check-ignore sub-command
[snipped]
> As to the "who owns x->src and when is it freed" question, it may
> make sense to give el a "filename" field (command line and other
> special cases would get whatever value you deem appropriate, like
> NULL or "<command line>"), have x->src point at that field when you
> queue many x's to the el in add_exc_from_file_to_list(). Then when
> you pop an element in the exclude_stack, you can free el->filename
> to plug a potential leak.
I have done this, but it required a change to struct dir:
Currently, when dir->exclude_stack is more than one entry deep, the
exclude_list pointed to by dir->exclude_list[EXC_DIRS] is a
concatenation of exclude elements from multiple files, so there will
be different values for src. The same is true of EXC_FILE, which
typically mixes patterns from .git/info/exclude and core.excludesfile.
Therefore I have split each exclude_list into potentially multiple
exclude_lists, one per pattern source, whilst preserving the EXC_*
grouping and ordering.
My latest re-roll of as/check-ignore is nearly ready, and when I send
it, you will see a new patch in there covering the above change.
> Also I do not see why you need to have the strdup() in the caller of
> add_excludes_from_file_to_list(). If you need to keep it stable
> because you are copying it away in exclude or excludde_list,
> wouldn't it make more sense to do that at the beginning of the
> callee, i.e. add_excludes_from_file_to_list() function?
No, because in all other callers of add_excludes_from_file_to_list(),
the exclude source is already stable. The re-roll will make this
clearer.
^ permalink raw reply
* [PATCH v2] wt-status: Show ignored files in untracked dirs
From: Antoine Pelisse @ 2012-12-26 13:31 UTC (permalink / raw)
To: git; +Cc: Antoine Pelisse
In-Reply-To: <1356516985-31068-1-git-send-email-apelisse@gmail.com>
When looking for ignored files, we do not recurse into untracked
directory, and simply consider the directory ignored status.
As a consequence, we don't see ignored files in those directories.
Change that behavior by recursing into untracked directories, if not
ignored themselves, searching for ignored files.
Signed-off-by: Antoine Pelisse <apelisse@gmail.com>
---
Actually, the previous patch breaks the case where the directory is ignored.
This one should fix both issues.
Let me know if you see any other use case that could be an issue.
dir.c | 7 +++++++
wt-status.c | 2 +-
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/dir.c b/dir.c
index 5a83aa7..2863799 100644
--- a/dir.c
+++ b/dir.c
@@ -1042,6 +1042,13 @@ static enum path_treatment treat_one_path(struct dir_struct *dir,
return path_ignored;
}
+ /*
+ * Don't recurse into ignored directories when looking for
+ * ignored files, but still show the directory as ignored.
+ */
+ if (exclude && (dir->flags & DIR_SHOW_IGNORED) && dtype == DT_DIR)
+ return path_handled;
+
switch (dtype) {
default:
return path_ignored;
diff --git a/wt-status.c b/wt-status.c
index 2a9658b..7c41488 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -516,7 +516,7 @@ static void wt_status_collect_untracked(struct wt_status *s)
if (s->show_ignored_files) {
dir.nr = 0;
- dir.flags = DIR_SHOW_IGNORED | DIR_SHOW_OTHER_DIRECTORIES;
+ dir.flags = DIR_SHOW_IGNORED;
fill_directory(&dir, s->pathspec);
for (i = 0; i < dir.nr; i++) {
struct dir_entry *ent = dir.entries[i];
--
1.8.1.rc3.12.g8864e38
^ permalink raw reply related
* Re: git-prompt.sh vs leading white space in __git_ps1()::printf_format
From: Simon Oosthoek @ 2012-12-26 12:51 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Piotr Krukowiecki, git
In-Reply-To: <7vvcbpp846.fsf@alter.siamese.dyndns.org>
* Junio C Hamano <gitster@pobox.com> [2012-12-25 23:47:53 -0800]:
> Can we make it take an optional third parameter so that we could say
>
> PROMPT_COMMAND='__git_ps1 ": \h \W" "; " "/%s"'
>
> to do the same as what the command substitution mode would have
> given for
>
> PS1=': \h \W$(__git_ps1 "/%s"); '
>
> perhaps?
>
> Totally untested, but perhaps along this line.
>
I tried your patch and (to my surprise, after the first reading) it worked.
I've further modified git-prompt.sh to include more usage text and I changed
the name of ps1 to gitstring, as it might be confused with PS1 upon casual
reading.
I'll be sending a format-patch patchmail ASAP...
> contrib/completion/git-prompt.sh | 24 ++++++++++++++----------
> 1 file changed, 14 insertions(+), 10 deletions(-)
>
> diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh
> index 9b074e1..b2579f4 100644
> --- a/contrib/completion/git-prompt.sh
> +++ b/contrib/completion/git-prompt.sh
> @@ -236,9 +236,10 @@ __git_ps1 ()
> local printf_format=' (%s)'
>
> case "$#" in
> - 2) pcmode=yes
> + 2|3) pcmode=yes
> ps1pc_start="$1"
> ps1pc_end="$2"
> + printf_format="${3:-$printf_format}"
> ;;
> 0|1) printf_format="${1:-$printf_format}"
> ;;
> @@ -339,6 +340,7 @@ __git_ps1 ()
>
> local f="$w$i$s$u"
> if [ $pcmode = yes ]; then
> + local ps1=
> if [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then
> local c_red='\e[31m'
> local c_green='\e[32m'
> @@ -356,29 +358,31 @@ __git_ps1 ()
> branch_color="$bad_color"
> fi
>
> - # Setting PS1 directly with \[ and \] around colors
> + # Setting ps1 directly with \[ and \] around colors
> # is necessary to prevent wrapping issues!
> - PS1="$ps1pc_start (\[$branch_color\]$branchstring\[$c_clear\]"
> + ps1="\[$branch_color\]$branchstring\[$c_clear\]"
>
> if [ -n "$w$i$s$u$r$p" ]; then
> - PS1="$PS1 "
> + ps1="$ps1 "
> fi
> if [ "$w" = "*" ]; then
> - PS1="$PS1\[$bad_color\]$w"
> + ps1="$ps1\[$bad_color\]$w"
> fi
> if [ -n "$i" ]; then
> - PS1="$PS1\[$ok_color\]$i"
> + ps1="$ps1\[$ok_color\]$i"
> fi
> if [ -n "$s" ]; then
> - PS1="$PS1\[$flags_color\]$s"
> + ps1="$ps1\[$flags_color\]$s"
> fi
> if [ -n "$u" ]; then
> - PS1="$PS1\[$bad_color\]$u"
> + ps1="$ps1\[$bad_color\]$u"
> fi
> - PS1="$PS1\[$c_clear\]$r$p)$ps1pc_end"
> + ps1="$ps1\[$c_clear\]$r$p"
> else
> - PS1="$ps1pc_start ($c${b##refs/heads/}${f:+ $f}$r$p)$ps1pc_end"
> + ps1="$c${b##refs/heads/}${f:+ $f}$r$p"
> fi
> + ps1=$(printf -- "$printf_format" "$ps1")
> + PS1="$ps1pc_start$ps1$ps1pc_end"
> else
> # NO color option unless in PROMPT_COMMAND mode
> printf -- "$printf_format" "$c${b##refs/heads/}${f:+ $f}$r$p"
/Simon
^ permalink raw reply
* [PATCH] wt-status: Show ignored files in untracked dirs
From: Antoine Pelisse @ 2012-12-26 10:16 UTC (permalink / raw)
To: git; +Cc: Antoine Pelisse
In-Reply-To: <50DA91AF.1060200@alum.mit.edu>
When looking for ignored files, we do not recurse into untracked
directory, and simply consider the directory ignored status.
As a consequence, we don't see ignored files in those directories.
Change that behavior by recursing into untracked directories searching
for ignored files.
Signed-off-by: Antoine Pelisse <apelisse@gmail.com>
---
I jumped in.
This seems to be broken since the creation of the --ignored option to
wt-status.
This fixes the issue and breaks none of the existing tests.
The behavior seems sane to me, giving something like that:
?? .gitignore
?? x
?? y/foo
!! x.ignore-me
!! y/foo.ignore-me
Cheers,
Antoine
wt-status.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/wt-status.c b/wt-status.c
index 2a9658b..7c41488 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -516,7 +516,7 @@ static void wt_status_collect_untracked(struct wt_status *s)
if (s->show_ignored_files) {
dir.nr = 0;
- dir.flags = DIR_SHOW_IGNORED | DIR_SHOW_OTHER_DIRECTORIES;
+ dir.flags = DIR_SHOW_IGNORED;
fill_directory(&dir, s->pathspec);
for (i = 0; i < dir.nr; i++) {
struct dir_entry *ent = dir.entries[i];
--
1.8.1.rc3.11.g86c3e6e.dirty
^ permalink raw reply related
* Re: [PATCH] gitweb: fix error when highlight is enabled
From: Junio C Hamano @ 2012-12-26 9:55 UTC (permalink / raw)
To: Orgad Shaneh; +Cc: git
In-Reply-To: <1356508456-17454-1-git-send-email-orgads@gmail.com>
Orgad Shaneh <orgads@gmail.com> writes:
> Use of uninitialized value in substitution iterator at gitweb.cgi line 1560
This is not just about squelching an error message, but more
importantly, attempting to fix an information lossage, no?
The statement captures each control character in the string to $1,
then matches a class of known/safe control chars against that
control character we just have seen. If matches, it just wants to
use that control character, otherwise it wants to apply quot_cec()
on that control character. It forgets that "$1" is reset
immediately when =~ matches with the class of known/safe control
chars, and your version attempts to fix it by recapturing it.
What if you are looking at a non-safe control, say "\001"? It is
matched and is captured by ([[;cntrl:]]), making $1 -eq "\001", and
then the replacement side of s///e operator, tries to match and
capture it with ([\t\n\r]), but it does *not* match.
What does that "$1" you are feeding quot_cec() contain at that
point? I _think_ "$1" is left intact when the inner match fails and
you are correctly feeding "\001" to quot_cec(), but it is not
immediately obvious. Perl regexp, especially s///e, is a yucky
language X-<.
I wonder if there is a better way to express what goes inside the
replacement side of this s///e construct in a more obvious way. The
updated one may be correct but it looks too subtle to my taste..
> Signed-off-by: Orgad Shaneh <orgads@gmail.com>
> ---
> gitweb/gitweb.perl | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index 0f207f2..862b9cd 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -1556,7 +1556,7 @@ sub sanitize {
> return undef unless defined $str;
>
> $str = to_utf8($str);
> - $str =~ s|([[:cntrl:]])|($1 =~ /[\t\n\r]/ ? $1 : quot_cec($1))|eg;
> + $str =~ s|([[:cntrl:]])|($1 =~ /([\t\n\r])/ ? $1 : quot_cec($1))|eg;
> return $str;
> }
^ permalink raw reply
* Re: [PATCH] refs: do not use cached refs in repack_without_ref
From: Michael Haggerty @ 2012-12-26 8:24 UTC (permalink / raw)
To: Jeff King; +Cc: git, Junio C Hamano
In-Reply-To: <20121221080449.GA21741@sigill.intra.peff.net>
On 12/21/2012 09:04 AM, Jeff King wrote:
> When we delete a ref that is packed, we rewrite the whole
> packed-refs file and simply omit the ref that no longer
> exists. However, we base the rewrite on whatever happens to
> be in our refs cache, not what is necessarily on disk. That
> opens us up to a race condition if another process is
> simultaneously packing the refs, as we will overwrite their
> newly-made pack-refs file with our potentially stale data,
> losing commits.
> [...]
>
> There are a few other interesting races in this code that this does not
> fix:
>
> 1. We check to see whether the ref is packed based on the cached data.
> That means that in the following sequence:
>
> a. receive-pack starts, caches packed refs; master is not packed
>
> b. meanwhile, pack-refs runs and packs master
>
> c. receive-pack deletes the loose ref for master (which might be
> a no-op if the pack-refs from (b) got there first). It checks
> its cached packed-refs and sees that there is nothing to
> delete.
>
> We end up leaving the entry in packed-refs. In other words, the
> deletion does not actually delete anything, but it still returns
> success.
>
> We could fix this by scanning the list of packed refs only after
> we've acquired the lock. The downside is that this would increase
> lock contention on packed-refs.lock. Right now, two deletions may
> conflict if they are deletions of packed refs. With this change,
> any two deletions might conflict, packed or not.
>
> If we work under the assumption that deletions are relatively rare,
> this is probably OK. And if you tend to keep your refs packed, it
> would not make any difference. It would have an impact on repos
> which do not pack refs, and which have frequent simultaneous
> deletions.
>
> 2. The delete_ref function first deletes the loose ref, then rewrites
> the packed-refs file. This means that for a moment, the ref may
> appear to have rewound to whatever was in the packed-refs file, and
> the reader has no way of knowing.
>
> This is not a huge deal, but I think it could be fixed by swapping
> the ordering. However, I think that would open us up to the reverse
> race from above: we delete from packed-refs, then before we delete
> the loose ref, a pack-refs process repacks it. Our deletion looks
> successful, but the ref remains afterwards.
I'm sorry to take so long to respond to this patch. Thank you for
tracking down this bug and for your careful analysis.
I think your patch is correct and should fix the first race condition
that you described. But I think the continued existence of the other
race conditions is an indication of a fundamental problem with the
reference locking policy--independent of the in-RAM reference cache.
The tacit assumption of the current locking policy is that changes to
the packed-refs file are not critical for correctness, because loose
references take precedence over it anyway. This is true for adding and
modifying references. But it is not true for deleting references,
because there is no way for a deletion to be represented as a loose
reference in a way that takes precedence over the packed-refs file
(i.e., there is no way for a loose reference to say "I am deleted,
regardless of what packed-refs says"). Thus the race conditions for
deleting references, whether via delete_ref() or via pack_refs() with
--prune.
The current algorithms for deleting references are:
* Delete reference foo:
1. Acquire the lock $GIT_DIR/refs/heads/foo.lock
2. Unlink $GIT_DIR/refs/heads/foo
3. repack_without_ref():
a. Acquire the lock $GIT_DIR/packed-refs.lock
b. Write the packed-refs without the "foo" reference to
$GIT_DIR/packed-refs.lock
c. Rename $GIT_DIR/packed-refs.lock to $GIT_DIR/packed-refs
4. Release lock $GIT_DIR/refs/heads/foo.lock
* Pack references:
1. Acquire lock $GIT_DIR/packed-refs.lock
2. for_each_ref() call handle_one_ref():
a. Write ref and its SHA1 to $GIT_DIR/packed-refs.lock
b. Possibly record ref and its SHA1 in the refs_to_prune list.
3. Commit $GIT_DIR/packed-refs
4. prune_refs(): for each ref in the ref_to_prune list, call
prune_ref():
a. Lock the reference using lock_ref_sha1(), verifying that the
recorded SHA1 is still valid. If it is, unlink the loose
reference file then free the lock; otherwise leave the loose
reference file untouched.
There is a problem if two processes try to delete a reference at the
same time, or if one process tries to delete a reference at the same
time as another process is trying to pack the references. The reason is
that there is no "transaction" that spans both the rewriting of the
packed-refs file and also the deletion of the loose-ref files, and
therefore it is possible for conflicting changes to be made in the two
locations.
I think that all of the problems would be fixed if a lock would be held
on the packed-refs file during the whole process of deleting any
reference; i.e., change the algorithms to:
* Delete reference foo:
1. Acquire the lock $GIT_DIR/packed-refs.lock (regardless of whether
"foo" is a packed ref)
2. Write to $GIT_DIR/packed-refs.new a version of the packed-refs
file that omits "foo"
3. Atomically replace $GIT_DIR/packed-refs with
$GIT_DIR/packed-refs.new (but without relinquishing the lock
$GIT_DIR/packed-refs.lock)
4. Delete loose ref for "foo":
a. Acquire the lock $GIT_DIR/refs/heads/foo.lock
b. Unlink $GIT_DIR/refs/heads/foo if it is unchanged. If it is
changed, leave it untouched. If it is deleted, that is OK too.
c. Release lock $GIT_DIR/refs/heads/foo.lock
5. Release lock $GIT_DIR/packed-refs.lock (without changing
$GIT_DIR/packed-refs again)
* Pack references:
1. Acquire lock $GIT_DIR/packed-refs.lock
2. for_each_ref() call handle_one_ref():
a. Write ref and its SHA1 to $GIT_DIR/packed-refs.new
b. Possibly record ref and its SHA1 in the refs_to_prune list.
3. Atomically replace $GIT_DIR/packed-refs with
$GIT_DIR/packed-refs.new (but without relinquishing the lock
$GIT_DIR/packed-refs.lock)
4. prune_refs(): for each ref in the ref_to_prune list, call
prune_ref():
a. Lock the loose reference using lock_ref_sha1(), verifying that
the recorded SHA1 is still valid
b. If it is, unlink the loose reference file (otherwise, leave
it untouched)
c. Release the lock on the loose reference
5. Release lock $GIT_DIR/packed-refs.lock (without changing
$GIT_DIR/packed-refs again)
It is important that after step (3) in either of the above algorithms,
the new packed-refs file has been switched "live" even though there is
no way to guarantee that it holds the correct values for all references.
This is OK, because (a) references that have been added or changed will
be represented by loose references that take precedence over the stale
references in the packed-refs file; (b) no references can have been
deleted while the packed-refs file was being rewritten, because
reference deletion is serialized via the lock on the packed-refs file.
If one of the later steps fails, it is OK to leave this version of the
packed-refs file active.
The proposed algorithms will have to hold the lock on packed-refs for
much longer; in the case of packed-refs, the lock has to be held for the
whole time that all of the loose references are being deleted.
Effectively it is being used to prevent other processes from deleting
references while it is working because that would make the just-written
packed-refs file invalid.
I would appreciate a critique of my analysis. Even if you agree, I
think it would be OK to apply Peff's patch to fix up the most pressing
problem, then implement the more complete solution later.
By the way, this is something that I would be happy to add to my to-do
list, but it could take a while for me to get to it because of a lack of
time and because I'm still busy with two other biggish git-related
projects (git-multimail [1] and a git merging helper [2]).
Michael
[1] https://github.com/mhagger/git-multimail
[2] A fun project that I haven't yet mentioned on the list
--
Michael Haggerty
mhagger@alum.mit.edu
http://softwareswirl.blogspot.com/
^ permalink raw reply
* [PATCH] gitweb: fix error when highlight is enabled
From: Orgad Shaneh @ 2012-12-26 7:54 UTC (permalink / raw)
To: git; +Cc: Orgad Shaneh
Use of uninitialized value in substitution iterator at gitweb.cgi line 1560
Signed-off-by: Orgad Shaneh <orgads@gmail.com>
---
gitweb/gitweb.perl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 0f207f2..862b9cd 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -1556,7 +1556,7 @@ sub sanitize {
return undef unless defined $str;
$str = to_utf8($str);
- $str =~ s|([[:cntrl:]])|($1 =~ /[\t\n\r]/ ? $1 : quot_cec($1))|eg;
+ $str =~ s|([[:cntrl:]])|($1 =~ /([\t\n\r])/ ? $1 : quot_cec($1))|eg;
return $str;
}
--
1.7.10.4
^ permalink raw reply related
* Re: git-prompt.sh vs leading white space in __git_ps1()::printf_format
From: Junio C Hamano @ 2012-12-26 7:47 UTC (permalink / raw)
To: Simon Oosthoek; +Cc: Piotr Krukowiecki, git
In-Reply-To: <50C8E857.5080000@xs4all.nl>
Simon Oosthoek <s.oosthoek@xs4all.nl> writes:
> On 12/12/12 18:50, Junio C Hamano wrote:
>> Simon Oosthoek <s.oosthoek@xs4all.nl> writes:
>>
>>> This removes most of the ambiguities :-)
>>> Ack from me!
>>
>> OK, as this is a low-impact finishing touch for a new feature, I'll
>> fast-track this to 'master' before the final release.
>>
>
> Ok, wonderful!
> BTW, I tried the thing I mentioned and it was safe to do:
> PS1='blabla$(__git_ps1 x y)blabla'
> will not eat your prompt, although I'd recommend putting something
> useful instead of blabla ;-)
Actually, I deeply regret merging this to 'master'. The original
"as a command substitution in PS1" mode, you could add anything
around the status string, so I could do:
PS1=': \h \W$(__git_ps1 "/%s"); '
to get something like:
: hostname dirname/<STATUS>; <CURSOR HERE>
In the new PROMPT_COMMAND mode, there is always parentheses around
the status string (and an SP before the parenthesees) that the user
cannot get rid of.
This is not a usability regression per-se (if you do not like the
extra parentheses, you do not have to use the colored mode), but is
something that will make me never use the mode.
Can we make it take an optional third parameter so that we could say
PROMPT_COMMAND='__git_ps1 ": \h \W" "; " "/%s"'
to do the same as what the command substitution mode would have
given for
PS1=': \h \W$(__git_ps1 "/%s"); '
perhaps?
Totally untested, but perhaps along this line.
contrib/completion/git-prompt.sh | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh
index 9b074e1..b2579f4 100644
--- a/contrib/completion/git-prompt.sh
+++ b/contrib/completion/git-prompt.sh
@@ -236,9 +236,10 @@ __git_ps1 ()
local printf_format=' (%s)'
case "$#" in
- 2) pcmode=yes
+ 2|3) pcmode=yes
ps1pc_start="$1"
ps1pc_end="$2"
+ printf_format="${3:-$printf_format}"
;;
0|1) printf_format="${1:-$printf_format}"
;;
@@ -339,6 +340,7 @@ __git_ps1 ()
local f="$w$i$s$u"
if [ $pcmode = yes ]; then
+ local ps1=
if [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then
local c_red='\e[31m'
local c_green='\e[32m'
@@ -356,29 +358,31 @@ __git_ps1 ()
branch_color="$bad_color"
fi
- # Setting PS1 directly with \[ and \] around colors
+ # Setting ps1 directly with \[ and \] around colors
# is necessary to prevent wrapping issues!
- PS1="$ps1pc_start (\[$branch_color\]$branchstring\[$c_clear\]"
+ ps1="\[$branch_color\]$branchstring\[$c_clear\]"
if [ -n "$w$i$s$u$r$p" ]; then
- PS1="$PS1 "
+ ps1="$ps1 "
fi
if [ "$w" = "*" ]; then
- PS1="$PS1\[$bad_color\]$w"
+ ps1="$ps1\[$bad_color\]$w"
fi
if [ -n "$i" ]; then
- PS1="$PS1\[$ok_color\]$i"
+ ps1="$ps1\[$ok_color\]$i"
fi
if [ -n "$s" ]; then
- PS1="$PS1\[$flags_color\]$s"
+ ps1="$ps1\[$flags_color\]$s"
fi
if [ -n "$u" ]; then
- PS1="$PS1\[$bad_color\]$u"
+ ps1="$ps1\[$bad_color\]$u"
fi
- PS1="$PS1\[$c_clear\]$r$p)$ps1pc_end"
+ ps1="$ps1\[$c_clear\]$r$p"
else
- PS1="$ps1pc_start ($c${b##refs/heads/}${f:+ $f}$r$p)$ps1pc_end"
+ ps1="$c${b##refs/heads/}${f:+ $f}$r$p"
fi
+ ps1=$(printf -- "$printf_format" "$ps1")
+ PS1="$ps1pc_start$ps1$ps1pc_end"
else
# NO color option unless in PROMPT_COMMAND mode
printf -- "$printf_format" "$c${b##refs/heads/}${f:+ $f}$r$p"
^ permalink raw reply related
* Bug in git status
From: Michael Haggerty @ 2012-12-26 5:57 UTC (permalink / raw)
To: git discussion list
I think I have found a bug in "git status --untracked-files=all
--ignored", in both 1.8.0 and in master:
$ git init status-test
Initialized empty Git repository in
/home/mhagger/self/proj/git/status-test/.git/
$ cd status-test
$ touch x
$ touch x.ignore-me
$ mkdir y
$ touch y/foo
$ touch y/foo.ignore-me
$ git status --porcelain --untracked-files=all --ignored
?? x
?? x.ignore-me
?? y/foo
?? y/foo.ignore-me
The above output is what I expect. But if I add a .gitignore file, the
output of y/foo.ignore-me is incorrectly suppressed:
$ echo '*.ignore-me' >.gitignore
$ git status --porcelain --untracked-files=all --ignored
?? .gitignore
?? x
?? y/foo
!! x.ignore-me
I came across this problem when trying to use the results of the above
command to build a more flexible "git clean" type of script.
I don't have time to look into this at the moment, if somebody wants to
jump in.
Michael
--
Michael Haggerty
mhagger@alum.mit.edu
http://softwareswirl.blogspot.com/
^ permalink raw reply
* Re: [PATCH] stash: treat numerical arguments as shorthand for stash@{n}
From: Junio C Hamano @ 2012-12-26 2:08 UTC (permalink / raw)
To: Peter Collingbourne; +Cc: git
In-Reply-To: <1356482314-29044-1-git-send-email-peter@pcc.me.uk>
Peter Collingbourne <peter@pcc.me.uk> writes:
> This patch causes git-stash to treat any argument consisting of
> between one and three numerical digits as if it were of the form
> `stash@{<n>}`, where `<n>` is the argument supplied.
Inperative mood.
>
> This is a significant usability improvement for people dealing with
> multiple stashes, as it avoids redundantly typing 'stash@{' ... '}'
> (which involves shifted characters on most keyboards) in the very
> common case that the stash was created using git-stash.
Be less subjective by dropping "significant"; do not shove the
judgement down the throat of reviewers.
> diff --git a/Documentation/git-stash.txt b/Documentation/git-stash.txt
> index 711ffe1..8ffcc97 100644
> --- a/Documentation/git-stash.txt
> +++ b/Documentation/git-stash.txt
> @@ -40,6 +40,10 @@ the usual reflog syntax (e.g. `stash@{0}` is the most recently
> created stash, `stash@{1}` is the one before it, `stash@{2.hours.ago}`
> is also possible).
>
> +Any argument supplied to this command consisting of between one
> +and three numerical digits is treated as if it were of the
> +form `stash@{<n>}`, where `<n>` is the argument supplied.
Why up to 999, not 99 or 9999?
How about doing it this way instead:
if commit=$(git rev-parse --verify --quiet $arg^0)
then
: that is a commit-ish, even though it is 0123
elif test "$arg" = 0 || expr "$arg" : '[1-9][0-9]*$' >/dev/null &&
commit=$(git rev-parse --verify --quiet "stash@{$arg}^0")
then
: $arg is decimal integer and stash@{$arg} is a commit-ish
else
BAD
fi
> diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh
> index 5dfbda7..5467acf 100755
> --- a/t/t3903-stash.sh
> +++ b/t/t3903-stash.sh
> @@ -38,7 +38,7 @@ test_expect_success 'parents of stash' '
> '
>
> test_expect_success 'applying bogus stash does nothing' '
> - test_must_fail git stash apply stash@{1} &&
> + test_must_fail git stash apply 1 &&
If you are _adding_ a feature, do not remove tests for existing one;
otherwise you will risk masking a breakage you may be introducing to
an existing feature. Add tests to check that (1) your new feature
works when it should, and (2) your new feature does *not* kick in
when it should not. For example, if you only accept up to 3-digit
decimal integer, make sure feeding 0000 (or something that is *not*
3-digit decimal integer) does not trigger your new feature.
> echo 1 >expect &&
> test_cmp expect file
> '
> @@ -113,7 +113,7 @@ test_expect_success 'drop middle stash' '
> git stash &&
> echo 9 > file &&
> git stash &&
> - git stash drop stash@{1} &&
> + git stash drop 1 &&
Likewise throughout the patch.
^ permalink raw reply
* [PATCH] stash: treat numerical arguments as shorthand for stash@{n}
From: Peter Collingbourne @ 2012-12-26 0:38 UTC (permalink / raw)
To: git; +Cc: Peter Collingbourne
This patch causes git-stash to treat any argument consisting of
between one and three numerical digits as if it were of the form
`stash@{<n>}`, where `<n>` is the argument supplied.
This is a significant usability improvement for people dealing with
multiple stashes, as it avoids redundantly typing 'stash@{' ... '}'
(which involves shifted characters on most keyboards) in the very
common case that the stash was created using git-stash.
Signed-off-by: Peter Collingbourne <peter@pcc.me.uk>
---
Documentation/git-stash.txt | 4 ++++
git-stash.sh | 15 ++++++++++++++-
t/t3903-stash.sh | 18 +++++++++---------
3 files changed, 27 insertions(+), 10 deletions(-)
diff --git a/Documentation/git-stash.txt b/Documentation/git-stash.txt
index 711ffe1..8ffcc97 100644
--- a/Documentation/git-stash.txt
+++ b/Documentation/git-stash.txt
@@ -40,6 +40,10 @@ the usual reflog syntax (e.g. `stash@{0}` is the most recently
created stash, `stash@{1}` is the one before it, `stash@{2.hours.ago}`
is also possible).
+Any argument supplied to this command consisting of between one
+and three numerical digits is treated as if it were of the
+form `stash@{<n>}`, where `<n>` is the argument supplied.
+
OPTIONS
-------
diff --git a/git-stash.sh b/git-stash.sh
index bbefdf6..2232719 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -327,7 +327,20 @@ parse_flags_and_rev()
i_tree=
u_tree=
- REV=$(git rev-parse --no-flags --symbolic "$@") || exit 1
+ ARGS=
+ for arg
+ do
+ case "$arg" in
+ [0-9]|[0-9][0-9]|[0-9][0-9][0-9])
+ ARGS="${ARGS}${ARGS:+ }${ref_stash}@{$arg}"
+ ;;
+ *)
+ ARGS="${ARGS}${ARGS:+ }$arg"
+ ;;
+ esac
+ done
+
+ REV=$(git rev-parse --no-flags --symbolic $ARGS) || exit 1
FLAGS=
for opt
diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh
index 5dfbda7..5467acf 100755
--- a/t/t3903-stash.sh
+++ b/t/t3903-stash.sh
@@ -38,7 +38,7 @@ test_expect_success 'parents of stash' '
'
test_expect_success 'applying bogus stash does nothing' '
- test_must_fail git stash apply stash@{1} &&
+ test_must_fail git stash apply 1 &&
echo 1 >expect &&
test_cmp expect file
'
@@ -113,7 +113,7 @@ test_expect_success 'drop middle stash' '
git stash &&
echo 9 > file &&
git stash &&
- git stash drop stash@{1} &&
+ git stash drop 1 &&
test 2 = $(git stash list | wc -l) &&
git stash apply &&
test 9 = $(cat file) &&
@@ -570,16 +570,16 @@ test_expect_success 'ref with non-existent reflog' '
test_expect_success 'invalid ref of the form stash@{n}, n >= N' '
git stash clear &&
- test_must_fail git stash drop stash@{0} &&
+ test_must_fail git stash drop 0 &&
echo bar5 > file &&
echo bar6 > file2 &&
git add file2 &&
git stash &&
- test_must_fail git stash drop stash@{1} &&
- test_must_fail git stash pop stash@{1} &&
- test_must_fail git stash apply stash@{1} &&
- test_must_fail git stash show stash@{1} &&
- test_must_fail git stash branch tmp stash@{1} &&
+ test_must_fail git stash drop 1 &&
+ test_must_fail git stash pop 1 &&
+ test_must_fail git stash apply 1 &&
+ test_must_fail git stash show 1 &&
+ test_must_fail git stash branch tmp 1 &&
git stash drop
'
@@ -590,7 +590,7 @@ test_expect_success 'stash branch should not drop the stash if the branch exists
git commit -m initial &&
echo bar >file &&
git stash &&
- test_must_fail git stash branch master stash@{0} &&
+ test_must_fail git stash branch master 0 &&
git rev-parse stash@{0} --
'
--
1.7.5.3
^ permalink raw reply related
* Re: Using Eclipse git plugin
From: Robin Rosenberg @ 2012-12-25 21:01 UTC (permalink / raw)
To: Dennis Putnam; +Cc: git
In-Reply-To: <50D72E73.8070501@bellsouth.net>
----- Ursprungligt meddelande -----
> This may be more of an Eclipse question than a git question but
> hopefully someone on this list knows both. I now have a working git
> central repository (on Linux) and a local repository clone (on
> Windows).
> I can see and edit my files in Eclipse, commit them and push them to
> the
> remote repository. The problem I am having now is developing my code
> in
> Eclipse. It seems I can no longer run the code as the 'Run as
> Application' menu item is missing. How do I test my code now? TIA.
You're better off visiting the some Eclipse forums for this. I see
no reason to suspect this has anything to do Git or even EGit. You should
check the Error log view for hints errors hidden from view. It can also
be the case that your selection is not a Java class with a test case or
main method.
If it is EGit-related, http://www.eclipse.org/egit/support contains more
tips on getting help.
-- robin
^ 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