[SVN] ์„ค๋ช… ๋ฐ ๋ช…๋ น์–ด

 

 

SVN ์‚ฌ์šฉ๋ฒ•

์šฉ์–ด ์„ค๋ช…

 

์ €์žฅ์†Œ

 : ๋ฆฌํฌ์ง€ํ† ๋ฆฌ(Repository)๋ผ๊ณ ๋„ ํ•˜๋ฉฐ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์˜ ํ”„๋กœ๊ทธ๋žจ ์†Œ์Šค๋“ค์€ ์ด ์ €์žฅ์†Œ ์•ˆ์— ์ €์žฅ์ด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์†Œ์Šค๋ฟ๋งŒ์ด ์•„๋‹ˆ๋ผ ์†Œ์Šค์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋„ ๋ชจ๋‘ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด์„œ ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๋งˆ๋‹ค ๊ฐ๊ฐ ๋‹ค๋ฅธ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ Subversion์€ Berkeley DB๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•œ ํ”„๋กœ์ ํŠธ ๋งˆ๋‹ค ํ•˜๋‚˜์˜ ์ €์žฅ์†Œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ฆฌ๋น„์ „(Revision)

 : ์†Œ์Šค ํŒŒ์ผ๋“ฑ์„ ์ˆ˜์ •ํ•˜์—ฌ ์ปค๋ฐ‹ํ•˜๊ฒŒ ๋˜๋ฉด ์ผ์ •ํ•œ ๊ทœ์น™์— ์˜ํ•ด ์ˆซ์ž๊ฐ€ ์ฆ๊ฐ€ ํ•ฉ๋‹ˆ๋‹ค. ์ €์žฅ์†Œ์— ์ €์žฅ๋œ ๊ฐ๊ฐ์˜ ํŒŒ์ผ ๋ฒ„์ „์ด๋ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Subversion์˜ ๊ฒฝ์šฐ ํŒŒ์ผ๋ณ„๋กœ ๋ฆฌ๋น„์ „์ด ๋งค๊ฒจ์ง€์ง€ ์•Š๊ณ  ํ•œ๋ฒˆ ์ปค๋ฐ‹ ํ•œ ๊ฒƒ์œผ๋กœ ์ „์ฒด ๋ฆฌ๋น„์ „์ด ๋งค๊ฒจ ์ง‘๋‹ˆ๋‹ค. ๋ฆฌ๋น„์ „์„ ๋ณด๊ณ  ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ƒํ™ฉ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

trunk

 : ๋‹จ์–ด ์ž์ฒด์˜ ๋œป์€ ๋ณธ์ฒด ๋ถ€๋ถ„, ๋‚˜๋ฌด์ค„๊ธฐ, ๋ชธํ†ต ๋“ฑ ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐ€์žฅ ์ค‘์‹ฌ์ด ๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ์ž‘์—…์€ trunk ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์œ„์˜ ๊ตฌ์กฐ์—์„œ trunk ๋””๋ ‰ํ† ๋ฆฌ ์•„๋ž˜์—๋Š” ๋ฐ”๋กœ ์†Œ์Šค๋“ค์˜ ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ๋“ค์–ด๊ฐ€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

branches

 : ๋‚˜๋ฌด์ค„๊ธฐ(trunk)์—์„œ ๋ป—์–ด์ ธ ๋‚˜์˜จ ๋‚˜๋ฌด ๊ฐ€์ง€๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค. trunk ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๋‹ค ๋ณด๋ฉด ํฐ ํ”„๋กœ์ ํŠธ์—์„œ ๋˜ ๋‹ค๋ฅธ ์ž‘์€ ๋ถ„๋ฅ˜๋กœ ๋นผ์„œ ๋”ฐ๋กœ ๊ฐœ๋ฐœํ•ด์•ผ ํ•  ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์•ˆ์˜ ์ž‘์€ ํ”„๋กœ์ ํŠธ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. branches ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ๋˜ ๋‹ค๋ฅธ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋‘์–ด ๊ทธ ์•ˆ์—์„œ ๊ฐœ๋ฐœํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

tags

 : tag๋Š” ๊ผฌ๋ฆฌํ‘œ๋ผ๋Š” ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋””๋ ‰ํ† ๋ฆฌ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์ •๊ธฐ์ ์œผ๋กœ ๋ฆด๋ฆฌ์ฆˆ๋ฅผ ํ•  ๋•Œ 0.1, 0.2, 1.0 ํ•˜๋Š” ์‹์œผ๋กœ ๋ฒ„์ „์„ ๋ถ™์—ฌ ๋ฐœํ‘œํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ๊ทธ๋•Œ๊ทธ๋•Œ ๋ฐœํ‘œํ•œ ์†Œ์Šค๋ฅผ ๋”ฐ๋กœ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค. ์œ„์—์„œ ๋ณด๋ฉด tags ๋””๋ ‰ํ† ๋ฆฌ ์•„๋ž˜์—๋Š” ๋ฒ„์ „๋ช…์œผ๋กœ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ช…๋ น์–ด ์˜๋ฏธ

 

Import 

svn import sampledir svn+ssh://svn-domain/svn/sample/trunk


๋งจ ์ฒ˜์Œ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ํ• ๋•Œ ์ €์žฅ์†Œ์— ๋“ฑ๋กํ•˜๋Š” ๋ช…๋ น์–ด ํ•œ ๋ฒˆ ํ•˜๊ณ  ๋‚˜๋ฉด ์“ธ์ผ์ด ์ž˜ ์—†์„ ๋“ฏ.

Checkout

 : 

svn checkout svn+ssh://svn-domain/svn/sample/trunk sample


์ €์žฅ์†Œ์—์„œ ์†Œ์Šค๋ฅผ ๋ฐ›์•„ ์˜ค๋Š” ๋ช…๋ น์–ด. ๋ฐ›์•„์˜จ ์†Œ์Šค์—๋Š” ์†Œ์Šค ๋ฟ๋งŒ์ด ์•„๋‹ˆ๋ผ ๋ฒ„์ ผ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ํŒŒ์ผ๋„ ๊ฐ™์ด ๋ฐ›์•„ ์˜จ๋‹ค. ์ง€์šฐ๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ์‹œ ์ €์žฅ์†Œ์™€ ์—ฐ๊ฒฐ ๋ถˆ๊ฐ€๋Šฅ

Export

 : 

svn export svn+ssh://svn-domain/svn/sample2/trunk sample


์ฒดํฌ์•„์›ƒ๊ณผ๋Š” ๋‹ฌ๋ฆฌ ๋ฒ„์ ผ๊ด€๋ฆฌ ํŒŒ์ผ์„ ๋บ€ ์ˆœ์ˆ˜ํ•œ ์†Œ์Šค๋งŒ ๊ฐ€์ ธ์˜ค๋Š” ๋ช…๋ น์–ด ๋งˆ์ง€๋ง‰์— ์‚ฌ์šฉ.

Commit

 : 

svn commit


์ฒดํฌ์•„์›ƒ ํ•œ ์†Œ์Šค๋ฅผ ์ˆ˜์ •, ํŒŒ์ผ ์ถ”๊ฐ€, ์‚ญ์ œ ๋“ฑ์„ ํ•œ ๋’ค ์ €์žฅ์†Œ์— ์ €์žฅํ•˜์—ฌ ๊ฐฑ์‹  ํ•˜๋Š” ๋ช…๋ น์–ด. Revision์ด 1 ์ฆ๊ฐ€ ํ•œ๋‹ค.

Update

 : 

svn update


์ฒดํฌ์•„์›ƒ ํ•ด์„œ ๋ฐ›์€ ์†Œ์Šค๋ฅผ ์ตœ์‹ ์˜ ์†Œ์Šค๋กœ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๋ช…๋ น์–ด. ์†Œ์Šค ์ˆ˜์ •์ด๋‚˜ Commit ํ•˜๊ธฐ์ „์— ํ•œ ๋ฒˆ์”ฉ ํ•ด์ค˜์•ผ ํ•  ๋“ฏ. ์ž˜ ๋ชปํ•˜๋ฉด ์†Œ์Šค ๋ง์น˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ๋“ฏ.

Log

 : 

svn log


์ €์žฅ์†Œ์— ์–ด๋– ํ•œ ๊ฒƒ๋“ค์ด ๋ณ€๊ฒฝ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋Š” log ๋ช…๋ น์–ด

Diff

 : 

svn diff --revision 4 sample.c


diff ๋ช…๋ น์€ ์˜ˆ์ „ ์†Œ์Šค ํŒŒ์ผ๊ณผ ์ง€๊ธˆ์˜ ์†Œ์Šค ํŒŒ์ผ์„ ๋น„๊ตํ•ด ๋ณด๋Š” ๋ช…๋ น์–ด

Blame

 : 

svn blame sample.c


Blame์€ ํ•œ ์†Œ์ŠคํŒŒ์ผ์„ ๋Œ€์ƒ์œผ๋กœ ๊ฐ ๋ฆฌ๋น„์ „ ๋Œ€ํ•ด์„œ ์–ด๋–ค ํ–‰์„ ๋ˆ„๊ฐ€ ์ˆ˜์ •ํ–ˆ๋Š”์ง€ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด

lock

 : 

svn lock hello.c


ํŒŒ์ผ์— ๋ฝ์„ ๊ฑธ์–ด ๋ฝ์„ ๊ฑด ์‚ฌ์šฉ์ž๋งŒ์ด ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ช…๋ น์–ด. ํ•ด์ œ๋Š” 

svn unlock

.
์™œ ํŒŒ์ผ์— ๋ฝ์„ ๊ฑธ์—ˆ๋Š”์ง€ ๋กœ๊ทธ๋ฅผ ๊ธฐ๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค.

Add

 : 

svn add hello.c


์ƒˆ ํŒŒ์ผ์„ ๋งŒ๋“ค์—ˆ์„ ๊ฒฝ์šฐ์— ํŒŒ์ผ์„ ์ถ”๊ฐ€ ํ•ด์ฃผ๋Š” ๋ช…๋ น์–ด. ๊ทธ ๋’ค์—” ๊ผญ svn commit๋ฅผ ๊ผญ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.
์ƒˆ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์„œ ์˜ฌ๋ฆด ๋•Œ์—๋„ ๊ผญ add๋ฅผ ํ•ด์ค˜์•ผ ํ•จ. ์•ˆํ•ด์ฃผ๋ฉด commit์„ ํ•ด๋„ ์•ˆ ์˜ฌ๋ผ๊ฐ.

ํŒŒ์ผ ๋ฐฑ์—…๋ฐ ๋ณต๊ตฌ

dump

 : 

svnadmin dump sample > sample.dump

 

load

 : 

svnadmin load sample < sample.dump


์ƒˆ ํŒŒ์ผ์„ ๋งŒ๋“ค์—ˆ์„ ๊ฒฝ์šฐ 
1. 

svn add filename.*

 
2. 

svn ci filename.*



๊ทธ๋ƒฅ ๊ธฐ์กด ์†Œ์Šค ์ˆ˜์ •ํ•  ๊ฒฝ์šฐ 
1. 

svn ci filename.* 



ํ•ญ์ƒ 

svn update

๋Š” ๊ผญ ํ•ด์ฃผ์ž

svn status

 : ์ž์‹ ์ด ์ˆ˜์ •ํ•˜๊ณ  ์žˆ๋Š” ํŒŒ์ผ์˜ ์ƒํƒœ๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๋ช…๋ น์–ด

 

 

 

 

 

[์ถœ์ฒ˜] SVN ์‚ฌ์šฉ๋ฒ•๊ณผ ์šฉ์–ด ์„ค๋ช…|์ž‘์„ฑ์ž hbesthee