在重构应用程序时,使用ReSharper在Visual Studio 2010中移动/重命名源文件是一个巨大的帮助。 Perforce源代码控制集成无法处理这些类型的更改,而不将其视为不相关的“从此处删除”“添加到此处”,这会打破历史链。我的问题是:
谢谢!
答案 0 :(得分:3)
这是其他源控制系统的失败,而不仅仅是Perforce。 TFS也遇到同样的问题。
答案 1 :(得分:2)
新的Perforce插件P4VS在管理Visual Studio中移动/重命名的文件方面做得更好。如果您只是尝试过P4SCC而感到失望,请尝试P4VS。我发现它确实是"对"在大多数情况下,P4SCC没有做到这一点。
答案 2 :(得分:1)
您可能需要查看Git。它没有像其他修订控制系统那样的特定于文件的挂起,因为修订历史记录不依赖于特别命名的文件。每个提交都是前一个代码的差异,而不管其中的文件。
要与Visual Studio集成,您可能需要查看Git Extensions。对于Explorer shell集成,请参阅TortoiseGit。
答案 3 :(得分:1)
使用Perforce 2009.2及更高版本,有一个p4移动命令。它并不完美,您保留文件的历史记录,但选择文件夹不会在p4v中显示历史记录。
答案 4 :(得分:1)
您可以通过查看文件修订图来查看完整的历史记录。
要采取的步骤是: 1)继续进行重命名 2)右键单击并查看新命名文件的历史记录 3)它仅显示当前版本,但是,如果右键单击该版本并选择修订图,则可以看到包含删除/添加发生链接的完整历史记录。 4)您可以在图表上选择节点并执行差异以查看不同文件之间的更改。
这是一个额外的步骤,并不是很明显,但它适用于我。
答案 5 :(得分:0)
不,不是我知道的。尝试联系Perforce支持。
我不会这样。
确实不是另一个源代码控制产品,但您可以尝试VS2P4而不是P4SCC,这似乎与ReSharper的重命名类重构一起使用。我前段时间进行了转换并且非常喜欢它,即使它有一套自己的怪癖。可通过VS2010 Extension Manager进行安装。
答案 6 :(得分:0)
如果你真的需要保留这些信息,这是一个复杂的解决方案:
注意我没试过这个,因为我没有Resharper,但Perforce-> Mercurial-> Perforce链接适用于Perfarce,而VisualHg远远优于我使用的其他SCC插件。所以它可能值得一试。您可以先快速退出Resharper / VisualHg链接,如果可以,则执行Perforce-> Mercurial步骤。
答案 7 :(得分:0)
我尝试使用ReSharper的上下文帮助“重命名文件以匹配类型名称”VS2P4。而且......
它不起作用。它显示了对话框
如果我点击“继续更改”,它确实会发出警告所说的内容。它删除并添加文件,而不通知Perforce。只检出项目文件。
答案 8 :(得分:0)
FWIW,今天发布的VS2P4版本1.74具有重大的性能改进,特别是对于包含数千个文件的解决方案。
答案 9 :(得分:0)
我已经编写了一个宏来为Visual Sudio的Rename事件添加“p4 move -k”动作。 见answer of "How to keep change history while renaming files in Visual Studio using Perforce"。
使用该宏,您可以在Visual Studio中至少执行正确的文件重命名 我认为无法正确地重命名类和文件(例如ReSharper),因为在Perforce中无法在一个更改列表中重命名和更改文件。