WinCVS
WinCVSÀÇ °£·«ÇÑ »ç¿ë¹æ¹ý
MS Windows ȯ°æ¿¡¼ °¡Àå ¸¹ÀÌ ¾Ë·ÁÁø CVS client¸¦ ²ÅÀ¸¶ó¸é WinCVS°¡ ¾Æ´Ò±î ÇÕ´Ï´Ù. ÀÌ¿¡ ´ëÇÑ °£·«ÇÑ »ç¿ë¹æ¹ý¿¡ ´ëÇؼ ±â¼úÇϵµ·Ï ÇÏ°Ú½À´Ï´Ù.
Contents
1. ¾îµð¼ ´Ù¿î·Îµå Çϴ°¡¿ä? ¶CVS/FAQ ÆäÀÌÁö¿¡µµ ±â¼úµÇ¾î ÀÖµíÀÌ http://cvsgui.sourceforge.net ¿¡¼ ´Ù¿î·Îµå ¹ÞÀ¸½Ç ¼ö ÀÖ½À´Ï´Ù. ´Ù¿î·Îµå ÆäÀÌÁö¸¦ ã±â°¡ ¾î·Á¿ì½Ã´Ù°í¿ä? 2003³â 10¿ù 30ÀÏ ÇöÀç http://cvsgui.sourceforge.net/download.html#WINCVS ¿¡¼ ´Ù¿î·Îµå °¡´ÉÇÕ´Ï´Ù. ¿©±â¿¡¼´Â 1.3 BETA 2¸¦ ±âÁØÀ¸·Î ÀÛ¼ºµÇ¾úÀ¸³ª ¾ÈÁ¤µÈ ¹öÀüÀ» ¿øÇϽŴٸé 1.2¸¦ »ç¿ëÇϼŵµ ¹«¹æÇÕ´Ï´Ù.
¼³Ä¡´Â ÀϹÝÀûÀÎ À©µµ¿ìÁî ÇÁ·Î±×·¥°ú ´ëµ¿¼ÒÀÌÇϹǷΠÀß ÇϽø®¶ó ¹Ï½À´Ï´Ù.
2. óÀ½ ½ÇÇàÈ¸é ¶
3. ¸ðµâ »ý¼ºÇϱâ(Import module ...) ¶CVS Ŭ¶óÀ̾ðÆ®´Â CVS¼¹ö¿¡ ÀÖ´Â ÇÁ·ÎÁ§Æ® ÀúÀå¼Ò¸¦ ÀÌ¿ëÇÏ°Ô µÇ´Âµ¥, ÀÌ °ø°£À» ÀÌ¿ëÇÏ´Â ´ÜÀ§°¡ ÀúÀå¼Ò(¸ðµâ ¶Ç´Â µð·ºÅ丮)´ÜÀ§ÀÔ´Ï´Ù.
ÀúÀå¼Ò ´ÜÀ§¶õ Ç¥Çöº¸´Ù´Â ¸ðµâ´ÜÀ§¶õ Ç¥ÇöÀÌ ÀûÀýÇÒ°Í °°¾Æ Áö±ÝºÎÅÍ´Â ¸ðµâ´ÜÀ§¶ó°í ¼³¸íÇÕ´Ï´Ù.
»ý¼ºµÉ ¸ðµâÀº CVS¼¹öÀÇ ÇÁ·ÎÁ§Æ® ÀúÀå¼Ò¿¡ À§Ä¡Çϸç, ¸ðµâÀ» »ý¼ºÇϱâ À§Çؼ´Â import¸í·ÉÀ» »ç¿ëÇÏ¿© ¸ðµâÀ» »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
/jane (project) +-- bin (module) +-- config (module) +-- help (module) +-- src (module) +-- samples (module) +-- lib (module) +-- CVSROOT (jane ÇÁ·ÎÁ§Æ®¿¡ ´ëÇÑ CVS ȯ°æ¼³Á¤ µð·ºÅ丮-ÇÁ·ÎÁ§Æ® ÀúÀå¼Ò »ý¼º½Ã ÀÚµ¿ »ý¼ºµÊ) ±×·³ ¸ðµâÀ» »ý¼ºÇÏ´Â ¹æ¹ýÀ» ¿¹Á¦¸¦ ¹ÙÅÁÀ¸·Î ¾Ë¾Æº¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
StudyProject µð·ºÅ丮ÀÇ ¼Ò½ºÆÄÀÏ 2°³¸¦ StudyProject¶õ ¸ðµâ¸íÀ¸·Î CVS ¼¹ö¿¡ ¸ðµâÀ» »ý¼ºÇϵµ·Ï ÇÏ°Ú½À´Ï´Ù.
¾Æ·¡´Â µÎ ÆÄÀÏ¿¡ ´ëÇÑ ¼Ò½ºÄÚµåÀÔ´Ï´Ù.
#!vim sh #:::Hello.c::: #include <stdio.h> #include "Hello.h" int main() { PrintHello(); return 0; } void PrintHello() { printf("Hello, world!\n"); }
#:::Hello.h:::
#ifndef HELLO_H_ #define HELLO_H_ void PrintHello(); #endif ´ÙÀ½Àº ¸ðµâÀ» »ý¼ºÇÏ´Â ÀÛ¾÷ÁøÇàÀýÂ÷ÀÔ´Ï´Ù.
À§ °úÁ¤À» ÅëÇؼ CVS ¼¹öÀÇ ÇÁ·ÎÁ§Æ® ÀúÀå¼Ò¿¡ StudyProject¸ðµâÀ» »ý¼ºÇß½À´Ï´Ù.
ÀÌÁ¦ ÀÌ ¸ðµâ(StudyProject)À» »ç¿ëÇϱâ À§Çؼ´Â checkout¸í·ÉÀ» »ç¿ëÇÏ¿© CVS¼¹ö¿¡ ÀÖ´Â ¸ðµâÀ»
³» ÄÄÇ»ÅÍÀÇ ÀÛ¾÷°ø°£À¸·Î °¡Á®¿Í ÀÛ¾÷À» ÇÏ¸é µË´Ï´Ù.
4. ¸ðµâ °¡Á®¿À±â(Checkout module ...) ¶CVS ¼¹ö¿¡¼ CVS Ŭ¶óÀ̾ðÆ®·Î ¸ðµâÀ» °¡Á®¿À´Â ÀÌÀ¯°¡ ±â¼úµÇ¾î¾ßÇÔ
CVS ¼¹öÀÇ ÇÁ·ÎÁ§Æ® ÀúÀå¼Ò¿¡ ÀÖ´Â ¸ðµâÀ» °¡Á®¿À±â À§Çؼ´Â checkoutÀ̶õ ¸í·ÉÀ» »ç¿ëÇϸç, ¸ðµâÀ» °¡Á®¿À´Â ¹æ¹ýÀ¸·Î´Â
ÁÖ ¸ðµâ(Main trunk)À» °¡Á®¿À´Â ¹æ¹ý°ú ƯÁ¤ Tag ¶Ç´Â ÆÄ»ý ¸ðµâ(Branch)¸¦ °¡Á®¿À´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
4.1. ÁÖ ¸ðµâ(Main trunk) °¡Á®¿À±â ¶ÁÖ ¸ðµâ(Main trunck)À» °¡Á®¿À±â À§Çؼ´Â ´ÙÀ½°ú °°Àº ÀÛ¾÷ÁøÇàÀýÂ÷¸¦ µû¸¨´Ï´Ù.
4.2. ÆÄ»ý ¸ðµâ(Branch) °¡Á®¿À±â ¶ÆÄ»ý ¸ðµâ(Branch)¸¦ °¡Á®¿À´Â ¹æ¹ýÀº ÁÖ ¸ðµâ(Main trunk)À» °¡Á®¿À´Â ¹æ¹ý°ú µ¿ÀÏÇϸç, ´ÜÁö Â÷ÀÌÁ¡À̶õ ÆÄ»ý ¸ðµâ(Branch)¸íÀ» ±â¼úÇÏ´Â ºÎºÐÀÌ Á¸ÀçÇÑ´Ù´Â »ç½ÇÀÔ´Ï´Ù. ÁÖÀÇ) ÆÄ»ý ¸ðµâ(Branch)¸¦ »ç¿ëÇϱâ À§Çؼ´Â ÆÄ»ý ¸ðµâ(Branch)¸¦ »ý¼ºÇؾ߸¸ ÇÕ´Ï´Ù.
ÆÄ»ý ¸ðµâ(Branch)À» °¡Á®¿À±â À§Çؼ´Â ´ÙÀ½°ú °°Àº ÀÛ¾÷ÁøÇàÀýÂ÷¸¦ µû¸¨´Ï´Ù.
5. ¸ðµâ °»½ÅÇϱâ(Update/Commit selection...) ¶¸ðµâÀ» °»½ÅÇÑ´Ù´Â °ÍÀº ³» ÄÄÇ»ÅÍ¿¡¼ ÀÛ¾÷ÇÑ ¸ðµâ°ú CVS ¼¹öÀÇ ÇÁ·ÎÁ§Æ® ÀúÀå¼Ò¿¡ ÀÖ´Â ¸ðµâÀ» ÀÏÄ¡½ÃÅ°´Â ÀÛ¾÷À» ¸»ÇÕ´Ï´Ù.
ÀÌ·¸°Ô ÇÔÀ¸·Î½á, °»½ÅµÈ ÆÄÀÏ(¸ðµâ¿¡ ¼Ò¼ÓµÈ ÆÄÀÏ)¿¡ ´ëÇÑ ¸®ºñÁ¯(revision)ÀÌ Çϳª Áõ°¡ÇÕ´Ï´Ù(¿¹ 1.2 -> 1.3).
¸ðµâÀ» °»½ÅÇÏ´Â ¹æ¹ý¿¡´Â ÀÛ¾÷ °ø°£À» °»½ÅÇÏ´Â ¹æ¹ý(Update)°ú ÀúÀå¼Ò¸¦ °»½ÅÇÏ´Â ¹æ¹ý(Commit)ÀÌ ÀÖ½À´Ï´Ù.
ÁÖÀÇ) Âü°í·Î °»½ÅÀÇ ´ÜÀ§·Î´Â ÆÄÀÏ,µð·ºÅ丮, ¸ðµâµîÀÌ ÀÖÀ¸¸ç, ¿©±â¼´Â ¸ðµâ´ÜÀ§¸¦ »ç¿ëÇÕ´Ï´Ù.
5.1. ÀÛ¾÷°ø°£ °»½ÅÇϱâ(Update selection...) ¶ÀÛ¾÷ °ø°£À» °»½ÅÇÑ´Ù´Â °ÍÀº ÃÖ½ÅÀÇ ÀÛ¾÷ ¸ðµâ·Î º¯°æÇÑ´Ù°í º¸½Ã¸é µË´Ï´Ù. ÃÖ½ÅÀÇ ÀÛ¾÷ ¸ðµâÀ» °¡Á®¿À´Â ¹æ¹ýÀ¸·Î´Â µÎ°¡Áö ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
À§¿¡¼ »ç¿ëÇÑ checkoutÀ̶õ ¹æ¹ý°ú Áö±Ý º¸°ÔµÉ updateÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. ÀÌ update¸í·ÉÀ» »ç¿ëÇÏ´Â °ÍÀÌ Á»´õ Á÷°üÀûÀ̶ó ÇÒ¼ö ÀÖ½À´Ï´Ù.
Ãß°¡ ¼³¸í ÇÊ¿äÇÔ(°»½Å¿¡´Â ¿©·¯ °æ¿ì°¡ Á¸ÀçÇÒ¼ö ÀÖÀ½)
ÀÛ¾÷°ø°£À» °»½ÅÇϱâ À§Çؼ´Â ´ÙÀ½°ú °°Àº ÀÛ¾÷ÁøÇàÀýÂ÷¸¦ µû¸¨´Ï´Ù.
5.2. ÀúÀå¼Ò °»½ÅÇϱâ(Commit selection...) ¶³» ÄÄÇ»ÅÍÀÇ ÀÛ¾÷ °ø°£¿¡¼ ÀÛ¾÷ÇÑ ¸ðµâµéÀ» ÆÀ¿øÀÌ °øÀ¯Çϱâ À§Çؼ´Â ¹Ýµå½Ã CVS¼¹öÀÇ ÇÁ·ÎÁ§Æ® ÀúÀå¼Ò¿¡ ¸ðµâÀ» °»½ÅÇØ¾ß ÇÕ´Ï´Ù.
ÀÌ·¸°Ô ÇÔÀ¸·Î½á ÆÀ¿øµéÀº ÀÚ½ÅÀÇ ÀÛ¾÷ °ø°£À» °»½ÅÇÔÀ¸·Î½á ÃÖ½ÅÀÇ ¸ðµâÀ» À¯ÁöÇÒ¼ö ÀÖ½À´Ï´Ù.
ÀúÀå¼ÒÀ» °»½ÅÇϱâ À§Çؼ´Â ´ÙÀ½°ú °°Àº ÀÛ¾÷ÁøÇàÀýÂ÷¸¦ µû¸¨´Ï´Ù.
6. Ãæµ¹ ÇØ°áÇϱâ(Conflict) ¶Ãæµ¹(Conflict)À̶õ °»½ÅÀ» ÇÏ´Â ½ÃÁ¡¿¡¼ ¹ß»ýÇÏ´Â ¸Þ¼¼Áö·Î, ³» ÄÄÇ»ÅÍÀÇ ÀÛ¾÷°ø°£¿¡¼ ¼öÁ¤º»°ú CVS¼¹öÀÇ ÇÁ·ÎÁ§Æ® ÀúÀå¼Ò¿¡ ÀÖ´Â ÃֽŠ¸ðµâ°úÀÇ »çÀÌ¿¡ °°Àº ¿µ¿ª(ÇÔ¼ö,ÆÄÀÏ,µîµî)¿¡¼ ¼öÁ¤ÀÌ ÀϾ¶§ ¹ß»ýÇÕ´Ï´Ù. ÀÌ´Â ÀÚµ¿À¸·Î ÇØ°áµÉ ¼ÒÁö°¡ ¾Æ´Ï±â ¶§¹®¿¡(ÀǹÌÀûÀÎ ºÎºÐµé±â ¶§¹®¿¡ CVS¼¹ö°¡ ÆÇ´ÜÀ» ÇÒ¼ö ¾ø½À´Ï´Ù) ¹Ýµå½Ã ¼öÁ¤ÇÑ ÆÀ¿ø(°ü·ÃÀÚ)°ú »óÀǸ¦ Çϴ°ÍÀÌ ÁÁ½À´Ï´Ù.
´ÙÀ½Àº Ãæµ¹ ¹ß»ý½Ã ¸Þ¼¼Áö ÀÔ´Ï´Ù.
RCS file: /testcvs/StudyProject/Hello.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 Merging differences between 1.1.1.1 and 1.2 into Hello.c rcsmerge: warning: conflicts during merge cvs server: conflicts found in Hello.c C Hello.cÇؼ®À» µ¡ºÙÀÌÀÚ¸é: RCS file: /testcvs/StudyProject/Hello.c,v //testcvs¶õ ÇÁ·ÎÁ§Æ® ÀúÀå¼ÒÀÇ StudyProject ¸ðµâ¿¡ ÀÖ´Â Hello.c¿¡ ´ëÇؼ retrieving revision 1.1.1.1 // ³» ÄÄÇ»ÅÍÀÇ ÀÛ¾÷ °ø°£¿¡ ÀÖ´Â ¸®ºñÁ¯(Revision)ÀÌ 1.1.1.1 À̸ç retrieving revision 1.2 // CVS ¼¹ö¿¡ ÀÖ´Â ¸®ºñÁ¯(Revision)Àº 1.2ÀÔ´Ï´Ù. Merging differences between 1.1.1.1 and 1.2 into Hello.c // hello.c ÆÄÀÏ¿¡ ¸®ºñÁ¯ 1.2¿Í ¸®ºñÁ¯ 1.1.1.1ÀÇ Â÷ÀÌÁ¡À» ÇÕÇÑ´Ù. rcsmerge: warning: conflicts during merge // ÇÕÄ¡´Â Áß¿¡ Ãæµ¹ÀÌ ¹ß»ýÇß´Ù´Â °æ°í¹®±¸ÀÔ´Ï´Ù. cvs server: conflicts found in Hello.c // ±×·¡¼ cvs¼¹ö´Â hello.cÆÄÀÏ¿¡¼ Ãæµ¹(Conflicts)µéÀ» ã¾Ò´Ù°í º¸°íÇÕ´Ï´Ù. C Hello.c // ±×¸®°í C¶õ Ã浹ǥ½Ã(Conflicts)¿Í ÆÄÀϸíÀ» ¾Ë·ÁÁÝ´Ï´Ù. ´ÙÀ½Àº Ãæµ¹ÀÌ ÀÖ´Â ÆÄÀÏÀÇ ÀϺÎ(Hello.cÆÄÀÏÀÇ PrintHelloÇÔ¼ö) ÀÔ´Ï´Ù.
void PrintHello() { printf("Hello, world!\n"); <<<<<<< Hello.c printf("It's not fun\n"); ======= printf("It's fun!\n"); >>>>>>> 1.2 }Çؼ®À» µ¡ºÙÀÌÀÚ¸é: void PrintHello() { printf("Hello, world!\n"); <<<<<<< Hello.c // ³» ÄÄÇ»ÅÍÀÇ ÀÛ¾÷°ø°£¿¡¼ ÀÛ¾÷ÇÑ ³»¿ëÀÌ ¸ÕÀú Ç¥½ÃµË´Ï´Ù. printf("It's not fun\n"); // ³» ÄÄÇ»ÅÍÀÇ ÀÛ¾÷°ø°£¿¡¼ ÀÛ¾÷ÇÑ ³»¿ë(Revision 1.1.1.1À» ±â¹ÝÀ¸·Î ¼öÁ¤ÇÔ) ======= // ÀÛ¾÷ÇÑ ³»¿ëÀÌ ³¡³µ´Ù´Â Ç¥½ÃÀÔ´Ï´Ù. // CVS ¼¹öÀÇ ÃֽŠ¸®ºñÁ¯(Revision-1.2)ÀÇ ³»¿ë printf("It's fun!\n"); // CVS ¼¹öÀÇ ÃֽŠ¸®ºñÁ¯(Revision-1.2)ÀÇ ³»¿ë(´©±º°¡¿¡ ÀÇÇØ µÎ¶óÀÎÀÌ ¼öÁ¤µÇ¾ú´Ù´Â ÀǹÌ) >>>>>>> 1.2 // CVS ¼¹öÀÇ ³»¿ëÀÌ ³¡³µ´Ù´Â Ç¥½ÃÀÔ´Ï´Ù. } 6.1. ÇØ°á ¹æ¹ý ¶Ãæµ¹ÀÌ ¹ß»ý½Ã´Â ¿©·¯ ÇØ°á¹æ¾ÈÀÌ ÀÖÀ»°Å¶ó »ý°¢µÇ¸é, À§ °æ¿ì´Â ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î ÇØ°áÇÏ¸é µË´Ï´Ù.
void PrintHello() { printf("Hello, world!\n"); printf("It's not fun\n"); printf("It's fun!\n"); } 7. ÆÄ»ý¸ðµâ »ý¼ºÇϱâ(Create a branch/tag by module...) ¶ÆÄ»ý¸ðµâ(branch)À» »ý¼ºÇÑ´Ù´Â °ÍÀº CVS ¼¹öÀÇ ÇÁ·ÎÁ§Æ® ÀúÀå¼Ò¿¡ ÀÖ´Â ¸ðµâÀÇ º¹»çº»À» Çϳª ´õ ¸¸µå´Â ÀÛ¾÷À» ¸»ÇÕ´Ï´Ù.
ÀÌ·¸°Ô ÇÔÀ¸·Î½á, »õ ¸ðµâ(¹öÁ¯)¿¡ ´ëÇÑ ÀÛ¾÷À» ÁøÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÆÄ»ý¸ðµâ(branch)À» »ý¼ºÇÏ´Â ±âº» ¹æ¹ýÀº ¸ÕÀú ű׸¦ »ý¼ºÇÏ°í ÆÄ»ý¸ðµâ(branch)À» »ý¼ºÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇÕ´Ï´Ù.
7.1. ÅÂ±× »ý¼ºÇϱâ(Create a tag by module...) ¶Å±׸¦ »ý¼ºÇÑ´Ù´Â °ÍÀº ƯÁ¤ ÁöÁ¡±îÁö ÀÛ¾÷À» Çß´Ù°í Ç¥½ÃÇØ µÎ´Â °ÍÀÔ´Ï´Ù. ÀÌ·¸°Ô ÇÔÀ¸·Î½á, ÀÌÈÄ¿¡ ÇÊ¿äÇÑ Æ¯Á¤ ÁöÁ¡À¸·Î º¹±Í°¡ Æí¸®ÇÕ´Ï´Ù.
ű׸¦ »ý¼ºÇϱâ À§Çؼ´Â ´ÙÀ½°ú °°Àº ÀÛ¾÷ÁøÇàÀýÂ÷¸¦ µû¸¨´Ï´Ù.
7.2. ÆÄ»ý ¸ðµâ »ý¼ºÇϱâ(Create a branch by module...) ¶ÆÄ»ý¸ðµâ(branch)À» »ý¼ºÇϱâ À§Çؼ´Â ´ÙÀ½°ú °°Àº ÀÛ¾÷ÁøÇàÀýÂ÷¸¦ µû¸¨´Ï´Ù.
8. ÆÄÀÏ Ãß°¡/»èÁ¦Çϱâ(Add/Remove/Erase selection) ¶³» ÄÄÇ»ÅÍÀÇ ÀÛ¾÷ °ø°£¿¡¼ ¸ðµâÀ» ÀÛ¾÷ÇÏ´Ùº¸¸é »õ·Î »ý¼ºµÈ ÆÄÀÏ, ¶Ç´Â »èÁ¦ÇؾßÇÒ ÆÄÀϵéÀÌ ÀÖ½À´Ï´Ù. ÀÌ·²¶§´Â ´ÙÀ½°ú °°Àº ¸í·É¾î¸¦ »ç¿ëÇÏ¿© ÀÛ¾÷ÇÏ¸é µË´Ï´Ù.
8.1. ÆÄÀÏ Ãß°¡Çϱâ(Add selection) ¶ÆÄÀÏÀ» CVS ¼¹ö¿¡ Ãß°¡Çϱâ À§Çؼ´Â ´ÙÀ½°ú °°Àº ÀÛ¾÷ÁøÇàÀýÂ÷¸¦ µû¸¨´Ï´Ù.
8.2. ÆÄÀÏ »èÁ¦Çϱâ(Remove selection) ¶ÆÄÀÏÀ» CVS ¼¹ö¿¡¼ »èÁ¦Çϱâ À§Çؼ´Â ´ÙÀ½°ú °°Àº ÀÛ¾÷ÁøÇàÀýÂ÷¸¦ µû¸¨´Ï´Ù.
8.3. ÆÄÀÏ Áö¿ì±â(Erase selection) ¶ÆÄÀÏÀ» ³» ÄÄÇ»ÅÍÀÇ ÀÛ¾÷ °ø°£¿¡¼ Áö¿ì±â À§Çؼ´Â ´ÙÀ½°ú °°Àº ÀÛ¾÷ÁøÇàÀýÂ÷¸¦ µû¸¨´Ï´Ù.
|
Your aims are high, and you are capable of much. |