20

今日、ローカルの TFS サーバーにすべてのソース コードがあります。ここで、一部の外部関係者がコードの一部にアクセスできるようにしたいと考えています。したがって、たとえば、このコードをアクセス可能な外部 GIT サーバーに複製する可能性を検討しています。

git-tfsを見てきました。しかし、私の理解が正しければ、GIT と TFS のいずれかで変更が発生したときに手動で同期する必要があります。自動的に同期されるコードのクローンを作成する方法はありますか?

TFS に変更がある場合は、自動的に GIT に同期され、その逆も同様です。最新のコードを使用する場合、不確実性はないはずです

4

2 に答える 2

4

その質問が行われてからの主な変更点 (2013 年第 4 四半期) は、TFS 2015/2017 が Git リポジトリを公式にサポートするようになったことです。「Git と TFS」を参照してください。

したがって、合理的なアプローチは次のようになります。

  • git-tfsなどのツールを使用して、既存の TFS プロジェクト履歴を新しい Git リポジトリにエクスポートします。
  • その Git リポジトリを 1 つのメイン コードベースといくつかの小さなリポジトリに分割し、それぞれが他の貢献者にアクセスしてもらいたい部分を表します。
  • これらのサブリポジトリをメイン コードベースのサブモジュールとして参照する
  • 最後に、TFS プロジェクトを (今回は Git リポジトリを使用して) 作成し、これらのリポジトリを TFS サーバーにプッシュ バックします。

これにより、TFS プロジェクトのコレクションが残ります。各プロジェクトは特定のチームに開かれ、特定の部分のみが他の貢献者に表示/アクセスできるようになります。

そしていつでも; メインの coderepo リポジトリから、これらのサブモジュールを次のように更新できます。

git submodule update --recursive --remote --rebase

(そして、テスト、追加、コミット、プッシュ: メインの Git リポジトリは、これらのサブモジュールの最新の開発を参照します)

さらに、l--''''''---------''''''''''''前の質問を考慮すると、ファイルが多すぎる単一のレポに役立ちます。
ただし、そのために、すぐに(らしい) GVFS が登場します。


で言及されている代替アプローチl--''''''---------''''''''''''は次のとおりです。

私は個人的に、自分の変更に GIT を使用できるようにしたいと考えています。GIT に複数の変更セットがあり、それらを 1 つにマージしてから、その変更セットを従来の TFS 変更セットに変換してチェックインします。 TFSアイテムごとに1回のチェックイン

Git のコミット履歴を 1 つの TFS 変更セットに集約するときに、中間の Git コミット履歴を失うことを気にしないのであれば、それは可能です。

于 2017-12-18T18:43:43.380 に答える