Макрос принудительной проверки для XCode4


Я хотел бы настроить макрос в XCode 4 для извлечения текущего файла из Perforce. Как я могу это сделать? Я неНе волей-неволей интегрировался с моим проектом и не хочу этого делать. Это довольно просто в Visual Studio, но я не знаю эквивалента XCode.

4 6

4 ответа:

Самое близкое, что я могу придумать, - это сервис, поэтому похоже, что Xcode 4 Perforce Services может сделать эту работу. Хотя лично я его не пробовал. Я наткнулся на него в этом вопросе .

Только что наткнулся на это в 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. убедитесь, что средство командной строки' p4 'установлено в файле'/usr/local/bin/'.
  2. убедитесь, что переменные среды Perforce настроены правильно. Я использую 'волей-неволей.rc ' файл в корне каждого рабочего пространства клиента с именем клиента (P4CLIENT) и порта (P4PORT). Не забывайте о P4USER, P4PASSWD, P4CONFIG и т. д...
  3. Создайте следующий скрипт в папке ~/bin и убедитесь, что разрешения установлены так, чтобы он был исполняемым (755 должен работать).
  4. вперед к настройкам в Xcode и выберите "поведение".
  5. прокрутите вниз до "Unlock file"
  6. прокрутите вниз еще немного и установите флажок рядом с " Run "
  7. Выберите " Выбрать Сценарий..."и укажите на следующий сценарий:

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.бревно". Я не знаю, как уведомить Xcode 4 о неудаче в этом сценарии.

Это сводит с ума, пытаясь заставить XCode работать с силой. Вот решение, которое я придумал:

  • быстро настраиваемся
  • легко записать в мышечную память, так что вам не нужно думать, чтобы проверить файлы
  • не требует никакого моушинга вообще

Одноразовая настройка следующим образом:

  1. Загрузите и установите бесплатное приложение "DTerm" от Decimus Software.
  2. убедитесь, что у вас установлена утилита командной строки Perforce. Введите "p4" в окне терминала и посмотрите, распознает ли он эту команду. Если нет, вам нужно зайти на веб-сайт Perforce и найти и загрузить то, что они в настоящее время называют "клиентом командной строки Perforce (P4)". Там нет установщика; просто сохраните его из браузера прямо в /usr/bin (или что-то еще) и сделайте chmod +x на нем. Для официальных заметок по настройке, а также если вам нужно сделать какие-либо пользовательские трюки с переменными окружающей среды, пожалуйста, смотрите эту техническую заметку.

Как только вы закончите допустим, вы находитесь в XCode и просматриваете файл исходного кода, который хотите проверить. Вот канитель:

  1. есть файл, отображаемый в активном редакторе XCode
  2. Нажмите Shift Command Enter, чтобы получить окно DTerm
  3. введите p4 edit, а затем нажмите Shift Command V, чтобы вставить имя файла активного файла, и нажмите return
  4. Perforce проверяет файл, и DTerm показывает вам состояние / ошибки.
  5. Нажмите "escape", чтобы закрыть окно DTerm
  6. начните вносить изменения к файлу в XCode. XCode может (ошибочно) сказать, что файл доступен только для чтения, потому что он тупой и не знает, что он был сделан из read-only для чтения-записи, поэтому вам нужно нажать разрешить редактирование. Сначала я этому не поверил и несколько раз перепроверял, но теперь у меня есть слепая вера в то, что это правильно.

Я не настраивал это в течение некоторого времени, поэтому, пожалуйста, дайте мне знать, если вы столкнетесь с какими-либо сбоями, и я обновлю свою информацию здесь, чтобы сделать это как можно безболезненнее. Но в противном случае, это лучшее решение, которое я нашел.