· 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
You will be singled out for promotion in your work.


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.0025 sec