适用于XCode4的Perforce Checkout宏

时间:2011-04-03 20:36:42

标签: xcode macros perforce

我想在XCode 4中设置一个宏来检查Perforce中的当前文件。我怎样才能做到这一点?我将perforce与我的项目集成,并且不希望这样做。这在Visual Studio中非常简单,但我不知道XCode等效。

4 个答案:

答案 0 :(得分:4)

刚刚在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

答案 1 :(得分:2)

  1. 确保'/ usr / local / bin /'中安装了'p4'命令行工具。
  2. 验证是否正确配置了Perforce环境变量。我在每个客户端工作区的根目录下使用'perforce.rc'文件,其中包含客户端名称(P4CLIENT)和端口(P4PORT)。不要忘记P4USER,P4PASSWD,P4CONFIG等......
  3. 在〜/ bin文件夹中创建以下脚本,并确保设置权限以使其可执行(755应该可以使用)。
  4. 转到Xcode中的首选项并选择“行为”。
  5. 向下滚动至“解锁文件”
  6. 向下滚动一些,然后选择“运行”旁边的复选框
  7. 选择“选择脚本...”并将其指向以下脚本:
  8. 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此脚本中的失败。

答案 2 :(得分:1)

我能想到的最接近的是服务,所以看起来Xcode 4 Perforce Services可以完成这项工作。不过,我还没有尝试过。我偶然发现了this question

答案 3 :(得分:1)

试图让XCode与Perforce一起工作令人抓狂。以下是我提出的解决方案:

  • 快速设置
  • 容易燃烧到你的肌肉记忆中,所以你不必考虑检查文件
  • 根本不需要任何鼠标

一次性设置如下:

  1. Decimus Software.
  2. 下载并安装免费的“DTerm”应用
  3. 确保已安装Perforce命令行实用程序。在终端窗口提示符下键入“p4”,看它是否识别此命令。如果没有,您需要转到Perforce's website并查找并下载他们当前称为“Perforce命令行客户端(P4)”的内容。没有安装人员;只需将它从您的浏览器直接保存到/usr/bin(或其他)并在其上执行chmod + x。有关官方设置说明,如果您需要执行任何自定义环境变量技巧,请参阅this tech note
  4. 完成此操作后,假设您正在使用XCode,并且您正在查看要检出的源代码文件。这是严格的:

    1. 让文件显示在活动的XCode编辑器中
    2. 点击Shift Command Enter以获取DTerm窗口
    3. 键入p4 edit,然后点击Shift Command V以粘贴活动文件的文件名,然后点击返回
    4. Perforce检出文件,DTerm显示状态/错误。
    5. 点击'escape'以关闭DTerm窗口
    6. 开始在XCode中对文件进行更改。 XCode可能(错误地)说该文件是只读的,因为它是愚蠢的,并且不知道它是从只读到读写,所以你必须点击允许编辑。我起初并不相信这一点并且多次检查了几次,但现在我一直认为它做的是正确的。
    7. 我有一段时间没有这样做,所以如果你遇到任何故障请告诉我,我会在这里更新我的信息,以尽可能轻松。但除此之外,这是我找到的最佳解决方案。