Subversion

Уикипедия — ашық энциклопедиясынан алынған мәлімет
Мұнда ауысу: шарлау, іздеу
Subversion
Subversion.png
Тұрпат

орталықтандырылған нұсқаларды басқару жүйесі

Жасаушылар

Apache Software Foundation

Жазылған

C және C++

Операциялық жүйелер

GNU/Linux, Microsoft Windows, macOS, IBM AIX, FreeBSD, NetBSD, OpenBSD, HP-UX және Solaris

Соңғы нұсқа

1.8.10, 1.8.13, 1.9.0-rc1, 1.9.2, 1.9.3, 1.8.15, 1.9.4, 1.9.5, 1.9.6, 1.8.18 және 1.9.7

Лицензия

Apache-2.0

Subversion[1] (сондай-ақ "SVN"[2] ретінде белгілі) — еркін орталықтандырылған нұсқалард басқару жүйесі, ресми түрде 2004 жылы CollabNet[en] компаниясы шығарған. 2010 жылдан Subversion Apache Software Foundation жобаларының бірі болып табылады және ресми Apache Subversion (тіркелген тауар таңбасы[3]) деп аталады.

Мақсаты жобаны әзірлеуді бастау — деген таратылған сол кезде жүйесіне Concurrent Versions System (CVS), ол бүгінгі күні ескірген болып саналады. Subversion жүзеге асыруда барлық негізгі функциялары CVS және бос бірқатар кемшіліктерді соңғы.

Subversion пайдаланылады көптеген қоғамдастықтар әзірлеушілер ашық бағдарламалық қамтамасыз ету (оның ішінде қоғамдастықтар, бұрын использовавшими CVS). Олардың қатарында танымал жобалар, Apache, GCC, Free Pascal, Ruby, FreeBSD, AROS, Blender, Boost, Tor. Subversion, сондай-ақ кеңінен пайдаланылады жабық жобаларға және корпоративтік. Хостинг Subversion, соның ішінде жобалар үшін ашық коды бар, сондай-ақ ұсынады танымал хостинг-жобалар SourceForge.net, Tigris.org, Google Code және BountySource.

"2007 жылы аналитикалық компаниясы Forresterсалыстыра отырып, артықшылықтары мен кемшіліктері әр түрлі жүйелердің бағалады Subversion ретінде "жеке-дара көшбасшы санаттағы Standalone Software Configuration Management (SCM) және күшті қатысушы санатындағы Software Configuration and Change Management (SCCM)".

Статистика деректері бойынша пайдалану пакеттерін Linux-дистрибутивов Debian және Ubuntu, саны белсенді пайдаланушылар Subversion шамамен осындай, Gitасып түседі бұл көрсеткіш үшін, CVS, Mercurial және Bazaar (маусымдағы жағдай бойынша 2011 жылғы).

Ретінде ресми құжаттаманы қаралады кітап баспасының O ' Reilly Media, выложенная еркін және дописываемая авторлары қарай шыққан жаңа нұсқаларын SVN. Сол жерде жарияланады, оның аудармалар бірқатар тілдер, соның ішінде орыс, бірақ бұл ағылшын тілді нұсқасы кітаптар қазір сипаттайды нұсқасы 1.6 және 1.5, орыс тілінде болса, тек кітаптар сипаттайтын нұсқасына дейін 1.4 қоса алғанда.

Мазмұны

Тарихы[өңдеу]

Әзірлеу Subversion басталды 2000 жылы бастамасымен және қаржылық қолдауымен CollabNet. Жобаның бастамашылары келеді құруға еркін басқару жүйесін нұсқаларымен, негізінен оск мүшесі м. CVS, бірақ лишенную оның қателер мен қолайсыздықтар. Сол уақытта, жоқ, үздік бағдарламаларды осы класс еркін лицензиямен, CVS болатын стандарт де-факто арасында әзірлеушілер еркін бағдарламалық қамтамасыз ету. Таңдай отырып, оның негізіне, әзірлеушілер Subversion, - деген екен жеңілдету әзірлеуді пайдалану есебінен қазірдің өзінде тексерілген тұжырымдамаларын және сол уақытта жеңілдету жаңа жүйесіне өту көптеген пайдаланушыларға CVS.[4]

  • 31 августа 2001 года команда разработчиков перешла с CVS на Subversion для управления собственным исходным кодом: Subversion стала «самодостаточной».
  • 23 февраля 2004 года вышел релиз 1.0.0[5]. К этому времени Subversion уже использовалась примерно на 1400 серверах с открытым доступом.[6]
  • 29 сентября 2004 года появился релиз 1.1.0. Среди основных нововведений — новый формат хранилища на основе обычных файлов (FSFS), в дополнение к существовавшему ранее (с использованием Berkeley DB).[7]
  • 21 мая 2005 года вышел релиз 1.2.0, в котором добавлена возможность блокировки файлов,[8] что позволило улучшить поддержку клиентов WebDAV/DeltaV, в том числе, реализовать автоматическое создание новых версий при редактировании файлов с помощью таких клиентов. Начиная с этого релиза Subversion по умолчанию использует FSFS для новых хранилищ.
  • 30 желтоқсан 2005 года вышел релиз 1.3.0.[9] Основными изменениями являются возможность устанавливать права доступа к директориям при использовании svnserve, дополнительные возможности команд, а также множество улучшений для разработчиков.
  • 10 сентября 2006 года вышел релиз 1.4.0.[10] Он поддерживает работу с BerkeleyDB 4.4 и может использовать её функции самовосстановления. Ранее при сбоях Subversion хранилище, использующее BerkeleyDB, могло остаться в «заклиненном» состоянии и требовалось вмешательство администратора для восстановления работы системы (при использовании FSFS этой проблемы нет).
  • 19 июня 2008 года вышел релиз 1.5.0[11], в нём сделано множество улучшений, самым значительным из которых является базовая поддержка отслеживания слияний (ағылш. merge tracking). Эта возможность делает процесс слияния пакетов в Subversion более простым и надёжным.
  • 20 марта 2009 года вышел релиз 1.6.0.[12] Улучшения поддержки svn:externals, обнаружение «конфликтов деревьев» (ағылш. tree conflict), улучшение эффективности хранения данных в репозитории и другие внесённые изменения.
  • В феврале 2010 года проект Subversion был официально переведён под управление Apache Software Foundation (ASF)[13]. Президент Subversion Corporation и директор Open Source в WANdisco выступил с видеообращением, в котором с энтузиазмом пообещал всем, что переход Subversion к ASF будет лишь способствовать более активному развитию проекта.[14]
  • 11 октября 2011 года состоялся релиз 1.7[15]. Основные улучшения: теперь только одна папка .svn в корне рабочей копии; ускорена работа по HTTP; добавлена утилита svnrdump; новая команда svn patch.
  • 18 июня 2013 года вышел релиз 1.8.0.[16] Apache Subversion 1.8 является расширением всех предыдущих выпусков Subversion.

Жалпы мәліметтер[өңдеу]

Мүмкіндігі[өңдеу]

  • Сақтауға толық тарих өзгерістер зерттелетін объектілерді (файлдар, каталогтар, символдық сілтемелер[17]) орталықтандырылған қоймасы (репозиторийін), оның ішінде өзгерген кезде атрибуттарды ("метадеректер"), жылжыту, қайта атау және жою
  • Көшіру объектілердің разветвлением тарих — көшіру кезінде қоймада пайда болып, екі бөлек объектінің жалпы тарихы
  • Қолдау көшіру өзгерістер арасындағы көшірмелерімен объектілерін, оның ішінде толық бірігу көшірмелерін (жұмыс көшірмелері; без бірлестігінің тарихы)
  • Эмуляция[18] тармақталу:
    • құру тармақтарының көмегімен көшіруді, қалталарды шолыңыз және кейіннен тәуелсіз олармен жұмыс
    • қосу тармақтарының автоматты түрде айқындай және көшіруге өзгерістер
  • Эмуляция[18] белгілерді (көшіруді директориялар)
  • Қазақстан тарихы мен өзгерістер көшірмелері объектілерін (оның ішінде бұтақтары мен белгілер) түрінде сақталады байланысты айырымдық көшірмелері — "арзан" (талап етпейтін үлкен уақыт және дискілі ресурстарды) құру мен сақтау
  • Қолдау бәсекелестік (оның ішінде бір мезгілде, оқшаулаумен транзакция) бірнеше жұмыс қоймасы және, көп жағдайда, автоматты түрде бірігуі өзгерістер әр түрлі әзірлеушілердің (жұмыс көшірмелері)
  • Тіркеу өзгерістер қоймасы (соның ішінде многообъектные) ұйымдастырылады түрінде атомарных транзакция
  • Желілік арасындағы алмасу сервер және клиент беруді көздейді тек арасындағы айырмашылықтарды жұмыс көшірмесімен және қойма
  • Мүмкін, жұмыс мәтіндікжәне екілік файлдар, алайда, негізгі мақсаты болып табылады бағдарламалық код түріндегі мәтіндік файл. Екілік файлдар сақталады емес, оңтайлы және өте тиімді пайдаланылатын дисковому кеңістік және пайдалану процессор;
  • Әр түрлі нұсқалары қол жеткізу хранилищу, оның ішінде:
    • тікелей қол жеткізуі локалды файлдық жүйесі;
    • по собственному желілік хаттама;
    • арқылы веб-сервер протоколы бойынша WebDAV/DeltaV.
  • Қорытынды клиенттің командалық жолдың бірдей ыңғайлы мен үшін оқу және талдау бағдарламалары
  • Мүмкіндігі зеркалирования қоймалар
  • Екі ықтимал ішкі форматты қоймалар (ағылш. repository): деректер қоры немесе жиынтығы кәдімгі файлдар
  • Интернационализированные хабарлар бағдарламасы (пайдаланылады параметрлер тілдерді қосылу)
  • Кітапхана үшін тілдер PHP, Python, Perl, Java мүмкіндік береді встроить функционалдығы клиенттің Subversion, осы тілдерде жазылған
  • Көп деңгейлі архитектура кітапхана, бастапқыда клиент-серверлік үлгі

Subversion — орталықтандырылған жүйесі (айырмашылығы үлестірілген сияқты Git немесе Mercurial), яғни деректер сақталады бірыңғай қоймасы. Қойма орналасуы мүмкін локалдық диск немесе желілік серверде.

Жұмыс Subversion аз ерекшеленеді басқа да орталықтандырылған басқару жүйелерінде нұсқаларымен. Клиенттер копируют файлдар қоймадан жасай отырып, жергілікті жұмыс көшірмелері, содан кейін өзгерістер енгізеді, жұмыс көшірмелері және тіркейді, бұл өзгеріс қоймасы. Бірнеше клиенттердің бір мезгілде өтініш хранилищу. Бірігіп жұмыс істеу үшін файлдармен Subversion негізінен пайдаланылады моделі көшіру — өзгерту — біріктіру. Сонымен қатар, файлдарды жол бермейтін біріктіру (әр түрлі екілік файл пішімдері) болады модель оқшаулау өзгерту — оқшаулаудан шығару.

Сақтай отырып, жаңа нұсқаларын пайдаланылады дельта-компрессиясы: жүйе табады ерекшелік жаңа нұсқасы алдыңғы және жазады, оларды болдырмай, қайталау.

Пайдалану кезінде қол жеткізу арқылы WebDAV сондай-ақ қолдау мөлдір басқармасы нұсқаларының — егер кез келген клиент WebDAV ашады және жазу үшін, содан кейін сақтайды, файл хранящийся желілік ресурсында, онда автоматты түрде құрылады жаңа нұсқасы.

Түрлері репозиторий қорына[өңдеу]

Subversion ұсынады екі нұсқасы ұйымдар репозиторий қорына[19]. Репозиторийін бірінші типті пайдаланады сақтау үшін деректер базасын негізінде Berkeley DB, репозиторийін екінші түрі — кәдімгі файлдар арнайы форматты (деректерге көмегімен ұйымдастырылады меншікті кітапхана, пайдаланбай, басқа деректер). Әзірлеушілер Subversion деп жиі атайды қоймасы "файлдық жүйе", сондықтан екінші түрі атауын алды FSFS, яғни (версионированная) файлдық жүйе (ағылш. File System), үстінен (әдеттегі) файлдық жүйесі.

Екеуі репозиторий қорына қамтамасыз етеді жеткілікті сенімділігі кезінде дұрыс ұйымдастыру[20] (Berkeley DB пайдаланады файлдарды бұғаттау, сондықтан оны қолдануға болмайды, кейбір желілік файлдық жүйелерінде, қолдайтын блоктау), олардың әрқайсысы бар өз артықшылықтары мен кемшіліктері бар. Болып саналады, бұл FSFS оңай дұрыс орнату, ол талап етеді аз көңіл әкімшісінен. Сонымен қатар, релизінің 1.4 қоймасын пайдаланатын Berkeley DB еді белгілі бір жағдайларда болуы мүмкін деп аталатын заклиненном (ағылш. wedged) жай-күйі; талап етілген араласу әкімшісінің қалпына келтіру үшін, оның жұмыс қабілеттілігі. Бастап релизінің 1.2 жаңа қоймаларды әдепкі бойынша пайдаланылады FSFS.

Қол жеткізу репозиторию[өңдеу]

Subversion мынадай қатынау тәсілдері репозиторию:

  • тікелей қол жеткізу репозиторию диск (жергілікті немесе желілік, файлдық жүйе);
  • қашықтан қатынау хаттамасы бойынша WebDAV/DeltaV үстінен HTTP немесе HTTPS) пайдалана отырып, модульдің mod_dav_svn үшін, веб-сервер Apache 2;
  • қашықтан қол пайдалана отырып, меншікті хаттаманың SVN:
    • "бөлінген желілік қосылған (әдепкі TCP портына 3690);
    • арқылы стандартты енгізу-шығару (оның ішінде құралдары арқылы қашықтан CLI, мысалы, SSH).

Барлық бұл әдістер пайдаланылуы мүмкін жұмыс істеу үшін репозиториями екі үлгідегі (FSFS және Berkeley DB). Қол жеткізу үшін бір репозиторию бір мезгілде пайдаланылуы мүмкін әр түрлі тәсілдері.

Негізгі тұжырымдамасы[өңдеу]

Файлдық жүйе[өңдеу]

Сур. 1. Двумерное ұсыну файлдық жүйенің Subversion

Пайдаланушының тұрғысынан қоймасы Subversion білдіреді "двумерную" файлдық жүйесін. Объектілер қоймасы (файл мен директорияның) сәйкестендіріледі екі "координаттары": аты және нөмірі, тексеру. Басқаша айтқанда, қойма білдіреді алабы жедел суреттер (ревизия) ағаш файлдар мен директориялар, индекстелетін нөмірімен тексеру. Әрбір осындай сурет — қарапайым (одномерная) файлдық жүйе.

Қажет болған жағдайда, нұсқаулар нақты тексеру объектісінің пайдаланылады жазба түрі: аты@ревизия, мысалы, /main.c@29 — файл /main.c ревизия 29. Мұндай нұсқауды тексеру үшін пайдаланылатын нақтылау атындағы деп аталады өзекті тексеру (ағылш. peg revision).

- Сур. 1 көрсетілгендей графикалық ұсыну файлдық жүйелері: тік ось сәйкес келеді көптеген атаулардың, көлденең — көптеген тексеру.

Файл аттары[өңдеу]

Аты объектінің файлдық жүйенің Subversion бойынша құрылады ережелермен және UNIX-тәрізді операциялық жүйелер: тек бір тамыр директориясы, жолының элементтері бөлінеді қиғаш сызықпен ("/"). Объектілері файлдық жүйесі болып табылады файл мен директорияның (сондай-ақ символдық сілтемелер, эмулируются әдеттегі файлдарды орнату арқылы атрибута svn:special).

Нөмір тексеру[өңдеу]

Нөмірі ревизия Subversion — бұл табиғи саны (немесе 0 үшін ең бірінші ревизия), адресующее нөмірі жай-күйін сақтау қоймасының процесінде өзгерістер онда қамтылған деректер. Әрбір табысты фиксациялау өзгерістер тудырады тура бір жаңа тексеру, қойма, яғни N-ші тексеру — бұл жай-күйі қоймалар кейін N-ші фиксациялау.

"Subversion тексеру жай-күйін сипаттайды емес жеке файл, ал қойманың жалпы алғанда. Мысалы, ревизия 32 (обведено пунктиром суретте) — бұл жай-күйі төрт файлдар және директориялар, бұрыннан бар қоймада сол кезде.

Нөмірі ревизия аналогы болып табылады уақыт , оның мағынасында, бұл аз нөмірлері ревизия сәйкес неғұрлым ерте состояниям қоймасын, үлкен — кеш.

  • Ең төменгі нөмірі ревизия 0 (нөл) сәйкес келеді изначальному жағдай қоймалар болған жоқ еді бірде-бір түзету. Нөлдік тексеріс қоймасы құрамында тек бос тамыр директорию.
  • Ең жоғары нөмірі ревизия сәйкес келеді ең соңғы жағдай сақтау орны, яғни жағдай белгілегеннен кейін соңғы түзету. Орнына нұсқаулар нөмірі соңғы ревизия пайдалануға болады кілт сөз HEAD (бас ревизия); бұл өте ыңғайлы, себебі нөмірі бас ревизия кезінде жоғарылайды әрбір тіркеу өзгерістер.

Нөмірі ревизия ретінде қарастыруға болады жеңіл алғандығы уақытша белгі-тарих қоймасы. Сонымен қатар, әрбір нөмірімен ревизия байланысты абсолюттік мәні уақыт, бұл тексеру жүзеге асырылды (қасиеті svn:date). Алайда нұсқау нөмірін тексеру ыңғайлы қарағанда, нұсқау, жоқ шатасуы бастап уақыт белдеуінде орналасқан елдерде, жазба нөмірлері қысқа және нөмірі, тексеру мүмкін емес.

Жедел және өзекті тексеру[өңдеу]
Сур. 2. Нұсқау тұғырына тексеру

Нөмірі ревизия пайдаланылады екі түрлі контексте:

  • жедел тексеру (ағылш. operative revision);
  • тұғырына тексеру (ағылш. peg revision).

Тексеру деп аталады, жедел, егер ол көрсетеді ревизия немесе диапазоны ревизия, оған қолданылуы тиіс операция, мысалы: svn log -r 199:230 http://some.path Мысалда орындалады командасы svn log диапазоны үшін ревизия 199:230, ол болып табылады төмендігі жедел тексеру.

Алайда нұсқау тек файл және жедел ревизия кейде бір мәнді көрсетуі қойма объектілері. Мысалы, жағдайды, көрсетілген сомаға-сур. 2, түсініксіздіктер туындайды орындау кезінде келесі команда: svn log -r 29:33 http://some.path/bar.txt Командада көрсетілген диапазоны жедел тексеру (29:33), бірақ облысы, бөлінген суретте көгілдір және жасыл фонмен, тең дәрежеде деп санауға болады тарихымен файл /bar.txt диапазонында ревизия 29:33. Мұндай жағдайларда қажет және стержневую тексеру үшін рұқсат бір келкі. Өзекті ревизия — бұл нөмірі, тексеру, көрсетілген қосымша URL объектінің файлдық жүйесі (пайдаланылатын жазба түрі ", URL@ревизия"). Атауының ағылшын сөздер peg, ол аударуға болады ретінде "өзегі" немесе "қазық". Өзекті ревизия атап ту тізбекті күйлер тиесілі көрсетілген жұп URL@ревизия және, осылайша, әрине сәйкестендіреді объект қоймалар, оған қолданылуы тиіс команда. Төмендегі мысалда бірінші команда шығарады тарихын, бөлінген суретте көгілдір фоны, ал екіншісі — тарихын, бөлінген жасыл фонмен: svn log -r 29:33 http://some.path/file.txt@32 svn log -r 29:33 http://some.path/bar.txt@34 Ретінде тұғырына тексеру керек болады, кейінірек жағдайы қызықтырған нысан. Себебі бұл тізбек күйінің бір мәнді бақыланып отыр - "артқа", бірақ "алға". Мысалы, URL-бабына тұғырына ревизия http://some.path/foo.txt@31 тиесілі екі тізбегіне жай-күйлер (бөлінді, сәйкесінше жасыл және сұр түспен белгіленген фоны). Осы екі шынжыр көрсетілген URL адресует сұр аумақты тізбегін, яғни қозғалыс кезінде "алға" тұғырына тексеру операциялар көшіру еленбейді.

Операциялар файлдық жүйе[өңдеу]

Бақылау объектілері файлдық жүйесін қоймаға Subversion жүргізілуі мүмкін төменде санамаланған операциялары (суретті қараңыз). 1). Жақша ішінде көрсетілсе, қысқаша именование операциялар обозначениях команда svn status.

  • Қосу (A). Нысан қосу файлдық жүйесі. Қосылған объект жоқ тарихты тексеру. Мысал суретте көрсетілген:
  • файл /main.c күні қосылды да, тексеру 27.
  • Модификациялау (M). Модификация-объектінің, мысалы, өзгерту файл мазмұнын немесе өзгерту қасиеттерін файлдың немесе директорияның. Мысал суретте көрсетілген:
  • файл /main.c болды модификацияланған "тексеру 28.
  • Жою (D). Алып тастау файлды бас және кейінгі тексеру. Бұл ретте файл қалады алдыңғы ревизиях. Мысал суретте көрсетілген:
  • файл /main.c болатын алып тасталды - да тексеру 30.
  • Қосу тарихы (A+). Білдіреді көшіру объектінің ішіндегі файлдық жүйесін сақтау орындары, яғни объект имя_источника@ревизия_источника копируется" имя_копии@HEAD. Скопированный объект транспондердің көзінен тарихын тексеру сәтіне дейін көшіру (мұраға қалдыру, тарих суретте көрсетілген пунктирными байланыстары бар). Мысалдары суретте көрсетілген:
  • "ревизия 29 директориясы /tags/R1 болатын скопирована с директорияның /trunk@27;
  • "ревизия 31 файл /main.c альбомның көшірмесі жасалған сағат /main.c@29яғни, ерте тексеру, өзін-өзі, осылайша, өндірілген қалпына келтіру бұрын жойылған (ревизия 30) файлды сақтай отырып, тарих ревизия.
  • Ауыстыру (R+). Орын алған жағдайда бір ревизия жүргізілуі мен оларды жою объектіні (D), және қосу тарихымен (A+) объектінің сол атымен. Дегенмен аты операция кезінде ауыстыру өзгеріссіз қалады, Subversion қарайды объектіге дейін және кейін ауыстыру ретінде екі түрлі объектінің әр түрлі табыстылық оқиғаларымен ревизия (тарихы ескі аяқталады нүктесінде ауыстыру, тарихы жаңа мұраға қалдырылады көзінен көшіру және бұдан әрі). Мысал суретте көрсетілген:
  • "ревизия 30 файл /file.txt болды ауыстырылды: ескі файл /file.txt жойылған, ал жаңа файлды сол атымен скопирован с файл /bar.txt@29.

Бақылау өзгерістер[өңдеу]

Жұмыс көшірмесі[өңдеу]

Жұмыс көшірмесі — бұл құрылған клиенттік бағдарламада Subversion жергілікті көшірмесі бөлігінде мәліметтер қоймасын қамтитын және басқа жеке деректер кейбір қызметтік ақпаратты (жасырын директорияның аты .svn). Қызметтік ақпарат үшін қажет дұрыс жұмыс істеуін, жұмыс көшірмелері; немесе өзгертуге қызметтік деректер болмайды. Ең төменгі бірлігі деректерді алуға болады қоймадан ретінде жұмыс көшірмесі болып табылады директориясы. Мазмұн директорияның болады извлечь толық емес: мысалы, болады деген сөз алып тасталсын жекелеген файлдарды немесе поддиректории. Алайда үйренген қоймалар жеке файл ретінде жұмыс көшірмесін мүмкін емес.

Кез келген поддиректория жұмыс көшірмелері Subversion 1.6 және ертеректегі нұсқалары, сондай-ақ толыққанды жұмыс жасаса, өйткені әрбір директорияның сақталады оның қызметтік деректер (каталогтар .svn). Версиясынан бастап 1.7 әрбір жұмыс көшірмелері бар бір ғана директориясы .svn түбегейлі оның бейнеленеді.

Жұмыс көшірмесі болып табылады және пәрменді тармағына мағынада, Subversion сақтамайды, қандай да бір деректердің жататын жұмыс көшірмелері, одан тыс. Сондықтан бола отырып, бір жұмыс көшірмесін жасауға болады бірнеше көшірмелерін қарапайым көшіруді шығынсыз желілік трафик.

Қызметтік директориях жұмыс көшірмелері, басқа, өзге де сақталады деп аталатын таза көшірмесі (ағылш. pristine copy) — файлдарды жұмыс көшірмелері өзгермеген түрде шығарылады, олар қойнауынан алынған қоймалар (svn бұл тексеру атымен BASE). Болуы таза көшірмелері мүмкіндік береді тез және жүгінбей хранилищу операцияларды орындауға қарап, екеуміз жергілікті өзгерістер. Алайда, мөлшері, жұмыс көшірмесін дискіде шамамен екі есе көп (деректер + таза көшірмесі) мөлшеріне қарағанда өздері. Мұндай тәсіл қарамастан, дискілі ресурстар арзан және қол жетімді қарағанда, ресурстарға деректерді тарату желілері.

Әдетте, құру, жұмыс көшірмелері болып табылады бірінші және қажетті кезең бекіту үшін жергілікті өзгерістер, өйткені тіркелсін қоймаға болады ғана емес, сонымен қатар жасалған жұмыс көшірмелері. Болып табылады операциялар орындалуы мүмкін тікелей қоймада құрмай жұмыс көшірмелері.

Транзакция[өңдеу]

Жұмыс қоймасы " Subversion түрінде ұйымдастырылады транзакция қасиеттерімен атомарности және оқшаулау қасиеттерінің жиынтығынан ACID. Осылайша, басқару жүйесі нұсқаларының кепілдік береді тұтастығын, непротиворечивость және қол жетімділігін сақтау қоймалары кез келген уақытта уақыт.

  • Атомарность тіркеу (ағылш. atomic commits) — өзгеріс бірнеше файлдарда немесе директориях тіркеледі бірыңғай транзакцией порождая бұл ретте бір тексеру. Жағдайда сәтсіз тіркеу кезінде кез келген істен немесе қате, жүйе кепілдік береді, бұл сақтау емес, жатса ішінара өзгертілген күйінде — қоймаға түсіп, не барлық өзгерістерді, не (сәтсіздікке) — бірде-бір.
  • Оқшаулау кепілдік береді, бұл аралық жағдайын қойманың ішіндегі транзакциялар көрінбейді басқа транзакциялар және пайдаланушыларға. Мысалы, егер бір қолданушы тіркейді бір транзакцией өзгеріс бірнеше файлдарда, онда басқа пайдаланушылар көре алады мұндай жай-күйін сақтау қоймалары, онда бір бөлігі файлдарды қазірдің өзінде өзгертілген, ал бір бөлігі емес өзгертілуі мүмкін.

Деректер қасиеттері, кепілдік берілмейді үшін жұмыс көшірмелерін Subversion — ол қарағанда сақтау кезінде іркіліс немесе үзілуі мүмкін аралық немесе заблокированном жай-күйі (яғни алдында жұмыстың жалғасы ретінде оның қалпына келтіру қажет командасымен svn cleanup немесе пересоздать қайта).

Локальді және жойылған нысанды команда[өңдеу]

Барлық командалар клиенттің Subversion мынадай топтарға бөлуге болады:

  • өзгерту жұмыс көшірмесі;
  • өзгерту қоймасы;
  • өзгерту және жұмыс көшірмесі, қойманы;
  • емес, ештеңе өзгерту.

Құрылымы қоймалар[өңдеу]

Жобаның құрылымы қоймада[өңдеу]

Формальды Subversion қоймайды қандай да бір шектеулердің файлдық құрылымын жоба — ол қандай да бір кез келген ережелерінің аясында атау беру объектілерін файлдық жүйесі. Дегенмен, бар ұсынымдар жеңілдетуге, жұмысты тармақтары мен және тегтелген. В простейшем жағдайда тамыр директорияның қоймасын құру ұсынылады кем дегенде үш поддиректории:

/.
trunk
branches
tags

мұнда барлық файлдық құрылымы (негізгі желісін әзірлеу) болуы поддиректории trunk, поддиректория branches қамтуы тиіс бұтақтары жобаны tagsтаңбалар. Мысалы, келесі директориялар құрылымы қоймалар:

/.
trunk
branches
branch_1
tags
tag_1
tag_2

болуын болжайды (trunk) бір бұтағы "branch_1, "екі белгі "tag_1" және "tag_2". Осы қалталарды шолыңыз (trunk, branch_1, tag_1 және tag_2) құрамында көшірмесін тиісті нұсқалары.

/.
project1
trunk
branches
tags
project2
trunk
branches
tags

яғни тамыр директорияның орналасқан директорияның жобаларды, және әрбір оның ішінде бар trunk, branches, tagsқатысты ғана осы жобаға. Сипатталған құрылымын, қалталарды шолыңыз қоймасы ғана болып табылады мысал, іс жүзінде қоймаға ұйымдастыруға болады тәсілмен оңтайлы қолайлы жағдайда.

Басқа тәсілмен сақтау бірнеше жобаларды құру болып табылады бірнеше қоймалар. Әртүрлі қоймаларда орналастырған жөн жобалар өзара байланыспайды, өйткені арасындағы сақтауышта болмайды орындауға операциялар көшірмелеу, орнын ауыстыру және қосу. Бірнеше қоймалары болады қажет болған жағдайда біріктіру бір сақтай отырып, тарих ревизиялар арқылы импорт командасымен svnadmin load с параметрі --parent-dir).

Бұтақтары[өңдеу]

Subversion пайдаланады "файлдық моделі" (дәл сол сияқты Perforce), "тармақтары және белгілер бар бұтағы болып табылады әдеттегі директорией (сондай-ақ жасауға бұтағы бір файл емес, директория). Жаңа бұтағы құрылады командасымен svn copy. Бұтағы құрылуы мүмкін кез келген директория қоймалар, бірақ мағынасы жабысып жоғарыда сипатталған келісімдер туралы, жаңа бұтақтары. Туралы егжей-тегжейлі ақпарат тармақтарында келтірілген бөлімдерінде Ветвление және Біріктіру.

Tags[өңдеу]

Құру таңбалар, сондай-ақ жүргізіледі командасымен svn copy, яғни техникалық жағынан айырмашылығы жоқ құру бұтақтары. Айырмашылығы тек пайдалану тәсілі: болжам бойынша, ешкімнің өзгертуге болады деректер белгіде (тіркеуге және оған өзгерістер). Мысалы, күріш. 1 таңба " құрылған ревизия 29: директориясы /trunk бірі-ревизия 27 скопирована атауымен /tags/R1. Енді, егер өзгертпеу деректер директорияның /tags/R1болса, онда ол мәңгі қалады дәл көшірмесімен директорияның /trunk@27, с меткой.

Тұжырымдамасы белгілер пайдаланылатын Subversion, айырмашылығы тұжырымдамасы белгілерінің басқа жүйелерде басқару нұсқаларымен. Әдетте таңба болып табылады символикалық атымен, ол адресует файлдар жинағы және олардың жай-күйі. "Subversion таңба көшіреді файлдар жинағы және олардың жай-күйі. Таңбалар-көшірмелерін Subversion бар өз артықшылықтары мен кемшіліктері.

Артықшылықтары:

  • таңбасы көрінеді құрылымында, қалталарды шолыңыз жасауға болады, ыңғайлы ағаш пішіндес ұйымдастыру белгілер.

Кемшіліктері:

  • қиын білуге, қандай таңбалар кірді файл (сол үшін директория);
  • егер кіру құқығын белгіленген жеке үшін қалталарды шолыңыз, онда таңба бұл құқық транспондердің;
  • тегтің мазмұнын өзгертуі мүмкін;
  • егер таңбалар құрып, жұмыс көшірмесін және тіркелсін осы жұмыс көшірмелерін қандай да бір өзгерістер болса, бұл өзгертеді өзін белгісін емес, сол деректер таңбаланған. Дұрыс тәсілмен жұмыс "метки" құру болып табылады жұмыс көшірмелері жоқ таңбалар, сонымен қатар, бұл көзі болып табылады , бұл таңбалар.

Қасиеті (properties)[өңдеу]

Бірі мүмкіндіктерін Subversion қолдау болып табылады қасиеттері, яғни мәтіндік жұп аты = мәні, үшін белгіленуі мүмкін объектілер қоймасы. Қасиеттері пайдаланылады екі түрлі контексте: объектілер үшін файлдық жүйесін тексеру.

Қасиеттері объектілерін файлдық жүйесін[өңдеу]

Әрбір файлға немесе директорияның қоймаға берілуі мүмкін жиынтығы қасиеттері. Өзгерістер қасиеттерінің сақталып, тарих сияқты өзгерістер файлдық жүйесі. Пайдаланушылар орнатуға қасиеттері кез келген атаулары;, сондай-ақ бар предопределенный жинағы қызметтік қасиеттерін пайдаланылатын клиенттік бағдарламада Subversion (аттары қызметтік қасиеттері бар префикс "svn: ").

Қасиеттері файлдар[өңдеу]
svn:executable : файл Жасайды атқарылатын жұмыс көшірмелерін астында операциялық жүйелерімен жұмыс тобының UNIX).
svn:mime-type : Сақтайды, MIME-тип файла. Әсер етеді, жұмыс істеу тәсілін команда көрсететін айырмашылықты файлдар, сондай-ақ біріктіретін (merging).
svn:keywords : Тізім сөздерді (ағылш. keywords), олар ауыстырылды файлда тиісті мәндері. Үшін ауыстыру болды, кілт сөз болуы тиіс файлда түрінде $keyword$. Үшін пайдаланылады автоматты түрде жаңарту файлында маңызы бар қаланың, ауыспалы нұсқасы нұсқасына (мысалы, нөмірі, тексеру).
svn:eol-style : Айқындайды ереже бойынша түрлендіру рәміздер соңына жолының (ағылш. end-of-line, EOL) мәтіндік файл. Болған жағдайларда пайдаланылады файл болуы тиіс нақты түрі рәміздер EOL. Әдетте, пайдаланылады "native" — бұл типі символ жолдың соңына сәйкес қабылданған сол операциялық жүйесінде жүргізілетін құру, жұмыс көшірмелері.
svn:needs-lock : Білдіреді шығару кезінде қоймадан файл болады тек оқуға арналған. Бұл қасиеті пайдалану үшін мақұлданған бірлесіп механизмі құлыптау. Тыйым жазба файл болып табылады ескертпелері деп алу қажет бұғаттауды бұл файлға бұрын, оны өңдеу: алынған кезде блоктау клиенттік бағдарлама Subversion автоматты түрде жасайды файл үшін қол жетімді жазу (алып тастау блоктау қайтадан жасайды, файл қорғалған модификациялары). Оқшаулау пайдаланылуы мүмкін және орнату осы қасиеттері. Алайда, бұл кеңес берілмейді, өйткені қауіп-қатері бар басқа пайдаланушы бастауы мүмкін редакциялау құрсауланған файл, және бұл анықталса кезде ғана тіркеу өзгерістер.
svn:special : Қасиеті арналмаған орнату үшін немесе түрлендіру пайдаланушылар. Қазіргі уақытта сақтау үшін пайдаланылады символдық сілтемелер қр репозиторийін. Кезде символдық сілтеме қосылады репозиторийі, репозиторийін құрылады файл белгіленген қасиеті svn:special. Бұл файл алынатындығын да UNIX-ұқсас жүйесі, клиенттік бағдарлама Subversion түрлендіреді оның кері сілтеме.
svn:mergeinfo : ақпаратты Сақтайды, қандай жолдары өндірілді біріктіру бұл файл. Қасиеті енгізілді нұсқасы 1.5, ол үшін пайдаланылады қадағалау бірігу (ағылш. merge tracking). Жиынтығы жолдарының түрін имя_файла: диапазон_ревизий. Мұнда имя_файла — толық (арқылы тамырын файлдық жүйесін репозиториясы) файл аты немесе директория, қайдан өндірілді біріктіру ауқымынан тексеру. Жолдың өзгертіледі кезде автоматты түрде операциялар бірігу кезінде; кейінгі қосылған Subversion ескереді бұрын вписанные жолдың болдырмай, осылайша, қайта бірігу бір өзгерістер. Ұсынылмайды қасиеті svn:mergeinfo қолмен — бұл бұзуы мүмкін қадағалау механизмі бірігу.

Қасиеттерін тексеру[өңдеу]

Екінші түрі объектілері бар қасиеті — өздері тексеру. Бұл жағдайда, есімдері қасиеттерін, сондай-ақ болуы мүмкін кез келген; кейбір қасиеттері префиксі бар "svn:" бар арнайы маңызы. Айырмашылығы қасиеттерін тексеру қасиетіне объектілерін файлдық жүйесі үшін алғашқы түсінік тарих нұсқалары қолданылмайды (себебі нақты мәнін қасиеттері приписано бір ревизия). Басқа сөздермен айтқанда, қасиеттері ревизия өзгертуге болады, бірақ бұрынғы мәні кезінде жоғалады. Әдепкі бойынша өзгерту қасиеттерін тексеру тыйым салынады; рұқсат беру үшін әкімші құруға тиіс скрипт (ағылш. hook) өңдеу оқиғалар pre-revprop-change.

svn:date : Күні мен уақыты құру, тексеру.
svn:author : пайдаланушының Аты-жөні, су өзгерістер енген, бұл тексеру.
svn:log : Сипаттамасы өзгерістер тіркелген, бұл ревизия (енгізілген мәтін пайдаланушының тіркеу кезінде өзгерістер).

Әдетте, қасиеттері ревизия өзгереді тек әкімшісі қоймалар мақсатында түзетулер қате деректерді. Мысалы, егер қолданушы ұмытып көрсету мәтіндік сипаттамасы тіркеу кезінде өз өзгерістер болса, онда әкімшісі құра алады, ол сипаттау арқылы редакциялау қасиеттері svn:log.

Пайдалану Subversion[өңдеу]

Жұмыс циклі[өңдеу]

Типтік итерация жұмыс циклін Subversion мынадай кезеңдерді қамтиды.

  • Жаңарту жұмыс көшірмелері қоймадан (update svn) немесе оны құру (svn checkout).
  • Өзгерту жұмыс көшірмелері. Өзгерту, қалталарды шолыңыз және ақпарат файлдарда құралдарымен жүргізіледі Subversion, өзгерту , сол (мазмұн) файлдарды Subversion жоқ қолданысқа енгізілген өзгертулер жүргізіледі бағдарламаларына арналған (мәтіндік редакторлар, құралдар әзірлеу және т. п.):
    • жаңа (әлі тіркелген қоймада) файл мен директорияның керек қосу (команда add svn), яғни берсін басқару нұсқаларының;
    • егер файл немесе директорию жұмыс көшірмелері керек, жою, қайта атау, жылжыту немесе көшіруқажет құралдарын пайдалануға Subversion (svn mkdir, svn delete, svn move, svn copy);
    • қалып-күйін қарап шығу, жұмыс көшірмелері және жергілікті (әлі тіркелген) өзгерістер (svn info, svn status, svn diff);
    • кез-келген жергілікті өзгерістер, егер олар деп танылды неудачными болады откатить (svn revert).
  • Қажет болған жағдайда — қосымша жаңарту үшін өзгерістер тіркелген қоймада басқа пайдаланушылармен біріктіру және осы өзгерістерді өз (update svn).
  • Бақылау өз өзгерістер (және/немесе нәтижелерді қосу), сақтау орны (svn commit).

Ветвление[өңдеу]

Ветвление маңызды аспектісі болып табылады жұмыс басқару жүйелерін нұсқаларымен, өйткені типтік тәсілдері басқару нұсқаларының (кем дегенде әзірлеу кезінде бағдарламалық қамтамасыз ету) қамтиды пайдалану тармақтары. Subversion ие жеткілікті дамыған мүмкіндіктері тармақталу мен біріктіру (дегенмен, қолдамаса, біріктіру, қайта аталған файлдар мен директориялар).

Сур. 3. Мысалы эволюция бұтақ " Subversion

- Сур. 3 шартты көрсетілген үлгісі эволюция тармақтарының қоймада. Жасыл түспен көрсетілген негізгі желісі жобасын әзірлеу (ағылш. mainline, trunk), сары — бұтағы, көк — таңбалар, пурпурным — бұтағы, әзірлеу және оның тоқтатылуы. Қызыл көрсеткішпен көрсетілді бірігу өзгерістер.

Құру тармақтары[өңдеу]

Жаңа бұтағы (сондай-ақ таңба") құрылады командасымен svn copyжасайды қоймасы көшірмесін наследованием тарих ревизия көзден (операция A+). Құру үшін тармақтарының әрқашан пайдалану керек "қашықтағы" нысаны команда svn copy, мысалы: svn copy http://.../trunk/dir http://.../branches/branch_name -m "Creating a branch of dir" Алынған көшірмесі тармақ (немесе omegle, тәсіліне қарай онымен жұмыс істеу). Одан әрі өзгерістер жасалған бұтақтары енгізілуі мүмкін көзі, құрылды, бұл бұтақ, мұндай тарату өзгерістер деп аталады біріктіру (ағылш. merge).

Операция-да көшіру Subversion арзан (ағылш. cheap copy), яғни талап етеді, шағын тіркелген санын уақыт және дискілік кеңістік. Қойма жобаланған осылайша[21] бұл кез-келген көшірме жасауға болады емес қосарлануы деректерді, дерек көзіне сілтеме (ұқсас қатаң сілтеме), алайда бұл механизм таза ішкі — пайдаланушы тұрғысынан дәл көшірмесін жасауға. Арқасында жоғары тиімділігін құру тармақтарының оларды жасауға болады, сондықтан жиі, қаншалықты қажет (алайда, қосу — қажетті қосымша ветвлению — орындалады Subversion баяу қарағанда, басқа да қазіргі заманғы басқару жүйелерінде нұсқаларымен).

Жұмыс бұтақтарымен[өңдеу]

Жалпы жұмыс бұтақтары айырмашылығы жоқ жұмыс негізгі желісін әзірлеу (trunk). Арнайы команда қажет үшін ғана іс-қимыл, онда астам бір бұтағы. Мұндай командаларға жатады (басқа команда құру бұтақтары svn copy):

  • svn switch — ауыстырып қосу, жұмыс көшірмелері және басқа бұтағы — үшін пайдаланылады ауыстыру қолда бар жұмыс көшірмесін басқа бұтағы. Ауыстырып қосу нәтижесінде қызметтік деректер жұмыс көшірмелері өзгереді, өйткені, меніңше, бұл жұмыс көшірмесі алынды операция svn checkout келген бір бұтағы, ол переключена. Бұл ретте, көлемі желілік трафиктің төмен, svn checkoutретінде ғана беріледі арасындағы айырмашылық деректермен жұмыс көшірмелері және мақсатты тармақ;
  • svn merge — көшіру жиынтығының өзгерістер тармақтары арасындағы — үшін пайдаланылады қорытпалар.

Әдетте, толық цикл жұмыс тармақтары мынадай кезеңдерді қамтиды:

  • құру бұтақтары (svn copy);
  • ауысу қолда бар жұмыс көшірмелері бұтағы (svn switch) немесе жаңа жұмыс көшірмелері арқылы айдау (svn checkout);
  • өзгерту файлдар мен қалталарды шолыңыз жұмыс көшірмелері, бақылау, осы өзгерістерді (svn commit);
  • көшіру осы тармақ жаңа өзгерістер ата-аналар бұтақтары жасалған соң, тармақталу (svn merge, svn commit);
  • көшіру өзгерістер бұтақтары да ата-аналар бұтағы (svn merge, svn commit);
  • жою бұтақтары (svn delete) егер оның өмірлік циклі аяқталды.

Қосу[өңдеу]

Көшіру өзгерістер тармақтары арасындағы[өңдеу]

Бірігу Subversion — бұл қолдануға бұтақтары теру өзгерістер жасалған басқа (немесе сол) бұтағы. Жүзеге асыру үшін бірігу қажет командасын svn merge — ол қолданады жинағы өзгерістер жұмыс көшірмелері; содан кейін қажет тіркелсін енгізілген өзгерістер (svn commit).

Терминология байланысты бірігуі, бірнеше запутана. Термин қосу (ағылш. merge) болып табылады емес, дәл, өйткені етудің бірлестігінің тармақтары болмайды. Сонымен қатар, керек емес сәйкестендіруге біріктіру және команданы svn merge: біріншіден, бірігу орындау керек (басқа svn merge) дау-жанжалдарды шешу мен бекіту, екіншіден, қолдану svn merge шектелмейді бірігуі.

Басқа қолдану команда svn merge[өңдеу]

Команданы svn merge пайдалануға болады ғана емес, бірігу. Нақты команда жүргізеді енгізу, жұмыс көшірмесін өзгерістер арасындағы айырмаға тең екі директориями немесе файлдар қоймасында, сондықтан svn merge әмбебап құралы болып табылады тасымалдау үшін. Келтіруге болады мұндай мысалдар пайдалану командасының svn merge:

  • откат қазірдің өзінде тіркелген, өзгерістер, соның ішінде тұтас ауқымын тексеру;
  • ыңғайлы қарау (түрінде өзгерістер жұмыс көшірмелері) арасындағы айырма екі жай-күйі репозиториясы.

Қойма құру[өңдеу]

Құру үшін қоймалар қолданылады командасы svnadmin create. Бұл операция жасайды, бос қойма көрсетілген директорияның.

Subversion және CVS[өңдеу]

Салыстыру[өңдеу]

Төменде келтірілген салыстыру жүйелерінің параметрлерін Subversion және CVS, өйткені Subversion қаралады дәл қалай жақсарту CVS. Келтірілген салыстыру бойынша ғана өлшемдері, олар бойынша бұл жүйелер ерекшеленеді. Тұтастай алғанда, Subversion асып CVS барлық параметрлері бойынша, сонымен қолдау белгілер елбасы общепринятом мағынада (яғни, белгі, адресующих объектілері файлдық жүйелер).

Параметр Subversion CVS
Возможности
Директории Отслеживает версии не только файлов, но и директорий. Версии директорий не отслеживаются, то есть структура директорий одна и та же (та, которая существует в хранилище на данный момент) для всех ревизий и всех веток. Если изменить структуру директорий, то при извлечении старых состояний получаем правильные (старые) ревизии файлов, но в неправильной (существующей на момент извлечения) структуре директорий.
Транзакции Атомарность многофайловых фиксаций. Атомарность только на уровне однофайловых фиксаций. Фактически фиксация изменений в нескольких файлах разбивается на последовательность фиксаций изменений отдельных файлов. Если такая последовательность фиксаций прервана, то часть файлов остаётся зафиксированной, часть — не зафиксированной.
Наборы изменений Наборы изменений (ағылш. changeset) поддерживаются. Наборы изменений не поддерживаются.
Модификации имён файлов Поддерживает копирование, перемещение и переименование файлов и директорий без потери истории изменений. При копировании, перемещении и переименовании файлов файл с новым именем не имеет никакой истории, то есть связь со старым именем и его историей версий полностью теряется. То же самое для файлов внутри директории при модификации её имени[22].
Свойства (properties) С каждым файлом и директорией может быть связан произвольный набор свойств, состоящих из названия и значения. Свойства тоже находятся под управлением версиями. Свойства не поддерживаются.
Блокировки Поддерживается необязательная блокировка файлов (начиная с версии 1.2). Блокировки не поддерживаются, но есть похожий механизм, называемый слежение.
Ветви Ветви (branch, см. словарь) реализованы в пространстве путей. Это значит, что для создания ветви производится копирование директории (копия и будет ветвью). Создание таких копий — быстрая и не ресурсоёмкая операция, потому что данные не дублируются, вместо этого фиксируется новая версия, отличающаяся от предыдущей лишь расположением файлов. Ветви реализованы в «третьем измерении». Это значит, что файл на ветви адресуется тремя параметрами: путём в файловой системе, ревизией (или другим способом указания ревизии, например, временем), именем ветви.
Метки Нет меток (tag, см. словарь) как таковых. Вместо них используется иерархия директорий — для метки создаётся отдельная директория (как и для ветви). Метка — это ветвь, в которой по договорённости больше не делают изменений. Метка является копией помеченного состояния файлов и директорий. Метки поддерживаются. Метка адресует помеченное состояние файлов.
Эффективность
Клиент-серверный обмен При любых обновлениях версий между клиентом и сервером передаются только различия между файлами, что может существенно уменьшить сетевой трафик. С сервера к клиенту передаются различия, с клиента на сервер объект передаётся полностью.
Двоичные файлы Одинаково эффективно работает как с текстовыми, так и с двоичными файлами. Работа с двоичными файлами менее эффективна: каждая новая версия сохраняется в хранилище полностью.
Создание ветвей и меток Требуется небольшое фиксированное количество времени и дискового пространства. Затраты времени велики (зависят от количества задействованных файлов). Имена ветвей и меток хранятся избыточно (во всех задействованных файлах).
Накладные расходы в рабочей копии В служебных директориях рабочей копии хранится чистая копия. Поэтому операции просмотра и отката локальных изменений выполняются быстро (без обращения к хранилищу), однако размер рабочей копии на диске примерно в два раза больше, чем размер самих данных. Чистая копия не хранится, размер рабочей копии примерно равен размеру данных. Вследствие этого операции просмотра и отката локальных изменений требуют доступа к хранилищу и выполняются медленно.
Расход памяти на сервере Меньше[23]. Больше.

Көші-қон байланысты CVS " Subversion[өңдеу]

Түрлендіру репозиториясы[өңдеу]

Бағдарламасы бар cvs2svn арналған түрлендіру репозиториясы CVS дайын репозиторийі Subversion (немесе репозиторийі git) немесе мәтіндік дамп, содан кейін импорттау репозиторийі көмегімен утилиттер svnadmin. Бұл ретте cvs2svn сақтайды барлық ақпаратты жолдауындағы репозиторийін CVS: бұтақтары, таңбалар, сипаттау өзгерістер, авторлардың аты-жөні, тіркелген күннен өзгерістер. Сонымен қатар, өзгерістер әр түрлі файлдарда, тіркелген бірлесіп, преобразуются бір тексеру.

Айырмашылықтар пайдалану[өңдеу]

Айырмашылықтар файлдармен жұмыс[өңдеу]

"CVS операциялар бойынша орын ауыстыру (қайта атау) және көшіру файлдар мен қалталарды шолыңыз орындалады қайта қосу арқылы объектінің жаңа атымен және (орнын ауыстыру және қайта атау) жойып, ескі нысан. Мұндай жұмыс файлдар мен каталогтар қоймаға қайта құрылады және жоғалтады тарихын өзгерістер. "Subversion орындау үшін осы операциялар пайдаланылуы тиіс командасының орнын ауыстыру (move немесе mv), көшіру (copy). Оларды пайдалану сақтайды тарихы мен өзгерістер болдырмауға мүмкіндік береді артық операцияларды (әсіресе операциялар кезінде директориями немесе тіпті бұтақтармен файлдық жүйелер).

Айырмашылығы CVS, кейбір операцияларды жұмыс көшірмелері (мысалы, жою және ауыстыру файл) Subversion өз бетінше орындайды. Сипатталған және басқа да ерекшеліктер-мен жұмыс кезінде файлдармен жұмыс көшірмелері просуммированы келесі кестеде (операция commit, онда ол қажет екі жағдайда да, опущена):

Операция CVS Subversion Жазбалар
Файлды жою rm file

cvs rm file

svn rm file файл емес, керек алдын-ала қолмен жоюға
Файлдарды жою бойынша маска rm *

cvs rm file1 file2 ...

svn rm * файлдар емес, керек алдын-ала қолмен жоюға

керек емес аудару барлық файлдарды

Атын өзгерту/жылжыту mv file1 file2

cvs rm file1
cvs add file2

svn mv file1 file2 файл керек емес жылжытуға қолмен

қазақстан тарихы файл сақталады

Көшіру cp file1 file2

cvs add file2

svn copy file1 file2 файл керек емес қолмен көшіру

қазақстан тарихы файл сақталады (разветвляется)

Қосу (құру) директорияның mkdir dir

cvs add dir

svn mkdir dir

svn commit

директорию қалай құруға қолмен

қосқаннан кейін директорияның қажет commit

Қосу директорияның файлдармен cvs add dir

cd dir
cvs add file1 file2

add svn dir директориясы қосылады байланысты шығыстар сметасынан) ұсталатын онда файлдармен
Переименование директорияның файлдармен

(поддиректорий)

mkdir dir2

cvs add dir2
mv dir1/* dir2
cvs rm dir1/file1 dir1/file2 ...
cvs add dir2/*

svn mv dir1 dir2 қажет емес қосуға және директорияның

керек емес файлдарды жылжытуға қолмен
керек емес аудару барлық файлдарды
қазақстан тарихы файлдар сақталады

Атын өзгерту тармағын файлдық жүйесін

(директорияның файлдармен және поддиректориями)

қайталау командасының жоғары

әрбір деңгейі үшін gsm -
немесе әрбір поддиректории

svn mv dir1 dir2 см. жоғары

санына байланысты емес деңгейлерін және директориялар

Адрестеу жай-күйін сақтау қоймалары[өңдеу]

"Subversion үшін адрестеу жай-күйін сақтау қоймалары міндетті емес жасауға таңбалар немесе пайдалануға болады күні/уақыты, қарапайым жағдайларда (мысалы, алу үшін нұсқалары кейін белгілі бір бақылау) оңай болады, көрсету керекті нөмірі, тексеру.

Ішкі құрылымы[өңдеу]

Деңгейлері[өңдеу]

Fs
Ең төменгі деңгейі; іске асырады версионированную файлдық жүйені сақтайды деректер.
Repos
Деңгейі сақтау қоймасының сатылған файлдық жүйесі. Осы деңгейде жүзеге асырылды көптеген көмекші функцияларды, сондай-ақ қолдаса, іске қосу өңдеушілерді шақыру, хабарламаларды тарату (ағылш. hooks), яғни, скриптер, іске қосылуда басталған кезде біраз оқиғалар. Бірге деңгейлері Fs және Repos құрайды интерфейс файлдық жүйесі.
mod_dav_svn
Қамтамасыз етеді WebDAV/Delta-V-кіру арқылы Apache 2.
Ra
Іске асыруда қол жеткізу хранилищу (жергілікті және қашықтағы). Бастап осы деңгейдегі қойма сілтеме жасауға болады бойынша, URL, яғни
  • file:///path/ үшін жергілікті қол жеткізу,
  • http://host/path/ немесе https://host/path/ қол жеткізу үшін арқылы WebDAV, немесе
  • svn://host/path/ немесе svn+ssh://host/path/ кіру үшін хаттама арқылы SVN.
Client, Wc
Ең жоғары деңгейі. Абстрагирует қол жеткізу хранилищу қамтамасыз етеді және жалпы тапсырмаларды клиенттің сияқты аутентификация-пайдаланушының немесе нұсқаларын салыстыру. Client пайдаланады кітапханаға Wc басқару үшін жергілікті көшірмесімен жұмыс.

Клиентінің конфигурациясы[өңдеу]

Стандартты клиенттік құрал Subversion — SVN, конфигурируется айнымалы ортасының мен INI-файламиқұрылатын үй каталогында пайдаланушы подкаталоге .subversion (орналасуы конфигурация Windows жүйелерінде, файлдарда немесе мемлекеттік тіркеу тізілімінде байланысты жүйелік параметрлер). Конфигурациясы SVN сондай-ақ кеширует SSL-сертификаттар, кіру есептер, парольдер және т. п. (егер бұл тыйым конфигурациясы) қол жеткізу үшін серверлерге Subversion.

Мазмұн каталогын .subversion:

Кемшіліктері[өңдеу]

Мәселелері қайта атау файлдар[өңдеу]

Subversion емес ылғи дұрыс өңдеу операцияларын қайта атау файлдар, егер бір мезгілде қайта атауға өзгертіледі және мазмұнды файл. Проблемалар мүмкін пайда, егер файл переименованный локальді көшірмесі, басқа біреу өзгертті, қойма. Осы проблемаларды тоқтамайды нұсқасы 1.5, алайда бұл шешім әлі толық емес.

Әлсіз қолдау, бірігу тармақтары[өңдеу]

Сондай-ақ, кемшін тұсы Subversion деп санайды операциялар бірігу бұтақтар. Нұсқасына дейін 1.5 барлық осындай операциялар пайдаланушыларға тура келді қадағалауға қолмен көмегімен егжей-тегжейлі жазба журналына енгізу. Версиясынан бастап 1.5 пайда базалық қолдау автоматты бақылау бірігу, оны әзірлеушілер жоспарлап отыр жақсартуға кейінгі релиздерде. Қазіргі уақытта Subversion жақсы қолдайды үлгілік сценарийі бірігу; неғұрлым күрделі жағдайларда болуы мүмкін. Ұсынылады ұйымдастыру жұмыс үрдісі болдырмайтындай проблемалық сценарийлер. Біріктіру атауы өзгертілген файлдар мен қалталарды шолыңыз қолдау көрсетілмейді.

Мүмкін еместігін жою деректер қоймасын[өңдеу]

Ақпарат, бір белгінің қоймаға Subversion, қалады онда мәңгі: файлды жоюға болады ағымдағы ревизия, бірақ әрқашан мүмкіндігі бар, қоймадан бір алдыңғы тексерулердің, оның файл өмір сүрді. Дегенмен сақталуын өткен мен тексерістер болып табылады, жеке пайдалану мақсатында басқару жүйелерін нұсқаларымен, кейде толық жою қоймадан ақпаратты попавшую сонда қате. "Subversion емес, бұл үшін ешқандай штаттық тәсілі; жалғыз мүмкіндігі болып табылады құру дампының сақтау, оны өңдеу штаттық утилитасын svndumpfilter және кейіннен қалпына келтіру қойманың бірі дампының. Бар сондай-ақ, үшінші тарап бағдарламаларын автоматтандыру үшін бұл процесс, бірақ, кез келген жағдайда, осы операцияны орындау үшін қажет уақытша тоқтату қол жеткізу хранилищу араласуға әкімшісінің артықшылықтары, жеткілікті жоғары болуы үшін толығымен өшіру бұрынғы қоймада және оны ауыстыру жаңа.

Папка .svn, әр қалтада[өңдеу]

засоряет файлдық құрылымы. Версиясынан бастап 1.7 түбегейлі жұмыс жобасының көшірмесін директориясы құрылады .svn, метадеректер онда сақталады пайдалана отырып, SQLite.

Қосымша бағдарламалық қамтамасыз ету[өңдеу]

  • Клиенттер:
    • RapidSVN — кроссплатформенный клиент Subversion арналған C++;
    • SmartSVN — кроссплатформенный клиент Subversion арналған Java;
    • TortoiseSVN — клиент Subversion, іске асырылған кеңейту үшін жолсеріктің Windows;
    • RabbitVCS — клиент Subversion, іске асырылған кеңейту үшін файлдық менеджер Linux (бұрын деп аталды NautilusSVN);
    • KDESvn - графикалық клиент Subversion жиынтықтың құрамында қосымшалар KDE Software Compilation;
    • VisualSVN кеңейту үшін Microsoft Visual Studio.
  • Плагиндер:
    • AnkhSVN — плагин үшін Microsoft Visual Studio,
    • VisualSVN — плагин үшін Microsoft Visual Studio,
    • PushOK SVN SCC proxy — плагин үшін Microsoft SCC,
    • Subclipse — плагин үшін Eclipse,
    • Subversive — плагин үшін Eclipse,
    • MagnetSVN — плагин үшін Microsoft Office.
  • Веб-интерфейстер:
    • Trac — құрал-негізделген технологиялар Wiki,
    • Redmine — қосымша қадағалайды қателер,
    • USVN — құрал жасау үшін және қол жеткізуді басқару репозиториям, специализирована астында SVN,
    • ViewVC,
    • WebSVN,
    • SVNManager — PHP-утилитасы басқару үшін репозиториями (құру, жою, тиеу және түсіруді басқару; пайдаланушылар және топтар)
    • Submin — утилитасы басқару үшін репозиториями және пайдаланушылармен, соның ішінде бақылауға қол жеткізу жекелеген каталогтар да репозиторийін.
  • Салыстырмалы кесте: веб-интерфейстер:

Наименование

Описание

Язык

БД

Лицензия

Сайт

Обновление

Версия

Trac

инструмент, основанный на технологии Wiki

Python

SQLite, PostgreSQL, MySQL и MariaDB

Модифицированная лицензия BSD

trac.edgewall.org

31.01.2011

0.12.2

Redmine

дополнительно отслеживает ошибки

Ruby

MySQL, PostgreSQL, SQLite, Oracle.

GNU General Public License

redmine.org

11.07.2011

1.3.0

USVN

утилита для создания и управления доступом к репозиториям, специализирована под SVN

PHP

MySQL, SQLlite

CeCill (GPL совместимая лицензия).

www.usvn.info

13.01.2012

1.0.6

ViewVC

без управления пользователями, не требует поддержки DAV web-сервером.

Python

MySQL

Two-clause Berkeley-style

www.viewvc.org

02.12.2010

1.1.8

WebSVN

интерфейс просмотра к SVN

PHP

XML

GNU GPL

websvn.tigris.org

12.10.2010

2.3.2

SVNManager

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

PHP

MySQL or SQLite

svnmanager.sourceforge.net

28.01.2012

1.09

Submin (MIT)

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

Python

MIT/X

24.12.2012

2.1

Дереккөздер[өңдеу]

  1. Английское слово subversion можно перевести двояко — как «свержение» (subversion) и как «подверсия» (sub-version)
  2. По названию программы-клиента для командной строки, входящей в состав пакета
  3. Apache Trademark Listing
  4. Бен Коллинз-Сассман, Брайан У. Фицпатрик, К. Майкл Пилато История Subversion /Управление версиями в Subversion  (орыс.) (2007). — Для Subversion 1.4. Басты дереккөзінен мұрағатталған 25 тамыз 2011. Тексерілді, 21 шілде 2010.
  5. Список изменений(ағылш.)
  6. Goliath Business News
  7. Subversion 1.1 Release Notes
  8. Subversion 1.2 Release Notes
  9. Subversion 1.3 Release Notes
  10. Subversion 1.4 Release Notes
  11. Subversion 1.5 Release Notes
  12. Subversion 1.6 Release Notes
  13. Subversion переведена под контроль Apache Software Foundation, nixp.ru
  14. Subversion & the Move to the Apache Software Foundation, (видеообращение президента Subversion Corporation)
  15. Apache Subversion 1.7 Release Notes
  16. Subversion 1.8 Release Notes
  17. работа с символьными ссылками поддерживается только в рабочих копиях под UNIX-системами
  18. a b Ветви и метки в Subversion не являются независимым измерением хранилища.
  19. Термины хранилище и репозиторий являются синонимами.
  20. Глава 5.
  21. Bubble-Up Method (ағыл.)(ағылш.
  22. В CVS директорию можно переместить прямо в хранилище средствами файловой системы, при этом файлы в нём не потеряют историю.
  23. Subversion FAQ

Сілтемелер[өңдеу]