Какая система SCM для Xcode? - PullRequest
       12

Какая система SCM для Xcode?

21 голосов
/ 11 января 2009

Я разрабатываю приложение для Mac как небольшая команда (я + другой человек). Мы находимся в разных городах и начали осознавать необходимость надежного управления источниками.

Никто из нас не имеет никакого опыта в этом, и мы оба относительно новички в Cocoa / Obj-C / Xcode (но у нас есть знания C).

У кого-нибудь есть рекомендации по выбору системы SCM? Я понимаю, что многие люди используют Subversion, которая также поддерживается в Xcode 3.1. У кого-нибудь есть опыт использования Subversion через Xcode? Или лучше выбрать автономную альтернативу графического интерфейса, например, версии?

Благодарен за любой вклад в это.

Грегор Томашевич, Швеция

Обновление / личный опыт: Начиная с этого поста мы попробовали версии и Cornerstone (оба из которых являются SVN GUI-клиентами), а также встроенную поддержку Xcodes для SVN. Мы не были особенно довольны версиями, у которых, казалось, были некоторые проблемы с фиксацией неверсионных файлов / файлов сборки. Встроенная поддержка SVN в Xcode работает довольно хорошо, хотя, вероятно, у нее есть ограничения, с которыми мы до сих пор не сталкивались. Cornerstone прост в использовании и мощен, и, похоже, не страдает от проблем, с которыми мы столкнулись при работе с версиями.

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

Для чего стоит (и только с днями оценки) Cornerstone кажется несколько лучшей альтернативой, хотя для более простого SCM Xcode тоже работает хорошо.

Спасибо за все комментарии.

Ответы [ 10 ]

20 голосов
/ 11 января 2009

Xcode поддерживает только Subversion, Perforce и CVS. Однако существуют также распределенные системы контроля версий, такие как Mercurial, Bazaar и Git. У них нет собственных Mac-интерфейсов, но вы все равно должны их учитывать. Лично я люблю управлять своими проектами в репозиториях Mercurial.

[Добавлено 2011-03-10] Xcode 4 добавляет поддержку Git. Некоторые из нас подали запросы на поддержку Mercurial; тебе тоже стоит, если хочешь.

14 голосов
/ 02 июля 2010

Существует хороший интерфейс для Mercurial на Mac под названием MacHG: http://jasonfharris.com/machg/

Это бесплатно и очень приятно ИМХО.

6 голосов
/ 11 января 2009

Вы не можете ошибиться с использованием Subversion.

Если вам, как и мне, вам не очень нравится интеграция SVN в XCode, вы всегда можете использовать инструменты командной строки или одно из нескольких приложений с графическим интерфейсом, например Versions, CornerStone или SvnX. Большинство этих инструментов работают вместе довольно хорошо, поэтому вы не обязательно привязаны к инструменту, с которым начинаете.

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

Если вам удобно работать только с инструментами командной строки, пока кто-то не создаст хорошее приложение с графическим интерфейсом, git также является весьма приемлемым вариантом.

раскрытие: я один из тех, кто работает над версиями, поэтому я могу быть слегка предвзятым;)

6 голосов
/ 11 января 2009

Поддержка Subversion в Xcode довольно хорошая. 90% действий SVN, которые я выполняю, легко выполнимо из Xcode. Для других вещей я просто запускаю Терминал.

В их реализации клиента SVN есть пара вещей, которые раздражают:

  • Код, который проверяет, какие локальные файлы были изменены, кажется, работает в фоновом таймере, и это довольно скрыто. Иногда Xcode требуется 5 минут, чтобы показать файл как измененный. То же самое еще более преувеличено с удаленными модификациями.
  • Иногда, когда вы переименовываете или удаляете файл, который не находится под управлением источника, появляется диалоговое окно с вопросом: «Вы также хотите [переименовать / удалить] этот файл в SVN? И варианты «Да» или «Отмена». Вы выбираете Да из отчаяния только для того, чтобы получить заслуженную ошибку SVN.

В целом, я бы порекомендовал это.

5 голосов
/ 11 января 2009

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

Чтобы обойти это, вы должны переместить каталог сборки в другое место, чтобы XCode не пытался его импортировать, или вручную добавить отдельные папки проекта.

3 голосов
/ 11 января 2009

Subversion - это традиционное решение для управления версиями OS X, в Leopard оно поддерживается в Xcode и OS X, не говоря уже о сторонних приложениях с графическим интерфейсом (некоторые из которых выглядят очень удобными). Несмотря на все это, многие независимые разработчики OS X перешли на Git за последние год или два. Как единый разработчик, я могу сказать, что Git оказался для меня очень хорошим решением, и вместе с Github он делает отличное решение для небольшой команды.

2 голосов
/ 13 июня 2011

Если вы заинтересованы в использовании Mercurial на OS X, попробуйте SourceTree, он не бесплатный, но по конкурентоспособной цене и имеет очень изысканный вид Mac OS. Последние несколько месяцев я использовал его для личных проектов и считаю его интуитивно понятным и достаточно надежным.

Он доступен через Mac App Store и поддерживает Git и Mercurial. У них есть веб-сайт на http://www.sourcetreeapp.com/ с дополнительной информацией.

1 голос
/ 11 января 2009

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

0 голосов
/ 15 июля 2011
0 голосов
/ 13 марта 2010

Mercurial (как git) "распределен" и, возможно, рассматривается как более современный и перспективный, чем svn (но менее установленный). Если вы хотите выполнить автоматическую регистрацию с помощью Mercurial, вы можете добавить строку:

hg commit -m "Xcode auto commit"

как часть этапа «Выполнить сценарий» сборки XCode, как показано в: Проект> Новый этап сборки> Новый сценарий запуска сценарий создания

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...