Начало работы с контролем версий - PullRequest
72 голосов
/ 05 августа 2008

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

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

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

Кроме того, не прочь посоветовать, с чего начать. (учебные пособия и т. д.)

Ответы [ 34 ]

81 голосов
/ 05 августа 2008

Самое важное в управлении версиями:

ТОЛЬКО НАЧАЛО ИСПОЛЬЗОВАНИЯ ЭТОГО

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

Очень просто конвертировать из

cvs<->svn<->git<->hg

Неважно, какой вы выберете. Просто выберите самый простой для вас способ и начните записывать историю своего кода. Вы всегда можете перейти на другую (D) VCS позже.

Если вы ищете простой в использовании графический интерфейс, взгляните на TortoiseSVN (Windows) и Версии (Mac) (предлагается кодирование без комментариев )


Edit:

pix0r сказал:

Git обладает некоторыми приятными функциями, но вы не сможете оценить их, если вы уже не использовали что-то более стандартное, такое как CVS или Subversion.

Это. Использование git бессмысленно, если вы не знаете, что для вас может сделать контроль версий.

Редактировать 2:

Только что увидел эту ссылку на Reddit: Шпаргалка Subversion . Хороший краткий справочник по командной строке svn.

18 голосов
/ 05 августа 2008

Используйте Subversion, он прост в настройке, прост в использовании и имеет множество инструментов. Любая будущая ревизионная система будет иметь функцию импорта из SVN, поэтому вы не сможете изменить ее в будущем, если ваши потребности будут расти.

16 голосов
/ 05 августа 2008

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

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

13 голосов
/ 14 августа 2008

Если вы новичок в versioncontrol, прочитайте это:
Source Control HOWTO

10 голосов
/ 05 августа 2008

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

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

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

Перейти на SVN.

8 голосов
/ 14 августа 2008

Я использовал RCS, CVS, SCCS, SourceSafe, Vault, Perforce, Subversion и Git.

Я оценил BitKeeper, Dimensions, Arch, Bazaar, SVK, ClearCase, PVCS и Synergy.

Если бы мне сегодня пришлось запустить новый репозиторий, я бы выбрал git . Руки вниз.

Это бесплатно, быстро и в процессе активной разработки.

И вы можете использовать его как клиент любого хранилища subversion, используя git-svn.

Это качается.

8 голосов
/ 05 августа 2008

Дружественное объяснение большинства основных понятий см. Визуальное руководство по управлению версиями . Статья очень дружелюбна к SVN.

5 голосов
/ 14 августа 2008

@ superjoe30

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

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

5 секундное вступление (если вы его установили)

cd myproject
git init
git add * # add all the files
git commit

В следующий раз, когда вы сделаете некоторые изменения

git add newfile1 newfile2 # if you've made any new files since last time
git commit -a

Пока вы это делаете, у Git есть спина. Если вы запутались, ваш код в безопасном репозитории git. Это круто

  • Примечание: вам может показаться, что получить вещи вне Git немного сложнее, чем получить их, но гораздо предпочтительнее иметь эту проблему, чем вообще не иметь файлов!
5 голосов
/ 23 сентября 2008

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

Тем не менее, вполне возможно, что начать с чистого листа с помощью git действительно будет проще - мой опыт работы с VCS полностью связан с централизованным управлением версиями (CVS, SVN, Perforce ...) и частью моей (продолжающейся!) Проблемы с Git понимает значение распределенной модели. Я кратко взглянул на другие DVCS, такие как Bazaar и Mercurial, и они казались более дружелюбными к новичкам.

В любом случае, как уже говорили другие, Subversion, вероятно, является самым простым способом привыкнуть к мышлению управления версиями и получить практический опыт использования преимуществ VCS (откат, ветки, совместная разработка, упрощенный анализ кода и т. Д.).

Да, и не начинайте с CVS. Он все еще находится в практическом использовании и имеет свои преимущества, но ИМХО в нем слишком много исторических причуд и проблем с реализацией (неатомных коммитов!), Чтобы быть хорошим способом изучения.

4 голосов
/ 05 августа 2008

На моей нынешней работе мой предшественник не использовал никакой системы контроля версий. Есть только горы папок, по крайней мере, в 3 разных местах, где он хранил все свои проекты. Можно ожидать, что любая произвольная папка проекта найдет хотя бы одно имя папки «project (OLD)» и одну с именем «project»

С контролем версий вам никогда не придется делать копии «безопасных» сборок. Вам не нужно беспокоиться о том, что ваша IDE повредит файл, над которым вы работаете (я смотрю на вас, REALBasic 5.5), потому что так легко фиксировать (читай: сохранять) вашу работу каждый день.

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

Кроме того, TortoiseSVN упрощает фиксацию базы данных, щелкая правой кнопкой мыши папку.

...