我有一个 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?
谢谢