* Re: [PATCH 1/4] t4041 (diff-submodule-option): parse digests sensibly
From: Junio C Hamano @ 2012-11-27 17:38 UTC (permalink / raw)
To: Ramkumar Ramachandra; +Cc: Git List
In-Reply-To: <1354005692-2809-2-git-send-email-artagnon@gmail.com>
Ramkumar Ramachandra <artagnon@gmail.com> writes:
> `git rev-list --max-count=1 HEAD` is a roundabout way of saying `git
> rev-parse --verify HEAD`; replace a bunch of instances of the former
> with the latter. Also, don't unnecessarily `cut -c1-7` the rev-parse
> output when the `--short` option is available.
>
> Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
> ---
> t/t4041-diff-submodule-option.sh | 14 +++++++-------
> 1 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/t/t4041-diff-submodule-option.sh b/t/t4041-diff-submodule-option.sh
> index 5377639..cfb71e5 100755
> --- a/t/t4041-diff-submodule-option.sh
> +++ b/t/t4041-diff-submodule-option.sh
> @@ -21,7 +21,7 @@ add_file () {
> test_tick &&
> git commit -m "Add $name"
> done >/dev/null
> - git rev-parse --verify HEAD | cut -c1-7
> + git rev-parse --short --verify HEAD
> cd "$owd"
> }
> commit_file () {
> @@ -33,7 +33,7 @@ test_create_repo sm1 &&
> add_file . foo >/dev/null
>
> head1=$(add_file sm1 foo1 foo2)
> -fullhead1=$(cd sm1; git rev-list --max-count=1 $head1)
> +fullhead1=$(cd sm1; git rev-parse --verify $head1)
That still is a roundabout way to say "git rev-parse --verify HEAD",
no? Why feed a shortened one to get the expanded result when you
know the full representation of HEAD is what you want?
> test_expect_success 'added submodule' "
> git add sm1 &&
> @@ -116,8 +116,8 @@ EOF
> test_cmp expected actual
> "
>
> -fullhead2=$(cd sm1; git rev-list --max-count=1 $head2)
> test_expect_success 'modified submodule(forward) --submodule=short' "
> +fullhead2=$(cd sm1; git rev-parse --verify $head2)
> git diff --submodule=short >actual &&
> cat >expected <<-EOF &&
> diff --git a/sm1 b/sm1
> @@ -135,7 +135,7 @@ commit_file sm1 &&
> head3=$(
> cd sm1 &&
> git reset --hard HEAD~2 >/dev/null &&
> - git rev-parse --verify HEAD | cut -c1-7
> + git rev-parse --short --verify HEAD
> )
>
> test_expect_success 'modified submodule(backward)' "
> @@ -220,8 +220,8 @@ EOF
> rm -f sm1 &&
> test_create_repo sm1 &&
> head6=$(add_file sm1 foo6 foo7)
> -fullhead6=$(cd sm1; git rev-list --max-count=1 $head6)
> test_expect_success 'nonexistent commit' "
> +fullhead6=$(cd sm1; git rev-parse --verify $head6)
> git diff-index -p --submodule=log HEAD >actual &&
> cat >expected <<-EOF &&
> Submodule sm1 $head4...$head6 (commits not present)
> @@ -318,8 +318,8 @@ EOF
> "
>
> (cd sm1; git commit -mchange foo6 >/dev/null) &&
> -head8=$(cd sm1; git rev-parse --verify HEAD | cut -c1-7) &&
> test_expect_success 'submodule is modified' "
> +head8=$(cd sm1; git rev-parse --short --verify HEAD) &&
> git diff-index -p --submodule=log HEAD >actual &&
> cat >expected <<-EOF &&
> Submodule sm1 $head6..$head8:
> @@ -461,7 +461,7 @@ EOF
> test_cmp expected actual
> "
>
> -fullhead7=$(cd sm2; git rev-list --max-count=1 $head7)
> +fullhead7=$(cd sm2; git rev-parse --verify $head7)
>
> test_expect_success 'given commit --submodule=short' "
> git diff-index -p --submodule=short HEAD^ >actual &&
^ permalink raw reply
* Re: Interesting git-format-patch bug
From: Junio C Hamano @ 2012-11-27 17:29 UTC (permalink / raw)
To: Perry Hutchison; +Cc: git, alan.r.olsen
In-Reply-To: <50b4304c.EwQy4JquPwsUyMfZ%perryh@pluto.rain.com>
perryh@pluto.rain.com (Perry Hutchison) writes:
> Junio C Hamano <gitster@pobox.com> wrote:
>> "Olsen, Alan R" <alan.r.olsen@intel.com> writes:
>> > I found an interesting bug in git-format-patch.
>> >
>> > Say you have a branch A. You create branch B and add a patch to
>> > it. You then merge that patch into branch A. After the merge,
>> > some other process (we will call it 'gerrit') uses annotate and
>> > changes the comment on the patch that exists on branch B.
>> >
>> > Now someone runs git-format-patch for the last n patches on
>> > branch A. You should just get the original patch that was
>> > merged over to branch A. What you get is the patch that was
>> > merged to branch A *and* the patch with the modified commit
>> > comment on branch B. (Double the patches, double the
>> > clean-up...)
>>
>> As you literally have patches that do essentially the same or
>> similar things on two branches that was merged, you cannot
>> expect to export each individual commit into a patch and not
>> have conflicts among them. So I do not think there is no
>> answer than "don't do that".
>
> To me, this seems to miss Alan's point: only one patch was merged
> to branch A,...
Are you sure about this part?
I thought Alan's description was that he originally had this
x-----A
\ \
B-----M (a)
and then "some other process" made it like so:
x-----A
|\ \
| B-----M
\ \
B'------M' (a)
and then you ask to linealize the last n patches starting from the
rewritten M'.
If that "some other process" instead created a history like this:
x-----A---\
|\ \ \
| B-----M \
\ \
B'----------M' (a)
then the redone-merge M' will not see the old B that was fixed later
to B' in the history, but then format-patch would not show B so we
wouldn't be having this discussion thread.
It is possible that "some other process" may (ab)use the parent
field to record the evolution of B, to create a topology like this:
x-----A---\
|\ \ \
| B-----M \
\ \ \
\-B'--------M' (a)
in which case M' has parent B' but B' has a (phoney) parent B.
So again, it all depends on what "some other process" does to the
history when it rewrites it, and if somebody wants to fiter cruft in
the resulting history when flattening it, the knowledge of what
"some other process" does need to help that process.
Which is what I already said, I guess ;-)
> so git-format-patch applied to branch A should find
> only one patch. It can be argued either way whether that one-patch
> report should include the gerrit annotations, but surely the
> application of gerrit on branch B, _after the merge to branch A
> has already been performed_, should not cause an additional patch
> to magically appear on branch A.
^ permalink raw reply
* Operations on unborn branch
From: Martin von Zweigbergk @ 2012-11-27 17:25 UTC (permalink / raw)
To: git
While looking at how to handle "git rebase --root", I noticed that
"git cherry-pick" fails with the following when run on an unborn
branch:
error: You do not have a valid HEAD
fatal: cherry-pick failed
I can not see any reason that it shouldn't work. "git cherry-pick -n"
does work. (For rebase, "git cherry-pick --ff" would be used, and I
think that should also work on an unborn branch.)
Also, "git reset" doesn't work on an unborn branch and I can not see
any reason that it shouldn't work. This was also asked on stack
overflow [1], and of course the solution is to use "git rm --cached",
but doesn't mean that "git reset" shouldn't work.
I have very limited time to work on git these days, so if anyone else
would like to work on any of this, I would be very happy. I _might_
take some time to fix the cherry-pick issue.
Btw, every time I run into problems like these with the treatment of
root commits, I can't help but wonder how things would look if git had
always had a single root commit (naturally with some dummy user,
timestamp etc to ensure sameness across repos). With my limited
knowledge, it seems like that would complicate a few things, but
simplify a lot of things (maybe I'm biased because of the things I
have happened to work on?). Has anyone spent some time seriously
thinking about this? I suppose it would be hard to introduce
backward-compatibly, and maybe this is very unrealistic even for git
2.0, but I would be curious to hear what others think.
Martin
[1] http://stackoverflow.com/questions/3894808/new-git-repository-and-already-git-reset-does-not-work
^ permalink raw reply
* Re: [PATCH] Support for git aliasing for tcsh completion
From: Junio C Hamano @ 2012-11-27 17:16 UTC (permalink / raw)
To: Marc Khouzam; +Cc: git, Felipe Contreras, SZEDER Gábor, Tuncer Ayaz
In-Reply-To: <CAFj1UpE5V5fKtt0fFOXLPrsQdOL8xpvzT=66Qi3=cMHit092Rg@mail.gmail.com>
The patch was linewrapped so I had to fix it up; please double check
what will be queued on 'pu' to make sure that I did not miss
necessary whitespaces or added unnecessary ones when I rejoined long
lines.
Thanks.
^ permalink raw reply
* Re: [PATCH 5/7] push: require force for refs under refs/tags/
From: Junio C Hamano @ 2012-11-27 17:12 UTC (permalink / raw)
To: Chris Rorvick
Cc: git, Angelo Borsotti, Drew Northup, Michael Haggerty,
Philip Oakley, Johannes Sixt, Kacper Kornet, Jeff King,
Felipe Contreras
In-Reply-To: <CAEUsAPZTycJS_USj-tYNN2Bpwn8XvYDTd4c7wFMFDYfNeSCUtw@mail.gmail.com>
Chris Rorvick <chris@rorvick.com> writes:
> On Mon, Nov 26, 2012 at 12:57 PM, Junio C Hamano <gitster@pobox.com> wrote:
>> Chris Rorvick <chris@rorvick.com> writes:
>>
>>> diff --git a/remote.c b/remote.c
>>> index 4a6f822..012b52f 100644
>>> --- a/remote.c
>>> +++ b/remote.c
>>> @@ -1315,14 +1315,18 @@ void set_ref_status_for_push(struct ref *remote_refs, int send_mirror,
>>> *
>>> * (1) if the old thing does not exist, it is OK.
>>> *
>>> - * (2) if you do not have the old thing, you are not allowed
>>> + * (2) if the destination is under refs/tags/ you are
>>> + * not allowed to overwrite it; tags are expected
>>> + * to be static once created
>>> + *
>>> + * (3) if you do not have the old thing, you are not allowed
>>> * to overwrite it; you would not know what you are losing
>>> * otherwise.
>>> *
>>> - * (3) if both new and old are commit-ish, and new is a
>>> + * (4) if both new and old are commit-ish, and new is a
>>> * descendant of old, it is OK.
>>> *
>>> - * (4) regardless of all of the above, removing :B is
>>> + * (5) regardless of all of the above, removing :B is
>>> * always allowed.
>>> */
>>
>> We may want to reword (0) to make it clear that --force
>> (and +A:B) can be used to defeat all the other rules.
>
> On that note, having (5) be "regardless of all of the above ..." seems
> a little awkward. That would seem to fit better towards the top.
Sure. (0) you can always force; (1) you can always delete; and then
other requirements. That may indeed read better.
Thanks.
^ permalink raw reply
* Re: [PATCH 7/7] push: clarify rejection of update to non-commit-ish
From: Junio C Hamano @ 2012-11-27 17:11 UTC (permalink / raw)
To: Chris Rorvick
Cc: git, Angelo Borsotti, Drew Northup, Michael Haggerty,
Philip Oakley, Johannes Sixt, Kacper Kornet, Jeff King,
Felipe Contreras
In-Reply-To: <CAEUsAPZq1POKQZd5vZy55nEj2kB4CqgxL9_d_0sQs33P_Gcemg@mail.gmail.com>
Chris Rorvick <chris@rorvick.com> writes:
>> With this code, the old must be a commit but new can be a tag that
>> points at a commit? Why?
>
> The old must not be a tag because fast-forwarding from it is
> potentially destructive; a tag would likely be left dangling in this
> case. This is not true for the new, though. I'm not sure
> fast-forwarding from a commit to a tag is useful, but I didn't see a
> reason to prevent it either. The refs/tags/ hierarchy is excluded
> from fast-forwarding before this check, and refs/heads/ is already
> protected against anything but commits. So it seems very unlikely
> that someone would accidentally make use of this behavior.
>
> So, fast-forwarding to a tag seemed fairly benign and unlikely to
> cause confusion, so I leaned towards allowing it in case someone found
> a use case for it.
Sounds sensible.
Perhaps some of that thinking behind this change (i.e. earlier
we checked the forwardee was any commit-ish, but the new code only
allows a commit object if it were to be fast-forwarded) belongs to
the log message?
Thanks.
^ permalink raw reply
* Re: [PATCH] Documentation: improve phrasing in git-push.txt
From: Junio C Hamano @ 2012-11-27 17:09 UTC (permalink / raw)
To: Mark Szepieniec; +Cc: git
In-Reply-To: <1353980254-8033-1-git-send-email-mszepien@gmail.com>
Sounds better; thanks.
^ permalink raw reply
* Re: [PATCH v6 p2 3/9] transport-helper: trivial code shuffle
From: Junio C Hamano @ 2012-11-27 17:00 UTC (permalink / raw)
To: Felipe Contreras
Cc: git, Jeff King, Ilari Liusvaara, Sverre Rabbelier, Elijah Newren,
Thiago Farina
In-Reply-To: <1353727520-26039-4-git-send-email-felipe.contreras@gmail.com>
Felipe Contreras <felipe.contreras@gmail.com> writes:
> Just shuffle the die() part to make it more explicit, and cleanup the
> code-style.
>
> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
> ---
> transport-helper.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/transport-helper.c b/transport-helper.c
> index 32ad877..0c95101 100644
> --- a/transport-helper.c
> +++ b/transport-helper.c
> @@ -775,6 +775,9 @@ static int push_refs_with_export(struct transport *transport,
> char *private;
> unsigned char sha1[20];
>
> + if (ref->deletion)
> + die("remote-helpers do not support ref deletion");
> +
> if (!data->refspecs)
> continue;
This is not just "just shuffle the die to make it explicit" but it
does change the semantics; earlier ref->deletion was perfectly fine
as long as data->refspecs is not given, but the new code always
dies.
If this semantic change is a good thing, please explain why it is so
in the log message. If the change is "it does not matter because
when data->refspecs is not given and ref->deletion is set, we die
later elsewhere in the code anyway", then it needs to be described.
Thanks.
> @@ -784,10 +787,6 @@ static int push_refs_with_export(struct transport *transport,
> }
> free(private);
>
> - if (ref->deletion) {
> - die("remote-helpers do not support ref deletion");
> - }
> -
> if (ref->peer_ref)
> string_list_append(&revlist_args, ref->peer_ref->name);
^ permalink raw reply
* [PATCH] Extend runtime prefix computation
From: Michael Weiser @ 2012-11-27 16:30 UTC (permalink / raw)
To: git
Support determining the binaries' installation path at runtime even if
called without any path components (i.e. via search path). Implement
fallback to compiled-in prefix if determination fails or is impossible.
Signed-off-by: Michael Weiser <weiser@science-computing.de>
---
- Has two very minor memory leaks - function is called only once per
program execution. Do we care? Alternative: Use static buffer instead.
exec_cmd.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 53 insertions(+), 15 deletions(-)
diff --git a/exec_cmd.c b/exec_cmd.c
index 125fa6f..d50d7f8 100644
--- a/exec_cmd.c
+++ b/exec_cmd.c
@@ -4,28 +4,22 @@
#define MAX_ARGS 32
static const char *argv_exec_path;
-static const char *argv0_path;
+static const char *argv0_path = NULL;
const char *system_path(const char *path)
{
-#ifdef RUNTIME_PREFIX
- static const char *prefix;
-#else
static const char *prefix = PREFIX;
-#endif
struct strbuf d = STRBUF_INIT;
if (is_absolute_path(path))
return path;
#ifdef RUNTIME_PREFIX
- assert(argv0_path);
- assert(is_absolute_path(argv0_path));
-
- if (!prefix &&
- !(prefix = strip_path_suffix(argv0_path, GIT_EXEC_PATH)) &&
- !(prefix = strip_path_suffix(argv0_path, BINDIR)) &&
- !(prefix = strip_path_suffix(argv0_path, "git"))) {
+ if (!argv0_path ||
+ !is_absolute_path(argv0_path) ||
+ (!(prefix = strip_path_suffix(argv0_path, GIT_EXEC_PATH)) &&
+ !(prefix = strip_path_suffix(argv0_path, BINDIR)) &&
+ !(prefix = strip_path_suffix(argv0_path, "git")))) {
prefix = PREFIX;
trace_printf("RUNTIME_PREFIX requested, "
"but prefix computation failed. "
@@ -41,20 +35,64 @@ const char *system_path(const char *path)
const char *git_extract_argv0_path(const char *argv0)
{
const char *slash;
+ char *abs_argv0 = NULL;
if (!argv0 || !*argv0)
return NULL;
slash = argv0 + strlen(argv0);
+ /* walk to the first slash from the end */
while (argv0 <= slash && !is_dir_sep(*slash))
slash--;
+ /* if there was a slash ... */
if (slash >= argv0) {
- argv0_path = xstrndup(argv0, slash - argv0);
- return slash + 1;
+ /* ... it's either an absolute path */
+ if (is_absolute_path(argv0)) {
+ /* FIXME: memory leak here */
+ argv0_path = xstrndup(argv0, slash - argv0);
+ return slash + 1;
+ }
+
+ /* ... or a relative path, in which case we have to make it
+ * absolute first and do the whole thing again */
+ abs_argv0 = xstrdup(real_path(argv0));
+ } else {
+ /* argv0 is no path at all, just a name. Resolve it into a
+ * path. Unfortunately, this gets system specific. */
+#if defined(__linux__)
+ struct stat st;
+ if (!stat("/proc/self/exe", &st)) {
+ abs_argv0 = xstrdup(real_path("/proc/self/exe"));
+ }
+#elif defined(__APPLE__)
+ /* Mac OS X has realpath, which incidentally allocates its own
+ * memory, which in turn is why we do all the xstrdup's in the
+ * other cases. */
+ abs_argv0 = realpath(argv0, NULL);
+#endif
+
+ /* if abs_argv0 is still NULL here, something failed above or
+ * we are on an unsupported system. system_path() will warn
+ * and fall back to the static prefix */
+ if (!abs_argv0) {
+ argv0_path = NULL;
+ return argv0;
+ }
}
- return argv0;
+ /* abs_argv0 is an absolute path now for which memory was allocated
+ * with malloc */
+
+ slash = abs_argv0 + strlen(abs_argv0);
+ while (abs_argv0 <= slash && !is_dir_sep(*slash))
+ slash--;
+
+ /* FIXME: memory leaks here */
+ argv0_path = xstrndup(abs_argv0, slash - abs_argv0);
+ slash = xstrdup(slash + 1);
+ free(abs_argv0);
+ return slash;
}
void git_set_argv_exec_path(const char *exec_path)
--
1.7.3.4
--
Vorstandsvorsitzender/Chairman of the board of management:
Gerd-Lothar Leonhart
Vorstand/Board of Management:
Dr. Bernd Finkbeiner, Michael Heinrichs,
Dr. Arno Steitz, Dr. Ingrid Zech
Vorsitzender des Aufsichtsrats/
Chairman of the Supervisory Board:
Philippe Miltin
Sitz/Registered Office: Tuebingen
Registergericht/Registration Court: Stuttgart
Registernummer/Commercial Register No.: HRB 382196
^ permalink raw reply related
* Re: Re: Python extension commands in git - request for policy change
From: Johannes Schindelin @ 2012-11-27 15:33 UTC (permalink / raw)
To: David Aguilar; +Cc: Felipe Contreras, esr, Nguyen Thai Ngoc Duy, git, msysGit
In-Reply-To: <CAJDDKr4cr3VXqx=CXgXSQrVTSjE=f=55HZns-xfNziJOXb3Vsw@mail.gmail.com>
Hi David,
On Mon, 26 Nov 2012, David Aguilar wrote:
> *cough* git-cola *cough*
If you had a couple of free cycles to help us get Python/Qt compiled in
msysGit, I will be happy to make a Git for Windows package including
git-cola.
Ciao,
Dscho
--
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.
You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en
^ permalink raw reply
* Re: Python extension commands in git - request for policy change
From: Magnus Bäck @ 2012-11-27 14:35 UTC (permalink / raw)
To: Felipe Contreras; +Cc: Michael Haggerty, Eric S. Raymond, git
In-Reply-To: <CAMP44s0WYiV3hTE7u28_Wd59FkGfu3o_psS0gocpnibzN4--Fg@mail.gmail.com>
On Sunday, November 25, 2012 at 06:40 EST,
Felipe Contreras <felipe.contreras@gmail.com> wrote:
> On Sun, Nov 25, 2012 at 11:44 AM, Michael Haggerty
> <mhagger@alum.mit.edu> wrote:
[...]
> > On the contrary, there is *constant* traffic on the mailing list
> > about incompatibilities between different shell implementations (sh,
> > dash, bash, etc), not to mention those in other utilities (sed,
> > grep, etc) that one is forced to work with in shell scripts.
> > Compatibility is a *huge* pain when developing shell code for git.
> > The fact that users typically don't encounter such problems is due
> > to the hard work of POSIX lawyers on the mailing list correcting the
> > compatibility errors of mortal programmers.
>
> *Theoretical* incompatibilities on probably obscure systems. *I* have
> never seen such compatibility issues *in practice*.
While "constant traffic" probably overstates the issue, these are not
theoretical problems. I recall at least three cases in the last year
or so where Git has seen breakage with Solaris or Mac OS X because
of sed or tr incompatibilities, and I don't even read this list that
thoroughly.
[...]
--
Magnus Bäck
baeck@google.com
^ permalink raw reply
* Re: [RFC/PATCH] l10n: de.po: translate 825 new messages
From: Thomas Rast @ 2012-11-27 11:44 UTC (permalink / raw)
To: Ralf Thielow; +Cc: git, jk, stimming
In-Reply-To: <1349200849-7436-1-git-send-email-ralf.thielow@gmail.com>
Hi Ralf,
This is the middle third of my review. Sorry for the long wait! I hope
it can still be useful.
Also, sorry for the other mail that I just sent out seconds ago. That
was what I wanted to save as "to be done in the last third", but
I accidentally hit the wrong key and sent it out.
- Thomas
> @@ -4459,6 +4423,8 @@ msgstr ""
> #: builtin/fmt-merge-msg.c:13
> msgid "git fmt-merge-msg [-m <message>] [--log[=<n>]|--no-log] [--file <file>]"
> msgstr ""
> +"git fmt-merge-msg [-m <Beschreibung>] [--log[=<Anzahl>]|--no-log] [--file "
> +"<Datei>]"
>
> #: builtin/fmt-merge-msg.c:653 builtin/fmt-merge-msg.c:656 builtin/grep.c:786
> #: builtin/merge.c:188 builtin/show-branch.c:656 builtin/show-ref.c:192
> @@ -4468,115 +4434,111 @@ msgstr "Anzahl"
>
> #: builtin/fmt-merge-msg.c:654
> msgid "populate log with at most <n> entries from shortlog"
> -msgstr ""
> +msgstr "fügt Historie mit höchstens <Nummer> Einträgen von \"shortlog\" hinzu"
I don't really share your apparent aversion to just using "<n>" :-)
> #: builtin/for-each-ref.c:994
> msgid "quote placeholders suitably for shells"
> -msgstr ""
> +msgstr "quotiert Platzhalter geeignet für Shells"
[...]
> #: builtin/for-each-ref.c:996
> msgid "quote placeholders suitably for perl"
> +msgstr "quotiert Platzhalter geeignet für Perl"
[etc]
"quote" is a hard one, and "quotiert" sounds very wrong to me. How
about weaseling out along the lines of
Formatiert Platzhalter als {Shell|Perl|Python|TCL} Zeichenfolge
or even "Shell-String".
> #: builtin/for-each-ref.c:1003
> msgid "show only <n> matched refs"
> -msgstr ""
> +msgstr "zeigt nur <Nummer> passende Referenzen"
This should be <Anzahl> if you insist on translating the 'n'.
> #: builtin/for-each-ref.c:1006
> msgid "field name to sort on"
> -msgstr ""
> +msgstr "Name des Felder zum Sortieren"
Feld_s_?
Or just "sortiere nach diesem Feld".
> #: builtin/fsck.c:618
> msgid "make index objects head nodes"
> -msgstr ""
> +msgstr "erzeugt Kopfknoten der Bereitstellungsobjekte"
The English version is equally obscure, but this refers to (also)
walking the objects listed in the index. Furthermore, --cache is
actually the default if you don't list any objects to walk.
> #: builtin/fsck.c:620
> msgid "also consider packs and alternate objects"
> -msgstr ""
> +msgstr "betrachtet auch Pakete und wechselnde Objekte"
The glossary tells me pack -> Archiv.
An alternate object [store] is essentially a pointer to the object store
of another repository. It may best be left untranslated, as it's a
pretty advanced feature.
> #: builtin/grep.c:741
> msgid "match patterns only at word boundaries"
> -msgstr ""
> +msgstr "findet Muster nur innerhalb von Wörtern"
The translation gets the purpose wrong: the option forces a
word-boundary match on either side of the pattern, so that you will find
only one or more words matching the pattern. The manpage has a precise
definition:
Match the pattern only at word boundary (either begin at the
beginning of a line, or preceded by a non-word character; end at
the end of a line or followed by a non-word character).
Maybe "suche nur ganze Wörter" would suffice as a concise description.
> #: builtin/grep.c:817
> msgid "indicate hit with exit status without output"
> -msgstr ""
> +msgstr "kennzeichnet Übereinstimmungen mit Beendigungsstatus, ohne Ausgabe"
The "indicate" should be "zeigen" or some such, since it only tells
whether there were any matches at all.
I spent some time looking for a better translation of "exit status", but
couldn't find anything helpful (such as a German translation of diff(1)
or a Wikipedia page on "exit status").
> #: builtin/hash-object.c:77
> msgid "process file as it were from this path"
> -msgstr ""
> +msgstr "verarbeitet Datei, wie es von diesem Pfad wäre"
als ob sie von diesem Pfad wäre?
> #: builtin/help.c:47
> msgid "show info page"
> -msgstr ""
> +msgstr "zeigt Informationsseite"
info here refers to GNU info, presumably it should be left as
"info-Seite" or some such.
> #: builtin/index-pack.c:1106
> msgid "confusion beyond insanity"
> @@ -5150,12 +5111,12 @@ msgstr "Fehler beim Auflösen der Unterschiede"
> #: builtin/index-pack.c:1112
> #, c-format
> msgid "completed with %d local objects"
> -msgstr ""
> +msgstr "fertiggestellt mit %d lokalen Objekten"
*vervollständigt* mit %d lokalen Objekten
> #: builtin/log.c:102
> msgid "decorate options"
> -msgstr ""
> +msgstr "Ausgabeoptionen"
'decorate' is the option to mark commits by the refs pointing at them,
and should probably not be translated.
The English version is quite tautological though, since it just turns
into
--decorate[=...] decorate options
> #: builtin/log.c:1091
> msgid "don't include a patch matching a commit upstream"
> msgstr ""
> +"schließt keine Patches ein, die einer Version im externen Projektarchiv "
> +"entsprechen"
Upstream refers to the notional upstream state, which does not even have
to be a branch here. I.e., if you say
git format-patch --ignore-if-in-upstream <commit>
then it will format the range 'commit..HEAD', ignoring patches that are
already in 'HEAD..commit'.
So it's not an upstream repo, and in fact doesn't even have to be a
branch. I don't really have a good suggestion though. Perhaps you can
still call it "im Übernahmezweig", since the original makes the same
mistake.
> #: builtin/log.c:1095
> -#, fuzzy
> msgid "Messaging"
> -msgstr "Zusammenführung:"
> +msgstr "Datentransfer"
"Email-Einstellungen"?
> #: builtin/log.c:1096
> -#, fuzzy
> msgid "header"
> -msgstr "voraus "
> +msgstr "Kopfteil"
>
> #: builtin/log.c:1097
> msgid "add email header"
> -msgstr ""
> +msgstr "fügt Kopfteil für eMail hinzu"
Does anyone call them anything except "headers" in german?
I can even quote a (non)reference:
http://de.wikipedia.org/wiki/E-Mail#Header_.E2.80.93_der_Kopf_der_E-Mail
> #: builtin/log.c:1108
> -#, fuzzy
> msgid "inline the patch"
> -msgstr "ignoriert hinzugefügte Zeilen des Patches"
> +msgstr "fügt einen Patch ein"
fügt den Patch direkt in die Nachricht ein
> #: builtin/ls-files.c:463
> msgid "identify the file status with tags"
> -msgstr ""
> +msgstr "bestimmt den Dateistatus mit Markierungen"
*zeigt* den Dateistatus mit Markierungen
> #: builtin/merge.c:189
> msgid "add (at most <n>) entries from shortlog to merge commit message"
> msgstr ""
> +"fügt (höchstens <Nummber>) Einträge von \"short\" zur Beschreibung der "
^^^
typo -------------------´
> +"Zusammenführung hinzu"
Furthermore, you changed 'shortlog' to '"short"'. Presumably you meant
to keep the 'log' too?
> #: builtin/notes.c:617
> msgid "load rewriting config for <command> (implies --stdin)"
> msgstr ""
> +"lädt Konfiguration für <Kommando> beim Überschreiben von Versionen "
> +"(impliziert --stdin)"
This would be a good time to settle on a good translation for
"rewriting". Perhaps "neu schreiben". "Überschreiben" to me implies
that it's done in-place, but the whole point of calling it "rewriting"
instead of "changing" is that it is *not* done (or indeed possible to
do) in-place.
> #: builtin/pack-objects.c:2502
> msgid "create thin packs"
> -msgstr ""
> +msgstr "erzeugt kleinere Pakete"
Smaller is not really the point: they are packs that do not have the
delta bases. It can only be used in the context of a repository that
has them. A thin pack is used only(?) in network transfer, and then
"completed" by adding the delta bases to it, which lets it stand on its
own.
You could call them "abgespeckt" ;-)
--
Thomas Rast
trast@{inf,student}.ethz.ch
^ permalink raw reply
* Re: [PATCH] Third try at documenting command integration requirements.
From: Michael Haggerty @ 2012-11-27 11:49 UTC (permalink / raw)
To: esr; +Cc: Junio C Hamano, git
In-Reply-To: <20121126214134.GA1713@thyrsus.com>
On 11/26/2012 10:41 PM, Eric S. Raymond wrote:
> The next things on my git to-do list are
> [...]
> 2. Submit a doc patch containing guidelines that (a) Python scripts should
> check for their floor version and error out gracefully if they won't
> run with the host's interpreter, and (b) Python scripts sbould be
> 2.6-compatible.
OK, now let's discuss *which* minimum Python version that git should
support in the hypothetical new world...
Data point: Mercurial supports Python 2.4 - 2.7 with the following
explanation [1]:
We will continue to support Python 2.4 as long as it doesn't
present a significant barrier to development. Given that Python 2.5
and later don't contain any features that we're dying to use, that
may be a long time off. [...]
We also will continue to support Python 2.x as long as there is a
significant installed base in the form of Red Hat Enterprise Linux
and Ubuntu LTS users. RHEL 5, which uses Python 2.4, will reach the
end of the "production 2" portion of its lifecycle in Q1 2014 and
the end of its regular lifecycle in 2017.
It would be a shame to leave RHEL 5 users behind if Python is used to
implement important git functionality. Python 2.4 is missing some of
Python's shiny new features, but still quite OK. What features would
you miss the most if we were to target Python 2.4 instead of 2.6?
Michael
[1] http://mercurial.selenic.com/wiki/SupportedPythonVersions
--
Michael Haggerty
mhagger@alum.mit.edu
http://softwareswirl.blogspot.com/
^ permalink raw reply
* Re: [RFC/PATCH] l10n: de.po: translate 825 new messages
From: Thomas Rast @ 2012-11-27 11:42 UTC (permalink / raw)
To: Ralf Thielow; +Cc: git, trast, jk, stimming
In-Reply-To: <1349200849-7436-1-git-send-email-ralf.thielow@gmail.com>
> #: builtin/pack-refs.c:6
> msgid "git pack-refs [options]"
> -msgstr ""
> +msgstr "git pack-refs [Optionen]"
>
> #: builtin/pack-refs.c:14
> msgid "pack everything"
> -msgstr ""
> +msgstr "packt alles"
>
> #: builtin/pack-refs.c:15
> msgid "prune loose refs (default)"
> -msgstr ""
> +msgstr "entfernt lose Referenzen (Standard)"
>
> #: builtin/prune-packed.c:7
> msgid "git prune-packed [-n|--dry-run] [-q|--quiet]"
> -msgstr ""
> +msgstr "git prune-packed [-n|--dry-run] [-q|--quite]"
>
> #: builtin/prune.c:12
> msgid "git prune [-n] [-v] [--expire <time>] [--] [<head>...]"
> -msgstr ""
> +msgstr "git prune [-n] [-v] [--expire <Zeit>] [--] [<Zweigspitze>...]"
>
> #: builtin/prune.c:132
> -#, fuzzy
> msgid "do not remove, show only"
> -msgstr "Würde nicht entfernen %s\n"
> +msgstr "nicht entfernen, nur anzeigen"
>
> #: builtin/prune.c:133
> -#, fuzzy
> msgid "report pruned objects"
> -msgstr "kann Objekt %s nicht lesen"
> +msgstr "meldet entfernte Objekte"
>
> #: builtin/prune.c:136
> msgid "expire objects older than <time>"
> -msgstr ""
> +msgstr "lässt Objekte älter als <Zeit> verfallen"
>
> #: builtin/push.c:14
> -#, fuzzy
> msgid "git push [<options>] [<repository> [<refspec>...]]"
> -msgstr "git apply [Optionen] [<Patch>...]"
> +msgstr "git push [<Optionen>] [<Projektarchiv> [<Referenzspezifikation>...]]"
>
> #: builtin/push.c:45
> msgid "tag shorthand without <tag>"
> @@ -7141,55 +7098,53 @@ msgid "--all and --mirror are incompatible"
> msgstr "--all und --mirror sind inkompatibel"
>
> #: builtin/push.c:382
> -#, fuzzy
> msgid "repository"
> -msgstr "ungültiges Projektarchiv '%s'"
> +msgstr "Projektarchiv"
>
> #: builtin/push.c:383
> msgid "push all refs"
> -msgstr ""
> +msgstr "versendet alle Referenzen"
>
> #: builtin/push.c:384
> msgid "mirror all refs"
> -msgstr ""
> +msgstr "spiegelt alle Referenzen"
>
> #: builtin/push.c:386
> -#, fuzzy
> msgid "delete refs"
> -msgstr "gelöscht"
> +msgstr "löscht Referenzen"
>
> #: builtin/push.c:387
> msgid "push tags (can't be used with --all or --mirror)"
> msgstr ""
> +"versendet Markierungen (kann nicht mit --all oder --mirror benutzt werden)"
>
> #: builtin/push.c:390
> -#, fuzzy
> msgid "force updates"
> -msgstr "Aktualisierung erzwungen"
> +msgstr "erzwingt Aktualisierung"
>
> #: builtin/push.c:391
> msgid "check"
> -msgstr ""
> +msgstr "Überprüfung"
>
> #: builtin/push.c:392
> msgid "control recursive pushing of submodules"
> -msgstr ""
> +msgstr "steuert rekursives Versenden von Unterprojekten"
>
> #: builtin/push.c:394
> msgid "use thin pack"
> -msgstr ""
> +msgstr "benutzt kleinere Pakete"
>
> #: builtin/push.c:395 builtin/push.c:396
> msgid "receive pack program"
> -msgstr ""
> +msgstr "Programm zum Empfangen von Paketen"
>
> #: builtin/push.c:397
> msgid "set upstream for git pull/status"
> -msgstr ""
> +msgstr "setzt externes Projektarchiv für \"git pull/status\""
>
> #: builtin/push.c:400
> msgid "prune locally removed refs"
> -msgstr ""
> +msgstr "entfernt lokal gelöschte Referenzen"
>
> #: builtin/push.c:410
> msgid "--delete is incompatible with --all, --mirror and --tags"
> @@ -7205,155 +7160,160 @@ msgid ""
> "[-u [--exclude-per-directory=<gitignore>] | -i]] [--no-sparse-checkout] [--"
> "index-output=<file>] (--empty | <tree-ish1> [<tree-ish2> [<tree-ish3>]])"
> msgstr ""
> +"git read-tree [[-m [--trivial] [--aggressive] | --reset | --prefix=<Prefix>] "
> +"[-u [--exclude-per-directory=<gitignore>] | -i]] [--no-sparse-checkout] [--"
> +"index-output=<Datei>] (--empty | <Versionsreferenz1> [<Versionsreferenz2> "
> +"[<Versionsreferenz3>]])"
>
> #: builtin/read-tree.c:108
> -#, fuzzy
> msgid "write resulting index to <file>"
> -msgstr "beschädigte Bereitstellungsdatei"
> +msgstr "schreibt resultierende Bereitstellung nach <Datei>"
>
> #: builtin/read-tree.c:111
> -#, fuzzy
> msgid "only empty the index"
> -msgstr "Konnte die Bereitstellung nicht lesen"
> +msgstr "leert nur die Bereitstellung"
>
> #: builtin/read-tree.c:113
> -#, fuzzy
> msgid "Merging"
> -msgstr "Zusammenführung:"
> +msgstr "Zusammenführung"
>
> #: builtin/read-tree.c:115
> msgid "perform a merge in addition to a read"
> -msgstr ""
> +msgstr "führt eine Zusammenführung zusätzlich zum Lesen aus"
>
> #: builtin/read-tree.c:117
> msgid "3-way merge if no file level merging required"
> msgstr ""
> +"3-Wege-Zusammenführung, wenn keine Zusammenführung auf Dateiebene "
> +"erforderlich ist"
>
> #: builtin/read-tree.c:119
> msgid "3-way merge in presence of adds and removes"
> msgstr ""
> +"3-Wege-Zusammenführung bei Vorhandensein von hinzugefügten/entfernten Zeilen"
>
> #: builtin/read-tree.c:121
> msgid "same as -m, but discard unmerged entries"
> -msgstr ""
> +msgstr "genau wie -m, verwirft aber nicht zusammengeführte Einträge"
>
> #: builtin/read-tree.c:122
> -#, fuzzy
> msgid "<subdirectory>/"
> -msgstr "Verzeichnis/Datei"
> +msgstr "<Unterverzeichnis>/"
>
> #: builtin/read-tree.c:123
> msgid "read the tree into the index under <subdirectory>/"
> -msgstr ""
> +msgstr "liest den Baum in die Bereitstellung unter <Unterverzeichnis>/"
>
> #: builtin/read-tree.c:126
> msgid "update working tree with merge result"
> -msgstr ""
> +msgstr "aktualisiert Arbeitsbaum mit Ergebnis der Zusammenführung"
>
> #: builtin/read-tree.c:128
> -#, fuzzy
> msgid "gitignore"
> -msgstr "Ignorierte"
> +msgstr "gitignore"
>
> #: builtin/read-tree.c:129
> msgid "allow explicitly ignored files to be overwritten"
> -msgstr ""
> +msgstr "erlaubt explizit ignorierte Dateien zu überschreiben"
>
> #: builtin/read-tree.c:132
> -#, fuzzy
> msgid "don't check the working tree after merging"
> -msgstr "Zeigt den Zustand des Arbeitszweiges an"
> +msgstr "prüft nicht den Arbeitsbaum nach der Zusammenführung"
>
> #: builtin/read-tree.c:133
> msgid "don't update the index or the work tree"
> -msgstr ""
> +msgstr "aktualisiert weder die Bereitstellung, noch den Arbeitsbaum"
>
> #: builtin/read-tree.c:135
> msgid "skip applying sparse checkout filter"
> -msgstr ""
> +msgstr "überspringt Anwendung des Filters für spärliches Auschecken"
>
> #: builtin/read-tree.c:137
> msgid "debug unpack-trees"
> -msgstr ""
> +msgstr "protokolliert Entpacken der Bäume"
>
> #: builtin/remote.c:11
> msgid "git remote [-v | --verbose]"
> -msgstr ""
> +msgstr "git remove [-v | --verbose]"
>
> #: builtin/remote.c:12
> msgid ""
> "git remote add [-t <branch>] [-m <master>] [-f] [--tags|--no-tags] [--"
> "mirror=<fetch|push>] <name> <url>"
> msgstr ""
> +"git remote add [-t <Zweig>] [-m <master>] [-f] [--tags|--no-tags] [--"
> +"mirror=<fetch|push>] <Name> <URL>"
>
> #: builtin/remote.c:13 builtin/remote.c:32
> msgid "git remote rename <old> <new>"
> -msgstr ""
> +msgstr "git remote rename <alt> <neu>"
>
> #: builtin/remote.c:14 builtin/remote.c:37
> msgid "git remote remove <name>"
> -msgstr ""
> +msgstr "git remote remove <Name>"
>
> #: builtin/remote.c:15
> msgid "git remote set-head <name> (-a | -d | <branch>)"
> -msgstr ""
> +msgstr "git remote set-head <Name> (-a | -d | <Zweig>)"
>
> #: builtin/remote.c:16
> msgid "git remote [-v | --verbose] show [-n] <name>"
> -msgstr ""
> +msgstr "git remote [-v | --verbose] show [-n] <Name>"
>
> #: builtin/remote.c:17
> msgid "git remote prune [-n | --dry-run] <name>"
> -msgstr ""
> +msgstr "git remote prune [-n | --dry-run] <Name>"
>
> #: builtin/remote.c:18
> msgid ""
> "git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]"
> msgstr ""
> +"git remote [-v | --verbose] update [-p | --prune] [(<Gruppe> | "
> +"<externesProjektarchiv>)...]"
>
> #: builtin/remote.c:19
> msgid "git remote set-branches [--add] <name> <branch>..."
> -msgstr ""
> +msgstr "git remote set-branches [--add] <Name> <Zweig>..."
>
> #: builtin/remote.c:20 builtin/remote.c:68
> msgid "git remote set-url [--push] <name> <newurl> [<oldurl>]"
> -msgstr ""
> +msgstr "git remote set-url [--push] <Name> <neueURL> [<alteURL>]"
>
> #: builtin/remote.c:21 builtin/remote.c:69
> msgid "git remote set-url --add <name> <newurl>"
> -msgstr ""
> +msgstr "git remote set-url --add <Name> <neueURL>"
>
> #: builtin/remote.c:22 builtin/remote.c:70
> msgid "git remote set-url --delete <name> <url>"
> -msgstr ""
> +msgstr "git remote set-url --delete <Name> <URL>"
>
> #: builtin/remote.c:27
> msgid "git remote add [<options>] <name> <url>"
> -msgstr ""
> +msgstr "git remote add [<Optionen>] <Name> <URL>"
>
> #: builtin/remote.c:42
> msgid "git remote set-head <name> (-a | -d | <branch>])"
> -msgstr ""
> +msgstr "git remote set-head <Name> (-a | -d | <Zweig>])"
>
> #: builtin/remote.c:47
> msgid "git remote set-branches <name> <branch>..."
> -msgstr ""
> +msgstr "git remote set-branches <Name> <Zweig>..."
>
> #: builtin/remote.c:48
> msgid "git remote set-branches --add <name> <branch>..."
> -msgstr ""
> +msgstr "git remote set-branches --add <Name> <Zweig>..."
>
> #: builtin/remote.c:53
> msgid "git remote show [<options>] <name>"
> -msgstr ""
> +msgstr "git remote show [<Optionen>] <Name>"
>
> #: builtin/remote.c:58
> msgid "git remote prune [<options>] <name>"
> -msgstr ""
> +msgstr "git remote prune [<Optionen>] <Name>"
>
> #: builtin/remote.c:63
> msgid "git remote update [<options>] [<group> | <remote>]..."
> -msgstr ""
> +msgstr "git remote update [<Optionen>] [<Gruppe> | <externesProjektarchiv>]..."
>
> #: builtin/remote.c:98
> #, c-format
> @@ -7374,34 +7334,33 @@ msgid "unknown mirror argument: %s"
> msgstr "unbekanntes Argument für Option --mirror: %s"
>
> #: builtin/remote.c:163
> -#, fuzzy
> msgid "fetch the remote branches"
> -msgstr " externer Zweig:%s"
> +msgstr "fordert die externen Zweige an"
>
> #: builtin/remote.c:165
> msgid "import all tags and associated objects when fetching"
> -msgstr ""
> +msgstr "importiert alle Markierungen und verbundene Objekte beim Anfordern"
>
> #: builtin/remote.c:168
> msgid "or do not fetch any tag at all (--no-tags)"
> -msgstr ""
> +msgstr "oder fordere gar keine Zweige an (--no-tags)"
>
> #: builtin/remote.c:170
> msgid "branch(es) to track"
> -msgstr ""
> +msgstr "Zweige zur Übernahme"
>
> #: builtin/remote.c:171
> -#, fuzzy
> msgid "master branch"
> -msgstr " externer Zweig:%s"
> +msgstr "Hauptzweig"
>
> #: builtin/remote.c:172
> msgid "push|fetch"
> -msgstr ""
> +msgstr "push|fetch"
>
> #: builtin/remote.c:173
> msgid "set up remote as a mirror to push to or fetch from"
> msgstr ""
> +"Aufsetzen der Fernarchivs als Spiegelarchiv zum Versenden und Anfordern"
>
> #: builtin/remote.c:185
> msgid "specifying a master branch makes no sense with --mirror"
> @@ -7410,7 +7369,7 @@ msgstr "Angabe eines Hauptzweiges macht mit --mirror keinen Sinn"
> #: builtin/remote.c:187
> msgid "specifying branches to track makes sense only with fetch mirrors"
> msgstr ""
> -"die Angabe von zu folgenden Zweigen macht nur mit dem Abholen von "
> +"die Angabe von zu folgenden Zweigen macht nur mit dem Anfordern von "
> "Spiegelarchiven Sinn"
>
> #: builtin/remote.c:195 builtin/remote.c:646
> @@ -7605,9 +7564,8 @@ msgid " %-*s pushes to %s"
> msgstr " %-*s versendet nach %s"
>
> #: builtin/remote.c:1091
> -#, fuzzy
> msgid "do not query remotes"
> -msgstr "Würde nicht entfernen %s\n"
> +msgstr "keine Abfrage von Fernarchiven"
>
> #: builtin/remote.c:1118
> #, c-format
> @@ -7671,11 +7629,11 @@ msgstr[1] " Lokale Referenzen konfiguriert für 'git push'%s:"
>
> #: builtin/remote.c:1199
> msgid "set refs/remotes/<name>/HEAD according to remote"
> -msgstr ""
> +msgstr "setzt refs/remotes/<Name>/HEAD gemäß dem Fernarchiv"
>
> #: builtin/remote.c:1201
> msgid "delete refs/remotes/<name>/HEAD"
> -msgstr ""
> +msgstr "entfernt refs/remotes/<Name>/HEAD"
>
> #: builtin/remote.c:1216
> msgid "Cannot determine remote HEAD"
> @@ -7734,7 +7692,7 @@ msgstr "* [veralteten Zweig entfernt] %s"
>
> #: builtin/remote.c:1321
> msgid "prune remotes after fetching"
> -msgstr ""
> +msgstr "entfernt veraltete Zweige im Fernarchiv nach dem Abholen"
>
> #: builtin/remote.c:1387 builtin/remote.c:1461
> #, c-format
> @@ -7742,9 +7700,8 @@ msgid "No such remote '%s'"
> msgstr "Kein solches externes Projektarchiv '%s'"
>
> #: builtin/remote.c:1407
> -#, fuzzy
> msgid "add branch"
> -msgstr "Auf Zweig "
> +msgstr "fügt Zweig hinzu"
>
> #: builtin/remote.c:1414
> msgid "no remote specified"
> @@ -7752,16 +7709,15 @@ msgstr "kein externes Projektarchiv angegeben"
>
> #: builtin/remote.c:1436
> msgid "manipulate push URLs"
> -msgstr ""
> +msgstr "manipuliert URLs zum Versenden"
>
> #: builtin/remote.c:1438
> msgid "add URL"
> -msgstr ""
> +msgstr "fügt URL hinzu"
>
> #: builtin/remote.c:1440
> -#, fuzzy
> msgid "delete URLs"
> -msgstr "gelöscht"
> +msgstr "löscht URLs"
>
> #: builtin/remote.c:1447
> msgid "--add --delete doesn't make sense"
> @@ -7783,53 +7739,53 @@ msgstr "Werde keine URLs entfernen, die nicht für den Versand bestimmt sind"
>
> #: builtin/remote.c:1569
> msgid "be verbose; must be placed before a subcommand"
> -msgstr ""
> +msgstr "erweiterte Ausgaben; muss vor einem Unterkommando angegeben werden"
>
> #: builtin/replace.c:17
> msgid "git replace [-f] <object> <replacement>"
> -msgstr ""
> +msgstr "git replace [-f] <Objekt> <Ersetzung>"
>
> #: builtin/replace.c:18
> msgid "git replace -d <object>..."
> -msgstr ""
> +msgstr "git replace -d <Objekt>..."
>
> #: builtin/replace.c:19
> msgid "git replace -l [<pattern>]"
> -msgstr ""
> +msgstr "git replace -l [<Muster>]"
>
> #: builtin/replace.c:118
> msgid "list replace refs"
> -msgstr ""
> +msgstr "listet ersetzende Referenzen auf"
>
> #: builtin/replace.c:119
> msgid "delete replace refs"
> -msgstr ""
> +msgstr "löscht ersetzende Referenzen"
>
> #: builtin/replace.c:120
> msgid "replace the ref if it exists"
> -msgstr ""
> +msgstr "ersetzt die Referenz, wenn sie existiert"
>
> #: builtin/rerere.c:11
> msgid "git rerere [clear | forget path... | status | remaining | diff | gc]"
> -msgstr ""
> +msgstr "git rerere [clean | forget path... | status | remaining | diff | gc]"
>
> #: builtin/rerere.c:56
> -#, fuzzy
> msgid "register clean resolutions in index"
> -msgstr "%s ist bereits bereitgestellt"
> +msgstr "registriert saubere Auflösungen in der Bereitstellung"
>
> #: builtin/reset.c:25
> msgid ""
> "git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]"
> msgstr ""
> +"git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<Version>]"
>
> #: builtin/reset.c:26
> msgid "git reset [-q] <commit> [--] <paths>..."
> -msgstr ""
> +msgstr "git reset [-q] <Version> [--] <Pfade>..."
>
> #: builtin/reset.c:27
> msgid "git reset --patch [<commit>] [--] [<paths>...]"
> -msgstr ""
> +msgstr "git reset --patch [<Version>] [--] [<Pfade>...]"
>
> #: builtin/reset.c:33
> msgid "mixed"
> @@ -7890,23 +7846,23 @@ msgstr ""
>
> #: builtin/reset.c:238
> msgid "be quiet, only report errors"
> -msgstr ""
> +msgstr "weniger Ausgaben, meldet nur Fehler"
>
> #: builtin/reset.c:240
> msgid "reset HEAD and index"
> -msgstr ""
> +msgstr "setzt Zweigspitze (HEAD) und Bereitstellung zurück"
>
> #: builtin/reset.c:241
> msgid "reset only HEAD"
> -msgstr ""
> +msgstr "setzt nur Zweigspitze (HEAD) zurück"
>
> #: builtin/reset.c:243 builtin/reset.c:245
> msgid "reset HEAD, index and working tree"
> -msgstr ""
> +msgstr "setzt Zweigspitze (HEAD), Bereitstellung und Arbeitsbaum zurück"
>
> #: builtin/reset.c:247
> msgid "reset HEAD but keep local changes"
> -msgstr ""
> +msgstr "setzt Zweigspitze (HEAD) zurück, behält aber lokale Änderungen"
>
> #: builtin/reset.c:303
> #, c-format
> @@ -7938,17 +7894,16 @@ msgid "Could not reset index file to revision '%s'."
> msgstr "Konnte Bereitstellungsdatei nicht zu Version '%s' zurücksetzen."
>
> #: builtin/rev-parse.c:339
> -#, fuzzy
> msgid "git rev-parse --parseopt [options] -- [<args>...]"
> -msgstr "git apply [Optionen] [<Patch>...]"
> +msgstr "git rev-parse --parseopt [Optionen] -- [<Argumente>...]"
>
> #: builtin/rev-parse.c:344
> msgid "keep the `--` passed as an arg"
> -msgstr ""
> +msgstr "lässt `--` als Argument"
>
> #: builtin/rev-parse.c:346
> msgid "stop parsing after the first non-option argument"
> -msgstr ""
> +msgstr "stoppt das Parsen nach dem ersten Argument was keine Option ist"
>
> #: builtin/rev-parse.c:464
> msgid ""
> @@ -7958,23 +7913,28 @@ msgid ""
> "\n"
> "Run \"git rev-parse --parseopt -h\" for more information on the first usage."
> msgstr ""
> +"git rev-parse --parseopt [Optionen] -- [<Argumente>...]\n"
> +" or: git rev-parse --sq-quote [<Argumente>...]\n"
> +" or: git rev-parse [Optionen] [<Argumente>...]\n"
> +"\n"
> +"Führe \"git rev-parse --parseopt -h\" für weitere Informationen bei erster "
> +"Verwendung aus."
>
> #: builtin/revert.c:22
> msgid "git revert [options] <commit-ish>"
> -msgstr ""
> +msgstr "git revert [options] <Versionsangabe>"
>
> #: builtin/revert.c:23
> msgid "git revert <subcommand>"
> -msgstr ""
> +msgstr "git revert <Unterkommando>"
>
> #: builtin/revert.c:28
> msgid "git cherry-pick [options] <commit-ish>"
> -msgstr ""
> +msgstr "git cherry-pick [Optionen] <Versionsangabe>"
>
> #: builtin/revert.c:29
> -#, fuzzy
> msgid "git cherry-pick <subcommand>"
> -msgstr "\"cherry-pick\" fehlgeschlagen"
> +msgstr "git cherry-pick <Unterkommando>"
>
> #: builtin/revert.c:70 builtin/revert.c:92
> #, c-format
> @@ -7983,68 +7943,59 @@ msgstr "%s: %s kann nicht mit %s benutzt werden"
>
> #: builtin/revert.c:103
> msgid "end revert or cherry-pick sequence"
> -msgstr ""
> +msgstr "beendet \"revert\" oder \"cherry-pick\" Ablauf"
>
> #: builtin/revert.c:104
> msgid "resume revert or cherry-pick sequence"
> -msgstr ""
> +msgstr "setzt \"revert\" oder \"cherry-pick\" Ablauf fort"
>
> #: builtin/revert.c:105
> msgid "cancel revert or cherry-pick sequence"
> -msgstr ""
> +msgstr "bricht \"revert\" oder \"cherry-pick\" Ablauf ab"
>
> #: builtin/revert.c:106
> -#, fuzzy
> msgid "don't automatically commit"
> -msgstr "Kann nicht zu initialer Version zurücksetzen."
> +msgstr "trägt nicht automatisch ein"
>
> #: builtin/revert.c:107
> -#, fuzzy
> msgid "edit the commit message"
> -msgstr "Leere Versionsbeschreibung"
> +msgstr "Bearbeitung der Versionsbeschreibung"
>
> #: builtin/revert.c:110
> msgid "parent number"
> -msgstr ""
> +msgstr "Nummer des Elternteils"
>
> #: builtin/revert.c:112
> -#, fuzzy
> msgid "merge strategy"
> -msgstr "Probiere Zusammenführungsstrategie %s...\n"
> +msgstr "Zusammenführungsstrategie"
>
> #: builtin/revert.c:113
> -#, fuzzy
> msgid "option"
> -msgstr "Aktion"
> +msgstr "Option"
>
> #: builtin/revert.c:114
> -#, fuzzy
> msgid "option for merge strategy"
> -msgstr "Probiere Zusammenführungsstrategie %s...\n"
> +msgstr "Option für Zusammenführungsstrategie"
>
> #: builtin/revert.c:125
> msgid "append commit name"
> -msgstr ""
> +msgstr "hängt Versionsnamen an"
>
> #: builtin/revert.c:126
> -#, fuzzy
> msgid "allow fast-forward"
> -msgstr "(kein Vorspulen)"
> +msgstr "erlaubt Vorspulen"
>
> #: builtin/revert.c:127
> -#, fuzzy
> msgid "preserve initially empty commits"
> -msgstr "Kann nicht zu initialer Version zurücksetzen."
> +msgstr "erhält ursprüngliche, leere Versionen"
>
> #: builtin/revert.c:128
> -#, fuzzy
> msgid "allow commits with empty messages"
> -msgstr "Version hat eine leere Beschreibung"
> +msgstr "erlaubt Version mit leerer Beschreibung"
>
> #: builtin/revert.c:129
> -#, fuzzy
> msgid "keep redundant, empty commits"
> -msgstr "Zusammenführung hat keine Version zurückgegeben"
> +msgstr "behält redundante, leere Versionen"
>
> #: builtin/revert.c:133
> msgid "program error"
> @@ -8059,9 +8010,8 @@ msgid "cherry-pick failed"
> msgstr "\"cherry-pick\" fehlgeschlagen"
>
> #: builtin/rm.c:14
> -#, fuzzy
> msgid "git rm [options] [--] <file>..."
> -msgstr "git apply [Optionen] [<Patch>...]"
> +msgstr "git rm [Optionen] [--] [<Datei>...]"
>
> #: builtin/rm.c:109
> #, c-format
> @@ -8093,26 +8043,24 @@ msgstr ""
> "erzwingen)"
>
> #: builtin/rm.c:134
> -#, fuzzy
> msgid "do not list removed files"
> -msgstr "Kann geänderte Dateien nicht aus der Bereitstellung herausnehmen"
> +msgstr "listet keine entfernten Dateien auf"
>
> #: builtin/rm.c:135
> -#, fuzzy
> msgid "only remove from the index"
> -msgstr "konnte %s nicht aus der Bereitstellung entfernen"
> +msgstr "entfernt nur aus der Bereitstellung"
>
> #: builtin/rm.c:136
> msgid "override the up-to-date check"
> -msgstr ""
> +msgstr "überschreibt die \"up-to-date\" Prüfung"
>
> #: builtin/rm.c:137
> msgid "allow recursive removal"
> -msgstr ""
> +msgstr "erlaubt rekursive Entfernung"
>
> #: builtin/rm.c:139
> msgid "exit with a zero status even if nothing matched"
> -msgstr ""
> +msgstr "beendet mit Rückgabewert 0, wenn keine Übereinstimmung gefunden wurde"
>
> #: builtin/rm.c:194
> #, c-format
> @@ -8127,6 +8075,8 @@ msgstr "git rm: konnte %s nicht entfernen"
> #: builtin/shortlog.c:13
> msgid "git shortlog [-n] [-s] [-e] [-w] [rev-opts] [--] [<commit-id>... ]"
> msgstr ""
> +"git shortlog [-n] [-s] [-e] [-w] [rev-opts] [--] "
> +"[<Versionsidentifikation>... ]"
>
> #: builtin/shortlog.c:157
> #, c-format
> @@ -8135,23 +8085,23 @@ msgstr "fehlender Autor: %s"
>
> #: builtin/shortlog.c:253
> msgid "sort output according to the number of commits per author"
> -msgstr ""
> +msgstr "sortiert die Ausgabe entsprechend der Anzahl von Versionen pro Autor"
>
> #: builtin/shortlog.c:255
> msgid "Suppress commit descriptions, only provides commit count"
> -msgstr ""
> +msgstr "Unterdrückt Versionsbeschreibungen, liefert nur Anzahl der Versionen"
>
> #: builtin/shortlog.c:257
> msgid "Show the email address of each author"
> -msgstr ""
> +msgstr "Zeigt die eMail-Adresse von jedem Autor"
>
> #: builtin/shortlog.c:258
> msgid "w[,i1[,i2]]"
> -msgstr ""
> +msgstr "w[,i1[,i2]]"
>
> #: builtin/shortlog.c:259
> msgid "Linewrap output"
> -msgstr ""
> +msgstr "Ausgabe mit Zeilenumbrüchen"
>
> #: builtin/show-branch.c:9
> msgid ""
> @@ -8160,162 +8110,173 @@ msgid ""
> "independent | --merge-base] [--no-name | --sha1-name] [--topics] [(<rev> | "
> "<glob>)...]"
> msgstr ""
> +"git show-branch [-a|--all] [-r|--remotes] [--topo-order | --date-order] [--"
> +"current] [--color[=<Wann>] | --no-color] [--sparse] [--more=<Nummer> | --"
> +"list | --independent | --merge-base] [--no-name | --sha1-name] [--topics] "
> +"[(<Revision> | <glob>)...]"
>
> #: builtin/show-branch.c:10
> msgid "git show-branch (-g|--reflog)[=<n>[,<base>]] [--list] [<ref>]"
> msgstr ""
> +"git show-branch (-g|--reflog)[=<Nummer>[,<Basis>]] [--list] [<Referenz>]"
>
> #: builtin/show-branch.c:651
> -#, fuzzy
> msgid "show remote-tracking and local branches"
> -msgstr "Kein externer Übernahmezweig für %s von %s"
> +msgstr "zeigt externer Übernahmezweige und lokale Zweige an"
>
> #: builtin/show-branch.c:653
> -#, fuzzy
> msgid "show remote-tracking branches"
> -msgstr "Kein externer Übernahmezweig für %s von %s"
> +msgstr "zeigt externer Übernahmezweige an"
>
> #: builtin/show-branch.c:655
> msgid "color '*!+-' corresponding to the branch"
> -msgstr ""
> +msgstr "färbt '*!+-' entsprechend des Zweiges ein"
>
> #: builtin/show-branch.c:657
> msgid "show <n> more commits after the common ancestor"
> -msgstr ""
> +msgstr "zeigt <Nummer> weitere Versionen nach dem gemeinsamen Vorfahren"
>
> #: builtin/show-branch.c:659
> msgid "synonym to more=-1"
> -msgstr ""
> +msgstr "Synonym für more=-1"
>
> #: builtin/show-branch.c:660
> msgid "suppress naming strings"
> -msgstr ""
> +msgstr "unterdrückt Namen"
>
> #: builtin/show-branch.c:662
> -#, fuzzy
> msgid "include the current branch"
> -msgstr "Du befindest dich auf keinem Zweig."
> +msgstr "bezieht den aktuellen Zweig ein"
>
> #: builtin/show-branch.c:664
> -#, fuzzy
> msgid "name commits with their object names"
> -msgstr "Konnte Notiz-Objekt nicht schreiben"
> +msgstr "benennt Versionen nach ihren Objektnamen"
>
> #: builtin/show-branch.c:666
> msgid "show possible merge bases"
> -msgstr ""
> +msgstr "zeigt mögliche Basen für Zusammenführung"
>
> #: builtin/show-branch.c:668
> msgid "show refs unreachable from any other ref"
> -msgstr ""
> +msgstr "zeigt Referenzen die unerreichbar von allen anderen Referenzen sind"
>
> #: builtin/show-branch.c:670
> msgid "show commits in topological order"
> -msgstr ""
> +msgstr "zeigt Versionen in topologischer Ordnung"
>
> #: builtin/show-branch.c:672
> msgid "show only commits not on the first branch"
> -msgstr ""
> +msgstr "zeigt nur Versionen, die sich nicht im ersten Zweig befinden"
>
> #: builtin/show-branch.c:674
> msgid "show merges reachable from only one tip"
> msgstr ""
> +"zeigt Zusammenführungen, die nur von einer Zweigspitze aus erreichbar sind"
>
> #: builtin/show-branch.c:676
> msgid "show commits where no parent comes before its children"
> -msgstr ""
> +msgstr "zeigt Versionen, wo kein Elternteil vor seinem Kind kommt"
>
> #: builtin/show-branch.c:678
> msgid "<n>[,<base>]"
> -msgstr ""
> +msgstr "<Nummer>[,<Basis>]"
>
> #: builtin/show-branch.c:679
> msgid "show <n> most recent ref-log entries starting at base"
> msgstr ""
> +"zeigt die <Nummer> jüngsten Einträge im Referenzprotokoll beginnend an der "
> +"Basis"
>
> #: builtin/show-ref.c:10
> msgid ""
> "git show-ref [-q|--quiet] [--verify] [--head] [-d|--dereference] [-s|--hash"
> "[=<n>]] [--abbrev[=<n>]] [--tags] [--heads] [--] [pattern*] "
> msgstr ""
> +"git show-ref [-q|--quiet] [--verify] [--head] [-d|--dereference] [-s|--hash"
> +"[=<Nummer>]] [--abbrev[=<Nummer>]] [--tags] [--heads] [--] [pattern*] "
>
> #: builtin/show-ref.c:11
> msgid "git show-ref --exclude-existing[=pattern] < ref-list"
> -msgstr ""
> +msgstr "git show-ref --exclude-existing[=Muster] < ref-list"
>
> #: builtin/show-ref.c:182
> -#, fuzzy
> msgid "only show tags (can be combined with heads)"
> -msgstr "--all kann nicht mit Referenzspezifikationen kombiniert werden"
> +msgstr "zeigt nur Markierungen (kann mit \"heads\" kombiniert werden)"
>
> #: builtin/show-ref.c:183
> -#, fuzzy
> msgid "only show heads (can be combined with tags)"
> -msgstr "--all kann nicht mit Referenzspezifikationen kombiniert werden"
> +msgstr "zeigt nur Zweigspitzen (kann mit \"tags\" kombiniert werden)"
>
> #: builtin/show-ref.c:184
> msgid "stricter reference checking, requires exact ref path"
> -msgstr ""
> +msgstr "strengere Referenzprüfung, erfordert exakten Referenzpfad"
>
> #: builtin/show-ref.c:187 builtin/show-ref.c:189
> msgid "show the HEAD reference"
> -msgstr ""
> +msgstr "zeigt Referenz der Zweigspitze (HEAD)"
>
> #: builtin/show-ref.c:191
> -#, fuzzy
> msgid "dereference tags into object IDs"
> -msgstr "Referenz ist kein Baum: %s"
> +msgstr "dereferenziert Markierungen in Objekt-Identifikationen"
>
> #: builtin/show-ref.c:193
> msgid "only show SHA1 hash using <n> digits"
> -msgstr ""
> +msgstr "zeigt nur SHA1 Hash mit <Nummer> Ziffern"
>
> #: builtin/show-ref.c:197
> msgid "do not print results to stdout (useful with --verify)"
> msgstr ""
> +"keine Ausgabe der Ergebnisse in die Standard-Ausgabe (nützlich mit --verify)"
>
> #: builtin/show-ref.c:199
> msgid "show refs from stdin that aren't in local repository"
> msgstr ""
> +"zeigt Referenzen von der Standard-Eingabe, die sich nicht im lokalen "
> +"Projektarchiv befinden, an"
>
> #: builtin/symbolic-ref.c:7
> msgid "git symbolic-ref [options] name [ref]"
> -msgstr ""
> +msgstr "git symbolic-ref [Optionen] name [ref]"
>
> #: builtin/symbolic-ref.c:38
> msgid "suppress error message for non-symbolic (detached) refs"
> msgstr ""
> +"unterdrückt Fehlermeldungen für nicht-symbolische (losgelöste) Referenzen"
>
> #: builtin/symbolic-ref.c:39
> msgid "shorten ref output"
> -msgstr ""
> +msgstr "verkürzte Ausgabe der Referenzen"
>
> #: builtin/symbolic-ref.c:40 builtin/update-ref.c:18
> msgid "reason"
> -msgstr ""
> +msgstr "Grund"
>
> #: builtin/symbolic-ref.c:40 builtin/update-ref.c:18
> msgid "reason of the update"
> -msgstr ""
> +msgstr "Grund für die Aktualisierung"
>
> #: builtin/tag.c:22
> msgid ""
> "git tag [-a|-s|-u <key-id>] [-f] [-m <msg>|-F <file>] <tagname> [<head>]"
> msgstr ""
> +"git tag [-a|-s|-u <Schlüssel-id>] [-f] [-m <Nachricht>|-F <Datei>] "
> +"<Markierungsname> [<Zweig>]"
>
> #: builtin/tag.c:23
> msgid "git tag -d <tagname>..."
> -msgstr ""
> +msgstr "git tag -d <Markierungsname>..."
>
> #: builtin/tag.c:24
> msgid ""
> "git tag -l [-n[<num>]] [--contains <commit>] [--points-at <object>] \n"
> "\t\t[<pattern>...]"
> msgstr ""
> +"git tag -l [-n[<Nummer>]] [--contains <Version>] [--points-at <Objekt>] \n"
> +"\t\t[<Muster>...]"
>
> #: builtin/tag.c:26
> msgid "git tag -v <tagname>..."
> -msgstr ""
> +msgstr "git tag -v <Markierungsname>..."
>
> #: builtin/tag.c:60
> #, c-format
> @@ -8408,63 +8369,59 @@ msgstr "fehlerhafter Objekt-Name '%s'"
>
> #: builtin/tag.c:447
> msgid "list tag names"
> -msgstr ""
> +msgstr "listet Markierungsnamen auf"
>
> #: builtin/tag.c:449
> msgid "print <n> lines of each tag message"
> -msgstr ""
> +msgstr "zeigt <Anzahl> Zeilen jeder Markierungsbeschreibung"
>
> #: builtin/tag.c:451
> -#, fuzzy
> msgid "delete tags"
> -msgstr "gelöscht"
> +msgstr "löscht Markierungen"
>
> #: builtin/tag.c:452
> msgid "verify tags"
> -msgstr ""
> +msgstr "überprüft Markierungen"
>
> #: builtin/tag.c:454
> msgid "Tag creation options"
> -msgstr ""
> +msgstr "Optionen für Erstellung von Markierungen"
>
> #: builtin/tag.c:456
> -#, fuzzy
> msgid "annotated tag, needs a message"
> -msgstr "annotierte Markierung %s hat keinen eingebetteten Namen"
> +msgstr "annotierte Markierung, benötigt eine Beschreibung"
>
> #: builtin/tag.c:458
> -#, fuzzy
> msgid "tag message"
> -msgstr "keine Markierungsbeschreibung?"
> +msgstr "Markierungsbeschreibung"
>
> #: builtin/tag.c:460
> msgid "annotated and GPG-signed tag"
> -msgstr ""
> +msgstr "annotierte und GPG-signierte Markierung"
>
> #: builtin/tag.c:464
> -#, fuzzy
> msgid "use another key to sign the tag"
> -msgstr "konnte Markierung nicht signieren"
> +msgstr "benutzt einen Schlüssel um die Markierung zu signieren"
>
> #: builtin/tag.c:465
> msgid "replace the tag if exists"
> -msgstr ""
> +msgstr "ersetzt die Markierung, wenn sie existiert"
>
> #: builtin/tag.c:466
> msgid "show tag list in columns"
> -msgstr ""
> +msgstr "zeigt Liste der Markierungen in Spalten"
>
> #: builtin/tag.c:468
> msgid "Tag listing options"
> -msgstr ""
> +msgstr "Optionen für Auflistung der Markierungen"
>
> #: builtin/tag.c:471
> msgid "print only tags that contain the commit"
> -msgstr ""
> +msgstr "gibt nur Markierungen aus, die diese Version beinhalten"
>
> #: builtin/tag.c:477
> msgid "print only tags of the object"
> -msgstr ""
> +msgstr "gibt nur Markierungen von dem Objekt aus"
>
> #: builtin/tag.c:506
> msgid "--column and -n are incompatible"
> @@ -8516,182 +8473,184 @@ msgid "Updated tag '%s' (was %s)\n"
> msgstr "Aktualisierte Markierung '%s' (war %s)\n"
>
> #: builtin/update-index.c:401
> -#, fuzzy
> msgid "git update-index [options] [--] [<file>...]"
> -msgstr "git apply [Optionen] [<Patch>...]"
> +msgstr "git update-index [Optionen] [--] [<Datei>...]"
>
> #: builtin/update-index.c:717
> msgid "continue refresh even when index needs update"
> msgstr ""
> +"Aktualisierung fortsetzen, auch wenn die Bereitstellung aktualisiert werden "
> +"muss"
>
> #: builtin/update-index.c:720
> msgid "refresh: ignore submodules"
> -msgstr ""
> +msgstr "Aktualisierung: ignoriert Unterprojekte"
>
> #: builtin/update-index.c:723
> -#, fuzzy
> msgid "do not ignore new files"
> -msgstr "Kann Indexdatei nicht speichern"
> +msgstr "ignoriert keine neuen Dateien"
>
> #: builtin/update-index.c:725
> msgid "let files replace directories and vice-versa"
> -msgstr ""
> +msgstr "lässt Dateien Verzeichnisse ersetzen, und umgedreht"
>
> #: builtin/update-index.c:727
> msgid "notice files missing from worktree"
> -msgstr ""
> +msgstr "beachtet fehlende Dateien im Arbeitsbaum"
>
> #: builtin/update-index.c:729
> msgid "refresh even if index contains unmerged entries"
> msgstr ""
> +"aktualisiert, auch wenn die Bereitstellung nicht zusammengeführte Einträge "
> +"beinhaltet"
>
> #: builtin/update-index.c:732
> msgid "refresh stat information"
> -msgstr ""
> +msgstr "aktualisiert Dateiinformationen"
>
> #: builtin/update-index.c:736
> msgid "like --refresh, but ignore assume-unchanged setting"
> -msgstr ""
> +msgstr "wie --refresh, ignoriert aber \"assume-unchanged\" Einstellung"
>
> #: builtin/update-index.c:740
> msgid "<mode> <object> <path>"
> -msgstr ""
> +msgstr "<Modus> <Objekt> <Pfad>"
>
> #: builtin/update-index.c:741
> -#, fuzzy
> msgid "add the specified entry to the index"
> -msgstr "stellt Dateiinhalte zur Eintragung bereit"
> +msgstr "stellt den angegebenen Eintrag zur Eintragung bereit"
>
> #: builtin/update-index.c:745
> msgid "(+/-)x"
> -msgstr ""
> +msgstr "(+/-)x"
>
> #: builtin/update-index.c:746
> msgid "override the executable bit of the listed files"
> -msgstr ""
> +msgstr "überschreibt das \"ausführbar\"-Bit der aufgelisteten Dateien"
>
> #: builtin/update-index.c:750
> msgid "mark files as \"not changing\""
> -msgstr ""
> +msgstr "markiert Dateien als \"not changing\""
>
> #: builtin/update-index.c:753
> msgid "clear assumed-unchanged bit"
> -msgstr ""
> +msgstr "löscht \"assumed-unchanged\"-Bit"
>
> #: builtin/update-index.c:756
> msgid "mark files as \"index-only\""
> -msgstr ""
> +msgstr "markiert Dateien als \"index-only\""
>
> #: builtin/update-index.c:759
> msgid "clear skip-worktree bit"
> -msgstr ""
> +msgstr "löscht \"skip-worktree\"-Bit"
>
> #: builtin/update-index.c:762
> msgid "add to index only; do not add content to object database"
> msgstr ""
> +"fügt nur der Bereitstellung hinzu; Inhalt wird nicht der Objekt-Datenbank "
> +"hinzugefügt"
>
> #: builtin/update-index.c:764
> msgid "remove named paths even if present in worktree"
> -msgstr ""
> +msgstr "entfernt benannte Pfade, auch wenn sie sich im Arbeitsbaum befinden"
>
> #: builtin/update-index.c:766
> msgid "with --stdin: input lines are terminated by null bytes"
> -msgstr ""
> +msgstr "mit --stdin: eingegebene Zeilen sind durch NUL-Bytes abgeschlossen"
>
> #: builtin/update-index.c:768
> -#, fuzzy
> msgid "read list of paths to be updated from standard input"
> -msgstr "(lese Log-Nachricht von Standard-Eingabe)\n"
> +msgstr "liest Liste der zu aktualisierenden Pfade von der Standard-Eingabe"
>
> #: builtin/update-index.c:772
> -#, fuzzy
> msgid "add entries from standard input to the index"
> -msgstr "Konnte Log nicht von Standard-Eingabe lesen."
> +msgstr "fügt Einträge von der Standard-Eingabe der Bereitstellung hinzu"
>
> #: builtin/update-index.c:776
> msgid "repopulate stages #2 and #3 for the listed paths"
> msgstr ""
> +"wiederholte Ausführung der Phasen #2 und #3 für die aufgelisteten Pfade"
>
> #: builtin/update-index.c:780
> msgid "only update entries that differ from HEAD"
> msgstr ""
> +"aktualisiert nur Einträge, die unterschiedlich zur Zweigspitze (HEAD) sind"
>
> #: builtin/update-index.c:784
> msgid "ignore files missing from worktree"
> -msgstr ""
> +msgstr "ignoriert fehlende Dateien im Arbeitsbaum"
>
> #: builtin/update-index.c:787
> msgid "report actions to standard output"
> -msgstr ""
> +msgstr "gibt die Aktionen in der Standard-Ausgabe aus"
>
> #: builtin/update-index.c:789
> msgid "(for porcelains) forget saved unresolved conflicts"
> -msgstr ""
> +msgstr "(für Fremdprogramme) keine gespeicherten, nicht aufgelöste Konflikte"
>
> #: builtin/update-index.c:793
> msgid "write index in this format"
> -msgstr ""
> +msgstr "schreibt Bereitstellungsdatei in diesem Format"
>
> #: builtin/update-ref.c:7
> msgid "git update-ref [options] -d <refname> [<oldval>]"
> -msgstr ""
> +msgstr "git update-ref [Optionen] -d <Referenzname> [<alterWert>]"
>
> #: builtin/update-ref.c:8
> msgid "git update-ref [options] <refname> <newval> [<oldval>]"
> -msgstr ""
> +msgstr "git update-ref [Optionen] <Referenzname> <neuerWert> [<alterWert>]"
>
> #: builtin/update-ref.c:19
> msgid "delete the reference"
> -msgstr ""
> +msgstr "löscht diese Referenz"
>
> #: builtin/update-ref.c:21
> msgid "update <refname> not the one it points to"
> -msgstr ""
> +msgstr "aktualisiert <Referenzname>, nicht den Verweis"
>
> #: builtin/update-server-info.c:6
> msgid "git update-server-info [--force]"
> -msgstr ""
> +msgstr "git update-server-info [--force]"
>
> #: builtin/update-server-info.c:14
> msgid "update the info files from scratch"
> -msgstr ""
> +msgstr "aktualisiert die Informationsdateien von Grund auf"
>
> #: builtin/verify-pack.c:56
> msgid "git verify-pack [-v|--verbose] [-s|--stat-only] <pack>..."
> -msgstr ""
> +msgstr "git verify-pack [-v|--verbose] [-s|--stat-only] <Paket>..."
>
> #: builtin/verify-pack.c:66
> -#, fuzzy
> msgid "verbose"
> msgstr "erweiterte Ausgaben"
>
> #: builtin/verify-pack.c:68
> msgid "show statistics only"
> -msgstr ""
> +msgstr "zeigt nur Statistiken"
>
> #: builtin/verify-tag.c:17
> msgid "git verify-tag [-v|--verbose] <tag>..."
> -msgstr ""
> +msgstr "git verify-tag [-v|--verbose] <Markierung>..."
>
> #: builtin/verify-tag.c:73
> msgid "print tag contents"
> -msgstr ""
> +msgstr "gibt Markierungsinhalte aus"
>
> #: builtin/write-tree.c:13
> msgid "git write-tree [--missing-ok] [--prefix=<prefix>/]"
> -msgstr ""
> +msgstr "git write-tree [--missing-ok] [--prefix=<Prefix>/]"
>
> #: builtin/write-tree.c:26
> msgid "<prefix>/"
> -msgstr ""
> +msgstr "<Prefix>/"
>
> #: builtin/write-tree.c:27
> msgid "write tree object for a subdirectory <prefix>"
> -msgstr ""
> +msgstr "schreibt das Baumobjekt für ein Unterverzeichnis <Prefix>"
>
> #: builtin/write-tree.c:30
> msgid "only useful for debugging"
> -msgstr ""
> +msgstr "nur nützlich für Fehlersuche"
>
> #: git.c:16
> msgid "See 'git help <command>' for more information on a specific command."
> @@ -8713,7 +8672,7 @@ msgstr "weniger Ausgaben"
>
> #: parse-options.h:236
> msgid "use <n> digits to display SHA-1s"
> -msgstr "benutze <n> Ziffern zur Anzeige von SHA-1s"
> +msgstr "benutze <Anzahl> Ziffern zur Anzeige von SHA-1s"
>
> #: common-cmds.h:8
> msgid "Add file contents to the index"
> @@ -8983,6 +8942,8 @@ msgid ""
> "The copy of the patch that failed is found in:\n"
> " $dotest/patch"
> msgstr ""
> +"Die Kopie des fehlgeschlagenen Patches befindet sich in:\n"
> +" $dotest/patch"
>
> #: git-am.sh:876
> msgid "applying to an empty history"
--
Thomas Rast
trast@{inf,student}.ethz.ch
^ permalink raw reply
* Antw: Re: diff support for the Eiffel language?
From: Ulrich Windl @ 2012-11-27 11:16 UTC (permalink / raw)
To: avarab, Johannes Sixt; +Cc: git
In-Reply-To: <50854B90.50807@viscovery.net>
Hi!
I managed to have some success, although it's not perfect. Unfortunately the
Eiffel grammar does not allow a 100% solution. Example:
---
local
x : BOOLEAN
---
declares a local variable named `x', while
---
x : BOOLEAN
do ... end
---
Declares a function named `x'. Formal generic parameters like `x :
ARRAY[ARRAY[STRING]]' make things more complicate. Anyway, here's my solution
(probably incomplete):
---
% git config --local -e
[diff "Eiffel"]
xfuncname =
"!^[[:space:]]*(check|class|[Cc]reate|else|elseif|end|ensure|do|!|feature|from|indexing|inherit|is|local|loop|note|require|then|until)[[:space:]]*\n\
^[[:space:]]*(class[[:space:]]*[[:alpha:]_][[:alnum:]_]*)\n\
^[[:space:]]*([[:alpha:]_][[:alnum:]_]*[[:space:]]*\\([^(\")]+:[^(\")]+\\)[[:space:]]*:[[:space:]*[[:alpha:]_][[:alnum:]_]*[[:space:]]*[^[:space:]\"]?[^\"=]*)[[:space:]]*$\n\
^[[:space:]]*([[:alpha:]_][[:alnum:]_]*[[:space:]]*\\([^(\")]+:[^(\")]+\\))[[:space:]]*$\n\
^[[:space:]]*([[:alpha:]_][[:alnum:]_]*[[:space:]]*:[[:space:]*[[:alpha:]_][[:alnum:]_]*[[:space:]]*[^[:space:]\"]?[^\"=]*)[[:space:]]*$\n\
^[[:space:]]*([[:alpha:]_][[:alnum:]_]*)[[:space:]]*$"
% cat .git/info/attributes
*.e diff=Eiffel
---
Regards,
Ulrich
>>> Johannes Sixt <j.sixt@viscovery.net> schrieb am 22.10.2012 um 15:35 in
Nachricht <50854B90.50807@viscovery.net>:
> Am 10/22/2012 15:06, schrieb Ævar Arnfjörð Bjarmason:
> > On Mon, Oct 22, 2012 at 1:58 PM, Ulrich Windl
> > <Ulrich.Windl@rz.uni-regensburg.de> wrote:
> >> However there's one little thing I noticed with "git diff": The
> >> conte4xt lines (staring with "@@") show the current function (in Perl
> >> and C), but they show the current "feature clause" in Eiffel (as
> >> opposed to the expected current feature). I wonder how hard it is to
> >> fix it (Observed in git 1.7.7 of openSUSE 12.1).
> >
> > See git.git's e90d065 for an example of adding a new diff pattern.
>
> It's not necessary to wait until there is built-in support for a new
> language.
>
> For example, for Windows resource files, I have
>
> *.rc diff=winres
>
> in .gitattributes or .git/info/attributes and
>
> [diff "winres"]
> xfuncname =
>
"!^(BEGIN|END|FONT|CAPTION|STYLE)\n^[a-zA-Z_][a-zA-Z_0-9]*.*\n^[[:space:]]*(
> [[:alnum:]_]+,
> *DIALOG.*)"
>
> in .git/config (the xfuncname is all on a single line). The first part
> beginning at ! up to \n tells to ignore the specified matches. The other
> parts separated by \n tell the things to put in the hunk header. You can
> have "ignore" parts (with exlamation mark) and "take this" parts (without)
> in any order that is convenient, as long as the last one is "take this".
>
> -- Hannes
>
^ permalink raw reply
* Re: [PATCH 5/5] git-send-email: allow edit invalid email address
From: Krzysztof Mazur @ 2012-11-27 10:53 UTC (permalink / raw)
To: Junio C Hamano
Cc: git, Felipe Contreras, Andreas Schwab, Felipe Balbi,
Tomi Valkeinen
In-Reply-To: <7v7gp7q5yx.fsf@alter.siamese.dyndns.org>
On Mon, Nov 26, 2012 at 03:50:30PM -0800, Junio C Hamano wrote:
> Krzysztof Mazur <krzysiek@podlesie.net> writes:
>
> > On Mon, Nov 26, 2012 at 02:58:58PM -0800, Junio C Hamano wrote:
> >> Krzysztof Mazur <krzysiek@podlesie.net> writes:
> >>
> >> >> Not having this new code inside "elsif (/^e/) { }" feels somewhat
> >> >> sloppy, even though it is not *too* bad. Also do we know this
> >> >
> >> > ok, I will fix that.
> >> >
> >> >> function will never be used for addresses other than recipients' (I
> >> >> gave a cursory look to see what is done to the $sender and it does
> >> >> not seem to go through this function, tho)?
> >> >
> >> > Yes, this function is called only from validate_address_just()
> >> > to filter @initial_to, @initial_cc, @bcc_list as early as possible,
> >> > and filter @to and @cc added in each email.
> >>
> >> Thanks; when merged to 'pu', this series seems to break t9001. I'll
> >> push the result out with breakages but could you take a look?
> >>
> >
> > Sorry, I tested final version only on an ancient perl 5.8.8 and it really
> > worked there. The third patch is broken:
> >
> > diff --git a/git-send-email.perl b/git-send-email.perl
> > index 9996735..f3bbc16 100755
> > --- a/git-send-email.perl
> > +++ b/git-send-email.perl
> > @@ -1472,7 +1472,7 @@ sub unique_email_list {
> > my @emails;
> >
> > foreach my $entry (@_) {
> > - my $clean = extract_valid_address_or_die($entry))
> > + my $clean = extract_valid_address_or_die($entry);
>
> Ah, ok, I wasn't looking closely enough. Thanks for a quick
> turnaround. Will requeue and push out.
I rechecked that and I've just sent some older broken version. The
patch that I've sent had date Date: Thu, 22 Nov 2012 19:00:25 +0100,
but on my tree I have commit from Date: Thu Nov 22 19:01:55 2012 +0100,
which is exactly the same as the fixed version in your tree.
Thanks,
Krzysiek
^ permalink raw reply
* Re: Python extension commands in git - request for policy change
From: David Aguilar @ 2012-11-27 10:51 UTC (permalink / raw)
To: Sitaram Chamarty
Cc: Felipe Contreras, esr, Nguyen Thai Ngoc Duy, git, msysGit,
Guillaume DE BURE
In-Reply-To: <CAMK1S_j_F6PQ73zUP9QaDBR6FVd7fMY==D9vxwpwVwRUbfkB4Q@mail.gmail.com>
On Tue, Nov 27, 2012 at 1:17 AM, Sitaram Chamarty <sitaramc@gmail.com> wrote:
> On Tue, Nov 27, 2012 at 1:24 PM, David Aguilar <davvid@gmail.com> wrote:
>
>> *cough* git-cola *cough*
>>
>> it runs everywhere. Yes, windows too. It's written in python.
>> It's been actively maintained since 2007.
>>
>> It's "modern" and has features that don't exist anywhere else.
>>
>> It even has tests. It even comes with a building full of willing
>> guinea-pigs^Wtesters that let me know right away when
>> anything goes wrong.
>>
>> It uses Qt but that's really the whole point of Qt -> cross-platform.
>> (not sure how that wiki page ended up saying Gnome/GTK?)
>>
>> The DAG aka git-dag (in its master branch, about to be released)
>> is nicer looking then gitk IMO. gitk still has some features
>> that are better too--there's no silver bullet, but the delta
>> is pretty small.
>
> Gitk does a lot of things that people don't realise, since they're not
> really documented and you have to scrounge around on the UI. The
> thing is, it's just about the most awesome tool for code archeology I
> have seen.
>
> I realise (from looking at the doc page) that git-cola helps you do
> all sorts of things, but those are all things I am happier doing at
> the command line.
Ditto. There's actually a few small things I use it for,
mainly for teasing apart commits. These days you can use git-gui
for that, but in the old days it was the only way to interactively
select individual lines and stage/unstage/revert them, etc.
I don't think we can line-by-line revert in git-gui yet, though.
Some other small things that I use: ctrl-g, type something
for grep, hit enter twice and I'm in my editor on that
(or any other selected) line. 'spacebar' does xdg-open,
and 'enter' launches the editor in the status widget;
small things. I, too, do most stuff on the command line.
The grep thing is a good example. You have tons of output,
you see the one line that you care about, and you want to jump
there. Clicking on that line and hitting enter is the minimal
effort to do that. You don't have to click because we also
have keyboard navigation. I have a feeling that there's probably
something I'm missing, though.. another way of working (emacs?)
that would render all of this custom GUI stuff pointless.
What I learned about users:
The commit editor is the #1 thing that got my coworkers finally
writing better commit messages. It forces the subject/description
separation and shows yellow, red when the subject gets too long.
It also auto-wraps. IMO it makes sense for git-gui to do
the same these days.
> Gitk does precisely those things which *require* a GUI, where the
> amount of information presented overwhelms a text interface. The
> display is concisely designed to give you the maximum information at a
> minimum space use. For example, a little black square when a commit
> has a note attached. Even hovering over the arrow-heads, on complex
> trees where the line gets broken, does something meaningful.
>
> if I had to pin it down, the feature I use most often is "Show origin
> of this line". Other features I use often are
> - review a commit file by file (f and b keys, also spacebar and 'd')
> - search by SHA1 (4 digits appear to be enough, regardless of how
> big your repo is),
> - search for commits changing path/dir (while still showing all the
> commits; i.e., this is not 'git-dag -- README.txt' but within gitk you
> search up and down for commits touching README.txt
> - and navigating the commit tree looking for stuff
>
> http://sitaramc.github.com/1-basic-usage/gitk.html is my attempt to
> document some of the stuff I have found and use.
Wow, this is awesome.
> One final point: the DAG on the right wastes enormous amounts of
> space. Purely subjectively, it is almost jarring on the senses. (If
> you reduce it, it becomes unreadable).
>
> With all due respect, git-cola/dag isn't anywhere near what gitk does,
> at least for people who are not afraid of the command line and only
> need the GUI to visualise a truly complex tree.
This is really great feedback.
cc:ing Guillaume since he had similar ideas.
thx,
--
David
--
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.
You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en
^ permalink raw reply
* Re: Python extension commands in git - request for policy change
From: Sitaram Chamarty @ 2012-11-27 9:17 UTC (permalink / raw)
To: David Aguilar; +Cc: Felipe Contreras, esr, Nguyen Thai Ngoc Duy, git, msysGit
In-Reply-To: <CAJDDKr4cr3VXqx=CXgXSQrVTSjE=f=55HZns-xfNziJOXb3Vsw@mail.gmail.com>
On Tue, Nov 27, 2012 at 1:24 PM, David Aguilar <davvid@gmail.com> wrote:
> *cough* git-cola *cough*
>
> it runs everywhere. Yes, windows too. It's written in python.
> It's been actively maintained since 2007.
>
> It's "modern" and has features that don't exist anywhere else.
>
> It even has tests. It even comes with a building full of willing
> guinea-pigs^Wtesters that let me know right away when
> anything goes wrong.
>
> It uses Qt but that's really the whole point of Qt -> cross-platform.
> (not sure how that wiki page ended up saying Gnome/GTK?)
>
> The DAG aka git-dag (in its master branch, about to be released)
> is nicer looking then gitk IMO. gitk still has some features
> that are better too--there's no silver bullet, but the delta
> is pretty small.
Gitk does a lot of things that people don't realise, since they're not
really documented and you have to scrounge around on the UI. The
thing is, it's just about the most awesome tool for code archeology I
have seen.
I realise (from looking at the doc page) that git-cola helps you do
all sorts of things, but those are all things I am happier doing at
the command line.
Gitk does precisely those things which *require* a GUI, where the
amount of information presented overwhelms a text interface. The
display is concisely designed to give you the maximum information at a
minimum space use. For example, a little black square when a commit
has a note attached. Even hovering over the arrow-heads, on complex
trees where the line gets broken, does something meaningful.
if I had to pin it down, the feature I use most often is "Show origin
of this line". Other features I use often are
- review a commit file by file (f and b keys, also spacebar and 'd')
- search by SHA1 (4 digits appear to be enough, regardless of how
big your repo is),
- search for commits changing path/dir (while still showing all the
commits; i.e., this is not 'git-dag -- README.txt' but within gitk you
search up and down for commits touching README.txt
- and navigating the commit tree looking for stuff
http://sitaramc.github.com/1-basic-usage/gitk.html is my attempt to
document some of the stuff I have found and use.
One final point: the DAG on the right wastes enormous amounts of
space. Purely subjectively, it is almost jarring on the senses. (If
you reduce it, it becomes unreadable).
With all due respect, git-cola/dag isn't anywhere near what gitk does,
at least for people who are not afraid of the command line and only
need the GUI to visualise a truly complex tree.
--
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.
You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en
^ permalink raw reply
* Re: [PATCH 0.5/4] t4041 (diff-submodule-option): don't hardcode SHA-1 in expected outputs
From: Ramkumar Ramachandra @ 2012-11-27 9:12 UTC (permalink / raw)
To: Git List
In-Reply-To: <CALkWK0=0SfOuKRZvgt=BOBsKTXtaO5Y7-wAWK4XftE_aY9idyA@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 64 bytes --]
Ugh, line wrapping breaks my patch. I've attached a copy.
Ram
[-- Attachment #2: 0001-t4041-diff-submodule-option-don-t-hardcode-SHA-1-in-.patch --]
[-- Type: application/octet-stream, Size: 1891 bytes --]
From 90bc75b78a6dd5e59d2055b05c065447bf051bb6 Mon Sep 17 00:00:00 2001
From: Ramkumar Ramachandra <artagnon@gmail.com>
Date: Mon, 26 Nov 2012 19:24:28 +0530
Subject: [PATCH] t4041 (diff-submodule-option): don't hardcode SHA-1 in
expected outputs
The expected SHA-1 digests are always available in variables. Use
them instead of hardcoding.
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
---
t/t4041-diff-submodule-option.sh | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/t/t4041-diff-submodule-option.sh b/t/t4041-diff-submodule-option.sh
index 57e8a9d..5377639 100755
--- a/t/t4041-diff-submodule-option.sh
+++ b/t/t4041-diff-submodule-option.sh
@@ -62,7 +62,7 @@ test_expect_success '--submodule=short overrides diff.submodule' "
cat >expected <<-EOF &&
diff --git a/sm1 b/sm1
new file mode 160000
-index 0000000..a2c4dab
+index 0000000..$head1
--- /dev/null
+++ b/sm1
@@ -0,0 +1 @@
@@ -77,7 +77,7 @@ test_expect_success 'diff.submodule does not affect plumbing' '
cat >expected <<-EOF &&
diff --git a/sm1 b/sm1
new file mode 160000
- index 0000000..a2c4dab
+ index 0000000..$head1
--- /dev/null
+++ b/sm1
@@ -0,0 +1 @@
@@ -173,10 +173,10 @@ mv sm1-bak sm1
test_expect_success 'typechanged submodule(submodule->blob), --cached' "
git diff --submodule=log --cached >actual &&
cat >expected <<-EOF &&
-Submodule sm1 41fbea9...0000000 (submodule deleted)
+Submodule sm1 $head4...0000000 (submodule deleted)
diff --git a/sm1 b/sm1
new file mode 100644
-index 0000000..9da5fb8
+index 0000000..$head5
--- /dev/null
+++ b/sm1
@@ -0,0 +1 @@
@@ -190,7 +190,7 @@ test_expect_success 'typechanged submodule(submodule->blob)' "
cat >expected <<-EOF &&
diff --git a/sm1 b/sm1
deleted file mode 100644
-index 9da5fb8..0000000
+index $head5..0000000
--- a/sm1
+++ /dev/null
@@ -1 +0,0 @@
--
1.7.12.1.428.g652398a.dirty
^ permalink raw reply related
* [PATCH 0.5/4] t4041 (diff-submodule-option): don't hardcode SHA-1 in expected outputs
From: Ramkumar Ramachandra @ 2012-11-27 9:06 UTC (permalink / raw)
To: Git List
The expected SHA-1 digests are always available in variables. Use
them instead of hardcoding.
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
---
Oops, I forgot to send this part. It comes before part 1, and it's
essential to make tests pass.
t/t4041-diff-submodule-option.sh | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/t/t4041-diff-submodule-option.sh b/t/t4041-diff-submodule-option.sh
index 57e8a9d..5377639 100755
--- a/t/t4041-diff-submodule-option.sh
+++ b/t/t4041-diff-submodule-option.sh
@@ -62,7 +62,7 @@ test_expect_success '--submodule=short overrides
diff.submodule' "
cat >expected <<-EOF &&
diff --git a/sm1 b/sm1
new file mode 160000
-index 0000000..a2c4dab
+index 0000000..$head1
--- /dev/null
+++ b/sm1
@@ -0,0 +1 @@
@@ -77,7 +77,7 @@ test_expect_success 'diff.submodule does not affect
plumbing' '
cat >expected <<-EOF &&
diff --git a/sm1 b/sm1
new file mode 160000
- index 0000000..a2c4dab
+ index 0000000..$head1
--- /dev/null
+++ b/sm1
@@ -0,0 +1 @@
@@ -173,10 +173,10 @@ mv sm1-bak sm1
test_expect_success 'typechanged submodule(submodule->blob), --cached' "
git diff --submodule=log --cached >actual &&
cat >expected <<-EOF &&
-Submodule sm1 41fbea9...0000000 (submodule deleted)
+Submodule sm1 $head4...0000000 (submodule deleted)
diff --git a/sm1 b/sm1
new file mode 100644
-index 0000000..9da5fb8
+index 0000000..$head5
--- /dev/null
+++ b/sm1
@@ -0,0 +1 @@
@@ -190,7 +190,7 @@ test_expect_success 'typechanged
submodule(submodule->blob)' "
cat >expected <<-EOF &&
diff --git a/sm1 b/sm1
deleted file mode 100644
-index 9da5fb8..0000000
+index $head5..0000000
--- a/sm1
+++ /dev/null
@@ -1 +0,0 @@
--
1.7.12.1.428.g652398a.dirty
^ permalink raw reply related
* Re: gitpacker progress report and a question
From: Felipe Contreras @ 2012-11-27 8:51 UTC (permalink / raw)
To: esr; +Cc: git
In-Reply-To: <20121127083639.GA26935@thyrsus.com>
On Tue, Nov 27, 2012 at 9:36 AM, Eric S. Raymond <esr@thyrsus.com> wrote:
> Felipe Contreras <felipe.contreras@gmail.com>:
>> Most of those old projects have a linear history,
>
> INTERCAL didn't. There were two branches for platform ports.
Fine:
tag v0.1 gst-av-0.1.tar "Release 0.1"
tag v0.2 gst-av-0.2.tar "Release 0.2"
checkout port1
tag v0.2-p1 gst-av-0.2-p1.tar "Release 0.2 p1"
checkout port2 v0.2
tag v0.2-p2 gst-av-0.2-p2.tar "Release 0.2 p2"
checkout master
tag v0.3 gst-av-0.3.tar "Release 0.3"
Problem solved.
>> But different commit/author and respective dates, and merges? Sounds
>> like overkill.
>
> I felt it was important that the metadata format be able to specify
> git's entire metadata and DAG semantics. Otherwise, as sure as the
> sun rises, *somebody* would run into a corner case not covered, and
> (quite rightly) curse me for a shortsighted fool who had done a
> half-assed job.
I'm willing to bet that won't happen.
> I don't do half-assed jobs. Not ever, no way, nohow.
So you prefer code that is way more complicated that it needs to be,
and with a higher likelihood of introducing bugs? There's a point of
diminishing returns where the code that nobody uses causes bugs for
real use-cases. That's not good.
I prefer code that does one thing, and does it well. And when the need
arises, evolve.
Cheers.
--
Felipe Contreras
^ permalink raw reply
* Re: Python extension commands in git - request for policy change
From: Felipe Contreras @ 2012-11-27 8:43 UTC (permalink / raw)
To: David Aguilar; +Cc: esr, Nguyen Thai Ngoc Duy, git, msysGit
In-Reply-To: <CAJDDKr4cr3VXqx=CXgXSQrVTSjE=f=55HZns-xfNziJOXb3Vsw@mail.gmail.com>
On Tue, Nov 27, 2012 at 8:54 AM, David Aguilar <davvid@gmail.com> wrote:
> On Mon, Nov 26, 2012 at 5:11 AM, Felipe Contreras
> <felipe.contreras@gmail.com> wrote:
>> http://www.mediawiki.org/wiki/Git/Graphical_User_Interfaces
>
> *cough* git-cola *cough*
>
> it runs everywhere. Yes, windows too. It's written in python.
> It's been actively maintained since 2007.
% sudo pacman -S git-cola
error: target not found: git-cola
http://aur.archlinux.org/packages/gi/git-cola/git-cola.tar.gz
% makepkg
==> Missing Dependencies:
-> python2-pyqt>=4.3
==> Checking buildtime dependencies...
==> Missing Dependencies:
-> asciidoc
-> docbook-xsl
-> rsync
-> xmlto
-> python2-sphinx>=1.1.3
Sorry, no.
I'm not sure if you have been following, but msysgit doesn't seem to
have good support for python, let alone Qt. In my view the fact that
it uses python is not a good thing.
> It's "modern" and has features that don't exist anywhere else.
>
> It even has tests. It even comes with a building full of willing
> guinea-pigs^Wtesters that let me know right away when
> anything goes wrong.
>
> It uses Qt but that's really the whole point of Qt -> cross-platform.
> (not sure how that wiki page ended up saying Gnome/GTK?)
Yes, Qt is cross-platform *in theory*, but have you used any Qt
application in Windows? I haven't.
> The DAG aka git-dag (in its master branch, about to be released)
> is nicer looking then gitk IMO. gitk still has some features
> that are better too--there's no silver bullet, but the delta
> is pretty small.
If you mean this one:
http://1.1.1.5/bmi/git-cola.github.com/images/dag.png
Then I wholeheartedly disagree.
> The only point this doesn't fulfill is dependency-free-ness.
> With that requirement the answer can *only* be tcl/tk.
> So saying, "go look for one you won't find it" is really
> a tautology. It's not even an entertaining one.
That's the whole point; there is nothing else. If there was something
else, there would be something else. But there isn't.
> When the requirement is, "what is the best user experience
> possible", then you use a mature GUI library. These are different
> requirements and probably different use cases.
But those are not the requirements.
> Anyways, just sayin', you make it sound like this stuff doesn't
> exist, but it does. I've never proposed it for mainline
> git because I'm very aware of the dependency requirements.
A lot of stuff exists. And people use a lot of those. But they don't
fulfill the requirements that I think gitk does perfectly.
> But, if git "recommended" it I would very much appreciate the
> extra eyes and contributions. Being in mainline git could
> possibly help with that. A submodule under contrib/
> would be an interesting experiment.
It might be, if somebody actually tried to submit the code. But I
honestly doubt so.
> In any case, I think documenting the python standards
> (even if within contrib/ only) is a good thing.
>
> We'd be increasing the overall portability by documenting
> what we support and sticking to it, just
> like what is done for shell scripts and perl versions.
> Eric is helping make that happen, let's not throw
> out the baby with the bathwater. FWIW, I would also make
> my python expertise available.
Nobody has argued that there shouldn't be guidelines for python code.
What I have objected is to 'strict rules'.
> This thread has gotten into meta-meta territory --
> it's discussing code that has not yet even been written,
> and going off on all sorts of tangents.
That is the point; why should we change the policy for code that
hasn't been written yet? That's not how things evolve in git as far as
I have seen.
> BTW, Felipe, if you're going to be rewriting python code to ruby,
> please, pretty please rewrite that darn GUI ;-)
I would need to write a widget toolkit first =/ I think I'll pass. gitk is fine.
Cheers.
--
Felipe Contreras
--
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.
You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en
^ permalink raw reply
* [PATCH 3/4] t4041 (diff-submodule-option): modernize style
From: Ramkumar Ramachandra @ 2012-11-27 8:41 UTC (permalink / raw)
To: Git List
In-Reply-To: <1354005692-2809-1-git-send-email-artagnon@gmail.com>
- Enclose tests in single quotes as opposed to double quotes. This is
the prevalent style in other tests.
- Remove the unused variable $head4_full.
- Indent the expected output so that it lines up with the rest of the
test text.
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
---
t/t4041-diff-submodule-option.sh | 459 +++++++++++++++++++-------------------
1 files changed, 229 insertions(+), 230 deletions(-)
diff --git a/t/t4041-diff-submodule-option.sh b/t/t4041-diff-submodule-option.sh
index 103c690..f61c664 100755
--- a/t/t4041-diff-submodule-option.sh
+++ b/t/t4041-diff-submodule-option.sh
@@ -32,41 +32,41 @@ add_file . foo >/dev/null
head1=$(add_file sm1 foo1 foo2)
fullhead1=$(cd sm1; git rev-parse --verify $head1)
-test_expect_success 'added submodule' "
+test_expect_success 'added submodule' '
git add sm1 &&
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
-Submodule sm1 0000000...$head1 (new submodule)
-EOF
+ Submodule sm1 0000000...$head1 (new submodule)
+ EOF
test_cmp expected actual
-"
+'
-test_expect_success 'added submodule, set diff.submodule' "
+test_expect_success 'added submodule, set diff.submodule' '
git config diff.submodule log &&
git add sm1 &&
git diff --cached >actual &&
cat >expected <<-EOF &&
-Submodule sm1 0000000...$head1 (new submodule)
-EOF
+ Submodule sm1 0000000...$head1 (new submodule)
+ EOF
git config --unset diff.submodule &&
test_cmp expected actual
-"
+'
-test_expect_success '--submodule=short overrides diff.submodule' "
+test_expect_success '--submodule=short overrides diff.submodule' '
test_config diff.submodule log &&
git add sm1 &&
git diff --submodule=short --cached >actual &&
cat >expected <<-EOF &&
-diff --git a/sm1 b/sm1
-new file mode 160000
-index 0000000..$head1
---- /dev/null
-+++ b/sm1
-@@ -0,0 +1 @@
-+Subproject commit $fullhead1
-EOF
+ diff --git a/sm1 b/sm1
+ new file mode 160000
+ index 0000000..$head1
+ --- /dev/null
+ +++ b/sm1
+ @@ -0,0 +1 @@
+ +Subproject commit $fullhead1
+ EOF
test_cmp expected actual
-"
+'
test_expect_success 'diff.submodule does not affect plumbing' '
test_config diff.submodule log &&
@@ -86,47 +86,47 @@ test_expect_success 'diff.submodule does not affect plumbing' '
commit_file sm1 &&
head2=$(add_file sm1 foo3)
-test_expect_success 'modified submodule(forward)' "
+test_expect_success 'modified submodule(forward)' '
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
-Submodule sm1 $head1..$head2:
- > Add foo3
-EOF
+ Submodule sm1 $head1..$head2:
+ > Add foo3
+ EOF
test_cmp expected actual
-"
+'
-test_expect_success 'modified submodule(forward)' "
+test_expect_success 'modified submodule(forward)' '
git diff --submodule=log >actual &&
cat >expected <<-EOF &&
-Submodule sm1 $head1..$head2:
- > Add foo3
-EOF
+ Submodule sm1 $head1..$head2:
+ > Add foo3
+ EOF
test_cmp expected actual
-"
+'
-test_expect_success 'modified submodule(forward) --submodule' "
+test_expect_success 'modified submodule(forward) --submodule' '
git diff --submodule >actual &&
cat >expected <<-EOF &&
-Submodule sm1 $head1..$head2:
- > Add foo3
-EOF
+ Submodule sm1 $head1..$head2:
+ > Add foo3
+ EOF
test_cmp expected actual
-"
+'
-test_expect_success 'modified submodule(forward) --submodule=short' "
fullhead2=$(cd sm1; git rev-parse --verify $head2)
+test_expect_success 'modified submodule(forward) --submodule=short' '
git diff --submodule=short >actual &&
cat >expected <<-EOF &&
-diff --git a/sm1 b/sm1
-index $head1..$head2 160000
---- a/sm1
-+++ b/sm1
-@@ -1 +1 @@
--Subproject commit $fullhead1
-+Subproject commit $fullhead2
-EOF
+ diff --git a/sm1 b/sm1
+ index $head1..$head2 160000
+ --- a/sm1
+ +++ b/sm1
+ @@ -1 +1 @@
+ -Subproject commit $fullhead1
+ +Subproject commit $fullhead2
+ EOF
test_cmp expected actual
-"
+'
commit_file sm1 &&
head3=$(
@@ -135,29 +135,28 @@ head3=$(
git rev-parse --short --verify HEAD
)
-test_expect_success 'modified submodule(backward)' "
+test_expect_success 'modified submodule(backward)' '
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
-Submodule sm1 $head2..$head3 (rewind):
- < Add foo3
- < Add foo2
-EOF
+ Submodule sm1 $head2..$head3 (rewind):
+ < Add foo3
+ < Add foo2
+ EOF
test_cmp expected actual
-"
+'
-head4=$(add_file sm1 foo4 foo5) &&
-head4_full=$(GIT_DIR=sm1/.git git rev-parse --verify HEAD)
-test_expect_success 'modified submodule(backward and forward)' "
+head4=$(add_file sm1 foo4 foo5)
+test_expect_success 'modified submodule(backward and forward)' '
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
-Submodule sm1 $head2...$head4:
- > Add foo5
- > Add foo4
- < Add foo3
- < Add foo2
-EOF
+ Submodule sm1 $head2...$head4:
+ > Add foo5
+ > Add foo4
+ < Add foo3
+ < Add foo2
+ EOF
test_cmp expected actual
-"
+'
commit_file sm1 &&
mv sm1 sm1-bak &&
@@ -167,319 +166,319 @@ git add sm1 &&
rm -f sm1 &&
mv sm1-bak sm1
-test_expect_success 'typechanged submodule(submodule->blob), --cached' "
+test_expect_success 'typechanged submodule(submodule->blob), --cached' '
git diff --submodule=log --cached >actual &&
cat >expected <<-EOF &&
-Submodule sm1 $head4...0000000 (submodule deleted)
-diff --git a/sm1 b/sm1
-new file mode 100644
-index 0000000..$head5
---- /dev/null
-+++ b/sm1
-@@ -0,0 +1 @@
-+sm1
-EOF
+ Submodule sm1 $head4...0000000 (submodule deleted)
+ diff --git a/sm1 b/sm1
+ new file mode 100644
+ index 0000000..$head5
+ --- /dev/null
+ +++ b/sm1
+ @@ -0,0 +1 @@
+ +sm1
+ EOF
test_cmp expected actual
-"
+'
-test_expect_success 'typechanged submodule(submodule->blob)' "
+test_expect_success 'typechanged submodule(submodule->blob)' '
git diff --submodule=log >actual &&
cat >expected <<-EOF &&
-diff --git a/sm1 b/sm1
-deleted file mode 100644
-index $head5..0000000
---- a/sm1
-+++ /dev/null
-@@ -1 +0,0 @@
--sm1
-Submodule sm1 0000000...$head4 (new submodule)
-EOF
+ diff --git a/sm1 b/sm1
+ deleted file mode 100644
+ index $head5..0000000
+ --- a/sm1
+ +++ /dev/null
+ @@ -1 +0,0 @@
+ -sm1
+ Submodule sm1 0000000...$head4 (new submodule)
+ EOF
test_cmp expected actual
-"
+'
rm -rf sm1 &&
git checkout-index sm1
-test_expect_success 'typechanged submodule(submodule->blob)' "
+test_expect_success 'typechanged submodule(submodule->blob)' '
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
-Submodule sm1 $head4...0000000 (submodule deleted)
-diff --git a/sm1 b/sm1
-new file mode 100644
-index 0000000..$head5
---- /dev/null
-+++ b/sm1
-@@ -0,0 +1 @@
-+sm1
-EOF
+ Submodule sm1 $head4...0000000 (submodule deleted)
+ diff --git a/sm1 b/sm1
+ new file mode 100644
+ index 0000000..$head5
+ --- /dev/null
+ +++ b/sm1
+ @@ -0,0 +1 @@
+ +sm1
+ EOF
test_cmp expected actual
-"
+'
rm -f sm1 &&
test_create_repo sm1 &&
head6=$(add_file sm1 foo6 foo7)
-test_expect_success 'nonexistent commit' "
fullhead6=$(cd sm1; git rev-parse --verify $head6)
+test_expect_success 'nonexistent commit' '
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
-Submodule sm1 $head4...$head6 (commits not present)
-EOF
+ Submodule sm1 $head4...$head6 (commits not present)
+ EOF
test_cmp expected actual
-"
+'
commit_file
-test_expect_success 'typechanged submodule(blob->submodule)' "
+test_expect_success 'typechanged submodule(blob->submodule)' '
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
-diff --git a/sm1 b/sm1
-deleted file mode 100644
-index $head5..0000000
---- a/sm1
-+++ /dev/null
-@@ -1 +0,0 @@
--sm1
-Submodule sm1 0000000...$head6 (new submodule)
-EOF
+ diff --git a/sm1 b/sm1
+ deleted file mode 100644
+ index $head5..0000000
+ --- a/sm1
+ +++ /dev/null
+ @@ -1 +0,0 @@
+ -sm1
+ Submodule sm1 0000000...$head6 (new submodule)
+ EOF
test_cmp expected actual
-"
+'
commit_file sm1 &&
-test_expect_success 'submodule is up to date' "
+test_expect_success 'submodule is up to date' '
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
-EOF
+ EOF
test_cmp expected actual
-"
+'
-test_expect_success 'submodule contains untracked content' "
+test_expect_success 'submodule contains untracked content' '
echo new > sm1/new-file &&
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
-Submodule sm1 contains untracked content
-EOF
+ Submodule sm1 contains untracked content
+ EOF
test_cmp expected actual
-"
+'
-test_expect_success 'submodule contains untracked content (untracked ignored)' "
+test_expect_success 'submodule contains untracked content (untracked ignored)' '
git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual &&
! test -s actual
-"
+'
-test_expect_success 'submodule contains untracked content (dirty ignored)' "
+test_expect_success 'submodule contains untracked content (dirty ignored)' '
git diff-index -p --ignore-submodules=dirty --submodule=log HEAD >actual &&
! test -s actual
-"
+'
-test_expect_success 'submodule contains untracked content (all ignored)' "
+test_expect_success 'submodule contains untracked content (all ignored)' '
git diff-index -p --ignore-submodules=all --submodule=log HEAD >actual &&
! test -s actual
-"
+'
-test_expect_success 'submodule contains untracked and modifed content' "
+test_expect_success 'submodule contains untracked and modifed content' '
echo new > sm1/foo6 &&
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
-Submodule sm1 contains untracked content
-Submodule sm1 contains modified content
-EOF
+ Submodule sm1 contains untracked content
+ Submodule sm1 contains modified content
+ EOF
test_cmp expected actual
-"
+'
-test_expect_success 'submodule contains untracked and modifed content (untracked ignored)' "
+test_expect_success 'submodule contains untracked and modifed content (untracked ignored)' '
echo new > sm1/foo6 &&
git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
-Submodule sm1 contains modified content
-EOF
+ Submodule sm1 contains modified content
+ EOF
test_cmp expected actual
-"
+'
-test_expect_success 'submodule contains untracked and modifed content (dirty ignored)' "
+test_expect_success 'submodule contains untracked and modifed content (dirty ignored)' '
echo new > sm1/foo6 &&
git diff-index -p --ignore-submodules=dirty --submodule=log HEAD >actual &&
! test -s actual
-"
+'
-test_expect_success 'submodule contains untracked and modifed content (all ignored)' "
+test_expect_success 'submodule contains untracked and modifed content (all ignored)' '
echo new > sm1/foo6 &&
git diff-index -p --ignore-submodules --submodule=log HEAD >actual &&
! test -s actual
-"
+'
-test_expect_success 'submodule contains modifed content' "
+test_expect_success 'submodule contains modifed content' '
rm -f sm1/new-file &&
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
-Submodule sm1 contains modified content
-EOF
+ Submodule sm1 contains modified content
+ EOF
test_cmp expected actual
-"
+'
(cd sm1; git commit -mchange foo6 >/dev/null) &&
-test_expect_success 'submodule is modified' "
head8=$(cd sm1; git rev-parse --short --verify HEAD) &&
+test_expect_success 'submodule is modified' '
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
-Submodule sm1 $head6..$head8:
- > change
-EOF
+ Submodule sm1 $head6..$head8:
+ > change
+ EOF
test_cmp expected actual
-"
+'
-test_expect_success 'modified submodule contains untracked content' "
+test_expect_success 'modified submodule contains untracked content' '
echo new > sm1/new-file &&
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
-Submodule sm1 contains untracked content
-Submodule sm1 $head6..$head8:
- > change
-EOF
+ Submodule sm1 contains untracked content
+ Submodule sm1 $head6..$head8:
+ > change
+ EOF
test_cmp expected actual
-"
+'
-test_expect_success 'modified submodule contains untracked content (untracked ignored)' "
+test_expect_success 'modified submodule contains untracked content (untracked ignored)' '
git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
-Submodule sm1 $head6..$head8:
- > change
-EOF
+ Submodule sm1 $head6..$head8:
+ > change
+ EOF
test_cmp expected actual
-"
+'
-test_expect_success 'modified submodule contains untracked content (dirty ignored)' "
+test_expect_success 'modified submodule contains untracked content (dirty ignored)' '
git diff-index -p --ignore-submodules=dirty --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
-Submodule sm1 $head6..$head8:
- > change
-EOF
+ Submodule sm1 $head6..$head8:
+ > change
+ EOF
test_cmp expected actual
-"
+'
-test_expect_success 'modified submodule contains untracked content (all ignored)' "
+test_expect_success 'modified submodule contains untracked content (all ignored)' '
git diff-index -p --ignore-submodules=all --submodule=log HEAD >actual &&
! test -s actual
-"
+'
-test_expect_success 'modified submodule contains untracked and modifed content' "
+test_expect_success 'modified submodule contains untracked and modifed content' '
echo modification >> sm1/foo6 &&
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
-Submodule sm1 contains untracked content
-Submodule sm1 contains modified content
-Submodule sm1 $head6..$head8:
- > change
-EOF
+ Submodule sm1 contains untracked content
+ Submodule sm1 contains modified content
+ Submodule sm1 $head6..$head8:
+ > change
+ EOF
test_cmp expected actual
-"
+'
-test_expect_success 'modified submodule contains untracked and modifed content (untracked ignored)' "
+test_expect_success 'modified submodule contains untracked and modifed content (untracked ignored)' '
echo modification >> sm1/foo6 &&
git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
-Submodule sm1 contains modified content
-Submodule sm1 $head6..$head8:
- > change
-EOF
+ Submodule sm1 contains modified content
+ Submodule sm1 $head6..$head8:
+ > change
+ EOF
test_cmp expected actual
-"
+'
-test_expect_success 'modified submodule contains untracked and modifed content (dirty ignored)' "
+test_expect_success 'modified submodule contains untracked and modifed content (dirty ignored)' '
echo modification >> sm1/foo6 &&
git diff-index -p --ignore-submodules=dirty --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
-Submodule sm1 $head6..$head8:
- > change
-EOF
+ Submodule sm1 $head6..$head8:
+ > change
+ EOF
test_cmp expected actual
-"
+'
-test_expect_success 'modified submodule contains untracked and modifed content (all ignored)' "
+test_expect_success 'modified submodule contains untracked and modifed content (all ignored)' '
echo modification >> sm1/foo6 &&
git diff-index -p --ignore-submodules --submodule=log HEAD >actual &&
! test -s actual
-"
+'
-test_expect_success 'modified submodule contains modifed content' "
+test_expect_success 'modified submodule contains modifed content' '
rm -f sm1/new-file &&
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
-Submodule sm1 contains modified content
-Submodule sm1 $head6..$head8:
- > change
-EOF
+ Submodule sm1 contains modified content
+ Submodule sm1 $head6..$head8:
+ > change
+ EOF
test_cmp expected actual
-"
+'
rm -rf sm1
-test_expect_success 'deleted submodule' "
+test_expect_success 'deleted submodule' '
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
-Submodule sm1 $head6...0000000 (submodule deleted)
-EOF
+ Submodule sm1 $head6...0000000 (submodule deleted)
+ EOF
test_cmp expected actual
-"
+'
test_create_repo sm2 &&
head7=$(add_file sm2 foo8 foo9) &&
git add sm2
-test_expect_success 'multiple submodules' "
+test_expect_success 'multiple submodules' '
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
-Submodule sm1 $head6...0000000 (submodule deleted)
-Submodule sm2 0000000...$head7 (new submodule)
-EOF
+ Submodule sm1 $head6...0000000 (submodule deleted)
+ Submodule sm2 0000000...$head7 (new submodule)
+ EOF
test_cmp expected actual
-"
+'
-test_expect_success 'path filter' "
+test_expect_success 'path filter' '
git diff-index -p --submodule=log HEAD sm2 >actual &&
cat >expected <<-EOF &&
-Submodule sm2 0000000...$head7 (new submodule)
-EOF
+ Submodule sm2 0000000...$head7 (new submodule)
+ EOF
test_cmp expected actual
-"
+'
commit_file sm2
-test_expect_success 'given commit' "
+test_expect_success 'given commit' '
git diff-index -p --submodule=log HEAD^ >actual &&
cat >expected <<-EOF &&
-Submodule sm1 $head6...0000000 (submodule deleted)
-Submodule sm2 0000000...$head7 (new submodule)
-EOF
+ Submodule sm1 $head6...0000000 (submodule deleted)
+ Submodule sm2 0000000...$head7 (new submodule)
+ EOF
test_cmp expected actual
-"
+'
-test_expect_success 'given commit --submodule' "
+test_expect_success 'given commit --submodule' '
git diff-index -p --submodule HEAD^ >actual &&
cat >expected <<-EOF &&
-Submodule sm1 $head6...0000000 (submodule deleted)
-Submodule sm2 0000000...$head7 (new submodule)
-EOF
+ Submodule sm1 $head6...0000000 (submodule deleted)
+ Submodule sm2 0000000...$head7 (new submodule)
+ EOF
test_cmp expected actual
-"
+'
fullhead7=$(cd sm2; git rev-parse --verify $head7)
-test_expect_success 'given commit --submodule=short' "
+test_expect_success 'given commit --submodule=short' '
git diff-index -p --submodule=short HEAD^ >actual &&
cat >expected <<-EOF &&
-diff --git a/sm1 b/sm1
-deleted file mode 160000
-index $head6..0000000
---- a/sm1
-+++ /dev/null
-@@ -1 +0,0 @@
--Subproject commit $fullhead6
-diff --git a/sm2 b/sm2
-new file mode 160000
-index 0000000..$head7
---- /dev/null
-+++ b/sm2
-@@ -0,0 +1 @@
-+Subproject commit $fullhead7
-EOF
- test_cmp expected actual
-"
+ diff --git a/sm1 b/sm1
+ deleted file mode 160000
+ index $head6..0000000
+ --- a/sm1
+ +++ /dev/null
+ @@ -1 +0,0 @@
+ -Subproject commit $fullhead6
+ diff --git a/sm2 b/sm2
+ new file mode 160000
+ index 0000000..$head7
+ --- /dev/null
+ +++ b/sm2
+ @@ -0,0 +1 @@
+ +Subproject commit $fullhead7
+ EOF
+ test_cmp expected actual
+'
test_expect_success 'setup .git file for sm2' '
(cd sm2 &&
@@ -491,9 +490,9 @@ test_expect_success 'setup .git file for sm2' '
test_expect_success 'diff --submodule with .git file' '
git diff --submodule HEAD^ >actual &&
cat >expected <<-EOF &&
-Submodule sm1 $head6...0000000 (submodule deleted)
-Submodule sm2 0000000...$head7 (new submodule)
-EOF
+ Submodule sm1 $head6...0000000 (submodule deleted)
+ Submodule sm2 0000000...$head7 (new submodule)
+ EOF
test_cmp expected actual
'
--
1.7.8.1.362.g5d6df.dirty
^ permalink raw reply related
* [PATCH 4/4] t4041 (diff-submodule-option): change tense of test names
From: Ramkumar Ramachandra @ 2012-11-27 8:41 UTC (permalink / raw)
To: Git List
In-Reply-To: <1354005692-2809-1-git-send-email-artagnon@gmail.com>
Change the tense of test names from past to present, as this is the
prevalent style.
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
---
t/t4041-diff-submodule-option.sh | 24 ++++++++++++------------
1 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/t/t4041-diff-submodule-option.sh b/t/t4041-diff-submodule-option.sh
index f61c664..25cefba 100755
--- a/t/t4041-diff-submodule-option.sh
+++ b/t/t4041-diff-submodule-option.sh
@@ -32,7 +32,7 @@ add_file . foo >/dev/null
head1=$(add_file sm1 foo1 foo2)
fullhead1=$(cd sm1; git rev-parse --verify $head1)
-test_expect_success 'added submodule' '
+test_expect_success 'add submodule' '
git add sm1 &&
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
@@ -41,7 +41,7 @@ test_expect_success 'added submodule' '
test_cmp expected actual
'
-test_expect_success 'added submodule, set diff.submodule' '
+test_expect_success 'add submodule, set diff.submodule' '
git config diff.submodule log &&
git add sm1 &&
git diff --cached >actual &&
@@ -86,7 +86,7 @@ test_expect_success 'diff.submodule does not affect plumbing' '
commit_file sm1 &&
head2=$(add_file sm1 foo3)
-test_expect_success 'modified submodule(forward)' '
+test_expect_success 'modify submodule(forward)' '
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head1..$head2:
@@ -95,7 +95,7 @@ test_expect_success 'modified submodule(forward)' '
test_cmp expected actual
'
-test_expect_success 'modified submodule(forward)' '
+test_expect_success 'modify submodule(forward)' '
git diff --submodule=log >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head1..$head2:
@@ -104,7 +104,7 @@ test_expect_success 'modified submodule(forward)' '
test_cmp expected actual
'
-test_expect_success 'modified submodule(forward) --submodule' '
+test_expect_success 'modify submodule(forward) --submodule' '
git diff --submodule >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head1..$head2:
@@ -114,7 +114,7 @@ test_expect_success 'modified submodule(forward) --submodule' '
'
fullhead2=$(cd sm1; git rev-parse --verify $head2)
-test_expect_success 'modified submodule(forward) --submodule=short' '
+test_expect_success 'modify submodule(forward) --submodule=short' '
git diff --submodule=short >actual &&
cat >expected <<-EOF &&
diff --git a/sm1 b/sm1
@@ -135,7 +135,7 @@ head3=$(
git rev-parse --short --verify HEAD
)
-test_expect_success 'modified submodule(backward)' '
+test_expect_success 'modify submodule(backward)' '
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head2..$head3 (rewind):
@@ -146,7 +146,7 @@ test_expect_success 'modified submodule(backward)' '
'
head4=$(add_file sm1 foo4 foo5)
-test_expect_success 'modified submodule(backward and forward)' '
+test_expect_success 'modify submodule(backward and forward)' '
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head2...$head4:
@@ -166,7 +166,7 @@ git add sm1 &&
rm -f sm1 &&
mv sm1-bak sm1
-test_expect_success 'typechanged submodule(submodule->blob), --cached' '
+test_expect_success 'typechange submodule(submodule->blob), --cached' '
git diff --submodule=log --cached >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head4...0000000 (submodule deleted)
@@ -181,7 +181,7 @@ test_expect_success 'typechanged submodule(submodule->blob), --cached' '
test_cmp expected actual
'
-test_expect_success 'typechanged submodule(submodule->blob)' '
+test_expect_success 'typechange submodule(submodule->blob)' '
git diff --submodule=log >actual &&
cat >expected <<-EOF &&
diff --git a/sm1 b/sm1
@@ -198,7 +198,7 @@ test_expect_success 'typechanged submodule(submodule->blob)' '
rm -rf sm1 &&
git checkout-index sm1
-test_expect_success 'typechanged submodule(submodule->blob)' '
+test_expect_success 'typechange submodule(submodule->blob)' '
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
Submodule sm1 $head4...0000000 (submodule deleted)
@@ -226,7 +226,7 @@ test_expect_success 'nonexistent commit' '
'
commit_file
-test_expect_success 'typechanged submodule(blob->submodule)' '
+test_expect_success 'typechange submodule(blob->submodule)' '
git diff-index -p --submodule=log HEAD >actual &&
cat >expected <<-EOF &&
diff --git a/sm1 b/sm1
--
1.7.8.1.362.g5d6df.dirty
^ permalink raw reply related
* [PATCH 2/4] t4041 (diff-submodule-option): rewrite add_file() routine
From: Ramkumar Ramachandra @ 2012-11-27 8:41 UTC (permalink / raw)
To: Git List
In-Reply-To: <1354005692-2809-1-git-send-email-artagnon@gmail.com>
Instead of "cd there and then come back", use the "cd there in a
subshell" pattern. Also fix '&&' chaining in one place.
Suggested-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
---
t/t4041-diff-submodule-option.sh | 13 +++++--------
1 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/t/t4041-diff-submodule-option.sh b/t/t4041-diff-submodule-option.sh
index cfb71e5..103c690 100755
--- a/t/t4041-diff-submodule-option.sh
+++ b/t/t4041-diff-submodule-option.sh
@@ -11,18 +11,15 @@ This test tries to verify the sanity of the --submodule option of git diff.
. ./test-lib.sh
add_file () {
- sm=$1
- shift
- owd=$(pwd)
- cd "$sm"
- for name; do
+ (cd "$1" &&
+ shift &&
+ for name; do
echo "$name" > "$name" &&
git add "$name" &&
test_tick &&
git commit -m "Add $name"
- done >/dev/null
- git rev-parse --short --verify HEAD
- cd "$owd"
+ done >/dev/null &&
+ git rev-parse --short --verify HEAD)
}
commit_file () {
test_tick &&
--
1.7.8.1.362.g5d6df.dirty
^ permalink raw reply related
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