FreeBSD гарын авлага
Өмнөх | Хавсралт A. FreeBSD-г олж авах нь | Дараах

# A.6. Subversion ашиглах нь

## A.6.1. Танилцуулга

2012 оны 7 сараас FreeBSD-н бүх эх код, баримтжуулалт болон портын цуглуулгыг хадгалахдаа Subversion (svn)-г үндсэн хувилбар удирдах систем болгон ашиглаж эхэлсэн.

> Тэмдэглэл: Subversion хөгжүүлэлтийн хэрэгсэл юм. Ихэнх хэрэглэгчид FreeBSD-г шинэчлэх хэсэгт зааснаар FreeBSD-н үндсэн системийг шинэчлэх ёстой бөгөөд FreeBSD-н портын цуглуулгыг шинэчлэхдээ Portsnap-г ашиглах ёстой.

Subversion-д URL-г ашиглан репозиторыг заадаг бөгөөд `protocol://hostname/path` хэлбэрийн байна. Доор заасан шиг толин тусгалууд өөр өөр протоколуудыг дэмжиж болно. Замын эхний хэсэг нь хандаж болох FreeBSD-н репозитор юм. Гурван өөр репозитор байдаг: FreeBSD-н үндсэн системийн эх кодод зориулсан `base`, Портын цуглуулгад зориулсан `ports`, баримтжуулалтад зориулсан `doc` байдаг. Жишээ нь URL `svn://svn0.us-east.FreeBSD.org/ports/head/` нь svn протоколыг ашиглан `svn0.us-east.FreeBSD.org` толин дээрх портын репозиторын гол салбарыг зааж байна.

## A.6.2. Суулгах

Subversion-г аль ч репозиторын агуулгыг татаж авахаас өмнө суулгасан байх шаардлагатай. Хэрэв портын мод байгаа бол Subversion-г ингэж суулгаж болно:

    # cd /usr/ports/devel/subversion
    # make install clean

Хэрэв портын мод байхгүй бол Subversion-г багц хэлбэрээр суулгаж болно:

    # pkg_add -r subversion

Хэрэв pkgng ашиглан багцыг удирддаг бол Subversion-г ингэж суулгана:

    # pkg install devel/subversion

## A.6.3. Subversion-г ажиллуулах

Эхийн цэвэр хувилбарыг татаж локал сан руу авахад `svn` тушаалыг ашиглаж болно. Энэ санд байгаа файлуудыг локал ажлын хувилбар гэдэг.

> Сануулга: Локал сан нь үүссэн боловч `svn` тушаалаар үүсгэгдээгүй бол татаж авахаасаа өмнө нэрийг солих юм уу устгаарай. `svn`-ээр үүсгэгдээгүй сан дээр татаж авах тохиолдолд татаж авч байгаа файлууд нь байгаа файлуудтай зөрөх асуудал үүсч болзошгүй.

Өгөгдсөн репозитороос татаж авахдаа энэ маягийн тушаалыг:

    # svn checkout svn-mirror/repository/branch lwcdir

гэж ажиллуулах бөгөөд:

- `svn-mirror` нь Subversion толин сайтууд дахь аль нэгийн URL юм.

- `repository` нь төслийн аль нэг репозитор бөгөөд жишээ нь `base`, `ports`, эсвэл `doc`.

- `branch` нь ашиглаж байгаа репозитороос хамаарна. `ports` ба `doc` нь `head` салбарт ихэвчлэн шинэчлэгддэг бол `base` нь -CURRENT-н хамгийн сүүлийн хувилбарыг `head` дотор агуулж байдаг бөгөөд -STABLE салбарын сүүлийн хувилбарууд нь `stable/8` ( 8.`x`) болон `stable/9` (9.`x`) дотор байдаг.

- `lwcdir` нь зааж өгсөн салбарын агуулга байрлах сан юм. Энэ нь ихэвчлэн `ports`-н хувьд `/usr/ports`, `base`-н хувьд `/usr/src`, `doc`-н хувьд `/usr/doc` байдаг.

Энэ нь Портын цуглуулгыг АНУ-н баруунд байрлах репозитороос HTTPS протокол ашиглан локал ажлын хуулбарыг `/usr/ports`-д санд байршуулж байгаа жишээ юм. Хэрэв `/usr/ports` сан байгаа бөгөөд `svn`-ээр үүсгэгдээгүй бол өөрчлөх юм уу устгахаа мартуузай.

    # svn checkout https://svn0.us-west.FreeBSD.org/ports/head /usr/ports

Алсын репозиторын бүрэн салбарыг эхний удаа татаж авах учраас удаж магадгүй. Тэвчээртэй байгаарай.

Эхний удаа татсаныхаа дараа локал ажлын хуулбарыг шинэчлэхдээ:

    # svn update lwcdir

Дээрх жишээн дээр үүсгэсэн `/usr/ports`-г шинэчлэхдээ:

    # svn update /usr/ports

Татаж авахаас шинэчлэх нь хурдан бөгөөд өөрчлөгдсөн файлуудыг л татаж авдаг.

Татаж авсныхаа дараа локал ажлын хуулбарыг шинэчлэх өөр нэг арга нь `/usr/ports`, `/usr/src`, ба `/usr/doc` сангууд дахь `Makefile`-д байдаг. `SVN_UPDATE`-г зааж өгөөд `update` гэж хэрэглэнэ. Жишээ нь `/usr/src`-г шинэчлэхийн тулд:

    # cd /usr/src
    # make update SVN_UPDATE=yes

## A.6.4. Дэлгэрэнгүй мэдээлэл

Subversion ашиглах талаар бусад мэдээллийг Version Control with Subversion нэртэй “Subversion ном”, эсвэл Subversion баримтжуулалтаас үзнэ үү.

Өмнөх | Эхлэл | Дараах
CTM-г ашиглах нь | Дээш | Subversion толин сайтууд

Энэ болон бусад баримтуудыг ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ хаягаас татаж авч болно.

FreeBSD-ийн талаар <questions@FreeBSD.org> хаягтай холбоо барихаасаа өмнө баримтыг уншина уу.
Энэ бичиг баримттай холбоотой асуулт байвал <doc@FreeBSD.org> хаягаар цахим захидал явуулна уу.
Энэ бичиг баримтын орчуулгатай холбоотой асуулт байвал <admin@mnbsd.org> хаягаар цахим захидал явуулна уу.