将包重构为perforce中的camel case,旧包未删除且已在存储库中重复

时间:2015-11-12 15:36:51

标签: windows refactoring perforce

我有一个错误命名的包,全是小写但应该是camelCase。我使用IntelliJ来重构它,测试它仍然有效并将其推送到perforce存储库。

Perforce将旧的小写包中的类标记为更新,而不是删除并添加到新包中,因此我的perforce对于该包中的所有类看起来像这样:

//...perforce repo..../src/main/java/thepackage/MyClass.java
//...perforce repo..../src/main/java/thePackage/MyClass.java

当Jenkins尝试构建时,它会收到编译问题,说明每个类都是重复的。

Windows对文件夹不区分大小写,因此无法检出两个文件结构并且只获得较新的包,因此我无法将旧文件标记为删除。标记恢复或回滚的更改也会导致错误,因为旧包中的类在本地不可用。

1 个答案:

答案 0 :(得分:2)

我通过执行以下操作解决了这个问题:

  • 不在perforce中检查它们,删除所有被标记为重复的新类(或者只删除新的camelCase包)
  • 使用perforce Windows客户端"Reconcile Offline Work..."
  • 这是奇怪的一点,在弹出窗口中,您将同时拥有新旧包版本(以及相同的类),并标记为删除。取消选中camelCase存储库中的所有类,然后单击“确定”。
  • 现在您的待定更改列表将包含旧包中的所有类。提交此。
  • 拉出最新版本的perforce repo以重新下载刚刚删除的类,这将恢复camelCase包中的类。