CVS/FAQ
CVS »ç¿ë¿¡ ´ëÇÑ FAQ ¸ðÀ½
Çѱ۷ΠµÈ CVS ¹®¼µéÀÌ ¿©·µ ³ª¿Í ÀÖÁö¸¸ ²À ÇÊ¿äÇÑ Á¤º¸µéÀÌ ¿©±âÀú±â Èð¾îÁ® ÀÖ°í ü°èÀûÀÌÁö ¾ÊÀº °æ¿ì°¡ ÀÖ¾î, óÀ½ CVS¸¦ Á¢ÇÏ´Â ºÐµéÀÌ ºñ½ÁÇÑ Áú¹®À» ¹Ýº¹ÀûÀ¸·Î ÇÏ°Ô µÇ´Â µí ÇÕ´Ï´Ù. ¿ÀǼҽº ÇÁ·ÎÁ§Æ® °³¹ß¿¡ Âü¿©ÇÏ°íÀÚ ÇÏ´Â ºÐµé¿¡°Ô ÇÊ¿äÇÑ Á¤º¸¸¦ ¸ð¾ÆºÃÀ¸¸é ÇÕ´Ï´Ù.
CVS »ç¿ëÇÏ¸é¼ ÀÌ °£´ÜÇÑ °É ¸ô¶ó¼ Âü °í»ýÇß¾úÁö ½ÍÀº°Ô ÀÖÀ¸¸é ¾ðÁ¦µçÁö Ãß°¡ÇØ ÁÖ¼¼¿ä.
¸¶Ä§ KLDPconf ÁÖÁ¦ ÀÀ¸ð¿¡µµ ºñ½ÁÇÑ ¾ê±â°¡ ³ª¿Í¼ »ý°¢³ ±è¿¡ ÀÏ´Ü ½ÃÀÛÇØ º¾´Ï´Ù.
Áú¹®¸¸ Àû¾îÁּŵµ ¹°·Ð ÁÁ½À´Ï´Ù.
Contents
1.1. CVS¸¦ »¡¸® ¹è¿ö¼ ½á¾ßÇϴµ¥ ¾î¶±ÇÏÁÒ? ¶
1.2. CVS°¡ ¹¹¿¹¿ä? / ¾îµð¿¡ ¾²´Â ¹°°ÇÀΰ¡¿ä? ¶CVS(Concurrent Versions System)´Â ÇÁ·Î±×·¥ ¼Ò½º³ª ¹®¼ ÆÄÀÏ ¹öÀü °ü¸®¸¦ ½±°Ô ÇÒ ¼ö ÀÖµµ·Ï µµ¿ÍÁÖ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ƯÈ÷ ¿©·¯ »ç¶÷µéÀÌ µ¿½Ã¿¡ ÀÛ¾÷À» ÁøÇàÇؾßÇÏ´Â ±Ô¸ð°¡ Å« °³¹ß ÇÁ·ÎÁ§Æ®¿¡¼ Å« È¿°ú¸¦ ±â´ëÇÒ ¼ö ÀÖ½À´Ï´Ù. À̹ۿ¡µµ ²ÙÁØÈ÷ ¾÷µ¥ÀÌÆ®µÇ´Â ¹®¼ °ü¸®¶óµç°¡ À¥»çÀÌÆ® °ü¸® µî¿¡ À¯¿ëÇÏ°Ô ¾µ ¼ö ÀÖ°í, ½ÉÁö¾î /etc ¾Æ·¡¿¡ µé¾î°¡´Â ¼³Á¤ ÆÄÀÏÀ» (¿ø°Ý) ¹é¾÷ÇÏ´Â ¿ëµµ·Îµµ »ç¿ë °¡´ÉÇÕ´Ï´Ù.
µ¿½Ã¿¡ ¿©·¯ À¯´Ð½º Àåºñ¿¡¼ ÀÛ¾÷ÇÏ´Â °æ¿ì µî¿¡ ½áº¼¸¸ÇÑ "Ȩµð·ºÅ丮 ¸ù¶¥ CVS¿¡ ³Ö¾î¹ö¸®±â"¿¡ ´ëÇÑ LinuxJournal ±â»ç(CVS homedir)µµ Çѹø ÀÐ¾î º¸¼¼¿ä.
1.3. CVS¸¦ ½ÇÁ¦·Î °³¹ß °úÁ¤¿¡ »ç¿ëÇÏ´Â ÇÁ·ÎÁ§Æ®°¡ ÀÖ³ª¿ä? ¶Àß ¾Ë·ÁÁø À¯¸íÇÑ ¿ÀǼҽº ÇÁ·ÎÁ§Æ®µéÀº ´ë°³ CVS³ª ÀÌ¿Í À¯»çÇÑ ¼Ò½º °ü¸® ½Ã½ºÅÛÀ» °®Ãß°í ÀÖ½À´Ï´Ù.
1.4. CVS¸¦ ¾²¸é ±×·¡¼ ¹¹°¡ ÁÁÀº°¡¿ä? ¶°ü¸®ÀÚ´Â :
1.5. RCS´Â ¶Ç ¹¹ÁÒ? / RCS ÇÏ°í´Â ¹¹°¡ ´Ù¸¥°¡¿ä? ¶CVS´Â RCS¸¦ ±â¹ÝÀ¸·Î ÀÛ¼ºµÈ ¹öÀü °ü¸® ½Ã½ºÅÛÀÔ´Ï´Ù.
½±°Ô ¾ê±âÇÏÀÚ¸é RCS´Â ÆÄÀÏ ÇϳªÇϳª¿¡ ´ëÇØ ¹öÀü °ü¸®¸¦ ÇØÁÖ´Â °ÍÀÌ°í, CVS´Â RCS ±â´ÉÀ» ÀÌ¿ëÇØ ¼Ò½º³ª ¹®¼¸¦ ÇÁ·ÎÁ§Æ®/¸ðµâ ´ÜÀ§·Î °ü¸®ÇÒ ¼ö ÀÖµµ·Ï È®ÀåÇÑ ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ÀÌ¹Ì RCS¸¦ ¾²°í ÀÖ°í Àͼ÷ÇÑ ºÐÀÌ ¾Æ´Ï¶ó¸é ±»ÀÌ CVS¸¦ »õ·Î ¹è¿ï ÇÊ¿ä´Â ¾ø½À´Ï´Ù. RCS·Î ÇÒ ¼ö ÀÖ´Â ¸ðµç °ÍÀº CVS·Î ÇÒ ¼ö ÀÖÁö¸¸ ±× ¿ªÀº ¼º¸³ÇÏÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù.
CVS¿¡¼µµ ÀϺΠ±â´É(ÀÌ¹Ì ½á ³õÀº ·Î±× ¼öÁ¤ µî)Àº RCS ¸í·ÉÀ» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ±Ã±ÝÇÏ´Ù¸é
$ cvs -H adminÇؼ RCS °ü·Ã ¸í·É¾î¸¦ Çѹø »ìÆì º¸¼¼¿ä. 1.8. Windows¿¡¼ ¾µ ¼ö ÀÖ´Â CVS Ŭ¶óÀ̾ðÆ®°¡ ÀÖ³ª¿ä? ¶
µîÀÌ ÀÖ½À´Ï´Ù.
CVS¸¦ óÀ½ »ç¿ëÇÏ´Â ºÐ¿¡°Ô´Â TortoiseCVS ¸¦ ±ÇÇÕ´Ï´Ù. Java¸¦ ÁÖ·Î »ç¿ëÇϰųª ÁÁÀº IDE ȯ°æÀ» ¿øÇϽô ºÐÀº Eclipse¸¦ Çѹø ½áº¸¼¼¿ä.
1.10. CVSROOT ȯ°æ ¼³Á¤À» ¾î¶»°Ô ÇؾßÇϳª¿ä? ¶Local Repository
export CVSROOT=/usr/local/cvsroot Remote Repository
export CVSROOT=:pserver:username@host.domain.com.:/var/cvsroot Remote Repository w/ SecureShell
export CVS_RSH=ssh export CVSROOT=:ext:username@host.domain.com.:/var/cvsroot 1.11. Anonymous checkout ÀÌ ¹º°¡¿ä? ¾î¶»°Ô ÇÏÁÒ? ¶ÀÍ¸í »ç¿ëÀÚ¿¡°Ô Àб⠱ÇÇÑÀ» Á¦°øÇÔÀ¸·Î½á ¼Ò½º³ª ¹®¼ ÃֽŠ¹öÀüÀ» ¼Õ½±°Ô ¾÷µ¥ÀÌÆ®ÇÒ ¼ö ÀÖµµ·Ï ÇØÁÝ´Ï´Ù.
ƯÈ÷ ÄÄÆÄÀÏÀÌ ÇÊ¿ä¾ø´Â ½ºÅ©¸³Æ® ±â¹Ý ÇÁ·ÎÁ§Æ®¿¡ À¯¿ëÇÕ´Ï´Ù.
MoniWiki¸¦ ¿¹·Î µéÀÚ¸é
$ cvs -d:pserver:anonymous@cvs.kldp.net:/cvsroot/moniwiki login $ cvs -z3 -d:pserver:anonymous@cvs.kldp.net:/cvsroot/moniwiki co moniwiki¿Í °°ÀÌ ÇÏ¸é µË´Ï´Ù. ÀÌÈÄ¿¡ »õ ¹öÀüÀÌ ³ª¿À°Å³ª ÆÐÄ¡°¡ ¾÷µ¥ÀÌÆ® µÇ¸é $ cvs update -dPÇؼ °£´ÜÈ÷ ÃֽŹöÀüÀ¸·Î ¾÷µ¥ÀÌÆ®ÇÒ ¼ö ÀÖ½À´Ï´Ù. 1.12. ·Î±×ÀÎÀ» Ç϶ó´Âµ¥ ¾î¶»°Ô Çϳª¿ä? ¶$ cvs login (Logging in to user@host.domain.com) CVS password: $ cat ~/.cvspass :pserver:user@host.domain.com:/var/cvsroot XYZ123 $ cvs logout (Logging out of user@host.domain.com) 1.13. ÀúÀå¼Ò(Repository)ÀÇ µð·ºÅ丮 ±¸Á¶¸¦ ¾Ë°í ½Í½À´Ï´Ù. ¶/home/cvs/ .... (1) /home/cvs/CVSROOT/ .... (2) /home/cvs/CVSROOT/passwd .... (3) /home/cvs/CVSROOT/readers .... (4) /home/cvs/module_A/ .... (5) /home/cvs/module_B/ .... (6) (1) $CVSROOT ·Î ÁöÁ¤µÇ´Â CVSÀÇ ÃÖ»óÀ§ µð·ºÅ丮
(2) CVS ÀúÀå¼ÒÀÇ ¼³Á¤ ÆÄÀϵéÀÌ ÀÖ´Â µð·ºÅ丮
(3) CVS »ç¿ëÀÚ ID¿Í ºñ¹Ð¹øÈ£
(4) CVS Àб⸸ °¡´ÉÇÑ »ç¿ëÀÚ
(5), (6) ÇÁ·ÎÁ§Æ® µð·ºÅ丮, ÇÁ·ÎÁ§Æ®¿¡ µû¶ó CVS ¸í·ÉÀ¸·Î »ý¼ºµË´Ï´Ù.
1.14. »õ Repository´Â ¾î¶»°Ô ¸¸µå³ª¿ä? ¶$ export CVSROOT=/home/user/cvsroot $ cvs init $ ls /home/user/cvsroot CVSROOT/ $ ls /home/user/cvsroot/CVSROOT/ Emptydir/ config editinfo,v modules,v taginfo checkoutlist config,v history notify taginfo,v checkoutlist,v cvswrappers loginfo notify,v val-tags commitinfo cvswrappers,v loginfo,v rcsinfo verifymsg commitinfo,v editinfo modules rcsinfo,v verifymsg,v 1.15. »õ ÇÁ·ÎÁ§Æ®´Â ¾î¶»°Ô ¸¸µå³ª¿ä? ¶$ ls proj/ README a.c a.h $ cd proj/ $ cvs import -m "this is the project" proj VENDOR INIT $ ls /var/cvsroot/ CVSROOT/ proj/ $ ls /var/cvsroot/proj/ README,v a.c,v a.h,v 1.16. checkoutÀº ¾î¶»°Ô Çϳª¿ä? ¶$ cd ~/work $ cvs co proj U proj/README U proj/a.c U proj/a.h ƯÁ¤ ű׸¦ ÁöÁ¤Çؼ ¹Þ°í ½Í´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÕ´Ï´Ù.
$ cvs co -r RELEASE_1_0_5 moniwiki 1.17. checkoutÇÑ ÀÌÈÄ¿¡ Repository¿¡¼ ¹Ù²ï ³»¿ëÀ» È®ÀÎÇÏ°í ½Í½À´Ï´Ù. ¶¿ì¼± ³»¿ë È®ÀÎ (·ÎÄÿ¡ ¾Æ¹« º¯Èµµ ¸¸µéÁö ¾ÊÀ½).
$ cvs -n update ±×¸®°í ÀÌ»óÀÌ ¾øÀ¸¸é º¯°æµÈ »çÇ×À» ¹Þ¾Æ¿Â´Ù.
$ cvs update -dP 1.18. ³»°¡ ÀÛ¾÷ÇÑ ³»¿ëÀº ¾î¶»°Ô ¾Ë ¼ö ÀÖ³ª¿ä? ¶$ cvs diff $ cvs diff -r BASE $ cvs diff -r BASE -r HEAD $ cvs diff -c -r1.6 prog.c $ cvs diff -c -r1.6 -r1.7 prog.c 1.19. Áö±Ý±îÁö ÀÛ¾÷ÇÑ ³»¿ëÀ» checkinÇÏ°í ½Í½À´Ï´Ù. ¶$ cvs ci -m "fixed bug #12345" $ cvs com[mit] prog.c $ cvs ci -m "another bug fix in sheet.c" sheet.c 1.20. Conflict°¡ »ý°å½À´Ï´Ù! ¾î¶»°Ô ÇؾßÇϳª¿ä? ¶´çȲÇÏÁö ¸¶¼¼¿ä. ¼Ò½º³ª ¹®¼¿¡¼
<<<< .... ---- .... >>>>ÀÌ·¸°Ô »ý±ä ºÎºÐÀ» ã¾Æ¼ °íÄ£ ´ÙÀ½ ´Ù½Ã cvs update; cvs ci ÇÏ¸é µË´Ï´Ù. 1.23. ÆÄÀÏÀ» »èÁ¦ÇÏ°í ½Í½À´Ï´Ù. ¶$ cvs rm oldfile $ cvs rm -f badfile $ cvs rm -f olddir/badfiles $ cvs rm olddir 1.24. ÆÄÀÏ À̸§À» ¹Ù²Ù°í ½Í½À´Ï´Ù. ¶´Ü¼øÈ÷ ÆÄÀÏÀ̸§¸¸ ¹Ù²Ù´Â ¹æ¹ý°ú history ±îÁö º¸Á¸ÇÏ´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù (¸Å´º¾ó¿¡¼ ¹ßÃë)
ÀϹÝÀûÀÎ ¹æ¹ý
$ mv old new $ cvs remove old $ cvs add new $ cvs commit -m "Rename old to new" old newÀϹÝÀûÀÎ ¸¸Å ¹æ¹ýµµ ½±½À´Ï´Ù. ±âÁ¸ ÆÄÀÏÀÇ À̸§À» ´Ù¸¥ À̸§À¸·Î ¹Ù²ÛÈÄ ±âÁ¸ ÆÄÀÏÀ» cvs remove ·Î Á¦°ÅÇÏ°í »õ·Î ¹Ù²ï À̸§ÀÇ ÆÄÀÏÀ» cvs add ·Î Ãß°¡ÇÕ´Ï´Ù. ±× ´ÙÀ½¿£ remove¿Í add ¸¸À¸·Î ÆÄÀÏÀÌ Áö¿öÁö°Å³ª Ãß°¡µÈ°ÍÀÌ Àû¿ëµÇÁö ¾ÊÀ¸¹Ç·Î
ÀÌ µÎÆÄÀÏÀ» commit ÇØÁà¾ß ÇÕ´Ï´Ù
È÷½ºÅ丮 ±îÁö º¸Á¸ÇÏ´Â ¹æ¹ý
¸ÕÀú ÀÌ ¹æ¹ýÀº CVS repository ¸¦ Á÷Á¢ Á¢±ÙÇϹǷΠÁ¶±ÝÀº À§ÇèÇÏ´Ù°í ¸Þ´º¾ó¿¡¼ ¹àÈ÷°í Àֳ׿ä
$ cd $CVSROOT/module $ mv old,v new,vCVS repository ÀÇ ¼öÁ¤ÇÒ module µð·ºÅ丮¿¡¼ À̸§À» º¯°æÇÒ ÆÄÀÏÀÇ À̸§À» Á÷Á¢ ¹Ù²Ù¾î ÁÖ´Â ¹æ¹ýÀÔ´Ï´Ù ÀÌ°ÍÀº ¾Æ·¡¿Í °°Àº Àå´ÜÁ¡À» °¡Áö°í ÀÖ½À´Ï´Ù
ÀåÁ¡
1.25. µð·ºÅ丮¸¦ Áö¿ì°í ½Í½À´Ï´Ù ¶CVS¿¡¼´Â µð·ºÅ丮 ´ÜÀ§·Î ÀúÀåÀ» Çϱ⠶§¹®¿¡ È÷½ºÅ丮¸¦ À¯ÁöÇϱâ À§Çؼ´Â ±× µð·ºÅ丮°¡ ÇÊ¿äÇÕ´Ï´Ù. µû¶ó¼ ÁøÂ¥·Î µð·ºÅ丮¸¦ Áö¿ï ¼ö´Â ¾ø½À´Ï´Ù. ´ë½Å update ½Ã¿¡ ¹ÞÁö ¾Ê´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
¸ÕÀú ÆÄÀÏÀ» Áö¿ì±â¸¦ ÀÌ¿ëÇؼ ÇØ´ç µð·ºÅ丮ÀÇ ÆÄÀÏÀ» ¸ðµÎ Áö¿ó´Ï´Ù. ±×¸®°í ³ª¼ »óÀ§ µð·ºÅ丮·Î °¡¼ ÇØ´ç µð·ºÅ丮¸¦ Áö¿ì°í ³ª¸é ´ÙÀ½ºÎÅÍ´Â
cvs update -P ·Î ¾÷µ¥ÀÌÆ® Çϸé ÇØ´ç µð·ºÅ丮°¡ º¸ÀÌÁö ¾Ê°Ô µË´Ï´Ù.
cd unneeddir rm * # À̶§ CVS µð·ºÅ丮´Â ³²°ÜÁ® ÀÖ¾î¾ß ÇÕ´Ï´Ù. cvs remove cvs commit # ¿©±â¼ unneeddirÀÇ ¸ðµç ÆÄÀÏÀÌ Áö¿öÁý´Ï´Ù cd .. cvs remove unneeddir cvs update -P ¶Ç´Â CVSROOT¿¡ °¡¼ Á÷Á¢ µð·ºÅ丮¸¦ Áö¿ö ¹ö¸®´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. ´ë½ÅÀÌ ¹æ¹ýÀº CVSROOT µð·ºÅ丮 °ü¸® ±ÇÇÑÀ» °¡Áö°í ÀÖ¾î¾ß ÇÏ°í, È÷½ºÅ丮±îÁö »ç¶óÁø´Ù´Â ´ÜÁ¡ÀÌ ÀÖ½À´Ï´Ù.
1.28. ÇöÀç±îÁö ÀÛ¾÷ ³»¿ªÀ» º¸°í ½Í½À´Ï´Ù. ¶$ cvs st[atus] [-v] [prog.c] $ cvs log [prog.c] $ cvs ann[otate] [main.c] 1.29. revisionÀÌ ¹º°¡¿ä? ¶ÆÄÀÏ ÇϳªÇϳª¿¡ ºÙ¾î ÀÖ´Â ¹öÀü ¹øÈ£¸¦ ¸»ÇÕ´Ï´Ù.
$ cvs st README ...... Working revision: 1.1 ...... 1.30. tag°¡ ¹º°¡¿ä? ¶¿©·¯ ÆÄÀÏÀ̳ª ¸ðµâ¿¡ ¹öÀüÀ» Ç¥½ÃÇϱâ À§ÇØ ÇѲ¨¹ø¿¡ ºÙ¿©µÐ Ç¥½ÃÀÔ´Ï´Ù.
$ cd moniwiki/ $ cvs st -v README ...... Existing Tags: moniwiki-1_1 (branch: 1.1.2) RELEASE_1_0_5 (revision: 1.1) ...... 1.31. branch´Â ¶Ç ¹º°¡¿ä? ¶
+-------------+ Branch 1.2.2.3.2 -> ! 1.2.2.3.2.1 ! / +-------------+ / / +---------+ +---------+ +---------+ +---------+ Branch 1.2.2 -> _! 1.2.2.1 !----! 1.2.2.2 !----! 1.2.2.3 !----! 1.2.2.4 ! / +---------+ +---------+ +---------+ +---------+ / / +-----+ +-----+ +-----+ +-----+ +-----+ ! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 ! <- The main trunk +-----+ +-----+ +-----+ +-----+ +-----+ ! ! ! +---------+ +---------+ +---------+ Branch 1.2.4 -> +---! 1.2.4.1 !----! 1.2.4.2 !----! 1.2.4.3 ! +---------+ +---------+ +---------+ 1.31.1. branch´Â ¾î¶»°Ô ¸¸µéÁÒ? ¶$ cvs checkout project; cd project $ cvs update foo.c $ cvs tag release-1 . $ cd ..; cvs release -d project $ cvs checkout -r release-1 project $ cvs release -d project $ cvs rtag -b -r release-1 release-1-patches project $ cvs checkout -r release-1-patches project $ cvs commit -m "Fixed printf bug" foo.c $ cd ..; cvs release -d project cvs¸¦ »ç¿ëÇÒ ¶§ Branch¸¦ Çؼ ¹öÁ¯À» ¸¸µé°í
¸ÞÀÎ ¹öÁ¯ÀÌ ¿Ã¶ó°¡¸é ´Ù½Ã ¸ÞÀιöÁ¯°ú ¸ÓÁö¸¦ ÇÏ°í.. µîÀÇ ÀÛ¾÷À»
¼öÇàÇÒ ¶§, ¸ÕÀú ºê·£Ä¡¸¦ ÇÒ ÆÄÀϵ鿡 ű׸¦ ´Þ¾ÆÁÖ°í
ű׸¦ ±âÁØÀ¸·Î ºê·£Ä¡¸¦ ¸¸µå´Â °ÍÀÌ ÆíÇÑ °Í °°½À´Ï´Ù.
¸í·É¾î´Â ´ÙÀ½°ú °°½À´Ï´Ù.
cvs rtag -r arab -b arab_xxx ggg
ÀÌ·¸°Ô Çϸé ggg¶ó´Â ÇÁ·ÎÁ§Æ®¿¡¼ arab űװ¡ ºÙÀº °ÍÀ»
arab_xxx ºê·£Ä¡·Î ÀÛ¼ºÇÏ°Ú´Ù. ¶ó´Â Àǹ̰¡ µË´Ï´Ù.
ű״ ¸ÕÀú ´Þ¾ÆÁÖ¾î¾ß ÇÏ°ÚÁö¿ä.
±×¸®°í ÅÂ±×¿Í ºê·£Ä¡´Â ´Ù¸£´Ù´Â Á¡À» ¹Ì¸® ¾Æ½Ã¸é ÁÁ°Ú°í..
¸¸ÀÏ wincvs¸¦ »ç¿ëÇϽŴٸé graph¸¦ º¸½Ã°Ô µÇ¸é
tag´Â °ËÁ¤»ö ¾ãÀº ¼± ºê·£Ä¡´Â ÆĶõ»ö ±½Àº ¼±À¸·Î ³ª´µ´Â °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. --ÃÖ¼º¿ì / eatingstars.com
ºê·£Ä¡¸¦ ½±°Ô ¸¸µå´Â ¹æ¹ýÀÔ´Ï´Ù.
$ cvs tag -b BRANCHNAMEÀÌ ¸í·ÉÀ» ½ÇÇàÇÑ ÀÛ¾÷¼Ò´Â ¾ÕÀ¸·Î ÀÌ ºê·£Ä¡·Î ÀÛ¾÷À» ÇÏ°Ô µË´Ï´Ù. 1.31.2. merge´Â ¾î¶»°Ô ÇÏ´Â °Ì´Ï±î? ¶$ cvs checkout -j release-1-patches project $ cvs commit -m "Merged patch" 1.32. °ú°Å ƯÁ¤ ½ÃÁ¡¿¡ ¼Ò½º°¡ ¾î¶®´ÂÁö º¸°í ½Í½À´Ï´Ù. ¶Å±׸¦ ºÙ¿© µÎÁö ¾Ê¾Ò´Ù¸é, ³¯ÀÚ¿Í ½Ã°£À» ½á¼ ´ÙÀ½°ú °°ÀÌ ÀÛ¾÷ÇÏ´Â °Íµµ °¡´ÉÇÕ´Ï´Ù.
$ cvs rtag -b -D "2000-01-01 00:00" first-millenium-release project $ cvs get -D "3 month ago" myproj $ cvs get -D "1999-11-23 09:00" oldproj CVS°¡ Áö¿øÇÏ´Â ³¯ÀÚ/½Ã°£ ÁöÁ¤ Çü½Ä ¸î °¡Áö´Â ´ÙÀ½°ú °°½À´Ï´Ù.
"1971-04-30 04:35" (ISO format) "30 Apr 1971 04:35" (Internet format) "Tue Jan 25 08:45:45 UTC 2000" "3/31/92 10:00:07 PST" "January 23, 1987 10:05pm" "22:00 GMT" "1 month ago" "2 hours ago" "400000 seconds ago" "last year" "last Monday" "yesterday" "a fortnight ago" 1.33. CVS ¼¹ö¿¡ ¾î¶² moduleÀÌ ÀÖ´ÂÁö ¾î¶»°Ô ¾Ë ¼ö ÀÖ³ª¿ä? ¶CVS¿¡¼ Á¦°øÇÏ´Â ¸í·É¾î¸¦ ÅëÇØ Á¤»óÀûÀ¸·Î ¾Ë¾Æ³¾ ¼ö ÀÖ´Â ¹æ¹ýÀº ¾ø½À´Ï´Ù.
±×·¸Áö¸¸ ²À ÇÊ¿äÇÑ °æ¿ì¿¡ ÈçÈ÷ »ç¿ëµÇ´Â ¹æ¹ýÀÌ ¸î °¡Áö ÀÖ½À´Ï´Ù.
1.34. CVSROOT/modules¿¡ ¸ðµâ µî·ÏÀº ¾î¶»°Ô Çϳª¿ä? ¶cvs co CVSROOT ÇÏ¿©¼ modules ÆÄÀÏÀ» ¼öÁ¤ÇϽŠÈÄ¿¡ commit ÇÏ¼Å¾ß ÇÕ´Ï´Ù. À̶§ À§¿Í °°Àº ¸ñÀûÀ¸·Î È°¿ëÇÏ½Ç °èȹÀ̶ó¸é °£´ÜÇÏ°Ô ´ÙÀ½°ú °°ÀÌ ÀûÀ¸½Ã¸é µË´Ï´Ù.
module_A module_A module_B module_BÀ§ÀÇ ³»¿ëÀº module_A¶ó´Â °ÍÀÌ repository root¿¡ Á¸ÀçÇÏ´Â °æ¿ì ÀÔ´Ï´Ù. 1.35. CVSROOT/passwd¿¡ »ç¿ëÀÚ¸¦ ¾î¶»°Ô Ãß°¡Çϳª¿ä? ¶¸î °¡Áö ¹æ¹ýÀÌ ÀÖÁö¸¸, °¡Àå °£´ÜÇÑ ¹æ¹ý °¡¿îµ¥ Çϳª´Â apache ÆÐÅ°Áö¿¡ µé¾î ÀÖ´Â htpasswd ¸í·ÉÀ» ÀÌ¿ëÇÏ´Â °ÍÀÔ´Ï´Ù.
$ htpasswd -b passwd username password 1.37. CVS°¡ /root ¾Æ·¡ ÆÄÀÏÀ» ãÀ¸·Á µì´Ï´Ù! ÀÌ°Ô ¹º°¡¿ä? ¶pserver ¼³Á¤À» ÇØÁÙ ¶§ ¾Æ·¡¿Í °°Àº ¿¡·¯°¡ ³ª´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.
cvs server: cannot open /root/.cvsignore: Permission denied ÀÌ·² ¶© inetd ³ª xinetd ¼³Á¤À» ÇØÁÙ ¶§ cvs¿¡ ³Ñ°ÜÁÙ Àμö¿¡ '-f' ¿É¼ÇÀ» Ãß°¡ÇØÁÖ¸é ÇØ°áµË´Ï´Ù. xinetd ¶ó¸é /etc/xinetd.d/cvspserver ³»¿ëÀ» ¾Æ·¡¿Í °°ÀÌ ÇØ ÁÖ¸é µË´Ï´Ù.
# default: on
# description: cvs pserver service cvspserver { disable = no flags = REUSE socket_type = stream wait = no user = root server = /usr/bin/cvs server_args = -f --allow-root=/home/cvs pserver log_on_failure += USERID } 1.38. Repository¸¦ ´Ù¸¥ ±â°è·Î ¿Å±â°í ½Í½À´Ï´Ù. ¶Q : ¸¸ÀÏ A ¼¹ö¿¡ ÀÖ´ø repository ¸¦ B ¼¹ö·Î ¿Å±â°í ½Í´Ù¸é ±×³É µð·ºÅ丮¸¦ Åëä·Î º¹»çÇÏ¸é µÇ·Á³ª¿ä? ±×°Ô ¾È µÈ´Ù¸é ÁË´Ù update ÈÄ »õ·Î import ¸¦ Ç϶ó´Â ¾ê±âÀε¥... -_-;;
A : ³× ±×³É ¿Å±â¸é µË´Ï´Ù. ¿Ïº®ÇÑ(?) ÀÌÀüÀ» À§Çؼ¶ó¸é Á¶±Ý ½Å°æ½á¾ßÇÒ °ÍµéÀÌ ´õ ÀÖ±ä ÇÏÁö¸¸, µð·ºÅ丮¸¦ Åë° tar·Î ¹¾î¼ »õ ±â°è°Ô Ç®¾îÁØ ´ÙÀ½ permission Á¶Àý¸¸ ÇØÁ൵ À¢¸¸Å µË´Ï´Ù.
1.39. CVS ¼¹ö¿¡ ÀÖ´Â repository¸¦ ¹Ì·¯¸µÇÒ ¼ö ¾ø³ª¿ä? ¶´Ü¼øÇÑ ¹é¾÷ ÀÌ»óÀ» ÀǹÌÇÏ´Â °ÍÀ̶ó¸é, CVS´Â ±âº»ÀûÀ¸·Î ´ÜÀÏ repository¸¦ ¹ÙÅÁÀ¸·Î ¼³°èµÇ¾ú±â ¶§¹®¿¡ ÀÚüÀûÀ¸·Î´Â ºÒ°¡´ÉÇÕ´Ï´Ù. ´ë±Ô¸ð ÇÁ·ÎÁ§Æ® °°Àº °æ¿ì¿¡ Àü¼¼°è °÷°÷¿¡ ¹Ì·¯¸¦ Çϱâ À§ÇØ CVSup °°Àº º¸Á¶µµ±¸¸¦ ÀÌ¿ëÇϰųª, ´Ü¼øÈ÷ rsync °°Àº ¹Ì·¯¸µ ÅøÀ» ÀÌ¿ëÇϱ⵵ ÇÕ´Ï´Ù. ±×·¯³ª ÀÌ °æ¿ì ÇÏÀ§ repository¿¡ commit ÇÑ ³»¿ëÀ» ´Ù½Ã »óÀ§(upstream)·Î merge Çϴµ¥ ±â¼úÀûÀÎ ¾î·Á¿òÀÌ µû¸¨´Ï´Ù. ±×·¸Áö¸¸ °æ¿ì¿¡ µû¶ó È¿°úÀûÀÎ °³¹ß ºê·£Ä¡³ª ·ÎÄà °³¹ßÀÚ ±×·ì Áö¿øÀ» À§Çؼ´Â ²À ÇÊ¿äÇÑ ±â´ÉÀ̱⠶§¹®¿¡, CVS°¡ °¡Áö´Â ±Ùº»ÀûÀÎ Á¦¾àÀ» ±Øº¹ÇÏ°íÀÚ »õ·Î °³¹ßµÇ´Â ÇÁ·Î±×·¥ÀÌ ÀÖ½À´Ï´Ù. ¸¸¾à ²À °èÃþÀû repository¸¦ ±¸ÃàÇØ¾ß ÇÏ´Â »óȲÀ̶ó¸é, ´ÙÀ½ ÇÁ·Î±×·¥À» »ç¿ëÇÏ´Â °ÍÀ» °í·ÁÇØ º¸¼¼¿ä.
1.40. moduleµéÀ» °øÀ¯ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ÀÖ³ª¿ä? ¶Q : ¿¹¸¦ µé¾î¼ libx¶ó´Â ¸ðµâÀÌ ÀÖ°í, proj_a¿Í proj_b°¡ À̸¦ ¸ðµÎ »ç¿ëÇÕ´Ï´Ù. À̶§ ÀÌ µÎ ÇÁ·ÎÁ§Æ®°¡ À¯»çÇÏ¿©¼ libx¸¦ ÇÑÂÊ¿¡¼ ¼öÁ¤ÇÏ¸é ´Ù¸¥ ÇÑÂÊ¿¡¼µµ ¿µÇâÀ» ¹Þ¾Æ¾ß ÇÏ´Â °æ¿ì¶ó¸é ¾î¶»°Ô ÇØ¾ß ÇÒ±î¿ä? ¼¹ö¿¡¼ symbolic link¸¦ °É¾îÁְųª, Ŭ¶óÀ̾ðÆ®Ãø¿¡¼ proj_a, proj_b¿¡ ¸ðµÎ libx¸¦ checkoutÇØÁÖ¸é µÇ°ÚÁö¸¸ ´Ù¼Ò ºÒÆíÇÔÀÌ ¾øÁö ¾Ê¾Æ ÀÖÀ»°Í °°¾Æ¼ ¿©Âå º¾´Ï´Ù.
A : °¡´ÉÇÕ´Ï´Ù.
CVS¿¡¼´Â ÇÁ·ÎÁ§Æ® °ü¸®¸¦ À§ÇØ ¾î¶² ¸ðµâÀ» checkoutÇÒ ¶§ ÇÏÀ§ ¸ðµâÀ» ¼±º°ÀûÀ¸·Î checkoutÇϰųª °¡»ó ¸ðµâÀ» ¸¸µé¾î ½ÇÁ¦ ¸ðµâÀ» ¿©·¯°³ µ¿½Ã¿¡ checkoutÇÏ´Â °Í µîÀ» Áö¿øÇÕ´Ï´Ù. ±âº»ÀûÀ¸·Î´Â CVSROOT/modules ÆÄÀÏÀ» ÀûÀýÈ÷ ±¸¼ºÇؼ ÇÁ·ÎÁ§Æ®¿¡ Âü¿©ÇÏ´Â °³¹ßÀÚµéÀÌ ÇÊ¿äÇÑ ºÎºÐÀ» Àß °ñ¶ó ¹Þ¾Æ°¥ ¼ö ÀÖµµ·Ï °ü¸®ÇØÁà¾ß ÇÕ´Ï´Ù. ÇÑ°¡Áö ¤¾îµÎ°í ½ÍÀº °ÍÀº, CVS´Â ¼Ò½º ¹öÀü °ü¸® ÇÁ·Î±×·¥ÀÌÁö ¾î¶² ƯÁ¤ ÇÁ·ÎÁ§Æ® ±¸Á¶¸¦ Á¤ÇØµÐ°Ô ¾Æ´Ï±â ¶§¹®¿¡ ½ÇÁ¦ ÇØ°á ¹æ½ÄÀº ÁøÇàÇÏ´Â ÇÁ·ÎÁ§Æ® ±¸¼º ¹× Á¤Ã¥¿¡ µû¶ó ´Þ¶óÁý´Ï´Ù.
°£´ÜÇÏ°Ô µÎ°¡Áö °æ¿ì¸¦ ¿¹·Î µé¾îº¸Áö¿ä.
1. proj_a ¿Í proj_b, ±×¸®°í libx¸¦ ´õ Å« proj À¸·Î ¹À» ¼ö ÀÖ´Â °æ¿ì
CVSROOT/modules ³»¿ëÀº
proj proj proj_a proj_b libx proj_a proj proj_a libx proj_b proj proj_b libx libx proj libx¿Í °°ÀÌ µÇ°í, checkoutÀ» ÇÏ°Ô µÇ¸é proj µð·ºÅ丮°¡ ¸ÕÀú »ý±â°í, ±× ¾Æ·¡¿¡ °¢ ¸ðµâÀÌ »ý±é´Ï´Ù. 2. proj_a ¿Í proj_b ´Â º°°³ ÇÁ·ÎÁ§Æ®ÀÌ°í libx µµ º°°³·Î °ü¸®ÇÏ´Â °æ¿ì
CVSROOT/modules ³»¿ëÀº
proj_a -a proj_a libx proj_b -a proj_b libx libx libxÀÌ·¸°Ô µÇ°í, ¿¹¸¦ µé¾î cvs checkout proj_a ¸¦ ÇÏ°Ô µÇ¸é proj_a¿Í libx¶ó´Â ¸ðµâÀÌ °¢°¢ »ý¼ºµË´Ï´Ù. ÀÌ °æ¿ì libx¿¡ autotools(libtool)À» ä¿ëÇϵ簡 proj_a¿Í proj_b ºôµåÇϴµ¥ ¿¬°áµÇµµ·Ï ÀûÀýÈ÷ ±¸¼ºÇØÁà¾ß ÇÏ°ÚÁÒ. µÎ°¡Áö°¡ ¹«½¼ Â÷À̳Ä? ¶ó°í Ȥ½Ã »ý°¢ÇÏ´Â ºÐÀÌ ÀÖÀ»Áö ¸ð¸£°Ú´Âµ¥, ÀüÀÚ¿¡¼´Â ÃÖ»óÀ§ µð·ºÅ丮¿¡ ¶óÀ̺귯¸®¸¦ Æ÷ÇÔÇÑ ºôµå ½Ã½ºÅÛÀ» ±¸Ãà °ü¸®ÇÒ ¼ö Àֱ⠶§¹®¿¡ ¼º°ÝÀÌ ¸¹ÀÌ ´Þ¶óÁý´Ï´Ù.
¶Ç, °æ¿ì¿¡ µû¶ó
proj proj proj_b proj proj_a proj_a proj proj_b libx libxÀÌ·± ½ÄÀ¸·Î ±¸¼ºÇÏ´Â °æ¿ìµµ »ý±â°ÚÁö¿ä. ½Éº¼¸¯ ¸µÅ©¸¦ °É¾îÁÖ´Â °Íµµ Æí¹ýÀ¸·Î °¡´ÉÀº ÇÏÁö¸¸, ¸ðµâÀ̳ª ¶óÀ̺귯¸® °ü¸®¶ó´Â Ãø¸é¿¡¼ º»´Ù¸é ±×´ÙÁö ¹Ù¶÷Á÷ÇÏÁö´Â ¾Ê½À´Ï´Ù. ¹°·Ð ºÒ°¡ÇÇÇÑ »óȲÀÌ ÀÖÀ» ¼öµµ ÀÖÀ¸³ª ´ë°³´Â '¶óÀ̺귯¸®'¶ó´Â °Í ÀÚü°¡ ÇØ´ç Äڵ带 º°°³·Î µ¶¸³½ÃÄѾßÇÒ ¸¸Å ¿©·¯ °÷¿¡¼ ¾²´Â °æ¿ì¿¡ ÇÑÇØ ¸¸µå´Â °ÍÀ̹ǷΠÀ§¿¡¼ ¿¹¸¦ µç µÎ °¡Áö °æ¿ì¸¦ ÀûÀýÈ÷ ¼¯¾î¼ ±¸¼ºÇÏ°í, autotools µîÀ» Àß ÀÌ¿ëÇϸé ÇØ°áÇÒ ¼ö ÀÖ½À´Ï´Ù. (DeleteMe ÀÌ ÁÖÁ¦´Â CVS/FAQ¶ó´Â ¹üÀ§¸¦ ¹þ¾î³ª´Â °Í °°¾Æ ÀÌÁ¤µµ¸¸ Àû½À´Ï´Ù.)
1.40.1. °£´ÜÇÑ ¹æ¹ý ¶´Ü¼øÈ÷ ¾î¶² ¸ðµâÀ» °¡Á®¿Ã ¶§ ƯÁ¤ ÇϺΠ¸ðµâÀ» °°ÀÌ °¡Á®¿Àµµ·Ï ÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µË´Ï´Ù.
proj_a proj_a &libx proj_b proj_b &libx libx libxÀÌ·¸°Ô Çϸé proj_a¸¦ üũ¾Æ¿ôÇÒ ¶§ proj_a µð·ºÅ丮 ¾Æ·¡¿¡ Ãß°¡·Î libx µð·ºÅ丮°¡ »ý±é´Ï´Ù. 1.41. Source file¿¡ °Á¦·Î revisionÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ³ª¿ä ? ¶Q : ¿¹¸¦ µé¾î¼ ¾î¶² ¼Ò½ºÀÇ revision #°¡ 1.12¶ó°í ÇÒ ¶§ ¾î¶² °è±â·Î ÀÎÇؼ ÀÌ ¹øÈ£ÀÇ Á¦ÀÏ ¾ÕÀÚ¸® ¼ýÀÚ¸¦ ¹Ù²Ù·Á°í ÇÏ¸é ¾î¶»°Ô ÇÏ¸é µÇ³ª¿ä ?
A : °¡´ÉÇÕ´Ï´Ù.
cvs ci -m "revision set to 2.0" -r2.0 ohmysrc.cÇØ´ç ÇÁ·ÎÁ§Æ®/¸ðµâ Àüü¸¦ Çѹø¿¡ ¹Ù²Ù·Á¸é, checkout ¹ÞÀº ¸ðµâ ÃÖ»óÀ§ µð·ºÅ丮¿¡¼ cvs ci -m "revision set to 3.1" -r3.1¿Í °°ÀÌ ÇÏ¸é µË´Ï´Ù. ±×·¯³ª
°¡´ÉÇÏ´Ù°í Çؼ ¹Ýµå½Ã ÀÌ·¸°Ô ÇÏ´Â°Ô ÁÁ´Ù´Â °ÍÀº ¾Æ´Õ´Ï´Ù.
±×·¯¹Ç·Î
Tag³ª Branch¸¦ ½á¾ßÇÏ´Â °æ¿ì°¡ ¾Æ´ÑÁö ´Ù½Ã Çѹø »ý°¢Çغ¸¼¼¿ä.
1.42. CVSµµ VSSó·³ ¹èŸÀû ¶ô(Exclusive Lock)À» °É¾î ³õ°í »ç¿ëÇÒ ¼ö ÀÖ³ª¿ä? ¶cvs admin -l filename À» ÀÌ¿ëÇÏ½Ã¸é µË´Ï´Ù. ÀÌ °æ¿ì ÇØ´çÇÏ´Â »ç¶÷ÀÌ lockÀ» Á¦°ÅÇϱâ Àü±îÁö´Â commitÀÌ ºÒ°¡´ÉÇÏ°Ô µË´Ï´Ù.
ÇÏÁö¸¸ ÀÌ·¸°Ô ÇÏ´Â °ÍÀº ´ëºÎºÐ ¹®¼¿¡¼ ±×´ÙÁö ±ÇÀåÇÏÁö ¾Ê´õ±º¿ä. cvs watch ÀÌ¿ëÇϱ⸦ ±ÇÀåÇÏ°í ÀÖ½À´Ï´Ù.
º¸ÅëÀº cvs edit¸¦ ½á¼ ¿øÇÏ´Â È¿°ú¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
cvs edit´Â µ¿½Ã¿¡ editÇÏ´Â °ÍÀ» ¹æÁöÇÏÁö ¾ÊÁö¸¸, cvs edit -c filename À» ¸ðµç »ç¶÷ÀÌ ÀÌ¿ëÇÏ°Ô µÈ´Ù¸é ±× ¼ø°£¿¡´Â ÇÑ »ç¶÷¸¸ÀÌ ÀÛ¾÷À» ÇÒ ¼ö°¡ ÀÖ°Ô µË´Ï´Ù. -c ¿É¼ÇÀ» ÁØ °ÍÀ» reserved edit¶ó°í Çϸç, ÀÌ °æ¿ì¿¡µµ ´©±¸³ª commitÀº °¡´ÉÇÕ´Ï´Ù.
1.43. Repository¿¡ Attic À̶õ°Ô ÀÖ´øµ¥ ÀÌ°Ç ¹º°¡¿ä? ¶»ç¿ëÀÚ°¡ Áö¿î(cvs rm) ÆÄÀÏÀ» º¸°üÇصδ °÷ÀÔ´Ï´Ù. AtticÀÌ ¿ì¸®¸»·Î Çϸé "´Ù¶ô"Àε¥, ÀÚÁÖ ¾²Áö´Â ¾ÊÁö¸¸ ¹ö¸®±ä ¾Æ±õ°í Ȥ½Ã ÇÊ¿äÇÏ°Ô µÉÁö ¸ð¸£´Â ¹°°ÇÀ» ÀúÀåÇÑ´Ù´Â Á¡¿¡¼ º¸¸é »ó´çÈ÷ Àß ÁöÀº À̸§ °°½À´Ï´Ù.
»ç¿ëÀÚ°¡ cvs rmÀ» Çؼ ÆÄÀÏÀ» Áö¿ì°Ô µÇ¸é, ÇØ´ç ÆÄÀϵéÀÌ ¿ÏÀüÈ÷ »èÁ¦µÇ´Â°Ô ¾Æ´Ï¶ó Attic ¾Æ·¡¿¡ ¿Å°ÜÁý´Ï´Ù. ±×¸®°í °ú°Å ¹öÀüÀ» checkout Çϰųª ÇÒ¶§ ²ôÁý¾î³»¼ ¾²´Â °ÅÁö¿ä.
1.44. Unicode fileÀ» Áö¿øÇÏÁö ¸øÇϴ°¡¿ä? ¶Q : ÀÌ·¯ÇÑ ¸Þ½ÃÁö¸¦ ¸¸³µ½À´Ï´Ù.
cvs import: Remote server does not support Unicode files. Checkin may be invalid.¿©·¯°³ÀÇ ÆÄÀÏÀ» ÇѲ¨¹ø¿¡ importÇÒ¶§ ³ª¿ÔÀ¸¸ç, À̸¦ ´Ù½Ã ¼öÁ¤ÇÏ¿© ciÇÒ¶§¿¡µµ ³ªÅ¸³µ½À´Ï´Ù. À½.. ù¹ø° ÆÄÀÏ¿¡¼ ÀÌ·¯ÇÑ ¹®±¸°¡ ³ªÅ¸³µ´Âµ¥, Æò¹üÇÑ C++ code¶ó¼ ´Ù¸¥ ÆÄÀÏÀÌ ¾Æ´Ñ°¡ ÇÕ´Ï´Ù. ¾Æ¿ï·¯ -ku¶ó°í ³ªÅ¸³ª´Â ¸Þ½ÃÁöµµ ¹«¾ùÀÎÁö ¸ð¸£°Ú³×¿ä. cvs commit: Remote server does not support Unicode files. Checkin may be invalid. Checking in ***.cpp; cvs server: internal error: unsupported substitution string -ku /***.cpp,v <-- ***m.cpp new revision: 1.2; previous revision: 1.1 done ÇØ´ç ÆÄÀÏ ¾È¿¡ À¯´ÏÄÚµå·Î µÈ ÅؽºÆ®°¡ µé¾îÀÖ³ª¿ä? Ȥ½Ã RCS keyword substitution À¸·Î ¾²ÀÌ´Â ³»¿ëÀÌ µé¾îÀÖ³ª¿ä?
1.45. ÀÌ¹Ì Text·Î ¾÷·Îµå µÈ ÆÄÀÏÀ» Binary·Î ¹Ù²Ü ¼ö Àִ°¡¿ä? ¶¹ÙÀ̳ʸ®·Î ¾÷·ÎµåÇÏ·Á¸é
-kb ¿É¼ÇÀ» »ç¿ëÇÕ´Ï´Ù. ¿¹¸¦µé¾î,
$ echo '$Id: CVS_2fFAQ,v 1.99 2005/08/19 01:21:43 kss Exp kss $' > kotest $ cvs add -kb -m"A test file" kotest $ cvs ci -m"First checkin; contains a keyword" kotestÀÔ´Ï´Ù. ¸¸¾à ½Ç¼ö·Î
-kb ¿É¼ÇÀ» ºü¶ß¸®°í (ÅؽºÆ®·Î)¾÷·Îµå ÇßÀ»°æ¿ì, ¹ÙÀ̳ʸ®·Î º¹±¸ÇÏ·Á¸é cvs admin ¿É¼ÇÀ¸·Î ¾Æ·¡ÀÇ ¿¹Ã³·³ ¹Ù²Ù¸é µË´Ï´Ù.
$ echo '$Id: CVS_2fFAQ,v 1.99 2005/08/19 01:21:43 kss Exp kss $' > kotest $ cvs add -m"A test file" kotest $ cvs ci -m"First checkin; contains a keyword" kotest $ cvs admin -kb kotest $ cvs update -A kotest # For non-unix systems: # Copy in a good copy of the file from outside CVS $ cvs commit -m "make it binary" kotest 1.46. ÀÌ¹Ì Binary·Î ¾÷·Îµå µÈ ÆÄÀÏÀ» Text·Î ¹Ù²Ü ¼ö Àִ°¡¿ä? ¶ÇѱÛÀÌ µé¾îÀÖ´Â ÆÄÀÏÀ» WinCVS¸¦ ÅëÇؼ add/import¸¦ ÇÏ°Ô µÇ¸é binary¸¦ ±ÇÀåÇÕ´Ï´Ù. À̶§, ½Ç¼ö·Î Binary·Î add/importÇÏ°Ô µÇ¸é merge±â´ÉÀ» Áö¿øÇÏÁö ¾Ê¾Æ ºÒÆíÇÏ°Ô µÇÁö¿ä. ÀÌ·² ¶§, À§ÀÇ Text->Binary¿Í´Â ¹Ý´ëÀÇ ÀÛ¾÷ÀÌ ÇÊ¿äÇÏ°Ô µÇ´Âµ¥, À§ÀÇ ³»¿ë°ú °°°í, ¿É¼Ç¸¸
-kb °¡ ¾Æ´Ñ -kkv ·Î ÇØ ÁÖ¸é µË´Ï´Ù.
$ cvs admin -kkv kotest 1.47. ·Î±×¸¦ À߸ø Àû¾ú´Âµ¥ °íÄ¥ ¼ö ¾øÀ»±î¿ä? ¶$ cvs admin -m1.2:"new log" myprog.c űװ¡ ºÙ¾î ÀÖ´Â °æ¿ì¶ó¸é
$ cvs admin -mV_1_0:"massive new log"ÀÌ·¸°Ô Çѹø¿¡ ¹Ù²Ù´Â °Íµµ °¡´ÉÇÕ´Ï´Ù. 1.48. Tag¿¡ comment¸¦ ºÙÀ̴°ÍÀº °¡´ÉÇÑ°¡¿ä ¶AnswerMe Áú¹®ÀÌ Á¶±Ý ¾Ö¸ÅÇÑ°Í °°½À´Ï´Ù. Á¦¸ñ¸¸ º¸°í´Â ¾î¶² »óȲÀÎÁö Á¤È®È÷ ¾Ë ¼ö ¾ø¾î ´äº¯ÀÌ µÎ·ç¹¶½ÇÇÕ´Ï´Ù. Á¶±Ý´õ »óȲÀ» ¼³¸íÇØ ÁÖ½ÃÁö¿ä?
tag¸¦ ºÙÀÌ¸é¼ °Å±â¿¡ ´ëÇÑ ·Î±×¸¦ ¾îµò°¡¿¡ ±â·ÏÇØµÑ ¼ö ¾ø³Ä´Â ¾ê±ä°¡¿ä? ±×·±°Å¶ó¸é ´ë´äÀº ºÒ°¡´ÉÇÏ´Ù ÀÔ´Ï´Ù. CVS´Â ÆÄÀÏ º°·Î ·Î±×¸¦ ºÙÀÌ°Ô µÅ ÀÖ´Â RCS¸¦ °è½ÂÇϱ⠶§¹®¿¡ °¢ checkin º°·Î ±â·ÏÀ» ÇÒ ¼ö ¾ø´Ù´Â ´ÜÁ¡ÀÌ ÀÖ½À´Ï´Ù. ±×·¡¼ Subversion °°Àº °æ¿ì ¾Æ¿¹ ÆÄÀϺ° revisionÀÌ ¾Æ´Ï¶ó per-checkin revisionÀ» ¸ðµâ ´ÜÀ§·Î ºÙ¿©ÁÖ´Â ¹æ½ÄÀ» äÅÃÇß½À´Ï´Ù.
¸¸¾à tag ÀÚü¿¡ ´ëÇØ ¾îµò°¡¿¡ ±â·ÏÀ» ³²±â°í ½ÍÀº °Å¶ó¸é ChangeLog ³ª README µî¿¡ ³»¿ëÀ» Àû¾îµÎ´Â °ÍÀ¸·Î ´ëüÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
Áú¹®ÀÚÀÔ´Ï´Ù. ¸»¾¸ÇØ ÁֽŠ³»¿ëÀÌ Á¤È®ÇÕ´Ï´Ù. Á¦°¡ º¸±â¿¡µµ file ´ÜÀ§·Î log message¸¦ ³²±â´Â °Í °°¾Æ¼ ¿©Âå º¸¾Ò´ø °ÍÀÔ´Ï´Ù. ¾ÆÁ÷ Àͼ÷ÇÏÁö ¸øÇؼÀÎÁö Á» ºÒÆíÇÑ Á¡À¸·Î »ý°¢µÇ¾î¼ Áú¹®À» Çß´ø °ÍÀÔ´Ï´Ù.
http://www.cvstrac.org/ CVS modÀÎ°Í °°Àºµ¥ check-in ´ÜÀ§·Î ±â·ÏÀ» ³²±æ¼ö ÀÖ½À´Ï´Ù. http://www.sqlite.org ¿¡¼ »ç¿ë ÇÏ´Â°É º¸¸é ±¦Âú¾Æ º¸ÀÔ´Ï´Ù.
1.49. Unknown command ¶ó´Â ¿¡·¯°¡ ³³´Ï´Ù. ¶Q: Á¢¼Ó½Ã¿¡
cvs [login aborted]: unrecognized auth response from 127.0.0.1: Unknown command: `/home/cvs'¶ó°í ³ª¿À³×¿ä.. °Á´ë·Î Çß´Ù°í »ý°¢Çߴµ¥.. passwd file ¹®Á¦Àΰ¡¿ä? redhat 9.0À» ¾²°í ÀÖÀ¾´Ï´Ù. A: -d ¿É¼Ç (CVSROOT) ÁÙ ¶§ »ç¿ëÀÚ@¼¹ö¸í:°ú /µð·ºÅ丮/°æ·Î »çÀÌ¿¡ ºó ÄÀÌ µé¾î°¡ ÀÖ´Â °Í °°½À´Ï´Ù.
$ cvs -d :pserver:anonymous@anonymous.com:/cvsrootÀÌ·¸°Ô ÀüºÎ ºÙ¿©Áà¾ß ÇÕ´Ï´Ù. 1.50. Ç×»ó ÃֽŹöÀüÀÇ ¼Ò½º¸¦ À¯ÁöÇÏ°í ½Í¾î¿ä ¶Ç×»ó ÃÖ½ÅÀÇ ¹öÀüÀ» À¯ÁöÇÏÁö ¾Ê°í ÀÛ¾÷À» ÇÏ´Ï Commit½Ã ÀÚÁÖ Conflict°¡ ¹ß»ýÇÕ´Ï´Ù. WinCVS³ª TortoiseCVS¸¦ ½á º¸¾Ò´Âµ¥ ÃֽŠ¹öÀüÀ¸·Î À¯ÁöÇØ ÁÖ´Â ±â´ÉÀ» ¾È º¸ÀÌ´øµ¥¿ä. µ¡ºÙ¿© update½Ã ¹ß»ýÇÏ´Â conflict¸¦ ÁÙÀÌ°í ½Í½À´Ï´Ù. update½Ã merge¸¦ ¼±ÅÃÀûÀ¸·Î ÇÒ ¼ö´Â ¾ø³ª¿ä? ¿¹¸¦ µé¾î¼ 'ÀÌ ÆÄÀÏÀº ´õ ÃÖ±ÙÀÇ °ÍÀÌ Á¸ÀçÇÕ´Ï´Ù. mergeÇÒ±î¿ä? (Y/n)' ÀÌ·±½ÄÀ¸·Î¿ä.
* WinCVS¿¡¼ ¿ì¼± updateÇÕ´Ï´Ù. ±×·³ merge³ª conflict µÇ¾î ÀÖÀ»°Ì´Ï´Ù. ´Ù½Ã updateÇÏ¸é¼ update settingsÁß Get the clean copy¸¦ üũÇÏ½Ã¸é µË´Ï´Ù.
Clean copy¸¦ ¹Þ°í ½ÍÀº°Ô ¾Æ´Ï¶ó local modify ÆÄÀÏÀº update¸¦ ¹Þ°í ½ÍÁö ¾ÊÀº °æ¿ì¸¦ ¸»¾¸ µå·È´ä´Ï´Ù. ±×¸®°í update ¸í·ÉÀ» ÀÚµ¿À¸·Î ¼öÇàÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ÀÖÀ¸¸é ÁÁ°Ú´Ù´Â°Å¿´½À´Ï´Ù. 2°¡Áö°¡ »óÃæµÈ Áú¹®À» µå·Á¼ Çò°¥¸®¼Ì³ª º¾´Ï´Ù. _ °¨»çÇÕ´Ï´Ù.
±×·± °æ¿ì Update query Çؼ ÀúÀå¼Ò¿¡ º¯°æµÈ ÆÄÀÏÀ» È®ÀÎÇÑ ÈÄ ±× ÆÄÀϵ鸸 ¼±ÅÃÇؼ ¾÷µ¥ÀÌÆ® ÇÏ½Ã¸é µË´Ï´Ù. ½ºÅ©¸³Æ® Çϳª ¸¸µé¾î º¸½Ã´Â °Íµµ ÁÁÀ»µí ÇÕ´Ï´Ù.
1.52. CVS¸¦ ¾µ±î¿ä SubversionÀ» ¾µ±î¿ä? ¶Q : ÀÌÁ¦¼¾ß CVS¶ó´Â °Í¿¡ ´ëÇØ ¾Ë°Ô µÇ¾î ¹è¿öº¼±î Çß´õ´Ï CVSÀÇ ºÒÆíÇÑ Á¡À» °³¼±ÇÑ SubversionÀÌ ³ª¿Ô´Ù°í Çϳ׿ä. óÀ½ ¹è¿ì´Â »ç¶÷Àº ¹Ù·Î SubversionÀ» ÀÍÇô¾ß Çϳª¿ä? ¾Æ´Ï¸é CVS ¸¦ ¸ÕÀú ÀÍÇô¾ß Çϳª¿ä?
A : ´ëºÎºÐÀÇ ¿ÀǼҽº°¡ CVS·Î ÁøÇà µÇ´Ï CVS¸¦ ¸ÕÀú ÀÍÈ÷´Â°ÍÀÌ ÁÁ°ÚÁÒ. SubversionÀÌ ¾ÈÁ¤ÀûÀ̶ó°í Çϱä Çϳª °ø½ÄÀûÀÎ stable ¹öÀüÀº ¾ðÁ¦Âë ³ª¿ÃÁö´Â... ¿äÁò ÇÑ´Þ¿¡ µÎ¹ø¾¿ ¹öÀüÀÌ ¿Ã¶ó°¡´Âµ¥ ¾÷µ¥ÀÌÆ® ÇØÁÖ±â Á» ±ÍÂú´õ±º¿ä. CVS¿¡ ºÒ¸¸ÀÌ »ý±â¸é ±×¶§ ½½½½ ¹Ù²Ù½Ã¸é µË´Ï´Ù.
A : SubVersionÀº CVSÀÇ ºÒÆíÇÑ Á¡À» °³¼±Çߴٱ⠺¸´Ù´Â ¿ÏÀüÈ÷ ´Ù¸¥ ÇÁ·Î±×·¥À¸·Î º¸´Â°Ô ¸Â½À´Ï´Ù. »óÈ£ ȣȯ¼ºµµ ¾ø°í, ´ÜÁö SubVersion›¿¡¼ ±âÁ¸¿¡ CVS·Î ¿î¿µµÇ´ø ÇÁ·ÎÁ§Æ®¸¦ importÇÒ ¼ö ÀÖ°Ô ÇسùÀ» µû¸§ÀÔ´Ï´Ù. revision/version °ü¸® ¸ðµ¨ ÀÚüµµ ÀüÇô ´Ù¸¨´Ï´Ù. ½Ã±â»ó ³ªÁß¿¡ ¸¸µé¾îÁ³±â ¶§¹®¿¡ CVS°¡ °¡Áö´Â ´ÜÁ¡µéÀ» »ó´ç ºÎºÐ °³¼±ÇÑ °ÍÀº »ç½ÇÀÔ´Ï´Ù¸¸, °³¹ß ¸ðµ¨ ÀÚü¿¡ ´ëÇÑ Á¢±Ù ¹æ½ÄÀ̶ö±î öÇÐÀ̶ö±î ±×·±°Ô ´Ù¸¥ ºÎºÐÀÌ ÀÖ¾î º¸¿©¼ Á¦ °æ¿ì¿£ Á¶±Ý °ü¸ÁÇÏ´Â ÁßÀÔ´Ï´Ù. ¹öÀü ÄÁÆ®·Ñ ÇÁ·Î±×·¥À» ÀüÇô ½áº¸Áö ¾ÊÀº »ç¶÷ ÀÔÀå¿¡¼ ¾î´À ÂÊÀÌ ´õ ÀÍÈ÷±â ½±´Ùµç°¡ ÇÏ´Â °Ç Àß ¸ð¸£°Ú±º¿ä. SubVersionµµ CVS¸¦ ¾²´ø »ç¶÷Àº ½±°Ô ¿Å°Ü°¥ ¼ö ÀÖ´Ù°í ¾ê±âÇÕ´Ï´Ù¸¸ ±×°Å¶ûÀº º°°³¶ó¼ ¸»ÀÌÁÒ. --verotas
2. help »ç¿ë¹ý ¶¹öÀü È®ÀÎ
$ cvs --version Concurrent Versions System (CVS) 1.11.2 (client/server) ±×³É cvs¸¸ Ä¡¸é help »ç¿ë¹ýÀÌ ÀÚ¼¼È÷ ³ª¿Â´Ù.
$ cvs Usage: cvs [cvs-options] command [command-options-and-arguments] where cvs-options are -q, -n, etc. (specify --help-options for a list of options) where command is add, admin, etc. (specify --help-commands for a list of commands or --help-synonyms for a list of command synonyms) where command-options-and-arguments depend on the specific command (specify -H followed by a command name for command-specific help) Specify --help to receive this message The Concurrent Versions System (CVS) is a tool for version control. For CVS updates and additional information, see the CVS home page at http://www.cvshome.org/ or Pascal Molli's CVS site at http://www.loria.fr/~molli/cvs-index.html ƯÁ¤ ¸í·É¾î ¿É¼ÇÀ» ÀÚ¼¼È÷ º¸·Á¸é
$ cvs -H update Usage: cvs update [-APCdflRp] [-k kopt] [-r rev] [-D date] [-j rev] [-I ign] [-W spec] [files...] ...... »ç¿ëÇÒ ¼ö ÀÖ´Â ¸í·É¾î »ý·«ÇüÀº ´ÙÀ½°ú °°´Ù.
$ cvs --help-synonyms CVS command synonyms are: add ad new admin adm rcs annotate ann checkout co get commit ci com diff di dif export exp ex history hi his import im imp log lo login logon lgn rannotate rann ra rdiff patch pa release re rel remove rm delete rlog rl rtag rt rfreeze status st stat tag ta freeze update up upd version ve ver (Specify the --help option for a list of other help options) 3. ¿ë¾î ¶repository
working file
working directory (or area)
checkout
commit (checkin)
RCS file
modules
revision
tag
branch
"the trunk"
HEAD / BASE
merge
conflict
4. ¹®¼¸¦ ¸¸µé¸é¼ ¶°³ÀÎÀûÀ¸·Î, ¸î ³â Àü CVS¸¦ óÀ½ ¹è¿ì¸é¼ Á¦ÀÏ ¾î·Á¿ü´ø°Ô °£´ÜÇÑ ¼Ò°³ ¹®¼´Â Çѱ۷ΠµÈ°Ô ÀÖ¾úÁö¸¸ Á¶±Ý¸¸ ´õ »ó¼¼ÇÑ °É ã¾Æº¸·Á¸é Á¦´ë·Î µÈ (¿µ¾îµç ÇѱÛÀ̵ç) HOWTO °°Àº°Ô ÀÖÁöµµ ¾Ê¾Ò°í, (Áö±Ýµµ ÀÖ´ÂÁö´Â ¸ð¸£°ÚÁö¸¸) Faq-O-Matic À¸·Î µÈ ¿µ¾î FAQ »çÀÌÆ®°¡ ·¹ÆÛ·±½º·Î ¾µ¸¸ÇÑ À¯ÀÏÇÑ °÷À̾ú½À´Ï´Ù. ±×·¡¼ ±×¶§ºÎÅ͵µ óÀ½ ¿ÀǼҽº ¼¼»óÀ» Á¢ÇÏ´Â °³¹ßÀÚ¿¡°Ô CVS¶ó´Â À庮À» ¶Ù¾î ³Ñ´Âµ¥ º¸ÅÆÀÌ µÇ´Â ¹®¼ °°Àº°Ô ²À ÇÊ¿äÇÏ´Ù°í ´À³¢°í ÀÖ¾ú½À´Ï´Ù.
±×µ¿¾È CVS¸¦ ´Ù·é Ã¥µµ Ãâ°£µÇ¾ú°í CVS ´ÙÀ½ ¼¼´ë°¡ µÉ¸¸ÇÑ ´Ù¸¥ ÇÁ·Î±×·¥µéµµ ³ª¿Ô°í Çؼ ÇÏ·Á°í¸¸ µç´Ù¸é »ó´ëÀûÀ¸·Î ÀÚ·á ã±â³ª ¹è¿ì±â°¡ ´õ ½¬¿öÁø ¸éµµ ºÐ¸í ÀÖ½À´Ï´Ù. ±×·¸Áö¸¸ º»·¡ ÁÁÀº HOWTO µéÀÌ ±×·¯ÇϵíÀÌ Ã³À½ ½ÃÀÛÇÏ´Â »ç¶÷ÀÌ µü ±× ¹®¼ Çϳª¸¸ Âï¾î¼ ¿·¿¡ µÎ°í ¼ÕÀ¸·Î ¤¾î°¡¸ç µû¶óÇϸé ÀÏ´Ü ''½ÃÀÛ'Àº ¾î¶»°Ôµç Çغ¼ ¼ö ÀÖ´Â ±ÛÀÌ ¾Æ½¬¿ü°í, ±Û ¼µÎ¿¡ ¹àÇûµíÀÌ ÇöÀç Á¸ÀçÇÏ´Â Çѱ۷ΠµÈ CVS °ü·Ã ¹®¼µéÀº ´ã°í ÀÖ´Â Á¤º¸°¡ °¡Áö´Â À¯¿ë¼º¿¡ ºñÇØ Áý¾àµµ(?)°¡ ¶³¾îÁö°í, »ç¿ëÀÚ¿¡°Ô ÇÊ¿äÇÑ ³»¿ë°ú °ü¸®ÀÚ¿¡°Ô ÇÊ¿äÇÑ ³»¿ëÀÌ Àß ±¸ºÐÀÌ µÇ¾î ÀÖÁö ¾Ê¾Æ °á°úÀûÀ¸·Î óÀ½ Á¢ÇÏ´Â »ç¶÷¿¡°Ô ¹®ÅÎÀ» ³·Ãß´Â ¿ªÇÒ¿¡ Ãæ½ÇÇÏÁö ¸øÇÑ ºÎºÐÀÌ ÀÖ´Ù°í »ý°¢ÇÕ´Ï´Ù.
Àå±âÀûÀ¸·Î´Â ÀÌ·± °ÍµéÀ» ÇØ°áÇÒ ¼ö ÀÖ´Â ÁÁÀº ±ÛÀÌ ³ª¿Í¾ß ÇÏ°ÚÁö¸¸, ¾Æ½¬¿î ´ë·Î "KLDP¿¡ ÀÖ´Â ¹®¼¸¦ º¸°í µû¶óÇÏ´Ù º¸´Ï ÀÌ·± ¹®Á¦¿¡¼ °É¸®´Âµ¥ ¾î¶»°Ô ÇÏ¸é µÇ´Â °Å³Ä" ÇÏ´Â Áú¹®¿¡ ´ëÇÑ ´ä Á¤µµ¶óµµ »ý°¢³ª´Â ´ë·Î Á¤¸®ÇØ º¸ÀÚ ¶ó°í »ý°¢Çؼ ½ÃÀÛÇÏ°Ô µÆ½À´Ï´Ù. ¾ÕÀ¸·Îµµ »ý°¢³ª´Â ´ë·Î Ç׸ñµé Ãß°¡ÇØ ³ª°¡¸é¼ Á¤¸®ÇØ ³ª°¥ »ý°¢ÀÔ´Ï´Ù. --verotas
5. °ü·Ã ÀÚ·á ¶
|
Make a wish, it might come true. |