【问题标题】:Moving multiple files in TFS Source Control在 TFS 源代码管理中移动多个文件
【发布时间】:2010-10-20 17:18:30
【问题描述】:

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

现在,问题是我似乎无法通过 shell 或源代码管理资源管理器窗口选择和移动多个文件。我可以移动单个文件(通过右键单击 +“移动”),也可以移动整个文件夹(相同的操作),但是当我选择多个文件(在一个文件夹中)时,“移动”上下文项是灰色/禁用的。

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

谁能建议一个不太复杂的解决方法?

请在这里投票: https://connect.microsoft.com/VisualStudio/feedback/details/715041/support-moving-multiple-files-in-tfs-source-control-explorer 在这里 http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2271540-allow-to-move-more-than-one-file-at-once-in-tfs-so

【问题讨论】:

    标签: version-control tfs


    【解决方案1】:

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

    tf.exe move <olditem> <newitem>
    

    例子:

    tf.exe move "$/My Project/V*" "$/My Project/Archive"
    

    [编辑] 如 cmets 所述:move 是重命名的别名。这两个命令都会移动历史记录。

    【讨论】:

    • 这个other answer 是这里更好的一个。 move 参数未记录且不会移动历史记录,而另一个答案的 rename 参数 记录在案并且还会移动历史记录。
    • 作为记录,似乎在 TFS 2010 中,移动命令执行了重命名,从而移动了历史记录。
    • 来自 TF.EXE 帮助:您可以使用重命名命令或别名移动,将文件或文件夹移动到新位置。所以 move 和 rename 是一回事。
    • 另一件事,从映射路径运行它,使用 Visual Studio 的命令行。否则它会不知道工作空间并为您提供一种(无用的)方法来找出您拥有哪些工作空间(然后是什么??什么都没有...... - 所以从映射的目录运行它,你会没事的(为我)
    • "当 $/X/Y/Z 分配有工作文件夹映射时,无法重命名。"为什么这么难?只是移动它,让我们处理后果。
    【解决方案2】:

    使用 rename 而不是 move

    tf.exe rename "$/PROJECT/SharedLibs/Log4Net/*.*" "$/PROJECT/SharedLibs/3rdParty/"
    tf.exe rename "$/PROJECT/SharedLibs/ZipLib/*.*" "$/PROJECT/SharedLibs/3rdParty/"
    

    查看帮助文档:TFS Command Line Reference

    【讨论】:

    • 上面的链接抛出了一个 HTTP500;万一它停止运行,这里是 MSDN 的 TFS 命令行参考:msdn.microsoft.com/en-us/library/z51z7zy0.aspx
    • move 只是rename 的别名,所以使用哪个并不重要
    • 我使用我的 Visual Studio Online 的 TFS 源代码控制,例如namgivu.visualstudio.com。并且通过调用tf workspaces 列出工作区没有我的存储库映射的条目。
    • “当 $/X/Y/Z 分配有工作文件夹映射时,无法重命名。”还;不再允许使用通配符 *.*
    • "如果目标不是源代码管理中的文件夹,则不能将通配符指定为源。"我不知道那是什么意思。只需将其移至我指向的名称即可。
    【解决方案3】:

    Holan Jan 编写了一个 Visual Studio 扩展,它为源代码管理资源管理器中的多个文件提供“移动”功能(即使用 GUI),这是一种享受,还支持最新版本。

    对于 VS2019:https://marketplace.visualstudio.com/items?itemName=HolanJan.TFSSourceControlExplorerExtension-2019

    对于 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

    在后台,它确实使用了上面提到的相同命令,但使用起来更友好一些。列出的每个版本都需要 RTM 版本的 Visual Studio。

    【讨论】:

    • 太棒了!这是唯一对我有用的东西,使用 VS2010:visualstudiogallery.msdn.microsoft.com/…
    • 这个扩展太棒了——它在源代码管理浏览器中启用了一大堆附加功能,其中一次移动多个文件只是其中的一部分。我强烈推荐它。
    • 这就是答案。谢谢!
    【解决方案4】:

    将您要移动的所有文件粘贴到一个文件夹下,然后移动该文件夹。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-13
      • 1970-01-01
      • 2012-11-27
      • 2012-10-26
      • 1970-01-01
      • 2015-11-29
      • 2016-09-01
      相关资源
      最近更新 更多