Начало работы с системой управления версиями


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

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

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

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

30 71

30 ответов:

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

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

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

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

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

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

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


Edit:

pix0r сказал:

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

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

правка 2:

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

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

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

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

Если вы новичок в versioncontrol прочитайте это:
управление версиями HOWTO

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

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

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

перейти к СВН.

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

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

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

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

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

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

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

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

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

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

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

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

Если вы находитесь на Mac OSX, я нашел http://www.versionsapp.com/ " > версии для невероятного (бесплатного) интерфейса GUI для SVN.

Git превосходит subversion, но это немного на краю кровотечения.

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

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

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

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

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

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

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

SubVersion-лучший выбор для вас, поскольку Карл Сегин указал, что переход на другую систему управления версиями не будет проблемой. также SVN имеет очень простой в использовании GUI на стороне клиента (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 server. Он скрывает сложность настройки сервера apache,вы в основном просто идете дальше дальше. Конфигурация пользователя осуществляется с помощью веб-интерфейса, вместо конфигурации

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

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

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

поэтому я просто установил SVN-сервер и Tortoise SVN для клиента и нырнул в deepend, и я не знаю, как использовать его по пути.

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

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

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

superjoe30 пишет:

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

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

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

Если на коробке windows быстрый и грязный slution-это CVSNT. Прост в использовании просто установите его и работает очень хорошо.

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

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

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

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

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

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

Да, бывает.

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

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

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

один из основных советов, чтобы облегчить установку сервера SVN прямо сейчас, чтобы использовать виртуальное устройство. То есть виртуальная машина, на которой предварительно установлена и (в основном) предварительно настроена subversion-в значительной степени plug & play. Вы можете попробовать здесь,здесь и здесь, или просто попробуйте поискать Google на "subversion virtual appliance".