Подтвердить что ты не робот

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

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

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

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

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

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

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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

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

Ответ 3

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

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

Ответ 4

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

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

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

В целом я бы рекомендовал его.

Ответ 5

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

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

Ответ 6

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

Ответ 7

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

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

Ответ 8

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

Ответ 9

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

hg commit -m "Автоматическое совершение Xcode"

как часть этапа "Запуск Script" сборки XCode, как показано в:  Проект > Этап новой сборки > Новый запуск Script Фаза BUild