2010-11-19 9 views
2

私は既存のsvnリポジトリをgitに移そうとしています。この2つの間で同期を行う必要はありません(git svn fetch esまたはdcommit)。これ以上の移行はありません。git-svnクローンが 'master'をランダムブランチに設定するのはなぜですか?

私はgitリポジトリを作成するには、このコマンドを発行:

git svn clone -s https://server/repos/my_repo 

これは細かい走りました。しかし、ディレクトリに新しいmy_repoディレクトリがあると、そこにあったファイルはブランチの1つ(トランクではない)の一部でした。

行うgit branches -a利回り:

* master 
    modelExperimentalTrunk 
    [email protected] 
    dRefactoring 
    reorganise 
    stableV396 
    tags/v1.0 
    trunk 

私はマスターブランチにですが、私のサンドボックス内にあるファイルはdRefactoring支店(私達のより多くの無名の分岐の1つ)から、実際にしています。

質問:

  • はなぜmasterブランチがtrunkに接続されていませんでしたか?
  • trunkに再接続する方法はありますか?または、それはgit svn cloneステージで実行できますか?
  • また、これがサーバー上にあるとすれば、git svnは--bareリポジトリを作成できる方法はありますか?トランクにmasterブランチを再接続

答えて

7

簡単で、単に実行します。

git checkout master 
git reset --hard trunk 

これは(これはすでにない場合)ブランチをマスターするスイッチとの状態にし、作業ツリーをリセットトランク支店。その後、トランクブランチを安全に削除できます。

git-svnは、そのままの状態で裸のリポジトリをサポートしていません。詳細はhttp://gsocblog.jsharpe.net/archives/12をご覧ください。しかし、私はあなたがSVNリポジトリの単一のインポートをしたいだけで、この複雑なソリューションが必要とは思わない。

したがって、既存のgitリポジトリの裸のクローンを作成するだけで、設定済みです。

関連する問題