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.0256 sec