git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Carlos Martín Nieto" <cmn@elego.de>
To: Barry Wardell <barry.wardell@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] git-svn: Simplify calculation of GIT_DIR
Date: Sat, 03 Mar 2012 19:27:13 +0100	[thread overview]
Message-ID: <1330799233.691.40.camel@centaur.lab.cmartin.tk> (raw)
In-Reply-To: <1330798107-33561-1-git-send-email-barry.wardell@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2392 bytes --]

On Sat, 2012-03-03 at 18:08 +0000, Barry Wardell wrote:
> Since git-rev-parse already checks for the $GIT_DIR environment
> variable and that it returns an actual git repository, there is no
> need to repeat the checks again here.
> 
> This also fixes a problem where git-svn did not work in cases where
> .git was a file with a gitdir: link.
> ---
>  git-svn.perl |   25 ++-----------------------
>  1 file changed, 2 insertions(+), 23 deletions(-)
> 
> diff --git a/git-svn.perl b/git-svn.perl
> index 4334b95..cf2cef8 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -15,8 +15,6 @@ my $cmd_dir_prefix = eval {
>  	command_oneline([qw/rev-parse --show-prefix/], STDERR => 0)
>  } || '';
>  
> -my $git_dir_user_set = 1 if defined $ENV{GIT_DIR};
> -$ENV{GIT_DIR} ||= '.git';
>  $Git::SVN::default_repo_id = 'svn';
>  $Git::SVN::default_ref_id = $ENV{GIT_SVN_ID} || 'git-svn';
>  $Git::SVN::Ra::_log_window_size = 100;
> @@ -290,28 +288,9 @@ for (my $i = 0; $i < @ARGV; $i++) {
>  	}
>  };
>  
> -# make sure we're always running at the top-level working directory
> +# Access an existing repository

Is there a reason making sure we're at the top-level dir isn't necessary
anymore?

>  unless ($cmd && $cmd =~ /(?:clone|init|multi-init)$/) {
> -	unless (-d $ENV{GIT_DIR}) {
> -		if ($git_dir_user_set) {
> -			die "GIT_DIR=$ENV{GIT_DIR} explicitly set, ",
> -			    "but it is not a directory\n";
> -		}
> -		my $git_dir = delete $ENV{GIT_DIR};
> -		my $cdup = undef;
> -		git_cmd_try {
> -			$cdup = command_oneline(qw/rev-parse --show-cdup/);
> -			$git_dir = '.' unless ($cdup);
> -			chomp $cdup if ($cdup);
> -			$cdup = "." unless ($cdup && length $cdup);
> -		} "Already at toplevel, but $git_dir not found\n";
> -		chdir $cdup or die "Unable to chdir up to '$cdup'\n";

Here you delete a chdir to the top-level directory, just as you deleted
the comment above, yet in the commit message you don't explain why this
isn't necessary anymore. Doesn't the rest of the code still assume that
it's running at the top-level dir?

> -		unless (-d $git_dir) {
> -			die "$git_dir still not found after going to ",
> -			    "'$cdup'\n";
> -		}
> -		$ENV{GIT_DIR} = $git_dir;
> -	}
> +	$ENV{GIT_DIR} = command_oneline([qw/rev-parse --git-dir/]);
>  	$_repository = Git->repository(Repository => $ENV{GIT_DIR});
>  }
>  



[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 490 bytes --]

  reply	other threads:[~2012-03-03 18:27 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-03 18:08 [PATCH] git-svn: Simplify calculation of GIT_DIR Barry Wardell
2012-03-03 18:27 ` Carlos Martín Nieto [this message]
2012-03-03 19:45   ` Barry Wardell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1330799233.691.40.camel@centaur.lab.cmartin.tk \
    --to=cmn@elego.de \
    --cc=barry.wardell@gmail.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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 NNTP newsgroup(s).