Начинающий контроль исходного кода

Какую систему управления версиями лучше всего освоить для начинающих?

22.08.2008 19:49:05
16 ОТВЕТОВ
РЕШЕНИЕ

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

Не забудьте проверить (простите за каламбур) классическую серию статей Эрика Синка по Source Control HOWTO .

24
22.08.2008 20:09:20
Нет, я не буду прощать каламбур, так как он был более умным и тонким, чем каламбур. 80)
Keng 8.09.2008 15:39:54
Я должен признать, я не понимаю ваш комментарий Кенг!
FortunateDuke 13.09.2008 17:30:44
@ Кенг, что означает твое второе «каламбур»?
Parag 27.07.2012 09:00:16
@Parag: это означало комплимент в том смысле, что игра слов не очень умная или тонкая, но это игра слов.
Keng 2.08.2012 15:52:18
@FortunateDuke: см. Комментарий выше.
Keng 2.08.2012 15:52:57

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

0
22.08.2008 19:50:14

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

0
22.08.2008 19:51:03

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

Удачи!

8
22.08.2008 19:53:08

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

0
22.08.2008 19:53:17

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

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

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

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

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

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

5
4.12.2009 20:28:31

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

0
22.08.2008 20:26:08

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

0
22.08.2008 20:31:59

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

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

2
22.08.2008 20:39:40
Я должен буду проверить это.
FortunateDuke 13.09.2008 17:32:22
+1 за ссылку на парочку. Это отличный способ намочить ноги с помощью Git или Subversion.
Jesse Taber 4.12.2009 20:23:34

@ Ян Нельсон :

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

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

1
23.05.2017 12:13:34
Это субъективно, SS может испортить свою базу данных, и вы можете не осознавать это лишь несколько месяцев спустя. Таким образом, вы все равно потеряете всю свою историю контроля версий.
Makis 9.06.2009 06:15:29
Я думаю, что ваш комментарий такой же субъективный, как и мой. Source Safe МОЖЕТ испортить базу данных, но жесткий диск может выйти из строя. Если вы хотя бы используете Source Safe, он будет храниться как на жестком диске, так и в системе контроля версий.
Patrik Svensson 9.06.2009 12:05:04

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

Р.П.

2
23.08.2008 21:00:05

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

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

0
24.11.2008 05:43:46

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

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

  2. Несколько лет спустя я начал заниматься проектом с открытым исходным кодом, и в то время rubyforge предлагал репозитории CVS. Я попробовал это, и это было немного лучше, чем PVCS. Конечно, я был единственным, кто использовал репозиторий. Однако я очень расстроился, когда попытался изменить структуру своих файлов, потому что мне не нравилось то, как я их изначально импортировал. Это не сработало в 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, это ужасно.

3
6.12.2008 18:06:47

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

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

8
9.06.2009 06:06:12
Да, я думаю, что Git - самый простой и надежный из всех решений по управлению исходным кодом / версией. Я использовал SVN, CVS, ClearCase ... И я чувствую, что Git был лучшим, самым простым и чистым решением.
JP Silvashy 4.12.2009 20:37:36

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

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

Просто несколько указателей:

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

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

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

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

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

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

1
9.06.2009 07:34:10

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

  1. VisualSVN сервер

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

  3. AnkhSVN Visual Studio Дополнение к Subversion

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

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

0
30.07.2009 05:18:09