Git to TFS源代码控制迁移

时间:2009-12-31 00:13:56

标签: git version-control tfs tfs-migration

我想看看TFS如何适用于我的命令。所以我想将我们当前的GIT存储库移动到TFS数据库。我们已经使用GIT来获得支持,因此我想使用TFS 2010来解决这个问题。

现在问题是。如何将GIT仓库导出到TFS。显然这是某种脚本。有没有人这样做过?有什么建议吗?

谢谢。

5 个答案:

答案 0 :(得分:10)

微软现已发布了自己的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 to TFS 2008 one way migration (with history)的答案中描述

答案 1 :(得分:5)

我创建了一个快速批处理文件,但您需要在路径中使用Team Foundation Power Tools(tfpt.exe)和For(命令行循环命令)

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工作区...(确保用您的TFS URI替换{TtsInstance}
  3. 然后它在工作区中创建一个临时文件夹。
  4. 然后循环遍历提交文件中的每一行,从git结帐,使用TFPT签入当前文件(再次确保用您的作者姓名替换{AuthorName})评论将包含时间戳来自git(很遗憾,你不能在不改变TFS服务器时间的情况下改变签到时间,我建议不要改变)和原作者的名字。
  5. 这没关系,但分支机构不会被坚持。我没有花时间弄清楚分支,因为它对当时的工作来说不够大。

    希望这可以节省一些时间!

答案 2 :(得分:2)

设置SVNBridge到TFS,然后使用git-svn clone。

答案 3 :(得分:0)

您可以将git导出到svn,并使用CS Converter从svn转到TFVS。注 - CS Converter已经停产,但看起来你仍然可以下载它。

答案 4 :(得分:-1)

这是一个老问题,也许没人会再找这个了,但现在要容易得多了。

  1. 使用Git作为源代码控件在TFS中创建一个团队项目

  2. 抓住项目的Git网址。它看起来像......     https://YOURPROJECTS.visualstudio.com/DefaultCollection/_git/PROJECTNAME

  3. 像执行命令一样进入命令。

    git remote add origin https://YOURPROJECTS.visualstudio.com/DefaultCollection/_git/PROJECTNAME

    git push -u origin --all

  4. 应该是你所需要的一切。