在TFS源代码管理中移动多个文件

Rob*_*obS 168 version-control tfs tfs2008

我正在使用Team Foundation Server 2008(SP 1),我需要将多个文件从一个文件夹移动到另一个文件夹(以保留文件历史记录).除了Team Explorer(使用SP 1),我还安装了最新的TFS Power Tools(2008年10月)(用于Windows Shell集成).

现在,问题是我似乎无法通过shell或Source Control Explorer窗口选择和移动多个文件.我可以移动单个文件(通过右键单击+"移动"),我可以移动整个文件夹(相同的操作),但是当我选择多个文件(在文件夹中)时,"移动"上下文项将变灰/禁用.

有谁知道这是否可能..如果没有..为什么不!?

任何人都可以建议一个不太复杂的解决方法吗?

请在这里投票: https ://connect.microsoft.com/VisualStudio/feedback/details/715041/support-moving-multiple-files-in-tfs-source-control-explorer ,在这里 http://visualstudio.uservoice. COM /论坛/ 121579-视觉工作室/建议/ 2271540-允许到布展更比一个文件-在-一次在TFS-所以

在此输入图像描述

在此输入图像描述

Kur*_*out 141

使用Visual Studio命令行中的tf.exe工具 - 它可以处理通配符:

tf.exe move <olditem> <newitem>
Run Code Online (Sandbox Code Playgroud)

例:

tf.exe move "$/My Project/V*" "$/My Project/Archive"
Run Code Online (Sandbox Code Playgroud)

[编辑]如评论中所述:move是重命名的别名.两个命令都移动历史.

  • 为了记录,似乎在TFS 2010中,move命令执行重命名以移动历史记录. (12认同)
  • 从TF.EXE帮助:您可以使用重命名命令或别名移动,将文件或文件夹移动到新位置.所以移动和重命名是完全相同的. (10认同)
  • 这[其他答案](http://stackoverflow.com/questions/770726/moving-multiple-files-in-tfs-source-control/5337504#5337504)是这里最好的一个.`move`参数没有文档记录,也没有移动历史记录,而另一个答案的`rename`参数*是*记录的,也可以移动历史记录. (7认同)

Tit*_*wan 56

使用重命名而不是移动

tf.exe rename "$/PROJECT/SharedLibs/Log4Net/*.*" "$/PROJECT/SharedLibs/3rdParty/"
tf.exe rename "$/PROJECT/SharedLibs/ZipLib/*.*" "$/PROJECT/SharedLibs/3rdParty/"
Run Code Online (Sandbox Code Playgroud)

请查看帮助文档:TFS命令行参考

  • `move`只是`rename`的别名,所以你使用它并不重要 (12认同)

Sid*_*mes 36

Holan Jan编写了一个Visual Studio扩展,它为源代码控制资源管理器中的多个文件提供"移动"(即使用GUI).它可以支持最新版本.

对于VS2017:https://marketplace.visualstudio.com/items itemName = HolanJan.TFSSourceControlExplorerExtension-18397

对于VS2015:https://marketplace.visualstudio.com/items itemName = HolanJan.TFSSourceControlExplorerExtension-13343

对于VS2013:https://marketplace.visualstudio.com/items itemName = HolanJan.TFSSourceControlExplorerExtension-11508

对于VS2012:https://marketplace.visualstudio.com/items itemName = HolanJan.TFSSourceControlExplorerExtension-8896

在引擎盖下它确实使用了上面提到的相同命令,但它使用起来更友好一些.