使用构建/发布管道任务将更改从AzureDevOps git repo上载到专用TFS服务器

使用构建/发布管道任务将更改从AzureDevOps git repo上载到专用TFS服务器,git,tfs,azure-devops,azure-pipelines-release-pipeline,build-pipeline,Git,Tfs,Azure Devops,Azure Pipelines Release Pipeline,Build Pipeline,我在dev.azure.com(AzureDevops)上有一个GIT存储库,在私有服务器上有一个本地TFVC存储库(我没有访问机器的权限,我只访问它的Web门户)。两者都有相同的代码 我已经在AzureDevops中为我的GIT存储库创建了一个构建和发布管道,它运行良好。但是现在,我想从GIT存储库更新我的TFVC存储库,作为每次在AzureDevops中执行管道时的构建/发布管道任务 不存在任何可能的冲突,因为没有其他人会签入对我的TFVC存储库的更改 有什么方法可以实现这一点吗?您可以在T

我在dev.azure.com(AzureDevops)上有一个GIT存储库,在私有服务器上有一个本地TFVC存储库(我没有访问机器的权限,我只访问它的Web门户)。两者都有相同的代码

我已经在AzureDevops中为我的GIT存储库创建了一个构建和发布管道,它运行良好。但是现在,我想从GIT存储库更新我的TFVC存储库,作为每次在AzureDevops中执行管道时的构建/发布管道任务

不存在任何可能的冲突,因为没有其他人会签入对我的TFVC存储库的更改


有什么方法可以实现这一点吗?

您可以在TFS存储库计算机上部署。并在生成/发布管道中添加脚本任务以更新存储库。

您可以在TFS存储库计算机上部署。并在构建/发布管道中添加一个脚本任务以更新存储库。

我要做的是向Azure DevOps服务repo添加一个指向内部TFS(只要内部TFS在internet上可见)的远程,然后在构建(在服务中)中,您可以调用git push internalorigin。现在,如果您无法从web上看到内部TFS,那么就像前面提到的Cece一样,在TFS服务器上安装一个构建代理,并在构建中创建一个代理步骤,然后调用一个内联powershell来添加一个远程,然后调用git push internalorigin,类似这样

git remote add internalorigin https://TFSSERVER/COLLECTION/_git/REPO
git push -u internalorigin --all
copy c:\agent\_work\1\s c:\workspace /Y
cd c:\workspace
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\Team Foundation\Team Explorer\TF.exe" vc checkin /comment:"comment" /noprompt /recursive *

然后在脚本中,您可以执行以下操作

git remote add internalorigin https://TFSSERVER/COLLECTION/_git/REPO
git push -u internalorigin --all
copy c:\agent\_work\1\s c:\workspace /Y
cd c:\workspace
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\Team Foundation\Team Explorer\TF.exe" vc checkin /comment:"comment" /noprompt /recursive *
更新:

从Git到TFVC您的内联脚本将本地文件从构建复制到本地TFVC工作空间,然后使用TF.exe签入类似的内容

git remote add internalorigin https://TFSSERVER/COLLECTION/_git/REPO
git push -u internalorigin --all
copy c:\agent\_work\1\s c:\workspace /Y
cd c:\workspace
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\Team Foundation\Team Explorer\TF.exe" vc checkin /comment:"comment" /noprompt /recursive *

您必须首先从命令行尝试它,确保它工作正常,然后将其放入内联脚本中。

我要做的是向Azure DevOps服务repo添加一个远程,指向您的内部TFS(只要您的内部TFS在internet上可见),然后在您的构建中(在服务中)您可以调用git-push-internalorigin。现在,如果您无法从web上看到内部TFS,那么就像前面提到的Cece一样,在TFS服务器上安装一个构建代理,并在构建中创建一个代理步骤,然后调用一个内联powershell来添加一个远程,然后调用git push internalorigin,类似这样

git remote add internalorigin https://TFSSERVER/COLLECTION/_git/REPO
git push -u internalorigin --all
copy c:\agent\_work\1\s c:\workspace /Y
cd c:\workspace
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\Team Foundation\Team Explorer\TF.exe" vc checkin /comment:"comment" /noprompt /recursive *

然后在脚本中,您可以执行以下操作

git remote add internalorigin https://TFSSERVER/COLLECTION/_git/REPO
git push -u internalorigin --all
copy c:\agent\_work\1\s c:\workspace /Y
cd c:\workspace
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\Team Foundation\Team Explorer\TF.exe" vc checkin /comment:"comment" /noprompt /recursive *
更新:

从Git到TFVC您的内联脚本将本地文件从构建复制到本地TFVC工作空间,然后使用TF.exe签入类似的内容

git remote add internalorigin https://TFSSERVER/COLLECTION/_git/REPO
git push -u internalorigin --all
copy c:\agent\_work\1\s c:\workspace /Y
cd c:\workspace
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\Team Foundation\Team Explorer\TF.exe" vc checkin /comment:"comment" /noprompt /recursive *

您必须首先从命令行尝试它,确保它工作正常,然后将其放入内联脚本中。

按照Etienne所说的去做,但是如果您的目标repo是tfvc,请将命令行任务添加到使用tf.exe(而不是git)上传和提交到tfvc repo的管道中,并管理工作区。

按照Etienne所说的去做,但是,如果您的目标repo是tfvc,请将命令行任务添加到使用tf.exe(而不是git)上载和提交到tfvc repo的管道中,并管理工作区。

我认为他的目标repo是tfvc,而不是git。@Etienne目标repo是tfvc,而不是git。还有,我应该如何通过cmd登录到target repo?哦,这不一样,你想从Git同步到TFVC,这不太好,但是像下面提到的@pabrams一样,你可以复制自定义构建文件夹中的文件(通常是\agent\u work\1\s或类似的东西)并复制到本地TFVC工作区,然后使用tf.exe命令行进行签入。不太好,但如果没有冲突,它应该会起作用。我认为他的目标回购协议是tfvc,而不是git。@Etienne目标回购协议是tfvc,而不是git。还有,我应该如何通过cmd登录到target repo?哦,这不一样,你想从Git同步到TFVC,这不太好,但是像下面提到的@pabrams一样,你可以复制自定义构建文件夹中的文件(通常是\agent\u work\1\s或类似的东西)并复制到本地TFVC工作区,然后使用tf.exe命令行进行签入。不太好,但如果你没有冲突,它应该会起作用。@CeceDong MSFT是的,我是说TFVC,我已经更新了question@CeceDong-MSFT我想将整个文件从AzureDevops上传到TFVC,并在必要时替换它们exist@CeceDong-MSFT是的,我是指TFVC,我已经更新了question@CeceDong-MSFT我想把整个文件从AzureDevops上传到TFVC如果existI无法访问TFVC机器,请更换它们。我只能访问它的门户网站,我不能访问TFVC机器。我只能访问它的门户网站