A.6. Subversion ашиглах нь
Өмнөх | Хавсралт 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 баримтжуулалтаас үзнэ үү.

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

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

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