我有一个eclipse同步项目,我在我的Windows机器上完成工作,然后在linux构建服务器上同步和编译它。但是,Windows工作区连接到perforce,而linux工作区则没有。问题是当Eclipse同步这两者时,权限会在linux端搞砸,这样我就无法执行通常在构建期间执行的某些shell脚本。我有的解决方法是在执行构建之前以某种方式chmod所有* .sh文件,但我宁愿让perforce知道这两个地方(这样我也可以从linux端或windows端提交)。出于性能原因,我无法在远程构建服务器上运行eclipse,因此这是我找到的唯一解决方案。此外,当我尝试为linux端设置第二个工作区时,它给了我错误说“无法破坏X”。我认为主要的问题是我在这里处理某种权限问题。
答案 0 :(得分:6)
我可能找到了答案。根据perforce documentation:
默认情况下,您只能在Host:字段指定的计算机上使用工作区。如果要在具有不同平台的多台计算机上使用相同的客户端工作区,请删除Host:条目并在客户端规范中设置AltRoots:字段。您最多可以指定两个备用客户端工作空间根。必须在将使用它们的所有计算机上显示这些位置,例如通过NFS或Samba挂载。 Perforce将当前工作目录与主Root进行比较:首先,然后针对两个AltRoots:如果指定。使用与当前工作目录匹配的第一个根。如果没有根匹配,则使用主根。 注意 如果在任何客户端根目录中使用Windows目录,请将Windows目录指定为主客户端Root:并在AltRoots:字段中指定其他工作空间根目录。 在以下示例中,如果用户bruno的当前工作目录位于/ usr / bruno下,则Perforce使用UNIX路径作为其客户端工作空间根目录,而不是c:\ bruno_ws。此方法允许bruno为UNIX和Windows开发使用相同的客户端工作空间规范。 客户:bruno_ws 所有者:布鲁诺 描述: 由布鲁诺创建。 Root:c:\ bruno_ws AltRoots: 的/ usr /布鲁诺/ 要找出哪个工作空间根目录有效,请发出p4 info命令并检查客户端root:字段。 如果您在不同平台的同一工作区中编辑文本文件,请确保您使用的编辑器和设置保留行结尾。有关跨平台设置中的行结尾的详细信息,请参阅Perforce系统管理员指南。
答案 1 :(得分:2)
答案 2 :(得分:0)
我在Perforce中设置了备用根目录:
参考文献: