#####################################
# Eclipse¿Í CVSÅëÇÑ Team Project ÁøÇà #
#####################################
ÀÛ¼ºÀÚ : ÀåÇüÈ(hhjang97@venus.uos.ac.kr)
ÀÛ¼ºÀÏ : 2005. 08. 03
¼öÁ¤ÀÏ :
¿øº» : ÀÎÅÍ³Ý ¾îµò°¡¿¡¼ ÁÖ¿ö ¿ÔÀ½
¼³¸í :
################################# ################################# #################################
¢Ì CVS & Eclipse ¿¬µ¿ ÀÛ¾÷Çϱâ
- Eclipse³»¿¡ CVS Ŭ¶óÀÌ¾ðÆ® ³»ÀåµÇ¾î ÀÖÀ½
1. CVS RepositoryÀÇ µî·Ï
- [Window --> Open Perspective --> CVS Repository Exploring] ¼±ÅÃÇÑ ÈÄ [Add CVS Repository...]À» Ŭ¸¯ÇÕ´Ï´Ù.
- Host: 192.168.1.11
- Repository path: D:\CVSRepository
- User: cvsid
- Password: dev1001
- Connection Type: pserver
- use port: 2401
2. eclipse·Î importÇϱâ
- CVS ¼¹ö·Î ¿Ã¸®´Â °ÍÀ» ¸»ÇÑ´Ù.
- [File --> New --> Java Project]¸¦ ¼±ÅÃÇÕ´Ï´Ù.
- Project name: cvsTest·Î ÁöÁ¤ÇÕ´Ï´Ù.
- cvsTest¸¦ ¼±ÅÃÇϰí [New --> class]¸¦ ¼±ÅÃÇÕ´Ï´Ù.
- Package: cvsTest
- Name: HelloCVS
- public static void main()¼±ÅÃÇϰí Finish¸¦ ¼±ÅÃÇÕ´Ï´Ù.
- ¾Æ·¡ÀÇ ¼Ò½º¸¦ ÀÔ·ÂÇÕ´Ï´Ù.
package cvsTest;
public class HelloCVS {
public static void main(String[] args) {
System.out.println("192.168.1.11¿¡¼ ¼öÁ¤µÈ ¼Ò½ºÀÔ´Ï´Ù. - ¿Õ´«ÀÌ");
}
}
- ¼Ò½º ÀÔ·ÂÀÌ ÀüºÎ ³¡³ª¸é ÇÁ·ÎÁ§Æ®¸¦ ¼±ÅÃÇϰí [Team -- Shsre Project]¸¦ ¼±ÅÃÇÕ´Ï´Ù.
- ±âÁ¸¿¡ µî·ÏµÈ Repository¸¦ »ç¿ëÇϱâ·Î ÇÕ´Ï´Ù.
- module¸íÀ» ÀÔ·ÂÇϴ ȸéÀÌ ³ª¿À´Âµ¥ "Use project name as module name"À» ¼±ÅÃÇÕ´Ï´Ù.
ÀÌ ¼±ÅÃÀº ÇÁ·ÎÁ§Æ® À̸§°ú ¸ðµâÀ̸§À» °°°Ô Çϰڴٴ °ÍÀÔ´Ï´Ù.[Finish] ¹öưÀ» Ŭ¸¯Çϸé 󸮰¡ ¿Ï·áµË´Ï´Ù.
- CVS Repository Exploring Perspective¸¦ ¼±ÅÃÇÏ°í ´ÙÀ½À» Ŭ¸¯ÇÕ´Ï´Ù.
- [HEAD]³ëµå¿¡ º¸¸é cvsTest¶õ ÇÁ·ÎÁ§Æ®°¡ µî·ÏµÈ °ÍÀÌ º¸ÀÔ´Ï´Ù. º¸ÀÌÁö ¾ÊÀ¸¸é [Refresh View]¸¦ ¼±ÅÃÇÕ´Ï´Ù.
¢Ì Update(down)
- Update´Â ¼¹ö¿¡¼ ÃÖ½ÅÀÇ ¼Ò½º¸¦ °¡Á®¿À´Â °ÍÀ» ¸»ÇÑ´Ù.
- [Team --> Update]¸Þ´º¸¦ ¼±ÅÃÇÏ¸é ¹ß»ýÇÏ´Â »óȲ
. ¼Ò½º Ãæµ¹ÀÌ ¾øÀ» ¶§: ·ÎÄÿ¡ ÀÖ´Â ¼Ò½º°¡ º¯°æµÇÁö ¾ÊÀº »óȲÀ¸·Î, ÆÄÀÏÀÌ ÀÚµ¿À¸·Î CVS¼¹öÀÇ ³»¿ëÀ¸·Î º¯°æµÈ´Ù.
. ÀÚµ¿ º´ÇÕ(merge)ÀÌ ¹ß»ýÇÒ ¶§: µ¿½Ã¿¡ °°Àº ¸®ºñÀü(revision)ÀÇ asciiÆÄÀÏÀ» commitÇÏ·Á ÇÒ ¶§ ¼·Î º¯°æÇÑ ³»¿ëÀÌ
´Ù¸¥ ÁÙÀÇ °ÍÀ» °íÄ£ °æ¿ì ÀÚµ¿À¸·Î º´ÇյȴÙ.
. ºñ º´ÇÕ Ãæµ¹ÀÌ ¹ß»ýÇÒ ¶§: µ¿½Ã¿¡ °°Àº ¸®ºñÀü(revision)ÀÇ asciiÆÄÀÏÀ» commitÇÏ·Á ÇÒ ¶§ °°Àº ÁÙÀÇ ³»¿ëÀ» °íÄ£
°æ¿ì¿¡ ÀÚµ¿À¸·Î º´ÇÕµÇÁö ¾Ê°í Ãæµ¹ÀÌ ¹ß»ýÇß´Ù´Â ¸Þ¼¼Áö°¡ Ãâ·ÂµÈ´Ù.
1. [Team --> Update]¸Þ´º¸¦ ¼±ÅÃÇØ¼ ¹ß»ýÇÏ´Â »óȲÀÇ Ã³¸®
- ¼Ò½º ºñ Ãæµ¹, ÀÚµ¿ º´ÇÕ »óȲ: ¾Æ¹«·± ¿¡·¯ ¸Þ¼¼Á¦ ¾ø´Â ÀϹÝÀûÀÎ update°¡ ¹ß»ýÇÑ´Ù.
- ºñ º´ÇÕ Ãæµ¹ »óȲ(°°Àº ÁÙÀÇ ¼Ò½º¸¦ 2°÷À̻󿡼 ¼öÁ¤ÇÑ °æ¿ì)
. ASCII: ·ÎÄà ¸®¼Ò½º°¡ CVS ¸¶Å©¾÷ ÅØ½ºÆ®¸¦ »ç¿ëÇÏ¿© º´ÇÕ
. binary: ·ÎÄà ¸®¼Ò½º°¡ ".#'ÆÄÀÏ·Î º¯°æµÇ¸é¼ ¼¹ö·ÎºÎÅÍ ÆÄÀÏÀ» ´Ù¿î·ÎµåÇÑ´Ù. ÀÌ ¶§´Â ¼öÁ¤µÈ ºÎºÐÀ» Àç ÆíÁýÇÑ´Ù.
2. [Window --> Show View --> Synchronize]¸¦ ¼±ÅÃÇϸé ȸé ÇÏ´Ü¿¡ "Synchronize View"ȸéÀÌ Ãâ·ÂµË´Ï´Ù.
¼±ÅÃÇÑ ¼Ò½º¸¦ Ŭ¸¯Çϰí [Team --> Synchronize with Repository]¸¦ ¼±ÅÃÇÕ´Ï´Ù.
"Update"¸¦ À§ÇØ ¸ðµå¸¦ "Incomming Mode"·Î º¯°æÇÕ´Ï´Ù.
Update¹æ¹ýÀº 2°¡Áö·Î ³ª´©¾î Áý´Ï´Ù.
- Update from Repository: ºñ Ãæµ¹ »óȲÀÇ ¼Ò½ºÀÎ °æ¿ì updateµÈ´Ù.
- Override and Update: ÀÚµ¿º´ÇÕ°ú ºñº´ÇÕÀÎ °æ¿ì¿¡ »ç¿ëÇÏ´Â ¸Þ´º·Î ´ÙÀ̾ó·Î±×â¿¡ ÀÚµ¿À¸·Î º´ÇÕÇÒÁö ¾Æ´Ï¸é
µ¤¾î¾²±â ÇÒÁöÀÇ ¿©ºÎ¸¦ ¹¯´Â´Ù. ÀÚµ¿À¸·Î º´ÇÕÀ» ¼±ÅÃÇÏ¸é ¼Ò½º°¡ ÀÚµ¿À¸·Î º´ÇÕµÇ¾î ·ÎÄüҽº°¡ º¯°æµÇ°í, µ¤¾î¾²±â¸¦
¼±ÅÃÇÏ¸é ·ÎÄà ¼Ò½º°¡ ¸ðµÎ ¼¹öÀÇ ¼Ò½º·Î ´ëüµÊÀ¸·Î ÁÖÀÇÇØ¾ß ÇÑ´Ù.
¢Ì »õ·Î¿î °³¹ßÀÚ°¡ Ãß°¡µÇ´Â °æ¿ì
1. CVS RepositoryÀÇ µî·Ï
- [Window --> Open Perspective --> CVS Repository Exploring] ¼±ÅÃÇÑ ÈÄ [Add CVS Repository...]À» Ŭ¸¯ÇÕ´Ï´Ù.
- Host: 192.168.1.11
- Repository path: D:\CVSRepository
- User: cvsid
- Password: dev1001
- Connection Type: pserver
- use port: 2401
1. [CVS Repository Exploring Perspective]¿¡¼ [HEAD]³ëµå¿¡¼ ÇÁ·ÎÁ§Æ®¸¦ ¼±ÅÃÇϰí [Check Out As Project]¸¦ Ŭ¸¯ÇÕ´Ï´Ù.
¿©±â¼´Â cvsTest¸¦ ´ë»óÀ¸·Î ÇÕ´Ï´Ù.
. CheckoutÀº ¼¹ö¿¡ ÀÖ´Â ÆÄÀÏÀ» Local·Î °¡Á®¿À´Â ÀÛ¾÷ÀÌ´Ù.
. »õ·Î¿î °³¹ßÀÚ°¡ °³¹ß¿¡ Âü¿©ÇÒ °æ¿ì, ¸Ç óÀ½ Local PC¿¡ ±×µ¿¾È ÀÛ¾÷ÇÑ ¼Ò½º¸¦
¹Þ¾Æ¿Ã ¶§ óÀ½ ½ÇÇàÇÑ´Ù.
2. Àá½Ã ÈÄ D:\eclipse2\workspace\cvsTestÆú´õ°¡ »ý¼ºµÇ°í ¼Ò½º°¡ ´Ù¿îµË´Ï´Ù. ÀÛ¾÷À» ½ÃÀÛÇÕ´Ï´Ù.
¢Ì ¼Ò½º¸¦ ¼öÁ¤ÇÑ ÈÄ commit½ÇÇàÇϱâ
- ¼öÁ¤ÇÑ ¼Ò½º¸¦ CVS¼¹ö·Î Àü¼ÛÇØ¼ ´Ù¸¥ ÆÀ¿ø°ú °øÀ¯ÇÏ´Â ±â´ÉÀÔ´Ï´Ù.
1. [Team --> Commit]¸¦ ¼±ÅÃÇÕ´Ï´Ù.
- commit½Ã¿¡ commit comment¸¦ ´Þ¾ÆµÎ¸é ÁÁ½À´Ï´Ù.
- commit½Ã ¹ß»ýÇÏ´Â Ãæµ¹À» ÃÖ¼ÒÈÇϱâ À§ÇØ Ç×»ó ÃÖ½ÅÀÇ ¼Ò½º·Î ¾÷µ¥ÀÌÆ®ÇÏ¿´´Ù°¡ ¼öÁ¤ÇÏ¿© commitÇÑ´Ù.
- ¼Ò½º¸¦ ¼öÁ¤ÇϱâÀü¿¡ Ç×»ó update¸¦ ¸ÕÀú ÇÑÈÄ commitÀ» ¼öÇàÇÑ´Ù.
- ¸¸¾à »õ·Î¿î ÆÄÀÏÀ̶ó¸é 'Add to CVS Version Control'âÀÌ ¶ß¸ç'Add'ÇØÁÖ¸éµÈ´Ù.
2. [Team --> Synchronize View]¿¡¼ 'Outgoing mode'·Î ¼±ÅÃÇϰí [commit]À» ¼±ÅÃÇÕ´Ï´Ù.
3. 'commit'Àü¿¡ ¼Ò½º¸¦ ºñ±³Çغ¸°í ½ÍÀ¸¸é [Show Content Comparison]À» Ŭ¸¯ÇÕ´Ï´Ù.
¼Ò½º¸¦ ºñ±³Çؼ ¼öÁ¤ÇÑ ÈÄ 'commit'À» ½ÇÇàÇÕ´Ï´Ù.
4. Ãæµ¹»óȲ¿¡¼ update(down)¸¦ ½ÇÇàÇÏ¸é ¾Æ·¡¿Í °°Àº ¼Ò½º°¡ º¸ÀÔ´Ï´Ù.
package cvsTest;
public class HelloCVS {
public static void main(String[] args) {
System.out.println("eclipse 10:18");
<<<<<<< HelloCVS.java
System.out.println("eclipse2 10:46");
System.out.println("eclipse 10:47");
=======
System.out.println("eclipse2 10:46");
System.out.println("eclipse2 10:48");
>>>>>>> 1.4
}
}
'======='ºÎºÐÀ» ±âÁØÀ¸·Î À ºÎºÐÀº ÇöÀç ÆíÁý±âÀÇ ¼Ò½ºÀÌ°í ¾Æ·¡ÂÊÀº ¼¹ö¿¡¼ µé¾î¿Â ¼Ò½ºÀÔ´Ï´Ù.
¼Ò½º¸¦ ¾Æ·¡¿Í °°ÀÌ ÆíÁýÇÕ´Ï´Ù.
package cvsTest;
public class HelloCVS {
public static void main(String[] args) {
System.out.println("eclipse 10:18");
System.out.println("eclipse2 10:46");
System.out.println("eclipse2 10:48");
System.out.println("eclipse 10:56");
}
}
[commit]À» ½ÇÇàÇÏ¸é ¼Ò½º°¡ ¼¹ö¿¡ ¹Ý¿µµË´Ï´Ù.
¢Ì Delete
1. ·ÎÄà ÆÄÀÏÀÇ »èÁ¦
- ÆÄÀÏÀ» ¼±ÅÃÇϰí [delete]¸¦ ÇÕ´Ï´Ù. ·ÎÄÃÀº Áö¿öÁöÁö¸¸ ¼¹ö´Â Áö¿öÁöÁö ¾Ê½À´Ï´Ù.
2. ¼¹ö¿¡ ÀÖ´Â ÆÄÀÏÀÇ »èÁ¦
- ¼¹öÀÇ ÆÄÀÏÀ» »èÁ¦ÇÏ·Á¸é ÇÁ·ÎÁ§Æ®³ª Æú´õ¸¦ ¼±ÅÃÇϰí [commit]À» Ŭ¸¯ÇÕ´Ï´Ù.
- ÀÌ °æ¿ì ´Ù¸¥ °³¹ßÀÚ°¡ [update]¸í·ÉÀ» »ç¿ëÇϸé ÀÛ¾÷ÇÏ´ø ÆÄÀÏÀÌ »èÁ¦µÊÀ¸·Î ÁÖÀÇÇØ¾ß ÇÕ´Ï´Ù.
3. º¹¿ø
- ÀÌ·¸°Ô »èÁ¦µÈ ÆÄÀÏÀ» º¹¿øÇÏ·Á¸é [Team --> Restore From Repository]À» Ŭ¸¯ÇÕ´Ï´Ù. ´ÙÀ̾ó·Î±×°¡ º¸ÀÔ´Ï´Ù.
- º¹¿øÇÏ°í ½ÍÀº ÆÄÀÏÀ» ¼±ÅÃÇÏ°í ³»¿ëÀ» È®ÀÎ ÇÑ ÈÄ º¹¿øÇÕ´Ï´Ù.
¢Ì Source Conflict ÇØ°áÇϱâ
1. ¼¹ö·Î commit½Ã Ãæµ¹À» ¾Ë°ÔµÇ´Â °æ¿ì´Â °°Àº ¼Ò½º¸¦ 2°÷ À̻󿡼 update ¹Þ¾Æ °¢°¢ÀÇ ÇÁ·Î±×·¡¸Ó°¡ ¼Ò½º¸¦ ¼öÁ¤Çϰí
'Commit'ÇÏ´Â °úÁ¤¿¡¼ ¹ß»ýÇÏ°Ô µÈ´Ù.
ÀÌ ¶§ ÇÑ °³¹ßÀÚ´Â commitÀÌ ÀÌ·ç¾îÁö³ª ´ÙÀ½ °³¹ßÀÚ´Â commitÇÏ·Á¸é Ãæµ¹ÀÌ ¹ß»ýÇÑ´Ù.
¿øº»¼Ò½º:¿øº» ¼Ò½º¸¦ 2¸íÀÇ °³¹ßÀÚ°¡ °¢°¢ update(Down)¹Þ½À´Ï´Ù.
package cvsTest;
public class HelloCVS {
public static void main(String[] args) {
System.out.println("eclipse 10:18");
System.out.println("eclipse2 10:46");
System.out.println("eclipse2 10:48");
System.out.println("eclipse 10:56");
}
}
°³¹ßÀÚ A: commitÀÌ Á¤»óÀûÀ¸·Î ÀÌ·ç¾î Áý´Ï´Ù.
package cvsTest;
public class HelloCVS {
public static void main(String[] args) {
System.out.println("eclipse 10:18");
System.out.println("eclipse2 10:46");
System.out.println("eclipse2 10:48");
System.out.println("eclipse 10:56");
System.out.println("eclipse2 11:33");
}
}
°³¹ßÀÚ B: commitÇÏ·Á°í Çϸé Ãæµ¹ÀÌ ¹ß»ýÇÕ´Ï´Ù.
package cvsTest;
public class HelloCVS {
public static void main(String[] args) {
System.out.println("eclipse 10:18");
System.out.println("eclipse2 10:46");
System.out.println("eclipse2 10:48");
System.out.println("eclipse 10:56");
System.out.println("eclipse 11:32");
}
}
À§¿Í °°ÀÌ Ãæµ¹ÀÌ ¹ß»ýÇÑ °æ¿ì [Team --> Synchronize with Repository]¸¦ Ŭ¸¯ÇÕ´Ï´Ù.
±×·¯¸é Synchronize View¿¡ Ãæµ¹ ¸ð¾çÀÇ »¡°£»ö ¾ÆÀÌÄÜÀÌ Ãâ·ÂµË´Ï´Ù.
Ãæµ¹ÀÌ ³ª´Â ÆÄÀÏÀ» ¼±ÅÃÇϰí [Show Content Comparison]À» Ŭ¸¯ÇÕ´Ï´Ù.
±×·¯¸é Ãæµ¹³ª´Â ¼Ò½º°¡ ¼·Î ºñ±³µÇ¾î Ãâ·ÂÀÌ µË´Ï´Ù.
2. Ãæµ¹ ¹ß»ý½Ã »ç¿ëÇÒ¼ö ÀÖ´Â Åø¹ÙÀÇ ±â´ÉÀº ¾Æ·¡¿Í °°½À´Ï´Ù.
- Show Ancestor Panel: ÇöÀç º¸À̰í Àִ ȸéÀÔ´Ï´Ù.
- Three way compare: Ãæµ¹ÀÌ ³ ¼Ò½º¸¦ ±âº»À¸·Î
. Ãæµ¹ÀÌ ³ªÁö ¾ÊÀº ¹öÀü
. ¸ÕÀú commitµÈ ¼Ò½º
. ·ÎÄÿ¡¼ commitÇÏ·Á´Â ¼Ò½º¸¦ º¸¿©ÁÝ´Ï´Ù.
- Two way compare: Ãæµ¹³ ¾ç ¼Ò½º¸¸ º¸¿©ÁÝ´Ï´Ù.
- Copy whole document Left to Right: ¿ÞÂÊ ÆÐ³ÎÀÇ Àüü ¼Ò½º¸¦ ¿À¸¥ÂÊ ÆÐ³Î·Î º¹»çÇÕ´Ï´Ù.
- Copy whole document Right to Left: ¿À¸¥ÂÊ ÆÐ³ÎÀÇ Àüü ¼Ò½º¸¦ ¿ÞÂÊ ÆÐ³Î·Î º¹»çÇÕ´Ï´Ù.
- Copy current change from Left to Right: ¿ÞÂÊ ÆÐ³Î¿¡¼ º¯°æµÈ ºÎºÐ¸¸À» ¿À¸¥ÂÊ ÆÐ³Î·Î º¹»çÇÑ´Ù.
- Copy current change from Right to Left: ¿À¸¥ÂÊ ÆÐ³Î¿¡¼ ¿ÞÂÊ ÆÐ³Î·Î º¯°æµÈ ºÎºÐ¸¸À» º¹»çÇÑ´Ù.
- Select Next Difference: ¾çÂÊ ¼Ò½º°¡ ´Ù¸¥ ´ÙÀ½ ºÎºÐÀ¸·Î À̵¿ÇÏ¿© ¼±ÅÃÇÑ´Ù.
- Select Previous Difference: ¾çÂÊ ¼Ò½º°¡ ´Ù¸¥ ÀÌÀüºÎºÐÀ¸·Î À̵¿ÇÏ¿© ¼±ÅÃÇÑ´Ù.
3. Ãæµ¹ÀÇ ÇØ°á¹æ¹ý
- ¼¹öÀÇ ¼Ò½º·Î ·ÎÄÃÀÇ ¼Ò½º¸¦ ±³Á¦ÇÑ´Ù.
- ·ÎÄÃÀÇ ¼Ò½º·Î ¼¹öÀÇ ¼Ò½º¸¦ ±³Ã¼ÇÑ´Ù.
- ·ÎÄðú ¼¹öÀÇ ¼Ò½º¸¦ º´ÇÕÇÑ´Ù.
- Mode¸¦ Incoming/Outgoing Mode·Î ÀüȯÇÕ´Ï´Ù.
System.out.println("eclipse 11:32"); ¿ÞÂÊ ÆÐ³Î¿¡ ¹®ÀåÀ» Ãß°¡Çϰí
[Override and Commit...] À» Ŭ¸¯ÇÕ´Ï´Ù.
º¯°æµÈ ¼Ò¸¦ ¹Ý¿µÇÒ°ÍÀÎÁö ¹¯´Â â¿¡¼ [YES]¸¦ Ŭ¸¯ÇÕ´Ï´Ù.
¼¹ö¿¡ ¸±¸®ÁîÇÒ °ÍÀÎÁö ¹¯´Â â¿¡¼ [YES]¸¦ Ŭ¸¯ÇÕ´Ï´Ù.
¢Ì Branching
- ¿øº» ¼Ò½º¸¦ º¸Á¸ÇÏ¸ç ÆÐÄ¡¹öÀüÀ» Á¦ÀÛÇҽÿ¡ »ç¿ëÇÑ´Ù.
1. [Team --> Branch...]À» Ŭ¸¯ÇÑ´Ù.
- Branch Name: HelloCVS
- Version Name: Root_HelloCVS_1
¢Ì Tagging
- ¼Ò½ºÀÇ ¹öÀü »ý¼º
- ÇÁ·ÎÁ§Æ®¸¦ ¼±ÅÃÇϰí [Team --> Tag as Version]À» Ŭ¸¯ÇÑ´Ù.
- ¿¸° â¿¡¼ [Details]À» ¼±ÅÃÇÏ¸é Æ÷ÇԵǴ Branch°¡ º¸ÀÌ°Ô µË´Ï´Ù.
- Ãß°¡°¡ ¿Ï·áµÇ¸é CVS Repository¿¡ Versions¿¡ Ãß°¡µÈ°ÍÀ» È®ÀÎ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¢Ì Merging
- Branch¸¦ ÅëÇØ ¼öÁ¤µÈ ¼Ò½º¸¦ ¿øº» ¹öÀü¿¡ º´ÇÕÇÑ´Ù.
#################################
#
#################################