git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH] git svn : hook before 'git svn dcommit'
@ 2011-07-02 12:48 Frédéric Heitzmann
  2011-07-02 13:54 ` Matthieu Moy
  0 siblings, 1 reply; 20+ messages in thread
From: Frédéric Heitzmann @ 2011-07-02 12:48 UTC (permalink / raw)
  To: Git Mailing List

The 'pre-svn-dcommit' hook si called before 'git svn dcommit', which aborts
if return value is not zero.
---
  git-svn.perl |   19 +++++++++++++++++++
  1 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/git-svn.perl b/git-svn.perl
index 89f83fd..e70afae 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -396,6 +396,23 @@ sub init_subdir {
         $_repository = Git->repository(Repository => $ENV{GIT_DIR});
  }

+sub pre_svn_dcommit_hook {
+       my $hook = "$ENV{GIT_DIR}/hooks/pre-svn-dcommit";
+       return 0 if ! -e $hook || ! -x $hook;
+
+       system($hook);
+       if ($? == -1) {
+               print "[pre_svn_dcommit_hook] failed to execute $hook: 
$!\n";
+               return 1;
+       } elsif ($? & 127) {
+               printf "[pre_svn_dcommit_hook] child died with signal 
%d, %s coredump\n",
+               ($? & 127),  ($? & 128) ? 'with' : 'without';
+               return 1;
+       } else {
+               return $? >> 8;
+       }
+}
+
  sub cmd_clone {
         my ($url, $path) = @_;
         if (!defined $path &&
@@ -518,6 +535,8 @@ sub cmd_dcommit {
                 command(['checkout', $head], STDERR => 0);
         }

+       return if pre_svn_dcommit_hook();
+
         my @refs;
         my ($url, $rev, $uuid, $gs) = working_head_info('HEAD', \@refs);
         unless ($gs) {
-- 

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [PATCH] git svn : hook before 'git svn dcommit'
  2011-07-02 12:48 [PATCH] git svn : hook before 'git svn dcommit' Frédéric Heitzmann
@ 2011-07-02 13:54 ` Matthieu Moy
  2011-07-02 17:25   ` Frédéric Heitzmann
  0 siblings, 1 reply; 20+ messages in thread
From: Matthieu Moy @ 2011-07-02 13:54 UTC (permalink / raw)
  To: Frédéric Heitzmann; +Cc: Git Mailing List

Frédéric Heitzmann <frederic.heitzmann@gmail.com> writes:

> The 'pre-svn-dcommit' hook si called before 'git svn dcommit', which aborts
> if return value is not zero.
> ---
>  git-svn.perl |   19 +++++++++++++++++++

What about documentation?

> +       if ($? == -1) {
> +               print "[pre_svn_dcommit_hook] failed to execute $hook:
> $!\n";

whitespace damage (extra newline)

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] git svn : hook before 'git svn dcommit'
  2011-07-02 13:54 ` Matthieu Moy
@ 2011-07-02 17:25   ` Frédéric Heitzmann
  2011-07-02 21:59     ` Matthieu Moy
  0 siblings, 1 reply; 20+ messages in thread
From: Frédéric Heitzmann @ 2011-07-02 17:25 UTC (permalink / raw)
  To: Matthieu Moy; +Cc: Git Mailing List


Le 02/07/2011 15:54, Matthieu Moy a écrit :
> Frédéric Heitzmann<frederic.heitzmann@gmail.com>  writes:
>
>> The 'pre-svn-dcommit' hook si called before 'git svn dcommit', which aborts
>> if return value is not zero.
>> ---
>>   git-svn.perl |   19 +++++++++++++++++++
> What about documentation?
Should documentation be part of githooks or git-svn man page ?
I vote for the latest, in order to avoid
In any case, what do you think of the following help message ?

+HOOKS
+-----
+
+The 'pre-svn-dcommit' hook is called by 'git svn dcommit' and can be 
used to
+prevent some diff to be committed to a SVN repository. It may typically be
+used to filter some intermediate patches, which were committed into git but
+must not find their way to the SVN repository.
+
+If the hook exists with a non zero-status, 'git svn dcommit' will abort.
+
+

[...]

  SEE ALSO
  --------
-linkgit:git-rebase[1]
+linkgit:git-rebase[1], linkgit:githooks[5]

-- 

>> +       if ($? == -1) {
>> +               print "[pre_svn_dcommit_hook] failed to execute $hook:
>> $!\n";
> whitespace damage (extra newline)
>

As for the 'whitespace damage", I do not understand what you mean.
The \n look mandatory to me.
You may look at 'info perlfunc' for the original code snippet (see 
'system' function).

--
Fred

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] git svn : hook before 'git svn dcommit'
  2011-07-02 17:25   ` Frédéric Heitzmann
@ 2011-07-02 21:59     ` Matthieu Moy
  2011-07-03 20:49       ` Frédéric Heitzmann
  0 siblings, 1 reply; 20+ messages in thread
From: Matthieu Moy @ 2011-07-02 21:59 UTC (permalink / raw)
  To: Frédéric Heitzmann; +Cc: Git Mailing List

Frédéric Heitzmann <frederic.heitzmann@gmail.com> writes:

> Le 02/07/2011 15:54, Matthieu Moy a écrit :
>> Frédéric Heitzmann<frederic.heitzmann@gmail.com>  writes:
>>
>>> The 'pre-svn-dcommit' hook si called before 'git svn dcommit', which aborts
>>> if return value is not zero.
>>> ---
>>>   git-svn.perl |   19 +++++++++++++++++++
>> What about documentation?
> Should documentation be part of githooks or git-svn man page ?
> I vote for the latest, in order to avoid

I'd also put it in the git-svn page, since git-svn is somehow not really
part of Git.

> +prevent some diff to be committed to a SVN repository.

I'd say "an SVN", not "a SVN", but the documentation already use both
forms.

>>> +       if ($? == -1) {
>>> +               print "[pre_svn_dcommit_hook] failed to execute $hook:
>>> $!\n";
>> whitespace damage (extra newline)
>>
>
>As for the 'whitespace damage", I do not understand what you mean.
>The \n look mandatory to me.
>You may look at 'info perlfunc' for the original code snippet (see
>system' function).

I'm not talking about the \n, but the fact that what used to be a single
line of code is broken in two parts in your message.

A patch hunk has lines starting with " ", "+" or "-", yours have a line
starting with $. It won't apply with "patch" or "git apply", hence extra
work for our maintainer.

Try using "git send-email" to avoid that.

And actually, read Documentation/SubmittingPatches, in particular the
part about Signed-off-by.

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH] git svn : hook before 'git svn dcommit'
  2011-07-02 21:59     ` Matthieu Moy
@ 2011-07-03 20:49       ` Frédéric Heitzmann
  2011-07-03 20:49         ` [PATCH 1/2] " Frédéric Heitzmann
                           ` (2 more replies)
  0 siblings, 3 replies; 20+ messages in thread
From: Frédéric Heitzmann @ 2011-07-03 20:49 UTC (permalink / raw)
  To: Matthieu.Moy, git

The 'pre-svn-dcommit' hook is called by 'git svn dcommit' and can be used to
prevent some diff to be committed to a SVN repository. It may typically be
used to filter some intermediate patches, which were committed into git but
must not find their way to the SVN repository.

It takes a single parameter, the reference given to 'git svn dcommit'. If the
hook exists with a non zero-status, 'git svn dcommit' will abort.

Documentation/git-svn.txt |   14 +++++++++++++-
git-svn.perl              |   21 +++++++++++++++++++++
2 files changed, 34 insertions(+), 1 deletions(-)

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH 1/2] git svn : hook before 'git svn dcommit'
  2011-07-03 20:49       ` Frédéric Heitzmann
@ 2011-07-03 20:49         ` Frédéric Heitzmann
  2011-07-03 20:49         ` [PATCH 2/2] git svn : documentation of 'pre-svn-dcommit' Frédéric Heitzmann
  2011-07-03 21:00         ` [PATCH] git svn : hook before 'git svn dcommit' Matthieu Moy
  2 siblings, 0 replies; 20+ messages in thread
From: Frédéric Heitzmann @ 2011-07-03 20:49 UTC (permalink / raw)
  To: Matthieu.Moy, git; +Cc: Frédéric Heitzmann

The 'pre-svn-dcommit' hook is called before 'git svn dcommit', which aborts
if return value is not zero.

Signed-off-by: Frédéric Heitzmann <frederic.heitzmann@gmail.com>
---
 git-svn.perl |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/git-svn.perl b/git-svn.perl
index 89f83fd..a537858 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -396,6 +396,25 @@ sub init_subdir {
 	$_repository = Git->repository(Repository => $ENV{GIT_DIR});
 }
 
+sub pre_svn_dcommit_hook {
+	my $head = shift;
+
+	my $hook = "$ENV{GIT_DIR}/hooks/pre-svn-dcommit";
+	return 0 if ! -e $hook || ! -x $hook;
+
+	system($hook, $head);
+	if ($? == -1) {
+		print "[pre_svn_dcommit_hook] failed to execute $hook: $!\n";
+		return 1;
+	} elsif ($? & 127) {
+		printf "[pre_svn_dcommit_hook] child died with signal %d, %s coredump\n",
+		($? & 127),  ($? & 128) ? 'with' : 'without';
+		return 1;
+	} else {
+		return $? >> 8;
+	}
+}
+
 sub cmd_clone {
 	my ($url, $path) = @_;
 	if (!defined $path &&
@@ -505,6 +524,8 @@ sub cmd_dcommit {
 		. "or stash them with `git stash'.\n";
 	$head ||= 'HEAD';
 
+	return if pre_svn_dcommit_hook($head);
+
 	my $old_head;
 	if ($head ne 'HEAD') {
 		$old_head = eval {
-- 
1.7.6.133.gd3b55a

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 2/2] git svn : documentation of 'pre-svn-dcommit'
  2011-07-03 20:49       ` Frédéric Heitzmann
  2011-07-03 20:49         ` [PATCH 1/2] " Frédéric Heitzmann
@ 2011-07-03 20:49         ` Frédéric Heitzmann
  2011-07-03 21:00         ` [PATCH] git svn : hook before 'git svn dcommit' Matthieu Moy
  2 siblings, 0 replies; 20+ messages in thread
From: Frédéric Heitzmann @ 2011-07-03 20:49 UTC (permalink / raw)
  To: Matthieu.Moy, git; +Cc: Frédéric Heitzmann

Update of the git-svn documentation: 'pre-svn-dcommit' hook.

Signed-off-by: Frédéric Heitzmann <frederic.heitzmann@gmail.com>
---
 Documentation/git-svn.txt |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
index 713e523..ec87ed3 100644
--- a/Documentation/git-svn.txt
+++ b/Documentation/git-svn.txt
@@ -700,6 +700,18 @@ section because they affect the 'git-svn-id:' metadata line, except
 for rewriteRoot and rewriteUUID which can be used together.
 
 
+HOOKS
+-----
+
+The 'pre-svn-dcommit' hook is called by 'git svn dcommit' and can be used to
+prevent some diff to be committed to a SVN repository. It may typically be
+used to filter some intermediate patches, which were committed into git but
+must not find their way to the SVN repository.
+
+It takes a single parameter, the reference given to 'git svn dcommit'. If the
+hook exists with a non zero-status, 'git svn dcommit' will abort.
+
+
 BASIC EXAMPLES
 --------------
 
@@ -901,7 +913,7 @@ reset) branches-maxRev and/or tags-maxRev as appropriate.
 
 SEE ALSO
 --------
-linkgit:git-rebase[1]
+linkgit:git-rebase[1], linkgit:githooks[5]
 
 GIT
 ---
-- 
1.7.6.133.gd3b55a

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [PATCH] git svn : hook before 'git svn dcommit'
  2011-07-03 20:49       ` Frédéric Heitzmann
  2011-07-03 20:49         ` [PATCH 1/2] " Frédéric Heitzmann
  2011-07-03 20:49         ` [PATCH 2/2] git svn : documentation of 'pre-svn-dcommit' Frédéric Heitzmann
@ 2011-07-03 21:00         ` Matthieu Moy
  2011-07-04  5:54           ` Frédéric Heitzmann
  2 siblings, 1 reply; 20+ messages in thread
From: Matthieu Moy @ 2011-07-03 21:00 UTC (permalink / raw)
  To: Frédéric Heitzmann; +Cc: git

Frédéric Heitzmann <frederic.heitzmann@gmail.com> writes:

> The 'pre-svn-dcommit' hook is called by 'git svn dcommit' and can be used to
> prevent some diff to be committed to a SVN repository. It may typically be
> used to filter some intermediate patches, which were committed into git but
> must not find their way to the SVN repository.

Why 2 patches?

We usually try to have each commit as correct as possible (e.g. when
sending several patches, each commit should still pass the testsuite).
With your 2-patches serie, the first commit has documentation for a
feature which doesn't exist yet.

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] git svn : hook before 'git svn dcommit'
  2011-07-03 21:00         ` [PATCH] git svn : hook before 'git svn dcommit' Matthieu Moy
@ 2011-07-04  5:54           ` Frédéric Heitzmann
  2011-07-05 20:44             ` [PATCH v2] " Frédéric Heitzmann
  0 siblings, 1 reply; 20+ messages in thread
From: Frédéric Heitzmann @ 2011-07-04  5:54 UTC (permalink / raw)
  To: Matthieu Moy; +Cc: git



Le 03/07/2011 23:00, Matthieu Moy a écrit :
> Frédéric Heitzmann<frederic.heitzmann@gmail.com>  writes:
>
>> The 'pre-svn-dcommit' hook is called by 'git svn dcommit' and can be used to
>> prevent some diff to be committed to a SVN repository. It may typically be
>> used to filter some intermediate patches, which were committed into git but
>> must not find their way to the SVN repository.
> Why 2 patches?
>
> We usually try to have each commit as correct as possible (e.g. when
> sending several patches, each commit should still pass the testsuite).
> With your 2-patches serie, the first commit has documentation for a
> feature which doesn't exist yet.
I find it easier to separate commits on documentation from code patch, 
especially for rereading and dicussing.
However, if it is desirable to get them merged, I could do that easily.

As for the order :
patch 1/2 : perl magic
patch 2/2 : documentation update
=>  the serie looks in the right order to me.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH v2] git svn : hook before 'git svn dcommit'
  2011-07-04  5:54           ` Frédéric Heitzmann
@ 2011-07-05 20:44             ` Frédéric Heitzmann
  2011-07-09 12:18               ` Frédéric Heitzmann
  0 siblings, 1 reply; 20+ messages in thread
From: Frédéric Heitzmann @ 2011-07-05 20:44 UTC (permalink / raw)
  To: git; +Cc: Matthieu.Moy, Frédéric Heitzmann

The 'pre-svn-dcommit' hook is called before 'git svn dcommit', which aborts
if return value is not zero. The only parameter given to the hook is the
reference given to 'git svn dcommit'. If no paramter was used, hook gets HEAD
as its only parameter.

Signed-off-by: Frédéric Heitzmann <frederic.heitzmann@gmail.com>
---

This is the second iteration of the patch.
Previous 2 patches were merged into one. 

 Documentation/git-svn.txt |   14 +++++++++++++-
 git-svn.perl              |   21 +++++++++++++++++++++
 2 files changed, 34 insertions(+), 1 deletions(-)

diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
index 713e523..ec87ed3 100644
--- a/Documentation/git-svn.txt
+++ b/Documentation/git-svn.txt
@@ -700,6 +700,18 @@ section because they affect the 'git-svn-id:' metadata line, except
 for rewriteRoot and rewriteUUID which can be used together.
 
 
+HOOKS
+-----
+
+The 'pre-svn-dcommit' hook is called by 'git svn dcommit' and can be used to
+prevent some diff to be committed to a SVN repository. It may typically be
+used to filter some intermediate patches, which were committed into git but
+must not find their way to the SVN repository.
+
+It takes a single parameter, the reference given to 'git svn dcommit'. If the
+hook exists with a non zero-status, 'git svn dcommit' will abort.
+
+
 BASIC EXAMPLES
 --------------
 
@@ -901,7 +913,7 @@ reset) branches-maxRev and/or tags-maxRev as appropriate.
 
 SEE ALSO
 --------
-linkgit:git-rebase[1]
+linkgit:git-rebase[1], linkgit:githooks[5]
 
 GIT
 ---
diff --git a/git-svn.perl b/git-svn.perl
index 89f83fd..a537858 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -396,6 +396,25 @@ sub init_subdir {
 	$_repository = Git->repository(Repository => $ENV{GIT_DIR});
 }
 
+sub pre_svn_dcommit_hook {
+	my $head = shift;
+
+	my $hook = "$ENV{GIT_DIR}/hooks/pre-svn-dcommit";
+	return 0 if ! -e $hook || ! -x $hook;
+
+	system($hook, $head);
+	if ($? == -1) {
+		print "[pre_svn_dcommit_hook] failed to execute $hook: $!\n";
+		return 1;
+	} elsif ($? & 127) {
+		printf "[pre_svn_dcommit_hook] child died with signal %d, %s coredump\n",
+		($? & 127),  ($? & 128) ? 'with' : 'without';
+		return 1;
+	} else {
+		return $? >> 8;
+	}
+}
+
 sub cmd_clone {
 	my ($url, $path) = @_;
 	if (!defined $path &&
@@ -505,6 +524,8 @@ sub cmd_dcommit {
 		. "or stash them with `git stash'.\n";
 	$head ||= 'HEAD';
 
+	return if pre_svn_dcommit_hook($head);
+
 	my $old_head;
 	if ($head ne 'HEAD') {
 		$old_head = eval {
-- 
1.7.6.133.gd3b55a

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH v2] git svn : hook before 'git svn dcommit'
  2011-07-05 20:44             ` [PATCH v2] " Frédéric Heitzmann
@ 2011-07-09 12:18               ` Frédéric Heitzmann
  0 siblings, 0 replies; 20+ messages in thread
From: Frédéric Heitzmann @ 2011-07-09 12:18 UTC (permalink / raw)
  To: gitster; +Cc: git, Frédéric Heitzmann

The 'pre-svn-dcommit' hook is called before 'git svn dcommit', which aborts
if return value is not zero. The only parameter given to the hook is the
reference given to 'git svn dcommit'. If no paramter was used, hook gets HEAD
as its only parameter.

Signed-off-by: Frédéric Heitzmann <frederic.heitzmann@gmail.com>
---
There was no remark about patch v2.
I suppose it should be OK for merging upstream.

 Documentation/git-svn.txt |   14 +++++++++++++-
 git-svn.perl              |   21 +++++++++++++++++++++
 2 files changed, 34 insertions(+), 1 deletions(-)

diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
index 713e523..ec87ed3 100644
--- a/Documentation/git-svn.txt
+++ b/Documentation/git-svn.txt
@@ -700,6 +700,18 @@ section because they affect the 'git-svn-id:' metadata line, except
 for rewriteRoot and rewriteUUID which can be used together.
 
 
+HOOKS
+-----
+
+The 'pre-svn-dcommit' hook is called by 'git svn dcommit' and can be used to
+prevent some diff to be committed to a SVN repository. It may typically be
+used to filter some intermediate patches, which were committed into git but
+must not find their way to the SVN repository.
+
+It takes a single parameter, the reference given to 'git svn dcommit'. If the
+hook exists with a non zero-status, 'git svn dcommit' will abort.
+
+
 BASIC EXAMPLES
 --------------
 
@@ -901,7 +913,7 @@ reset) branches-maxRev and/or tags-maxRev as appropriate.
 
 SEE ALSO
 --------
-linkgit:git-rebase[1]
+linkgit:git-rebase[1], linkgit:githooks[5]
 
 GIT
 ---
diff --git a/git-svn.perl b/git-svn.perl
index 89f83fd..a537858 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -396,6 +396,25 @@ sub init_subdir {
 	$_repository = Git->repository(Repository => $ENV{GIT_DIR});
 }
 
+sub pre_svn_dcommit_hook {
+	my $head = shift;
+
+	my $hook = "$ENV{GIT_DIR}/hooks/pre-svn-dcommit";
+	return 0 if ! -e $hook || ! -x $hook;
+
+	system($hook, $head);
+	if ($? == -1) {
+		print "[pre_svn_dcommit_hook] failed to execute $hook: $!\n";
+		return 1;
+	} elsif ($? & 127) {
+		printf "[pre_svn_dcommit_hook] child died with signal %d, %s coredump\n",
+		($? & 127),  ($? & 128) ? 'with' : 'without';
+		return 1;
+	} else {
+		return $? >> 8;
+	}
+}
+
 sub cmd_clone {
 	my ($url, $path) = @_;
 	if (!defined $path &&
@@ -505,6 +524,8 @@ sub cmd_dcommit {
 		. "or stash them with `git stash'.\n";
 	$head ||= 'HEAD';
 
+	return if pre_svn_dcommit_hook($head);
+
 	my $old_head;
 	if ($head ne 'HEAD') {
 		$old_head = eval {
-- 
1.7.6.133.gd3b55a

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH v2] git svn : hook before 'git svn dcommit'
@ 2011-08-15 20:04 Frédéric Heitzmann
  2011-08-15 21:14 ` Junio C Hamano
  0 siblings, 1 reply; 20+ messages in thread
From: Frédéric Heitzmann @ 2011-08-15 20:04 UTC (permalink / raw)
  To: gitster; +Cc: git, Frédéric Heitzmann

The 'pre-svn-dcommit' hook is called before 'git svn dcommit', which aborts
if return value is not zero. The only parameter given to the hook is the
reference given to 'git svn dcommit'. If no paramter was used, hook gets HEAD
as its only parameter.

Signed-off-by: Frédéric Heitzmann <frederic.heitzmann@gmail.com>
---
I resend the same patch previously sent July 9th.
Apparently it did not graduated upstream, and I do not know why.
Please someone tell me if something needs to be improved.

 Documentation/git-svn.txt |   14 +++++++++++++-
 git-svn.perl              |   21 +++++++++++++++++++++
 2 files changed, 34 insertions(+), 1 deletions(-)

diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
index 713e523..ec87ed3 100644
--- a/Documentation/git-svn.txt
+++ b/Documentation/git-svn.txt
@@ -700,6 +700,18 @@ section because they affect the 'git-svn-id:' metadata line, except
 for rewriteRoot and rewriteUUID which can be used together.
 
 
+HOOKS
+-----
+
+The 'pre-svn-dcommit' hook is called by 'git svn dcommit' and can be used to
+prevent some diff to be committed to a SVN repository. It may typically be
+used to filter some intermediate patches, which were committed into git but
+must not find their way to the SVN repository.
+
+It takes a single parameter, the reference given to 'git svn dcommit'. If the
+hook exists with a non zero-status, 'git svn dcommit' will abort.
+
+
 BASIC EXAMPLES
 --------------
 
@@ -901,7 +913,7 @@ reset) branches-maxRev and/or tags-maxRev as appropriate.
 
 SEE ALSO
 --------
-linkgit:git-rebase[1]
+linkgit:git-rebase[1], linkgit:githooks[5]
 
 GIT
 ---
diff --git a/git-svn.perl b/git-svn.perl
index 89f83fd..a537858 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -396,6 +396,25 @@ sub init_subdir {
 	$_repository = Git->repository(Repository => $ENV{GIT_DIR});
 }
 
+sub pre_svn_dcommit_hook {
+	my $head = shift;
+
+	my $hook = "$ENV{GIT_DIR}/hooks/pre-svn-dcommit";
+	return 0 if ! -e $hook || ! -x $hook;
+
+	system($hook, $head);
+	if ($? == -1) {
+		print "[pre_svn_dcommit_hook] failed to execute $hook: $!\n";
+		return 1;
+	} elsif ($? & 127) {
+		printf "[pre_svn_dcommit_hook] child died with signal %d, %s coredump\n",
+		($? & 127),  ($? & 128) ? 'with' : 'without';
+		return 1;
+	} else {
+		return $? >> 8;
+	}
+}
+
 sub cmd_clone {
 	my ($url, $path) = @_;
 	if (!defined $path &&
@@ -505,6 +524,8 @@ sub cmd_dcommit {
 		. "or stash them with `git stash'.\n";
 	$head ||= 'HEAD';
 
+	return if pre_svn_dcommit_hook($head);
+
 	my $old_head;
 	if ($head ne 'HEAD') {
 		$old_head = eval {
-- 
1.7.6.133.gd3b55a

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] git svn : hook before 'git svn dcommit'
  2011-08-15 20:04 Frédéric Heitzmann
@ 2011-08-15 21:14 ` Junio C Hamano
  2011-08-17  0:30   ` Eric Wong
  0 siblings, 1 reply; 20+ messages in thread
From: Junio C Hamano @ 2011-08-15 21:14 UTC (permalink / raw)
  To: Frédéric Heitzmann; +Cc: git, Eric Wong

Frédéric Heitzmann  <frederic.heitzmann@gmail.com> writes:

> The 'pre-svn-dcommit' hook is called before 'git svn dcommit', which aborts
> if return value is not zero. The only parameter given to the hook is the
> reference given to 'git svn dcommit'. If no paramter was used, hook gets HEAD
> as its only parameter.

It appears that this is in the same spirit as the pre-commit hook used in
"git commit", so it may not hurt but I do not know if having a separate
hook is the optimal approach to achieve what it wants to do.

I notice that git-svn users have been happily using the subsystem without
need for any hook (not just pre-commit). Does "git svn" need an equivalent
of pre-commit hook? If so, does it need equivalents to other hooks as
well? I am not suggesting you to add support for a boatload of other hooks
in this patch---I am trying to see if this is really a necessary change to
begin with.

Eric, do you want this one?

> diff --git a/git-svn.perl b/git-svn.perl
> index 89f83fd..a537858 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -396,6 +396,25 @@ sub init_subdir {
>  	$_repository = Git->repository(Repository => $ENV{GIT_DIR});
>  }
>  
> +sub pre_svn_dcommit_hook {
> +	my $head = shift;
> +
> +	my $hook = "$ENV{GIT_DIR}/hooks/pre-svn-dcommit";
> +	return 0 if ! -e $hook || ! -x $hook;

Why force two stat(), instead of just "if ! -x $hook"?  Doesn't it respond
to a non-existing $hook with "there is nothing executable there" just fine?

> +	system($hook, $head);
> +	if ($? == -1) {
> +		print "[pre_svn_dcommit_hook] failed to execute $hook: $!\n";
> +		return 1;
> +	} elsif ($? & 127) {
> +		printf "[pre_svn_dcommit_hook] child died with signal %d, %s coredump\n",
> +		($? & 127),  ($? & 128) ? 'with' : 'without';
> +		return 1;
> +	} else {
> +		return $? >> 8;
> +	}
> +}

Should these messages go to the standard output?

>  sub cmd_clone {
>  	my ($url, $path) = @_;
>  	if (!defined $path &&
> @@ -505,6 +524,8 @@ sub cmd_dcommit {
>  		. "or stash them with `git stash'.\n";
>  	$head ||= 'HEAD';
>  
> +	return if pre_svn_dcommit_hook($head);
> +
>  	my $old_head;
>  	if ($head ne 'HEAD') {
>  		$old_head = eval {

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] git svn : hook before 'git svn dcommit'
  2011-08-15 21:14 ` Junio C Hamano
@ 2011-08-17  0:30   ` Eric Wong
       [not found]     ` <CALeToSWJNK=q4iPwxNvgGin0T61oLKJd=b9F3cSSo0vVebrhhQ@mail.gmail.com>
  0 siblings, 1 reply; 20+ messages in thread
From: Eric Wong @ 2011-08-17  0:30 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Frédéric Heitzmann, git

Junio C Hamano <gitster@pobox.com> wrote:
> Frédéric Heitzmann  <frederic.heitzmann@gmail.com> writes:
> 
> > The 'pre-svn-dcommit' hook is called before 'git svn dcommit', which aborts
> > if return value is not zero. The only parameter given to the hook is the
> > reference given to 'git svn dcommit'. If no paramter was used, hook gets HEAD
> > as its only parameter.
> 
> It appears that this is in the same spirit as the pre-commit hook used in
> "git commit", so it may not hurt but I do not know if having a separate
> hook is the optimal approach to achieve what it wants to do.
> 
> I notice that git-svn users have been happily using the subsystem without
> need for any hook (not just pre-commit). Does "git svn" need an equivalent
> of pre-commit hook? If so, does it need equivalents to other hooks as
> well? I am not suggesting you to add support for a boatload of other hooks
> in this patch---I am trying to see if this is really a necessary change to
> begin with.
> 
> Eric, do you want this one?

I'm not sure.  I feel hooks should be avoided whenever possible, and
a git-svn-specific hook for dcommit wouldn't place the same restriction
as a server-side SVN hook for svn(1) users.

Preventing certain commits from accidentally hitting the SVN server can
be useful, I think.  On the other hand, I'm not sure if people who run
accidental dcommits would remember to the pre-dcommit hook, either.

Perhaps an interactive option for dcommit would be just as useful?

Test cases are required for any new features of git-svn, though.

> > +	system($hook, $head);
> > +	if ($? == -1) {
> > +		print "[pre_svn_dcommit_hook] failed to execute $hook: $!\n";
> > +		return 1;
> > +	} elsif ($? & 127) {
> > +		printf "[pre_svn_dcommit_hook] child died with signal %d, %s coredump\n",
> > +		($? & 127),  ($? & 128) ? 'with' : 'without';
> > +		return 1;
> > +	} else {
> > +		return $? >> 8;
> > +	}
> > +}
> 
> Should these messages go to the standard output?

Failure messages should definitely go to stderr.

-- 
Eric Wong

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] git svn : hook before 'git svn dcommit'
       [not found]     ` <CALeToSWJNK=q4iPwxNvgGin0T61oLKJd=b9F3cSSo0vVebrhhQ@mail.gmail.com>
@ 2011-08-17 14:35       ` Frédéric Heitzmann
  2011-08-17 20:37         ` Eric Wong
  2011-08-18  9:12         ` Peter Baumann
  0 siblings, 2 replies; 20+ messages in thread
From: Frédéric Heitzmann @ 2011-08-17 14:35 UTC (permalink / raw)
  To: Eric Wong; +Cc: git, Junio C Hamano

Hi all.

Maybe I should give some more context to explain why a hook could be a
potential improvement.

Let's consider the following workflow :
1) git svn clone from the SVN server, then git checkout -b topic
2) git commit some "reference data", before starting some optimization
or code refactoring.
** These reference data are not supposed to find their way to the SVN server **
Committing such "reference data" is just a convenience because git
does a great job to show how these data may or may not change during
the development process.
3) hack, test, commit ...
3 bis) it may happen that reference data change for some very good
reason (for instance some protocol change)
New reference data are then commited.

back to 3 ...

4) Before merging back to master and commitng to SVN, it is necessary
to remove commits with reference data (git rebase -i --onto master
master topic ...)
5) merge topic branch with master and git svn dcommit

-- end --

It is very easy to forget step 4, and svn commit lots of useless data.

Proposal 1)
* commit reference data with some specific mark in the commit message
(e.g. "NO_SVN")
* use pre-svn-dcommit hook to detect such commits

Proposal 2) (not fully feasable for what I know)
* git svn clone to a bare repo
* clone a working repo from the the bare repo.
* steps 2, 3, maybe 3bis, ... then 4
* push commits to the bare repo, while using pre-receive or update
hook to look for wrong commits, and abort if so.
* use post-receive hook to trigger git svn dcommit

Main drawback for proposal 2 (appart from needing 2 repo instead of
one) is that each time you want to update your working  repo, you have
to git svn rebase the bare repo, then git pull.

Proposal 2bis)
* add a pre-send hook on the bare repo, and trigger some git svn
rebase with this hook.
I am not sure to see all the potential consequences of such a hook though.

All things begin equal, proposal 1 seems to be the easier path, but it
is highly debatable.

--
Fred

ps : I had to resend this email because first attempt included HTML
(sic). Very sorry if you receive it twice.

2011/8/17 Eric Wong <normalperson@yhbt.net>
>
> Junio C Hamano <gitster@pobox.com> wrote:
> > Frédéric Heitzmann  <frederic.heitzmann@gmail.com> writes:
> >
> > > The 'pre-svn-dcommit' hook is called before 'git svn dcommit', which aborts
> > > if return value is not zero. The only parameter given to the hook is the
> > > reference given to 'git svn dcommit'. If no paramter was used, hook gets HEAD
> > > as its only parameter.
> >
> > It appears that this is in the same spirit as the pre-commit hook used in
> > "git commit", so it may not hurt but I do not know if having a separate
> > hook is the optimal approach to achieve what it wants to do.
> >
> > I notice that git-svn users have been happily using the subsystem without
> > need for any hook (not just pre-commit). Does "git svn" need an equivalent
> > of pre-commit hook? If so, does it need equivalents to other hooks as
> > well? I am not suggesting you to add support for a boatload of other hooks
> > in this patch---I am trying to see if this is really a necessary change to
> > begin with.
> >
> > Eric, do you want this one?
>
> I'm not sure.  I feel hooks should be avoided whenever possible, and
> a git-svn-specific hook for dcommit wouldn't place the same restriction
> as a server-side SVN hook for svn(1) users.
>
> Preventing certain commits from accidentally hitting the SVN server can
> be useful, I think.  On the other hand, I'm not sure if people who run
> accidental dcommits would remember to the pre-dcommit hook, either.
>
> Perhaps an interactive option for dcommit would be just as useful?
>
> Test cases are required for any new features of git-svn, though.
>
> > > +   system($hook, $head);
> > > +   if ($? == -1) {
> > > +           print "[pre_svn_dcommit_hook] failed to execute $hook: $!\n";
> > > +           return 1;
> > > +   } elsif ($? & 127) {
> > > +           printf "[pre_svn_dcommit_hook] child died with signal %d, %s coredump\n",
> > > +           ($? & 127),  ($? & 128) ? 'with' : 'without';
> > > +           return 1;
> > > +   } else {
> > > +           return $? >> 8;
> > > +   }
> > > +}
> >
> > Should these messages go to the standard output?
>
> Failure messages should definitely go to stderr.
>
> --
> Eric Wong

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] git svn : hook before 'git svn dcommit'
  2011-08-17 14:35       ` Frédéric Heitzmann
@ 2011-08-17 20:37         ` Eric Wong
  2011-08-18 13:43           ` Frédéric Heitzmann
  2011-08-18  9:12         ` Peter Baumann
  1 sibling, 1 reply; 20+ messages in thread
From: Eric Wong @ 2011-08-17 20:37 UTC (permalink / raw)
  To: Frédéric Heitzmann; +Cc: git, Junio C Hamano

Frédéric Heitzmann <frederic.heitzmann@gmail.com> wrote:
> 4) Before merging back to master and commitng to SVN, it is necessary
> to remove commits with reference data (git rebase -i --onto master
> master topic ...)
> 5) merge topic branch with master and git svn dcommit
> 
> -- end --
> 
> It is very easy to forget step 4, and svn commit lots of useless data.

I agree.

> Proposal 1)
> * commit reference data with some specific mark in the commit message
> (e.g. "NO_SVN")
> * use pre-svn-dcommit hook to detect such commits

The problem with this is hook standardization across committers and even
across different machines/directories a committer may use.

> Proposal 2) (not fully feasable for what I know)
> * git svn clone to a bare repo
> * clone a working repo from the the bare repo.
> * steps 2, 3, maybe 3bis, ... then 4
> * push commits to the bare repo, while using pre-receive or update
> hook to look for wrong commits, and abort if so.
> * use post-receive hook to trigger git svn dcommit
> 
> Main drawback for proposal 2 (appart from needing 2 repo instead of
> one) is that each time you want to update your working  repo, you have
> to git svn rebase the bare repo, then git pull.

Proposal 2 is way too complicated, I hate it.

> All things begin equal, proposal 1 seems to be the easier path, but it
> is highly debatable.

I had Proposal 3 in my original response:

> 2011/8/17 Eric Wong <normalperson@yhbt.net> wrote:
> > Perhaps an interactive option for dcommit would be just as useful?

1 and 3 can both implemented, but I think 3 would be easier to
use/setup/standardize.  I suspect it's also easier to train oneself to
always use "dcommit -i".  Perhaps even default to interactive mode
like git-send-email does nowadays.

Unfortunately interactive dcommit requires more effort to implement.

-- 
Eric Wong

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] git svn : hook before 'git svn dcommit'
  2011-08-17 14:35       ` Frédéric Heitzmann
  2011-08-17 20:37         ` Eric Wong
@ 2011-08-18  9:12         ` Peter Baumann
  2011-09-01 16:58           ` Paul Young
  1 sibling, 1 reply; 20+ messages in thread
From: Peter Baumann @ 2011-08-18  9:12 UTC (permalink / raw)
  To: Frédéric Heitzmann; +Cc: Eric Wong, git, Junio C Hamano

On Wed, Aug 17, 2011 at 04:35:03PM +0200, Frédéric Heitzmann wrote:
> Hi all.
> 
> Maybe I should give some more context to explain why a hook could be a
> potential improvement.
> 
> Let's consider the following workflow :
> 1) git svn clone from the SVN server, then git checkout -b topic
> 2) git commit some "reference data", before starting some optimization
> or code refactoring.
> ** These reference data are not supposed to find their way to the SVN server **
> Committing such "reference data" is just a convenience because git
> does a great job to show how these data may or may not change during
> the development process.
> 3) hack, test, commit ...
> 3 bis) it may happen that reference data change for some very good
> reason (for instance some protocol change)
> New reference data are then commited.
> 
> back to 3 ...
> 
> 4) Before merging back to master and commitng to SVN, it is necessary
> to remove commits with reference data (git rebase -i --onto master
> master topic ...)
> 5) merge topic branch with master and git svn dcommit
> 
> -- end --
> 
> It is very easy to forget step 4, and svn commit lots of useless data.
> 
> Proposal 1)
> * commit reference data with some specific mark in the commit message
> (e.g. "NO_SVN")
> * use pre-svn-dcommit hook to detect such commits
> 
> Proposal 2) (not fully feasable for what I know)
> * git svn clone to a bare repo
> * clone a working repo from the the bare repo.
> * steps 2, 3, maybe 3bis, ... then 4
> * push commits to the bare repo, while using pre-receive or update
> hook to look for wrong commits, and abort if so.
> * use post-receive hook to trigger git svn dcommit
> 
> Main drawback for proposal 2 (appart from needing 2 repo instead of
> one) is that each time you want to update your working  repo, you have
> to git svn rebase the bare repo, then git pull.
> 
> Proposal 2bis)
> * add a pre-send hook on the bare repo, and trigger some git svn
> rebase with this hook.
> I am not sure to see all the potential consequences of such a hook though.
> 
> All things begin equal, proposal 1 seems to be the easier path, but it
> is highly debatable.
> 

I have written a local script for exactly the problem you described after looking
for a git svn dcommit hook I could use (as you did).
I attached it, so feel free to use it. Simply add it to your bin and run it
with   git dcommit    instead of  git svn dcommit

Pls read the comment for further explanation how this script is used.


#!/bin/bash
# Copyright © Peter Baumann, 2011
#
# Wrapper script around git svn dcommit, which adds some useful functionality
#
# This script will prevent accidentally commiting some commits not yet ready
# into SVN. Commits starting with (case insensitive) debug, wip, fixup are
# considered not appropriate for putting them into SVN. The main reason for
# this functionality is the specific workflow I use. I always have some 
# internal debug commits (e.g. enhanced debug logging) or simply work in progress
# commits which should never be put into SVN. 
#
# To avoid putting those into SVN, I rebase all commits so that my WIP/DEBUG commits 
# are on top of the commits ment for SVN.
# Calling this script via "git dcommit" after the rebase makes sure only commits
# beneath the WIP commits are considered for SVN. 
# Furthermore, a shortlog of commits ment for SVN is shown and the user has
# to confirm before actually putting them into SVN.
#
# If this script is called via a specific commit (e.g. via its SHA1) as parameter,
# then only commits beneath and including the commit itself are committet to SVN.


SUBDIRECTORY_OK=Yes

. git-sh-setup
require_work_tree
cd_to_toplevel || die "foo"

# Upstream ref
upstream=remotes/trunk

# Stop at this commit
last=
if [ ! -z $1 ]; then
	$(git rev-parse $1^{commit})
	echo $last
fi

# The latest git commit we want to commit SVN
commit=

# Remembers the original head
orig_head=
if branch=$(git symbolic-ref -q HEAD)
then
	orig_head=${branch#refs/heads/}
else
	orig_head='(detached head)'
fi


function run()
{
	#echo "DEBUG: $@"
	$@
}	

IFS='
'
for c in $(git log --reverse --pretty="%H %s" HEAD --not "${upstream}"); do
	# Split the log output into its fields
	sha1="${c:0:40}"
	msg="${c:41}"

	# Check if the commit subject matches (case insenstive) to one of the
	# following patterns. Leading whitespace is fine
	# 	debug
	#	wip
	#	fixup!
	if echo "$msg"|egrep -i -q '^\s*(debug|wip|fixup)'; then
		break
	fi
	commit=${sha1}

	if [ "x${commit}" = "x${last}" ]; then
		break
	fi
done


if [ "x${commit}" == "x" ]; then
	die "Nothing to commit - Perhaps you have only stuff not ready for SVN?"
fi

echo ">>>> Committing the folling GIT commits to SVN <<<<"
git --no-pager log --pretty=oneline ${commit} --not "${upstream}"
echo

# Show the latest commit we are going to submit to SVN
#git show ${commit}

echo
echo "Commiting to SVN (y/N)?"
read yesno || die "Aborting"

if [ "x${yesno}" == "xy" ] || [ "x$yesno" == "xY" ]; then
	run git checkout -q "${commit}" || die "Checkout failed"
	run git svn dcommit || "Aborting - git svn dcommit failed!"

	if [ "${orig_head}" != "(detached head)" ]; then
		echo "DO THIS:"
		run git checkout "${orig_head}" && run git rebase "${upstream}"
	else
		echo "You have started this script being on a detached HEAD."
		echo "Please rebase manually!"
	fi
fi

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] git svn : hook before 'git svn dcommit'
  2011-08-17 20:37         ` Eric Wong
@ 2011-08-18 13:43           ` Frédéric Heitzmann
  2011-08-20 18:41             ` Eric Wong
  0 siblings, 1 reply; 20+ messages in thread
From: Frédéric Heitzmann @ 2011-08-18 13:43 UTC (permalink / raw)
  To: Eric Wong; +Cc: git, Junio C Hamano

2011/8/17 Eric Wong <normalperson@yhbt.net>:
>> 2011/8/17 Eric Wong <normalperson@yhbt.net> wrote:
>> > Perhaps an interactive option for dcommit would be just as useful?
>
> 1 and 3 can both implemented, but I think 3 would be easier to
> use/setup/standardize.  I suspect it's also easier to train oneself to
> always use "dcommit -i".  Perhaps even default to interactive mode
> like git-send-email does nowadays.
>
> Unfortunately interactive dcommit requires more effort to implement.
>
> --
> Eric Wong

It seems that proposal 3 is somehow equivalent to
$ git rebase -i --onto remotes/trunk remotes/trunk
... check commits, maybe remove some of them, ...
$ git svn dcommit

note : is the SVN remote branch always named "remote/trunk" ? If not,
is there a way to guess its name ?

--
Fred

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] git svn : hook before 'git svn dcommit'
  2011-08-18 13:43           ` Frédéric Heitzmann
@ 2011-08-20 18:41             ` Eric Wong
  0 siblings, 0 replies; 20+ messages in thread
From: Eric Wong @ 2011-08-20 18:41 UTC (permalink / raw)
  To: Frédéric Heitzmann; +Cc: git, Junio C Hamano

Frédéric Heitzmann <frederic.heitzmann@gmail.com> wrote:
> 2011/8/17 Eric Wong <normalperson@yhbt.net>:
> >> 2011/8/17 Eric Wong <normalperson@yhbt.net> wrote:
> >> > Perhaps an interactive option for dcommit would be just as useful?
> >
> > 1 and 3 can both implemented, but I think 3 would be easier to
> > use/setup/standardize.  I suspect it's also easier to train oneself to
> > always use "dcommit -i".  Perhaps even default to interactive mode
> > like git-send-email does nowadays.
> >
> > Unfortunately interactive dcommit requires more effort to implement.
> 
> It seems that proposal 3 is somehow equivalent to
> $ git rebase -i --onto remotes/trunk remotes/trunk
> ... check commits, maybe remove some of them, ...
> $ git svn dcommit

No, it would just prompt before making every commit (showing the log
message), like git-send-email can before sending every message.

> note : is the SVN remote branch always named "remote/trunk" ? If not,
> is there a way to guess its name ?

git svn dcommit --dry-run will print the URL from which you can
infer the remote branch.  There might be an easier way, but I
can't remember... (I don't see SVN much nowadays, most projects
I've cared about migrated to git)

-- 
Eric Wong

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] git svn : hook before 'git svn dcommit'
  2011-08-18  9:12         ` Peter Baumann
@ 2011-09-01 16:58           ` Paul Young
  0 siblings, 0 replies; 20+ messages in thread
From: Paul Young @ 2011-09-01 16:58 UTC (permalink / raw)
  To: git

Hi there

I'm trying to set up a post git svn dcommit hook in order to automatically
deliver stories via Pivotal Tracker:

https://www.pivotaltracker.com/help/api?version=v3#subversion_post_commit_example

Do you think you could help?

Thanks.

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2011-09-01 17:00 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-02 12:48 [PATCH] git svn : hook before 'git svn dcommit' Frédéric Heitzmann
2011-07-02 13:54 ` Matthieu Moy
2011-07-02 17:25   ` Frédéric Heitzmann
2011-07-02 21:59     ` Matthieu Moy
2011-07-03 20:49       ` Frédéric Heitzmann
2011-07-03 20:49         ` [PATCH 1/2] " Frédéric Heitzmann
2011-07-03 20:49         ` [PATCH 2/2] git svn : documentation of 'pre-svn-dcommit' Frédéric Heitzmann
2011-07-03 21:00         ` [PATCH] git svn : hook before 'git svn dcommit' Matthieu Moy
2011-07-04  5:54           ` Frédéric Heitzmann
2011-07-05 20:44             ` [PATCH v2] " Frédéric Heitzmann
2011-07-09 12:18               ` Frédéric Heitzmann
  -- strict thread matches above, loose matches on Subject: below --
2011-08-15 20:04 Frédéric Heitzmann
2011-08-15 21:14 ` Junio C Hamano
2011-08-17  0:30   ` Eric Wong
     [not found]     ` <CALeToSWJNK=q4iPwxNvgGin0T61oLKJd=b9F3cSSo0vVebrhhQ@mail.gmail.com>
2011-08-17 14:35       ` Frédéric Heitzmann
2011-08-17 20:37         ` Eric Wong
2011-08-18 13:43           ` Frédéric Heitzmann
2011-08-20 18:41             ` Eric Wong
2011-08-18  9:12         ` Peter Baumann
2011-09-01 16:58           ` Paul Young

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).