Мне нужно реализовать контроль версий, даже для разработки, которую я делаю дома. Я читал о том, насколько велика Subversion за последние пару лет, и собирался посвятить себя изучению этого на стороне, пока не услышал о Git, являющейся новой системой контроля версий.
Учитывая ситуацию, я должен подождать и посмотреть, какой из них выходит на первое место? Каковы их относительные преимущества?
Одна проблема, которую я заметил в Git, заключается в том, что полнофункциональных графических интерфейсов не так много, что важно для многих пользователей моей команды.
Кроме того, не против предложений о том, как начать с того или другого. (учебные пособия и т. д.)
Самое важное в контроле версий:
Просто начните использовать его
Не использовать контроль версий - ужасная идея. Если вы не используете контроль версий, прекратите чтение прямо сейчас и начните его использовать.
Это очень легко конвертировать из
cvs<->svn<->git<->hg
Неважно, какой вы выберете. Просто выберите самый простой для вас способ и начните записывать историю своего кода. Вы всегда можете перейти на другую (D) VCS позже.
Если вы ищете простой в использовании графический интерфейс, посмотрите TortoiseSVN (Windows) и Версии (Mac) (предложено codingwithoutcomments )
Редактировать:
В Git есть несколько приятных функций, но вы не сможете оценить их, если вы уже не использовали что-то более стандартное, такое как CVS или Subversion.
Это. Использовать git бессмысленно, если вы не знаете, что для вас может сделать контроль версий.
Изменить 2:
Только что увидел эту ссылку на Reddit: шпаргалка Subversion . Хороший краткий справочник по командной строке SVN.
Используйте Subversion, он прост в настройке, прост в использовании и имеет множество инструментов. Любая будущая система ревизий будет иметь функцию импорта из SVN, так что вы не сможете изменить ее в будущем, если ваши потребности будут расти.
Перейти на SVN. Если вы никогда ранее не использовали контроль исходного кода, это не имеет значения для вас, так или иначе.
Кроме того, использование системы контроля версий не требует большого обучения. Если вы изучите один, вы можете легко переключиться на другой позже.
SVN - отличный инструмент, и он должен заботиться о большинстве ваших потребностей. И так как это было вокруг, у него есть справедливый участник инструментов GUI (TortoiseSVN, например).
Перейти на SVN.
Не жди Выберите один и иди с ним. У всех систем будут свои плюсы и минусы. Ваша сила может выйти из строя, ваш компьютер будет украден, или вы забудете отменить серьезные изменения, и весь ваш код будет перегружен, пока вы ждете, чтобы увидеть, кто выйдет победителем.
Когда я решил, что должен использовать систему управления версиями кода, я искал хорошие уроки о том, как начать, но не нашел ни одного, который мог бы мне помочь.
Поэтому я просто установил SVN-сервер и Tortoise SVN для клиента и погрузился в углубление, и я не научился использовать его по пути.
Книга Subversion - ваш лучший выбор для изучения инструмента. Там могут быть и другие краткие учебные пособия, но Книга - лучший справочник, который вы найдете.
В Git есть несколько приятных функций, но вы не сможете оценить их, если вы уже не использовали что-то более стандартное, такое как CVS или Subversion. Я определенно согласен с предыдущими постерами и начну с Subversion.
Начните использовать SVN для вашей реальной работы, но постарайтесь найти время, чтобы возиться с Git и / или Mercurial. SVN достаточно стабилен для производства, но в конечном итоге вы столкнетесь со сценарием, в котором вам потребуется распределенный SCM, к которому вы будете должным образом вооружены, и новые системы станут достаточно зрелыми.
Мой голос идет за Subversion. Это очень мощный, но простой в использовании, и есть несколько отличных инструментов, таких как TortoiseSVN .
Но, как говорили другие до меня, просто начните использовать его. Контроль исходного кода - это важная часть процесса разработки программного обеспечения. Ни один «серьезный» программный проект не может быть без него.
Для дружественного объяснения большинства основных понятий см . Визуальное руководство по управлению версиями . Статья очень дружелюбна к SVN.
Да, SVN за предпочтения, если вам действительно не нужны особые функции git. SVN достаточно сложен; Похоже, с мерзавцем жить сложнее. Вы можете получить svn от таких людей, как Beanstalk - если у вас нет собственных людей из Linux, я бы порекомендовал это. Все может пойти ужасно легко, и приятно иметь кого-то другого, чья работа - это исправить.
Эрик Синк (Eric Sink) предлагает отличное руководство по проверке версий, которое стоит прочитать независимо от того, какую систему вы используете.
Связанный вопрос (возможно, ответы могут быть отредактированы, чтобы ответить и на этот вопрос):
А как насчет использования управления исходным кодом на вашем компьютере, если вы единственный программист? Это >> хорошая практика? Есть ли связанные советы или хитрости?
Я использую SVN для всех моих личных проектов. Я начал с запуска svn на своей домашней машине, но в итоге перешел на Dreamhost. Их пакеты хостинга, которые включают Subversion, довольно разумны.
Если вы работаете в Mac OSX, я обнаружил, что http://www.versionsapp.com/">Versions - невероятный (бесплатный) интерфейс GUI для SVN.
На моей нынешней работе мой предшественник не использовал никакой системы контроля версий. Есть только горы папок, по крайней мере, в 3 разных местах, где он хранил все свои проекты. Можно ожидать, что любая произвольная папка проекта найдет как минимум одно имя папки «project (OLD)» и одну с именем «project»
С контролем версий вам никогда не придется делать копии «безопасных» сборок. Вам не нужно беспокоиться о том, что ваша IDE повредит файл, над которым вы работаете (я смотрю на вас, REALBasic 5.5), потому что так легко фиксировать (читай: сохранять) вашу работу каждый день.
Само собой разумеется, я установил контроль версий на следующий день после того, как узнал, что он существует.
Кроме того, TortoiseSVN упрощает фиксацию базы данных, щелкая правой кнопкой мыши папку.
Не так сложно переключаться между системами контроля версий. Как уже упоминали другие, важно начать использовать что-либо как можно скорее. Преимущества использования контроля источников по сравнению с отсутствием контроля источников значительно перевешивают различия между различными типами контроля источников.
Помните, что независимо от того, какую версию управления исходным кодом вы используете, вы всегда сможете выполнить грубое преобразование в другую систему, записав файлы со старой системы на диск, а затем импортировав эти необработанные файлы в новую систему.
Более того, знание основ управления исходным кодом является очень и очень важным навыком для разработчика программного обеспечения.
Также попробуйте визуальный SVN для вашего сервера, если вы хотите избежать какой-либо работы командной строки.
Если на коробке с Windows быстрое и грязное решение, это CVSNT. Легко использовать, просто настроить и работает очень хорошо.
Я сам предпочитаю SVN, но это хороший вариант для быстрого использования.
Я использовал RCS, CVS, SCCS, SourceSafe, Vault, Perforce, Subversion и Git.
Я оценил BitKeeper, Dimensions, Arch, Bazaar, SVK, ClearCase, PVCS и Synergy.
Если бы мне сегодня нужно было создать новый репозиторий, я бы выбрал git . Руки вниз.
Это бесплатно, быстро и активно развивается.
И вы можете использовать его как клиент любого хранилища subversion, используя git-svn.
Это круто.
@ 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 немного сложнее, чем получить их, но гораздо предпочтительнее иметь такую проблему, чем вообще не иметь файлов!
git add .
(добавить текущий каталог ), а не git add *
(используйте расширение оболочки), это быстрее. Если вы новичок в versioncontrol, прочтите это:
Source Control HOWTO
Я бы определенно выбрал SVN вместо CVS, хотя бы потому, что люди, которые изучили управление исходным кодом с помощью CVS, склонны использовать " svn delete
" затем " svn add
" вместо " svn move
". Что затрудняет поиск всех предыдущих ревизий определенного файла. И вы всегда можете перейти на использование git-svn. Лично я считаю, что его легче освоить, чем hg, но на самом деле главная причина использования SVN заключается в том, что он во многом стал де-факто системой контроля версий программного обеспечения с открытым исходным кодом.
Если вы когда-либо планируете изучать / использовать D, то почти обязательно требуется доступ к сторонним репозиториям, таким как DSource .
@ superjoe30 Да, абсолютли. Как только вы начнете использовать контроль версий, вы никогда не вернетесь назад. Я использую это для всего, даже моей "домашней" папки.
@ Орион Эдвардс Subversion не требует сервера. Вы можете получить доступ к локальному репозиторию напрямую (через клиента, конечно), и серверный процесс не задействован.
Просто используйте TortoiseSVN, и вы сможете жить, даже не зная реальных команд Subversion ... Но это плохо. К счастью, всегда будет «отличная возможность» выучить их наизусть - когда ваш бесценный репозиторий впервые будет испорчен.
Да, так бывает
Как уже много раз упоминалось, просто сделай это. Я смог начать работу с Subversion под Windows с нуля, быстро прочитав руководство по быстрому запуску в Красной книге. Как только я указал TortoiseSVN на хранилище, я был в бизнесе. Мне потребовалось некоторое время, чтобы получить более тонкие баллы, но они были небольшими горбами, чтобы преодолеть.
Я бы предложил установить Сервис Subversion вместо использования URL-адресов file: //, но это в основном личные предпочтения. Для репозитория, хранящегося на вашем компьютере разработки, file: // работает нормально.
Git превосходит Subversion, но он немного не в курсе дела.
Я бы сказал, если вы только начинаете, прыгайте на край; настроить бесплатный аккаунт @ http://github.com
На сайте есть учебные материалы по настройке и использованию git.
Используйте TortoiseSVN (version.app, если на Mac). Просто установите и уходите. Если вам нужно место для размещения вашего кода, посмотрите на http://beanstalkapp.com/
Исходя из личного опыта, SVN будет моей рекомендацией. Вы даже можете использовать такой сервис, как Beanstalk, который предлагает бесплатные учетные записи (с ограничениями, очевидно, но достаточными для любого небольшого проекта) для тестирования воды. Но, как уже говорили другие, git превосходит и, вероятно, заслуживает изучения.
Краткий ответ: Subversion, если вы единственный, кто его кодирует, или вы на сайте со всеми, с кем работаете. GIT, если вы работаете с людьми на разных сайтах и ваша кодовая база огромна.
Subversion действительно очень прост в настройке и использовании. Это также хорошо, потому что вы можете делать с ним относительно сложные вещи, такие как подключить его к Apache и использовать SSL или подключить его к Trac для управления проектами. Для Subversion так много инструментов, что это действительно хороший выбор.
GIT гораздо полезнее для людей, которые работают в больших командах, работающих в распределенной среде. Линус Т. разработал его для команды Linux, потому что он был недоволен возможностями традиционных репозиториев. Стоит учиться, если вы планируете работать с людьми над проектами с открытым исходным кодом.
У Coding Horror есть отличный пост о том, как настроить Subversion в Windows .
После обучения я смог запустить Subervsion и TortoiseSVN локально, и получил необходимое образование.
Что касается Git, то, вероятно, было бы неплохо поэкспериментировать с ними обоими, чтобы понять, какой из них подходит для вашей конкретной практики разработки.
Одним из основных советов, облегчающих настройку сервера SVN прямо сейчас, является использование виртуального устройства. То есть виртуальная машина с предустановленной Subversion и (в основном) предварительно настроенной на нее - в значительной степени подключи и играй. Вы можете попробовать здесь , здесь и здесь , или просто попробовать поискать в Google на «виртуальном устройстве Subversion».
Я начал использовать Subversion после прочтения блога Уил Шиплис.
Поэтому я начал проверять код, одну машину и учетную запись Dreamhost. Затем, после того как я случайно удалил функцию и сохранил свой проект, я понял, что был в глубоком «dudu», но с помощью subversion я просто извлек последнюю версию этого файла, и это было так, будто ничего не произошло.
Сейчас я использую контроль версий для всего. Я планирую перейти на git, потому что он быстрее, работает в автономном режиме, занимает меньше места и, о боже, быстрее.