From b7e5348c7f6369554813207a24cf841f48bd8b23 Mon Sep 17 00:00:00 2001
From: Eric Wong <normalperson@yhbt.net>
Date: Fri, 16 Feb 2007 04:09:28 -0800
Subject: [PATCH] git-svn: hide the private git-svn 'config' file as
 '.metadata'

Having it named as 'config' prevents us from tracking a
ref named 'config', which is a huge mistake.

On the non-technical side, the word 'config' implies that
a user can freely modify it; but that's not the case
here.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
---
 git-svn.perl               | 7 ++++++-
 t/t9107-git-svn-migrate.sh | 1 +
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/git-svn.perl b/git-svn.perl
index d7fc9aad52..571259fd09 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -1286,7 +1286,12 @@ sub get_fetch_range {
 
 sub tmp_config {
 	my (@args) = @_;
-	my $config = "$ENV{GIT_DIR}/svn/config";
+	my $old_def_config = "$ENV{GIT_DIR}/svn/config";
+	my $config = "$ENV{GIT_DIR}/svn/.metadata";
+	if (-e $old_def_config && ! -e $config) {
+		rename $old_def_config, $config or
+		       die "Failed rename $old_def_config => $config: $!\n";
+	}
 	my $old_config = $ENV{GIT_CONFIG};
 	$ENV{GIT_CONFIG} = $config;
 	$@ = undef;
diff --git a/t/t9107-git-svn-migrate.sh b/t/t9107-git-svn-migrate.sh
index a20038b670..dc2afdaa45 100755
--- a/t/t9107-git-svn-migrate.sh
+++ b/t/t9107-git-svn-migrate.sh
@@ -17,6 +17,7 @@ test_expect_success 'setup old-looking metadata' "
 	git-svn init $svnrepo &&
 	git-svn fetch &&
 	mv $GIT_DIR/svn/* $GIT_DIR/ &&
+	mv $GIT_DIR/svn/.metadata $GIT_DIR/ &&
 	rmdir $GIT_DIR/svn &&
 	git-update-ref refs/heads/git-svn-HEAD refs/remotes/git-svn &&
 	git-update-ref refs/heads/svn-HEAD refs/remotes/git-svn &&