Как я могу использовать TFS для разработки iPhone? - PullRequest
6 голосов
/ 26 августа 2009

Я боролся с тем, как использовать TFS в качестве хранилища исходного кода для разработки для iPhone.

Мой босс никогда не разрешит мне использовать Subversion (или, не дай Бог, Perforce), поэтому я застрял в TFS.

Решение состоит в том, чтобы пойти и купить инструменты для подключения Mac к TFS, и я не пытаюсь здесь размещать рекламу, но Teamprise Client Suite для Mac OS X - это мост между Mac OS X и TFS.

Для стандартных проверок и рабочего процесса разработчика интеграция между Xcode и TFS отсутствует. Вы должны сделать все это вручную через клиент Teamprise Explorer.

Для сборок получается, что Automator и клиент командной строки Teamprise делают свое дело.

Есть ли какой-нибудь мост Xcode для TFS? Какую систему управления исходным кодом вы используете для разработки iPhone?

Ключом для меня является следующий скрипт bash, встроенный в рабочий процесс Automator.

% 1 = Локальная папка, в которую нужно потянуть код. % 2 = Имя проекта, из которого нужно получить данные.

В этом сценарии предполагается, что клиент командной строки Teamprise установлен в ~ / Teamprise

PATH="$PATH:~/Teamprise:~/Teamprise/lib"

cd "$1"
mkdir "$1/logs"

tf workspace -delete BuildScript -server:http://TFSServer -login:uname@domain,password >> $1/logs/wsdelete1.log

tf workspace -new BuildScript -server:http://TFSServer -login:uname@domain,password >> $1/logs/wscreate.log

tf workfold -map "$/TFSRoot" . -workspace:BuildScript -server:http://TFSServer -login:uname@domain,password >> $1/logs/workfold.log

tf get "$/TFSRoot/$2" -all -recursive -server:http://TFSServer -login:uname@domain,password >> $1/logs/get.log

tf workspace -delete BuildScript -server:http://TFSServer -login:uname@domain,password >> $1/logs/wsdelete2.log

#pump the tfs landing folder to the next step in the Automator script.
echo $1/Projects/$2

Ответы [ 3 ]

7 голосов
/ 26 августа 2009

Как заявляет Луи , в настоящее время XCode не предоставляет нам общедоступную модель плагина ( Teamprise ) для обеспечения интеграции TFS - это то, что мы хотели бы люблю делать.

Мы экспериментировали с парой хаков - например, притворяясь командной строкой Perforce и вместо этого общаясь с TFS, однако эти внутренние доказательства концепций пока не очень хорошо сработали, особенно в идеале Также необходимо как-то связать отслеживание рабочих элементов, чтобы вы могли связывать проверки с ошибками и т. д.

Сегодня большинство наших клиентов, которые используют Teamprise для общения с TFS из XCode, делают это либо с помощью автономного инструмента пользовательского интерфейса ( Teamprise Explorer ), либо выполняют действия Automator, которые вы предлагаете подключить tf командная строка .

Извините, что это не очень хороший опыт. Все, что я могу предложить, это сообщить об ошибке в Apple , чтобы предоставить модель подключаемого модуля для SCM-систем для подключения к XCode. Будем надеяться, что если у разработчиков будет значительный спрос, нам может повезти больше, чем просто нам, потребовавшим его.

3 голосов
/ 26 августа 2009

Если вам необходимо интегрироваться с сервером TFS, ваш лучший маршрут в настоящее время - использовать SVNBridge , а затем подключаться к мосту через встроенную функциональность XCververver.

Кроме того, первая установка сервера VisualSVN заняла у меня менее 15 минут для базовой установки и еще около десяти для настройки пользователей и получения сертификата SSL, подписанного корневым сертификатом нашей компании.Попробуйте, это было действительно легко.

3 голосов
/ 26 августа 2009

Хотя внутри Xcode используется система плагинов для поддержки различных систем контроля версий, она не является общедоступной или документированной. Помимо минимальной поддержки, такой как запуск некоторых сценариев командной строки, не существует поддерживаемого способа использовать любые системы контроля версий, кроме тех, которые поставляются с Xcode.

Вам следует файл ошибка с Apple, запрашивающей встроенную поддержку TFS, или поддерживаемая система плагинов VCS для Xcode.

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

...