СистемаКонтроляВерсий(CVS) - Сравниваем:Git,SVN,Mercurial

版本控制软件

Уваспоявиласьноваязамечательнаябизнес-идея,связаннаясразработкойПО吗?Вамнужноразработатьтехнологическисложноерешение吗?Илиувасбольшаякомандапрограммистов,работающихнадоднойзадачей吗?Тогда запомните эти три слова:системаконтроляверсий

СистемаКонтроляВерсий(CVS),2017 - Сравниваем:Git,SVN,Mercurial

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

Есливыешенезнакомысконцепциейсистемыконтроляверсий,ТОВот.здесьвсе очень наглядно показано。

Узнайтесегодня,Какпростаяишффективнаяпрограммаучрограммаучетарабочеговремени时间医生Можетповыситьпродуктивностьвашейкомпании。

Или посмотрите видео от GitHub。

Итак,КакаясистемаКонтроляВерсийподойдетдлявашегопроекта?

Мысравнилинесколькопопулярныхрешений,чтобывамбылопрощесделатьвыбор。

этоузкоспециальнаятехническаятема。Мыпостаралисьсделатьнашобзорпонятнымдлявсех。Ноеслиуваснетопытавпрограммировании,ОбязательнопосоветельнопосоветуйтесьсвашимотделомРазработки,Преждечемприниматьрешения。

Системыконтроляверсий,втомчислеширокоизвестныеSVN(颠覆)иGIT中,изначальносоздавались,чтобыкомандыразработчиковмоглиработатьнадсовместнымипроектами,несоздаваяпутаницы。всистемеконтроляненадосамостоятельноотслеживатьветвикодаиизучатьпримечанияКНим。Вместоэтогоиспользуетсяцентральныйрепозиторий,Гдевсюупорядочено,Структурировано。Здесьудобнообновлятьфайлы,добавлятькомментарииидажепроводитьслияниеветокпроекта。

Мнениявотношениитого,Какаясистемаконтроляверсийсамаялучшая,сильноразнятся,иэтоприводиткбурнымспорамвсредепрограммистов。Подбираяиизучаясистемыконтроляверсийдлявашегопроекта,незабывайте,чтопреимуществатогоилииногорешениячастосубъективны。Например,личныепредпочтенияпрограммистаили,скажем,такиепоказателикакбыстродействи,евозможностиплагиновIDEитд。

Главноеотличиемеждусистемамиконтроляверсийсостоитвтом,какиеони:клиенст——ерверныеилидецентрализованные(p2p)。Естьлиунихцентральныйрепозиторий(сервер),откудакодберетсяикудавозвращаетсясвнесеннымиизменениями。Илиэтокопиявлокальномхранилище,обновляемаяпосредствомпиров:болеедецентрализованнаясеть,используемаядлясинхронизации,обменапатчами(наборамиизменений)идляподдержкитекущегокода。

Стоиттакжеучестьбыстродействие,ФункциональностьипорогВхождения/ОсвоенияКонкретнойсистемыконтроля。Рассмотримнаиболеераспространенныесистемыконтроляверсийитепричины,покоторымпрограммистыпредпочитаюттеилииныерешения。

Система одновременных версий (CVS)

CVSпоявиласьв1980 -хидосихпорпопулярнакакуразработчиковкоммерческихпродуктов,таки开源уразработчиков。

CVSраспространяетсянаусловияхОткрытоголицензионногосоглашенияGNUипозволяетполучатьссерверанужнуюверсиюпроекта-«退房»(извлечение), а затем пересылать обратно на сервер,«签到»(возврат),свнесеннымиизменениями。

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

СейчасCVSимеетподдержкуработынадпроектамисветкамикода。Получаетсянескольковариантовпродуктасразнымиарактеристиками,Которыеможнобудетобъединитьпозднее。

СервераCVSОбычноРаботаютподуправлениемunix,НоCVS-клиентыдоступныивДругихПопулярныхоперационныхсистемах。CVS-«зрелая»,проверенная временемсистемаконтроляверсий。этопо-прежнемуопенсорснаясистема,НонасегодняшнийденьновыефункциидобавляштсядовольноРедко。

ПриэтомCVSNT,выделившаясявотдельныйпроектверсияCVSдлясерверов窗户,——сейчасдостаточноактивнорасширяетфункционал。

Преимущества:

  • Испытаннаявременемтехнология,котораяудерживаетсянарынкедесяткилет。

Недостатки:

  • ПереименованиеИлиПеремешениеФайловНеотражаетсявистории
  • РискиБезопасности,СвязанныессимволическимиСсылкаминафайлы
  • Нетподдержкиатомарныхопераций,чтоможетпривестикповреждениюкода
  • Операциисветкамипрограммногокодадорогостоящие,ТакКакэтаСистемаКонтроля.Непредназначенадлядолгосрочныхпроектовсветкамикода

Apache Subversion (SVN)

Apache Subversion.

SVNсоздаваласькакальтернативаCVSСцельюИсправитьнедостаткиCVSивтожевремяобеспечитьвысокуюсовместимостьсней。

Каки.CVS,svnэтобесплатнаясистемаконтроляверсийс открытым исходным кодом。Стойлишьразницей,чтораспространяетсяподлицензиейApacheанеподОткрытым лицензионным соглашением gnu。

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

МногиеразработчикипереключилисьнаSVN,таккакноваятехнологияунаследовалалучшиевозможностиCVSивтожевремярасширилаилаила。

В то время как вCVSОперациисветкамикодадорогостоящиеинепредусмотреныархитектуройсистемы,svnСозданакакраздлятого。ТоЕсть,дляболеекрупныхпроектовСВетвлениемкодаимногиминаправлениямиразработки。

ВКачественедостатковSvnУпоминаштсясравнительноНизкаяСкоростьинехваткараспределенногоуправленияверсиями。Распределенный.контрольверсийИспользуетпиринговуюМодель,АНецель,АНецентрализованныйсервердляхраненияОбновленийпрограммногоКода。ихотяпиринговаямодельработаетлучшев开源Проектах,ОнаНеидеальнавдругихСлучаях。Недостатоксерверногоподходавтом,чтокогдасерверпадает,ТоУклиентовНетдоступаккоду。

Преимущества:

  • СистеманаосновеCVS
  • ДопускаетАтомарныеоперации.
  • Операциисветвлениемкодаменеезатратны
  • широкийвыборплагиновIDE
  • НеиспользуетпиринговуюМодель

Недостатки:

  • Всеешесохраняютсяошибки,связанные с переименованием файлов и директорий
  • НеудовлетворительныйнаборКоманддляработысрепозиторием
  • СравнительноНебольшаяскорость.

Git.

Git版本控制软件

ЭтасистемабыласозданадляуправленияразработкойядриаLinuxиспользуетподход,которыйвкорнеотличаетсяотCVSиSVN。

восновуGit.закладывалиськонцепции,призванныесоздатьболеебыструюраспределеннуюСистемуконтроляверсий.,впротивовесправиламирешениям,ИспользованнымввCVS。GitТаккакразрабатываласьглавнымобразомподLinux,тоименновэтойОСонаработаетбыстреевсего。

GitтакжеработаетнаUnix -подобныхсистемах(какMacOS),адляработынаплатформеWindowsиспользуетсяпакетmSysGit。

ПрограммныйкодМожетБытьнедоступен,КогдаИспользуетсякомпьютерБезрепозитория。длярешенияэтойпроблемыестьобходныепутиинекоторыеразработчикиполагашт,чтобыстродействиеGitввляетсясправедливойплатойзанеудобства。

,КрометоговGitестьмножествоинструментовдлянавигациипоисторииизменений。Каждаярабочаякопияисходногокодасодержитвсюисториюразработки,чтокрайнеполезно,когдапрограммируешьбезИнтернет——соединения。

Преимущества:

  • ПрекрасноПодходитдляТех,КтоНенавидитCVS/ svn.
  • Значительноеувеличениебыстродействия
  • Дешевые операции с ветками кода
  • Полнаяисторияразработкидоступнаяоффлайн
  • Распределенная,пиринговаямодель

Недостатки:

  • ВысокийпорогВхождения(Обучения)длятех,КторанееиспользовалSvn
  • ОграниченнаяподдержкаWindows(посравнениюсLinux)

水银

Mercurial版本控制软件

水银была выпущена одновременно с Git。Этотакжераспределеннаясистемаконтроляверсий

MercurialсоздаваласьвкачествеальтернативыGitдляразработкимодулейядраLinux。Нотаккаквыбраливсе——такиGit,тоMercurialиспользуетсяменьше。Темнемене,емногиеведущиеразработчикиработаютименносэтойсистемой,напримерOpenOffice.org

СистемаконтроляверсийMercurialотличаетсяотдругихСистемКонтроляверсий.Тем,чтоГлавнымобразомонанаписананаPython(АНЕС)。Однако,Некоторыечастивыполненывкачествемодулей-расширенийнаC。

ПосколькусистемадецентрализованнаяинаписананаPython,МногиеPython-Программистысклоняштсякпереходунаmercurial。

Пользователиотмечают,чтоMercurialсохраниланекоторыехарактеристикиSVN,являясьприэтомраспределеннойсистемой,иблагодаряэтойсхожести,порогвхожденияунеенижедлятех,ктоужезнакомсSVN。ТакжедокументацияпоMercurialболееполная,чтопомогаетбыстрееосвоитьсясразличиями。

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

Преимущества:

  • ПосравнениюСGitЛегчевосвоении
  • Подробнаядокументация
  • Распределеннаямодельсистемыконтроляверсий

Недостатки:

  • Нет возможности слияния двух родительских веток
  • ИспользованиеПлагинов,АНЕСкриптов
  • Меньшевозможностейдлянестандартныхрешений

Какаясистема контроля версий мне подходит吗?

为程序员和开发人员提供版本控制软件

В большинстве случаев разработчики используютCVSПотомучтоштоимпривычнее。Есликомандаужеработаетнадпроектом,ТоПерспективапереносавсехнаработоквдругуюСистемуконтроля.Как-тоневдохновляет。ЕслиБыимВсе-такипришлосьменятьсистему,То,Скореевсего,ОниПереключилисьбынаSvn。

CVSужедостигластатусаз”релойтехнологии”,аэтозначит,чтовнейуженепоявитсярадикальноновыхфункцийирешений。Инерцияпривычкитеряется,таккаклюдипереходятнаSVN。А значит CVS постепенно уходит в прошлое。

СегодняSVNУдерживаетпальмуПервенствасредисерверныхСистемКонтроляверсий.。ОнавключаетвСебяпреимушестваCVSипревосходитих。Еслижеговоритьораспространенности,товы,скореевсего,будетечащесталкиватьсясCVSили SVN, чем с Git или Mercurial。Такимобразом,знаниеоднойсервернойтехнологии,хотяинеявляетсянеобходимы,моблегчитвампереход。

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

Уgitвновышебыстродействиепосравнениюсконкурентами。дляпроектов,КоторыесоздаштсяподРаспределенныесистемыконтроляверсий,этоочевидноеулучшение。

СушественнымнедостаткомGitвляетсяТо,чтопоройтруднообъяснитьнэансыработыданнойсистемыконтроля,иэтотормозитрабочийпроцесс,покапрограммистыпривыкаюткней。,Однакокактолько«порогвхождения»преодолен,продуктивностьвозрастаетиудобствоуправленияветкамикодасполнаокупитпотраченноевремя。

длятех,ктотерпетьнеможетgit(АУэтойсистемыестьсвоипротивникивсредеразработчиков),Mercurial - этокомпромиссмеждуsvnиgit。этасистемаиспользуетсявомногихизвестныхпроектах,АТакжеунеехорошаядокументация。

Совместимаяс的Windowsверсия的Gitтакжепрогрессирует,приближаясьпосвоемубыстродействиюкLinux的версии,такчтоэтасистемаможетбытьдлявасактуальна,дажеесливыневедетеразработкувLinux操作系统。

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

Еслидляпроектатребуетсяединоедеревоисходногокода,надкоторымбудетработатьнебольшаягруппапрограммистов,тоSVN——этовашвариант。Онанадежнаипредназначенакакраздлятакихслучаев。

Еслижевызапускаете开源проект,надкоторымвразноевремябудуттрудитьсянесколькопрограммистовили,еслипредполагаетсяпостоянноеобновлениекода,товыбирайтеGIT中。Скоростьиуправлениедеревомисходногокодаздесьнамноголучше,чемвsvn。

Есливынараспутьеиливампростоненравится,какработаютSVNилиGit,тогдаквашимуслугам水银。

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

Преждевсего,Решите,подходитлитаилиинаяСистемаКонтроля.версийдлявашегобизнеса,азатем——чтонеменееважно——убедитесь,чтоэтотвыборнеприведетвяростьпрограммистов。

Приступая к работе с SVN

ЕсливыникогданеработалисsvnИлиgit,ипонятиянеимеете,Какначать,тохостинговоерешениевсочетаниисграфическиминтерфейсомПомогутВамБыстроосвоиться。

Какивбольшинствеслучаев,самоеглавно,еначатьработу、атамужепридетпонимание。ЭксплуатациясистемыконтроляверсийоченьпохожанаработусфайламинасервересиспользованиемFTP -клиента。

ПРИМЕЧАНИЕ:Естьмножествохостинговыхрешенийдлясистемыконтроляверсий,втомчислесбесплатнымпробнымпериодом。Выможетесоздатьнаихбазесвойпервыйрепозиторий(МестодлясовместнойРаботысфайламикода)Совершеннобесплатно。Вотнекоторыеизэтихсервисов:

Хостинг SVN & git

  • Beanstalk git和subversion托管

    豆蔻展示

    - - - - - -безопасный, надежный и подходящий для хостингаGit.и颠覆Просмотр активности, файлов, сравнение ревизий。Отличныйпользовательскийинтерфейс。Интеграциясомногимипопулярнымисервисами,включая推特!Ценавопроса:от $15 в месяц

  • unuddle subversion和git托管

    Unfuddle

    ——популярныйсредиразработчиковПОхостингдляSVN, Gitиуправленияпроектамисхостинговымрешением。С помощью виджета дляMac OSспростымипонятныминтерфейсомвыможетеследитьзаактивностьюваккаунтевовсехвашихпроектах。2ПользователяБесплатно+1ПроектСранилишемдо200MB

  • Sliksvn Subversion托管

    Sliksvn.

    ——ещеоднаопциядлябесплатногохостинга,нонетакаяхорошаякакUnfuddle。1пользовательбесплатно+ 1проектсхранилищемдо100 mb

  • xp-dev.com.

    xp-dev.com.

    - хостингsubversion,gitиmercurial。Отличноесоотношениеценыифункционала。$ 5ВМесяц,НеограниченноечислоПроектов,Пользователейиранилищедо2GB

СозданиеПервогоРепозитория.

ПослетогоКаквысоздалиАккаунт,НеобходимосоздатьРепозиторий - длякаждойплатформыотдельно。Обычноэтовыглядиттак:

  • Войдитевсвойаккаунт,кликнитеповашимпроектам。
  • Созданиепроекта:
  • Встроке«创建一个新项目»ВведитеимяВашегопроекта
  • Кликните по кнопке«创建项目»
  • ПодключениеSVN:
  • Послесозданияпроекта,Выберитевкладку«源控制»(ВерсиямиисходногоКода)
  • Кликните по ссылке«启用源代码控制»
  • Присвойтерепозиториюимя
  • Нажмите«保存»

Графические клиенты SVN и git

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

TortoiseSVN

- - - - - -удобная программа для работы сСистемамиконтроляверсий.в微软Windowsивозможно,лучшийизпредставленныApache Subversionкхлиент。TortoiseSVNреализованкакрасширениеоболочки窗户,чтопозволяетлегкоинтегрироватьеговбраузер。Крометого,этопрограммасоткрытымисходнымкодом,длякоторойдоступны34зыковыхпакета

Smartgit.

——графическийклиентGit(开源распределеннаясистемаконтроляверсий)。РаботаетвWindows,Mac OSXИLinux。Стоимость лицензии - $39

  • 版本Mac Subversion客户端

    版本

    - - - - - - SVNклиентдляMAC OS X -版本:простейшаясистемаконтроляверсийдля。Поихсобственнымсловам:«Благодарянашемуподходу,высможетеначатьбезраскачки。”Данный клиент прост в использовании。Ценавопроса:£39(Примерно$50СогласноТекушемукурсу)

  • Tower Git Client for Mac

    - клиентgitдляmacosx - ещеодноэлегантноерешение,идеальноподходяшеедляпользователейgit,которыеужезнакомыссинтаксисомкоманднойстроки。Естьтакжехорошийознакомительныйобзорпродукта,СодержащиймножествоБазовыхКонцепцийGit(См。Ниже)。〜примерно50美元залицензию,доступныменеезатратныемульти——лицензионныеопции。

«Извлечение»репозитория(“结帐”)

Итак,клиентвыбран。Теперьнеобходимосоздатьрепозиторийдлясистемыконтроля。НужноввестиURL -адресвашегорепозитория,имяпользователяипароль。

URL-адресобычновыглядитТак:https://svn <中> .hostname.com/svn/ <库>(ВыможетеиспользоватьHTTPS://(SSL),ЕслиУВасПлатныйакаунт)

  1. ПерейдитевКорневуюпапку,Нажмитекнопку«退房»(«Извлечение»)ис​​оздайтерабочуюПапабабапкудляклиента。Теперьвыможетедобавлятьвнеефайлы。
  2. ПослеизвлеченияФайловпроектавысможетередактироватьихвлокальнойдиректориинавашемКомпьютере。

ПослевнесенияИзмененийвФайлыдляихсохранениянажмитекнопку«入住手续»(«Возврат»)напанелиинструментов。Выможетепросматриватьизмененияидобавлятькнимкомментарии - этодовольнохорошаяидея,таккаквдальнейшемвыбудететочнознать,надчемработали,какиеизменениявнесеныибудетедержатьвкурседругихучастниковпроекта。

Ввашемклиентетакжедолжнабытьпредусмотренавозможностьвлюбоймоментначатьработусревизиями,открывжурналревизийилиисториюизменений - тогда,еслипонадобится,высможетесделать«откат»кпредыдущейверсиидлякаждогофайлавотдельности。Теперь,КогдавызнакомысбазовымиКонцепциями,Документациясистемыконтроляверсийпослужитвамхорошейотправнойточкойдляосвоенияеерасширенныхфункциональныхвозможностей。

мненияклиентовТаймдоктор:

多买些这样的东西
在你的收件箱

订阅我们的邮件列表,在你的电子邮件收件箱中获取关于远程工作和生产力的有趣内容

我们尊重您的隐私,并重视保护。

добавитькомментарий.

Ваш адрес电子邮件не будет опубликован。Обязательныеполяпомечены*