μƒˆμ†Œμ‹

DevOps/Git

[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

Contents

ν¬μŠ€νŒ… μ£Όμ†Œλ₯Ό λ³΅μ‚¬ν–ˆμŠ΅λ‹ˆλ‹€. 😊

이 글이 도움이 λ˜μ—ˆλ‹€λ©΄ 곡감 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€. πŸ‘