如何在使用Perforce在Visual Studio中重命名文件时保留更改历史记录

brg*_*ner 5 c# version-control perforce visual-studio-2010 visual-studio

我知道有一些关于使用版本控制系统重命名文件的问题.但我没有找到特殊版本控制系统Perforce的满意答案.
我的问题:当我 Visual Studio中重命名时,是否有插件/解决方案可以保留我的C#代码文件的版本历史记录?

编辑:目前我正在使用VS2P4插件.

Edit2:我找到了一个更短的方法来重命名文件:

  1. 在资源管理器中打开包含文件夹(在解决方案资源管理器中右键单击在Windows资源管
  2. 选择文件,然后右键单击Perforce-> Show in P4V.
  3. 使用所选文件执行正常的重命名/移动操作.

这种情况比在P4V中的Perforce Depot中导航要短,直到找到正确的文件.但当然我正在寻找一种更短的方式.

编辑3:有没有办法在VS中直接进行"在P4V中显示" 文件选择

ran*_*sco 6

Perforce有一个新的Visual Studio插件即将推出测试阶段.它确实支持内置的Visual Studio重命名操作,并且也适用于Resharper.

直到它出来我害怕现有的解决方案有点笨拙.


brg*_*ner 0

我现在有一个很好的解决办法。只需处理宏事件 SolutionItemsEvents_ItemRenamed。
这是通过单击“工具”->“宏”->“宏 IDE”打开宏 IDE 来完成的。然后将以下事件处理程序添加到您的宏项目中:

    Private Sub SolutionItemsEvents_ItemRenamed(ByVal ProjectItem As EnvDTE.ProjectItem,
                                                ByVal OldName As String)
                Handles SolutionItemsEvents.ItemRenamed

        Dim process As System.Diagnostics.Process

        process.Start("p4", "move -k " & ProjectItem.Properties.Parent.Document.Path &
                      "\\" & OldName & " " & ProjectItem.Document.Path)
    End Sub
Run Code Online (Sandbox Code Playgroud)

看截图: 在此输入图像描述

如您所见,它只是调用“p4 move -k”。需要“-k”选项,因为重命名后旧文件已被删除,因此如果没有“-k”,Perforce 将抛出错误。“-k”使 Perforce 仅重命名服务器上的文件。

如果出现 Perforce连接错误,您需要添加定义连接的 P4CONFIG 文件。这是通过以下方式完成的:

  • 将文件p4config.txt添加到项目目录(或其任何父目录),内容如下:

    P4CLIENT=您的工作空间
    P4USER=用户
    P4PORT=p4server:1234

  • 设置环境变量 P4CONFIG=p4config.txt

现在,您可以通过任何方式更改文件(解决方案资源管理器项->重命名、解决方案资源管理器项->F2、ReSharper 的重命名文件以匹配类型名称、ReSharper 的类重命名(Ctrl+R,R),...)。

但请记住:如果我尝试在一次签入中编辑和重命名同一文件,或者在另一个人签出同一文件时重命名文件,则会遇到问题。