自动删除TFS中的文件(Git和Jenkins集成)

时间:2015-04-17 00:33:10

标签: git jenkins tfs tfs2010 git-tfs

我有一个git存储库设置(使用gitblit),Jenkins和Team Foundation Server(TFS)。我想做的是:

1)让工程师将代码提交到git存储库。

2)Jenkins将编译代码。

3)Jenkins将代码更改添加到TFS中。

非常简单吧?好吧,我遇到了在TFS中反映已删除文件的问题。我的工作如下:

1)Jenkins运行一个脚本,删除Jenkins工作区中的所有文件和文件夹

2)然后Jenkins将文件从git repo克隆到Jenkins工作区。

git clone git://devfilesrepo.company.com/DevFiles.git %WORKSPACE%

3)Jenkins执行具有以下TFS命令的批处理文件:

set checkinComment=%1
tf workfold /collection:http://faketfs:8080/faketfs/DefaultCollection     /workspace:DevFiles /map $/Dev/DevFiles "C:\Jenkins\jobs\DevFiles\workspace" /login:Company\admin,fakePass
tf checkout "C:\Jenkins\jobs\DevFiles\workspace" /noprompt /recursive /login:Company\admin,fakePass
tf add "C:\Jenkins\jobs\DevFiles\workspace" /noprompt /recursive /login:Company\admin,fakePass
tf resolve /auto:KeepYours /noprompt /recursive /login:Company\admin,fakePass
tf checkin /comment:%checkinComment% /noprompt /recursive /login:Company\admin,fakePass

现在,如果在进入Git时添加或编辑文件,上面的命令会很有效。但是,如果文件从Git中删除,则不会反映在TFS中。

使情况变得更加复杂。我还需要在TFS中添加一些不应存在于Git仓库中的文件。

我是否可以运行可以反映已删除更改的TFS命令?

我想在从Git添加文件之前删除TFS文件夹,但是我也会删除我直接添加到TFS的文件。我听说过Git-TF和Git-TFS,那些公用事业能够做我想要的吗?如果是这样,我可以运行什么命令来将代码从Git转移到TFS?

由于

1 个答案:

答案 0 :(得分:0)

要获取删除,您需要将方法更改为此类内容。

  • 运行tf checkout命令,就像您目前所做的那样
  • 通过正常的命令行方法删除文件夹内容,排除您要保留的不在git中的文件。您需要先attrib -r个文件才能关闭只读标志。
  • 将git repo的内容复制到文件夹
  • 使用TFS Power Tools,特别是tfpt online命令。 TFS会将服务器工作区与本地文件系统的内容进行比较,并将其检测到的所有添加,删除和编辑添加到挂起的更改中。您想要的具体命令是

tfpt online /adds /deletes /diff /noprompt /recursive <folderName>

  • 按目前的方式运行tf resolvetf checkin命令。

您可能需要稍微调整一下这个方法,但这应该会为您提供您所追求的目标。