2011-01-11 26 views
6

gitリポジトリからsvn-checkoutを作成する方法はありますか?GITリポジトリからsvn-checkout

問題は、サーバーにgitリポジトリを格納したいのですが、gitを通常どおりに使用して、変更をプッシュして取り込むことができます。

しかし、コードを変更する必要はありませんが、ソースコードの最新のスナップショットを取得してマシン上にビルドできる必要があります。これらのいわゆる「開発者」は、すでに慣れ親しんだSCMとしてSVNを使用したいと考えています。

このようなシナリオを設定する手段はありますか?または、これは唯一可能な方法です - SVNリポジトリを使用してgit-svnを使用して自分自身のためにgitとSVNを他の同僚のために使用する場合はどうすればいいですか?

ありがとうございます!

+0

これはかなり便利ですが、悲しいかな、私はそのようなことを知らないのです。あなたが言及したように、他の方向に行く方法だけ。私はそれを書くのに何がかかるのだろうと思う。 –

答えて

-1

回答ありがとうございます。svickDamien!彼らはどちらも良いですが、私は両方を受け入れることができないので、私は自分の答えで全部を少し上げようとしています。


だから、基本的に、人はそれに 読み取り専用のsvn-アクセスgitリポジトリを持つことができます。 Damienが言ったように、

公式レポを作成して、cronまたはpost-commitフックでgit-svnを使って自動的にスレーブsvn repoにプッシュします。

任意のリポジトリ内のコードへ読み取り専用アクセスを取得する別の方法は、ダウンロードのためにどこかのサーバー上で、利用可能な格納されたソースコードの最新のスナップショットでアーカイブを持つことです。


コードの変更を行うために一部のユーザーのために必要がある場合は、それらを保存するための唯一の適切な方法に関係なく使用されているものSCM、バックレポにそれらをコミットしていないことであろう。この場合、変更を行ったユーザがコミットする方法を知らない場合、変更を喜んでレビューしてリポジトリに戻すプログラマ(ソースコードの責任者)がいるはずです。

4

SVNを使用してリポジトリをチェックアウトする場合は、SVNリポジトリを用意する必要があります。それがなければ、SVNとgit(例えばリビジョン番号、ブランチ)の間でうまく翻訳できないものを追跡するのは難しいでしょう。

しかし、あなたが求めているのは実際にリポジトリのようには見えませんが、フォルダを同期するだけです。そのためには、おそらくSVN以外のツールが適しています。 rsync。もう一つの可能​​性は、ソースコードを含む最新のアーカイブを持つことです(例えばGithubがこれを提供しています)。

4

git-svnのSVNリポジトリを使用するとうまくいくが、gitのような人がいれば、gitと協力するメリットが失われる。これは私がSVNが事実上の標準である職場で私が使っているもので、gitのコマンドとより良いログ表示が好きです。とにかくアーカイブツールとしてSVNを使用しています。ブランチはなく、実際の状況で同期して1つのドキュメントを共同作業します。

もう1つの解決策は、公式リポジトリをgit oneにすることで、自動的にスレーブsvn repoにgit-svnを使用して、cronまたはpost-commitフックでプッシュします。あなたが言うように、svnユーザーは決してコミットする必要がない場合、これは最高の1つのようです。

関連する問題