質問

2〜3人の2〜3人の小さなチームがあります。私たちは皆、localにgitを使用し、中央リポジトリにはsvnを使用し、git-svnは同期しました。これは、チーム間でコードを共有したい場合を除き、常に機能します。

そのため、Git Pullを試しましたが、これにより多くの競合が生じ、同じツリーにいることは検出されません。もちろん、すべての変更(クローンと同じ)を取得します(クローンと同じ)完全なレポをクローンしたくありません。共有したいたびに。

より良いフローを提案してください。

  1. 中央SVNを取り除くことはできません。
  2. 毎回クローンはできません。
役に立ちましたか?

解決

1人のチームメンバーを「Git Hub」として指名し、SVNサーバーと同期し、他のチームメンバーはSVNサーバーではなく直接相互作用します。そうすれば、Gitはすべてのチームメンバーが同じツリーにいることを知るでしょう。

他のヒント

subgit あなたにとって素晴らしい代替品のようです。

subgit サーバー側のソリューションであり、Git Subversionリポジトリへのアクセスを可能にし、その逆も同様です。つまり、選択したGitクライアントを使用して、Gitリポジトリのみを使用できます。

サブGITをSubversionリポジトリに1回インストールする必要があります。その後、サブギットはすぐにsvnリビジョンをすべてのgitコミットに変換します svn commit gitはすべてのSVNリビジョンにコミットします git push.

SubGitはクローズドソースソフトウェアですが、オープンソースプロジェクトには無料です。詳細については、参照してください サブGITドキュメン化.

Chris Huang-Leaverの答えに追加するには、SVNリポジトリを使用してDCommit/Rebaseの中心的なポイントが必要です。
これは、GITの「分散型」の側面を否定するものではなく、リモートリポジトリの1つとして、誰もが参照の「中央」リポジトリ(つまり、SVNと同期する)の1つとして、誰もが操作できるようになります。

クローンの負担を回避する簡単な方法はありません すべての 結果として生じる(潜在的に巨大な)SVNリポジトリから来る Git Repoをサブモジュールに分割することはできません.
それは少なくとも1つの「解決策」を残します。

  • メインのgitの横に異なるgitを作成する(SVNと同期する)
  • メインリポジトリからのパッチのエクスポート
  • これらのパッチをメインGITリポジトリ内のプロジェクトを表す各gitリポジトリに適用します。

明らかに自動化する必要がありますが、1つのチームが焦点を当てます 1 これらのGit Reposの「中央」リポジトリとして、およびSVN同期を担当する人は、メイン(および非表示の)git <=> SVNリポジトリからのパッチを使用して、それらの小さなgitレポを更新します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top