All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC] git-svn: allow --version to work anywhere
@ 2016-07-20  0:47 Eric Wong
  2016-07-22 17:13 ` Junio C Hamano
  0 siblings, 1 reply; 6+ messages in thread
From: Eric Wong @ 2016-07-20  0:47 UTC (permalink / raw)
  To: git

Checking the version of the installed SVN libraries should not
require a git repository at all.  This matches the behavior of
"git --version".

Add a test for "git svn help" for the same behavior while we're
at it, too.

Signed-off-by: Eric Wong <e@80x24.org>
---
  I'm hoping "cd /" in the test will always succeed;
  but I suppose non-*nix systems might fail, here.

  And maybe a BOFH did "chmod 700 /"	:(

  Anyways this is sitting in master of git://bogomips.org/git-svn.git

 git-svn.perl             | 4 ++--
 t/t9100-git-svn-basic.sh | 8 ++++++++
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/git-svn.perl b/git-svn.perl
index f609e54..4d41d22 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -339,7 +339,7 @@ if ($cmd && $cmd =~ /(?:clone|init|multi-init)$/) {
 			die "failed to open $ENV{GIT_DIR}: $!\n";
 		$ENV{GIT_DIR} = $1 if <$fh> =~ /^gitdir: (.+)$/;
 	}
-} else {
+} elsif ($cmd) {
 	my ($git_dir, $cdup);
 	git_cmd_try {
 		$git_dir = command_oneline([qw/rev-parse --git-dir/]);
@@ -356,7 +356,7 @@ if ($cmd && $cmd =~ /(?:clone|init|multi-init)$/) {
 
 my %opts = %{$cmd{$cmd}->[2]} if (defined $cmd);
 
-read_git_config(\%opts);
+read_git_config(\%opts) if $ENV{GIT_DIR};
 if ($cmd && ($cmd eq 'log' || $cmd eq 'blame')) {
 	Getopt::Long::Configure('pass_through');
 }
diff --git a/t/t9100-git-svn-basic.sh b/t/t9100-git-svn-basic.sh
index 28082b1..10408d0 100755
--- a/t/t9100-git-svn-basic.sh
+++ b/t/t9100-git-svn-basic.sh
@@ -19,6 +19,14 @@ case "$GIT_SVN_LC_ALL" in
 	;;
 esac
 
+test_expect_success 'git svn --version works anywhere' '
+	( cd / || exit 0; git svn --version )
+'
+
+test_expect_success 'git svn help works anywhere' '
+	( cd / || exit 0; git svn help )
+'
+
 test_expect_success \
     'initialize git svn' '
 	mkdir import &&
-- 
EW

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

* Re: [RFC] git-svn: allow --version to work anywhere
  2016-07-20  0:47 [RFC] git-svn: allow --version to work anywhere Eric Wong
@ 2016-07-22 17:13 ` Junio C Hamano
  2016-07-22 20:46   ` [PATCH] " Eric Wong
  0 siblings, 1 reply; 6+ messages in thread
From: Junio C Hamano @ 2016-07-22 17:13 UTC (permalink / raw)
  To: Eric Wong; +Cc: git

Eric Wong <e@80x24.org> writes:

> Checking the version of the installed SVN libraries should not
> require a git repository at all.  This matches the behavior of
> "git --version".
>
> Add a test for "git svn help" for the same behavior while we're
> at it, too.
>
> Signed-off-by: Eric Wong <e@80x24.org>
> ---
>   I'm hoping "cd /" in the test will always succeed;
>   but I suppose non-*nix systems might fail, here.

How about digging a few levels of directory hierarchy, exporting
GIT_CEILING_DIRECTORIES so that we won't find any repository and
going there to run these tests?

>   And maybe a BOFH did "chmod 700 /"	:(
>
>   Anyways this is sitting in master of git://bogomips.org/git-svn.git
>
>  git-svn.perl             | 4 ++--
>  t/t9100-git-svn-basic.sh | 8 ++++++++
>  2 files changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/git-svn.perl b/git-svn.perl
> index f609e54..4d41d22 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -339,7 +339,7 @@ if ($cmd && $cmd =~ /(?:clone|init|multi-init)$/) {
>  			die "failed to open $ENV{GIT_DIR}: $!\n";
>  		$ENV{GIT_DIR} = $1 if <$fh> =~ /^gitdir: (.+)$/;
>  	}
> -} else {
> +} elsif ($cmd) {
>  	my ($git_dir, $cdup);
>  	git_cmd_try {
>  		$git_dir = command_oneline([qw/rev-parse --git-dir/]);
> @@ -356,7 +356,7 @@ if ($cmd && $cmd =~ /(?:clone|init|multi-init)$/) {
>  
>  my %opts = %{$cmd{$cmd}->[2]} if (defined $cmd);
>  
> -read_git_config(\%opts);
> +read_git_config(\%opts) if $ENV{GIT_DIR};
>  if ($cmd && ($cmd eq 'log' || $cmd eq 'blame')) {
>  	Getopt::Long::Configure('pass_through');
>  }
> diff --git a/t/t9100-git-svn-basic.sh b/t/t9100-git-svn-basic.sh
> index 28082b1..10408d0 100755
> --- a/t/t9100-git-svn-basic.sh
> +++ b/t/t9100-git-svn-basic.sh
> @@ -19,6 +19,14 @@ case "$GIT_SVN_LC_ALL" in
>  	;;
>  esac
>  
> +test_expect_success 'git svn --version works anywhere' '
> +	( cd / || exit 0; git svn --version )
> +'
> +
> +test_expect_success 'git svn help works anywhere' '
> +	( cd / || exit 0; git svn help )
> +'
> +
>  test_expect_success \
>      'initialize git svn' '
>  	mkdir import &&

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

* [PATCH] git-svn: allow --version to work anywhere
  2016-07-22 17:13 ` Junio C Hamano
@ 2016-07-22 20:46   ` Eric Wong
  2016-07-28 20:16     ` Junio C Hamano
  0 siblings, 1 reply; 6+ messages in thread
From: Eric Wong @ 2016-07-22 20:46 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Junio C Hamano <gitster@pobox.com> wrote:
> Eric Wong <e@80x24.org> writes:
> >   I'm hoping "cd /" in the test will always succeed;
> >   but I suppose non-*nix systems might fail, here.
> 
> How about digging a few levels of directory hierarchy, exporting
> GIT_CEILING_DIRECTORIES so that we won't find any repository and
> going there to run these tests?

Ah, thanks; I missed that.

Repushed my master in case it's a convenient time to pull.

The following changes since commit 29493589e97a2de0c4c1c314f61ccafaee3b5caf:

  archive-tar: huge offset and future timestamps would not work on 32-bit (2016-07-15 10:51:55 -0700)

are available in the git repository at:

  git://bogomips.org/git-svn.git master

for you to fetch changes up to c0071ae5dc1c610ab3791ece7ccf7d4772fde151:

  git-svn: allow --version to work anywhere (2016-07-22 20:38:11 +0000)

----------------------------------------------------------------
Eric Wong (2):
      git-svn: document svn.authorsProg in config
      git-svn: allow --version to work anywhere

 Documentation/git-svn.txt |  3 +++
 git-svn.perl              |  4 ++--
 t/t9100-git-svn-basic.sh  | 19 +++++++++++++++++++
 3 files changed, 24 insertions(+), 2 deletions(-)

-----8<-----
Subject: [PATCH] git-svn: allow --version to work anywhere

Checking the version of the installed SVN libraries should not
require a git repository at all.  This matches the behavior of
"git --version".

Add a test for "git svn help" for the same behavior while we're
at it, too.

Signed-off-by: Eric Wong <e@80x24.org>
---
 git-svn.perl             |  4 ++--
 t/t9100-git-svn-basic.sh | 19 +++++++++++++++++++
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/git-svn.perl b/git-svn.perl
index f609e54..4d41d22 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -339,7 +339,7 @@ if ($cmd && $cmd =~ /(?:clone|init|multi-init)$/) {
 			die "failed to open $ENV{GIT_DIR}: $!\n";
 		$ENV{GIT_DIR} = $1 if <$fh> =~ /^gitdir: (.+)$/;
 	}
-} else {
+} elsif ($cmd) {
 	my ($git_dir, $cdup);
 	git_cmd_try {
 		$git_dir = command_oneline([qw/rev-parse --git-dir/]);
@@ -356,7 +356,7 @@ if ($cmd && $cmd =~ /(?:clone|init|multi-init)$/) {
 
 my %opts = %{$cmd{$cmd}->[2]} if (defined $cmd);
 
-read_git_config(\%opts);
+read_git_config(\%opts) if $ENV{GIT_DIR};
 if ($cmd && ($cmd eq 'log' || $cmd eq 'blame')) {
 	Getopt::Long::Configure('pass_through');
 }
diff --git a/t/t9100-git-svn-basic.sh b/t/t9100-git-svn-basic.sh
index 28082b1..ab6593b 100755
--- a/t/t9100-git-svn-basic.sh
+++ b/t/t9100-git-svn-basic.sh
@@ -19,6 +19,25 @@ case "$GIT_SVN_LC_ALL" in
 	;;
 esac
 
+deepdir=nothing-above
+ceiling=$PWD
+
+test_expect_success 'git svn --version works anywhere' '
+	mkdir -p "$deepdir" && (
+		export GIT_CEILING_DIRECTORIES="$ceiling" &&
+		cd "$deepdir" &&
+		git svn --version
+	)
+'
+
+test_expect_success 'git svn help works anywhere' '
+	mkdir -p "$deepdir" && (
+		export GIT_CEILING_DIRECTORIES="$ceiling" &&
+		cd "$deepdir" &&
+		git svn help
+	)
+'
+
 test_expect_success \
     'initialize git svn' '
 	mkdir import &&
-- 
EW

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

* Re: [PATCH] git-svn: allow --version to work anywhere
  2016-07-22 20:46   ` [PATCH] " Eric Wong
@ 2016-07-28 20:16     ` Junio C Hamano
  2016-07-28 21:23       ` Junio C Hamano
  0 siblings, 1 reply; 6+ messages in thread
From: Junio C Hamano @ 2016-07-28 20:16 UTC (permalink / raw)
  To: Eric Wong; +Cc: git

Eric Wong <e@80x24.org> writes:

> Repushed my master in case it's a convenient time to pull.
>
> The following changes since commit 29493589e97a2de0c4c1c314f61ccafaee3b5caf:
>
>   archive-tar: huge offset and future timestamps would not work on 32-bit (2016-07-15 10:51:55 -0700)
>
> are available in the git repository at:
>
>   git://bogomips.org/git-svn.git master
>
> for you to fetch changes up to c0071ae5dc1c610ab3791ece7ccf7d4772fde151:
>
>   git-svn: allow --version to work anywhere (2016-07-22 20:38:11 +0000)

Thanks, pulled.


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

* Re: [PATCH] git-svn: allow --version to work anywhere
  2016-07-28 20:16     ` Junio C Hamano
@ 2016-07-28 21:23       ` Junio C Hamano
  2016-07-28 22:07         ` Eric Wong
  0 siblings, 1 reply; 6+ messages in thread
From: Junio C Hamano @ 2016-07-28 21:23 UTC (permalink / raw)
  To: Eric Wong; +Cc: git

Junio C Hamano <gitster@pobox.com> writes:

> Eric Wong <e@80x24.org> writes:
>
>> Repushed my master in case it's a convenient time to pull.
>>
>> The following changes since commit 29493589e97a2de0c4c1c314f61ccafaee3b5caf:
>>
>>   archive-tar: huge offset and future timestamps would not work on 32-bit (2016-07-15 10:51:55 -0700)
>>
>> are available in the git repository at:
>>
>>   git://bogomips.org/git-svn.git master
>>
>> for you to fetch changes up to c0071ae5dc1c610ab3791ece7ccf7d4772fde151:
>>
>>   git-svn: allow --version to work anywhere (2016-07-22 20:38:11 +0000)
>
> Thanks, pulled.

I was too deep in today's integration cycle to waste half-day's
work, so I added this hotfix after the merge, directly on 'master'.

-- >8 --
Subject: [PATCH] t9100: portability fix

Do not say "export VAR=VAL"; "VAR=VAL && export VAR" is always more
portable.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 t/t9100-git-svn-basic.sh | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/t/t9100-git-svn-basic.sh b/t/t9100-git-svn-basic.sh
index ab6593b..d29f601 100755
--- a/t/t9100-git-svn-basic.sh
+++ b/t/t9100-git-svn-basic.sh
@@ -24,7 +24,8 @@ ceiling=$PWD
 
 test_expect_success 'git svn --version works anywhere' '
 	mkdir -p "$deepdir" && (
-		export GIT_CEILING_DIRECTORIES="$ceiling" &&
+		GIT_CEILING_DIRECTORIES="$ceiling" &&
+		export GIT_CEILING_DIRECTORIES &&
 		cd "$deepdir" &&
 		git svn --version
 	)
@@ -32,7 +33,8 @@ test_expect_success 'git svn --version works anywhere' '
 
 test_expect_success 'git svn help works anywhere' '
 	mkdir -p "$deepdir" && (
-		export GIT_CEILING_DIRECTORIES="$ceiling" &&
+		GIT_CEILING_DIRECTORIES="$ceiling" &&
+		export GIT_CEILING_DIRECTORIES &&
 		cd "$deepdir" &&
 		git svn help
 	)
-- 
2.9.2-662-gbb82c05


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

* Re: [PATCH] git-svn: allow --version to work anywhere
  2016-07-28 21:23       ` Junio C Hamano
@ 2016-07-28 22:07         ` Eric Wong
  0 siblings, 0 replies; 6+ messages in thread
From: Eric Wong @ 2016-07-28 22:07 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Junio C Hamano <gitster@pobox.com> wrote:
> Subject: [PATCH] t9100: portability fix
> 
> Do not say "export VAR=VAL"; "VAR=VAL && export VAR" is always more
> portable.

Oops, sorry I should've caught that :x

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

end of thread, other threads:[~2016-07-28 22:07 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-20  0:47 [RFC] git-svn: allow --version to work anywhere Eric Wong
2016-07-22 17:13 ` Junio C Hamano
2016-07-22 20:46   ` [PATCH] " Eric Wong
2016-07-28 20:16     ` Junio C Hamano
2016-07-28 21:23       ` Junio C Hamano
2016-07-28 22:07         ` Eric Wong

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.