- 有没有办法强制Perforce插件一开始就做正确的事情?
- 如果没有,是否有任何外部方式可以在事后进行调和? (Perforce是否有任何识别已移动、可能已重命名并且有限内容更改的文件的方法?)
- 是否有其他源代码控制产品可以透明地处理此类问题?
这不仅是Perforce的一个缺陷,其他源代码控制系统也存在此问题。TFS也有相同的问题。
p4 move
,Perforce将维护历史链接。但我敢打赌,ReSharper、P4SCC或其他重构工具不知道为重命名的文件调用该命令的足够信息。 - JasonMArcher新的Perforce插件P4VS在Visual Studio中更好地管理了移动/重命名文件。如果您尝试过P4SCC并感到失望,请尝试P4VS。我发现它在P4SCC无法做到的大多数情况下都做得很“对”。
从Perforce 2009.2版本开始,有一个p4 move命令。它并不完美,因为文件的历史记录仍然保留,但在p4v中选择一个文件夹时无法显示历史记录。
您可以通过查看文件修订历史记录来查看完整的历史记录。
操作步骤如下: 1)进行重命名 2)右键单击并查看新命名文件的历史记录 3)它只显示当前版本,但是,如果您右键单击该版本并选择修订图,则可以查看具有删除/添加发生位置链接的完整历史记录。 4)您可以在图表上选择节点并执行差异以查看不同文件之间的更改。
这是一个额外的步骤,不太明显,但对我很有效。
如果您确实需要保留此信息,以下是一个复杂的解决方案:
不,据我所知没有。尝试联系Perforce支持。
我不会选择那个方向。
不是另一个源代码控制产品,但你可以尝试使用VS2P4代替P4SCC,它似乎可以与ReSharper的重命名类重构一起使用。我在一段时间前进行了转换,并且真的很喜欢它,尽管它有自己的怪癖。可以通过VS2010扩展管理器安装。
我编写了一个宏,用于将“p4 move -k”操作添加到Visual Studio的重命名事件中。 请参见{{link1:“如何在使用Perforce的Visual Studio中重命名文件时保留更改历史记录”的答案}}。
有了这个宏,您可以在Visual Studio中至少正确地重命名文件。
我认为不可能同时正确地重命名类和文件(例如ReSharper所做的那样),因为在一个更改列表中重命名和更改文件是不可能的。
如果我点击“继续更改”,它确实会执行警告所说的操作。它会删除和添加文件,而不通知Perforce。只有项目文件被签出。
顺便提一下,今天发布的VS2P4版本1.74具有重大性能改进,特别是对于包含数千个文件的解决方案。