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 超级用户丢失

Perforce(AWZ 服务器 Lightsail Windows 实例) - 虚幻引擎源代码控制 - 移动 Perforce 仓库

安装perforce server

什么是 perforce 流?

Perforce中时间点的表示是啥