コマンドに対して TFS がどのように機能するかを確認したいと思います。そこで、現在の GIT リポジトリを TFS データベースに移動したいと思います。分岐サポートが普及しているために GIT を使用しているので、TFS 2010 を使用してその問題に対処したいと考えています。
今質問です。GIT リポジトリを TFS にエクスポートするにはどうすればよいですか。明らかに、それはある種のスクリプトです。誰かがそれをしましたか?助言がありますか?
ありがとうございました。
コマンドに対して TFS がどのように機能するかを確認したいと思います。そこで、現在の GIT リポジトリを TFS データベースに移動したいと思います。分岐サポートが普及しているために GIT を使用しているので、TFS 2010 を使用してその問題に対処したいと考えています。
今質問です。GIT リポジトリを TFS にエクスポートするにはどうすればよいですか。明らかに、それはある種のスクリプトです。誰かがそれをしましたか?助言がありますか?
ありがとうございました。
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への一方向の移行(履歴付き)への回答で説明されています。
クイックバッチファイルを作成しましたが、パスと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
{TtsInstance}
TFSURIに置き換えてください。{AuthorName}
者名に置き換えてください)。コメントにはgitからのタイムスタンプが含まれます(残念ながらできません)。 TFSサーバーの時刻を変更せずにチェックイン時刻を変更します。これはお勧めしません)と元の作成者の名前。これは問題なく機能しましたが、ブランチは保持されません。分岐は当時の仕事にとって十分な要因ではなかったので、時間をかけて分岐を理解することはしませんでした。
うまくいけば、これは誰かの時間を節約することができます!
SVNBridgeを TFS にセットアップしてから、git-svn clone を使用します。
git を svn にエクスポートし、CS Converterを使用して svn から TFVS に移行できる場合があります。注 - CS コンバーターは廃止されましたが、まだダウンロードできるようです。