· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Subversion Book/Basic Concepts

±âº» °³³ä

1Chapter. ±âº» °³³ä


1.1.

ÀÌ Àå¿¡¼­´Â SubversionÀÇ ±âº»°³³äÀ» °£´ÜÇÏ°Ô ¼³¸íÇÕ´Ï´Ù. ¹öÀü ÄÁÆ®·Ñ ½Ã½ºÅÛÀ» óÀ½ »ç¿ëÇÏ´Â »ç¶÷Àº ÀÌ ÀåÀ» Àоî ÁֽʽÿÀ. ÀϹÝÀûÀÎ ¹öÀü °ü¸®ÀÇ °³³äÀ» ½ÃÀÛÀ¸·Î Subversion¿¡¸¸ ÇØ´çµÇ´Â ¼¼ºÎÀûÀÎ °³³äÀ» ¼³¸íÇÏ°í, SubversionÀ» »ç¿ëÇÏ´Â °£´ÜÇÑ ¿¹¸¦ º¸¿©µå¸± °ÍÀÔ´Ï´Ù.

ÀÌ Àå¿¡¼­´Â ÇÁ·Î±×·¥ ¼Ò½º ÄÚµåµéÀ» °øÀ¯ÇÏ´Â ¿¹¸¦ µé¾î ¼³¸íÇÏÁö¸¸, SubversionÀº ÇÁ·Î±×·¥ ¼Ò½º»Ó¸¸ ¾Æ´Ï¶ó ¾î¶² Á¾·ùÀÇ ÆÄÀϵ鵵 °ü¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. SubversionÀº ÄÄÇ»ÅÍ ÇÁ·Î±×·¡¸Ó¸¸ ¾²±â À§ÇØ ¸¸µç µµ±¸´Â ¾Æ´Õ´Ï´Ù.


1.1. ÀúÀå¼Ò(repository)

SubversionÀº Á¤º¸¸¦ ÇÑ °÷¿¡ ¸ð¾Æ ÁýÁßÀûÀ¸·Î °ü¸®ÇÏ´Â ½Ã½ºÅÛÀÔ´Ï´Ù. ¿©±â¼­ °¡Àå Áß¿äÇÑ ÇÙ½ÉÀº ÀúÀå¼Ò(repository)¶ó°í ºÒ¸®¿ì´Â µ¥ÀÌÅÍÀÇ Ã¢°í ÀÔ´Ï´Ù. ÀúÀå¼Ò(repository)´Â Á¤º¸¸¦ ÆÄÀÏ ½Ã½ºÅÛ Æ®¸®, Áï, ÀϹÝÀûÀÎ ÆÄÀÏ°ú µð·ºÅ丮 °èÃþ ±¸Á¶ÀÇ ÇüÅ·Πº¸°üÇÕ´Ï´Ù. ¿©·¯ Ŭ¶óÀ̾ðÆ®°¡ ÀúÀå¼Ò(repository)¿¡ Á¢¼Ó ÇÏ¿© ÆÄÀÏÀ» ÀÐ°í ¼öÁ¤ÇÏ¿© ¾µ ¼ö ÀÖ½À´Ï´Ù. ÇÑ Å¬¶óÀ̾ðÆ®°¡ µ¥ÀÌÅ͸¦ ÀúÀå¼Ò¿¡ ¾²´Â °ÍÀº Á¤º¸¸¦ ´Ù¸¥ Ŭ¶óÀ̾ðÆ®µéÀÌ ÀÌ¿ëÇÒ ¼ö ÀÖµµ·Ï ³»³õÀº °ÍÀÌ°í, ÀúÀå¼Ò·ÎºÎÅÍ µ¥ÀÌÅ͸¦ Àд °ÍÀº ¹Ý´ë·Î ´Ù¸¥ Ŭ¶óÀ̾ðÆ®µéÀÌ ³»³õÀº Á¤º¸¸¦ ¹Þ´Â °ÍÀÔ´Ï´Ù. ¾Æ·¡ÀÇ ±×¸² 2.1Àº ÀÌ·¯ÇÑ ÀüÇüÀûÀΠŬ¶óÀ̾ðÆ®/¼­¹ö ½Ã½ºÅÛÀ» ³ªÅ¸³½ °ÍÀÔ´Ï´Ù.

Figure 1-1. ÀüÇüÀûÀΠŬ¶óÀ̾ðÆ®/¼­¹ö ½Ã½ºÅÛ

±×·³ ÀÌ·± ÀÏ¿¡ ¹«½¼ »ö´Ù¸¥ °ÍÀÌ ÀÖ½À´Ï±î? ¿©±â±îÁö ÀüÇüÀûÀÎ ÆÄÀÏ ¼­¹öÀÇ Á¤ÀÇ¿¡ Áö³ªÁö ¾Ê´Â´Ù°í »ý°¢ÇÕ´Ï´Ù. ±×¸®°í ½ÇÁ¦ ÀúÀå¼Ò(repository)´Â ÆÄÀÏ ¼­¹öÀÇ ÀÏÁ¾ÀÔ´Ï´Ù. ÇÏÁö¸¸ º¸Åë ¸»ÇÏ´Â ÆÄÀϼ­¹ö¿Í´Â Á¶±Ý ´Ù¸¨´Ï´Ù. SubversionÀÇ ÀúÀå¼Ò(repository)´Â ¼öÁ¤³»¿ëÀ» ¸ðÁ¶¸® ±â¾ï ÇÏ°í ÀÖ½À´Ï´Ù. °¢°¢ÀÇ ÆÄÀÏ¿¡ ´ëÇÑ º¯°æ»çÇ×Àº ¹°·ÐÀÌ°í, ÆÄÀÏÀ̳ª µð·ºÅ丮ÀÇ Ãß°¡, »èÁ¦, Àç¹èÄ¡µîÀÇ µð·ºÅ丮 Æ®¸®ÀÇ º¯°æµµ ¸ðµÎ ±â¾ïµË´Ï´Ù.

Ŭ¶óÀ̾ðÆ®°¡ ÀúÀå¼Ò(repository)·ÎºÎÅÍ µ¥ÀÌÅ͸¦ ÀоîµéÀÏ ¶§´Â º¸ÅëÀº ÆÄÀÏ ½Ã½ºÅÛ Æ®¸®ÀÇ ¸¶Áö¸· ¹öÀü¸¸ÀÌ º¸ÀÔ´Ï´Ù. ÇÏÁö¸¸ ÆÄÀÏ ½Ã½ºÅÛÀÇ ÀÌÀü»óŵµ ¿­¶÷ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î Ŭ¶óÀ̾ðÆ®´Â Áö³­ ÁÖÀÇ ¼ö¿äÀÏ¿¡ ÀÌ µð·ºÅ丮¿¡´Â ¾î´À ÆÄÀÏÀÌ ÀÖ¾úÁö? ¶óµçÁö ¸¶Áö¸·¿¡ ÀÌ ÆÄÀÏ º¯°æÇÑ °ÍÀº ´©±¸°í ±× »ç¶÷Àº ¹«¾ùÀ» º¯°æÇßÁö? µîÀÇ À̷¿¡ °üÇÑ Áú¹®À» ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌ Áú¹®Àº ¸ðµç ¹öÀü °ü¸® ½Ã½ºÅÛ ¿¡¼­ °¡Àå Áß¿äÇÑ Áú¹®µéÀÔ´Ï´Ù. Áï ¹öÀü ÄÁÆ®·Ñ ½Ã½ºÅÛÀ̶õ ½Ã°£¿¡ µû¶ó µ¥ÀÌÅÍÀÇ º¯È­¸¦ ±â·ÏÇÏ¿© ¼öÁ¤³»¿ªÀ» ÃßÀûÇÒ ¼ö ÀÖµµ·Ï ¸¸µé¾îÁø ½Ã½ºÅÛÀÔ´Ï´Ù.


1.2. ¹öÀü °ü¸® ¸ðµ¨


1.2.1. ÆÄÀÏ °øÀ¯ÀÇ ¹®Á¦

¹öÀü ÄÁÆ®·Ñ ½Ã½ºÅÛÀ̶ó¸é ¾î¶² °ÍÀÌ¶óµµ ±âº»ÀûÀÎ ¹®Á¦ Çϳª¸¦ Ç®Áö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù: ¾î¶»°Ô »ç¿ëÀÚµéÀÌ Á¤º¸¸¦ °øÀ¯Çϸ鼭µµ, ¼­·Î ¼öÁ¤À» °ãÄ¡Áö ¾Ê°Ô Çϴ°¡ ÀÔ´Ï´Ù. ÀúÀå¼Ò(repository)¿¡ ´Ù¸¥ »ç¶÷ÀÌ º¯°æÇØ ³ÖÀº °ÍÀ» À߸øÇÏ¿© µ¡½á¹ö¸®´Â ÀÏÀº °£´ÜÈ÷ ÀϾ ¼ö ÀÖ½À´Ï´Ù.

ÀÌ·± »óȲÀ» »ý°¢ÇØ º¸½Ê½Ã¿À: µÎ ¸íÀÇ µ¿·á Harry¿Í Sally°¡ ÀÖ½À´Ï´Ù. µÎ »ç¶÷Àº µ¿½Ã¿¡ °°Àº ÀúÀå¼Ò(repository)³»ÀÇ ÆÄÀÏÀ» ÆíÁýÇϱâ·Î Çß½À´Ï´Ù. ¸¸¾à Harry°¡ ¸ÕÀú ±×°¡ º¯°æÇÑ °ÍÀ» ÀúÀå¼Ò(repository)¿¡ ÀÔ·ÂÇÏ°í ³ªÁß¿¡ Sally´Â À߸øÇÏ¿© HarryÀÇ °ÍÀ» »õ·Î¿î ¹öÀüÀ¸·Î µ¡¾²±âÇØ ¹ö¸³´Ï´Ù. HarryÀÇ ¹öÀüÀº ¿µ±¸È÷ ¾ø¾îÁöÁö ¾Ê½À´Ï´Ù. (¶ó°í ¸»ÇÏ´Â °ÍÀº ¹öÀü ÄÁÆ®·Ñ ½Ã½ºÅÛÀº ¸ðµç º¯°æÀ» ±â·ÏÇÏ°í Àֱ⠶§¹®¿¡) Harry °¡ ÇÑ ¼öÁ¤Àº ¸ðµÎ Sally ÀÇ »õ·Î¿î ¹öÀü¿¡´Â ³ªÅ¸³ª´Â ÀÏÀÌ ¾ø½À´Ï´Ù. ÆíÁý½Ã¿¡´Â ±×´Â HarryÀÇ º¯°æÀ» º¼ ¼ö ¾ø±â ¶§¹®ÀÔ´Ï´Ù. HarryÀÇ ÀÛ¾÷Àº ½ÇÁúÀûÀ¸·Î ¾ø¾îÁ® ¹ö¸³´Ï´Ù. ȤÀº Àû¾îµµ ÃÖ½ÅÀÇ ¹öÀüÀ¸·ÎºÎÅÍ´Â ¾ø¾îÁ® ¹ö¸³´Ï´Ù. °Ô´Ù°¡ ±×°ÍÀº µÎ ¸íÀÌ ÀǵµÇÑ °ÍÀº ¾Æ´Õ´Ï´Ù. ÀÌ°ÍÀ̾߸»·Î ¿ì¸®°¡ ÇÇÇÏÁö ¾ÊÀ¸¸é ¾È µÇ´Â »óȲÀÔ´Ï´Ù.

Figure 1-2. ÇÇÇÏÁö ¾ÊÀ¸¸é ¾È µÇ´Â ¹®Á¦


1.2.2. ¶ô-¼öÁ¤-¾ð¶ô ¹æ¹ý

¸¹Àº ¹öÀü °ü¸® ½Ã½ºÅÛ¿¡¼­´Â ¶ô-¼öÁ¤-¾ð¶ôÀÇ ¸ðµ¨À» »ç¿ëÇØ ÀÌ ¹®Á¦¸¦ Ãë±ÞÇÕ´Ï´Ù¸¸ ÀÌ°ÍÀº ¸Å¿ì ´Ü¼øÇÑ ÇØ°á ¹æ¹ýÀÔ´Ï´Ù. ±×·¯ÇÑ ½Ã½ºÅÛ¿¡¼­´Â ÀúÀå¼Ò(repository)ÁßÀÇ ÆÄÀÏÀ» º¯°æÇÒ ¼ö ÀÖ´Â °ÍÀº ÇÑ ¹ø¿¡ ÇÑ ¸í »ÓÀÔ´Ï´Ù. ÃÖÃÊ Harry´Â ÆÄÀÏ º¯°æÇϱâ Àü¿¡ ¶ô ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ÆÄÀÏÀÇ ¶ôÀº µµ¼­°üÀ¸·ÎºÎÅÍ Ã¥À» ºô¸®´Â °Í°ú ºñ½ÁÇÕ´Ï´Ù. ¸¸¾à Harry°¡ ÆÄÀÏÀ» Àá±×¸é Sally´Â °°Àº ÆÄÀÏÀ» º¯°æÇÒ ¼ö ¾ø°Ô µË´Ï´Ù. Àá±×·Á°í Çϸé ÀúÀå¼Ò(repository)´Â ±× ¿ä±¸¸¦ °ÅºÎÇÕ´Ï´Ù. Sally°¡ ÇÒ ¼ö ÀÖ´Â °ÍÀº ±× ÆÄÀÏÀ» Àд °ÍÀ¸·Î Harry°¡ ÀÏÀ» ³¡³» ¶ô ÇØÁ¦ÇØ ÁÖ´Â °ÍÀ» ±â´Ù¸®´Â °Í ¸¸ ÀÔ´Ï´Ù. Harry °¡ ¶ôÀ» ÇØÁ¦ÇÑ µÚ HarryÀÇ Â÷·Ê´Â ³¡³ª¸é À̹ø¿¡ Sally°¡ Àá±×¾î ÆíÁýÇÒ ¼ö°¡ ÀÖ´Â Â÷·Ê°¡ µË´Ï´Ù.

Figure 1-3. ¶ô-¼öÁ¤-¾ð¶ô ¹æ¹ý

¶ô-¼öÁ¤-¾ð¶ôÀÇ ¸ðµ¨ÀÇ ¹®Á¦´Â ÆÄÀÏ °ü¸®°¡ Á¶±Ý ³Ê¹« ¾î·Á¿ö ÀÚÁÖ »ç¿ëÀÚ¿¡°Ô ÀÛ¾÷ÀÇ ¹æÇØ°¡ µË´Ï´Ù:

  • Àá±×´Â °ÍÀº °ü¸®»óÀÇ ¹®Á¦¸¦ ÀÏÀ¸Å³Áöµµ ¸ð¸¨´Ï´Ù. °¡²û Harry´Â ÆÄÀÏÀ» Àá±Ù ÈÄ¿¡ ±×°ÍÀ» ÀØ¾î ¹ö¸³´Ï´Ù. ÇÑÆí Sally ´Â Âß ÀÚ½ÅÀÇ Â÷·Ê¸¦ ±â´Ù¸®°í ÀÖÀ¸¸ç ±× µ¿¾È ÇÒ ¼öÀÖ´Â ÀÏÀÌ ¾ø½À´Ï´Ù. ±×¸®°í Harry´Â ±×´ë·Î ¹ÙIJ½º¿¡ °¡ ¹ö·Á Sally·Î¼­´Â °ü¸®ÀÚ¿¡ ´ëÇؼ­ Harry°¡ °Ç ¶ôÀ» ÇØÁ¦Çϵµ·Ï ºÎŹÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ÀÌ »óȲÀº ºÒÇÊ¿äÇÑ Áö¿¬°ú ½Ã°£³¶ºñ¸¦ ÀÏÀ¸Åµ´Ï´Ù.

  • ¶ôÀº ºÒÇÊ¿äÇÑ Á÷·ÄÈ­¸¦ ÀÏÀ¸Å³Áöµµ ¸ð¸¨´Ï´Ù. Harry´Â ±× ÅؽºÆ® ÆÄÀÏÀÇ ¼±µÎÀÇ ºÎºÐÀ» ¼öÁ¤ÇÏ°í Sally´Â °°Àº ÆÄÀÏÀÇ ¸¶Áö¸· ºÎºÐÀ» ¼öÁ¤ÇÏ°í ½ÍÀº °Í»ÓÀ̶ó°í ÇÏ¸é µÎ »ç¶÷ÀÇ ¼öÁ¤Àº ¿ÏÀüÈ÷ °ãÄ¡Áö ¾Ê½À´Ï´Ù. Àû´çÇÑ ÇüÅ·Π¸ÓÁö µÇ´Â °Í Á¶Â÷ º¸ÁõÇÒ ¼ö ÀÖÀ¸¸é µÎ ¸íÀº °°Àº ÆÄÀÏÀ» µ¿½Ã¿¡ ÆíÁýÇÒ ¼ö°¡ ÀÖ¾î ±×°ÍÀÌ Å« ¹®Á¦´Â µÇÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù.

  • ¶ôÀº À߸øÇÑ ÀǹÌÀÇ ¾È½É°¨À» ÁÖ¾î ¹ö¸®´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. Harry°¡ ÆÄÀÏ A¸¦ Àá±×°í ³ª¼­ ÆíÁýÇÏ°í Sally´Â µ¿½Ã¿¡ ÆÄÀÏ B¸¦ Àá±×°í ³ª¼­ ÆíÁýÇÏ°í ÀÖ´Ù°í ÇÕ´Ï´Ù. ±×·¯³ª ¿©±â¼­ A¿Í B¿Í´Â ÀǹÌÀûÀ¸·Î ¼­·Î ÀÇÁ¸ÇÏ°í ÀÖ¾î °¢°¢ ´ëÇÏ´Â µ¶¸³ÇÑ º¯°æÀº ¾ç¸³ÇÏÁö ¾Ê´Â´Ù°í ÇսôÙ. µ¹¿¬ A¿Í B´Â ÀÌÁ¦ ÇÔ²² µ¿ÀÛÇÏÁö ¾Ê°Ô µË´Ï´Ù. ¶ôÀ» »ç¿ëÇÑ ½Ã½ºÅÛÀº ÀÌ·¯ÇÑ »óȲ¿¡´Â ¹«·ÂÇÕ´Ï´Ù. ÀÌ°ÍÀº ¾î¶² Àǹ̷ΠÀ߸øµÈ ÀǹÌÀÇ ¾È½É°¨À» ÁÖ°í ÀÖ½À´Ï´Ù. Harry³ª Sally°¡ ÆÄÀÏÀ» Àá±×´Â ÀÏ·Î °¢°¢ ¾ÈÀüÇÑ »óÅ¿¡ µé¾î°¡ ÀÚ½ÅÀÇ ÀÛ¾÷Àº ŸÀÎÀ¸·ÎºÎÅÍ ºÐ¸®µÇ¾î ÀÖ´Ù°í Âø°¢ÇÏ´Â °ÍÀº °£´ÜÈ÷ ÀϾ ¼ö ÀÖ½À´Ï´Ù. ÀÌ°ÍÀÌ ÃÖÃÊ·Î ¸»ÇÑ °Í °°Àº ¾ç¸³ÇÏÁö ¾Ê´Â º¯°æ¿¡ ´ëÇÑ ³íÀǸ¦ ¹æÇØÇØ ¹ö¸±Áöµµ ¸ð¸¨´Ï´Ù.


1.2.3. º¹»ç-¼öÁ¤-¸ÓÁö ¹æ¹ý

Subversion, CVS¿Í ¸î¸î ´Ù¸¥ ¹öÀü ÄÁÆ®·Ñ ½Ã½ºÅÛÀº ¶ôÅ· ´ë½Å¿¡ º¹»ç-¼öÁ¤-¸ÓÁö¸ðµ¨À» »ç¿ëÇÕ´Ï´Ù. ÀÌ ¸ðµ¨¿¡¼­´Â »ç¿ëÀÚ¸¶´ÙÀÇ Å¬¶óÀ̾ðÆ® ¸Ó½ÅÀº ÀúÀå¼Ò(repository)¸¦ Àоîµé¿© ÆÄÀÏÀ̳ª ÇÁ·ÎÁ§Æ®¿¡ ´ëÇÑ ÀڽŸ¸ÀÇ ÀÛ¾÷ Ä«ÇǺ»À» ¸¸µì´Ï´Ù. ±×¸®°í »ç¿ëÀÚ´Â °¢°¢ÀÌ ÀÚ½ÅÀÇ ÀÛ¾÷ Ä«ÇǺ»À» ¼öÁ¤ÇÕ´Ï´Ù. ±×¸®°í ¸¶Áö¸·¿¡ °¢°¢ÀÇ Ä«ÇǺ»Àº ÃÖÁ¾ ¹öÀü¿¡ ¸ÓÁöµË´Ï´Ù. ÀÌ·¯ÇÑ ¹öÀü °ü¸® ½Ã½ºÅÛ ´ëºÎºÐÀº ¸Ó¡ÀÛ¾÷¿¡ µµ¿òÀ» ÁÖÁö¸¸ ÃÖÁ¾ÀûÀ¸·Î´Â ¿Ã¹Ù¸¥ ¸ÓÁöÀÎÁö ¾Æ´ÑÁö´Â »ç¶÷ÀÌ Ã¥ÀÓÀ» Á®¾ß ÇÕ´Ï´Ù.

¿¹¸¦ µé¾îº¸°Ú½À´Ï´Ù. Harry¿Í Sally°¡ ÀúÀå¼Ò(repository)ÀÇ ³»¿ëÀ» º¹»çÇØ ÇÑ ÇÁ·ÎÁ§Æ®¿¡ ´ëÇØ °¢°¢ÀÇ ÀÛ¾÷ Ä«ÇǺ»À» ¸¸µé¾ú´Ù°í ÇսôÙ. µÑÀº µ¿½Ã¿¡ °¢ÀÚÀÇ ÀÛ¾÷ Ä«ÇǺ»Áß ÆÄÀÏ A¸¦ ¼öÁ¤ÇÕ´Ï´Ù. Harry°¡ Sally º¸´Ù ´Ê°Ô ÀÚ½ÅÀÇ ¼öÁ¤ºÐÀ» º¸Á¸ÇÏ·Á°í ÇÒ ¶§ ÀúÀå¼Ò(repository)´Â Harry°¡ °¡Áø ÆÄÀÏ A´Â ÃÖ½ÅÀÌ ¾Æ´Ï´Ù¶ó°í ¾Ë·ÁÁÝ´Ï´Ù. ¹Ù²Ù¾î ¸»Çϸé ÀúÀå¼Ò(repository)¿¡ ÇöÀç ÀÖ´Â ÆÄÀÏ A´Â ±×°¡ ±×°ÍÀ» º¹»çÇØ °£ ÈÄ¿¡ ´Ù¸¥ »ç¶÷¿¡ ÀÇÇØ ¼öÁ¤µÇ¾ú´Ù´Â ¸»ÀÔ´Ï´Ù. Harry´Â Subversion Ŭ¶óÀ̾ðÆ® ÇÁ·Î±×·¥¿¡°Ô ÀÚ½ÅÀÇ ÀÛ¾÷ Ä«ÇǺ» A°ú ÀúÀå¼Ò¿¡ ÀÖ´Â ÇöÀç ¹öÀüÀÇ Â÷ÀÌÁ¡À» ¸ÓÁö Çϵµ·Ï ¸í·ÉÇÕ´Ï´Ù. Sally°¡ ¼öÁ¤ÇÑ ºÎºÐ°ú Harry°¡ ¼öÁ¤ÇÑ ºÎºÐÀÌ °ãÄ¡Áö ¾Ê´Â´Ù°í¸¸ Çϸé, Çѹø¿¡ Harry°¡ µÎ°¡Áö ¼öÁ¤ºÐÀ» Àû¿ëÇؼ­ ¸Ó¡Çϱ⸸ Çϸé ÀÛ¾÷ Ä«ÇǺ»À» ÀúÀå¼Ò(repository)¿¡ ´Ù¼­ ½á ³ÖÀ» ¼ö ÀÖ½À´Ï´Ù. ¾Æ·¡ ±×¸² 2.4 º¹»ç-¼öÁ¤-¸Ó¡ Çعý°ú ±×¸² 2.5 º¹»ç-¼öÁ¤-¸Ó¡ Çعý (°è¼Ó) °¡ ¿©±â¿¡¼­ ¼³¸íÇÑ ÀýÂ÷¸¦ ³ªÅ¸³»°í ÀÖ½À´Ï´Ù.

Figure 1-4. º¹»ç-¼öÁ¤-¸ÓÁö ¹æ¹ý

Figure 1-5. º¹»ç-¼öÁ¤-¸ÓÁö. °è¼Ó.

±×·¯³ª Sally°¡ ¼öÁ¤ÇÑ ºÎºÐÀÌ Harry°¡ ¼öÁ¤ÇÑ ºÎºÐ°ú °ãÃÄ ÀÖ´Ù¸é ¾î¶»°Ô µÉ±î¿ä? ÀÌ·± »óȲÀ» Ãæµ¹À̶ó°í ºÎ¸£¸ç ÀϹÝÀûÀÎ °æ¿ì Å« ¹®Á¦´Â µÇÁö ¾Ê½À´Ï´Ù. Harry°¡ Subversion Ŭ¶óÀ̾ðÆ® ÇÁ·Î±×·¥¿¡ ÀúÀå¼Ò(repository)ÀÇ ÃÖ½ÅÀÇ º¯°æÀ» ÀÚ½ÅÀÇ ÀÛ¾÷ Ä«ÇǺ»¿¡ ¸ÓÁö Çϵµ·Ï ¿ä±¸ÇßÀ» ¶§ ±×ÀÇ AÆÄÀÏÀÇ ÀÛ¾÷ Ä«ÇǺ»Àº Ãæµ¹ »óÅ·μ­ ¸¶Å© µË´Ï´Ù. ±×´Â ¾çÂÊ ¸ðµÎÀÇ º¯°æÀÇ Ãæµ¹ÇÑ ºÎºÐÀ» º¼ ¼ö°¡ ÀÖ¾î ¾î´À ÂÊÀ» ¼±ÅÃÇÒÁö ¼±ÅÃÇÕ´Ï´Ù. ¼ÒÇÁÆ®¿þ¾î ÀÚü´Â ÀÚµ¿ÀûÀ¸·Î Ãæµ¹À» ÇØ°áÇØ ÁÖÁö ¾Ê´Â °ÍÀÌ ÁÖÀÇÇØ ÁֽʽÿÀ; Àΰ£¸¸ÀÌ ¹®Á¦¸¦ ÀÌÇØÇÏ°í ¿Ã¹Ù¸£°Ô ¼±ÅÃÇÏ´Â ÈûÀ» °¡Áö°í ÀÖ½À´Ï´Ù. Harry°¡ ÀÏ´Ü °ãÄ¡´Â ºÎºÐÀÇ ¼öÁ¤À» Á÷Á¢ ÇØ°áÇÑ ´ÙÀ½¿¡ (¿¹¸¦ µé¾î Sally¿Í Ãæµ¹¿¡ ´ëÇØ À̾߱âÇÑ ÈÄ¿¡ ) ¸ÓÁö µÈ ÆÄÀÏÀ» ÀúÀå¼Ò(repository)¿¡ ¾ÈÀüÇÏ°Ô ´Ù½Ã ½á ³Ö¾î ÀúÀåÇÒ ¼ö ÀÖ½À´Ï´Ù.

º¹»ç-¼öÁ¤-¸ÓÁö ¸ðµ¨Àº Á¶±Ý È¥¶õ½º·´°Ô µé¸±Áöµµ ¸ð¸£°ÚÁö¸¸ ½ÇÁ¦·Î ÀÛ¾÷Àº ¸Å¿ì ¸Å²ô·´°Ô ÀÌ·ç¾îÁú ¼ö ÀÖ½À´Ï´Ù. »ç¿ëÀÚ´Â µ¿½Ã¿¡ ÀÛ¾÷À» ÇÒ ¼ö ÀÖ°í »ó´ëÀÇ ¼öÁ¤À» ±â´Ù¸± ÇÊ¿ä´Â ¾ø½À´Ï´Ù. °°Àº ÆÄÀÏÀ» º¯°æÇÒ ¶§µµ ´ëºÎºÐÀÇ º¯°æÀº ÀüÇô °ãÄ¡Áö ¾Ê´Â´Ù´Â °ÍÀ» ¾Ð´Ï´Ù. ±×¸®°í Ãæµ¹À» ÇؼÒÇϴµ¥ °É¸®´Â ½Ã°£Àº ½Ã½ºÅÛÀ» Àá±Å¼­ ³¶ºñµÇ´Â ½Ã°£º¸´Ù ÈξÀ ª½À´Ï´Ù.

°á±¹ ¸ðµç ¹®Á¦´Â ÇÑ°¡Áö·Î ±Í°áµË´Ï´Ù. : »ç¿ëÀÚ »çÀÌÀÇ Ä¿¹Â´ÏÄÉÀ̼ÇÀÔ´Ï´Ù. »ç¿ëÀÚ°¡ ±×´ÙÁö ¼­·Î ÀÇ°ßÀÇ ±³È¯À» ÇÏÁö ¾ÊÀ¸¸é ¾çÂÊ ¸ðµÎÀÇ ±¸¹® ¶Ç´Â Àǹ̻ó Ãæµ¹Àº Áõ°¡ÇÕ´Ï´Ù. ¾î¶² ½Ã½ºÅÛµµ »ç¿ëÀÚ¿¡°Ô ¿Ïº®ÇÑ Ä¿¹Â´ÏÄÉÀ̼ÇÀ» °­¿äÇÒ ¼ö ¾ø°í, Àǹ̻óÀÇ Ãæµ¹À» °ËÃâÇØ ÁÙ ¼öµµ ¾ø½À´Ï´Ù. ±×·¯ÇÑ ÀÌÀ¯·Î Àá±×´Â ½Ã½ºÅÛ(locking system, Sourcesafe °°Àº µµ±¸)ÀÌ Ãæµ¹À» ÇÇÇÒ ¼ö°¡ ÀÖ´Ù°í ÇÏ´Â À߸øµÈ º¸Áõ¿¡ ¾È½ÉÇÒ ÀÌÀ¯´Â ¾ø½À´Ï´Ù. ½ÇÁ¦·Î´Â ¶ôÀº »ý»ê¼ºÀ» ¶³¾î¶ß¸®´Â °Í ÀÌ¿Ü¿¡´Â ¾Æ¹«°Íµµ ¾Æ´Õ´Ï´Ù.


1.3. ½ÇÇàÁßÀÇ Subversion


1.3.1. ÀÛ¾÷ Ä«ÇǺ»

ÀÌ¹Ì µ¶ÀÚµéÀÌ ÀÛ¾÷ Ä«ÇǺ»¿¡ ´ëÇØ ÀоúÀ¸¸®¶ó º¸°í Subversion Ŭ¶óÀ̾ðÆ®°¡ ÀÛ¾÷ Ä«ÇǺ»À» ¸¸µé°í »ç¿ëÇÏ´Â ¸ð½ÀÀ» º¸°Ú½À´Ï´Ù.

Subversion ÀÛ¾÷ Ä«ÇǺ»Àº ÀÚ½ÅÀÇ ·ÎÄà ½Ã½ºÅÛ»óÀÇ º¸Åë µð·ºÅ丮 Æ®¸®·Î µÇ¾î ÀÖ°í, ±× ¾È¿¡´Â ÆÄÀϵéÀÌ µé¾î ÀÖ½À´Ï´Ù. ´ç½ÅÀÌ ÆíÁýÇÒ ¼ö ÀÖ´Â ÆÄÀÏÀÌ ¼Ò½º ÄÚµå ÆÄÀÏÀ̶ó¸é ±×°ÍÀº ÄÄÆÄÀÏ ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÛ¾÷ Ä«ÇǺ»Àº ÀڽŸ¸ÀÇ ÀÛ¾÷ ¿µ¿ª ÀÔ´Ï´Ù: Subversion¿¡°Ô ±×·¯¶ó°í Çϱâ Àü±îÁö ÀÚ½ÅÀÇ ÀÛ¾÷ Ä«ÇǺ»Àº ´Ù¸¥ »ç¶÷ÀÇ º¯°æÀÇ ¿µÇâÀ» ¹ÞÁö ¾Ê°í, ¶ÇÇÑ ÀÚ½ÅÀÇ ¼öÁ¤ÀÌ ³²¿¡°Ô º¸¿©ÁöÁöµµ ¾Ê½À´Ï´Ù.

ÀÛ¾÷ Ä«ÇǺ»ÀÇ ÆÄÀÏÀ» ¼öÁ¤ÇÏ°í Àß µ¿ÀÛÇÏ´Â °ÍÀ» È®ÀÎÇÑ ÈÄ¿¡ SubversionÀº ±× º¯°æµÈ Á¡À» °°Àº ÇÁ·ÎÁ§Æ®ÀÇ ´ç½Å°ú ÇÔ²² ÀÛ¾÷ÇÏ°í ÀÖ´Â ´Ù¸¥ »ç¶÷¿¡°Ô °ø°³Çϱâ À§ÇÑ Ä¿¸àµå¸¦(ÀúÀå¼Ò(repository)¿¡ Ä¿¹ÔÇÏ´Â °Í) ÁغñÇÕ´Ï´Ù. ¸¸¾à ´Ù¸¥ »ç¶÷ÀÌ ÀÚ±â ÀÚ½ÅÀÇ º¯°æÀ» °ø°³ÇßÀ» ¶§ ¿¡´Â SubversionÀº ±× º¯°æÀ» ÀÚ½ÅÀÇ ÀÛ¾÷ Ä«ÇǺ»¿¡ ¸ÓÁöÇÏ´Â Ä¿¸àµå¸¦ ÁغñÇÕ´Ï´Ù. (ÀúÀå¼Ò(repository)ÀÇ ³»¿ëÀ» ÀоîµéÀÌ´Â °Í)

ÀÛ¾÷ Ä«ÇǺ»¿¡´Â Subversion¿¡ ÀÇÇØ °ü¸®µÇ´Â ¸î°³ÀÇ Æ¯¼öÇÑ ÆÄÀÏÀÌ ÀÖ½À´Ï´Ù. ±× ÆÄÀϵ鿡 ÀÇÇØ(ÀÐ°í ¾²±â µîÀÇ) Ä¿¸àµå¸¦ ½ÇÇàÇÕ´Ï´Ù. ƯÈ÷ ÀÛ¾÷ Ä«ÇǺ» µð·ºÅ丮¿¡´Â .svnÀ̶ó´Â À̸§ÀÇ °ü¸® µð·ºÅ丮°¡ ¼­ºê µð·ºÅ丮·Î ÀÖ½À´Ï´Ù. °ü¸® µð·ºÅ丮ÀÇ °¢°¢ÀÇ ÆÄÀÏÀº SubversionÀÌ ¾î´À ÆÄÀÏ¿¡ ¾ÆÁ÷ °ø°³ÇÏ°í ÀÖÁö ¾Ê´Â º¯°æµÈ Á¡ÀÌ ÀÖ´ÂÁö ¾î´À ÆÄÀÏÀÌ ´Ù¸¥ »ç¶÷ÀÇ ÀÛ¾÷¿¡ ÀÇÇØ ÃÖ½ÅÀÎÁö ¾Æ´ÑÁö¸¦ ÀÌÇØÇÏ´Â °ÍÀ» µ½´Â °ÍÀÔ´Ï´Ù.

ÀüÇüÀûÀÎ Subversion ÀúÀå¼Ò(repository)´Â º¹¼öÀÇ ÇÁ·ÎÁ§Æ®ÀÇ ÆÄÀÏ(¶Ç´Â ¼Ò½º ÄÚµå)¸¦ ÀúÀåÇÏ°í ÀÖ½À´Ï´Ù. º¸Åë °¢°¢ÀÇ ÇÁ·ÎÁ§Æ®´Â ÀúÀå¼Ò(repository)ÀÇ ÆÄÀÏ ½Ã½ºÅÛ Æ®¸®ÁßÀÇ ¼­ºê µð·ºÅ丮·Î µÇ¾î ÀÖ½À´Ï´Ù. ÀÌ ±¸¼º¿¡ ÀÇÇØ »ç¿ëÀÚÀÇ ÀÛ¾÷ Ä«ÇǺ»Àº º¸Åë ÀúÀå¼Ò(repository)ÀÇ Æ¯Á¤ÀÇ ºÎºÐ¿¡ ´ëÀÀÇÏ°í ÀÖ½À´Ï´Ù.

¿¹¸¦ µé¾î µÎ °³ÀÇ ¼ÒÇÁÆ®¿þ¾î ÇÁ·ÎÁ§Æ®¸¦ Æ÷ÇÔÇÑ ÀúÀå¼Ò(repository)°¡ ÀÖ´Ù°í ÇսôÙ.

Figure 1-6. ÀúÀå¼Ò(repository)ÀÇ ÆÄÀÏ ½Ã½ºÅÛ

¸»À» ¹Ù²Ù¾î ¸»Çϸé ÀúÀå¼Ò(repository)ÀÇ ÃÖ»óÀ§ÀÇ µð·ºÅ丮¿¡´Â µÎ °³ÀÇ ¼­ºê µð·ºÅ丮 : paint¿Í calc °¡ ÀÖ½À´Ï´Ù.

ÀÛ¾÷ Ä«ÇǺ»À» °¡Áö°í ¿À±â À§ÇØ ÀúÀå¼Ò(repository)ÁßÀÇ ¼­ºê Æ®¸®¸¦ üũ¾Æ¿ôÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. (check out À̶ó´Â ¸»Àº ¹«¾ùÀΰ¡¸¦ Àá±×°Å³ª º¸È£ÇÏ´Â °Í °°Àº Àǹ̰¡ ÀÖ½À´Ï´Ù¸¸ ±×·±°Í °°Áö´Â ¾Ê½À´Ï´Ù; ±×°ÍÀº ´ÜÁö ÀÚ½ÅÀ» À§ÇÑ ÇÁ·ÎÁ§Æ®ÀÇ º¹»ç¸¦ ¸¸µé »ÓÀÔ´Ï´Ù. ) ¿¹¸¦ µé¾î /calc¸¦ üũ¾Æ¿ô ÇÏ´Â °ÍÀ¸·Î ÀÛ¾÷ Ä«ÇǺ»À» °¡Á®¿Ã ¼ö ÀÖ½À´Ï´Ù.:

$ svn checkout http://svn.example.com/repos/calc
A  calc
A  calc/Makefile
A  calc/integer.c
A  calc/button.c

$ ls -a calc
Makefile  integer.c  button.c  .svn/

AÀÇ ¹®ÀÚ·Î ½ÃÀ۵Ǵ À϶÷Àº SubversionÀÌ ´ç½ÅÀÇ ÀÛ¾÷ Ä«ÇǺ»¿¡ ¸î°³ÀÇ ÆÄÀÏÀ» Ãß°¡Çß´ÂÁö ³ªÅ¸³»°í ÀÖ½À´Ï´Ù. ÀÌ°ÍÀ¸·Î ÀúÀå¼Ò(repository)¿¡ ÀÖ´Â /calcµð·ºÅ丮ÀÇ ÀÛ¾÷ Ä«ÇǺ»À» °¡Áö°í ¿Ã ¼ö ÀÖ¾ú½À´Ï´Ù. ÃÖÃÊ¿¡ ¸»ÇÑ °Íó·³ üũ¾Æ¿ô½Ã¿¡´Â ¶Ç ÇϳªÀÇ .svn µð·ºÅ丮°¡ »ý±é´Ï´Ù. ÀÌ°ÍÀº Subversion¿¡ ÇÊ¿äÇÑ Ãß°¡ Á¤º¸¸¦ ÀúÀåÇÏ´Â Àå¼Ò°¡ µË´Ï´Ù.

button.c·Î º¯°æÀ» ´õÇÏ´Â °ÍÀ» »ý°¢ÇØ º¸°Ú½À´Ï´Ù. .svn µð·ºÅ丮´Â ÆÄÀÏÀÇ ¼öÁ¤ ½Ã°¢°ú ¿ø·¡ÀÇ ³»¿ëÀ» ±â¾ïÇÏ°í ÀÖÀ¸¹Ç·Î SubversionÀº ±× ÆÄÀÏ¿¡ ¾î¶² º¯°æÀÌ µÇ¾ú´ÂÁö¸¦ Ç¥½Ã ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª SubversionÀº ¸í½ÃÀûÀ¸·Î Ç¥½ÃÇØ Áà¶ó°í ¸»ÇØÁú ¶§±îÁö ±× º¯°æÀ» Ç¥½Ã ÇÏÁö ¾Ê½À´Ï´Ù. ÀÚ½ÅÀÇ º¯°æÀ» °ø°³ÇÏ´Â Á¶ÀÛÀ» º¯°æÁ¡ÀÇ Ä¿¹Ô (ȤÀº üũÀÎ)À̶ó°í ¸»ÇÕ´Ï´Ù.

º¯°æÁ¡À» ´Ù¸¥ »ç¶÷¿¡°Ô °ø°³ÇÏ·Á¸é SubversionÀÇ commit Ä¿¸àµå¸¦ »ç¿ëÇÕ´Ï´Ù:

$ svn commit button.c
Sending button.c
Transmitting file data..
Committed revision 57.

ÀÌ°ÍÀ¸·Î button.c¿¡ÀÇ º¯°æÀº ÀúÀå¼Ò(repository)¿¡ Ä¿¹ÔµÇ¾ú½À´Ï´Ù. ¸¸¾à ´Ù¸¥ »ç¿ëÀÚ°¡ /calc ÀÇ ÀÛ¾÷ Ä«ÇǺ»À» ¸¸µå´Âµ¥ üũ¾Æ¿ô Çϸé ÃֽŠ¹öÀüÁß¿¡ ´ç½ÅÀÇ º¯°æÁ¡À» º¸°Ô µÇ°ÚÁö¿ä.

ÇÔ²² ÀÛ¾÷ÇÏ°í ÀÖ´Â Sally °¡ ´ç½ÅÀÌ Ã¼Å©¾Æ¿ô ÇÑ °Í°ú °°Àº ½Ã°¢¿¡ /calcÀÇ ÀÛ¾÷ Ä«ÇǺ»À» ÀڽſëÀ¸·Î üũ¾Æ¿ô Çß´Ù°í ÇսôÙ. ´ç½ÅÀÌ button.c ¿¡ÀÇ ÀÚ½ÅÀÇ º¯°æÀ» Ä¿¹ÔÇصµ SallyÀÇ ÀÛ¾÷ Ä«ÇǺ»Àº º¯°æµÇÁö ¾Ê´Â »óÅÂÀΠäÀÔ´Ï´Ù. Subverson´Â »ç¿ëÀÚÀÇ ¿ä±¸¿¡ µû¶ó¼­´Â ±ÛÀÚ°¶ó°í ÀÛ¾÷ Ä«ÇǺ»ÀÇ ³»¿ëÀ» º¯°æÇÕ´Ï´Ù.

ÀÛ¾÷ ³»¿ëÀ» ÇÁ·ÎÁ§Æ®ÀÇ ÃֽŠ»óÅ·ΠÇÏ·Á¸é Sally´Â Subversion¿¡ ÀÚ½ÅÀÇ ÀÛ¾÷ Ä«ÇǺ»À» °»½Å Çϵµ·Ï(µíÀÌ) ÀÇ·ÚÇÏÁö ¾ÊÀ¸¸é µÇÁö ¾Ê½À´Ï´Ù. ÀÌ°Í¿¡´Â update Ä¿¸àµå¸¦ »ç¿ëÇÕ´Ï´Ù. ÀÌ°ÍÀº ´ç½ÅÀÇ º¯°æÀ» ±×³àÀÇ ÀÛ¾÷ Ä«ÇǺ»¿¡ ¸ÓÁö ÇÏ°í ±×³à°¡ üũ ¾Æ¿ô ÇÑ ÈÄ¿¡ ´Ù¸¥ »ç¶÷ÀÌ Ä¿¹ÔÇÑ ¸ðµç ºÎºÐ¿¡ ´ëÇؼ­µµ ¸ÓÁö ÇÕ´Ï´Ù.

$ pwd
/home/sally/calc

$ ls -a 
.svn/ Makefile integer.c button.c

$ svn update
U button.c

svn update Ä¿¸àµå·ÎºÎÅÍÀÇ Ãâ·ÂÀº SubversionÀÌ button.cÀÇ ³»¿ëÀ» °»½ÅÇÑ °ÍÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù. Sally ´Â ¾î´À ÆÄÀÏÀ» °»½Å ÇÏ´ÂÁö¸¦ ÁöÁ¤ÇÒ ÇÊ¿ä°¡ ¾ø´Âµ¥ ÁÖÀÇÇØ ÁÖ¼¼¿ä. SubversionÀº . svnµð·ºÅ丮ÀÇ Á¤º¸¿Í ÀúÀå¼Ò(repository)ÀÇ Á¤º¸¸¦ »ç¿ëÇØ ¾î´À ÆÄÀÏÀ» °»½ÅÇÏÁö ¾ÊÀ¸¸é ¾È µÇ´Â°¡ (À»)¸¦ °áÁ¤ÇÕ´Ï´Ù.


1.3.2. ¸®ºñÀü

svn commitÁ¶ÀÛÀº ÇϳªÀÇ Æ®·£Àè¼Ç(transaction) À¸·Î¼­ ÀÓÀÇÀÇ ¼öÀÇ ÆÄÀÏ, µð·ºÅ丮¿¡ ´ëÇÑ º¯°æÁ¡À» °ø°³ÇÏ´Â ÀÏÀÌ »ý±é´Ï´Ù. ÀÛ¾÷ Ä«ÇǺ»Áß¿¡¼­ ÆÄÀÏÀÇ ³»¿ëÀ» ¹Ù²Ù°Å³ª »õ·Ó´Ù ÆÄÀÏÀ» ¸¸µé°Å³ª »èÁ¦Çϰųª À̸§À» ¹Ù²Ù°Å³ª ÆÄÀÏÀ̳ª µð·ºÅ丮¸¦ º¹»çÇÑ µÚ ±×·¯ÇÑ º¯°æÁ¡ÀÇ Àüü¸¦ ¿ÏÀüÇÑ »ç¶÷ µ¢¾î¸®ÀÇ °ÍÀ¸·Î ÇØ Ä¿¹ÔÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

ÀúÀå¼Ò(repository)¿¡¼­´Â °¢°¢ÀÇ Ä¿¹ÔÀº ÇϳªÀÇ ºÐÇÒÇÒ ¼ö ¾ø´Â »ç¶÷ µ¢¾î¸®ÀÇ Æ®·£Àè¼Ç(transaction)·Î¼­ Ãë±ÞÇÕ´Ï´Ù. ¸ðµç Ä¿¹Ô¿¡ º¯°æÀº ¿ÏÀüÇÏ°Ô ½ÇÇàµÇ´ÂÁö ÀüÇô ½ÇÇàµÇÁö ¾Ê´Â°¡ÀÇ ¾î´À ÂÊÀÎÁöÀÔ´Ï´Ù. SubversionÀº ÀÌ ºÒºÐÇÒÀÇ ¼ºÁúÀ» ÇÁ·Î±×·¥ ÀåÇØ, ½Ã½ºÅÛ ÀåÇØ, ³×Æ®¿öÅ© ÀåÇØµî ±× ¿ÜÀÇ Á¶ÀÛÀÌ ÀÖ´Â °æ¿ì¿¡µµ À¯ÁöÇÏ·Á°í ÇÕ´Ï´Ù.

ÀúÀå¼Ò(repository)°¡ Ä¿¹ÔÀ» ¹Þ¾ÆµéÀÏ ¶§´Â Ç×»ó ¸®ºñÀü À¸·Î ºÒ¸®´Â ÆÄÀÏ ½Ã½ºÅÛ Æ®¸®ÀÇ »õ·Î¿î »óŸ¦ ¸¸µì´Ï´Ù. °¢°¢ÀÇ ¸®ºñÀü¿¡´Â ÀÏÀÇÀÎ ÀÚ¿¬¼ö¸¦ ÇÒ´çÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀüÀÇ ¹öÀüº¸´Ù ÈÄÀÇ ¹öÀüÀÌ ¼ö°¡ Ä¿Áý´Ï´Ù. ÀúÀå¼Ò(repository) ½Å±Ô ÀÛ¼º½ÃÀÇ ÃÖÃÊÀÇ ¹öÀüÀº Á¦·Î·Î ·çÆ® µð·ºÅ丮 Àܷ̿δ ¾Æ¹«°Íµµ Æ÷ÇԵǾî ÀÖÁö ¾Ê½À´Ï´Ù.

ÀúÀå¼Ò(repository)¸¦ ½Ã°¢È­ÇÏ´Â ´É¼÷ÇÑ ¹æ¹ýÀº ÀÏ·Ä¿¡ ÁÙ¼± ³ª¹«·Î¼­ ÆľÇÇÑ´Ù ÀÏÀÔ´Ï´Ù. 0À¸·ÎºÎÅÍ ½ÃÀÛÇÏ´Â ¸®ºñÀü ¹øÈ£°¡ ¿ÞÂÊ¿¡¼­ ¿À¸¥ÂÊÀ¸·Î Ãß°¡µÇ¾î °£´Ù »óȲÀ» »ó»óÇØ ÁÖ¼¼¿ä. °¢°¢ÀÇ ¸®ºñÀü ¹øÈ£¿¡´Â ´ëÀÀÇß´Ù ÆÄÀÏ ½Ã½ºÅÛ¸ñÀÌ ÀÖ¾î °¢°¢ÀÇ ³ª¹«´Â °¢°¢ÀÇ Ä¿¹Ô ÈÄÀÇ ÀúÀå¼Ò(repository) »óŸ¦ ³ªÅ¸³»´Â "snapshot" ÀÔ´Ï´Ù.

Figure 1-7. ÀúÀå¼Ò(repository)

ÀÛ¾÷ Ä«ÇǺ»Àº Ç×»ó ÀúÀå¼Ò(repository)ÀÇ ¾î¶² °ÍÀ̳ª ÇϳªÀÇ ¸®ºñÀü ´ëÀÀÇÏ°í ÀÖ´Ù°í´Â ÇÑÁ¤µÇÁö ¾Ê´Â °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä. ÀÛ¾÷ Ä«ÇǺ»Àº ¿©·¯°³ÀÇ ´Ù¸¥ ¸®ºñÀüÀ¸·ÎºÎÅÍ ¾òÀº ÆÄÀÏ (À»)¸¦ Æ÷ÇÔÇÏ°í ÀÖÀ»Áöµµ ¸ð¸¨´Ï´Ù. ¿¹¸¦ µé¾î ÃֽŠ¸®ºñÀü ¹øÈ£°¡ 4ÀÎ ÀúÀå¼Ò(repository)·ÎºÎÅÍ ÀÛ¾÷ Ä«ÇǺ»À» üũ¾Æ¿ô Çß´Ù°í ÇսôÙ:

calc/Makefile:4
     integer.c:4
     button.c:4

ÀÌ ½ÃÁ¡¿¡¼­´Â ÀÛ¾÷ Ä«ÇǺ»Àº ÀúÀå¼Ò(repository)ÀÇ ¸®ºñÀü 4¿Í ÀÏÄ¡ÇÏ°í ÀÖ½À´Ï´Ù. ±×·¯³ª ¿©±â¼­ button.c·Î º¯°æÀ» ´õÇÏ°í ±× º¯°æÀ» Ä¿¹ÔÇß´Ù°í ÇÕ´Ï´Ù. ±× ¹Û¿¡ Ä¿¹ÔÇÑ »ç¶÷ÀÌ ¾ø´Â °æ¿ì À̹ø Ä¿¹ÔÀº ÀúÀå¼Ò(repository)ÀÇ ¹öÀüÀ» 5¿¡ ÁÖ¾î ÀÛ¾÷ Ä«ÇǺ»ÀÇ ³»¿ëÀº ¾Æ·¡¿Í °°ÀÌ µË´Ï´Ù.

calc/Makefile:4
     integer.c:4
     button.c:5

ÀÌ ½ÃÁ¡¿¡¼­ Sally°¡ integer.c¿¡ ´ëÇÑ ¼öÁ¤À» Ä¿¹ÔÇØ ¸®ºñÀü 6À» ¸¸µé¾ú´Ù°í ÇսôÙ. À̶§ svn update Ä¿¸Çµå·Î ´ç½ÅÀÇ ÀÛ¾÷ Ä«ÇǺ»À» °»½ÅÇÏ¸é ´ÙÀ½°ú °°ÀÌ µÇ°ÚÁö¿ä:

calc/Makefile:6
     integer.c:6
     button.c:6

SallyÀÇ integer.c¿¡ÀÇ º¯°æÀº ´ç½ÅÀÇ ÀÛ¾÷ Ä«ÇǺ»¿¡ ³ªÅ¸³ªÁö¸¸ button.c ¿¡ ´ëÇÑ ´ç½ÅÀÇ º¯°æÀº ±×´ë·ÎÀÔ´Ï´Ù. ÀÌ ¿¹¿¡¼­´Â MakefileÀÇ ÅؽºÆ®´Â ¸®ºñÀü 4,5,6À¸·Î ¿ÏÀüÈ÷ µ¿ÀÏÇÑ °ÍÀÌÁö¸¸ SubversionÀº ´ç½ÅÀÇ ÀÛ¾÷ Ä«ÇǺ»ÁßÀÇ MakefileÀÇ ¸®ºñÀüÀ» 6À¸·Î¼­ ±×°ÍÀÌ ÃÖ½ÅÀÎ °ÍÀ» Ç¥ÇöÇÕ´Ï´Ù. ±×·¡¼­ ÀÚ½ÅÀÇ ÀÛ¾÷ Ä«ÇǺ»À» ¿ÏÀüÈ÷ ¾÷µ¥ÀÌÆ®¸¦ ÇßÀ» ¶§¿¡´Â ÀϹÝÀûÀ¸·Î ÀÛ¾÷ Ä«ÇǺ»Àº ÀúÀå¼Ò(repository)¿¡ Àִ ƯÁ¤ ¸®ºñÀü°ú ¿ÏÀüÇÏ°Ô ÀÏÄ¡ÇÕ´Ï´Ù.


1.3.3. ÀÛ¾÷ Ä«ÇǺ»Àº ¾î¶»°Ô ÀúÀå¼Ò(repository)¸¦ µÚÂÑÀ»±î.

ÀÛ¾÷ Ä«ÇǺ»ÁßÀÇ °¢°¢ÀÇ ÆÄÀÏ¿¡ ´ëÇØ SubversionÀº µÎ º»ÁúÀûÀÎ Á¤º¸¸¦. .svn/°ü¸® ¿µ¿ª¿¡ ±â·ÏÇÕ´Ï´Ù:

  • ´ç½ÅÀÇ ÀÛ¾÷ ÆÄÀÏÀº ¾î´À ¸®ºñÀü¿¡ ±Ù°ÅÇÏ°í ÀÖÀ»±î (ÀÌ°ÍÀº ÆÄÀÏÀÇ ÀÛ¾÷ ¸®ºñÀüÀ¸·Î ºÒ¸³´Ï´Ù) ±×¸®°í

  • ÀúÀå¼Ò(repository)¿¡ ÀÇÇØ ÀÛ¾÷ Ä«ÇǺ»°¡ ¸¶Áö¸·¿¡ °»½ÅµÇ¾úÀ» ¶§ °¢

ÀúÀå¼Ò(repository)¿ÍÀÇ ±³È¯À¸·Î ¾òÀº ÀÌ Á¤º¸·Î SubversionÀº ÀÛ¾÷ ÆÄÀÏÀÇ °¢°¢ÀÌ ÀÌÇÏÀÇ 4°³ »óÅÂÀÇ ¾î´À °ÍÀ¸·Î ÀÖÀ»±î¸¦ ¸»ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù:

º¯°æµÇÁö ¾ÊÀ½ ÃÖ½Å

ÀÛ¾÷ µð·ºÅ丮ÀÇ ÆÄÀÏÀº º¯°æµÇ¾î ÀÖÁö ¾Ê°í ±× ÀÛ¾÷ ¸®ºñÀü ÀÌÈÄ¿¡ ÀϾ ÀúÀå¼Ò(repository)¿¡ ´ëÇÑ Ä¿¹Ô¿¡¼­µµ ±× ÆÄÀÏ¿¡ ´ëÇÑ º¯°æÀÌ ¾ø´Â »óÅÂ. ±× ÆÄÀÏ¿¡ ´ëÇÑ svn commitÀ» ½ÇÇàÇصµ ¾Æ¹«°Íµµ ÇÏÁö ¾Ê°í svn update ¸í·Éµµ ¾Æ¹«°Íµµ ÇÏÁö ¾Ê½À´Ï´Ù.

ÃֽŠº¯°æÁ¡

ÀÛ¾÷ Ä«ÇǺ»¿¡ ÀÖ´Â ÆÄÀÏÀÌ º¯°æµÇ¾ú°í ±× ÆÄÀÏÀÇ º£À̽º ¸®ºñÀú ÀÌÈÄ¿¡ ÀúÀå¼Ò(repository)¿¡ ÀÖ´Â ÆÄÀÏÀº º¯°æµÇÁö ¾ÊÀº »óÅÂ. ÀÛ¾÷ Ä«ÇǺ»¿¡ ¾ÆÁ÷ Ä¿¹ÔÇÏ°í ÀÖÁö ¾Ê´Â º¯°æÀÌ ÀÖÀ¸¹Ç·Î ±× ÆÄÀÏ¿¡ ´ëÇÑ svn commit´Â ´ç½ÅÀÇ º¯°æÁ¡À» ±×´ë·Î ÀúÀå¼Ò¿¡ ¹Ý¿µÇÏ°í ¼º°øÇÒ °ÍÀÔ´Ï´Ù. svn update´Â ¾Æ¹«°Íµµ ÇÏÁö ¾Ê½À´Ï´Ù.

º¯°æµÇÁö ¾ÊÀ½ ÃÖ½ÅÀº ¾Æ´Ô

ÀÛ¾÷ µð·ºÅ丮¿¡ ÀÖ´Â ÆÄÀÏÀÌ º¯°æµÇÁö´Â ¾Ê¾ÒÀ¸³ª ÀúÀå¼Ò(repository)¿¡´Â º¯°æÀÌ ÀÖ¾ú½À´Ï´Ù. ÀÌ ÆÄÀÏÀº ÃֽŠ¸®ºñÀü°ú µ¿ÀÏÇÏ°Ô ¸¸µé±â À§Çؼ­ °»½ÅÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. ±× ÆÄÀÏ¿¡ ´ëÇÑ svn commit Ä¿¸àµå´Â ¾Æ¹«°Íµµ ÇÏÁö ¾Ê½À´Ï´Ù. ±× ÆÄÀÏ¿¡ ´ëÇÑ svn update´Â ´ç½ÅÀÇ ÀÛ¾÷ º¹»ç¿¡ ÃÖ½ÅÀÇ ¼öÁ¤Á¡À» Àû¿ëÇÕ´Ï´Ù.

º¯°æµÊ ÃֽŠ¾Æ´Ô.

ÆÄÀÏÀº ÀÛ¾÷ Ä«ÇǺ»¿¡¼­µµ ÀúÀå¼Ò(repository)¿¡¼­µµ º¯°æµÇ¾ú½À´Ï´Ù. ÆÄÀÏ¿¡ ´ëÇÑ svn commit´Â out-of-date ¿¡·¯¸¦ ÀÏÀ¸Åµ´Ï´Ù. ¸ÕÀú ±× ÆÄÀÏÀ» °»½ÅÇØ¾ß ÇÕ´Ï´Ù. ÆÄÀÏ¿¡ ´ëÇÑ svn update´Â °ø°³µÈ º¯°æÁ¡ À» ÀÛ¾÷ Ä«ÇǺ»ÀÇ º¯°æ°ú ÇÕÄ¡·Á°í ÇÒ °ÍÀÔ´Ï´Ù. SubversionÀÌ ÀÚµ¿À¸·Î ÇÕÄ¥ ¼ö ¾øÀ» °æ¿ì »ç¿ëÀÚ°¡ Ãæµ¹À» ÇØ°áÇϵµ·Ï ±×´ë·Î µÓ´Ï´Ù.

ÀÌ°Í¿¡´Â ¿©·¯°¡Áö Á¤º¸ÀÇ º¯È­¸¦ ÂÑÀ» ÇÊ¿ä°¡ ÀÖ´Ù°í »ý°¢ÇÕ´Ï´Ù¸¸ svn status Ä¿¸Çµå¸¦ »ç¿ëÇÏ¸é ´ç½ÅÀÇ ÀÛ¾÷ Ä«ÇǺ»¿¡ ÀÖ´Â ¸ðµç ÆÄÀÏÀÇ »óŸ¦ Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ Ä¿¸àµå¿¡ ´ëÇÑ º¸´Ù ÀÚ¼¼ÇÑ Á¤º¸´Â svn status > (À»)¸¦ ºÁ ÁÖ¼¼¿ä.


1.3.4. È¥ÇÕ ¸®ºñÀüÀÇ Á¦¾à

SubversionÀº ÇÒ¼öÀÖ´Â ÇÑ À¯¿¬ÇÏ°Ô µ¿ÀÛÇÏ´Â °ÍÀº ¿øÄ¢À¸·Î »ï°í ÀÖ½À´Ï´Ù. ÀÌ Æ¯º°ÇÑ ¿¹·Î¼­ ÀÛ¾÷ Ä«ÇǺ»¿¡ º¹¼öÀÇ ¸®ºñÀü ¹øÈ£¸¦ °øÁ¸½ÃÅ°´Â °ÍÀ» µé ¼ö ÀÖ½À´Ï´Ù.

óÀ½¿¡´Â ¾î°¼­ ÀÌ·¯ÇÑ À¯¿¬¼ºÀÌ ÀåÇØ°¡ ¾Æ´Ï¶ó ±â´ÉÀ̶ó°í »ý°¢µÇ´Â °ÍÀÎÁö ÀÌÇØÇÒ ¼ö ¾øÀ»Áöµµ ¸ð¸¨´Ï´Ù. ÀúÀå¼Ò(repository)·ÎÀÇ Ä¿¹ÔÀÌ ¿Ï·áµÇ¸é ¹æ±Ý Ä¿¹ÔµÈ ÆÄÀÏ°ú µð·ºÅ丮°¡ ³ª¸ÓÁöÀÇ ÀÛ¾÷ Ä«ÇǺ»ÀÇ ¸®ºñÀüº¸´Ù »õ·Î¿öÁý´Ï´Ù. ÀÌ°ÍÀº Á¶±Ý È¥¶õ½º·´°Ô º¸ÀÔ´Ï´Ù. Àü¿¡ ¸»ÇÑ °Íó·³ ÀÛ¾÷ Ä«ÇǺ»Àº svn update ¸¦ ½ÇÇàÇÏ´Â °ÍÀ¸·Î Ç×»ó ÇϳªÀÇ ÀÛ¾÷ ¸®ºñÀüÀ¸·Î ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ¿Ö ÀϺη¯ ´Ù¸¥ ÀÛ¾÷ ¸®ºñÀüÀ» °øÁ¸½ÃÅ°·Á°í ÇÒ±î¿ä?

ÇÁ·ÎÁ§Æ®°¡ ¸Å¿ì º¹ÀâÇÑ °æ¿ì¸¦ »ý°¢ÇØ º¸¼¼¿ä. ¿©·¯ºÐÀº ÀÛ¾÷ Ä«ÇǺ»ÀÇ ÀϺθ¦ ¿¹Àü ¹öÀüÀ¸·Î °­Á¦·Î "µÇµ¹¸®´Â ÀÏÀÌ ÁÁÀº ÇØ°áÃ¥ÀÎ °æ¿ì°¡ ¸¹À½À» ¾Ë°ÔµÉ °ÍÀÔ´Ï´Ù. ¾î¶»°Ô µÇµ¹¸®´ÂÁö´Â 3Àå¿¡¼­ ¼³¸íÇÕ´Ï´Ù. ¾Æ¸¶ ¿©·¯ºÐÀº ¼­ºê µð·ºÅ丮¿¡ ÀÖ´Â ¼­ºê ¸ðµâÀÇ ÀÌÀüÀÇ ¹öÀüÀ» Å×½ºÆ®Çغ¸°í ½ÍÀ» °ÍÀÔ´Ï´Ù. ¶Ç´Â ÃÖ½ÅÀÇ ¹öÀüÇÏ¿¡¼­ ÇϳªÀÇ ÆÄÀÏÀÇ ÀÌÀüÀÇ ¿©·¯°¡Áö ¹öÀüÀÌ Àß ¿òÁ÷ÀÌ´ÂÁö È®ÀÎÇÏ°í ½ÍÀ» °ÍÀÔ´Ï´Ù. "

ÀÛ¾÷ Ä«ÇǺ» ¾È¿¡¼­ ´Ù¸¥ ¸®ºñÀüÀ» ¼¯¾î¼­ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù¸¸ À¯¿¬¼º¿¡ Á¦ÇÑÀÌ ÀÖ½À´Ï´Ù.

¿ì¼±, ¿ÏÀüÇÏ°Ô ÃÖ½ÅÀÌ ¾Æ´Ñ ÆÄÀÏÀ̳ª µð·ºÅ丮ÀÇ »èÁ¦¸¦ Ä¿¹Ô ÇÒ ¼ö ¾ø½À´Ï´Ù. ¸¸¾à »õ·Î¿î ¹öÀüÀÇ ÆÄÀÏÀ̳ª µð·ºÅ丮°¡ ÀúÀå¼Ò(repository)¿¡ ÀÖ´Ù¸é »èÁ¦ÇÏ·Á´Â ½Ãµµ´Â °ÅºÎµË´Ï´Ù. ÀÌ°ÍÀº ¿©·¯ºÐÀÌ ¾ÆÁ÷ ¾ËÁö ¸øÇÑ º¯°æ »çÇ×À» ½Ç¼ö·Î Áö¿ö ¹ö¸®´Â °ÍÀ» ¸·À¸·Á´Â °ÍÀÔ´Ï´Ù.

±×¸®°í ÃÖ½ÅÀ¸·Î °»½ÅÇÏÁö ¾ÊÀ¸¸é µð·ºÅ丮ÀÇ ¸ÞŸµ¥ÀÌŸÀÇ º¯°æÀ» Ä¿¹Ô ÇÒ ¼ö ¾ø½À´Ï´Ù. ÆÄÀÏÀ̳ª µð·ºÅ丮¿¡ "¼Ó¼º"À» ºÙÀÌ´Â ¹æ¹ý¿¡ ´ëÇؼ­´Â 6Àå¿¡¼­ ¼³¸íÇÕ´Ï´Ù. µð·ºÅ丮ÀÇ ÀÛ¾÷ ¸®ºñÀüÀº ƯÁ¤ÇÑ ¿£Æ®¸®¿Í ¼Ó¼ºÀÇ ÁýÇÕÀ» Á¤ÀÇÇϹǷΠÃÖ½ÅÀÌ ¾Æ´Ñ µð·ºÅ丮¿¡ ´ëÇÑ ¼Ó¼º º¯°æÀÇ Ä¿¹ÔÀº ¾ÆÁ÷ ¾Ë¾Æº¸Áö ¸øÇÑ ¼Ó¼ºÀ» Áö¿ö ¹ö¸±Áöµµ ¸ð¸£±â ¶§¹®ÀÔ´Ï´Ù.


1.4. °³¿ä

ÀÌ Àå¿¡¼­´Â SubversionÀÇ ±âº»ÀûÀÎ °³³äÀ» ´Ù·ç¾ú½À´Ï´Ù:

  • Áß½ÉÀÌ µÇ´Â ÀúÀå¼Ò(repository) Ŭ¶óÀ̾ðÆ®ÀÇ ÀÛ¾÷ Ä«ÇǺ» ÀúÀå¼Ò(repository) ¸®ºñÀü Æ®¸®¶ó°í ÇÏ´Â °³³äÀ» µµÀÔÇß½À´Ï´Ù.

  • ¾î¶»°Ô µÎ ¸íÀÇ °øµ¿ ÀÛ¾÷ÀÚ°¡ subversionÀ» ÀÌ¿ëÇØ ¼­·ÎÀÇ ¼öÁ¤Á¡À» °ø°³Çϰųª ¹Þ°Å³ª ÇÒ±îÀÇ °£´ÜÇÑ ¿¹¸¦ ºÁ ¿Ô½À´Ï´Ù. ÀÌ°Í¿¡´Â º¹»ç¡¤¼öÁ¤¡¤¸ÓÁö ÀÇ ¸ðµ¨À» ÀÌ¿ëÇϹǷΠÇß´Ù.

  • SubversionÀÌ ÀÛ¾÷ Ä«ÇǺ»³»ÀÇ Á¤º¸¸¦ ´õµë°Å³ª °ü¸®Çϰųª ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ Á¶±Ý Á¢Çß½À´Ï´Ù.

¿©±â¿¡¼­´Â °¡Àå ÀϹÝÀûÀÎ Àǹ̷ΠSubversionÀÌ ¾î¶»°Ô µ¿ÀÛÇұ ´ëÇÑ ÁÁÀº »ý°¢ÀÌ ¸ö¿¡ ´ê¾ÒÀ» °ÍÀÔ´Ï´Ù. ÀÌ Áö½ÄÀ» ±âÃÊ·Î ´ÙÀ½ÀÇ Àå¿¡ ½º½º¹« ÀÏÀÌ ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿©±â´Â SubversionÀÇ Ä¿¸àµå¿Í ±â´É¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Åõ¾î¿¡ µÇ¾î ÀÖ½À´Ï´Ù.


ID
Password
Join
A truly wise man never plays leapfrog with a Unicorn.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2007-06-21 09:09:04
Processing time 0.0024 sec