“协调离线工作”在 Perforce 中对我不起作用
在适用于 32-bin Windows 的 Perforce Visual Client 2009.1 版本中,“协调离线工作”选项会执行奇怪的操作。在应该显示“本地文件不在仓库中”的中间框中,我什么也没得到。我所看到的是,第一次协调文件夹时,看起来好像是用“不在仓库中的本地文件”填充了该框,因为列表在我眼前快速闪现。然后突然之间,列表很快就消失得无影无踪,只剩下一个空列表。有谁知道如何获得此功能来显示我尚未添加的文件?似乎“修改的文件”和“工作区中缺少库文件”功能运行良好。
另外,顺便说一下,“协调离线工作”在 2009 年测试版中似乎运行良好。
In the 2009.1 version of Perforce Visual Client for 32-bin Windows, the "Reconcile Offline Work" option does weird things. In the middle box where the "Local files not in depot" should be displayed, I never get anything. What I do see is that the first time I reconcile a folder, it looks like perforce is filling the box with the "local files not in depot" because a list flashes quickly before my eyes. Then all of a sudden, the list quickly disappears into thin air and I'm left with an empty list. Does anyone know how I can get this feature to show me the files that I have not yet added? It seems like the "Modified files" and "Depot files missing from workspace" features work fine.
Also, as a side note, "Reconcile Offline Work" seemed to work fine in the 2009 beta version.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我有完全相同的问题。
对我来说,解决方案晦涩难懂但微不足道。
我只是将客户端工作区的根目录从“C:\depot”更改为“c:\depot”。
是的,没错,我所做的只是将驱动器号从大写更改为小写。而且,是的,我验证了将驱动器号更改回大写再次破坏了它,并且再次将驱动器号更改回小写再次修复了它。所以,这不仅仅是巧合。
这几乎肯定是 Perforce 协调功能中的一个错误。
如果您仔细查看协调路径,即使您指定了大写驱动器号,它们也会显示为小写驱动器号,所以我的猜测是匹配算法只是对文件路径进行区分大小写的比较。这适用于除驱动器号之外的所有内容。他们的文件列表器可能总是将驱动器号设置为小写,因此客户端工作区根目录上的大写驱动器号永远不会匹配。
I had exactly the same problem.
The solution for me was obscure but trivial.
I simply changed the root directory of my client workspace from "C:\depot" to "c:\depot".
Yes, that's right, all I did was to change the drive letter from uppercase to lowercase. And, yes, I verified that changing the drive letter back to uppercase breaks it again and that changing the drive letter back to lowercase again fixes it again. So, this is not just a coincidence.
This is almost certainly a bug in the Perforce reconcile feature.
If you look closely at the reconcile paths, they all appear with a lowercase drive letter, even if you specify an uppercase drive letter, so my guess is that the matching algorithm is simply doing a case-sensitive comparison on the file paths. This is appropriate for everything but the drive letter. Their file lister probably always sets the drive letter to lowercase, so an uppercase drive letter on your client workspace root will never match.
这当然有时会发生。如果我以某种方式更改工作区视图和/或将 P4V 升级到新版本,我似乎可能会出现该问题。因此,过去对我有用的解决方案是丢弃有问题的工作区并创建一个新的工作区(有时也必须选择不同的名称)。
也许删除用户主目录中的 .p4qt 和 .p4scc 也有帮助。
顺便说一句,我前段时间确实与 Perforce 支持人员就相关主题进行了交谈,并且由于此类问题很难重现,因此他们无能为力。
This certainly sometimes happens. I seems the problem is likely to occur if I change the workspace view somehow and/or upgrade P4V to new version. So the solution which worked for me in the past was to trash the problematic workspace and create a new one (sometimes have to choose a different name too).
Perhaps deleting the .p4qt and .p4scc in your user home directory can help too.
Incidently, I did have a conversation with Perforce support on the related subject some time ago, and as the problems like this are very difficult to reproduce, therefore there wasn't much that they could do.
我发现 p4 reconcile 中的长文件名问题
来自基本目录
p4 reconcile ./...
从未返回。
但如果我进一步向上 cd 树
cd 组件
p4 协调./...
有效。
我最终能够通过逐步增加目录来协调整个树,具体取决于您的路径有多长,这可能对您有用。
I have found issues with long filenames in p4 reconcile
from the base direectory
p4 reconcile ./...
never returned.
but if I cd further up the tree
cd components
p4 reconcile ./...
worked.
I was able to reconcile the whole tree eventually by stepping up directories, depending on how much longer your paths are this might work for you.
我有一个实例,其中 p4v 显示文件已更改的视觉指示器,并且执行 diff 适当地显示了更改,但在任何父目录上解析都没有显示它们。
这些文件已通过使用统一包安装降级库来更改,并且它们的“上次修改”日期早于之前提交的文件。在 OSX 上,对相关目录中的所有文件运行
touch
命令会更新其所有修改时间,然后协调工作。I had an instance where p4v showed the visual indicator that files had changes, and doing a diff showed the changes appropriately, but resolve on any parent directory didn't show them.
Those files had been changed by downgrading a library using a unity package install, and their "last modified" date was older than the previously submitted files. On OSX running the
touch
command on all the files in relevant directories updated all their modified times and reconcile worked after that.