'''CVS »ç¿ë¿¡ ´ëÇÑ FAQ ¸ðÀ½''' ---- Çѱ۷ΠµÈ CVS ¹®¼­µéÀÌ ¿©·µ ³ª¿Í ÀÖÁö¸¸ ²À ÇÊ¿äÇÑ Á¤º¸µéÀÌ ¿©±âÀú±â Èð¾îÁ® ÀÖ°í ü°èÀûÀÌÁö ¾ÊÀº °æ¿ì°¡ ÀÖ¾î, óÀ½ CVS¸¦ Á¢ÇÏ´Â ºÐµéÀÌ ºñ½ÁÇÑ Áú¹®À» ¹Ýº¹ÀûÀ¸·Î ÇÏ°Ô µÇ´Â µí ÇÕ´Ï´Ù. ¿ÀǼҽº ÇÁ·ÎÁ§Æ® °³¹ß¿¡ Âü¿©ÇÏ°íÀÚ ÇÏ´Â ºÐµé¿¡°Ô ÇÊ¿äÇÑ Á¤º¸¸¦ ¸ð¾ÆºÃÀ¸¸é ÇÕ´Ï´Ù. CVS »ç¿ëÇϸ鼭 ÀÌ °£´ÜÇÑ °É ¸ô¶ó¼­ Âü °í»ýÇß¾úÁö ½ÍÀº°Ô ÀÖÀ¸¸é ¾ðÁ¦µçÁö Ãß°¡ÇØ ÁÖ¼¼¿ä. ¸¶Ä§ KLDPconf ÁÖÁ¦ ÀÀ¸ð¿¡µµ ºñ½ÁÇÑ ¾ê±â°¡ ³ª¿Í¼­ »ý°¢³­ ±è¿¡ ÀÏ´Ü ½ÃÀÛÇØ º¾´Ï´Ù. Áú¹®¸¸ Àû¾îÁּŵµ ¹°·Ð ÁÁ½À´Ï´Ù. ---- [[TableOfContents]] ---- == Áú¹®°ú ´ä == === CVS¸¦ »¡¸® ¹è¿ö¼­ ½á¾ßÇϴµ¥ ¾î¶±ÇÏÁÒ? === 1. ¿ì¼± wiki:DocbookSgml/CVS-KLDP ¸¦ º¸°í Çѹø ±×´ë·Î µû¶óÇØ º¸¼¼¿ä. 1. ¾Æ·¡ Á¤¸®ÇصР´Ù¸¥ Çѱ۷ΠµÈ ¹®¼­µéÀ» Æ´Æ´È÷ ÀÐ¾î º¾´Ï´Ù. 1. CVS¸¦ ²ÙÁØÈ÷ ½á¾ß Çϰųª ¿©·¯°¡Áö Á¤¼®ÀûÀÎ »ç¿ë ¹æ¹ýÀ» ÀÍÈ÷°í ½Í´Ù¸é [http://www.tldp.org/REF/CVS-BestPractices/html/ CVS-BestPractices] ¹®¼­¸¦ Á¤µ¶ÇϽñ⸦ ±ÇÇÕ´Ï´Ù. 1. Å« ¿ÀǼҽº ÇÁ·ÎÁ§Æ®¿¡¼­ ¸¹Àº °³¹ßÀÚµéÀÌ °°ÀÌ ÀÛ¾÷ÇÒ ¶§ ¼Ò½º ¹öÀü ÄÁÆ®·ÑÀÌ ¾î¶² ¹æ½ÄÀ¸·Î ¿î¿µµÇ´ÂÁö¿¡ °ü½É ÀÖ´Â ºÐµéÀº [http://cvsbook.red-bean.com The CVS Book]À» Çѹø º¸½Ã±â ¹Ù¶ø´Ï´Ù. === CVS°¡ ¹¹¿¹¿ä? / ¾îµð¿¡ ¾²´Â ¹°°ÇÀΰ¡¿ä? === CVS(Concurrent Versions System)´Â ÇÁ·Î±×·¥ ¼Ò½º³ª ¹®¼­ ÆÄÀÏ ¹öÀü °ü¸®¸¦ ½±°Ô ÇÒ ¼ö ÀÖµµ·Ï µµ¿ÍÁÖ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ƯÈ÷ ¿©·¯ »ç¶÷µéÀÌ µ¿½Ã¿¡ ÀÛ¾÷À» ÁøÇàÇؾßÇÏ´Â ±Ô¸ð°¡ Å« °³¹ß ÇÁ·ÎÁ§Æ®¿¡¼­ Å« È¿°ú¸¦ ±â´ëÇÒ ¼ö ÀÖ½À´Ï´Ù. À̹ۿ¡µµ ²ÙÁØÈ÷ ¾÷µ¥ÀÌÆ®µÇ´Â ¹®¼­ °ü¸®¶óµç°¡ À¥»çÀÌÆ® °ü¸® µî¿¡ À¯¿ëÇÏ°Ô ¾µ ¼ö ÀÖ°í, ½ÉÁö¾î /etc ¾Æ·¡¿¡ µé¾î°¡´Â ¼³Á¤ ÆÄÀÏÀ» (¿ø°Ý) ¹é¾÷ÇÏ´Â ¿ëµµ·Îµµ »ç¿ë °¡´ÉÇÕ´Ï´Ù. :-) µ¿½Ã¿¡ ¿©·¯ À¯´Ð½º Àåºñ¿¡¼­ ÀÛ¾÷ÇÏ´Â °æ¿ì µî¿¡ ½áº¼¸¸ÇÑ "Ȩµð·ºÅ丮 ¸ù¶¥ CVS¿¡ ³Ö¾î¹ö¸®±â"¿¡ ´ëÇÑ LinuxJournal ±â»ç([http://www.linuxjournal.com/article.php?sid=5976 CVS homedir])µµ Çѹø ÀÐ¾î º¸¼¼¿ä. === CVS¸¦ ½ÇÁ¦·Î °³¹ß °úÁ¤¿¡ »ç¿ëÇÏ´Â ÇÁ·ÎÁ§Æ®°¡ ÀÖ³ª¿ä? === Àß ¾Ë·ÁÁø À¯¸íÇÑ ¿ÀǼҽº ÇÁ·ÎÁ§Æ®µéÀº ´ë°³ CVS³ª ÀÌ¿Í À¯»çÇÑ ¼Ò½º °ü¸® ½Ã½ºÅÛÀ» °®Ãß°í ÀÖ½À´Ï´Ù. 1. OpenBSD : OS ¹× ½Ã½ºÅÛ Àüü ¼Ò½º¸¦ CVS·Î °ü¸®ÇÏ°í ÀÖ½À´Ï´Ù. 1. OpenOffice : ÃÑ 3¸¸ ÆÄÀÏ¿¡ ´ë·« 9¹é¸¸ ¶óÀÎ ÀÌ»óµÇ´Â C++ Äڵ带 CVS·Î °ü¸®ÇÕ´Ï´Ù. 1. Mozilla : Àüü ÇÁ·ÎÁ§Æ® ¹× ÆÄ»ý ÇÁ·ÎÁ§Æ® ¼Ò½º ÄÚµå ¹× ¸±¸®½º/ºê·£Ä¡ °ü¸®¸¦ CVS·Î ÇÏ°í ÀÖ½À´Ï´Ù. 1. XFree86 : CVS ¸¦ »ç¿ëÇÏ´Â À¯¸í ÇÁ·ÎÁ§Æ®Áß ÇϳªÀÔ´Ï´Ù. 1. Apache : À§¿Í µ¿ÀÏÇÕ´Ï´Ù. === CVS¸¦ ¾²¸é ±×·¡¼­ ¹¹°¡ ÁÁÀº°¡¿ä? === °ü¸®ÀÚ´Â : 1. ÇÁ·ÎÁ§Æ® Âü¿©ÀÚ °³°³ÀÎÀÇ ÀÛ¾÷À» ¹æÇØÇÏÁö ¾ÊÀ¸¸é¼­ ÀüüÀûÀÎ ÁøÇà »óȲÀ» Á¶ÀýÇÒ ¼ö ÀÖ´Ù. 1. ¸±¸®½ºµÈ ¹öÀü°ú °³¹ßÁßÀÎ ¹öÀüÀ» µÚ¼¯Áö ¾Ê°í ºÐ¸®Çؼ­ °ü¸®ÇÒ ¼ö ÀÖ´Ù. 1. ÀÏÁ¤ ±â°£¿¡ ÁøÇàµÈ ÀÛ¾÷ ³»¿ë¿¡ ´ëÇÑ ¸®Æ÷Æ®¸¦ ½±°Ô ¸¸µé¾î ³¾ ¼ö ÀÖ´Ù. 1. ÀÏÁ¤ ±â°£¿¡ ÁøÇàµÈ º¯°æ ³»¿ªÀ» È¿°úÀûÀ¸·Î ÃßÀûÇÒ ¼ö ÀÖ´Ù. 1. ´©°¡ ÀÏÀ» ÇÏ°í ´©°¡ ³î°í ÀÖ´ÂÁö ½±°Ô °¨½ÃÇÒ ¼ö ÀÖ´Ù. :-) °³¹ßÀÚ´Â : 1. ¼Ò½º ¹é¾÷¿¡ ½Å°æ ¾µ ÇÊ¿ä°¡ ¾ø´Ù. 1. »õ·Î¿î Äڵ带 ÀÛ¼ºÇÒ ¶§ ±âÁ¸ ÀÛ¾÷À» ¸ÁÄ¥ À§Çè ¾øÀÌ ½±°Ô ½ÃµµÇÒ ¼ö ÀÖ´Ù. 1. ¹®Á¦°¡ »ý°åÀ» ¶§ ¾î´À ÁöÁ¡¿¡¼­ ¹®Á¦°¡ »ý°å´ÂÁö ½±°Ô ÃßÀûÇؼ­ ã¾Æ³¾ ¼ö ÀÖ´Ù. 1. ¼Ò½º³ª ¹®¼­ ƯÁ¤ ºÎºÐ ÀÛ¾÷À» ´©°¡ ¾ðÁ¦ Çß´ÂÁö ½±°Ô ¾Ë¾Æ³¾ ¼ö ÀÖ´Ù. 1. º°µµ ¸®Æ÷Æ® ÀÛ¼º ¹× ¹®¼­¸¦ ½á¾ßÇÏ´Â °Ç¼ö³ª ¾çÀÌ ¸¹ÀÌ ÁÙ¾îµç´Ù. 1. ¸¾¸ÔÀ¸¸é º°·Î ÇÑ ÀÏÀÌ ¾ø¾îµµ ²ÙÁØÈ÷ ÀÏÇÏ°í ÀÖ´Â °Íó·³ ¼ÓÀÏ ¼öµµ ÀÖ´Ù. :-) === RCS´Â ¶Ç ¹¹ÁÒ? / RCS ÇÏ°í´Â ¹¹°¡ ´Ù¸¥°¡¿ä? === CVS´Â RCS¸¦ ±â¹ÝÀ¸·Î ÀÛ¼ºµÈ ¹öÀü °ü¸® ½Ã½ºÅÛÀÔ´Ï´Ù. ½±°Ô ¾ê±âÇÏÀÚ¸é RCS´Â ÆÄÀÏ ÇϳªÇϳª¿¡ ´ëÇØ ¹öÀü °ü¸®¸¦ ÇØÁÖ´Â °ÍÀÌ°í, CVS´Â RCS ±â´ÉÀ» ÀÌ¿ëÇØ ¼Ò½º³ª ¹®¼­¸¦ ÇÁ·ÎÁ§Æ®/¸ðµâ ´ÜÀ§·Î °ü¸®ÇÒ ¼ö ÀÖµµ·Ï È®ÀåÇÑ ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ÀÌ¹Ì RCS¸¦ ¾²°í ÀÖ°í Àͼ÷ÇÑ ºÐÀÌ ¾Æ´Ï¶ó¸é ±»ÀÌ CVS¸¦ »õ·Î ¹è¿ï ÇÊ¿ä´Â ¾ø½À´Ï´Ù. RCS·Î ÇÒ ¼ö ÀÖ´Â ¸ðµç °ÍÀº CVS·Î ÇÒ ¼ö ÀÖÁö¸¸ ±× ¿ªÀº ¼º¸³ÇÏÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù. CVS¿¡¼­µµ ÀϺΠ±â´É(ÀÌ¹Ì ½á ³õÀº ·Î±× ¼öÁ¤ µî)Àº RCS ¸í·ÉÀ» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ±Ã±ÝÇÏ´Ù¸é {{{ $ cvs -H admin }}} Çؼ­ RCS °ü·Ã ¸í·É¾î¸¦ Çѹø »ìÆì º¸¼¼¿ä. === SourceSafe¿Í´Â ¹¹°¡ ¾î¶»°Ô ´Ù¸¥°¡¿ä? === (http://bbs.kldp.org/viewtopic.php?t=26590) === CVS¿¡¼­ .......ÇÑ Á¡ÀÌ ¸¶À½¿¡ µéÁö ¾Ê½À´Ï´Ù. ´Ù¸¥ ÇÁ·Î±×·¥Àº ¾ø³ª¿ä? === ´ëüÇÒ ¸¸ÇÑ °Íµé... * [Subversion] * [http://www.regexps.com/#arch arch] * [http://www.opencm.org/ OpenCM] * [http://domino.research.ibm.com/synedra/synedra.nsf Stellation] * [http://prcs.sourceforge.net/ PRCS] * [http://aegis.sourceforge.net/ aegis] * [http://www.eclipse.org/ eclipse] * [http://users.footprints.net/~kaz/mcvs.html Meta-CVS] * CVSup * lcvs Non-Free * [http://www.bitkeeper.com/ BitKeeper] * [http://www.perforce.com/ Perforce] * ClearCase * SourceSafe === Windows¿¡¼­ ¾µ ¼ö ÀÖ´Â CVS Ŭ¶óÀ̾ðÆ®°¡ ÀÖ³ª¿ä? === * [http://www.wincvs.org/ WinCVS] * [http://kldp.net/forum/message.php?msg_id=1486 WinCVS »ç¿ë¹ý ÇÑ±Û ¼³¸í] * [http://tortoisecvs.sf.net TortoiseCVS] * [http://elfsong.cafe24.com/cjw/koreannethack/moin.cgi/TortoiseCVS TortoiseCVS »ç¿ë¹ý ÇÑ±Û ¼³¸í] * [http://www.eclipse.org/ Eclipse] * [http://www.geocities.com/kaczoroj/CvsIn VC++ 6 IDE¿Í ÅëÇÕµÈ CVS tool] * [http://www.jalindi.com/igloo Visual Studio¸¦ ºñ·ÔÇÏ¿© ¿©·¯ IDEµé°ú ÅëÇÕµÈ CVS tool] µîÀÌ ÀÖ½À´Ï´Ù. CVS¸¦ óÀ½ »ç¿ëÇÏ´Â ºÐ¿¡°Ô´Â [TortoiseCVS] ¸¦ ±ÇÇÕ´Ï´Ù. Java¸¦ ÁÖ·Î »ç¿ëÇϰųª ÁÁÀº IDE ȯ°æÀ» ¿øÇϽô ºÐÀº Eclipse¸¦ Çѹø ½áº¸¼¼¿ä. DeleteMe À©µµ¿ìÁî ȯ°æ¿¡¼­ CVS¸¦ »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾ÆÁ÷ ½±°Ô Âü°íÇÒ ¸¸ÇÑ ¹®¼­°¡ ¾ø´Â °ÍÀ¸·Î ¾Ð´Ï´Ù. ´©±º°¡ À§¿¡ Á¦°¡ ¸µÅ©ÇØ µå¸° µÎ °³ÀÇ ³»¿ëÀ» ¹ÙÅÁÀ¸·Î Çؼ­ À©µµ¿ìÁî ȯ°æ¿¡¼­ CVS¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ´Ù·é º°µµÀÇ ¹®¼­¸¦ ¸¸µé¾î Áֽøé Âü ÁÁ°Ú³×¿ä. -- [±Ç¼ø¼±] [WinCVS] ÆäÀÌÁö¿¡¼­ »õ·Ó°Ô ¹®¼­¸¦ ÀÛ¼ºÇØ ³ª°¥±î ÇÕ´Ï´Ù. ¸¹Àº °ü½É°ú µµ¿ò ºÎŹµå¸³´Ï´Ù. -- [ÂоÆ] === Windows¿¡¼­ ¾µ ¼ö ÀÖ´Â CVS ¼­¹ö°¡ ÀÖ³ª¿ä? === * [http://www.cvsnt.org/wiki/FrontPage CVSNT] * [http://www.cvsnt.org/wiki/InstallationTips CVSNT ¼³Ä¡Çϱ⠿µ¹® ¼³¸í¼­] * [http://www.javacafe.or.kr/lecture/cafeLecture/tool/cvsnt/cvsnt.html CVSNT »ç¿ëÇϱâ ÇÑ±Û ¼³¸í¼­] === 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 }}} === Anonymous checkout ÀÌ ¹º°¡¿ä? ¾î¶»°Ô ÇÏÁÒ? === ÀÍ¸í »ç¿ëÀÚ¿¡°Ô Àб⠱ÇÇÑÀ» Á¦°øÇÔÀ¸·Î½á ¼Ò½º³ª ¹®¼­ ÃֽŠ¹öÀüÀ» ¼Õ½±°Ô ¾÷µ¥ÀÌÆ®ÇÒ ¼ö ÀÖµµ·Ï ÇØÁÝ´Ï´Ù. ƯÈ÷ ÄÄÆÄÀÏÀÌ ÇÊ¿ä¾ø´Â ½ºÅ©¸³Æ® ±â¹Ý ÇÁ·ÎÁ§Æ®¿¡ À¯¿ëÇÕ´Ï´Ù. [http://kldp.net/projects/moniwiki/ 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 }}} Çؼ­ °£´ÜÈ÷ ÃֽŹöÀüÀ¸·Î ¾÷µ¥ÀÌÆ®ÇÒ ¼ö ÀÖ½À´Ï´Ù. === ·Î±×ÀÎÀ» Ç϶ó´Âµ¥ ¾î¶»°Ô Çϳª¿ä? === {{{ $ 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) }}} === ÀúÀå¼Ò(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 ¸í·ÉÀ¸·Î »ý¼ºµË´Ï´Ù. === »õ 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 }}} === »õ ÇÁ·ÎÁ§Æ®´Â ¾î¶»°Ô ¸¸µå³ª¿ä? === {{{ $ 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 }}} === 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 }}} === checkoutÇÑ ÀÌÈÄ¿¡ Repository¿¡¼­ ¹Ù²ï ³»¿ëÀ» È®ÀÎÇÏ°í ½Í½À´Ï´Ù. === ¿ì¼± ³»¿ë È®ÀÎ (·ÎÄÿ¡ ¾Æ¹« º¯È­µµ ¸¸µéÁö ¾ÊÀ½). {{{ $ cvs -n update }}} ±×¸®°í ÀÌ»óÀÌ ¾øÀ¸¸é º¯°æµÈ »çÇ×À» ¹Þ¾Æ¿Â´Ù. {{{ $ cvs update -dP }}} === ³»°¡ ÀÛ¾÷ÇÑ ³»¿ëÀº ¾î¶»°Ô ¾Ë ¼ö ÀÖ³ª¿ä? === {{{ $ 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 }}} === Áö±Ý±îÁö ÀÛ¾÷ÇÑ ³»¿ëÀ» checkinÇÏ°í ½Í½À´Ï´Ù. === {{{ $ cvs ci -m "fixed bug #12345" }}} {{{ $ cvs com[mit] prog.c $ cvs ci -m "another bug fix in sheet.c" sheet.c }}} === Conflict°¡ »ý°å½À´Ï´Ù! ¾î¶»°Ô ÇؾßÇϳª¿ä? === ´çȲÇÏÁö ¸¶¼¼¿ä. ¼Ò½º³ª ¹®¼­¿¡¼­ {{{ <<<< .... ---- .... >>>> }}} ÀÌ·¸°Ô »ý±ä ºÎºÐÀ» ã¾Æ¼­ °íÄ£ ´ÙÀ½ ´Ù½Ã cvs update; cvs ci ÇÏ¸é µË´Ï´Ù. === ¼Ò½º¿¡¼­ ÀÌ ºÎºÐÀ» ´©°¡ ¸¸µç °ÇÁö Á» ¾Ë¾Æ¾ß°Ú½À´Ï´Ù. === {{{ $ cvs annotate a.c }}} === ÆÄÀÏÀ» Ãß°¡ÇÏ°í ½Í½À´Ï´Ù. === {{{ $ cvs add newfile $ cvs add newdir }}} === ÆÄÀÏÀ» »èÁ¦ÇÏ°í ½Í½À´Ï´Ù. === {{{ $ cvs rm oldfile $ cvs rm -f badfile $ cvs rm -f olddir/badfiles $ cvs rm olddir }}} === ÆÄÀÏ À̸§À» ¹Ù²Ù°í ½Í½À´Ï´Ù. === ´Ü¼øÈ÷ ÆÄÀÏÀ̸§¸¸ ¹Ù²Ù´Â ¹æ¹ý°ú 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,v }}} CVS repository ÀÇ ¼öÁ¤ÇÒ module µð·ºÅ丮¿¡¼­ À̸§À» º¯°æÇÒ ÆÄÀÏÀÇ À̸§À» Á÷Á¢ ¹Ù²Ù¾î ÁÖ´Â ¹æ¹ýÀÔ´Ï´Ù ÀÌ°ÍÀº ¾Æ·¡¿Í °°Àº Àå´ÜÁ¡À» °¡Áö°í ÀÖ½À´Ï´Ù '''ÀåÁ¡''' * change log°¡ ±×´ë·Î º¸Á¸µË´Ï´Ù * revision ¿ª½Ã ±×´ë·Î À¯ÁöµË´Ï´Ù '''´ÜÁ¡''' * module ÀÇ ¿¹Àü release ³ª tag ¸¦ ºÒ·¯¿À±â°¡ ½±Áö°¡ ¾Ê´Ù. * À̸§ÀÌ º¯°æµÇ¾ú´Ù´Â Á¤º¸°¡ log ¿¡ ³²Áö ¾Ê´Â´Ù * À§ÀÇ ÀÛ¾÷($CVSROOT ¿¡ µé¾î°¡ ÆÄÀÏÀ» Á÷Á¢ rename ÇÏ´Â..)À» ÇÏ´Â µ¿¾È ´©±º°¡ cvs ÀÛ¾÷À» ÇÑ´Ù¸é ³­Ã³ÇÑ ÀÏÀÌ »ý±ä´Ù. === µð·ºÅ丮¸¦ Áö¿ì°í ½Í½À´Ï´Ù === CVS¿¡¼­´Â µð·ºÅ丮 ´ÜÀ§·Î ÀúÀåÀ» Çϱ⠶§¹®¿¡ È÷½ºÅ丮¸¦ À¯ÁöÇϱâ À§Çؼ­´Â ±× µð·ºÅ丮°¡ ÇÊ¿äÇÕ´Ï´Ù. µû¶ó¼­ ÁøÂ¥·Î µð·ºÅ丮¸¦ Áö¿ï ¼ö´Â ¾ø½À´Ï´Ù. ´ë½Å update ½Ã¿¡ ¹ÞÁö ¾Ê´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. ¸ÕÀú '''ÆÄÀÏÀ» Áö¿ì±â'''¸¦ ÀÌ¿ëÇؼ­ ÇØ´ç µð·ºÅ丮ÀÇ ÆÄÀÏÀ» ¸ðµÎ Áö¿ó´Ï´Ù. ±×¸®°í ³ª¼­ »óÀ§ µð·ºÅ丮·Î °¡¼­ ÇØ´ç µð·ºÅ丮¸¦ Áö¿ì°í ³ª¸é ´ÙÀ½ºÎÅÍ´Â {{{cvs update -P}}} ·Î ¾÷µ¥ÀÌÆ® Çϸé ÇØ´ç µð·ºÅ丮°¡ º¸ÀÌÁö ¾Ê°Ô µË´Ï´Ù. {{{ cd unneeddir rm * # À̶§ CVS µð·ºÅ丮´Â ³²°ÜÁ® ÀÖ¾î¾ß ÇÕ´Ï´Ù. cvs remove cvs commit # ¿©±â¼­ unneeddirÀÇ ¸ðµç ÆÄÀÏÀÌ Áö¿öÁý´Ï´Ù cd .. cvs remove unneeddir cvs update -P }}} ¶Ç´Â CVSROOT¿¡ °¡¼­ Á÷Á¢ µð·ºÅ丮¸¦ Áö¿ö ¹ö¸®´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. ´ë½ÅÀÌ ¹æ¹ýÀº CVSROOT µð·ºÅ丮 °ü¸® ±ÇÇÑÀ» °¡Áö°í ÀÖ¾î¾ß ÇÏ°í, È÷½ºÅ丮±îÁö »ç¶óÁø´Ù´Â ´ÜÁ¡ÀÌ ÀÖ½À´Ï´Ù. === ½Ç¼ö·Î À߸øµÈ ¼Ò½º¸¦ checkinÇØ ¹ö·È½À´Ï´Ù. ¾î¶»°Ô °íÃľßÇϳª¿ä? === === checkout ¹ÞÀº ¼Ò½º¸¦ ÀÌÁ¦ ±×¸¸ Áö¿ö¹ö¸®°í ½Í¾î¿ä. === {{{ $ cvs release -d proj }}} === ÇöÀç±îÁö ÀÛ¾÷ ³»¿ªÀ» º¸°í ½Í½À´Ï´Ù. === {{{ $ cvs st[atus] [-v] [prog.c] $ cvs log [prog.c] $ cvs ann[otate] [main.c] }}} === revisionÀÌ ¹º°¡¿ä? === ÆÄÀÏ ÇϳªÇϳª¿¡ ºÙ¾î ÀÖ´Â ¹öÀü ¹øÈ£¸¦ ¸»ÇÕ´Ï´Ù. {{{ $ cvs st README ...... Working revision: 1.1 ...... }}} === tag°¡ ¹º°¡¿ä? === ¿©·¯ ÆÄÀÏÀ̳ª ¸ðµâ¿¡ ¹öÀüÀ» Ç¥½ÃÇϱâ À§ÇØ ÇѲ¨¹ø¿¡ ºÙ¿©µÐ Ç¥½ÃÀÔ´Ï´Ù. {{{ $ cd moniwiki/ $ cvs st -v README ...... Existing Tags: moniwiki-1_1 (branch: 1.1.2) RELEASE_1_0_5 (revision: 1.1) ...... }}} ==== tag´Â ¾î¶»°Ô ºÙÀ̳ª¿ä? ==== {{{ $ cvs tag TAGNAME }}} === branch´Â ¶Ç ¹º°¡¿ä? === * Development Branch * Release Branch * Maintenance Branch * Vender Branch * (Main) Trunk * HEAD ¸Å´º¾ó¿¡¼­ ºô·Á¿Â ±×¸² {{{#!vim +-------------+ 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 ! +---------+ +---------+ +---------+ }}} ==== 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 }}} ÀÌ ¸í·ÉÀ» ½ÇÇàÇÑ ÀÛ¾÷¼Ò´Â ¾ÕÀ¸·Î ÀÌ ºê·£Ä¡·Î ÀÛ¾÷À» ÇÏ°Ô µË´Ï´Ù. ==== merge´Â ¾î¶»°Ô ÇÏ´Â °Ì´Ï±î? ==== {{{ $ cvs checkout -j release-1-patches project $ cvs commit -m "Merged patch" }}} === °ú°Å ƯÁ¤ ½ÃÁ¡¿¡ ¼Ò½º°¡ ¾î¶®´ÂÁö º¸°í ½Í½À´Ï´Ù. === ű׸¦ ºÙ¿© µÎÁö ¾Ê¾Ò´Ù¸é, ³¯ÀÚ¿Í ½Ã°£À» ½á¼­ ´ÙÀ½°ú °°ÀÌ ÀÛ¾÷ÇÏ´Â °Íµµ °¡´ÉÇÕ´Ï´Ù. {{{ $ 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" }}} === CVS ¼­¹ö¿¡ ¾î¶² moduleÀÌ ÀÖ´ÂÁö ¾î¶»°Ô ¾Ë ¼ö ÀÖ³ª¿ä? === CVS¿¡¼­ Á¦°øÇÏ´Â ¸í·É¾î¸¦ ÅëÇØ Á¤»óÀûÀ¸·Î ¾Ë¾Æ³¾ ¼ö ÀÖ´Â ¹æ¹ýÀº '''¾ø½À´Ï´Ù'''. :-( ±×·¸Áö¸¸ ²À ÇÊ¿äÇÑ °æ¿ì¿¡ ÈçÈ÷ »ç¿ëµÇ´Â ¹æ¹ýÀÌ ¸î °¡Áö ÀÖ½À´Ï´Ù. 1. ÇÁ·ÎÁ§Æ® °ü¸®ÀÚ¿¡°Ô ¹°¾îº¸¼¼¿ä :-) 1. ÇÁ·ÎÁ§Æ® °ü¸®ÀÚ°¡ ¼öµ¿À¸·Î CVSROOT/modules ¿¡ µî·ÏÇØ ³õÀ¸¸é ´ÙÀ½ ¸í·ÉÀ¸·Î moduleÀÇ ¸ñ·ÏÀ» º¼ ¼ö ÀÖ½À´Ï´Ù. {{{ $ cvs co -c }}} 1. Àß °ü¸®µÇ´Â ÇÁ·ÎÁ§Æ®¶ó¸é ÀϹÝÀûÀ¸·Î cvsweb À̳ª viewcvs °°Àº À¥ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÒ °ÍÀÔ´Ï´Ù. ±×°É ÀÌ¿ëÇϼ¼¿ä. ¸¸¾à ¾ø´Ù¸é ¼­¹ö °ü¸®ÀÚ¿¡°Ô ±×·± ÇÁ·Î±×·¥À» ¼³Ä¡ÇØ ´Þ¶ó°í ¿äûÇϼ¼¿ä. 1. À§ ¹æ¹ýÀÌ ¸ðµÎ ¾ÈµÈ´Ù¸é, ´ÙÀ½ ½ºÅ©¸³Æ®¸¦ ½á¼­ °£Á¢ÀûÀ¸·Î ¾Ë¾Æ³¾ ¼öµµ ÀÖ½À´Ï´Ù. {{{ $ cvsls.sh HEAD . }}} {{{#!vim sh #!/bin/sh # lists files and directories in the module(s) on the server without # checking them out # cvsls BranchName modules... # for main trunk use 'cvsls HEAD modules...' branch=$1; shift cvs rdiff -s -D '01/01/1971' -r $branch "$@" 2>&1 \ | sed -e 's/File.//' \ -e 's/is new; current revision./ (/' \ -e 's/(\([0-9][\.0-9]*\)/(\1)/' \ -e 's/cvs server: Diffing/cvs server: Listing/' }}} === CVSROOT/modules¿¡ ¸ðµâ µî·ÏÀº ¾î¶»°Ô Çϳª¿ä? === cvs co CVSROOT ÇÏ¿©¼­ modules ÆÄÀÏÀ» ¼öÁ¤ÇϽŠÈÄ¿¡ commit ÇÏ¼Å¾ß ÇÕ´Ï´Ù. À̶§ À§¿Í °°Àº ¸ñÀûÀ¸·Î È°¿ëÇÏ½Ç °èȹÀ̶ó¸é °£´ÜÇÏ°Ô ´ÙÀ½°ú °°ÀÌ ÀûÀ¸½Ã¸é µË´Ï´Ù. {{{ module_A module_A module_B module_B }}} À§ÀÇ ³»¿ëÀº module_A¶ó´Â °ÍÀÌ repository root¿¡ Á¸ÀçÇÏ´Â °æ¿ì ÀÔ´Ï´Ù. === CVSROOT/passwd¿¡ »ç¿ëÀÚ¸¦ ¾î¶»°Ô Ãß°¡Çϳª¿ä? === ¸î °¡Áö ¹æ¹ýÀÌ ÀÖÁö¸¸, °¡Àå °£´ÜÇÑ ¹æ¹ý °¡¿îµ¥ Çϳª´Â apache ÆÐÅ°Áö¿¡ µé¾î ÀÖ´Â '''htpasswd''' ¸í·ÉÀ» ÀÌ¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. {{{ $ htpasswd -b passwd username password }}} === ÀÍ¸í »ç¿ëÀÚ´Â ¾î¶»°Ô µî·ÏÇϳª¿ä? === {{{ $ cat $CVSROOT/CVSROOT/readers cvs cvsguest }}} === CVS°¡ /root ¾Æ·¡ ÆÄÀÏÀ» ãÀ¸·Á µì´Ï´Ù! ÀÌ°Ô ¹º°¡¿ä? === pserver ¼³Á¤À» ÇØÁÙ ¶§ ¾Æ·¡¿Í °°Àº ¿¡·¯°¡ ³ª´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. {{{ cvs server: cannot open /root/.cvsignore: Permission denied }}} ÀÌ·² ¶© inetd ³ª xinetd ¼³Á¤À» ÇØÁÙ ¶§ cvs¿¡ ³Ñ°ÜÁÙ Àμö¿¡ '-f' ¿É¼ÇÀ» Ãß°¡ÇØÁÖ¸é ÇØ°áµË´Ï´Ù. xinetd ¶ó¸é /etc/xinetd.d/cvspserver ³»¿ëÀ» ¾Æ·¡¿Í °°ÀÌ ÇØ ÁÖ¸é µË´Ï´Ù. {{{#!vim sh # 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 } }}} === Repository¸¦ ´Ù¸¥ ±â°è·Î ¿Å±â°í ½Í½À´Ï´Ù. === Q : ¸¸ÀÏ A ¼­¹ö¿¡ ÀÖ´ø repository ¸¦ B ¼­¹ö·Î ¿Å±â°í ½Í´Ù¸é ±×³É µð·ºÅ丮¸¦ Åëä·Î º¹»çÇÏ¸é µÇ·Á³ª¿ä? ±×°Ô ¾È µÈ´Ù¸é ÁË´Ù update ÈÄ »õ·Î import ¸¦ Ç϶ó´Â ¾ê±âÀε¥... -_-;; A : ³× ±×³É ¿Å±â¸é µË´Ï´Ù. ¿Ïº®ÇÑ(?) ÀÌÀüÀ» À§Çؼ­¶ó¸é Á¶±Ý ½Å°æ½á¾ßÇÒ °ÍµéÀÌ ´õ ÀÖ±ä ÇÏÁö¸¸, µð·ºÅ丮¸¦ Åë° tar·Î ¹­¾î¼­ »õ ±â°è°Ô Ç®¾îÁØ ´ÙÀ½ permission Á¶Àý¸¸ ÇØÁ൵ À¢¸¸Å­ µË´Ï´Ù. === CVS ¼­¹ö¿¡ ÀÖ´Â repository¸¦ ¹Ì·¯¸µÇÒ ¼ö ¾ø³ª¿ä? === ´Ü¼øÇÑ ¹é¾÷ ÀÌ»óÀ» ÀǹÌÇÏ´Â °ÍÀ̶ó¸é, CVS´Â ±âº»ÀûÀ¸·Î ´ÜÀÏ repository¸¦ ¹ÙÅÁÀ¸·Î ¼³°èµÇ¾ú±â ¶§¹®¿¡ ÀÚüÀûÀ¸·Î´Â ºÒ°¡´ÉÇÕ´Ï´Ù. ´ë±Ô¸ð ÇÁ·ÎÁ§Æ® °°Àº °æ¿ì¿¡ Àü¼¼°è °÷°÷¿¡ ¹Ì·¯¸¦ Çϱâ À§ÇØ CVSup °°Àº º¸Á¶µµ±¸¸¦ ÀÌ¿ëÇϰųª, ´Ü¼øÈ÷ rsync °°Àº ¹Ì·¯¸µ ÅøÀ» ÀÌ¿ëÇϱ⵵ ÇÕ´Ï´Ù. ±×·¯³ª ÀÌ °æ¿ì ÇÏÀ§ repository¿¡ commit ÇÑ ³»¿ëÀ» ´Ù½Ã »óÀ§(upstream)·Î merge Çϴµ¥ ±â¼úÀûÀÎ ¾î·Á¿òÀÌ µû¸¨´Ï´Ù. ±×·¸Áö¸¸ °æ¿ì¿¡ µû¶ó È¿°úÀûÀÎ °³¹ß ºê·£Ä¡³ª ·ÎÄà °³¹ßÀÚ ±×·ì Áö¿øÀ» À§Çؼ­´Â ²À ÇÊ¿äÇÑ ±â´ÉÀ̱⠶§¹®¿¡, CVS°¡ °¡Áö´Â ±Ùº»ÀûÀÎ Á¦¾àÀ» ±Øº¹ÇÏ°íÀÚ »õ·Î °³¹ßµÇ´Â ÇÁ·Î±×·¥ÀÌ ÀÖ½À´Ï´Ù. ¸¸¾à ²À °èÃþÀû repository¸¦ ±¸ÃàÇØ¾ß ÇÏ´Â »óȲÀ̶ó¸é, ´ÙÀ½ ÇÁ·Î±×·¥À» »ç¿ëÇÏ´Â °ÍÀ» °í·ÁÇØ º¸¼¼¿ä. * [http://www.regexps.com/#arch arch] ÃÖ±Ù¿¡ XFree86 ÇÁ·ÎÁ§Æ®¸¦ arch¸¦ ÀÌ¿ëÇØ forkÇÑ »ç·Ê°¡ ÀÖ½À´Ï´Ù. : http://www.xouvert.org/ === 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]¶ó´Â ¹üÀ§¸¦ ¹þ¾î³ª´Â °Í °°¾Æ ÀÌÁ¤µµ¸¸ Àû½À´Ï´Ù.) ==== °£´ÜÇÑ ¹æ¹ý ==== ´Ü¼øÈ÷ ¾î¶² ¸ðµâÀ» °¡Á®¿Ã ¶§ ƯÁ¤ ÇϺΠ¸ðµâÀ» °°ÀÌ °¡Á®¿Àµµ·Ï ÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µË´Ï´Ù. {{{ proj_a proj_a &libx proj_b proj_b &libx libx libx }}} ÀÌ·¸°Ô Çϸé proj_a¸¦ üũ¾Æ¿ôÇÒ ¶§ proj_a µð·ºÅ丮 ¾Æ·¡¿¡ Ãß°¡·Î libx µð·ºÅ丮°¡ »ý±é´Ï´Ù. === 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¸¦ ½á¾ßÇÏ´Â °æ¿ì°¡ ¾Æ´ÑÁö ´Ù½Ã Çѹø »ý°¢Çغ¸¼¼¿ä. === 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Àº °¡´ÉÇÕ´Ï´Ù. === Repository¿¡ Attic À̶õ°Ô ÀÖ´øµ¥ ÀÌ°Ç ¹º°¡¿ä? === »ç¿ëÀÚ°¡ Áö¿î(cvs rm) ÆÄÀÏÀ» º¸°üÇصδ °÷ÀÔ´Ï´Ù. AtticÀÌ ¿ì¸®¸»·Î Çϸé "´Ù¶ô"Àε¥, ÀÚÁÖ ¾²Áö´Â ¾ÊÁö¸¸ ¹ö¸®±ä ¾Æ±õ°í Ȥ½Ã ÇÊ¿äÇÏ°Ô µÉÁö ¸ð¸£´Â ¹°°ÇÀ» ÀúÀåÇÑ´Ù´Â Á¡¿¡¼­ º¸¸é »ó´çÈ÷ Àß ÁöÀº À̸§ °°½À´Ï´Ù. »ç¿ëÀÚ°¡ cvs rmÀ» Çؼ­ ÆÄÀÏÀ» Áö¿ì°Ô µÇ¸é, ÇØ´ç ÆÄÀϵéÀÌ ¿ÏÀüÈ÷ »èÁ¦µÇ´Â°Ô ¾Æ´Ï¶ó Attic ¾Æ·¡¿¡ ¿Å°ÜÁý´Ï´Ù. ±×¸®°í °ú°Å ¹öÀüÀ» checkout Çϰųª ÇÒ¶§ ²ôÁý¾î³»¼­ ¾²´Â °ÅÁö¿ä. === 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 À¸·Î ¾²ÀÌ´Â ³»¿ëÀÌ µé¾îÀÖ³ª¿ä? === ÀÌ¹Ì 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 }}} === ÀÌ¹Ì Binary·Î ¾÷·Îµå µÈ ÆÄÀÏÀ» Text·Î ¹Ù²Ü ¼ö Àִ°¡¿ä? === ÇѱÛÀÌ µé¾îÀÖ´Â ÆÄÀÏÀ» WinCVS¸¦ ÅëÇؼ­ add/import¸¦ ÇÏ°Ô µÇ¸é binary¸¦ ±ÇÀåÇÕ´Ï´Ù. À̶§, ½Ç¼ö·Î Binary·Î add/importÇÏ°Ô µÇ¸é merge±â´ÉÀ» Áö¿øÇÏÁö ¾Ê¾Æ ºÒÆíÇÏ°Ô µÇÁö¿ä. ÀÌ·² ¶§, À§ÀÇ Text->Binary¿Í´Â ¹Ý´ëÀÇ ÀÛ¾÷ÀÌ ÇÊ¿äÇÏ°Ô µÇ´Âµ¥, À§ÀÇ ³»¿ë°ú °°°í, ¿É¼Ç¸¸ {{{-kb}}}°¡ ¾Æ´Ñ {{{-kkv}}}·Î ÇØ ÁÖ¸é µË´Ï´Ù. {{{ $ cvs admin -kkv kotest }}} -- DeleteMe ÀÌ°ÍÀ¸·Î ÇÑÂü °í¹ÎÇÏ°í ÀÌ°Í Àú°Í ÇØ º» °á°ú ¾Ë¾Æ ³Â½À´Ï´Ù¸¸, ¿©±â¼­ ¸»ÇÏ´Â keyword¶ó´Â °Ô Á¤È®ÇÏ°Ô ÀǹÌÇÏ´Â ¹Ù¸¦ ¸ð¸£°Ú½À´Ï´Ù. ¾Æ½Ã´Â ºÐÀº ¼³¸í ºÎŹµå¸³´Ï´Ù. (-kkvÀÇ help¿¡´Â Generate keywords using the default form.¶ó°í µÇ¾î ÀÖ½À´Ï´Ù.) [barmi] === ·Î±×¸¦ À߸ø Àû¾ú´Âµ¥ °íÄ¥ ¼ö ¾øÀ»±î¿ä? === {{{ $ cvs admin -m1.2:"new log" myprog.c }}} űװ¡ ºÙ¾î ÀÖ´Â °æ¿ì¶ó¸é {{{ $ cvs admin -mV_1_0:"massive new log" }}} ÀÌ·¸°Ô Çѹø¿¡ ¹Ù²Ù´Â °Íµµ °¡´ÉÇÕ´Ï´Ù. === 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 ¿¡¼­ »ç¿ë ÇÏ´Â°É º¸¸é ±¦Âú¾Æ º¸ÀÔ´Ï´Ù. === 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 }}} ÀÌ·¸°Ô ÀüºÎ ºÙ¿©Áà¾ß ÇÕ´Ï´Ù. === Ç×»ó ÃֽŹöÀüÀÇ ¼Ò½º¸¦ À¯ÁöÇÏ°í ½Í¾î¿ä === Ç×»ó ÃÖ½ÅÀÇ ¹öÀüÀ» À¯ÁöÇÏÁö ¾Ê°í ÀÛ¾÷À» ÇÏ´Ï 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 Çؼ­ ÀúÀå¼Ò¿¡ º¯°æµÈ ÆÄÀÏÀ» È®ÀÎÇÑ ÈÄ ±× ÆÄÀϵ鸸 ¼±ÅÃÇؼ­ ¾÷µ¥ÀÌÆ® ÇÏ½Ã¸é µË´Ï´Ù. ½ºÅ©¸³Æ® Çϳª ¸¸µé¾î º¸½Ã´Â °Íµµ ÁÁÀ»µí ÇÕ´Ï´Ù. :) === ÀÌÀü¹öÀüÀ¸·Î µÇµ¹¸®°í ½Í¾î¿ä(Rollback) === |http://bbs.kldp.org/viewtopic.php?t=28936| === 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] == 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) }}} == ¿ë¾î == repository working file working directory (or area) checkout commit (checkin) RCS file modules revision tag branch "the trunk" HEAD / BASE merge conflict == ¹®¼­¸¦ ¸¸µé¸é¼­ == °³ÀÎÀûÀ¸·Î, ¸î ³â Àü CVS¸¦ óÀ½ ¹è¿ì¸é¼­ Á¦ÀÏ ¾î·Á¿ü´ø°Ô °£´ÜÇÑ ¼Ò°³ ¹®¼­´Â Çѱ۷ΠµÈ°Ô ÀÖ¾úÁö¸¸ Á¶±Ý¸¸ ´õ »ó¼¼ÇÑ °É ã¾Æº¸·Á¸é Á¦´ë·Î µÈ (¿µ¾îµç ÇѱÛÀ̵ç) HOWTO °°Àº°Ô ÀÖÁöµµ ¾Ê¾Ò°í, (Áö±Ýµµ ÀÖ´ÂÁö´Â ¸ð¸£°ÚÁö¸¸) Faq-O-Matic À¸·Î µÈ ¿µ¾î FAQ »çÀÌÆ®°¡ ·¹ÆÛ·±½º·Î ¾µ¸¸ÇÑ À¯ÀÏÇÑ °÷À̾ú½À´Ï´Ù. ±×·¡¼­ ±×¶§ºÎÅ͵µ óÀ½ ¿ÀǼҽº ¼¼»óÀ» Á¢ÇÏ´Â °³¹ßÀÚ¿¡°Ô CVS¶ó´Â À庮À» ¶Ù¾î ³Ñ´Âµ¥ º¸ÅÆÀÌ µÇ´Â ¹®¼­ °°Àº°Ô ²À ÇÊ¿äÇÏ´Ù°í ´À³¢°í ÀÖ¾ú½À´Ï´Ù. ±×µ¿¾È CVS¸¦ ´Ù·é Ã¥µµ Ãâ°£µÇ¾ú°í CVS ´ÙÀ½ ¼¼´ë°¡ µÉ¸¸ÇÑ ´Ù¸¥ ÇÁ·Î±×·¥µéµµ ³ª¿Ô°í Çؼ­ ÇÏ·Á°í¸¸ µç´Ù¸é »ó´ëÀûÀ¸·Î ÀÚ·á ã±â³ª ¹è¿ì±â°¡ ´õ ½¬¿öÁø ¸éµµ ºÐ¸í ÀÖ½À´Ï´Ù. ±×·¸Áö¸¸ º»·¡ ÁÁÀº HOWTO µéÀÌ ±×·¯ÇϵíÀÌ Ã³À½ ½ÃÀÛÇÏ´Â »ç¶÷ÀÌ µü ±× ¹®¼­ Çϳª¸¸ Âï¾î¼­ ¿·¿¡ µÎ°í ¼ÕÀ¸·Î ¤¾î°¡¸ç µû¶óÇϸé ÀÏ´Ü ''½ÃÀÛ'Àº ¾î¶»°Ôµç Çغ¼ ¼ö ÀÖ´Â ±ÛÀÌ ¾Æ½¬¿ü°í, ±Û ¼­µÎ¿¡ ¹àÇûµíÀÌ ÇöÀç Á¸ÀçÇÏ´Â Çѱ۷ΠµÈ CVS °ü·Ã ¹®¼­µéÀº ´ã°í ÀÖ´Â Á¤º¸°¡ °¡Áö´Â À¯¿ë¼º¿¡ ºñÇØ Áý¾àµµ(?)°¡ ¶³¾îÁö°í, »ç¿ëÀÚ¿¡°Ô ÇÊ¿äÇÑ ³»¿ë°ú °ü¸®ÀÚ¿¡°Ô ÇÊ¿äÇÑ ³»¿ëÀÌ Àß ±¸ºÐÀÌ µÇ¾î ÀÖÁö ¾Ê¾Æ °á°úÀûÀ¸·Î óÀ½ Á¢ÇÏ´Â »ç¶÷¿¡°Ô ¹®ÅÎÀ» ³·Ãß´Â ¿ªÇÒ¿¡ Ãæ½ÇÇÏÁö ¸øÇÑ ºÎºÐÀÌ ÀÖ´Ù°í »ý°¢ÇÕ´Ï´Ù. Àå±âÀûÀ¸·Î´Â ÀÌ·± °ÍµéÀ» ÇØ°áÇÒ ¼ö ÀÖ´Â ÁÁÀº ±ÛÀÌ ³ª¿Í¾ß ÇÏ°ÚÁö¸¸, ¾Æ½¬¿î ´ë·Î "KLDP¿¡ ÀÖ´Â ¹®¼­¸¦ º¸°í µû¶óÇÏ´Ù º¸´Ï ÀÌ·± ¹®Á¦¿¡¼­ °É¸®´Âµ¥ ¾î¶»°Ô ÇÏ¸é µÇ´Â °Å³Ä" ÇÏ´Â Áú¹®¿¡ ´ëÇÑ ´ä Á¤µµ¶óµµ »ý°¢³ª´Â ´ë·Î Á¤¸®ÇØ º¸ÀÚ ¶ó°í »ý°¢Çؼ­ ½ÃÀÛÇÏ°Ô µÆ½À´Ï´Ù. ¾ÕÀ¸·Îµµ »ý°¢³ª´Â ´ë·Î Ç׸ñµé Ãß°¡ÇØ ³ª°¡¸é¼­ Á¤¸®ÇØ ³ª°¥ »ý°¢ÀÔ´Ï´Ù. --[verotas] Thanks to [±Ç¼ø¼±], [ÂоÆ], [voxel], [IrIz], [Advanced] == °ü·Ã ÀÚ·á == * [http://www.gnu.org/manual/cvs/ The CVS Manual] °¡Àå Á¤¼®ÀûÀÎ ¸Å´º¾ó. ÀÌ ³»¿ë ±×´ë·Î ÀμâµÈ Ã¥µµ ÆÈ°í ÀÖÁÒ. ¹è°æÁö½Ä ¾øÀÌ Ã³À½ºÎÅÍ Àо°¡±â´Â Á¶±Ý ºÎ´ã½º·´±âµµ ÇÕ´Ï´Ù. ¿¬°áÀÌ ¾ÈµÇ¾î µé¾î°¡ º¸´Ï ´ÙÀ½ ¸µÅ©·Î ¹Ù²î¾î ÀÖ±º¿ä https://www.cvshome.org/docs/manual/ * [http://www.tldp.org/REF/CVS-BestPractices/html/ CVS Best Practices (TLDP)] CVS °ü·Ã (¿µ¹®) ¹®¼­ °¡¿îµ¥ °¡Àå ¾ÐÃàÀûÀ¸·Î Àß ¾´ ¹®¼­ ¾Æ´Ñ°¡ ½Í½À´Ï´Ù. Çѹø ÈȾ ºÁµµ CVS »ç¿ë¿¡ ´ëÇØ ÇÑ´Ü°è ¾÷±×·¹À̵åÇÒ ¼ö ÀÖ´Â ¹®¼­. Áß±ÞÀÚ¿ë ^^; * [http://cvsbook.red-bean.com The CVS Book] [[ISBN(1932111816)]] * HomePage¿¡¼­ html / pdf Çü½Ä ¿Â¶óÀÎ ¹®¼­¸¦ Á¦°øÇÕ´Ï´Ù. * 2003³â 8¿ù¿¡ 3ÆÇÀÌ ³ª¿Ô½À´Ï´Ù. * ƯÈ÷ tag / branch °¡ ¹¹°í ¾îµð¿¡ ¾î¶»°Ô ¾²´Â ¹°°ÇÀÎÁö ±Ã±ÝÇÑ ºÐµéÀº ÀÌ Ã¥À» Â÷±ÙÂ÷±Ù Àо¼¼¿ä. * ÀÚ¸ÅÇ° :-) [http://svnbook.red-bean.com The Subversion Book], Çѱ۹ø¿ª¹®¼­ [wiki:Subversion_Book]µµ ÀÖ½À´Ï´Ù. 2003³â ÇϹݱ⿡ Ãâ°£µÉ ¿¹Á¤À̶ó´Â±º¿ä. * Çѱ۷ΠµÈ ´Ù¸¥ ¹®¼­ ([hey]´Ô À§Å°¿¡¼­) * [http://doc.kldp.org/KoreanDoc//html/CVS-KLDP/ CVS À̾߱â(KLDP)] * [http://doc.kldp.org/KoreanDoc//html/CVS_Tutorial-KLDP/ CVS »ç¿ë(KLDP)] * [http://network.hanbitbook.co.kr/view.php?bi_id=281 CVS ¼Ò°³] * [http://network.hanbitbook.co.kr/view.php?bi_id=282 CVS °ü¸®] * [http://network.hanbitbook.co.kr/view.php?bi_id=470 CVS¿¡¼­ À¯¿ëÇÏ°Ô »ç¿ëµÇ´Â º¯È­ ÃßÀû(Change-tracking)] * [http://database.sarang.net/study/cvs/cvs-han/cvs-guide.html CVS User Guide] * [http://realtime.ssu.ac.kr/wiki/HowToUseCvs HowToUseCvs] * cvs ¼­¹ö ¼¼ÆÃÇϱâ : http://people.kldp.org/~eunjea/hcol-archive/2002/apps/2002-Feb/0013.html * °ü·Ã ¸µÅ© * [http://www.cvshome.org/ CVS HomePage] * [http://www.loria.fr/~molli/fom-serve/cache/1.html CVS FAQ-O-Matic] * [http://tnerual.eriogerg.free.fr/cvsqrc.pdf CVS Quick Reference Card (PDF)] ---- CategorySoftwareTool