U E D R , A S I H C RSS

Pragmatic Version Control WithCVS/What Is Version Control

1. What Is Version Control?

ดžฅ—„œŠ” „œกœ ‹คฅธ ˜กœ ‚ฌšฉ˜Š” šฉ–ด˜  •˜ ชฉ œกœ ํ•œ‹ค.

1.1. the Repository

ฐœฐœ ค‘ธ ํ”„กœ ํŠธ˜ ชจ“  „ „ด  €žฅ˜Š” žฅ†Œด‹ค. ํŒŒ ‹œŠคํ…œ, DBˆ˜„ žˆœฉฐ, –ด–ค ฒฝšฐ—Š” 2€€ ฐ™ด ‚ฌšฉํ•˜ธฐ„ ํ•œ‹ค.
ตœ—Š” „คํŠธ›Œํฌ ดšฉํ•ด„œ ›ฒฉ€˜ „œ„— กดžฌํ•˜Š”  €žฅ†Œ—  €žฅํ•œ‹ค.
ฐœค‘—Š” „คํŠธ›Œํฌ— —ฐฒฐ˜€ •Š€ ƒํƒœ—„œ ž‘—…„ ํ•˜ณ  ด ํ›„— ฐ˜˜‹œœ ™ธฐํ™”ํ•˜Š” งคปค‹ˆฆ˜„  œณตํ•˜ธฐ„ ํ•จ. (ex CVS)

1.2. what should we store?

ํ”„กœ ํŠธ˜ ธฐณธœกœ  €žฅ˜Š” †ŒŠคฝ”“œ. ทธ ™ธ— „ „€ฆฌ— ํ•„š”ํ•œ ธฐํƒ€ ํŒŒ“คด  €žฅํ•จ.
›™:งŒ•ฝ ํ”„กœ ํŠธ˜ „ํ–‰—„œ —†œฉด ณคž€ํ•œ ชจ“  ฒƒด „ „€ฆฌ˜ Œ€ƒดœ‹ค. ฆ‰ ฐ˜“œ‹œ ํ”„กœทธžจ˜ Œ“œงŒด •„‹ˆ ฐจํ›„— ํ•„š”ํ•œ ‹คํ„ „ „€ฆฌ ํ•ด•ํ•  ํ•„š”€ žˆ‹ค
ž™œกœ ƒ„˜Š” ž”—ฌํŒŒ˜ ฒฝšฐ ตณดด €ฆฌํ•  ํ•„š”Š” —†‹ค. Œ€‹ — ํŠˆ˜ํ•œ ดœ (ปดํŒŒ ํƒ€ž„. ด„Šค)กœ ํ•„š”ํ•œ ฒฝšฐ—Š” €ฆฌ ํ•˜Š” ฒฝšฐ„ žˆ‹ค

1.3. workspaces and manipulate files

€—ญ ž‘—…ณต„(local workspace)Š” ›ฒฉ—  €žฅœ ํŒŒ“ค„ ํ”„กœทธžจ˜ ฐœฐœ„ œ„ํ•ด„œ ฐœฐœž€ €€ณ  žˆŠ” ปดํ“จํ„— ฐ›•„„œ ํ”„กœทธžจ„ ˆ˜ •ํ•˜„ก ํ•˜Š” ณต„ž„.
ฒดํฌ•„›ƒ(checkout) :  €žฅ†Œ— žˆŠ” ํŒŒ„ ž‘—…ณต„œกœ ณต‚ฌํ•ด €—ญ ณต‚ฌณธ„ ƒ„.
 „†ก(commit) : ˆ˜ •ํ•œ ํŒŒ„  €žฅ†Œ— ฐ˜˜‹œํ‚คŠ” ฒƒ.
งŒ•ฝ ํ•œฐœ˜ ํŒŒ„ 2ช…˜ ํ”„กœทธž˜จธ€ ฐธฐ ˆ˜ •„ ํ•œ’ค commitํ•œ‹คฉด ด•Œ˜ ƒํ™ฉ„ –ด–ค‹œกœ ฒ˜ฆฌํ•  ฒƒธ€?

1.4. project. module, and files

ธฐณธ œกœ Version Control —„œ €ฆฌ˜ €žฅ ž‘€ ‹จœ„Š” ํŒŒด‹ค. ทธ™ธ— ํ•œฐœ˜ ํ”„กœ ํŠธ ‹จœ„กœ  „ฒด ํ”„กœทธžจ„ €ฆฌํ•˜ณ , ทธ ํ•˜€— ชจ“ˆ„ ธฐ€œกœ ํ•ด„œ †ŒŠค €ฆฌํ•œ‹ค.

1.5. Where Do Versions Come In?

 €žฅ†ŒŠ” งŠ” ‹คฅดฒŒ ‚ฌ‹ค งŽ€  •„ ณ„œ  €žฅœ‹ค.  €žฅ†ŒŠ” ํ•œฒˆด„ ฒดํฌธํ•œ ด žˆŠ” ชจ“  „ „„ ณด€ํ•œ‹ค.
ฐฐ˜ ฒดํฌธœ „ „—Š” ฒดํฌธํ•œ ‚ งœ, ‹œฐ, €ฒฝ˜ ‚ดšฉ„  €žฅํ•˜Š” „ด ํฌํ•จœ‹ค.
CVS€ ฐธฐ˜ ํŒŒ— ํ• ‹ํ•˜Š” „ „˜ ฒˆํ˜ธŠ” ทธ ํŒŒ˜ „ „ฟ  „ฒด ํ”„กœ ํŠธ˜ „ „ ˆ˜Š” —†‹ค. (žก‹ด:ก  ”ฐกœ ธฐŠฅด žˆ€ •Š„Œ? -_-;)

1.6. Tags

„ „ €ฆฌ ‹œŠคํ…œ—„œŠ”  „ฒด˜ ํŒŒ, ชจ“ˆ‹จœ„, ํ”„กœ ํŠธ ‹จœ„กœ ด— †ํ•œ ํŒŒ“ค— ฆฌํ‘œŠ” ฒƒ„ ถ™ดŠ” ฒƒด €Šฅํ•˜‹ค.
PreRelease2
~cpp file1.java 1.11
file2.java 1.7
file3.java 1.10
ด ฒฝšฐ PreRelease2 ถˆŸฌ“คดฒŒ ˜ฉด ƒธฐ˜ „ „˜ ํŒŒ“คด ถˆŸฌ“ค—ฌ€ฒŒ œ‹ค. ํƒœทธŠ” ํ”„กœ ํŠธ˜ „ํ–‰— žˆ–ด„œ ค‘š”ํ•œ ด ฐœƒํ•œ ‹œ „ ธฐกํ•˜Š” ฒƒœกœ ‚ฌšฉ˜Š” ฒƒ„ €Šฅํ•˜‹ค.

1.7. Branches

ฐœฐœค‘‹ฌถ•(mainline) : ฐ˜ ธ ฐœฐœํ™˜ฒฝํ•˜—„œ ฐœฐœž“ค€ ™ํ•œ ฝ”“œ ธฐฐ˜„ €€ณ  ž‘—…„ ํ•œ‹ค. ฒดํฌ•„›ƒ, ฐœ •ํŒ„ งŒ“ค–ด„œ, €ฒฝ‚ฌํ•ญ„ ฒดํฌธํ•˜ฉด ชจ“  ฐœฐœž€ „œกœ˜ ž‘—…„ ณตœ ํ•˜ฒŒ ˜Š” ฒƒด‹ค. ดŸฌํ•œ ฐœฐœํ„„ ปฌ–ด ฐœฐœค‘‹ฌถ•ด ํ•จ.

ดŸฐ ฐœฐœค‘‹ฌถ•ƒ—„œ งŒ•ฝ ํŠ • ‹œ —„œ ํ”„กœทธžจ˜ ฆดฆฌฆˆ „ „ด ™„„˜–ด„œ QA •œกœ “ค–ดฐ”‹คณ  ƒฐํ•ดณดž. ด•Œ, ํ”„กœ ํŠธ˜ ‹คฅธ ํŒ€›“ค ™‹œ— ฐœฐœ„ „ํ–‰‹œœ ‚˜€ฉด„œ, QA •—„œ ฐœƒœ ˜ช… ธ „ทธ ณธž˜˜ ฐœฐœค‘‹ฌถ•ƒ— ฐ˜˜‹œํ‚คธฐ œ„ํ•ด„œ งŒ“ค–ด„ ฐœ…ž„. (ทธด žˆ–ด• ดํ•ด€ ‰ฌšธ“. €งŒ ฝ–ด„œŠ” SE “ฃ€ •Š€ ดƒ ดํ•ด ํž˜“ค–ดณดž„.)

ธŒžœ˜ งŒ“คฒŒ ˜ฉด ทธ ‹œ —„œ ธŒžœ˜กœ งŒ“ค–ด„ †ŒŠคŠ” ฐœฐœ˜ ค‘‹ฌถ•„ ƒ—„œ   ธ‚˜™€„œ ธฐณธ ฐœฐœถ• ‹คฅธ ฐœฐœ„ ํ•  ˆ˜ žˆ‹ค. ˜ํ•œ ด ‡ฒŒ „ธฐœ ํ”„กœ ํŠธ˜ €ฒฝ€„„ ณธž˜˜ ฐœฐœค‘‹ฌถ•„ ƒ— ฐ˜˜‹œํ‚คŠ” ฒƒ˜ํ•œ €Šฅํ•˜‹ค. ˜ํ•œ ด ฆดฆฌฆˆ ‹œ „ €‚˜„œ ฐœฐœค‘‹ฌถ•ด ƒ‹€„ „ํ–‰ด œ ƒํƒœ—„œ †Œ„ž€ ฆดฆฌฆˆ„ „˜ „ทธ ณดณ ํ•˜—ฌ, ด „ทธ ณ ณ•ํ•  ํ•„š”€ ƒ„•Œ ฐœฐœž“ค„ ƒˆกœ †ŒŠค งŒ“ค ํ•„š”—†ด ‹จ€ ฆดฆฌฆˆ ‹œ ˜ ธŒžœ˜กœ ˜ฎฒจ„œ ž‘—…„ ํ•˜ณ , ํŒจ˜ งŒ“ค–ด ‚ดŠ” ฒƒด €Šฅํ•˜‹ค.

„ „ ฒˆํ˜ธ
mainline : 1.14 -> 1.15
branches : 1.14.2.1 -> 1.14.2.2

1.8. Merging

ธŒžœ˜ ดšฉํ•˜ฉด ํ•œช…˜ ฐœฐœž€ ํ•œฐœ˜ ปดํ“จํ„ €€ณ „ ฆดฆฌฆˆ „ „˜ „ทธ ˆ˜ •ž‘—… mainlineƒ˜ ํ”„กœทธžจ˜ ฐœฐœ„ ™‹œ— ํ•˜Š” ฒƒด €Šฅํ•˜‹ค.
ด ฒฝšฐ ธŒžœ˜—„œ ˆ˜ •œ ‚ฌํ•ญด mainlineƒ—„ ฐ˜˜˜–ด•ํ•  ํ•„š”€ žˆ„•Œ ด ณ‘ํ•ฉ˜  •„ ํ†ตํ•ด„œ ํ•˜Š” ฒƒด €Šฅํ•˜‹ค.

1.9. Locking Options

งŒ•ฝ ํ•œฐœ˜ ํŒŒ„ €€ณ  2ช…˜ ‚ฌžŒด ™‹œ— ˆ˜ •ž‘—…„ ณ„œ ฒดํฌธํ•˜ฒŒœ‹คฉด –ด–ค ƒํ™ฉด ฒŒ–ดงˆŒ? •„งˆ ดŒ€กœŠ” ํ•œฐœ˜ ํŒŒด “ฐ—ฌ€ณ  ‹คฅธ ํŒŒด ทธ ํŒŒ„ ฎ–ด “ฐŠ” ƒํ™ฉด ฒŒ–ดงˆ ฒƒด‹ค.
—„ฒฉํ•œ ž ธˆ
ํŒŒ„ ฒดํฌ•„›ƒํ•˜Š” ‹œ €„ทธ ํŒŒ“ค€ ฝธฐ „šฉ˜ †„œกœ €ฒฝœ‹ค. ”ฐ„œ ‹คฅธ ‚ฌžŒด ทธ ํŒŒ„ ฒดํฌ•„›ƒํ•˜”„ ˆ˜ •„ ํ•  ˆ˜Š” —†ฒŒ˜Š” ฒƒด‹ค.

‚™€  ž ธˆ
‹คˆ˜˜ ฒดํฌ•„›ƒ„ ํ—ˆšฉํ•˜Š” Œ€‹ — ฒดํฌธ„ ํ•˜Š” •Œ—,  €žฅ†Œ—  €žฅœ ํŒŒ“ค„ กœปฌ ž‘—…ณต„— ฐ˜˜‹œํ‚จ‹ค.

Original
~cpp 
public class File1 {
	public String getName() {
		return "Wibble";
	}
	public int getSize() {
		return 42;
	}
}

Fix 01
~cpp 
public class File1 {
	public String getName() {
		return "WIBBLE";
	}
	public int getSize() {
		return 42;
	}
}

Fix 02
~cpp 
public class File1 {
	public String getName() {
		return "Wibble";
	}
	public int getSize() {
		return 99;
	}
}

ƒธฐ™€ ฐ™€ ‹œกœ †ŒŠค ˆ˜ •ํ•œ’ค fix01, fix02 ˆœฐจ œกœ ฒดํฌธํ•˜ฉด fix01— ˜ํ•ด„œ  €žฅ†Œ— žˆŠ” ํŒŒด ‹ ˜—ˆธฐ •Œฌธ— fix02€ ฒดํฌธ ˜Š” ‹œ —„œ ถฉŒด –ด‚˜ฒŒ œ‹ค. ดฒฝšฐ CVSŠ” fix02˜ †ŒŠค—„œ fix01— ฐ˜˜œ 3ฒˆงธ „˜ €ฒฝ‚ดšฉ„ ณ‘ํ•ฉํ•˜—ฌ กœปฌ ž‘—… ณต„— ฐ˜˜ํ•˜ณ  ฒดํฌธํ•˜ฒŒœ‹ค.
ฐ˜ œกœ ‚™€  ž ธˆœกœ ตฌํ˜„œ ~cpp VersionControl„ „ ํ˜ธํ•œ‹ค.

1.10. Configuration Management (CM)

ํ˜•ƒ€ฆฌ(Configuration Management) : ํ”„กœ ํŠธ˜ ธ„‹œ ํ•„š”ํ•œ ชจ“  ฒƒ“ค„ ํŒŒ•…ํ•˜Š” ฐฉฒ•.
----
PragmaticVersionControlWithCVS
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:24:02
Processing time 0.0314 sec