4

git-svn を使用して svn ブランチを作成しようとしています。リポジトリは で作成されました--stdlayout。残念ながら、「ソースと宛先が同じリポジトリにないようです」というエラーが生成されます。エラーは、ソース URL にユーザー名が含まれていないことが原因のようです。

$ git svn branch foo-as-bar -m "Foo を Bar にしようとしています。"

r1173 の svn+ssh://my.foo.company/r/sandbox/foo/trunk を svn+ssh://svnuser@my.foo.company/r/sandbox/foo/branches/foo-as-bar にコピーする...

サポートされていない機能を使用しようとしています: ソースと宛先が同じリポジトリにないようです (src: ' svn+ssh://my.foo.company /r/sandbox/foo/trunk'; dst: ' svn+ssh: //svnuser@my.foo.company /r/sandbox/foo/branches/foo-as-bar') at /home/me/.install/git/libexec/git-core/git-svn 行 610

私は当初、これは単なる設定の問題だと思って.git/configいました。

 [svn-remote "svn"]
     url = svn+ssh://svnuser@my.foo.company/r
     fetch = sandbox/foo/trunk:refs/remotes/trunk
     branches = sandbox/foo/branches/*:refs/remotes/*
     tags = sandbox/foo/tags/*:refs/remotes/tags/*

を使用してgit version 1.6.3.3います。

なぜこれが起こっているのか、そしてそれに対処する最善の方法について誰かが光を当てることができますか?

4

2 に答える 2

4

これはgit-svnのバグだと思います。エラーでソースリポジトリを観察すると、URLのsvnuser@部分が欠落しています。これは、git-svnがコミットメッセージのsvnリポジトリを使用しているためですか?わからない。git-svn perlスクリプトを変更して、609行目にハードコードされたURLを含めることで、これを機能させることができました。この場合、609行目は次のようになります...

$ src = "svn + ssh://svnuser@my.foo.company/r/sandbox/foo/trunk";

あなたのgit-svnが私のものよりも新しい/古い場合、これは異なるかもしれないことに注意してください。正常に分岐した後、行を削除しました(2回分岐するだけでよいため)。バグレポートを提出します。

また、file://// home / r / sandbox / foo/trunkなどの非svn+sshタイプのリポジトリを使用している場合、これは問題ではないことに注意してください。

于 2009-08-13T19:33:41.023 に答える
1

これに対する実際の修正は、メーリング リストのスレッドから取得したこのパッチにあります。

diff --git a/git-svn.perl b/git-svn.perl
index dba0d12..650c9e5 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -663,7 +663,8 @@ sub cmd_branch {
        }
        $head ||= 'HEAD';

-   my ($src, $rev, undef, $gs) = working_head_info($head);
+   my (undef, $rev, undef, $gs) = working_head_info($head);
+   my $src = $gs->full_url;

        my $remote = Git::SVN::read_all_remotes()->{$gs->{repo_id}};
        my $allglobs = $remote->{ $_tag ? 'tags' : 'branches' };

Danny が使用しているのと同じリビジョン 1.6.3.3 について、588 でこの特定の行を見つけたことに注意してください。Ubuntu Karmic 9.10 では、このスクリプトは/usr/lib/git-core/git-svn.

于 2010-05-06T00:51:34.523 に答える