5

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

問題は、サーバーにgitリポジトリを保存したいのですが、変更をプッシュおよびプルして、通常どおりgitを使用して作業できることです。

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

それで、そのようなシナリオを設定する方法はありますか?または、これが唯一の可能な方法です-自分自身にgitが必要で、残りの同僚にSVNが必要な場合は、SVNリポジトリを使用し、git-svnを使用してそれを操作しますか?

ありがとう!

4

3 に答える 3

4

SVNを使用してリポジトリをチェックアウトする場合は、当然のことながら、SVNリポジトリが必要です。それがなければ、SVNとgitの間でうまく変換されないもの(リビジョン番号、ブランチなど)を追跡するのは困難です。

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

于 2011-01-11T19:25:55.270 に答える
4

SVNリポジトリを使用するgit-svnことは機能しますが、gitが好きな人が他にいる場合は、gitとのコラボレーションのメリットを失うことになります。これは、SVNが事実上の標準であり、gitのコマンドとより優れたログ表示を好む職場で使用しているものです。とにかく、私たちは主にアーカイブツールとしてSVNを使用します。ブランチはなく、実際に同期して1つのドキュメントで共同作業を行います。

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

于 2011-01-11T19:38:01.563 に答える
-2

答えてくれてありがとう、svickDamien!どちらも良いのですが、どちらも受け入れられないので、自分で答えてみます。


したがって、基本的には、読み取り専用のsvn-accessを備えたgitリポジトリを持つことができます。ダミアンが言ったように、

公式リポジトリをgitリポジトリにし、cronまたはpost-commitフックのいずれかでgit-svnを使用して、スレーブsvnリポジトリに自動的にプッシュします。

リポジトリ内のコードへの読み取り専用アクセスを取得する別の方法は、サーバーのどこかに保存され、ダウンロードできるソースコードの最新のスナップショットを含むアーカイブを作成することです。


一部のユーザーがコードに変更を加える必要がある場合、それらを保存する唯一の適切な方法は、使用されているSCMに関係なく、それらをリポジトリにコミットすることです。この場合、変更を加えたユーザーがコミット方法を知らない場合は、変更を喜んで確認してリポジトリにコミットするプログラマー(ソースコードを担当)が必要です。

于 2011-01-14T08:44:26.233 に答える