Какую систему контроля версий OSX / XCode мне следует использовать для разработки iPhone?

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

Я использовал SourceSafe и Team Foundation System, но у меня нет четкого представления о том, какие системы контроля версий (VCS) доступны для Macintosh. Я видел рекламу на SO для внешнего интерфейса Subversion, но хотел бы другие варианты.

Вот список моих начальных требований:

  • Работает локально под OS X Leopard 10.5.7.
  • Интегрируется с XCode 3.1.3 (при отсутствии интеграции удобный интерфейс)
  • Основные функции VCS - комментарии к отметкам, ветвление, закрепление
  • Расширенные функции VCS, такие как автоматизация сборки или отчеты, были бы хороши, но в настоящее время не критичны.
  • Возможность работать с несколькими разработчиками в будущем (6-12 месяцев)

Заранее спасибо за помощь.


person billmaya    schedule 04.09.2009    source источник


Ответы (7)


Mercurial был бы моим выбором для контроля версий для проекта, начинающегося как индивидуальный проект, если вы не не хочу настраивать выделенный сервер. Mercurial не требует сервера, потому что это распределенная VCS, каждая рабочая копия также является полным репозиторием, поэтому, как только вы установили Mercurial, вы готовы к работе, просто введите 'hg init' в корневом каталоге вашего проекта, и все готово. .

Он идеально подходит для работы в одиночку или с небольшим количеством разработчиков (то есть без ИТ-персонала или системных администраторов), у него есть утилита, которая позволяет вам быстро настроить временный сервер для вашего локального репозитория, поэтому, когда вы встречаетесь с людьми, им легко чтобы клонировать репозиторий или поделиться изменениями. Вы также можете просто дать людям копии вашего репозитория по электронной почте или USB-ключу или скопировать их по сети или что-то еще и согласовать изменения в копиях друг с другом позже.

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

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

Perforce, IMO, прямо сейчас. Помимо того, что это коммерческий продукт, он невероятно неприятен. Это требует, чтобы вы всегда были подключены к серверу, иначе все станет большой головной болью. Так что, если вы просто хотите работать с материалами с нескольких компьютеров в разных местах или если вы хотите, чтобы в проекте участвовали люди, которые не были бы все время в одной сети, это будет отстой. Perforce просто постоянно бьет вас по голове тем фактом, что вы используете Perforce, никакая другая VCS, которую я использовал, не вызывает у вас такого раздражения и раздражения.

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

Автоматизация сборки IMO - это работа сервера сборки, а не работа VCS, поэтому, если вы хотите автоматизировать сборку, найдите подходящий сервер сборки.

person Whatever    schedule 04.09.2009
comment
billlmaya: Если вы выполнили обновление до Mac OS X 10.6 после публикации исходного сообщения, я настоятельно рекомендую взглянуть на MacHg (jasonfharris.com/machg). Если у Apple нет грандиозных планов по масштабным улучшениям (уже значительно улучшенной) интеграции scm в сегодняшней версии Xcode4, простота использования MacHg и глубина функций заставят всех остальных визуальных scm-клиентов, которые я видел до сих пор, посрамить. - person clozach; 31.07.2010

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

Если вы ищете что-то адекватное, дешевое и расширяемое, просто зайдите в меню SCM в XCode и посмотрите, что там уже есть. Если вам нужна помощь в настройке SVN, просто прокомментируйте.

person mahboudz    schedule 04.09.2009
comment
Вот хорошее пошаговое руководство: iphonedevelopment.blogspot .com / 2009/03 / Вы сможете настроить его примерно через десять минут. - person mahboudz; 04.09.2009
comment
SVN - отличное бесплатное решение. Пользуюсь им какое-то время. Любить это. - person mkelley33; 04.09.2009
comment
У меня всегда были проблемы с интеграцией Xcodes SVN, похоже, она никогда не работает, однако Versions или Cornerstone - отличные сторонние графические интерфейсы SVN, если вам не нравится использовать командную строку (что легко) - person Anthony Main; 26.09.2010
comment
Я думаю, что это отличный учебник для настройки вашего проекта в svn для Xcode: jms1.net /iPhone/xcode-svn.shtml - person noodl_es; 20.01.2011

Похоже, что Subversion будет вашим лучшим выбором для XCode, поскольку уже есть некоторые рекомендации по его запуску и работе с XCode здесь. Subversion обращается ко всем функциям, о которых вы говорите. Закрепление - это особенность Source Safe; однако Subversion может делать теги. Автоматизация сборки не является функцией системы управления версиями, но системы управления версиями обычно используются в сценариях сервера непрерывной интеграции. Я не использовал его, но насколько я понимаю, Hudson - это сервер непрерывной интеграции, который набирает популярность и набирает обороты. Дополнительную информацию о Hudson можно найти здесь и здесь

person Michael Mann    schedule 04.09.2009

SubVersioN (SVN) удовлетворяет (большинство) ваших требований.

person Traveling Tech Guy    schedule 04.09.2009

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

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

Я использую Beanstalk для размещения своего исходного кода. Это бесплатно для трех разработчиков, вы сможете обновить свою учетную запись, когда вырастете, это быстро и БЕЗОПАСНО.

person Rob Fonseca-Ensor    schedule 04.09.2009

Я только что посмотрел в Xcode (однако, 3.2, так что он может быть не совсем таким), и варианты интеграции системы управления версиями: Subversion, CVS и perforce.

Помимо Xcode, существует пара очень хороших клиентов с графическим интерфейсом для подрывной работы под OS X.

Кажется, неплохо было бы начать с Subversion.

Судя по всему, в наши дни все крутые ребята используют распределенные VCS. Вы можете потратить полчаса на чтение git или mercurial (hg - мое предпочтение). Нет прямой интеграции с Xcode, но в них достаточно легко войти.

person marramgrass    schedule 04.09.2009

Perforce теперь называется бесплатно для двадцати пользователей, но после этого будет дорого. Однако вы можете захотеть это проверить. Xcode больше не поддерживает встроенную интеграцию Perforce, хотя есть скрипты и плагин.

person Alex Reynolds    schedule 04.09.2009