2009-04-09 10 views
8

が方法はありますが「gitのはsvn dcommit」クローン化されたのgit-svnのリポジトリから:方法はありますが「gitのはsvn dcommit」クローン化されたのgit-svnのリポジトリから:

私は、SVNのいくつかの支店を持っています時にはそれは非常に小さな枝であり、同じディレクトリにあることがうれしいですが、時にはこれらの枝が大きくなり、全体を別のフォルダに移動するのもいいです。

しかし、このローカルリポジトリから私のディスク上の別の場所にgitクローンを作成すると、git-svnはすべての情報を失い、それを戻す方法はわかりません。私はちょうどフォルダのコピーを作ることができたと思うが、gitを通してやってみると良いだろう。

答えて

13

レポをクローンしたら、オリジナルのレポが作成されたのと同じパラメータでgit svn initを実行して、必要な情報を引き出すことができます。 the WebKit git-svn instructionsによると、トリックはあなたがSVNツリーの先端に高速転送できる状態に自分自身を取得するためにupdate-refを使用することです:

git svn init -T trunk http://svn.webkit.org/repository/webkit 
git update-ref refs/remotes/trunk origin/master 

git svn initに渡された正確なパラメータは、あなたのSubversionの設定に依存しますレポおよびgit-svnクローン。

+0

ない 'GitのSVNが行くinit'べき*前*' gitのそれを行う方法を参照してくださいgit-svn-automirror

あなたは、関数_git_update_mirrorを見ることができますを使用して作成されましたupdate-ref'? – jfs

+0

うん。 +1 Webkit ref、tho 'のために - 私が知る必要があったものを正確に教えてくれました。 – jstevenco

+0

どのように私は間違っているか分かりません。コマンドの順序を修正しました。 –

3

git-cloneは、クローンを実行するときにgit-svnの情報をクローンしません。あなたは状況hereについてもっと読むことができます。

-1

.git/configファイル内のsvn情報はそれほど多くの情報ではありませんか?あなたはそれらを手で詰まらせて行くことができます。

1

可能ですが、設定を少し違ったものにする必要があります。ここでは、我々はnumpyでそれを行う方法です - レポを手動で

+0

したがって、リモートのリファレンス(通常は/ remotes/origin/*を参照する)を確認することが重要ですgit-svnが使用するもの(デフォルトではsvn-remote.svn.branches = branches/*:refs/remotes/*)と一致するように 'refs/remotes/*'にしてください。 – inger

関連する問題