##################################### # 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¸¦ ÅëÇØ ¼öÁ¤µÈ ¼Ò½º¸¦ ¿øº» ¹öÀü¿¡ º´ÇÕÇÑ´Ù. ################################# # #################################