在Perforce中,可以将文件夹重命名为相同名称但大小写不同吗?

时间:2020-03-06 14:43:13  来源:igfitidea点击:

我可以在Perforce中将文件夹从// depot / FooBar /重命名为// depot / Foobar /吗?

我已经通过将// depot / FooBar /重命名为// depot / Temp /到// Depot / Foobar /进行了尝试,但是最终结果与// depot / FooBar /相同。

解决方案

我猜它对待文件和文件夹是一样的。

对于文件:
这取决于(我们是否拥有Windows或者Unix服务器)。我们的Windows perforce服务器(版本为我们的Java代码)存在这个问题,偶尔会有人签入大小写问题的文件(这是Java,因此会导致编译错误)。解决此问题的唯一方法是清除文件,然后使用正确的大小写重新提交。

一旦将其放入Perforce中,情况将保持不变。正如Johan所提到的,我们可以抹去,正确设置名称,然后重新添加。但是,有一点陷阱。

如果其他任何人(运行Windows)已经同步了大小写错误的版本,那么当他们再次同步正确的版本时,它将不会在其PC上更改大小写。这是Windows文件系统承认大小写的特性,但从根本上来说仍与大小写无关。

如果许多用户已经同步,并且也无法方便地将其从客户端中删除(并从他们的计算机中删除文件夹),那么我们可以求助于一种叫做"检查点手术"的暗淡的Perforce技术。它不是为胆小的人准备的,但是我们可以这样做:

  • 停止服务器,执行检查点。
  • 使用我们喜欢的可以处理数兆字节文件的文本编辑器,搜索并用新的旧案例名称替换所有出现的案例名称。我们当然也可以使用脚本。
  • 重播检查点文件以重新创建Perforce数据库元数据。
  • 重新启动服务器。

这将透明地影响所有用户客户端规范,因此,当他们同步时,他们将得到正确的保护,就像是魔术一样。

这听起来像毛茸茸的,但我必须在做之前,而且只要我们保重,备份,进行试运行等,一切都应该可以。

我不确定目录,但是我们遇到了文件问题。要解决此问题,我们必须删除文件,提交更改,然后p4以正确的大小写添加文件并提交第二个更改。完成此操作后,已对不正确的大小写文件进行同步的Unix用户必须进行p4同步,然后物理删除该文件(因为p4不会更新大小写),然后对文件进行p4同步-f。

我们的服务器在Windows上,因此可能有所不同。

也许不再需要了,但这是有关在Windows和Unix上更改文件大小写的官方Perforce HowTo:http://answers.perforce.com/articles/KB/3448/?q=change+file+case