2009-09-08 12 views
7

問題は単純です。私はgitのcvsimportを使ってcvsリポジトリをローカルのgitリポジトリのリモートブランチにインポートしました。次に、このリポジトリをブランチ(github/gitorious)のgitリポジトリにブランチ、タグ、およびすべてを同期させたいと思います。これを行うには、私はrsyncへのアクセス権を持っていないか、リポジトリを直接コピーしています。私はgit pushを使う必要があります。プッシュでリモートの1つのgit remoteをミラーリングする方法

ローカルリポジトリをミラーリングして、完全な_cvsimport_d履歴にアクセスできるようにするにはどうすればよいですか?具体的に


Iインポートおよびcvsimport使用してリポジトリを追跡:Gitのレポcdt-リモートCVS

git cvsimport -i -v -C cdt-make-core -d :pserver:[email protected]:/cvsroot/tools -r cvs org.eclipse.cdt/all/org.eclipse.cdt.make.core

上記輸入org.eclipse.cdt.make.coreメイク・コア。

私はその後、githubのメインCVSブランチのHEADをプッシュすることができます:

git push github cvs/master:refs/heads/cvs/HEAD

(。それはそれが作成されていますが存在しない場合、私は、リモート明示的に上のパスを指定する)

ですリモートのcvs/* => cvs/*のすべてのブランチを同期する方法はありますか?
すべてのタグを同期する方法はありますか?

答えて

3

私の所見は、以下の2番目の合理的な解決方法を使用する場合は、先に- ミラーを実行する必要があります。これは、プッシュしようとしているCVS /ブランチを消去します。したがって、完全な公式は次のとおりです。

git push --mirror -v github 
git push --force github cvs/master:refs/heads/cvs/HEAD 
for x in `git branch -r | grep '^..cvs/[a-zA-Z0-9_-]*$' | sed -e 's/^..//'` ; do 
    git push -v github $x:refs/heads/$x 
    git config branch.$x.remote github 
    git config branch.$x.merge refs/heads/$x 
done 
5

私はあなたがプッシュする--mirrorオプションを探していると思う:

git push --mirror github 

これは、非早送り更新を含む全ての参照文献(ブランチやタグ)をプッシュします。私は私のローカルリポジトリのバックアップを作成するためにこれを使用します。

man pageこのようにそれを説明します、代わりにプッシュする各REFを命名

$GIT_DIR/refs/下のすべての参考文献は(含むが、refs/heads/に限定されるものではなくrefs/remotes/、及びrefs/tags/する)にミラーリングすることを指定リモートリポジトリ。新しく作成されたローカルのリファレンスはリモートエンドにプッシュされ、ローカルで更新されたリファレンスはリモートエンドで強制的に更新され、削除されたリファレンスはリモートエンドから削除されます。構成オプションが設定されている場合、これがデフォルトです。

[OT:!私は私の毎日の仕事でCDTを使用して、私はそれを愛する]

+0

ありがとうございました。残念ながら、これは私がしたいことをしていないようです。これはクラウド内のリポジトリが鉱山のように見えるように見えるので、githubリポジトリにはリモートの 'cvs'があるが、目に見えるcvsブランチはない。 私が望んでいたのは、remotes/cvs/*の全内容をgithubのcvs/*にコピーすることでした。 –

+0

ああ、私は今参照してください。死んでしまって申し訳ありません。 –

1

が実験したので、私は私が何をしたい何のために任意の組み込みのサポートがあります信じていません。 cvsimportに-rを指定しないでください

  • しかし2つの合理的な解決策があるように思われます。
    インポートされたブランチは、リポジトリに直接存在し、- ミラーをPatとして提案することができます。

  • * cvs/**リモートを一度に1つずつプッシュするシェルスクリプトを作成します(これは簡単です)。
    使用--mirrorので、タグが正しく

を同期していることを私はもともと D枝が名前空間のために分離cvsimportを維持したいです。しかし、最初のオプションでは、cvsimportリポジトリを完全に分離しておくことが理にかなっています。私はCVSを追跡し続けることができますが、トラッキングgit repoを汚すことはありません。

関連する問題