Вопрос

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

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

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

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

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

Решение

Самое важное в контроле версий:

ПРОСТО НАЧНИТЕ ЭТО ИСПОЛЬЗОВАТЬ

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

Очень легко конвертировать из

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

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

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


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

pix0r сказал:

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

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

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

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

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

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

А Книга подрывной деятельности ваш лучший выбор для изучения этого инструмента.Могут существовать и другие руководства для быстрого старта, но Книга — лучший справочник, который вы найдете.

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

Если вы новичок в управлении версиями, прочтите это:
HOWTO по управлению исходным кодом

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

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

SVN — отличный инструмент, и он должен удовлетворить большинство ваших потребностей.И с тех пор, как он существует, у него есть немало инструментов с графическим интерфейсом (например, TortoiseSVN).

Перейти на СВН.

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

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

Я оценил BitKeeper, Dimensions, Arch, bazaar, svk, ClearCase, PVCS и Synergy.

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

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

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

Это круто.

@суперджо30

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

Я считаю, что на самом деле это проще сделать с помощью 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 как введение в контроль версий.Я использую его уже пару месяцев, и у меня сложилось впечатление, что он очень мощный и — теперь, когда я частично разобрался с ним — достаточно интуитивный.Однако кривая обучения очень крутая, хотя я использую контроль версий уже много лет.Он также страдает от чрезмерной выразительности — он поддерживает множество различных рабочих процессов и моделей разработки, но единственное руководство по «лучшему» способу его использования — это несколько страниц в глубине поиска Google, что также затрудняет выбор новичку. вверх.

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

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

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

Мой голос отдается Subversion.Он очень мощный, но простой в использовании и имеет несколько замечательных инструментов, таких как ЧерепахаSVN.

Но, как уже говорили другие до меня, ПРОСТО НАЧНИТЕ ЭТО ИСПОЛЬЗОВАТЬ.Контроль версий — очень важная часть процесса разработки программного обеспечения.Без него не может обойтись ни один «серьёзный» программный проект.

На моей нынешней работе мой предшественник не использовал никакого контроля версий.Там просто горы папок как минимум в 3-х разных местах, где он хранил все свои проекты.Ожидается, что в любой случайной папке проекта будет найдена хотя бы одна папка с именем «проект (СТАРЫЙ)» и одна с именем «проект».

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

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

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

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

Если вы используете Mac OSX, я считаю, что http://www.versionsapp.com/">Versions — это невероятный (бесплатный) графический интерфейс для SVN.

Git превосходит Subversion, но он немного отстает.

Я бы сказал, если вы только начинаете, прыгайте на край;создать бесплатную учетную запись @ http://github.com

У них есть учебные материалы по настройке и использованию git.

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

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

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

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

Используйте TortoiseSVN (version.app, если на Mac).Просто установите и работайте.Если вам нужно место для размещения вашего кода, посмотрите http://beanstalkapp.com/

SubVersion — лучший выбор для вас. Как отметил Карл Сеген, переход на другую систему управления версиями не будет проблемой.также у SVN очень простой в использовании графический интерфейс на стороне клиента (TortoiseSVN).

http://www.snee.com/bobdc.blog/2007/08/getting_started_with_subversio.html http://dojo.jot.com/WikiHome/Getting%20Started%20With%20Subversion

Если вы решите использовать Subversion и хотите разместить свой собственный svn-сервер, то есть очень хороший и простой сервер на базе Windows, который называется сервер VisualSVN.Это скрывает сложность настройки сервера Apache, вы просто идете дальше, дальше, дальше.Конфигурация пользователя обрабатывается с помощью веб-интерфейса вместо конфигурации.

http://www.visualsvn.com/server/

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

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

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

Начните использовать SVN для своей реальной работы, но постарайтесь найти время для работы с Git и/или Mercurial.SVN достаточно стабилен для производства, но в конечном итоге вы столкнетесь со сценарием, в котором вам придется нуждаться распределенный SCM, к которому вы будете должным образом вооружены, а новые системы станут достаточно зрелыми.

Да, SVN предпочтительнее, если вам действительно не нужны особые функции git.SVN достаточно сложен;Похоже, с git сложнее жить.Вы можете получить хостинг SVN от таких людей, как Бобовый стебель - если у вас нет штатных специалистов по Linux, я бы очень рекомендовал это.Дела могут очень легко пойти не так, и приятно, когда есть кто-то, чья работа — это исправить.

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

суперджо30 пишет:

Связанный вопрос (возможно, ответы можно отредактировать, чтобы ответить и на этот вопрос):

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

Я использую SVN для всех своих личных проектов.Я начал с запуска svn на своей домашней машине, но в конце концов перешел на Dreamhost.Их пакеты хостинга, включающие Subversion, довольно разумны.

Если в системе Windows быстрым и грязным решением является CVSNT.Прост в использовании, просто настроил и работает очень хорошо.

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

Я бы определенно предпочел SVN CVS, хотя бы потому, что люди, которые изучали систему управления версиями с помощью CVS, склонны использовать "svn delete" затем "svn add" вместо "svn move".Это затрудняет поиск всех предыдущих версий конкретного файла.И вы всегда можете перейти на использование git-svn.Лично я считаю, что его легче освоить, чем hg, но на самом деле основной Причина использования SVN заключается в том, что он в значительной степени стал де-факто системой контроля версий программного обеспечения с открытым исходным кодом.

Если вы когда-нибудь планируете изучать/использовать Д почти обязателен доступ к сторонним репозиториям, например DSource.

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

@Orion Edwards Subversion не требует сервера.Вы можете получить доступ к локальному репозиторию напрямую (конечно, через клиент), без участия серверного процесса.

Просто используйте TortoiseSVN, и вы сможете жить, даже не зная реальных команд Subversion...Но это плохо.К счастью, всегда будет «прекрасная возможность» выучить их наизусть — когда ваш бесценный репозиторий впервые будет поврежден.

Да, такое случается.

Как уже много раз упоминалось в других местах, «Просто сделай это».Я смог быстро начать работу с Subversion под Windows, прочитав краткое руководство в Красной книге.Как только я указал TortoiseSVN на репозиторий, я занялся делом.Мне потребовалось некоторое время, чтобы разобраться в тонкостях, но это были незначительные препятствия, которые нужно было преодолеть.

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

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

Одним из основных советов по упрощению настройки сервера SVN прямо сейчас является использование виртуального устройства.То есть виртуальная машина, на которой предварительно установлена ​​​​и (в основном) предварительно настроена Subversion - в значительной степени подключи и работай.Можешь попробовать здесь, здесь и здесь, или просто попробуйте выполнить поиск в Google по запросу «виртуальное устройство Subversion».

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