【发布时间】:2011-07-14 19:52:06
【问题描述】:
xcode4 不支持 Perforce?
我在 xcode4 中添加了一个存储库。只有 subversion 和 Git 可供选择。
如何添加 perforce 存储库?
谢谢。
【问题讨论】:
xcode4 不支持 Perforce?
我在 xcode4 中添加了一个存储库。只有 subversion 和 Git 可供选择。
如何添加 perforce 存储库?
谢谢。
【问题讨论】:
还需要注意的是,Preferences/Behaviors 中有一个设置可以将行为添加到特定操作。其中之一是 Unlock File,它可以绑定到一个 shell 脚本,就像这里的那个:
#!/bin/sh
RESULT=`/opt/local/bin/p4 edit ${1#file://localhost} 2>&1`
SHRESULT=$?
while [ $SHRESULT -ne 0 ]
do
SCRIPT="tell application \"XCode\" to display dialog \"$RESULT\" buttons {\"Try again\",\"Cancel\"} default button 1"
osascript -e "$SCRIPT"
if [ $? -ne 0 ]
then
break
fi
RESULT=`/opt/local/bin/p4 edit ${1#file://localhost} 2>&1`
SHRESULT=$?
done
exit $SHRESULT
为了在编辑器需要开始进行更改时调用 p4 编辑。
已经更新,如果 p4 编辑失败,则会显示一个对话框。如果您点击“再试一次”,这将重复尝试,并在您点击“取消”时停止,如果您在第一种情况下碰巧登录过期或第二次没有连接到您的服务器,这将特别有用.
不幸的是,似乎没有检查退出代码以确保解锁成功,并且在这种情况下 Xcode 似乎将文件更改为 r/w,因此当您收到错误消息时要小心要么让编辑成功,要么稍后编辑文件。
显然,那只能解决解锁/编辑文件的问题,但我发现我还是喜欢用p4v提交。
多个客户端/工作区
对于那些可能在同一台机器上使用多个客户端的人(我们现在更多地使用 Perforce 的 Streams),确保使用正确的客户端可能具有挑战性处理您正在编辑的文件。
对我们来说,我们发现最简单的解决方法是使用 P4CONFIG 来表示特定的 perforce 配置文件。在我们的例子中,我们通常使用.p4config-<user/host>,这样我可以拥有.p4config-laptop-gaige,并在不干扰.p4config-desktop-gaige的情况下选择签入。在.p4config 文件中,我们设置P4CLIENT,这样可以确保p4 命令知道要使用哪个流。
【讨论】:
我拼凑了几个 Automator 服务,可以让您在 Xcode 4 中当前打开的文件上绑定 p4 编辑/p4 添加的热键。这并不理想,但它比切换到终端或 p4v 好。
【讨论】:
对 perforce 的支持已从 Xcode 4 中正式删除。除非他们重新添加它,否则您必须想办法解决其他问题。
【讨论】:
我在this question 中提到的技术也适用于 Perforce。事实上,这是我最初使用 DTerm 的地方。
自从 Xcode 3.0 中对 Perforce 的支持遭到严重破坏以来,我多年来一直使用 DTerm 来检查文件并获取它们的状态。
【讨论】: