2012-01-20 19 views
3

TFS(Microsoft Team Foundation Server)にコードリポジトリがあります。私はgit-tfsを使ってこれをgitリポジトリに変換することができます。git-tfs central repoをクローンし、TFSを隠す

しかし私がしたいことは、TFSにプッシュする1つのセントラルgitリポジトリを設定し、すべての開発者にそのgit repoをクローンしてではなく、がTFSにプッシュできるようにすることです。すべての人が中央リポジトリから「下流に」いる限り、私はTFSリポジトリがまったく存在しないことを示唆しません。

git-tfsによって生成されたレポにTFSサーバー情報が含まれているので、どうすればいいですか?

答えて

2

これが機能するには、解決する必要があるいくつかの問題があります。最も顕著なのは、gitユーザーからTFS資格情報へのマッピングで、TFSへの変更をチェックインするときに使用されます。

他の厄介なことは、他のTFSユーザーと競合する可能性があります(つまり、誰かが物事を直接TFSにプッシュすると決めた場合)。

だから、git-tfsの一部として開発されたわけではありません。(少なくとも私はこの機能を数ヶ月前に追加しなかったからです)

プレーンテキストファイルでTFSログイン/パスワードのペアを使用しても問題ない場合は、コンフリクトのないワークフローを保証できます(たとえば、gitセントラルリポジトリ以外の方法でTFSへのチェックインを禁止する場合)コミットフックやシンプルなスケジューラで必要なものを実装します(プッシュすることは即時ではありませんが、遅延して非同期になるため、git中央リポジトリへの処理が大幅に高速化されます)。

実際のスクリプトはかなり単純であるべきですが、誰もまだ1つ書くのは面倒ではありません(少なくとも私はそのようなことは知らない)。

0

まず、--no-metadataフラグを使用して、コミットからTFSメタデータを削除します。その後、--authors="path-to-authors.txt"フラグを使用して、TFSユーザーを最新のものにマッピングします。

TFSDOMAIN\peter.pan = Peter Pan <[email protected]> 

レポをクローニングした後、git tfs bootstrapを実行し、.git/configファイルにTFSの設定を削除:あなたてAuthors.txtで

git tfs clone http://tfs:8080/tfs/DefaultCollection $/Project1 --authors="c:\project1\authors.txt" --no-metadata 

は、このように自分の電子メールにユーザーTFS IDをマップします。これで、TFSにチェックインすることはできませんが、依然として開発者の間でリポジトリを共有できるはずです。

詳細はgit tfs clonehttps://github.com/git-tfs/git-tfs/wiki/Clone

関連する問題