Какую систему управления версиями 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 месяцев)

Заранее благодарим за помощь.

Ответы

Ответ 1

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, поэтому, если вы хотите, чтобы автоматизация сборки находила подходящий сервер сборки.

Ответ 2

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

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

Ответ 3

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

Ответ 4

SubVersioN (SVN) выполняет (большинство) ваши требования.

Ответ 5

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

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

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

Ответ 6

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

Ответ 7

Я просто посмотрел в Xcode (3.2, хотя, возможно, это не совсем то же самое), а варианты интеграции с источником - это подрывная деятельность, CVS и perforce.

Вне Xcode есть пара очень приятных графических интерфейсов для подрывной работы для OS X.

Subversion будет хорошим местом для начала. Кажется.

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