XCode4的Perforce Checkout Macro [重复]
Posted
技术标签:
【中文标题】XCode4的Perforce Checkout Macro [重复]【英文标题】:Perforce Checkout Macro for XCode4 [duplicate] 【发布时间】:2011-04-03 20:36:42 【问题描述】:我想在 XCode 4 中设置一个宏来从 Perforce 中检出当前文件。我怎样才能做到这一点?我确实没有将 perforce 集成到我的项目中,并且不希望这样做。这在 Visual Studio 中非常简单,但我不知道 XCode 等价物。
【问题讨论】:
【参考方案1】:刚刚在 Perforce.com 上发现了这一点,作为他们完成这项工作的手段。我试过了,还不错。
http://answers.perforce.com/articles/KB/2997
根据评论,它也适用于 Xcode 5。
现在它已经在 Xcode 6 中进行了测试和工作!
编辑:
如果这不起作用,并且您使用的是 OS X Mavericks,则此人修复了脚本以继续工作。只要确保脚本正确引用 p4 即可。我不得不将它从 /usr/local/bin/p4
更改为 /usr/bin/p4
。
http://forums.perforce.com/index.php?/topic/2830-xcode-501-x-mavericks-perforce-integration-not-working/#entry11319
【讨论】:
升级了这个版本,因为“官方”Perforce 脚本包含一个消息对话框,告诉您是否有问题。同样值得一提的是,这在 XCode5 中也可以正常工作。 链接似乎已失效。【参考方案2】:-
确保“p4”命令行工具安装在“/usr/local/bin/”中。
确认您的 Perforce 环境变量配置正确。我在每个客户端工作区的根目录中使用了一个“perforce.rc”文件,其中包含客户端 (P4CLIENT) 和端口 (P4PORT) 的名称。不要忘记 P4USER、P4PASSWD、P4CONFIG 等...
在您的 ~/bin 文件夹中创建以下脚本,并确保权限设置为可执行(755 应该可以工作)。
转到 Xcode 中的首选项并选择“行为”。
向下滚动到“解锁文件”
向下滚动并选中“运行”旁边的复选框
选择“选择脚本...”并将其指向以下脚本:
xcodeunlock.sh
#!/bin/bash
# Xcode4 doesn't setup the environment
source ~/.bashrc
# Delete the URL part from the file passed in
fn=$BASH_ARGV#file://localhost
echo "fn=" $fn
if [ -a $fn ]; then
res=$(/usr/local/bin/p4 edit $fn)
# TODO: Report the status back to the user in Xcode
# This output goes to the console.
echo $res
else
echo "FnF" $fn
fi
一旦设置正确,在 Xcode 中解锁文件应运行此脚本并尝试签出文件。不幸的是,任何输出都会转到“/var/log/system.log”。我不确定如何通知 Xcode 4 此脚本失败。
【讨论】:
【参考方案3】:试图让 XCode 与 Perforce 一起工作真是令人抓狂。这是我想出的解决方案:
快速设置 轻松融入您的肌肉记忆,因此您无需考虑签出文件 根本不需要任何鼠标一次性设置如下:
-
从Decimus Software. 下载并安装免费的“DTerm”应用程序
确保您已安装 Perforce 命令行实用程序。在终端窗口提示符下键入“p4”,看看它是否识别此命令。如果没有,您需要转到Perforce's website 并找到并下载他们目前称之为“Perforce 命令行客户端 (P4)”的东西。没有安装程序;只需将其从浏览器直接保存到
/usr/bin
(或其他任何内容)并对其执行 chmod +x 即可。有关官方设置说明,如果您需要做任何自定义环境变量技巧,请参阅this tech note。
完成此操作后,假设您在 XCode 中并且正在查看要签出的源代码文件。这是rigamarole:
-
让文件显示在活动的 XCode 编辑器中
点击
Shift Command Enter
获取 DTerm 窗口
输入p4 edit
,然后点击Shift Command V
粘贴活动文件的文件名,然后点击返回
Perforce 会检出文件,DTerm 会向您显示状态/错误。
点击“escape”关闭 DTerm 窗口
开始在 XCode 中对文件进行更改。 XCode 可能(错误地)说该文件是只读的,因为它很愚蠢并且不知道它是从只读变为读写的,因此您必须点击允许编辑。起初我不相信它,并仔细检查了几次,但现在我盲目相信它在做正确的事情。
我已经有一段时间没有设置它了,所以如果您遇到任何故障,请告诉我,我会在此处更新我的信息,以使其尽可能轻松。但除此之外,这是我找到的最佳解决方案。
【讨论】:
以上是关于XCode4的Perforce Checkout Macro [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Jenkins Perforce 插件未从 Perforce 签出代码
Perforce(AWZ 服务器 Lightsail Windows 实例) - 虚幻引擎源代码控制 - 移动 Perforce 仓库