16

コマンドに対して TFS がどのように機能するかを確認したいと思います。そこで、現在の GIT リポジトリを TFS データベースに移動したいと思います。分岐サポートが普及しているために GIT を使用しているので、TFS 2010 を使用してその問題に対処したいと考えています。

今質問です。GIT リポジトリを TFS にエクスポートするにはどうすればよいですか。明らかに、それはある種のスクリプトです。誰かがそれをしましたか?助言がありますか?

ありがとうございました。

4

5 に答える 5

11

Microsoftは、GIT用の独自のGIT <-> TFS拡張機能をリリースしました:GIT-TF

これにより、TFSから新しいGITリポジトリをプルしたり、GITからTFSへのプッシュを許可するように構成したりできます。これを実行します。

(ドキュメントから)

既存のGitリポジトリを使用するチームの場合、Git-TFを使用してTFSへの変更を共有する開発者は、次のワークフローを使用します。

# Configure the existing repo's relationship with TFS
git tf configure http://myserver:8080/tfs $/TeamProjectA/Main

# Fetch the latest changes from TFS and merge those 
# changes with the local changes.
# Note, merging is important when working in a team configuration. 
# See "Rebase vs. Merge" below.
git tf pull

git commit -a -m "merge commit"

# Check in the merge commit as a single TFS changeset
git tf checkin

# Push the merge commit to the origin
git push

さらに、既存のオープンソースGIT-TFSソリューションを使用できます(Windowsからのみ、MicrosoftのソリューションはJavaを使用し、クロスプラットフォームです)。これは、GitからTFS 2008への一方向の移行(履歴付き)への回答で説明されています。

于 2012-08-15T09:32:12.343 に答える
5

クイックバッチファイルを作成しましたが、パスとFor(コマンドラインループコマンド)にTeam Foundation Power Tools(tfpt.exe)が必要です。

Visual Studioのコマンドラインを目的のgitフォルダーに移動し、次のコマンドを実行します。

git log --pretty="'%%H',%%ci - %%s" --reverse > commits

tf workspace temp /new /s:http://{TfsInstance} /i
tf workfold /map %2 . /workspace:temp

FOR /F "tokens=1* delims=','" %%a IN (commits) DO git checkout %%a && tfpt online /recursive /exclude:.git*,commits,*.obj,*.exe,_ReSharper*,obj,debug,*.user,*.suo,Bin /adds /deletes /i && tf checkin /author:"{AuthorName}" /comment:"%%b" /i

tf workspace temp /delete /i
  1. 最初に、すべてのコミット情報を逆の順序で(最も早いものから)コミットファイルを作成します。
  2. 次に、Team Foundationワークスペースを作成します...(必ず{TtsInstance}TFSURIに置き換えてください。
  3. 次に、ワークスペースに一時フォルダーを作成します。
  4. 次に、commitsファイルの各行をループし、gitからチェックアウトし、TFPTを使用して現在のファイルをチェックインします(ここでも必ず作成{AuthorName}者名に置き換えてください)。コメントにはgitからのタイムスタンプが含まれます(残念ながらできません)。 TFSサーバーの時刻を変更せずにチェックイン時刻を変更します。これはお勧めしません)と元の作成者の名前。

これは問題なく機能しましたが、ブランチは保持されません。分岐は当時の仕事にとって十分な要因ではなかったので、時間をかけて分岐を理解することはしませんでした。

うまくいけば、これは誰かの時間を節約することができます!

于 2010-07-07T18:29:24.330 に答える
2

SVNBridgeを TFS にセットアップしてから、git-svn clone を使用します。

于 2010-04-15T16:44:32.177 に答える
0

git を svn にエクスポートし、CS Converterを使用して svn から TFVS に移行できる場合があります。注 - CS コンバーターは廃止されましたが、まだダウンロードできるようです。

于 2009-12-31T00:40:55.573 に答える