0

ここで機能する公式の SCM は TFS です。私はgit-tfsを使って作業できるようにしています。当社のローカル ブランチの他の開発者は、ローカル開発ブランチにStarTeamを使用しています (そうです、TFS よりも悪い SCM があります)。現在、ローカル開発のために StarTeam から Git に移行することを検討している人もいます。

複数のユーザーのために tfs と組み合わせて git を使用する最良の方法は何ですか?

私が持っていた最高のアイデア:

  1. 1 つの中央サーバーが TFS リポジトリの 1 対 1 のコピーを保持します (git-tfs を介して、スクリプトごとに約 1 時間ごとに同期されます)。
  2. このサーバーからの開発プル。
  3. 開発者は機能を実装するためにブランチを作成します。
  4. 完了すると、dev は TFS を介してコミットし、ブランチを削除します。
  5. 開発者は、ステップ 1 で変更を master ブランチにプルします。

このワークフローは機能しますか? そのようなものを設定する方法を経験した人はいますか?

4

2 に答える 2

1

まず、TFS は SCM ではなく、ALM プラットフォームです。TFVC と Git という 2 つのネイティブ SCM オプションを提供します。

最善の策は、TFS サーバーで新しいチーム プロジェクトを作成し、使用する SCM プロバイダーを尋ねられたら Git を選択することです。これにより、GitHub や Bitbucket に似たものになりますが、エンタープライズ監査でエンタープライズ対応になります。次に、この新しい TFS Git リポジトリをオリジンおよびプッシュとして追加できます。

それでも TFVC を使用する必要がある場合は、上記に加えて、このサーバーの Git リポジトリと TFVC の間で Git-tfs を使用して毎日プッシュすることをお勧めします。

  1. Git を SCM として MyProject-Git チーム プロジェクトを作成する
  2. Git-TF を使用して MyProject-TFVC のクローンを作成する
  3. MyProject-TFVC のローカル Git コピーのリモートとして MyProject-Git を追加します。
  4. MyProject-Git へのプッシュ

これで、Git と TFVC の両方の同じコードのコピーがあり、すべての履歴がそのまま残ります。その後、各コーダーは MyProject-Git のクローンを作成し、Git で楽しく作業できます。

その後、定期的に MyProject-Git と MyProject-TFVC を同期する自動化されたスケジュールされたプロセスをセットアップできます。通知が必要なのは競合だけですが、すべてがサーバー側でバックアップされているため、自由に行うことができます。

于 2015-03-05T05:30:23.467 に答える
0

現在の解決策は、基本的には上で概説したものと同じです。主な制限:

  • 私の同僚は慰めることに慣れておらず、できる限り彼らを避けようとします。CLI アプリケーションは使えません (悲しいことに)
  • TFS はまだ「上流」です (維持したいビルド プロセスではありません)。
  • 履歴は正確でなければならない (誰がいつ何をコミットしたか)
  • すべての開発者は毎回コミットできる必要があります

そう... :

  • メイン リポジトリは によって 10 分ごとに同期されgit tfs fetch、ブランチは次のようにリセットされます。tfs/branchname
  • 公式ブランチ (tfs ブランチのコピー)へのコミットは禁止されています。
  • TFSgit tfs rcheckin --no-mergeへのチェックインは (GitExtensions のプラグインにラップされています) によって行われます。
  • :%s/tfs/TFVC/g

3 つのリポジトリと複数のブランチに対して、このセットアップを数か月間実行しています。私の同僚は短期間で git とこのワークフローに慣れました。これがどれほどうまくいったか、私は適度に驚いています。

于 2015-03-12T16:53:42.770 に答える