Вопрос

Какая система контроля версий была бы лучшей для изучения новичком в системе управления версиями?

Это было полезно?

Решение

Что угодно, только не Безопасный Визуальный источник;предпочтительно такой, который поддерживает концепции ветвления и слияния.Как уже говорили другие, Subversion - отличный выбор, особенно с клиентом TortoiseSVN.

Обязательно ознакомьтесь (простите за каламбур) Классическая серия статей Эрика Синка о том, как управлять версиями.

Другие советы

Я бы посоветовал вам попробовать Subversion, например, с помощью 1-щелкните установщик SVN.Попробуйте поискать в SO "Subversion", и вы найдете множество вопросов с ответами, которые указывают на хорошие учебные пособия.

Удачи вам!

Я бы пошел прямо на Мерзавец.Я раньше использовал subversion, но всегда чувствовал, что делаю это неправильно.Git имел смысл с самого первого дня.

Полезные ресурсы:

Есть несколько основных концепций, которые, на мой взгляд, важно усвоить:

  1. Регистрация заезда/отъезда (очевидно)
  2. Локальные версии противверсии сервера
  3. Сопоставление/ привязка локальной рабочей области к удаленному хранилищу или репозиторию.
  4. Объединение ваших изменений обратно в файл, содержащий изменения от других пользователей.
  5. Ветвление (что это такое, когда / зачем его использовать)
  6. Объединение изменений из ветки обратно в основную ветку или магистраль.

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

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

Мерзавец также становится все более популярным вариантом и является еще одной бесплатной или очень недорогой альтернативой Subversion.Однако знания, касающиеся концепций ветвления и слияния, становятся критически важными для использования Git.

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

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

  1. Давным-давно компания, в которой я работал в то время, решила использовать систему управления версиями.Они представили концепцию разработчикам, и каждый захотел попробовать ее.Они решили использовать ПВХ-материалы и внедрили их.Вскоре разработчикам пришлось бы координировать действия по блокировке / разблокировке модулей и объектов, и мы действительно не увидели большой пользы.

  2. Несколько лет спустя я поиграл с созданием проекта с открытым исходным кодом, и в то время rubyforge предлагал репозитории CVS.Я опробовал его, и он оказался ненамного лучше, чем ПВХ.Конечно, я был единственным, кто пользовался репозиторием.Однако я был разочарован, когда попытался изменить структуру своих файлов, потому что мне не понравилось, как я их изначально импортировал.На самом деле в CVS это не сработало.

  3. Через несколько лет после этого я работал над другим личным проектом, и мой хостинг-провайдер предложил простые в настройке репозитории Subversion (SVN).Мне потребовалось немного исследований, чтобы настроить его и запустить правильно, но как только я прошел начальный этап обучения, мне это понравилось.

  4. Вскоре после этого я понял, что мне нравится иметь систему управления версиями и что на моей нынешней работе ее нет.Итак, я проповедовал Евангелие, и спустя долгое время моя команда внедрила Source Safe, потому что мы работаем в Visual Studio и, как правило, являемся магазином Microsoft.Мне не терпелось использовать его, но вскоре я обнаружил, что теряю файлы и что Visual Studio размещает вещи не в том месте, и что я некоторое время работал над проектом, а затем отправлялся экспортировать свою работу в другое место и обнаруживал, что она либо не экспортирует, либо экспортирует только некоторые проекты в решении.Это заставило меня осознать, что, хотя я думал, что использую "систему контроля версий", копия кода, которая была наиболее безопасной, надежной и полной, была моей рабочей копией.Полная противоположность тому, что должен делать система управления версиями.

  5. Итак, на прошлой неделе мне так надоел Source Safe, что я отправился на поиски.Рассмотрев несколько решений, я решил попробовать git.Я не скажу, что все прошло гладко, поскольку у меня снова был некоторый опыт, чтобы заставить его делать то, что я хочу, однако он мне понравился настолько, что я перенес на него всю свою работу и личные проекты.Одна из действительно приятных вещей в этом заключается в том, что мне не нужен централизованный репозиторий, поэтому я могу использовать его, не прибегая к тонне бюрократических проволочек на работе, чтобы установить его.

Короче говоря, я бы порекомендовал git, я использую Mysysgit в Windows, и у него есть дополнительный бонус в виде предоставления мне оболочки bash.В Linux вы можете просто установить его из своего менеджера пакетов.Если вам не нравится git, попробуйте subversion.Если вам не нравится ни то, ни другое, вам, вероятно, также не понравятся CVS или PVCS.Ни при каких обстоятельствах не пробуйте Source Safe, это ужасно.

Я нашел http://unfuddle.com избавило меня от возни с установкой SVN или git.Вы можете получить там бесплатную учетную запись и использовать любую из них - плюс вы можете использовать там свой OpenID.

Тогда вам не придется возиться с его правильной настройкой и сосредоточиться на том, как вы собираетесь его использовать!

Хранилище от SourceGear.com превосходно.Это бесплатно для одиночных пользователей и обеспечивает превосходный интерфейс по сравнению с 2005/2008.Мне это нравится!

rp

@Иэн Нельсон:

Я согласен с вами, что Source Safe плоха как система контроля версий, но имейте в виду, что использовать Source Safe намного лучше, чем "таскать с собой дискеты", как сказал Джоэл Спольский.

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

У каждого инструмента есть свои сильные и слабые стороны.Это в значительной степени вопрос о том, каковы ваши требования.К сожалению, с этой проблемой, как и со многими другими, часто выбирается не лучший инструмент, а тот, с которым кто-то знаком.Например, если вам не требуется много филиалов, а ваша команда небольшая и локальная, практически любой венчурный инвестор выполнит эту работу (кроме SourceSafe).Все меняется, если вам нужны филиалы (что почти по необходимости означает, что вам также необходимо выполнять слияния), ваша команда распределена, вам нужна повышенная безопасность (субподрядчикам не разрешен доступ ко всему дереву исходных текстов), отслеживание задач и т.д.Существует также вопрос о стоимости в трех различных аспектах:стоимость лицензий, стоимость обслуживания (некоторые инструменты настолько сложны, что на практике вам нужен кто-то просто для управления репозиториями) и стоимость обучения.

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

Просто несколько советов:

  • StarTeam - самый простой из инструментов, которые я использовал .Для этого потребовалось совсем немного подготовки.Я прошел однодневный тренинг так как я должен был быть сопровождающим.Это обслуживание занимало у меня менее 30 минут в неделю.Пользователей я "обучил" написав двухстраничное руководство, и после этого у меня осталось очень мало вопросов , на которые нужно было ответить.
  • Continuus был на другом конце шкалы в том, что касается простоты использования .С другой стороны, обработка задач была отличной, и это обеспечивало хорошую поддержку для управления выпусками.Проблема в том, что даже будучи релиз-менеджером, я никогда не думал, что простота создания релизов (это было после того, как вы научились, но это заняло значительное количество времени) должна быть важнее повседневной работы разработчиков.
  • Слияния и создания филиал отличается дико между инструментами.Некоторые инструменты делают это простым, например git и ClearCase (хотя последний работает очень медленно) некоторые в основном заставляют вас выполнять слияние вручную.Если вам нужно сделать много слияний, стоимость может стать высокой.ClearCase также был дорогим во всех трех категориях, упомянутых ранее (хотя следует сказать, что мы использовали все передовые технологии, которые не являются необходимыми).С другой стороны, Git не имеет хорошего пользовательского интерфейса, и некоторые концепции отличаются от того, к чему вы могли бы привыкнуть .Функции безопасности Git также отсутствуют (gitosis решает некоторые проблемы, но не все).
  • Большинство инструментов, которые я использовал, также довольно медленные.Такие инструменты, как PVCS / Dimensions, были просто медленными, несмотря ни на что (базовые вещи, такие как открытие каталога в репозитории), некоторые очень медленными в более специфических способах (например, ClearCase).

Из инструментов, которые я использовал, я бы выбрал StarTeam, если ваши разработчики не очень опытны (и если вы не возражаете заплатить за лицензию, которая довольно дорогая) и git, если у вас есть несколько опытных венчурных капиталистов, которые могут настроить среду для других ребят.Mercurial также выглядит интересным конкурентом и, похоже, имеет немного лучший пользовательский интерфейс.

Continuus, PVCS / Dimensions и ClearCase просто слишком медленные, слишком сложные и слишком дорогие практически для любого проекта.Если кто-то настаивает на выборе одного из них, я бы выбрал ClearCase.

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

Что касается первого инструмента для выбора, проблема с Git, Bazaar и Mercurial в том, что они являются распространяемыми венчурными капиталистами.Это отличается от традиционной модели сервер-клиент, где у вас есть центральное хранилище.Для простого изучения материала я бы порекомендовал также ознакомиться с концепциями.Например, ветвление - это то, что вы можете неправильно понять, просто попробовав сами (существуют разные стратегии ветвления для разных ситуаций).Кроме того, это сильно отличается, если вы единственный, кто обращается к репозиторию, конфликты слияния, например, не будут проблемой (вы могли бы их увидеть, но вы также легко исправили бы их, поскольку знаете код в обеих ветвях).Конечно, вы бы узнали о выездах, регистрации заезда и тому подобном, но я не думаю, что эти вопросы с самого начала являются особенно сложными.

Дополнительная проблема с венчурными капиталистами заключается в том, что они, как правило, используют разные термины.В StarTeam, который в остальном прост в использовании, они по какой-то причине настаивают на использовании терминов "проверить" и "проверить и заблокировать".Последнее - это то, что, по мнению большинства людей, делает первое.Для этого есть причина (вы можете редактировать файлы, даже если у вас нет эксклюзивной блокировки), но все равно было бы гораздо разумнее называть их "Получить" и "Проверить", чтобы избежать путаницы.

Все что угодно, но я бы сам изучил современную систему, такую как git или subversion.Моим первым венчурным капиталистом был RCS, но я освоил основы.

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

Моим первым знакомством было CVS с WinCvs в качестве клиента.это было ужасно.Следующим был Subversion с интеграцией TortoiseSVN и Eclipse.Это было интуитивно понятно и божественно.Я думаю, что использование CVS с TortoiseCVS и Eclipse также было бы неплохо, хотя я предпочитаю способ, которым SVN обрабатывает пересмотр.При каждой регистрации проверяется версия всего репозитория, а не отдельных файлов.

Я бы также рекомендовал Subversion.Настройка не займет слишком много времени, она бесплатна, и в Интернете доступна действительно хорошая книга, в которой рассматриваются основы, а также некоторые продвинутые темы: http://svnbook.red-bean.com/

Подрывная деятельность с помощью tortoisesvn.(tortoisesvn, потому что вы можете видеть многое из того, что происходит визуально, и это послужит хорошей отправной точкой для работы с командной строкой.) Существует масса документации, и, скорее всего, вы увидите ее по крайней мере один раз в своей карьере.Почти каждая компания, в которой я работал и с которой брал интервью, использует SVN.

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

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

Subversion - хорошее место для начала.Это очень стабильная и современная система контроля версий.Лучшим онлайн-ресурсом для начала изучения Subversion был бы Управление версиями с помощью Subversion.Существует множество вариантов в том, что касается серверного и клиентского программного обеспечения.Лично я предпочитаю (для среды Windows).

  1. Сервер VisualSVN

  2. Оболочка TortoiseSVN-интегрированный клиент и

  3. Надстройка AnkhSVN для Visual Studio Subversion

Опять же, с Subversion доступно множество опций.Кроме того, это постоянно развивающаяся система контроля версий (в отличие от устаревшего SourceSafe).Он может быть легко интегрирован с многочисленными инструментами автоматизированной сборки (CruiseControl, FinalBuilder) и системами отслеживания ошибок (JIRA).

Если вы ищете самые современные системы контроля версий, выбирайте Git (разработан Линусом Торвальдсом).Но если вы совершенно новичок в системах контроля версий, я бы посоветовал начать с subversion.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top