当前位置:  开发笔记 > 前端 > 正文

TFS:如何撤消批处理文件中未修改文件的签出

如何解决《TFS:如何撤消批处理文件中未修改文件的签出》经验,为你挑选了7个好方法。

我们使用批处理文件生成代码,它会自动从Team Foundation Server(TFS)中检出生成的文件,以便它可以重新生成它们.这些文件中的大多数都没有被修改,但生成器并不提前知道.

"tfs undo"命令撤消签出,但会提示是否已修改某些(我们不想这样做).我们也不想立即签入生成的文件.

是否有命令(或一系列命令)撤消所有未修改文件的检出而不提示用户?



1> Mike Chaliy..:

查看2011年8月Team Foundation Server Power Tools的 Undo Unchanged命令

c:\myProject> tfpt uu . /noget /recursive

感谢Matt Florence的链接更新.

感谢Ray Vega的实际语法.


嗯,几乎每个人每天都会做几次:"让我们把它放在一个名为Power Tools的独立安装程序中"......叹息
你真的想读这篇文章:http://aaubry.net/undo-checkout-on-unchanged-files-tfs.html
如果您的更改是合并,则它不起作用.看起来你总是认为合并是一个真正的改变,即使没有文件更改,也没有选择来翻转这种行为.它可以作为默认行为,但有时它不是你想要的.

2> Ray Vega..:

安装Team Foundation Server Power Tools并使用项目工作空间目录根目录下的tfpt.exe从命令行运行以下命令:

c:\myProject> tfpt uu . /noget /recursive

包括/noget强烈推荐,因为它可以防止强制"获取最新"所有项目的文件,这取决于总数可能需要很长时间.


这应该是公认的答案,它具有所有相关细节(由较高分数证明).
问题指定在没有提示**的情况下执行此操作**,但没有一个答案似乎解决了这个问题.如果你需要这个,额外的**/noprompt**是你正在寻找的选项.PowerTools文档遗漏了这个!它为一些命令列出了此选项,但没有列出此选项(UU).谨防!
凉.另外,为什么不将它添加为Visual Studio的永久"外部工具".以此为例:http://blog.kurtschindler.net/post/visual-studio-external-tools-for-git-and-more命令:[your installation dir]\TFPT.EXE参数:uu./ noget/recursive初始目录:$(SolutionDir)

3> Ofir..:

谢谢@mike&@ray,

我希望让它变得更容易.

在VS的"工具"菜单中,单击"外部工具".

外部工具

单击添加.

输入标题.

命令:tfpt.exe

论点:uu./ noget/recursive

初始目录:[您可以从箭头按钮中选择].

在解决方案中撤消不变

在项目中撤消不变

"工具"菜单中添加了两个新命令.

需要时使用它们.

请享用,

奥菲尔


我收到错误"无法确定工作区"
很酷.你也可以更进一步,添加一个快捷方式.注意你添加的命令有多远(例如它可能是第四个).然后转到工具 - >选项 - >环境 - >键盘 - >并键入'显示包含'文本框的命令"Tools.External"并指定一个快捷方式.例如,我选择了Tools.ExternalCommand4,因为我新添加的undo命令是第四个.然后我分配了快捷键Ctrl + Alt + U,Ctrl + Alt + U.

4> 小智..:

    右键单击您的项目

    选择撤消结帐,然后只需单击"确定",或者剩下的任何确认...

    然后,在撤消checkout时,对于每个在其中有REAL更改的文件,提示将要求您确认该文件的签出...只需单击"No to All"

Visual Studio将知道签出的文件是否有更改或没有.

警告:此方法还会删除文件,即尚未签入TFS的文件.如果要保留这些文件,只需将它们从"撤消"文件集中排除即可.


`请注意,此方法还会删除尚未从TFS签入的已添加文件....是的,这是一个非常直接的不合格者.
当nuget为10000个不需要更新的文件签出时,这是一个地狱.

5> Schwarzie247..:

仅在使用TFS2017VS2017时更新了此问题并给出了答案.

TFS 2017不存在电动工具,旧的电动工具不能很好地与它一起工作,但显然大多数功能已经转移到VS2017本身或插件(见下文).

Visual Studio 2017扩展

某些操作(如撤消未更改的文件)已移至VS2017的扩展名

"撤消未更改"按钮位置:

撤消未更改的按钮位置

Windows Shell集成扩展

此外,您仍然可以通过单独的安装程序设置Windows shell集成,该安装程序不再链接到TFS Power Tools.

Windows shell集成与之前的powertools完全不同,但最重要的操作对我有用.


@Erzékiel该选项仅在打开并准备好解决方案资源管理器时显示。

6> Martin Woodw..:

如果您只是再次检查已签出的所有文件,TFS足够聪明,可以找出哪些更改,并且只将它们包含在服务器上记录的变更集中.

TFS通过比较签入前后文件内容的MD5哈希来完成此操作.

这都假设您的生成过程纯粹更新了同一组文件,即您永远不会遇到下一代不需要上一代生成的文件的情况(即您希望删除删除)对于该文件)或文件更改名称.

如果您的进程可能需要删除文件,那么您最好的选择是查看Team Foundation Power Tools命令(tfpt)并使用tfpt online命令,该命令仅检查已更改的文件,并且足够智能pend删除任何不再需要的文件或更改的名称和挂起添加.

祝好运,

马丁.


谢谢你,但是我们当时不想检查修改过的文件.在完成功能之前,不应检查已修改的功能,但应删除未修改的功能,以便开发人员可以查看更改.

7> evermeire..:

请注意,TFS撤消不会还原文件系统的"修改日期"值.这非常令人沮丧,特别是如果您使用robocopy等工具来同步远程计算机.即使在撤消签出后,如果您保存了文件,从而更新了"修改日期"值,则即使在撤消签出后,该更新的值也会保留.

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有