ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : docbook>cvs_user_manual
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<article lang="ko">
<!-- -->
<!-- ¹®¼ Á¤º¸ -->
<!-- -->
<articleinfo>
<title>cvs ¸¦ ÀÌ¿ëÇÑ ÇÁ·ÎÁ§Æ® °ü¸®</title>
<author>
<surname>À± »ó¹è</surname>
<affiliation>
<address>
<email>dreamyun@yahoo.co.kr</email>
</address>
</affiliation>
</author>
<revhistory>
<revision>
<revnumber>0.9</revnumber>
<date>2003³â 10¿ù 20ÀÏ 21½Ã</date>
<revremark>
À͸í CVS ¼³Á¤ Ãß°¡,
diff°ü·Ã ¿É¼Ç ¼³¸í Ãß°¡
</revremark>
</revision>
<revision>
<revnumber>0.8</revnumber>
<date>2003³â 8¿ù 11ÀÏ 23½Ã</date>
<revremark>ÃÖÃÊ ¹®¼ ÀÛ¼º</revremark>
</revision>
</revhistory>
</articleinfo>
<!-- -->
<!-- ¼½¼Ç ½ÃÀÛ -->
<!-- -->
<section>
<title>CVS¿¡ ´ëÇÑ ¼Ò°³</title>
<para>
°ú°Å´Â ÄÄÇ»ÅÍ ½Ã½ºÅÛÀÇ ´É·ÂÀÌ ¸Å¿ì Á¦ÇÑÀûÀÌ¿´°í »ç¿ëÇÏ´Â À¯Àú
¿ª½Ã Á¦ÇÑÀûÀ̰ųª Áö±ØÈ÷ °³ÀÎÀûÀÎ ¿ëµµ·Î »ç¿ëÇÏ´Â °æ¿ì°¡ ´ëºÎºÐ
ÀÌ¿´´Ù. ¶§¹®¿¡ ¼ÒÇÁÆ®¿þ¾î¿ª½Ã ºñ±³Àû ´Ü¼øÇßÀ¸¸ç ´ÜÁö ÇѵθíÀÇ
°³¹ßÀÚ ÅõÀÔ¸¸À¸·Îµµ ²Ï³ª ¾µ¸¸ÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¸¸µé¾îÁö±âµµ Çß´Ù.
</para>
<para>
µµ½º ½ÃÀýºÎÅÍ ÄÄÇ»Å͸¦ ´Ù·ç¾î¿Ô´ø À¯Àú¶ó¸é "´©±¸´©±¸ÀÇ ¾î¶² ÇÁ·Î±×·¥"
À̶ó´Â ¾ê±â¸¦ ¸¹ÀÌ µé¾î º¸¾ÒÀ» °ÍÀÌ´Ù. Áö±ÝÀº »çÁ¤ÀÌ ´Þ¶óÁ®¼
¾ÆÁÖ °£´ÜÇÑ ÇÁ·Î±×·¥ÀÌ ¾Æ´Ï°í¼´Â È¥ÀÚ °³¹ßÇØ¼ ±×·°Àú·° ÀÎÁöµµ
ÀÖ´Â ÇÁ·Î±×·¥À» ¸¸µç´Ù´Â°Í ÀÚü°¡ ¸Å¿ì Èûµé¾îÁ³´Ù.
</para>
<para>
¿äÁòÀº UI¸¸ Á¦ÀÛÇÏ´Â °Íµµ ÇϳªÀÇ ÀÛ¾÷À¸·Î ºÐ·ùµÈ´Ù. ÀÎÅͳÝÀÌ ÀϹÝÀûÀ¸·Î
º¸±ÞµÇ¸é¼ ´ëºÎºÐÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀº C/Sȯ°æÇÏ¿¡¼ ÀÛµ¿ÇÏ°Ô µÈ´Ù.
°³¹ßÀÚ´Â µ¥ÀÌÅÍÀü¼Û°ú 󸮿¡ ´ëÇÑ ºÎºÐ±îÁö ½Å°æ½á¾ß ÇÏ¸ç ¸¹Àº °æ¿ì
¼¹ö¿Í Ŭ¶óÀÌ¾ðÆ®°¡ ¼·Î ´Ù¸¥ ¿î¿µÃ¼Á¦ÇÏ¿¡ ³õÀ̸ç, ƯÈ÷ ¼¹ö ÇÁ·Î±×·¥ÀÇ
°æ¿ì ¿©·¯°¡ÁöÀÇ ÀüÇô ´Þ¶óº¸ÀÌ´Â ¿î¿µÃ¼Á¦¸¦ Áö¿øÇؾßÇÏ´Â °æ¿ìµµ ÀÖ´Ù.
</para>
<para>
ÀÌ·± ÀÌÀ¯·Î
¿Ø¸¸ÇÑ ±Ô¸ðÀÇ ÇÁ·ÎÁ§Æ®¶ó ÇÒÁö¶óµµ È¥ÀÚ¼ °³¹ßÀ» ÁøÇàÇѴٴ°Ç
¸Å¿ì Èûµé¸ç, ´ëºÎºÐ ÆÀ´ÜÀ§·Î ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÀ» ÇÏ°Ô µÈ´Ù.
ÀÌ ÆÀÀ̶õ°Ç ¶Ç ¾î¶²°¡ °°Àº »ç¹«½Ç¿¡¼ °°Àº ½Ã°£¿¡ Á¸ÀçÇϸé¼
¼·Î Àǰ߱³È¯À» ÅëÇØ¼ ÇÁ·ÎÁ§Æ®¸¦ ÁøÇà ½Ãų ¼öµµ ÀÖÁö¸¸ ÀÎÅͳÝÀ̶ó´Â
¸Åü¸¦ ÅëÇØ¼ ÀüÇô ´Ù¸¥ °ø°£¿¡¼ ÀüÇô ´Ù¸¥ ½Ã°£´ë¿¡ ÇÁ·ÎÁ§Æ®¸¦
ÁøÇà ½ÃÄÑ¾ß ÇÏ´Â °æ¿ìµµ »ý±ä´Ù. Àü ¼¼°èÀÎÀÌ Âü¿©ÇÏ´Â ¸¹Àº
¿ÀÇ ÇÁ·ÎÁ§Æ®°¡ ±×·¯ÇÏ´Ù.
</para>
<para>
ÀÌ·± °æ¿ì ÇϳªÀÇ ¼Ò½ºÄڵ带 ÇѸí ÀÌ»óÀÌ Á¢±ÙÇØ¼ ¼öÁ¤ÇÒ ¼ö Àִµ¥,
ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇÏ´Ù º¸¸é ¼Ò½ºÄڵ尡 ¾û¶×ÇÏ°Ô ²¿ÀÏ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
°°Àº »ç¹«½Ç¿¡¼ ´ÜÁö ¸î¸íÀÇ ÇÁ·Î±×·¡¸Ó°¡ ÀÛ¾÷À» ÇÑ´Ù¸é,
¼·Î ÀǰßÁ¶À²À» Çϰųª óÀ½ºÎÅÍ °¢°¢ÀÇ ¸ðµâ¸¸ ´ã´çÇÏ°Ô ¸¸µé¾î¼
¾î´ÀÁ¤µµ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖÀ» °Å¶ó°í »ý°¢ÇÒ ¼öµµ ÀÖÀ» °ÍÀÌ´Ù.
±×·¯³ª ¸·»ó ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇØº¸¸é ÀÌ°Ô °áÄÚ ¸»Ã³·³ ½¬¿îÀÏÀÌ
¾Æ´Ï¶õ°É ¾Ë°Ô µÉ°ÍÀÌ´Ù. ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇÏ´Ù º¸¸é ÀÌÂÊ ½Ã½ºÅÛ¿¡¼
Å×½ºÆ®Çϰí, ÀúÂÊ ½Ã½ºÅÛ¿¡¼ Å×½ºÆ®ÇÏ°í ¹®Á¦°¡ »ý±â¸é Áï°¢
¼öÁ¤À» ÇÏ°Ô µÇ´Âµ¥, ÀÌ·¯´Ùº¸¸é ¼Ò½ºÄڵ尡 ¿©±âÀú±â À§Ä¡ÇϰÔ
µÇ°í °á±¹ ¾î´À ¼Ò½º°¡ ÃÖ±Ù ¼Ò½ºÄÚµåÀÎÁö Çò°¥¸®´Â »çŰ¡
¹ß»ýÇÏ°Ô µÈ´Ù. ÇϹ°¸ç ¿ÀǼҽº¿Í °°ÀÌ ¼ö¸¹Àº ÇÁ·Î±×·¡¸Ó°¡ ´À½¼ÇϰÔ
¹¿©ÀÖ´Â °æ¿ì´Â ´õ ¸»ÇÒ Çʿ䵵 ¾ø´Ù. Àû´çÇÑ ¹öÁ¯°ü¸® µµ±¸ÀÇ
»ç¿ë¾øÀÌ´Â ÇÁ·ÎÁ§Æ®ÀÇ ÁøÇàÀÚü°¡ ºÒ°¡´ÉÇØÁú °ÍÀÌ´Ù.
</para>
<para>
ÀÌ·¯ÇÑ ¹®Á¦ÀÇ ÇØ°áÀ» À§Çؼ ¿©·¯µµ±¸°¡ °³¹ßµÇ¾ú´Âµ¥, ±×Áß Çϳª°¡ CVS·Î
ÇöÀç °¡Àå ³Î¸® »ç¿ëµÇ°í ÀÖ´Â ¹öÁ¯°ü¸® µµ±¸ÀÌ´Ù.
</para>
</section>
<section>
<title>CVS¿¡ ´ëÇÑ ±âº»Áö½Ä</title>
<section>
<title>CVS ¶õ?</title>
<para>
CVS´Â Concurrent Version System ÀÇ ÁÙÀÓ¸»·Î½á Á÷¿ª ÇÏÀÚ¸é
°øµ¿ ¹öÁ¯ ½Ã½ºÅÛ, ÀÇ¿ªÇÏÀÚ¸é "°øµ¿À¸·Î ÁøÇàÇÏ´Â ÇÁ·ÎÁ§Æ®ÀÇ
¹öÁ¯ °ü¸® ½Ã½ºÅÛ" Á¤µµ°¡ µÉ°ÍÀÌ´Ù.
</para>
</section>
<section>
<title>¾î¶³¶§ CVS°¡ ÇÊ¿äÇÏÁÒ?</title>
<para>
CVS´Â »ç¿ëÇϱ⿡ µû¶ó¼ ¿©·¯°¡Áö ¿ëµµ·Î »ç¿ëÇÒ¼ö ÀÖ´Ù.
À̹øÀå¿¡¼´Â CVS¸¦ ÀÌ¿ëÇÒ¼ö ÀÖ´Â ´Ù¾çÇÑ »óȲµé¿¡ ´ëÇØ¼
¾Ë¾Æº¸µµ·Ï ÇϰڴÙ.
</para>
<section>
<title>°øµ¿ ÇÁ·ÎÁ§Æ® °ü¸®</title>
<para>
ȸ»çȤÀº Çб³¿¡¼ ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇÏ´Ùº¸¸é, ¿©·¯¸íÀ̼
ÇϳªÀÇ ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇÏ´Â °æ¿ì°¡ ¹ß»ýÇÒ°ÍÀÌ´Ù.
</para>
<para>
ÀÌ·²°æ¿ì º¸Åë ¸ðµâº°·Î °³¹ßÀ» ÇÏ°Ô µÇ°ÚÁö¸¸, ¶ÇÇÑ ¸ðµâÀº
Àüü ÇÁ·ÎÁ§Æ®¿¡ ¿µÇâÀ» ¹ÌÄ¡°Ô µÇ¹Ç·Î, ÀÚ½ÅÀÇ ¸ðµâ¹öÁ¯°ú
Àüü ÇÁ·ÎÁ§Æ®ÀÇ ¹öÁ¯À» ÄÁÆ®·ÑÇÒ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ±×¸®°í
Äڵ尡 Ãæµ¿ÇÏ°Ô µÉ°æ¿ì(¼·Î °°Àº ºÎºÐÀ» ¼öÁ¤ÇÔÀ¸·Î½á)ÀÇ
¹®Á¦¸¦ ÇØ°áÇÒ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
</para>
<para>
ÀÌ·¯ÇÑ ÀÛ¾÷Àº ÇÁ·ÎÁ§Æ® ±Ô¸ð°¡ ÀÛ°í °³¹ß Âü¿©ÀÚ ¼ö°¡ Àû°í,
°³¹ß Âü¿©ÀÚ°¡ °¡±î¿î Áö¿ª(»ç¹«½Ç °°Àº)¿¡ ¸ðµÎ ¸ð¿©ÀÖ´Ù¸é,
ÇѸíÀÇ ¹öÁ¯°ü¸®ÀÚ(º¸ÅëÀº ÆÀÀå)¸¦ µÎ°í ±×·°Àú·° °ü¸®°¡
°¡´ÉÇÒ°ÍÀÌ´Ù.
</para>
<para>
±×·¯³ª Á¶±Ý¸¸ ÇÁ·ÎÁ§Æ®°¡ Ä¿Áö°í, °³¹ßÂü¿©ÀÚ ¼ö°¡ ¸¹¾ÆÁö°í
°³¹ßÀÚ°¡ Áö¿ªÀûÀ¸·Î ¶³¾îÁ® ÀÖ´Â »óȲ¿¡¼´Â °ÅÀÇ ºÒ°¡´É ÇÏ´Ù´Â
°É ¾Ë¼ö ÀÖ°Ô µÉ°ÍÀÌ´Ù. ƯÈ÷ ÀÎÅͳÝÀ» ÅëÇØ¼ ´À½¼ÇÏ°Ô ¿¬°áµÈ
¿ÀÇ ÇÁ·ÎÁ§Æ®ÀÇ °æ¿ì µµ±¸¸¦ »ç¿ëÇÏÁö ¾Ê´Â ´Ù¸é °ÅÀÇ °ü¸®°¡
ºÒ°¡´É ÇÒ °ÍÀÌ´Ù.
</para>
<para>
CVS ¸¦ »ç¿ëÇϸé
ÀÌ·¯ÇÑ ´ë±ÔÄÚÀÇ ÇÁ·ÎÁ§Æ®¿¡¼ °¢ ¸ðµâ °³¹ßÀÚ°¡ ÀÚ½ÅÀÇ
¹öÁ¯À» À¯ÁöÇÏ¸é¼ Àüü ÇÁ·ÎÁ§Æ®¿¡ Âü¿©ÇÒ¼ö ÀÖµµ·Ï ÇÒ¼ö ÀÖ´Ù.
</para>
<para>
½ÇÁ¦·Î KDE, GNOME, APACHE ¼¹ö µî ´Ù¾çÇÑ ÇÁ·ÎÁ§Æ®°¡ CVS ¸¦
ÀÌ¿ëÇØ¼ ÇÁ·ÎÁ§Æ®¸¦ °ü¸®Çϰí ÀÖ´Ù. ÀÌ·¯ÇÑ ÇÁ·ÎÁ§Æ®´Â
±Ô¸ð°¡ À۾Ƶµ ¼ö½Ê¸í, ȤÀº ¼ö¹é¸íÀÌ ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇϰÔ
µÇ´Âµ¥(°Ô´Ù°¡ Áö¿ªÀûÀ¸·Î ¸Ö¸® ¶³¾îÁ® ÀÖ´Ù), CVS°¡ Áß°£¿¡¼
ÇÁ·ÎÁ§Æ®°¡ »êÀ¸·Î °¡Áö ¾Êµµ·Ï Áß°èÇØÁØ´Ù. ¿ÀÇ ÇÁ·ÎÁ§Æ®¸¦
Çϴµ¥ ÀÖ¾î¼ CVS´Â °ÅÀÇ Ç¥ÁØÀûÀ¸·Î »ç¿ëµÇ´Â ¹öÁ¯°ü¸®
µµ±¸ÀÌ´Ù.
</para>
</section>
<section>
<title>ÇÁ·ÎÁ§Æ® ¹é¾÷</title>
<para>
CVS ¸¦ »ç¿ëÇÒ°æ¿ì ÀÚµ¿ÀûÀ¸·Î ÇÁ·ÎÁ§Æ® ¹é¾÷ÀÇ ¹®Á¦±îÁö
ÇØ°áÀÌ °¡´ÉÇÏ´Ù. CVS ´Â Áß°£¿¡ CVS ¼¹ö°¡ ÀÖ¾î¼,
ÇÁ·ÎÁ§Æ® µ¥ÀÌÅÍÀÇ ÀúÀå¼Ò ¿ªÇÒÀ»ÇÏ¸ç ¸ðµç °³¹ßÀÚ´Â CVS ¼¹ö¿¡¼
ÃÖ½ÅÀÇ ÇÁ·ÎÁ§Æ®¸¦ ´Ù¿î·Îµå ¹Þ¾Æ¼, ÀÚ½ÅÀÇ ÄÄÇ»ÅÍ¿¡¼
Å×½ºÆ®Çϰí ÄÚµùÇØ¼, ÀÌ°É ´Ù½Ã CVS ¼¹ö¿¡ ¾÷µ¥ÀÌÆ® ½ÃŰ´Â
¹æ½ÄÀ» »ç¿ëÇÏ°Ô µÈ´Ù.
</para>
<para>
±×·¯¹Ç·Î ½Ç¼ö·Î ÀÚ½ÅÀÇ ÇÁ·ÎÁ§Æ® µ¥ÀÌÅͰ¡ ³¯¾Æ°£´Ù°í ÇØµµ
ÀüÇô ¿°·ÁÇÒ Çʿ䰡 ¾ø´Ù. ±×³É ¼¹ö¿¡¼ ´Ù½Ã ´Ù¿î ¹Þ±â¸¸
ÇÏ¸é µÈ´Ù.
ÃÖ¾ÇÀÇ °æ¿ì CVS ¼¹ö°¡ ³¯¶ó°¬´Ù°í ÇÏ´õ¶óµµ °¡Àå ÃÖ±ÙÀÇ
½î¾²¸¦ °¡Áø °³¹ßÀÚ°¡ ÀÖÀ» °ÍÀ̹ǷΠ½±°Ô º¹±¸ °¡´ÉÇÏ´Ù.
</para>
<para>
¶ÇÇÑ CVS´Â ÃֽйöÁ¯ÀÇ ¼Ò½ºÄÚµå »Ó¸¸ ¾Æ´Ï¶ó °ú°Å ¹öÁ¯ÀÇ
¼Ò½ºÄڵ忡 ´ëÇÑ Á¤º¸¸¦ °¡Áö°í ÀÖ¾î¼ ÃÖ±ÙÀÇ ¸î°³ ¹öÁ¯¿¡
¹®Á¦°¡ »ý°å´Ù°í ÇÏ´õ¶óµµ ½±°Ô ±×ÀÌÀüÀÇ ¼Ò½ºÄڵ带 ¾ò¾î¿Ã
¼ö ÀÖ´Ù.
</para>
</section>
<section>
<title>µ¥ÀÌÅÍ µ¿±âÈ</title>
<para>
¿äÁòÀº ȸ»ç¿Í Áý°úÀÇ °æ°è°¡ ¸¹ÀÌ Çã¹°¾î Á³´Ù.
(ÁÁÀº Çö»óÀÎÁö ³ª»Û Çö»óÀÎÁö´Â Á» »ý°¢ÇØ ºÁ¾ß°ÚÁö¸¸)
±×·¯´Ù º¸´Ï ȸ»ç¿¡¼ ÇÏ´ÂÀÏÀ» °¡Á¤¿¡¼ Çϱ⵵ Çϰí, °¡Á¤¿¡¼
Çß´ø ÀÏÀ» ȸ»ç·Î °¡Á®°¡±âµµ ÇÑ´Ù. ±×·²°æ¿ì ȸ»çÀÇ ÄÄÅÍ¿Í
°¡Á¤ÀÇ ÄÄÅÍ¿¡ ÀÖ´Â µ¥ÀÌŸÀÇ µ¿±âȰ¡ ÇʼöÀûÀÌ´Ù. ÀÌ·± µ¥ÀÌŸ
µ¿±âȸ¦ À§Çؼ "³ëÆ®ºÏ", "PDA" °°Àº°É »ç¿ëÇÒ¼ö ÀÖ°ÚÁö¸¸, À̰Ç
³Ê¹« ºñ½Î´Ù. ftp µµ »ç¿ëÇÒ¼ö ÀÖ°ÚÁö¸¸, À̰ŠÀ߸ø »ç¿ëÇϸé
µ¥ÀÌÅͰ¡ ²¿Àϼö ÀÖ´Ù. ¶ÇÇÑ »ó´çÈ÷ ºÒÆíÇÏ´Ù.
</para>
<para>
ÀÌ·²¶§ CVS ¸¦ »ç¿ëÇÏ¸é ´ë´ÜÈ÷ ÆíÇÏ°Ô ÀÛ¾÷ÀÌ °¡´ÉÇÏ´Ù.
ȸ»ç¿¡¼ ÀÛ¾÷À» ¸¶Ä¡°í CVS ¼¹ö¿¡ µî·ÏÇϰí, °¡Á¤À¸·Î µ¹¾Æ°¡¼
CVS ¼¹ö¿¡ µî·ÏµÈ ÃÖ½ÅÀÇ ÀÛ¾÷À» ¹Þ¾Æ¿Í¼ ÀÛ¾÷À» Çϰí
´Ù½Ã CVS ¼¹ö¿¡ µî·Ï¸¸ ÇÏ¸é µÇ±â ¶§¹®ÀÌ´Ù.
(¹°·Ð ÀÌ¿ÕÀÌ¸é °¡Á¤¿¡±îÁö ȸ»çÀÏÀ» °¡Áö°í °¡Áö ¾ÊÀ¸¸é
ÁÁ°ÚÁö¸¸..)
</para>
<para>
¶ÇÇÑ ´ýÀ¸·Î ÀÚ½ÅÀÇ Áß¿äÇÑ ÀÚ·á±îÁö ÀÚµ¿À¸·Î ¹é¾÷µÈ´Ù.
</para>
<para>
ÇÊÀÚ ¿ª½Ã ÀÌ·¯ÇÑ ¹æ¹ýÀ¸·Î ÀÛ¾÷À» ÇÑ´Ù. ÀÛ¾÷°Å¸®°¡ Á» ³²¾Ò´Âµ¥,
ȸ»ç¿¡¼´Â ÀÏÀÌ À߾ȵǰí(½ÇÀº ÀÏÇϱ⠽ȾÚÁö¸¸ --;),
±×³É Áý¿¡°¡¼ ´À±ßÇÏ°Ô TVµµ º¸°í, ¿ôÅë ¹þ¾î´øÁö°í ÀÏÇϰí
½ÍÀ»¶§ ¸Å¿ì ÆíÇÏ°Ô CVS¸¦ ÀÌ¿ëÇÒ¼ö ÀÖ´Ù.
</para>
</section>
</section>
</section>
<section>
<title>CVS »ç¿ëÇϱâ</title>
<section>
<title>CVS ¼¹ö ¼³Ä¡Çϱâ</title>
<para>
Áö±Ý ±îÁö CVS¿¡ ´ëÇÑ °³·ÐÀûÀÎ ¼³¸íÀ» ¾Ë¾Æ º¸¾Ò´Ù. ÀÌÁ¦ º»°ÝÀûÀ¸·Î
CVS¸¦ ¼³Ä¡ÇÏ°í ¿î¿ëÇÏ°í »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸µµ·Ï ÇϰڴÙ.
CVS ¼¹ö ¼³Ä¡´Â redhat 8.x ¸®´ª½º¸¦ ±âÁØÀ¸·Î ÇϰڴÙ.
´ëºÎºÐÀÇ redhat ¸®´ª½º ¹èÆ÷ÆÇÀº cvs ¸¦ ±âº»ÀûÀ¸·Î Æ÷ÇÔÇϰí ÀÖ´Ù.
rpm ÆÐŰÁö °ü¸®ÀÚ¸¦ ÅëÇØ¼ ¼³Ä¡ÇÏÀÚ.
</para>
<para>
ÀÌÁ¦ Internet services daemon ¿¡ cvs ¼¹ö¸¦ µî·Ï ½ÃÄÑÁֱ⸸ Çϸé
µÈ´Ù. ·¹µåÇò 7.x ¹öÁ¯ºÎÅÍ´Â inetd ´ë½Å¿¡ xinetd °¡ Internet services
daemon À¸·Î »ç¿ëµÇ¾î Áö°í ÀÖ´Ù. /etc/xinetd.d µð·ºÅ丮 ¹Ø¿¡
cvspserver À̶õ À̸§À¸·Î ¼ºñ½º ¼³Á¤ÆÄÀÏÀ» ¸¸µéµµ·Ï ÇÏÀÚ.
³»¿ëÀº ´ÙÀ½°ú °°´Ù.
<screen>
service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/bin/cvs
server_args = --allow-root=/home/cvs pserver
log_on_failure += USERID
}
</screen>
¸¸¾à inetd¸¦ »ç¿ëÇÏ´Â ¿¹Àü ¹öÁ¯ÀÇ ¸®´ª½º¶ó¸é ¾Æ·¡¿Í°°ÀÌ
¼³Á¤Çϵµ·Ï ÇÑ´Ù.
<screen>
# echo "2401 stream tcp nowait root /usr/bin/cvs cvs -f \
--allow-root=/cvsroot pserver" >> /etc/inetd.conf
</screen>
</para>
<para>
À§ÀÇ ¼³Á¤°ªµéÁß --allow-root¸¦ ÁÖ¸ñÇϱ⠹ٶõ´Ù. ÇÁ·ÎÁ§Æ®°¡
¼¹ö¿¡ ÀúÀåµÈ´Ù¸é ´ç¿¬È÷ À̵é ÇÁ·ÎÁ§Æ®°¡ ¼¹öÀÇ ¾îµð µð·ºÅ丮·Î
ÀúÀåµÇ¾î¾ß ÇÏ´ÂÁö ÁöÁ¤ÇÒ ¼ö ÀÖ¾î¾ß ÇÒ°ÍÀÌ´Ù. cvs¿¡¼´Â
À̸¦ repository(ÀÌÇÏ ÀúÀå¼Ò)¶ó°í ÇÑ´Ù. --allow-root´Â
cvs ÀúÀå¼Ò°¡ /home/cvsÀÓÀ» ¸í½ÃÇØ ÁÖ±â À§Çؼ »ç¿ëµÈ´Ù.
¸¸¾à »õ·Î¿î ÇÁ·ÎÁ§Æ®ÀÎ hello_world¸¦ ¸¸µé¾ú´Ù¸é
ÀÌ ÇÁ·ÎÁ§Æ®´Â /home/cvs/hello_world µð·ºÅ丮¿¡ ÀúÀåÀÌ µÈ´Ù.
</para>
<para>
ÀÌÁ¦ xinetd µ¥¸ó(ȤÀº inetdµ¥¸ó)À» ´Ù½Ã ½ÇÇà ½Ã۸é
cvs ¼¹ö°¡ ÀÛµ¿ÇÏ°Ô µÉ°ÍÀÌ´Ù.
cvs ¼ºñ½º´Â 2401 Æ÷Æ®¸¦ ÀÌ¿ëÇØ¼ ¼ºñ½º µÈ´Ù(/etc/services ÂüÁ¶).
Á¦´ë·Î cvs ¼ºñ½º°¡ µÇ°í ÀÖ´ÂÁö ¾Ë¾Æº¸±â À§Çؼ Æ÷Æ® ½ºÄ³´× µµ±¸ÀÎ
nmap À» »ç¿ëÇØ¼ È®ÀÎÇØ º¸µµ·Ï ÇÏÀÚ.
<screen>
[root@cvs xinetd.d]# nmap 192.168.0.4
Starting nmap V. 2.54BETA7 ( www.insecure.org/nmap/ )
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1527 ports scanned but not shown below are in state: closed)
Port State Service
22/tcp open ssh
25/tcp open smtp
80/tcp open http
111/tcp open sunrpc
2401/tcp open cvspserver
3306/tcp open mysql
</screen>
2401 ¹ø Æ÷Æ®·Î cvspserver °¡ ¼ºñ½º µÇ°í ÀÖÀ½À» ¾Ë¼ö ÀÖ´Ù.
À̷νá cvs ¼¹öÀÇ ¼³Ä¡¹× °¡µ¿À» ¸¶ÃÆ´Ù.
</para>
<para>
´Ù¸¥ ¹èÆ÷ÆÇÀ» »ç¿ëÇÏ´õ¶óµµ ¼³Ä¡»ó¿¡ ÀÖ¾î¼ ¹®Á¦Á¡Àº ¾øÀ»°ÍÀÌ´Ù.
µ¥ºñ¾È À̶ó¸é Àü¿ë ÆÐŰÁö°ü¸®ÀÚ¸¦ ÀÌ¿ëÇØ¼ ¼³Ä¡ÇÏ¸é µÈ´Ù.
ÆÐŰÁö ¼³Ä¡°¡ ¿©ÀÇÄ¡ ¾Ê´Ù¸é ½î¾²¸¦ Á÷Á¢ ÄÄÆÄÀÏ ÇØ¼ ¼³Ä¡
ÇÏ¸é µÈ´Ù.
</para>
<para>
cvs ´Â cvspserver ¸¦ ÀÌ¿ëÇÑ ¼ºñ½º ¿Ü¿¡µµ rsh, ssh ¸¦ ÀÌ¿ëÇÑ
¼ºñ½ºµµ °¡´ÉÇÏ´Ù. ÀÌ¿¡ ´ëÇÑ ³»¿ëÀº <ulink url=http://kldp.org/KoreanDoc/html/CVS_Tutorial-KLDP>CVS »ç¿ë</ulink> ¹®¼¸¦ Âü°í Çϱ⠹ٶõ´Ù.
À̹®¼¿¡¼´Â °¡Àå ³Î¸® »ç¿ëµÇ´Â cvspserver ¹æ½Ä¿¡ ´ëÇØ¼¸¸ ¼³¸íÇϰí ÀÖ´Ù.
</para>
<section>
<title>CVSÀúÀå¼Ò ¸¸µé±â</title>
<para>
À§ÀÇ ¼³Á¤¿¡¼ ¿ì¸®´Â /home/cvs¸¦ ÇÁ·ÎÁ§Æ®µéÀ» À§ÇÑ ÀúÀå¼Ò·Î
»ç¿ëÇÑ´Ù°í Çߴµ¥, ÀúÀå¼Ò·Î »ç¿ëÇϱâ Àü¿¡ ÀúÀå¼Ò Å͸¦ ´ÙÁö±â
À§ÇÑ »çÀüÀÛ¾÷ÀÌ ÇÊ¿äÇÏ´Ù.
</para>
<para>
ÀÌ·¯ÇÑ ÀÛ¾÷Àº cvs¿¡¼ Á¦°øÇÏ´Â init¿É¼ÇÀ» ÅëÇØ¼ °¡´ÉÇÏ´Ù.
<screen>
# cvs -d /home/cvs init
</screen>
-d¸¦ ÀÌ¿ëÇØ¼ ÀúÀå¼Ò·Î »ç¿ëµÉ µð·ºÅ丮¸¦ ÁöÁ¤Çϰí
init¸¦ ¸í½ÃÇÏ´Â Á¤µµ·Î ¾î·ÆÀÝ°Ô ÀúÀå¼Ò¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Ù.
</para>
</section>
<section>
<title>CVS À¯Àú ȯ°æ ¼³Á¤</title>
<para>
CVS ¿¡ ¼¹ö¸¦ ¸¸µé¾î ³õ¾ÒÀ¸¸é ÀÌÁ¦ CVS ÀÚ¿øÀ» »ç¿ëÇϵµ·Ï
ȯ°æ¼³Á¤À» ÇØÁÖ¾î¾ß ÇÑ´Ù. °¡Àå Áß¿äÇÑ °Ç °øµ¿À¸·Î ÀÛ¾÷ÇÒ
ÇÁ·ÎÁ§Æ® ÆÄÀϵéÀÌ ÀúÀåµÉ CVS ÀúÀå µð·ºÅ丮(ÀúÀå¼Ò)¸¦ ¼³Á¤ÇÏ´Â ÀÏÀÌ´Ù.
</para>
<para>
ÀÏ´Ü ¿ì¸®´Â À§ÀÇ /etc/xinetd.d/cvspserver ¸¦ ¼³Á¤Çϸé¼
cvs µ¥¸óÀÌ ¶ß°ÔµÉ°æ¿ì --allow-root ¿É¼ÇÀ» ÀÌ¿ëÇØ¼ /home/cvs
¸¦ Ȩµð·ºÅ丮(ÇÁ·ÎÁ§Æ®°¡ ÀúÀåµÉ µð·ºÅ丮)¸¦ ÁöÁ¤Çß´Ù. ÀÌÁ¦
/home/cvs ¸¦ ½ÇÁ¦ ÇÁ·ÎÁ§Æ® »ç¿ëÀÚµéÀÌ »ç¿ëÇÒ¼ö ÀÖµµ·Ï ±ÇÇÑ ¼³Á¤À»
ÇØÁÖ¾î¾ß ÇÑ´Ù.
</para>
<para>
cvs ÀÇ ±ÇÇÑ ¼³Á¤À» À§Çؼ cvs ¶õ ±×·ìÀ» ¸¸µéµµ·Ï Çϰí /home/cvs
µð·ºÅ丮¿¡ cvs ±×·ì¿¡ ´ëÇØ¼ Àбâ/¾²±â/½ÇÇà ±ÇÇÑÀ» ºÎ¿©Çϵµ·Ï
ÇÏÀÚ.
<screen>
# groupadd cvs
# mkdir cvs
# chmod 770 cvs
</screen>
ÀÌÁ¦ cvs ±×·ì¿¡ Æ÷ÇÔµÈ ¸ðµç »ç¿ëÀÚ´Â CVS ÀÚ¿øÀ» ÀÌ¿ëÇÒ¼ö ÀÖ´Â
±ÇÇÑÀ» °¡Áö°Ô µÇ¸ç, ÀÌÈķδ ÇÁ·ÎÁ§Æ®¸¦ µî·Ï½ÃÄѼ °øµ¿ÀÛ¾÷¿¡
CVS ¸¦ ÀÌ¿ëÇϱ⸸ ÇÏ¸é µÈ´Ù.
</para>
</section>
<section>
<title>CVS »ç¿ëÇϱâ</title>
<para>
ÀÌÁ¦ CVS ¼¹öÀÇ ¼³Á¤ÀÌ ³¡³µÀ½À¸·Î, Ŭ¶óÀ̾ðÆ®ÀÇ ÀÔÀå¿¡¼
¾î¶»°Ô ÇÁ·ÎÁ§Æ®¸¦ µî·ÏÇÏ°í °øµ¿À¸·Î ÀÛ¾÷À» ÁøÇà½Ãų¼ö ÀÖ´ÂÁö¿¡
´ëÇØ¼ ¾Ë¾Æº¸µµ·Ï ÇϰڴÙ. ÀÌ·¯ÇÑ ÀÛ¾÷µéÀº Ŭ¶óÀÌ¾ðÆ®¿¡°Ô Á¦°øµÇ´Â
"cvs" ¶ó´Â ÇÁ·Î±×·¥À» ÅëÇØ¼ ÀÌ·ç¾îÁø´Ù.
</para>
<para>
CVS ÀÇ »ç¿ë¹æ¹ýÀº ´ÙÀ½°ú °°Àº ȯ°æÇÏ¿¡¼ Å×½ºÆ®µÇ¾ú´Ù.
<screen>
+------------+
| @cvs | project : hello_world
| CVS SERVER |
+------------+
|
|
+------------+------------+
| |
+---------+ +---------+
| @myhome | | @one |
+---------+ +---------+
</screen>
@cvs ´Â CVS ÀúÀå¼Ò¸¦ °¡Áö°í ÀÖ´Â ¼¹öÀ̸ç,
@myhome Àº "ÆÀ¿ø" @one ´Â "ÆÀÀå" ÀÇ °³¹ßÈ£½ºÆ®(ÄÄÇ»ÅÍ) ÀÌ´Ù.
°øµ¿À¸·Î ÁøÇàµÉ ÇÁ·ÎÁ§Æ®´Â hello_world ÀÌ´Ù.
</para>
<section>
<title>À͸í CVS¼³Á¤Çϱâ</title>
<para>
À͸í CVS¶õ ¸»±×´ë·Î ÀÏ¹Ý »ç¿ëÀÚ¿¡°Ô CVS¸¦ Àаí/¾µ¼ö ÀÖ´Â
±ÇÇÑÀ» ºÎ¿©ÇÏ´Â °ÍÀ̸ç, ¸¹Àº ¿ÀÇ ÇÁ·ÎÁ§Æ®µéÀÌ À͸í CVS¸¦
Çã¿ëÇØ¼ °¡´ÉÇÑÇÑ ¸¹Àº °³¹ßÀÚ°¡ Âü¿©ÇÒ ¼ö ÀÖµµ·Ï ±æÀ» ¿¾î
³õ°í ÀÖ´Ù.
</para>
<para>
ÀÌ·¯ÇÑ À͸í CVS»ç¿ëÀÚ´Â º¸Åë ÇÁ·ÎÁ§Æ®¿¡ ´ëÇÑ Àбâ±ÇÇѸ¸À»
ºÎ¿©ÇÑ´Ù. ÀÍ¸í »ç¿ëÀÚ¿¡°Ô ¾²±â±ÇÇÑÀ» ÁÖ¸é ÇÁ·ÎÁ§Æ®ÀÇ ÁøÇàÀÌ
³Ê¹« »ê¸¸ÇØ Áú ¼ö Àֱ⠶§¹®ÀÌ´Ù. ÀÍ¸í »ç¿ëÀÚ(ȤÀº °³¹ßÀÚ)´Â
ÇÁ·ÎÁ§Æ®¿¡ ¹Ý¿µÇØ¾ß µÉ ³»¿ëÀÌ ÀÖÀ» ¶§ ¸ÞÀϵîÀ» ÅëÇØ¼
ÇÁ·ÎÁ§Æ® ¸ÞÀÎ °³¹ßÀÚ¿¡°Ô Å뺸ÇÏ´Â°Ô º¸ÅëÀÌ´Ù.
</para>
<para>
À͸í CVS¸¦ Çã¿ëÇϱâ À§Çؼ´Â ¿ì¼± ½Ã½ºÅÛ¿¡ anonymous°èÁ¤ÀÌ
¸¸µé¾îÁ® ÀÖ¾î¾ß ÇÑ´Ù. ½©À» °¡ÁöÁö ¸øÇϵµ·Ï ¼³Á¤ÇÑ´Ù.
<screen>
# useradd anonymous -s /bin/false
</screen>
±×¸®°í /cvsroot/CVSROOT/passwd ÆÄÀÏ¿¡ À§ÀÇ
°èÁ¤À» µî·ÏÇÏ¸é µÈ´Ù.
<screen>
# echo anonymous: > /cvsroot/CVSROOT/passwd
</screen>
Á¤È®ÇϰԴ <emphasis>[À¯Àú¾ÆÀ̵ð]:[ÆÐ½º¿öµå]</emphasis>ÀÇ
ÇüŰ¡ µÇ¾î¾ß°ÚÁö¸¸ À͸í CVSÀÇ °æ¿ì ÆÐ½º¿öµå¸¦ ¼³Á¤ÇÏÁö
¾Ê´Â°Ô ÀϹÝÀûÀ̹ǷΠÆÐ½º¿öµå´Â »ý·«Çϵµ·Ï ÇÑ´Ù.
ÆÐ½º¿öµå¸¦ ºÎ¿©ÇÏ°í ½Í´Ù¸é cryptµÈ ¹®ÀÚ¿°ªÀ» »ç¿ëÇϵµ·Ï
ÇÑ´Ù.
</para>
<para>
À͸í CVS»ç¿ëÀÚÀÇ °æ¿ì ¾Æ·¡¿Í °°ÀÌ ¼³Á¤Çؼ Àб⸸ °¡´ÉÇϵµ·Ï
±ÇÇÑÀ» Á¦ÇѽÃŲ´Ù.
<screen>
# echo anonymous > /cvsroot/CVSROOT/readers
</screen>
</para>
</section>
</section>
<section>
<title>CVS »ç¿ëÀÚ È¯°æ¼³Á¤</title>
<para>
cvs ¼¹ö¿¡ ÇÁ·ÎÁ§Æ®¸¦ µî·Ï½Ã۰í, ÇÁ·ÎÁ§Æ®¸¦ ¾÷µ¥ÀÌÆ®Çϰí,
¹Þ¾Æ¿À±â À§Çؼ ¿ì¸®´Â "cvs" ¶ó´Â Àü¿ë Ŭ¶óÀÌ¾ðÆ®¸¦ »ç¿ëÇϰÔ
µÈ´Ù. "cvs" ´ÙÀ½¿¡ ¿©·¯°¡Áö ¸í·ÉÇà ¿É¼ÇÀ» ÀÌ¿ëÇÔÀ¸·Î½á,
¿øÇÏ´Â ÀÛ¾÷À» ÇÏ°Ô µÈ´Ù.
</para>
<para>
"cvs" ÇÁ·Î±×·¥À» »ç¿ëÇϱâ À§Çؼ ¿ì¸®´Â CVS ¼¹ö¿¡ Á¢±ÙÇØ¼
ÁöÁ¤µÈ µð·ºÅ丮(ÇÁ·ÎÁ§Æ®°¡ ÀúÀåµÇ´Â µð·ºÅ丮 ´Ù¸¥¸»·Î "ÀúÀå¼Ò")
°¡ ¾îµðÀÎÁö cvs ÇÁ·Î±×·¥¿¡ ¾Ë·ÁÁÖ¾î¾ß¸¸ ÇÑ´Ù.
º¸Åë ȯ°æº¯¼öÀÎ CVSROOT ¸¦ ÅëÇØ¼ "cvs" ¿¡°Ô CVS ¼¹öÀÇ
Á¤º¸¸¦ ¾Ë·ÁÁØ´Ù.
±×·¯¹Ç·Î ÀÚ½ÅÀÇ È¨µð·ºÅ丮ÀÇ
.bash_profile ÆÄÀÏ¿¡ ´ÙÀ½°ú °°Àº ³»¿ëÀ»
Ãß°¡½ÃÄÑÁÖ¾î¾ß ÇÑ´Ù.
<screen>
CVSROOT=:pserver:yundream@192.168.0.5:/home/cvs
</screen>
À§ÀÇ CVSROOT ¿¡´Â
"pserver" Àº ¿ì¸®°¡ CVS ¼¹ö¿¡ Á¢±ÙÇϱâ À§Çؼ pserver ¹æ½ÄÀ»
»ç¿ëÇÒ°ÍÀ̸ç, ¼¹öÀÇ IP´Â 192.168.0.5 Á¢±Ù ¾ÆÀ̵ð´Â yundream
±×¸®°í ÇÁ·ÎÁ§Æ®°¡ ÀúÀåµÇ¾î ÀÖ´Â
ÀúÀå¼Ò µð·ºÅ丮´Â /home/cvs ¶ó´Â Á¤º¸¸¦
°¡Áö°í ÀÖ´Ù.
</para>
<para>
ȯ°æº¯¼ö CVSROOT ¸¦ »ç¿ëÇÏÁö ¾Ê°í -d ¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ýµµ ÀÖ´Ù.
<screen>
cvs -d :pserver:yundream@192.168.0.5:/home/cvs [¿É¼Ç]
</screen>
±×·¯³ª À̹æ¹ýÀº ºÒÆíÇϹǷΠȯ°æº¯¼ö¸¦ »ç¿ëÇϵµ·Ï ÇÏÀÚ.
</para>
</section>
</section>
<section>
<title>cvs Ŭ¶óÀÌ¾ðÆ® »ç¿ëÇϱâ</title>
<section>
<title>·Î±×ÀÎ Çϱâ : login</title>
<para>
ÇÁ·ÎÁ§Æ®¸¦ ¾Æ¹«³ª Á¢±ÙÇØ¼ »ç¿ëÇÏ°Ô ÇØ¼´Â ´ç¿¬È÷ ¾ÈµÉ
°ÍÀÌ´Ù. ±×·¯¹Ç·Î ÃÖÃÊ¿¡ ¾ÆÀ̵ð¿Í ÆÐ½º¿öµå¸¦ ÀÌ¿ëÇÑ
ÀÎÁõÀýÂ÷¸¦ °ÅÄ¡°Ô µÈ´Ù.
</para>
<para>
CVS ¼¹ö¿¡ ·Î±×ÀÎ Çϱâ À§Çؼ´Â "cvs" ´ÙÀ½¿¡ ¿É¼ÇÀ¸·Î login À» ÁÖ°í ½ÇÇà½ÃŰ¸é µÈ´Ù.
<screen>
# cvs login
CVS password:
</screen>
±×·¯¸é ÆÐ½º¿öµå¸¦ ¹¯´Â ÇÁ·ÒÇÁÆ®°¡ ¶³¾îÁú°ÍÀÌ´Ù. ÀÚ½ÅÀÇ
ÆÐ½º¿öµå¸¦ ÀÔ·ÂÇϸé ÀÎÁõÀÌ ¼º°øµÈ´Ù.
Çѹø ÀÎÁõÀÌ ¼º°øµÇ¸é ÀÎÁõ¿¡ »ç¿ëÇÑ ¿©·¯°¡Áö Á¤º¸°¡
.cvspass ¿¡ ÀúÀåµÇ°í ´ÙÀ½ºÎÅÍ´Â .cvspass ¸¦ »ç¿ëÇØ¼
ÀÚµ¿ÀûÀ¸·Î ÀÎÁõÀ» Çϱ⠶§¹®¿¡ ÃÖÃÊ¿¡ Çѹø¸¸ login À»
¼º°øÇÏ¸é µÈ´Ù.
</para>
<para>
¹°·Ð ´ç¿¬È÷ CVS ¼¹öÀÎ 192.168.0.5 ¿¡´Â yundream À̶õ »ç¿ëÀÚ°¡
µî·ÏµÇ¾î ÀÖ¾î¾ß Çϸç ÀÌ »ç¿ëÀÚ´Â cvs ±×·ì¿¡ Æ÷ÇԵǾî
ÀÖ¾î¾ß ÇÑ´Ù.
</para>
</section>
<section>
<title>ÇÁ·ÎÁ§Æ® ¸¸µé°í µî·ÏÇϱâ : import </title>
<para>
°¡Àå ¸ÕÀú ÇØ¾ßÇÒÀÏÀº ÁøÇàµÉ ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé°í
µî·ÏÇÏ´Â ÀÏÀÌ´Ù. ¿ì¸®°¡ ÁøÇàÇϰíÀÚ ÇÏ´Â ÇÁ·ÎÁ§Æ®´Â
hello_world ÇÁ·ÎÁ§Æ®À̸ç, ¿©±â¿¡´Â hello.c¶ó´Â
ÇϳªÀÇ ÆÄÀÏÀÌ Æ÷ÇԵǾî ÀÖ´Ù. ´ÙÀ½Àº hello.cÀÇ ÄÚµåÀÌ´Ù.
<screen>
int main()
{
printf("Hello World\n");
}
</screen>
¿ì¸®´Â ´ÜÁö hello.cÄڵ尡
ÀÖ´Â µð·ºÅ丮·Î À̵¿Çؼ ´ÙÀ½°ú °°ÀÌ import ½ÃÄÑÁÖ¸é
µÈ´Ù.
<screen>
# cd hello_world
# cvs -d:pserver:yundream@192.168.0.5:/home/cvs import hello_world project start
</screen>
ÀÌ µð·ºÅ丮´Â ÇÁ·ÎÁ§Æ® ÀÓÆ÷Æ®¸¦ À§Çؼ »õ·Î ÁغñµÈ
µð·ºÅ丮¿©¾ß ÇÑ´Ù. ±×·¸Áö ¾Ê°í Àâ´ÙÇÑ ÆÄÀϵéÀÌ ÀÖÀ»°æ¿ì
ÀÌµé ÆÄÀϵé±îÁö ¸ù¶¥ ÇÁ·ÎÁ§Æ®¿¡ µî·ÏµÇ¾î ¹ö¸°´Ù.
¸¸¾à ȯ°æº¯¼ö CVSROOT°¡ ¼³Á¤µÇ¾î ÀÖ´Ù¸é ¾Æ·¡¿Í °°ÀÌ
°£´ÜÇÏ°Ô import¸¦ ½ÇÇàÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
<screen>
# cvs import hello_world project start
N hello_world/hello.c
No conflicts created by this import
</screen>
2¹øÂ° ÀÎÀÚÀÎ hello_world´Â importÇÒ ÇÁ·ÎÁ§Æ®ÀÇ À̸§À̸ç
project, start´Â ÇÁ·ÎÁ§Æ®ÀÇ ºÎ°¡ Á¤º¸µéÀÌ´Ù
(º°·Î ½Å°æ¾µ ÇÊ¿ä ¾ø´Ù).
</para>
<para>
ÀÌ·¸°Ô Çϸé cvs¼¹öÀÇ ÀúÀå¼Ò¿¡ hello_world¶õ µð·ºÅ丮°¡
»ý±â°í ¿©±â¿¡ hello.c°¡ ¿Ã¶ó°¡°ÔµÈ´Ù.
<note>
<para>
cvs ÀúÀå¼Ò¿¡ ¿Ã¶ó°¡´Â ÆÄÀÏ ¿ø·¡ ÆÄÀÏÀ̸§µÚ¿¡ ',v'ÀÌ
ºÙ¾î¼ ÀúÀåµÈ´Ù. hello.c¶ó¸é hello.c,v¶ó´Â À̸§À¸·Î
ÀúÀåµÇ¸ç ¿©±â¿¡´Â hello.cÀÇ ¿ø·¡ ³»¿ë¿Ü¿¡
¹öÁ¯ °ü¸®¸¦ À§ÇÑ °¢Á¾ Á¤º¸°¡ µé¾î°¡°Ô µÈ´Ù.
</para>
</note>
</para>
</section>
<section>
<title>ÇÁ·ÎÁ§Æ® °¡Á®¿À±â : checkout</title>
<para>
ÇÁ·ÎÁ§Æ® °ü¸®ÀÚ°¡ ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé¾ú´Ù¸é ÀÌÁ¦
ÇÁ·ÎÁ§Æ® °³¹ßÀÚµéÀÌ ÇÁ·ÎÁ§Æ®¸¦ ¹Þ¾Æ¿Í¼ ÇÊ¿äÇÑ ÀÛ¾÷À»
ÇØ¾ßÇÒ °ÍÀÌ´Ù.
ÇÁ·ÎÁ§Æ®¿¡ °¡Á®¿À´Â ¹æ¹ýÀº °£´ÜÇÏ´Ù. "cvs" ´ÙÀ½¿¡
checkout(ȤÀº co) ¿É¼ÇÀ» »ç¿ëÇÏ¸é µÈ´Ù. co ¿É¼Ç µÚ¿¡´Â
µî·ÏÇÒ ÇÁ·ÎÁ§Æ® À̸§(hello_world)¸¦ ¸í½ÃÇØ ÁÖ¸é µÈ´Ù.
<screen>
# cvs server: Updating hello_world
U hello_world/hello.c
</screen>
¼º°øÀûÀ¸·Î ÇÁ·ÎÁ§Æ®°¡ µî·ÏµÇ¾ú´Ù. ÀÌÁ¦ ls ÇØº¸¸é
ÇöÀç µð·ºÅ丮¿¡ hello_world ¶ó´Â ÇÁ·ÎÁ§Æ®À̸§À» °¡Áö´Â
µð·ºÅ丮°¡ »ý°åÀ½À» ¾Ë ¼ö ÀÖ´Ù. ÀÌ¿Í ´õºÒ¾î
hello.c¿ª½Ã È®ÀÎ °¡´ÉÇÒ °ÍÀÌ´Ù.
</para>
</section>
<section>
<title>ÇÁ·ÎÁ§Æ® ¼öÁ¤ÈÄ Àû¿ë(¾÷µ¥ÀÌÆ®) : commit</title>
<para>
±×·±µ¥ ¿ø·¡ÀÇ hello.c¸¦ º¸¸é printf()ÇÔ¼ö°¡ ¼±¾ðµÇ¾î ÀÖ´Â
stdio.h°¡ ºüÁ®ÀÖ´Ù. ´ëºÎºÐÀÇ °æ¿ì ¹®Á¦°¡ ¾øÁö¸¸
ÄÄÆÄÀÏ·¯¿¡ µû¶ó¼ °æ°í¸Þ½ÃÁö¸¦ º¸³»°Å³ª ½ÉÇѰæ¿ì
ÄÄÆÄÀÏ ½ÇÆÐÇÏ´Â °æ¿ìµµ ÀÖ´Ù. ±×·¡¼ Çì´õÆÄÀÏÀ» Ãß°¡Çϱâ·Î
Çß´Ù.
<screen>
#include <stdio.h>
int main(int argc, char **argv)
{
printf("Hello world");
}
</screen>
Çì´õÆÄÀÏÀ» Ãß°¡ ½ÃÄ×´Ù.
ÀÌÁ¦ ÇÁ·ÎÁ§Æ® ³»¿ëÀ» ³»°¡ ¼öÁ¤ÇÑ ³»¿ëÀ¸·Î cvs¸¦ ¾÷µ¥ÀÌÆ®
½ÃÄÑ¾ß ÇÒ°ÍÀÌ´Ù. ÀÌ·²¶§´Â "commit" ¿É¼ÇÀ» ÀÌ¿ëÇÏ¸é µÈ´Ù.
-m ¿É¼ÇÀ» ÀÌ¿ëÇÏ¿© º¯°æµÈ ³»¿ë¿¡ ´ëÇÑ °£´ÜÇÑ ·Î±×µµ ³²°ÜÁÙ¼ö
ÀÖ´Ù.
<screen>
# cvs commit -m "stdio.h Çì´õÆÄÀÏ ÀÎŬ·çµå" hello.c
Checking in hello.c;
/home/cvs/hello_world/hello.c,v <-- hello.c
new revision: 1.2; previous revision: 1.1
done
#
</screen>
¹°·Ð cvs ¾÷µ¥ÀÌÆ®¸¦ ½Ãų¶§´Â ¹Ýµå½Ã ÄÄÆÄÀÏÀÌ µÇ´ÂÁö Á¤µµ´Â
È®ÀÎÇÏ°í ¿Ã·Á¾ß µÉ°ÍÀÌ´Ù. ÄÄÆÄÀϵµ ¾ÈµÇ´Â Äڵ带 ¿Ã·È´Ù°¡´Â
ÆÀ¿øµé¿¡°Ô ¿ø¸ÁÀÇ ¼Ò¸®¸¦ µè°Ô µÉ°ÍÀÌ´Ù.
</para>
</section>
<section>
<title>ÆÄÀÏ ¹Þ¾Æ¿À±â/·Î±× º¸±â : update, log</title>
<para>
ÀÌÁ¦ ¿©·¯ºÐÀº hello_world ÇÁ·ÎÁ§Æ®ÀÇ ÁøÇà ÀÏ¿øÀÌ
µÇ¾ú´Ù. ÇÁ·ÎÁ§Æ® Âü¿© °³¹ßÀڷμ ¿©·¯ºÐÀÌ
ÄÄÇ»ÅÍ ¾Õ¿¡ ¾É¾Ò´Ù¸é °¡Àå ¸ÕÀú ÇØ¾ßÇÒÀÏÀº °£¹ã¿¡ ´©±º°¡
ÇÁ·ÎÁ§Æ®¸¦ ¼öÁ¤ÇÏÁö ¾Ê¾Ò´ÂÁö È®ÀÎÇϰí Å×½ºÆ®ÇÏ´Â
ÀϺÎÅÍ ÇØ¾ß ÇÑ´Ù. ÃÖ±Ù ÇÁ·ÎÁ§Æ®¿¡ ´ëÇÑ º¯°æ»çÇ×Àº
"up"À» ÀÌ¿ëÇØ¼ È®ÀÎÇÒ ¼ö ÀÖ´Ù.
<screen>
[yundream@myhome hello_world]$ cvs up
cvs server: Updating .
P hello.c
[yundream@myhome hello_world]$
</screen>
hello.c ¶ó´Â ÆÄÀÏÀÌ ¼öÁ¤ µÅ¾úÀ½À» ¾Ë¼ö ÀÖ´Ù.
hello.c ´Â »õ·ÎÀÌ ¼öÁ¤ µÇ¾úÀ½À¸·Î ´©°¡ ¾î¶² ÀÌÀ¯·Î
Äڵ带 ¼öÁ¤Çß´ÂÁö È®ÀÎÇØº¼ Çʿ䰡 ÀÖÀ» °ÍÀÌ´Ù.
ÀÌ·²¶§´Â "log" ¸í·ÉÀ» »ç¿ëÇÑ´Ù. "log"¸í·ÉÀ» »ç¿ëÇϸé
ÇØ´ç ÆÄÀÏ¿¡ ´ëÇÑ °£·«ÇÑ ·Î±×Á¤º¸¸¦ ¾ò¾î ¿Ã¼ö ÀÖ´Ù.
<screen>
[yundream@myhome hello_world]$ cvs log hello.c
cvs server: Logging .
RCS file: /home/cvs/hello_world/hello.c,v
Working file: hello.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
----------------------------
revision 1.1
date: 2002/06/07 01:36:27; author: yundream; state: Exp;
stdio.h Çì´õÆÄÀÏ ÀÎŬ·çµå
=============================================================================
</screen>
±×·¯¸é ¹öÁ¯Á¤º¸¿¡¼ ºÎÅÍ,
´©°¡ ¼öÁ¤À» Çß´ÂÁö, ¾ðÁ¦ ¼öÁ¤À» Çß´ÂÁö¿Í commitÇϸé¼
³²±ä ·Î±×¸Þ½ÃÁö µîÀÌ Ç¥½Ã
µÊÀ¸·Î hello.c °¡ ¾î¶²½ÄÀ¸·Î º¯°æµÇ¾ú´ÂÁö ´ë·«ÀÇ
Á¤º¸¸¦ ¾ò¾î¿Ã ¼ö ÀÖ´Ù.
</para>
</section>
<section>
<title>¹öÁ¯º° Â÷ÀÌ È®ÀÎ : diff</title>
<para>
ÀÌ·¸°Ô ÇØ¼ »õ·Î¿î ¼Ò½º ÆÄÀÏÀ» °¡Á®¿Ô´Âµ¥,
¾î´À ÄÚµåÀÇ ¾î¶² ¶óÀÎÀÌ ¼öÁ¤µÇ¾ú´ÂÁö
È®ÀÎÇÏ°í ½ÍÀ» ¶§°¡ »ý±æ °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ¹öÁ¯º° ÄÚµå º¯°æ»çÇ×ÀÇ
È÷½ºÅ丮°¡ ³²°Ô µÈ´Ù¸é ³ªÁß¿¡ ¹®Á¦°¡ »ý°åÀ» ¶§ ÀÌÀü¹öÁ¯ÀÇ
Äڵ带 ½±°Ô ¾ò¾î³¾¼öµµ ÀÖÀ» °ÍÀÌ´Ù.
</para>
<para>
cvs´Â ¹öÁ¯º° Äڵ庯°æ»çÇ×À» ¸ðµÎ ÀúÀåÇÏ¸ç °³¹ßÀÚ´Â ÀÌ ³»¿ëÀ»
ÀÌ¿ëÇØ¼ Äڵ庯°æ»çÇ×À» È®ÀÎÇÒ ¼ö ÀÖÀ» »Ó ¾Æ´Ï¶ó ¹®Á¦°¡
»ý°åÀ»½Ã ÀÌÀü ¹öÁ¯ÀÇ Äڵ带 ¾ò¾î¿Ã ¼öµµ ÀÖ´Ù.
<note>
<para>
¹°·Ð ÀÌ·¯ÇÑ ÀÛ¾÷À» À§Çؼ´Â ¾à°£ÀÇ ¼öÀÛ¾÷ÀÌ ÇÊ¿äÇѵ¥,
°ø°³µÈ CVSÇÁ·ÐÆ®¿£µåµéÀº ÀÚµ¿À¸·Î ÀÌ·¯ÇÑ
±ÍÂúÀº ÀÏÀ» ´ë½Å ÇØÁØ´Ù. ¾Æ¸¶µµ À¥±â¹ÝÀÇ CVSÇÁ·ÐÆ®¿£µå°¡
°¡Àå ÁÁÀº ¼±ÅÃÀÌ µÉ °ÍÀÌ´Ù.
</para>
</note>
</para>
<para>
¹öÁ¯º° º¯°æ³»¿ëÀº diff¸¦ ÅëÇØ¼ È®ÀÎÇÒ ¼ö ÀÖ´Ù.
<screen>
//hello.cc¿¡ ´ëÇØ¼ 1.1¹öÁ¯°ú 1.2¹öÁ¯°úÀÇ º¯°æ³»¿ëÀ» Ãâ·ÂÇϽÿÀ.
# cvs diff -r 1.2 -r 1.1 hello.cc
bash-2.04# cvs diff -r 1.2 -r 1.1 hello.c
Index: hello.c
===================================================================
RCS file: /home/cvs/hello_world/hello.c,v
retrieving revision 1.2
retrieving revision 1.1
diff -r1.2 -r1.1
1,2d0
< #include <stdio.h>
<
</screen>
</para>
<para>
´ÜÁö diff¸¸ »ç¿ëÇÏ¸é °¡ÀåÃÖ±ÙÀÇ º¯°æ»çÇ×À» Ãâ·ÂÇÑ´Ù.
<screen>
#cvs diff test.cc
</screen>
</para>
</section>
<section>
<title>ÆÄÀÏ Ãß°¡Çϱâ : add</title>
<para>
ÀÌ·¸°Ô ÇØ¼ ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇÏ´Ù º¸´Ï READMEÆÄÀÏÀ» Ãß°¡½ÃÄѾß
ÇÒ Çʿ伺À» ´À³¢°Ô µÇ¾ú´Ù. ÀÌó·³ ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇÏ´Ù º¸¸é
Áß°£Áß°£ ¿©·¯°³ÀÇ ÆÄÀÏÀ» Ãß°¡ÇØ¾ß µÉ°Çµ¥ ÀÌ·²°æ¿ì add¸¦
ÀÌ¿ëÇØ¼ ÆÄÀÏÀ» Ãß°¡ÇÏ¸é µÈ´Ù.
<screen>
# cvs add README
cvs server: scheduling file `README' for addition
cvs server: use 'cvs commit' to add this file permanently
</screen>
ÀÌ·¸°Ô ÇØ¼ ÆÄÀÏÀ» Ãß°¡Çϱä Çߴµ¥ ÀÌ·¸°Ô Çß´Ù°íÇØ¼
¹Ù·Î ÆÄÀÏÀÌ cvs¿¡ µî·ÏµÇÁö´Â ¾Ê´Â´Ù. ¹Ýµå½Ã commit ¸¦ ÇØ¼
ÆÄÀÏÀÌ ÇÁ·ÎÁ§Æ®¿¡ »ç¿ëµÉ°ÍÀ̶ó´Â°ÍÀ» ½ÂÀÎ ½ÃÄÑÁà¾ß ÇÑ´Ù.
</para>
<para>
ÀÌÁ¦ ´Ù¸¥ °³¹ßÀÚ°¡ cvs upÀ» Çϸé READMEÆÄÀÏÀÌ Ãß°¡µÈ°ÍÀ»
È®ÀÎÇÒ ¼ö ÀÖ°Ô µÈ´Ù.
<screen>
# cvs up
cvs server: Updating .
U README
</screen>
</para>
</section>
<section>
<title>Ãæµ¹ÀÇ ÇØ°á</title>
<para>
À§ÀÇ °æ¿ì´Â "ÆÀÀå"ÀÌ ÆÄÀÏÀ» ¿Ã¸®°í, "ÆÀ¿ø"ÀÌ ÆÄÀÏÀ» ¹Þ¾Æ¼
¼öÁ¤ÇÏ°í ´Ù½Ã ÆÄÀÏÀ» ¿Ã¸®´Â °úÁ¤À» ¹â°í ÀÖ´Ù.
±×·¯³ª ÇϳªÀÇ ÇÁ·ÎÁ§Æ®ÆÄÀÏ¿¡ ´ëÇØ¼ 2¸íÀÌ µ¿½Ã¿¡ ÀÛ¾÷À»
ÇÏ´Ùº¸¸é Ãæµ¹µÇ´Â °æ¿ì°¡ »ý±æ¼ö ÀÖÀ»°ÍÀÌ´Ù.
</para>
<para>
¿¹¸¦ µé¾î¼ "ÆÀÀå"°ú "ÆÀ¿ø"ÀÌ µ¿½Ã¿¡ °°Àº ¶óÀÎÀ» ¼öÁ¤Çϰí
Àִµ¥, ÆÀÀåÀÌ ¸ÕÀú commit ¸¦ Çß´Ù°í ÇÏÀÚ. Àá½Ã ÈÄ¿¡
ÆÀ¿øÀÌ commit Çϸé, °°Àº ÄÚµå¶óÀο¡ ´ëÇØ¼ Ãæµ¹ÀÌ
ÀϾ°Ô µÉ°ÍÀÌ´Ù.
</para>
<para>
±×·¸Áö¸¸ °ÆÁ¤ÇÒ°Í ¾ø´Ù. cvs °¡ ¾Ë¾Æ¼ ÀÚµ¿ÀûÀ¸·Î °ü¸®ÇØÁÖ±â
¶§¹®ÀÌ´Ù. ÆÀ¿øÀÌ ÀÚ½ÅÀÇ ½î¾²¸¦ commit ÇÏ·Á°í Çϸé cvs ´Â
ÀÚµ¿ÀûÀ¸·Î "ÄÚµå¶óÀο¡ Ãæµ¹ÀÌ ÀϾÀ½À¸·Î ¸ÕÀú update ¸¦
ÇϽÿÀ" ¶ó´Â ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÑ´Ù. ±×·¡¼ update ¸¦ ½Ã۸é
¾î´À ºÎºÐÀÌ Ãæµ¹À» ÀÏÀ¸Å°´ÂÁö Ç¥½ÃÇØÁØ´Ù.
</para>
<para>
´Ù½Ã ÇÁ·ÎÁ§Æ® ½î¾²ÀÎ hello.c ·Î µ¹¾Æ°¡¼, ÆÀÀåÀÌ
´ÙÀ½°ú °°ÀÌ Äڵ带 ¾à°£ ¼öÁ¤Çß´Ù°í °¡Á¤ÇÏÀÚ.
<screen>
#include <stdio.h>
int main(int argc, char **argv)
{
printf("Hello World!!!!!\n");
}
</screen>
±×·±µ¥ ±×¶§ "ÆÀ¿ø" µµ µ¿ÀÏÇÑ Äڵ带 ¼öÁ¤Çß´Ù.
<screen>
#include <stdio.h>
int main(int argc, char **argv)
{
printf("Hello World??\n");
}
</screen>
ÀÌ»óÅ¿¡¼ ÆÀÀåÀÌ commit ½Ã۰í, Àá½ÃÈÄ¿¡ ÆÀ¿øÀÌ commit
½ÃŰ·Á°í ÇÏ¸é ´ÙÀ½°ú °°Àº ¿¡·¯°¡ ¹ß»ýÇÑ´Ù.
(ÆÀÀåÀº ¾Æ¹« ÀÌ»ó¾øÀÌ commit ½Ãų¼ö ÀÖ´Ù)
<screen>
[yundream@myhome hello_world]$ cvs commit -m hello.c
cvs commit: Examining .
cvs server: Up-to-date check failed for `hello.c'
cvs [server aborted]: correct above errors first!
</screen>
À̹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ ¸ÕÀú update ¸í·ÉÀ» ÀÌ¿ëÇØ¼
ÇöÀç CVS¼¹ö¿¡ ÀúÀåµÈ ÇÁ·ÎÁ§Æ® ³»¿ëÀ» °¡Á®¿Àµµ·Ï ÇÑ´Ù.
±×·¯¸é ´ÙÀ½°ú °°Àº ¸Þ½ÃÁö¸¦ ¹Þ¾Æº¼¼ö ÀÖÀ»°ÍÀÌ´Ù.
<screen>
# cvs up
cvs server: Updating .
RCS file: /home/cvs/hello_world/hello.c,v
retrieving revision 1.3
retrieving revision 1.4
Merging differences between 1.3 and 1.4 into hello.c
rcsmerge: warning: conflicts during merge
cvs server: conflicts found in hello.c
C hello.c
</screen>
±âÁ¸ÀÇ 1.3 ¹öÁ¯°ú Áö±Ý ¹öÁ¯ÀÇ ÇÁ·ÎÁ§Æ®¿Í Ãæµ¹ÀÌ »ý°åÀ½À» ¾Ë¼ö
ÀÖ´Ù. 'C' ´Â Ãæµ¹(confilict)ÀÌ ÀÖÀ½À» ³ªÅ¸³»´Â ´Ü¾îÀÌ´Ù.
ÀÌÁ¦ hello.c ½î¾²¸¦ º¸¸é ´ÙÀ½°ú °°ÀÌ Ãæµ¹µÇ´Â ºÎºÐÀ»
Ç¥½ÃÇØÁÙ°ÍÀÌ´Ù.
<screen>
#include <stdio.h>
int main(int main, char **argv)
{
<<<<<<< hello.c
printf("Hello World!!!!!\n");
=======
printf("Hello World??\n");
>>>>>>> 1.3
}
</screen>
ÀÌ·²°æ¿ì´Â ÆÀÀå°ú ¿¬¶ôÀ» ÃëÇØ¼(¸ÞÀÏ, ¸Þ½ÅÀú, ÀüÈ·Î)
Ãæµ¹µÇ´Â Äڵ忡 ´ëÇØ¼ ¼·Î Á¶À²ÇØ¾ß ÇÒ°ÍÀÌ´Ù. ±»ÀÌ Á¶À²±îÁö
ÇÒ ÇÊ¿ä ¾øÀÌ ±×³É ÆÀÀåÀÇ Äڵ带 »ç¿ëÇϱâ·Î Çß´Ù¸é Ãæµ¹µÈ ºÎºÐÀ»
ÆÀÀåÀÇ ÄÚµå·Î Á¶Á¤ÇÑ´ÙÀ½¿¡ commit½ÃŰ¸é µÈ´Ù.
</para>
</section>
<section>
<title>ÇÊ¿ä¾ø´Â ÆÄÀÏÁö¿ì±â : delete</title>
<para>
½î¾²ÆÄÀÏÁß¿¡ ´õÀÌ»ó Çʿ䰡 ¾ø¾îÁø ÆÄÀÏ¿¡ ´ëÇØ¼´Â delete ¸í·ÉÀ»
ÀÌ¿ëÇÒ¼ö ÀÖ´Ù. README ÆÄÀÏÀÌ ´õÀÌ»ó ÇÊ¿ä ¾ø´Ù¸é ¿ì¼± README
ÆÄÀÏÀ» rmÀ» ÀÌ¿ëÇØ¼ Áö¿öÁÖ°í.. deleteÇÑ ÈÄ commit½Ã۸é
µÈ´Ù.
<screen>
# rm README
# cvs delete README
cvs server: scheduling `README' for removal
cvs server: use 'cvs commit' to remove this file permanently
# cvs commit -m "¸®µå¹Ì ´õÀÌ»ó ÇÊ¿ä ¾ø¾î¼ »èÁ¦ÇßÀ½" README
Removing README;
/home/cvs/hello_world/README,v <-- README
new revision: delete; previous revision: 1.1
done
</screen>
ÀÌÁ¦ ´Ù¸¥ ÇÁ·ÎÁ§Æ® °³¹ßÀÚ°¡ cvs upÀ» ÇÏ¸é ´ÙÀ½°ú °°ÀÌ
README°¡ »èÁ¦µÇ¾úÀ½À» È®ÀÎÇÒ ¼ö ÀÖ°Ô µÈ´Ù.
<screen>
# cvs up
cvs server: Updating .
cvs server: README is no longer in the repository
</screen>
ÀÌÈÄ ls¸¦ ÇÏ¸é ½ÇÁ¦ READMEÆÄÀÏÀÌ Áö¿öÁ®ÀÖÀ½À» È®ÀÎ ÇÒ ¼ö
ÀÖÀ» °ÍÀÌ´Ù. ±×·¸´Ù¸é ¾î¶² ¾ÇÀÇÀûÀÎ °³¹ßÀÚ°¡
Áß¿äÇÑ ÆÄÀÏÀ» Áö¿ö¹ö¸®¸é À߸øÇؼ ÇØ´ç ÆÄÀÏÀ» ¿µ¿øÈ÷ ÀÒ¾î
¹ö¸®°Ô µÇ´Â »çŰ¡ ¹ß»ýÇÏÁö ¾ÊÀ»Áö °ÆÁ¤ÀÌ µÉ ¼öµµ ÀÖÀ» °ÍÀÌ´Ù.
±×·¯³ª ÀÌ ¹®Á¦´Â ±×¸® Å©°Ô °ÆÁ¤ÇÒ Çʿ䰡 ¾ø´Ù. ÇØ´ç ÆÄÀÏÀº
ÀÌ¹Ì ´Ù¸¥ ¿©·¯ °³¹ßÀÚµéÀÌ °¡Áö°í ÀÖÀ» °ÍÀ̸ç, ¼³È¤ ±×·¸Áö
¾Ê´Ù ÇÏ´õ¶óµµ cvs ¼¹ö¿¡´Â ÆÄÀÏÀÌ º¸Á¸ÀÌ µÇ¾î Àֱ⠶§¹®¿¡
¾ðÁ¦µçÁö º¹±¸ °¡´ÉÇϱ⠶§¹®ÀÌ´Ù. ¶ÇÇÑ ´©°¡ ÆÄÀÏÀ» »èÁ¦ Çß´ÂÁö
log¸¦ ÅëÇØ¼ ½±°Ô ¾Ë¾Æ ³¾ ¼ö µµÀÖ´Ù.
</para>
</section>
<section>
<title>ÇÁ·ÎÁ§Æ®¸¦ ¿Ï·áÇßÀ»¶§ : release</title>
<para>
ÇÁ·ÎÁ§Æ®¸¦ ¿Ï·áÇß´Ù¸é, release ¿É¼ÇÀ» »ç¿ëÇØ¼
ÇÁ·ÎÁ§Æ®¸¦ ´ÝÀ»¼ö ÀÖ´Ù. ÇÁ·ÎÁ§Æ®¸¦ ´Ý´Â´Ù°í ÇØ¼
ÀúÀå¼ÒÀÇ ÆÄÀÏÀ» ¿ÏÀüÈ÷ Áö¿ì´Â °ÍÀº ¾Æ´Ï´Ù. ´ÜÁö
ÀúÀå¼ÒÀÇ ÇÁ·ÎÁ§Æ®¿¡ ¾î¶°ÇÑ ¼öÁ¤µµ ÇÒ¼ö¾ø´Â »óÅ´Ù.
</para>
</section>
</section>
<section>
<title>È¿À²ÀûÀÎ ÇÁ·ÎÁ§Æ® °ü¸®¸¦ À§ÇÑ CVS »ç¿ë¹ý</title>
<para>
CVS´Â ¿©·¯¸íÀÇ °³¹ßÀÚ°¡ Âü¿©ÇÑ´Ù´Â °¡Á¤ÇÏ°Ô »ç¿ëµÇ¾î Áö¹Ç·Î
À̸¦ È¿À²ÀûÀ¸·Î ÇÁ·ÎÁ§Æ®°¡ ÁøÇàµÇµµ·Ï Çϱâ À§ÇÑ ¸î°¡Áö
ÁöÄѾßÇÒ »çÇ×ÀÌ Àִµ¥ À̵鿡 ´ëÇØ¼ ¾Ë¾Æº¸µµ·Ï ÇϰڴÙ.
</para>
<para>
¾ÆÄ§¿¡ ¿Í¼ ÄÄÇ»ÅÍ ¾Õ¿¡ ¾É¾Ò´Ù¸é, °¡Àå¸ÕÀú cvs up À» ÀÌ¿ëÇØ¼
¹ã»çÀÌ¿¡ ¾÷µ¥ÀÌÆ® µÈ ³»¿ëÀÌ ÀÖ´ÂÁö È®ÀÎÀ» ÇÑ´Ù.
±×´ÙÀ½ ÀÛ¾÷¿¡ µé¾î°£´Ù. °øµ¿ÀÛ¾÷À» ÇÒ¶§ °¡Àå Áß¿äÇѰÍÀº
»ó´ëÆí ÀÛ¾÷ÀÚ°¡ ¹«½¼ÀÏÀ» Çϰí ÀÖ´ÂÁö¿¡ ´ëÇØ ¾Ë¾Æ¾ß ÇÏ´Â
°ÍÀÌ´Ù. ½À°üÀûÀ¸·Î cvs upÀ» ÇØÁà¾ß ÇÑ´Ù.
</para>
<para>
±×¸®°í ²Ï Áß¿äÇÑ ¼öÁ¤ÀÌ ÀÖ¾ú´Ù°í Çϸé Áß°£Áß°£¿¡ commitÇϵµ·Ï
ÇÑ´Ù. commitÇÒ¶§µµ ¿ì¼± cvs upÀ» ÀÌ¿ëÇØ¼ ¼öÁ¤»çÇ×ÀÌ ÀÖ¾ú´ÂÁö
È®ÀÎÇϵµ·Ï ÇÏ°í ´ç¿¬ÇÏÁö¸¸ ¹Ýµå½Ã ÄÄÆÄÀÏÀÌ µÇ´ÂÁö È®ÀÎÇÑ ÈÄ
commit ½ÃÄÑ¾ß ÇÑ´Ù.
</para>
<para>
CVS ¸¦ Á¦´ë·Î »ç¿ëÇϱâ À§Çؼ´Â CVS ÀúÀå¼ÒÀÇ ±¸¼ºÀ» ÀßÇØ³õ¾Æ¾ß
ÇÑ´Ù. ¿¹¸¦ µé¾î Project_A ¶õ ÇÁ·ÎÁ§Æ®¸¦ ½ÃÀÛÇÑ´Ù¸é
Project_A ¶õ µð·ºÅ丮¸¦
¸¸µé°í ±× ¾Æ·¡¿¡ ÇÁ·ÎÁ§Æ®¿¡ ÇÊ¿äÇÑ °¢Á¾ µð·ºÅ丮, Áï ÀÛ¾÷¹®¼ÀÇ
ÀúÀåÀ» À§ÇÑ doc µð·ºÅ丮, ½ÇÁ¦ ½î¾²°¡ Æ÷Ç﵃ src µð·ºÅ丮,
ÀÎÅ©·çµå ÆÄÀÏÀÌ Á¸ÀçÇÏ°Ô µÉ src/include µð·ºÅ丮 µî, ü°èÀûÀ¸·Î
ÇÁ·ÎÁ§Æ®¸¦ °ü¸®ÇÒ¼ö ÀÖµµ·Ï ¹Ì¸® ÀúÀå¼Ò¸¦ ¼¼ÆÃÇØ ³õ¾Æ¾ßÇÑ´Ù.
¹°·Ð ³ªÁß¿¡¶óµµ µð·ºÅ丮¸¦ Ãß°¡ÇÒ¼öµµ ÀÖÁö¸¸, ÀÌ¿ÕÀÌ¸é ¹Ì¸®
ÇÁ·ÎÁ§Æ®¿¡ ´ëÇÑ °èȹÀ» Àß ¼¼¿öµÎ´Â°Ô ÁÁÀ»°ÍÀÌ´Ù.
<screen>
Project_A --+-- doc -+-- readme.txt
| |
| +-- todo_list.txt
| |
| +-- schedule.xls
|
+-- src --+-- Makefile
|
+-- main.cc
|
+-- io.cc
|
+-- include --+-- io.h
| |
| +-- common.h
+-- lib --+-- crypt.a
</screen>
±×¸®°í °¡´ÉÇÏ¸é ¸ðµâº°·Î ½î¾²Äڵ带 ³ª´©°í, °¢ ¸ðµâº°·Î ºÐ´ãÇØ¼
°³¹ßÀ» Çϵµ·Ï ÇÏ´Â°Ô ÇÁ·ÎÁ§Æ®¸¦ ½±°Ô °ü¸® ÇÏ´Â ¹æ¹ýÀÌ´Ù.
±×·¯¸é °³¹ßÀÚ´Â ÀÚ½ÅÀÇ ¸ðµâ¸¸ ½Å°æ¾²¸é¼µµ, ÀüüÀÇ ÇÁ·ÎÁ§Æ®ÀÇ È帧¿¡
À¯¿¬ÇÏ°Ô ´ëóÇÒ¼ö ÀÖ°Ô µÈ´Ù.
</para>
</section>
</section>
<section>
<title>CVS ÀÇ ´Ù¸¥ Ȱ¿ëµé</title>
<para>
ÇÊÀÚ´Â °³ÀÎ Á¤º¸ÀÇ °ü¸®¸¦ À§Çؼ CVS ¸¦ »ç¿ëÇÑ´Ù.
ȸ»ç¿¡¼ ÀÏÇÏ´Ù°¡ ÁÁÀº »çÀÌÆ®¸¦ ã¾Ò´Ù°Å³ª,
Áß¿äÇÑ ¸Þ¸ð »óȲÀÌ ¹ß»ýÇߴٰųª, ÁÁÀº ÀڷḦ ã¾ÒÀ»°æ¿ì, ÀÏÁ¤°ü¸®
±îÁö ¸ðµÎ CVS ·Î ÀúÀåÇØµÎ°í Áý¿¡ ÀÖ°Ç È¸»ç¿¡ ÀÖ°Ç °³ÀÎ ÀڷḦ
°øÀ¯ÇÒ¼ö ÀÖµµ·Ï ¸¸µé¾î ³õ¾Ò´Ù.
</para>
<para>
¸ðÁú¶óÀÇ ºÏ¸¶Å· µ¥ÀÌŸ¸¦ CVS ·Î ¿¬°á½ÃÄÑ ³õ¾Ò±â ¶§¹®¿¡,
Áý¿¡ ÀÖ°Ç È¸»ç¿¡ ÀÖ°Ç µ¿ÀÏÇÑ ºÏ¸¶Å· µ¥ÀÌŸ¸¦ À¯ÁöÇÒ¼ö ÀÖÀ¸¸ç,
ÀÏÁ¤°ü¸®(Koraganizer À» ÀÌ¿ëÇÑ´Ù), ¸Þ¸ðµ¥ÀÌŸ(knotes) ¿ª½Ã °øÀ¯
°¡´ÉÇϵµ·Ï ÇØµÎ¾î¼ ÆíÇÏ°Ô »ç¿ëÇϰí ÀÖ´Ù.
</para>
<para>
ÀÌ·¸°Ô CVS¸¦ »ç¿ëÇÔÀ¸·Î½á PDA, email, ³ëÆ®ºÏ(µ·ÀÌ Á» ÀÖ¾î¾ß ÇÑ´Ù)
¸Åü¸¦ ÀÌ¿ëÇÏÁö ¾Ê°íµµ, °£´ÜÇÏ°Ô µ¥ÀÌŸ µ¿±âȸ¦ ÀÌ·ç¾î ³¾¼ö ÀÖ´Ù.
</para>
</section>
<section>
<title>°á·Ð</title>
<para>
ÀÌ»ó CVSÀÇ ¼³Ä¡¿Í °£´ÜÇÑ »ç¿ë¹æ¹ý°ú Ȱ¿ë¹æ¹ý¿¡ ´ëÇØ¼ ¾ê±â ÇØº¸¾Ò´Ù.
¿©±â¿¡ ÀÖ´Â ³»¿ëÀº CVS ÀÇ ¸¹Àº ±â´ÉÁß ²À ÇÊ¿äÇÑ 10% Á¤µµÀÇ ³»¿ë¸¸À»
´Ù·ç°í ÀÖ´Ù. CVS »ç¿ë¿¡ ´ëÇÑ ±íÀº ³»¿ëÀ» ¾Ë±â ¿øÇÑ´Ù¸é cvs ¿Í ÇÔ²²
¹èÆ÷µÇ´Â man ÆäÀÌÁö¸¦ Ȱ¿ëÇϰųª <ulink url=http://kldp.org/KoreanDoc/html/CVS-KLDP/index.html>CVS À̾߱â</ulink>, <ulink url=http://kldp.org/KoreanDoc/html/CVS_Tutorial-KLDP>CVS »ç¿ë</ulink> µîÀÇ ¹®¼¸¦ Âü°íÇϱ⠹ٶõ´Ù.
</para>
</section>
</article>
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|