我有一个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?
由于
答案 0 :(得分:0)
要获取删除,您需要将方法更改为此类内容。
tf checkout
命令,就像您目前所做的那样attrib -r
个文件才能关闭只读标志。tfpt online
命令。 TFS会将服务器工作区与本地文件系统的内容进行比较,并将其检测到的所有添加,删除和编辑添加到挂起的更改中。您想要的具体命令是 tfpt online /adds /deletes /diff /noprompt /recursive <folderName>
tf resolve
和tf checkin
命令。您可能需要稍微调整一下这个方法,但这应该会为您提供您所追求的目标。