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

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

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

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

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

Ответ 1

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

ТОЛЬКО НАЧАТЬ ИСПОЛЬЗОВАНИЕ IT

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

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

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

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

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


Edit:

pix0r сказал:

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

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

Изменить 2:

Только что увидела эту ссылку на reddit: Subversion Cheat Sheet. Хорошая быстрая ссылка для командной строки svn.

Ответ 2

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

Ответ 3

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

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

Ответ 5

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

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

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

Перейдите для SVN.

Ответ 7

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

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

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

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

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

Это скалы.

Ответ 8

@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 немного сложнее, чем получать их, но гораздо предпочтительнее иметь эту проблему, чем вообще не иметь файлов!

Ответ 9

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

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

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

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

Ответ 10

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

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

Ответ 11

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

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

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

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

Ответ 12

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

Ответ 13

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

Ответ 14

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

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

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

Ответ 15

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

Ответ 16

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

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

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

Ответ 17

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

Ответ 18

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

Ответ 19

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

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

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

Ответ 20

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

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

Ответ 21

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

Ответ 22

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

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

Ответ 23

superjoe30 пишет:

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

     

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

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

Ответ 24

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

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

Ответ 25

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

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

Ответ 26

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

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

Ответ 27

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

Да, это происходит.

Ответ 28

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

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

Ответ 29

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

Ответ 30

Coding Horror имеет отличный пост о как настроить Subversion в Windows.

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

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