1Chapter. ÇÔ²² µÑ·¯º¸±â
1.1.ÀÌÁ¦ SubversionÀ» »ç¿ëÇÏ´Â ¹ýÀ» ÀÚ¼¼È÷ º¸µµ·Ï ÇÏ°Ú½À´Ï´Ù. ÀÌ ÀåÀÌ ³¡³¯ ÁîÀ½À̸é ÀÏ»óÀûÀÎ ÀÛ¾÷¿¡ SubversionÀ» »ç¿ëÇϱâ À§ÇØ ÇÊ¿äÇÑ °ÅÀÇ ¸ðµç ÀϵéÀ» ÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ´ç½ÅÀÇ Äڵ带 óÀ½ üũ¾Æ¿ôÇÏ´Â °ÍÀ¸·Î ½ÃÀÛÇÏ¿© Äڵ带 ¼öÁ¤ÇÏ°í ¼öÁ¤ÇÑ ³»¿ëÀ» °Ë»çÇÕ´Ï´Ù. ¶Ç ´Ù¸¥ »ç¶÷ÀÌ ¼öÁ¤ÇÑ ³»¿ëÀ» ÀÚ½ÅÀÇ ÀÛ¾÷º»¿¡ ¹Ý¿µÇÏ°í °Ë»çÇϸç Ãæµ¹ÀÌ ¹ß»ýÇÒ °æ¿ì ÇØ°áÇÏ°Ô µË´Ï´Ù. ÀÌ Àå¿¡¼ SubversionÀÇ ¸í·É¾î ÀüºÎ¸¦ ¿°ÅÇÏÁö´Â ¾Ê½À´Ï´Ù. ±×º¸´Ù´Â »ç¿ëÀÚ°¡ SubversionÀ» »ç¿ëÇÏ¿© °¡Àå º¸ÆíÀûÀ¸·Î ÇÏ°Ô µÉ ÀÛ¾÷µé¿¡ ´ëÇØ ¼Ò°³¸¦ ÇÕ´Ï´Ù. ÀÌ ÀåÀº ´ç½ÅÀÌ 2Àå>À» Àаí ÀÌÇØÇßÀ¸¸ç SubversionÀÌ »ç¿ëÇÏ´Â ÀϹÝÀûÀÎ ¸ðµ¨À» ¾Ë°í ÀÖ´Ù°í °¡Á¤ÇÕ´Ï´Ù. ¸í·É¾îÀÇ Àüü ·¹ÆÛ·±½º´Â 8Àå >À» º¸½Ê½Ã¿À. 1.1. µµ¿ò¸»°è¼Ó ÁøÇàÇϱâ Àü¿¡ °¡Àå Áß¿äÇÑ Subversion ¸í·É¾îÀÎ svn help ¿¡ ´ëÇØ ¾Ë¾Æ º¸°Ú½À´Ï´Ù. Subversion Ä¿¸àµå ¶óÀΠŬ¶óÀ̾ðÆ®´Â ½º½º·Î ¹®¼¸¦ »ý¼ºÇÏ¿© Ãâ·ÂÇÕ´Ï´Ù. ¾ðÁ¦¶óµµ svn help ¼ºê Ä¿¸àµå ¶ó°í Ä¡¸é ¼ºê Ä¿¸àµåÀÇ ¹®¹ý, ¿É¼Ç ½ºÀ§Ä¡, µ¿ÀÛÀ» ¾Ë·Á ÁÝ´Ï´Ù. 1.2. ÀÓÆ÷Æ®svn import ¸í·ÉÀ¸·Î SubversionÀÇ ÀúÀå¼Ò(repository)¿¡ »õ·Î¿î ÇÁ·ÎÁ§Æ®¸¦ ÀÓÆ÷Æ® ÇÒ ¼ö ÀÖ½À´Ï´Ù. Subversion ¼¹ö¸¦ ¼³Á¤ÇÒ ¶§ ÃÖÃÊ·Î ½ÇÇàÇÏ°Ô µÉ Ä¿¸àµåÀÌÁö¸¸ ¸Å¿ì ºó¹øÇÏ°Ô »ç¿ëµÇ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. import ÀÇ »ó¼¼ÇÑ ±â´É¿¡ ´ëÇÏ¿©´Â ÀÌ ÀåÀÇ µÚ ÂÊ¿¡ ÀÖ´Â "svn import" ¼½¼Ç >À» º¸½Ê½Ã¿À. 1.3. ¸®ºñÀü: ¹øÈ£, Å°¿öµå, ³¯Â¥ÁøÇàÇϱâ Àü¿¡ ÀúÀå¼Ò ³»¿¡ ƯÁ¤ÇÑ ¸®ºñÀüÀ» ÁöĪÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æ µÑ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. >¿¡¼ º» °Íó·³ ¸®ºñÀüÀº ƯÁ¤ÇÑ ¼ø°£ ÀúÀå¼Ò(repository)ÀÇ "¼ø°£Æ÷Âø »çÁø(snapshot)"ÀÔ´Ï´Ù. Ä¿¹ÔÀ» ¹Ýº¹ÇÏ¿© ÀúÀå¼Ò°¡ Ä¿Áü¿¡ µû¶ó ÀÌ ½º³À¼¦µéÀ» ±¸ºÐÇÒ ¹æ¹ýÀÌ ÇÊ¿äÇÏ°Ô µË´Ï´Ù. 1.3.1. ¸®ºñÀü ¹øÈ£»õ·Î¿î Subversion ÀúÀå¼Ò¸¦ ¸¸µé¸é ¸®ºñÀü 0ºÎÅÍ ½ÃÀÛÇÏ°Ô µË´Ï´Ù. ÀÌÈÄ Ä¿¹ÔÀ» ½ÇÇàÇÒ ¶§¸¶´Ù ¸®ºñÀü ¹øÈ£´Â 1¾¿ Áõ°¡ÇÕ´Ï´Ù. Ä¿¹ÔÀÌ ¿Ï·áµÉ ¶§¸¶´Ù Subversion Ŭ¶óÀ̾ðÆ®´Â ¾Æ·¡¿Í °°ÀÌ »õ·Î¿î ¸®ºñÀü ¹øÈ£¸¦ ¾Ë·ÁÁÝ´Ï´Ù.
³ªÁß¿¡ ÀÌ ¸®ºñÀüÀ» ÂüÁ¶ÇÏ°í ½ÍÀ» ¶§ (ÀÌ ÀåÀÇ µÚ¿¡¼ ¾î¶² °æ¿ì¿¡ ±×·± ÀÏÀÌ ÇÊ¿äÇÑ°¡¸¦ ¼³¸íÇÕ´Ï´Ù) "3"À¸·Î ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù. 1.3.2. ¸®ºñÀü Å°¿öµå Subversion Ŭ¶óÀ̾ðÆ®´Â ´Ù¾çÇÑ
¸®ºñÀü Å°¿öµå¸¦ ÀÌÇØÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ·¯ÇÑ Å°¿öµå´Â
Ä¿¸Çµå ½ÇÇà½ÃÀÇ ¸®ºñÀü Å°¿öµåÀÇ ¿¹ÀÔ´Ï´Ù (¾ÆÁ÷ Ä¿¸ÇµåÀÇ Àǹ̸¦ ¸ô¶óµµ ±¦Âú½À´Ï´Ù. ÀÌ ÀåÀ» ÁøÇàÇÏ¸é¼ ¼³¸íÇÕ´Ï´Ù):
ÀÌ·¯ÇÑ Å°¿öµå¸¦ ÀÌ¿ëÇϸé ÀÛ¾÷º»À̳ª ƯÁ¤ ¸®ºñÀüÀ» Çò°¥¸®´Â ¹øÈ£°¡ ¾Æ´Ñ Å°¿öµå·Î ÁöÁ¤ÇÏ¿© ÀÚÁÖ¾²´Â ¿©·¯ À¯¿ëÇÑ ¸í·ÉÀ» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. 1.3.3. ¸®ºñÀü ÀÏÀÚ¸®ºñÀü ¹øÈ£³ª ¸®ºñÀü Å°¿öµå¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â °æ¿ì¶ó¸é ¾ðÁ¦³ª ³¯Â¥¿Í ½Ã°¢µµ Áß°ýÈ£ "{}" ¾È¿¡ ³Ö¾î ¸®ºñÀüÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ³¯Â¥¿Í ¸®ºñÀü ¹øÈ£¸¦ µ¿½Ã¿¡ »ç¿ëÇØ ¹üÀ§¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. SubversionÀº ¸Å¿ì ¸¹Àº ÀÏÀÚ Çü½ÄÀ» ¹Þ¾ÆµéÀÏ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÏÀÚ Çü½ÄÀÌ °ø¹éÀ» Æ÷ÇÔÇÑ °æ¿ì¿¡´Â ¹Ýµå½Ã ÀοëºÎÈ£·Î ¹¾î ÁÖ¾î¾ß ÇÕ´Ï´Ù. ¿©±â¿¡¼´Â SubversionÀÌ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ´Â Çü½Ä Áß ¸î °¡Áö ¿¹¸¦ º¸¿©ÁÝ´Ï´Ù.
¸®ºñÀü¿¡ ³¯Â¥¸¦ ÁöÁ¤ÇÑ °æ¿ì SubversionÀº ±× ³¯Â¥ ÀÌÀüÀÇ °¡Àå ÃֽŠ¸®ºñÀüÀ» ã¾Æ³»·Á°í ÇÕ´Ï´Ù.
³¯Â¥ ¹üÀ§¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù. SubversionÀº ¹üÀ§ ¾È¿¡ ÀÖ´Â ¸ðµç ¸®ºñÀüÀ» ´ë»óÀ¸·Î °Ë»öÇÕ´Ï´Ù. ÁöÁ¤µÈ µÎ ³¯Â¥´Â °Ë»ö¿¡ Æ÷ÇԵ˴ϴÙ.
¾Õ¼ ÁöÀûÇÑ °Íó·³ ³¯Â¥¿Í ¸®ºñÀü ¹øÈ£¸¦ °°ÀÌ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
1.4. ÃÖÃÊÀÇ Ã¼Å©¾Æ¿ô´ëºÎºÐÀÇ °æ¿ì ÀúÀå¼Ò·ÎºÎÅÍ ÇÁ·ÎÁ§Æ®¸¦ üũ¾Æ¿ô(checkout) ÇÏ´Â °ÍÀ¸·Î SubversionÀ» ½ÃÀÛÇÕ´Ï´Ù. ÀúÀå¼Ò¸¦ "üũ¾Æ¿ô"ÇÏ¸é »ç¿ëÀÚÀÇ ·ÎÄà ¸Ó½Å¿¡´Â ÀúÀå¼ÒÀÇ »çº»ÀÌ »ý¼ºµË´Ï´Ù. ÀÌ »çº»¿¡´Â Ä¿¸àµå ¶óÀο¡¼ ÁöÁ¤ÇÑ Subversion ÀúÀå¼ÒÀÇ HEAD(ÃֽŠ¸®ºñÀü)°¡ ÀúÀåµË´Ï´Ù.
À§ÀÇ ¿¹´Â trunk µð·ºÅ丮ÀÇ Ã¼Å©¾Æ¿ôÀ̾úÁö¸¸ üũ¾Æ¿ô URL¿¡ ¼ºê µð·ºÅ丮¸¦ ÁöÁ¤ÇÏ¸é ´õ ±íÀº °èÃþ¿¡ ÀÖ´Â ÇÏÀ§ µð·ºÅ丮µµ °£´ÜÇÏ°Ô Ã¼Å©¾Æ¿ô ÇÒ ¼ö ÀÖ½À´Ï´Ù.
SubversionÀº "Àá±Ý¡¤¼öÁ¤¡¤Àá±Ý ÇØÁ¦" ¸ðµ¨ÀÌ ¾Æ´Ï¶ó "º¹»ç¡¤¼öÁ¤¡¤ÇÕħ(Merge)" ¸ðµ¨À» »ç¿ëÇϹǷΠ(>) üũ¾Æ¿ôÇÏ¸é ¹Ù·Î °¡Á®¿Â ÆÄÀÏ°ú µð·ºÅ丮¸¦ ¼öÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. (ÀÌ·¸°Ô °¡Á®¿Â ÆÄÀÏ°ú µð·ºÅ丮ÀÇ ¸ðÀÓÀ» ÀÛ¾÷ º¹»ç¶ó°í ÇÕ´Ï´Ù). ¹Ù²Ù¾î ¸»ÇÏ¸é ¿©·¯ºÐÀÇ"ÀÛ¾÷ º¹»ç"´Â ½Ã½ºÅÛ ¿¡ ÀÖ´Â ´Ù¸¥ ÆÄÀÏÀ̳ª µð·ºÅ丮¿Í ´Ù¸¦ °ÍÀÌ ¾ø½À´Ï´Ù. [1] ÆíÁýÇϰųª º¯°æÇϰųª À̵¿Çϰųª ÀÛ¾÷ Ä«ÇÇ Àüü¸¦ Åë°·Î »èÁ¦Çعö¸± ¼öµµ ÀÖ½À´Ï´Ù.
ÆÄÀÏÀ» °íÃưųª, ¶Ç´Â »õ·Î¿î ÆÄÀÏÀ» ¸¸µé°Å³ª, µð·ºÅ丮¸¦ ¿Å±â´Â µîÀÇ º¯°æ»çÇ×Àº ´ÙÀ½ Ä¿¹ÔÇÒ ¶§±îÁö Subversion ¼¹ö¿¡ µû·Î ¾Ë¸± ÇÊ¿ä°¡ ÀüÇô ¾ø½À´Ï´Ù. ÀúÀå¼Ò(repository)ÀÇ URL¸¸ Àμö·Î Á༠ÀÛ¾÷ Ä«ÇǸ¦ üũ¾Æ¿ôÇصµ µÇÁö¸¸ ÀúÀå¼Ò(repository)ÀÇ URL µÚ¿¡ µð·ºÅ丮¸¦ µû·Î ÁöÁ¤ÇÏ¿© üũ¾Æ¿ôÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì ÁöÁ¤ÇÑ µð·ºÅ丮¾È¿¡ ÀÛ¾÷ Ä«ÇÇ°¡ ¸¸µé¾îÁý´Ï´Ù. ¿¹¸¦ µé¾î:
ÀÌ·¸°Ô ÇÏ¸é ¿ì¸®°¡ ¾Õ¿¡¼ Çß´ø °Íó·³ trunk ¶ó´Â À̸§ÀÇ µð·ºÅ丮 ´ë½Å¿¡ subv À̶ó´Â µð·ºÅ丮¿¡ ÀÛ¾÷ Ä«ÇÇ°¡ ¸¸µé¾î Áý´Ï´Ù. 1.5. ±âº»ÀûÀÎ ÀÛ¾÷ »çÀÌŬSubversion¿¡´Â ¸¹Àº ±â´ÉÀÌ ÀÖÁö¸¸ ÀÚÁÖ »ç¿ëÇÏ´Â ±â´ÉÀº ¸î °¡Áö »ÓÀÔ´Ï´Ù. ÀÌ Àå¿¡¼´Â Á¦ÀÏ ÀÚÁÖ ¾²ÀÌ´Â °ÍµéÀ» ¼³¸íÇÕ´Ï´Ù. ÀüÇüÀûÀÎ ÀÛ¾÷ »çÀÌŬÀº ´ÙÀ½°ú °°½À´Ï´Ù.
1.5.1. ÀÛ¾÷ º¹»çÀÇ °»½ÅÆÀÀ» ¸¸µé¾î ÀÛ¾÷ÇÏ°í ÀÖ´Â ÇÁ·ÎÁ§Æ®¿¡¼´Â ÀÚ½ÅÀÇ ÀÛ¾÷ º¹»ç¸¦ °»½ÅÇÏ°í ½ÍÀ»¶§°¡ ÀÖÀ» °ÍÀÔ´Ï´Ù. Áï ´Ù¸¥ ¸â¹öÀÇ º¯°æÁ¡À» ¸ðµÎ ¹Þ´Â °ÍÀÌÁö¿ä. ÀÌ °æ¿ì svn update·Î ÀÚ½ÅÀÇ ÀÛ¾÷ º¹»ç¸¦ ÀúÀå¼Ò(repository)ÀÇ ÃֽŠ¹öÀü¿¡ ¸ÂÃä´Ï´Ù.
ÀÌ °æ¿ì ´ç½ÅÀÌ ¸¶Áö¸·À¸·Î ÀÛ¾÷ º¹»ç¸¦ °»½ÅÇÏ°í ³ª¼ ´Ù¸¥ »ç¶÷ÀÌ foo.c ¿Í bar.c ¿¡ °¡ÇÑ º¯°æÀ» Ä¿¹ÔÇß°í SubversionÀº ÀÌ º¯°æÀ» ´ç½ÅÀÇ ÀÛ¾÷ º¹»ç¿¡ Æ÷ÇÔ½ÃÅ°±â À§Çؼ µÎ ÆÄÀÏÀ» °»½ÅÇß½À´Ï´Ù. svn update ÀÇ Ãâ·ÂÀ» Á» ´õ ÀÚ¼¼ÇÏ°Ô º¾½Ã´Ù. ¼¹ö°¡ º¯°æÁ¡À» ÀÛ¾÷ º¹»ç¿¡ º¸³¾ ¶§ ¹®ÀÚ Äڵ尡 °¢°¢ÀÇ ÆÄÀÏ ÀÇ ¿·¿¡ Ç¥½ÃµÇ¾î ´ç½ÅÀÇ ÀÛ¾÷ Ä«ÇǸ¦ ÃÖ½ÅÀ¸·Î Çϱâ À§Çؼ ¾î¶°ÇÑ µ¿ÀÛÀ» Çß´ÂÁö¸¦ ¾Ë¸³´Ï´Ù:
1.5.2. ÀÛ¾÷ º¹»ç¸¦ º¯°æÇϱâÀÌÁ¦ ÀÚ½ÅÀÇ ÀÛ¾÷ º¹»ç·Î º¯°æÀ» ´õÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌÇÏ¿Í °°Àº ºñ±³Àû Ư¼öÇÑ º¯°æÀ» ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. »õ·Î¿î ±â´É À» Ãß°¡Çϰųª ¹ö±×¸¦ °íÄ¡°Å³ª µîÀÔ´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì¿¡ »ç¿ëÇÏ´Â Subversion Ä¿¸àµå´Â svn add, svn delete, svn copy, svn moveµîÀÔ´Ï´Ù. ±×·¯³ª ÀÌ¹Ì SubversionÀÇ °ü¸®ÇÏ¿¡ ÀÖ´Â ÆÄÀÏÀ» ´ÜÁö ÆíÁýÇÒ »ÓÀ̶ó¸é Ä¿¹ÔÇϱâ±îÁö´Â ±×·¯ÇÑ Ä¿¸àµå¸¦ »ç¿ëÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ¿©·¯ºÐÀÌ ÀÛ¾÷ º¹»ç¿¡ °¡ÇÒ ¼ö ÀÖ´Â º¯°æÀº µÎ °¡Áö°¡ ÀÖ½À´Ï´Ù.
ÆÄÀÏÀ» º¯°æÇÏ·Á¸é ÅؽºÆ® ¹®ÀÚ ÆíÁý±â, ¿öµå ÇÁ·Î¼¼¼, ±×·¡ÇÈ ÇÁ·Î±×·¥ µî ¾î¶² µµ±¸¶óµµ »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. Subversion´Â ¹ÙÀ̳ʸ® ÆÄÀϵµ ÅؽºÆ® ÆÄÀÏÀ» Ãë±ÞÇÏ´Â °Í°ú °°ÀÌ ½±°Ô ¶Ç ÃæºÐÈ÷ È¿À²ÀûÀ¸·Î ´Ù·ê ¼ö ÀÖ½À´Ï´Ù. ¿©±â¿¡¼´Â Æ®¸®ÀÇ º¯°æÇϱâ À§ÇØ Á¦ÀÏ ÀÚÁÖ ÀÌ¿ëµÇ´Â ³× °³ÀÇ Subversion ¼ºêÄ¿¸àµå¸¦ °³°üÇØ µÓ´Ï´Ù (svn import ¿Í svn mkdir ´Â ³ªÁß¿¡ ´Ù·ê °ÍÀÔ´Ï´Ù).
1.5.3. ÀÚ½ÅÀÇ º¯°æÁ¡À» Á¶»çº¯°æÀÌ ¿Ï·áÇϸé ÀúÀå¼Ò(repository)¿¡ Ä¿¹ÔÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ º¸Åë Ä¿¹ÔÇϱâ Àü¿¡ ÀÚ½ÅÀÌ ¹«¾ùÀ» º¯°æÇß´ÂÁö Á¤È®ÇÏ°Ô ºÁ µÎ´Â °Ô ÁÁ½À´Ï´Ù. Ä¿¹Ô Àü¿¡ º¯°æÁ¡À» È®ÀÎÇÔÀ¸·Î½á º¸´Ù Á¤È®ÇÑ ·Î±× ¸Þ¼¼Áö¸¦ ºÙÀÌ´Â °ÍÀÌ °¡´ÉÇÒ »Ó¸¸ ¾Æ´Ï¶ó ºÒÃæºÐÇÏ°Ô ¼öÁ¤µÈ °ÍÀ» ¹ß°ßÇÒ ¼öµµ ÀÖ°í Ä¿¹ÔÇϱâ Àü¿¡ ±× º¯°æÀ» ÆıâÇϰųª ÇÒ ±âȸ°¡ ÁÖ¾îÁý´Ï´Ù. °Ô´Ù°¡ °ø°³Çϱâ Àü¿¡ º¯°æÁ¡À» Àç°ËÅäÇϰųª ÀÚ¼¼ÇÏ°Ô Á¶»çÇÒ ÁÁÀº ±âȸÀ̱⵵ ÇÕ´Ï´Ù. svn status, svn diff, svn revert ¸¦ »ç¿ëÇØ ¿©·¯ºÐÀÌ ¾î¶² º¯°æÀ» Çß´ÂÁö¸¦ Á¤È®ÇÏ°Ô º¼ ¼ö ÀÖ½À´Ï´Ù. ¿©·¯ºÐÀº º¸Åë ¾ÕÂÊ µÎ Ä¿¸àµå·Î ÀÛ¾÷ Ä«ÇÇÁßÀÇ ¾î´À ÆÄÀÏ À» º¯°æÇß´ÂÁö¸¦ Á¶»çÇÏ°í ¼¼¹ø° Ä¿¸àµå·Î ±× ÁßÀÇ ¸î¸î(ȤÀº ÀüºÎ)ÀÇ º¯°æÀ» Ãë¼ÒÇÏ°Ô µÉ °ÍÀÔ´Ï´Ù. SubversionÀº ÀÌ ÀÛ¾÷À» Çϱâ À§Çؼ ÃÖÀûÈµÇ¾î ¿Ô°í ÀúÀå¼Ò¿Í Åë½ÅÇÏÁö ¾Ê°íµµ ¸¹Àº ÀÏÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ÀÛ¾÷ º¹»ç¿¡´Â . svn ¶ó°í ÇÏ´Â ¼ûÀº µð·ºÅ丮°¡ ÀÖ¾î ¿©±â¿¡ ÀÛ¾÷ º¹»çÀÇ "¿øº» ¸®ºñÀü(prestine)"ÀÇ Ä«ÇÇ°¡ ÀÖ½À´Ï´Ù. ÀÌ°ÍÀ» Àß »ç¿ëÇØ SubversionÀº ´ç½ÅÀÇ ÀÛ¾÷ ÆÄÀÏÀÇ ¾î¶² °ÍÀÌ º¯°æµÇ¾ú´ÂÁö¸¦ Àçºü¸£°Ô ¾Ë ¼ö°¡ ÀÖ°í ÀúÀå¼Ò(repository)¿Í Åë½ÅÇÏÁö ¾Ê°íµµ º¯°æÇÑ °ÍÀ» µÇµ¹¸± ¼ö ÀÖ½À´Ï´Ù. 1.5.3.1. svn status¾Æ¸¶ ¾î´À Subversion Ä¿¸àµåº¸´Ùsvn status Ä¿¸àµå¸¦ ÀÚÁÖ ÀÌ¿ëÇÏ°Ô µÉ °ÍÀÔ´Ï´Ù. ÀÚ½ÅÀÇ ÀÛ¾÷ Ä«ÇÇ ÃÖ»óÀ§¿¡¼ Àμö¾øÀÌ svn status ¸¦ ½ÇÇàÇÏ¸é ¸ðµç ÆÄÀÏ°ú Æ®¸®¿¡ ´ëÇÑ ¸ðµç ¼öÁ¤ »çÇ×À» °ËÃâÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¿¹´Â svn status °¡ µ¹·ÁÁÙ ¼ö ÀÖ´Â ¸ðµç ´Ù¸¥ »óÅ Äڵ带 º¼ ¼ö°¡ ÀÖµµ·Ï ¸¸µç °ÍÀÔ´Ï´Ù. #ÀÇ µÚ¿¡ ½á ÀÖ´Â ÅؽºÆ®´Â svn status°¡ Ãâ·ÂÇÑ °ÍÀÌ ¾Æ´Õ´Ï´Ù.
ÀÌ Ãâ·Â Çü½Ä¿¡¼ svn status´Â ´Ù¼¸ °³ÀÇ ¹®ÀÚ¸¦ Ç¥½ÃÇÏ°í ±× ÈÄ¿¡ ¸î°³ÀÇ °ø¹éÀÌ Ç¥½ÃµÇ¸ç ÆÄÀÏ ¶Ç´Â µð·ºÅ丮 À̸§ÀÌ ±× ÈÄ¿¡ Ç¥½ÃµÇ°í ÀÖ½À´Ï´Ù. ù¹ø° ¹®ÀÚ´Â ÆÄÀÏ ¶Ç´Â µð·ºÅ丮¿Í ±× ³»¿ë¿¡ ´ëÇÑ »óŸ¦ ³ªÅ¸³»°í ÀÖ½À´Ï´Ù. ¿©±â¼ Ç¥½ÃµÇ´Â ÄÚµå´Â ´ÙÀ½°ú °°½À´Ï´Ù.
µÎ¹ø° ¹®ÀÚ´Â ÆÄÀÏ ¶Ç´Â µð·ºÅ丮ÀÇ ¼Ó¼ºÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù (ÀÚ¼¼ÇÏ°Ô´Â ÂüÁ¶Çϼ¼¿ä). ¸¸¾à MÀÌ Ç¥½ÃµÇ¾úÀ¸¸é ¼Ó¼ºÀÌ ¼öÁ¤µÈ °ÍÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é °ø¹éÀÌ Ç¥½ÃµË´Ï´Ù. ¼¼¹ø°ÀÇ ¹®ÀÚ´Â ºóÄ°ú L µÑ Áß Çϳª°¡ Ç¥½ÃµÇ¸ç LÌ Ç¥½ÃµÇ´Â °æ¿ì´Â SubversionÀÌ ±× ÆÄÀÏ(ȤÀº µð·ºÅ丮)¸¦ .svn Áß¿¡ Àá±×°í ÀÖ´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. svn commit°¡ ½ÇÇàµÇ°í ÀÖ´Â µµÁß¿¡ svn status¸¦ ½ÇÇàÇϸé LÀÌ Ç¥½ÃµË´Ï´Ù. ¾Æ¸¶ ´ç½ÅÀº ·Î±× ¸Þ¼¼Áö¸¦ º¯°æÇÏ°í ÀÖÀ» °ÍÀÔ´Ï´Ù. SubversionÀÌ ½ÇÇàÁßÀÌÁö ¾Ê´Ù¸é ¾Æ¸¶ SubversionÀÌ ½ÇÇàÁß¿¡ Áß´ÜµÇ¾î¼ Àá±ÝÀ» ÇØÁ¦ÇÏÁö ¸øÇßÀ» °ÍÀÔ´Ï´Ù. svn cleanupÀ» ½ÇÇàÇÏ¿© Àá±ÝÀ» ÇØÁ¦ÇØ¾ß ÇÕ´Ï´Ù(ÀÌ ÀåÀÇ µÞºÎºÐ¿¡¼ Á» ´õ ´Ù·ì´Ï´Ù). ³×¹ø°ÀÇ ¹®ÀÚ´Â °ø¹éÀ̳ª +°¡ Ç¥½ÃµÇ¸ç Ãß°¡ ¶Ç´Â ¼öÁ¤µÇ¾î ±×°ÍÀÌ È÷½ºÅ丮¿¡ Ãß°¡ ¿¹¾àµÇ¾î ÀÖ´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. ÀÌ°ÍÀº ÆÄÀÏÀ̳ª µð·ºÅ丮¿¡ ´ëÇØ svn move³ª svn copy¸¦ ÇßÀ» ¶§¿¡ Àß ÀϾ´Ï´Ù. A+ÀÇ Ç¥½Ã°¡ ÀÖ´Â °æ¿ì ±× ¾ÆÀÌÅÛÀº È÷½ºÅ丮 Æ÷ÇÔÀÇ Ãß°¡ ¿¹¾àµÇ¾î ÀÖ´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. ±×°ÍÀº ÆÄÀÏÀ̰ųª º¹»çµÈ µð·ºÅ丮ÀÇ ·çÆ®ÀÔ´Ï´Ù. +´Â ±× ¾ÆÀÌÅÛÀÌ È÷½ºÅ丮¿¡ Ãß°¡ ¿¹¾àµÈ ¼ºê Æ®¸®ÀÇ ÀϺÎÀÎ °ÍÀ» ÀǹÌÇÕ´Ï´Ù. Áï ±× ¾ÆÀÌÅÛÀÇ ºÎ¸ð°¡ Ä«ÇǵǾî Ä¿¹ÔÀ» ±â´Ù¸®°í ÀÖ½À´Ï´Ù. M+ ´Â ¾ÆÀÌÅÛÀÌ È÷½ºÅ丮 ¿¡ Ãß°¡ ¿¹°íµÈ ¼ºê Æ®¸®ÀÇ ÀϺÎÀ̸ç ÇÑÆí ·ÎÄÿ¡¼ º¯°æµÈ ÀûÀÌ ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. Ä¿¹ÔÇÒ ¶§ °¡Àå óÀ½À¸·Î ºÎ¸ð°¡ È÷½ºÅ丮¿Í ÇÔ²² Ãß°¡µË´Ï´Ù(º¹»çµË´Ï´Ù). ±× Àǹ̴ ÀÌ ÆÄÀÏÀº Ä«ÇÇ¿¡ ÀÚµ¿ÀûÀ¸·Î Á¸ÀçÇÑ´Ù°í ÇÏ´Â °Í ÀÔ´Ï´Ù. ±× ´ÙÀ½¿¡ ·ÎÄÃÀÇ º¯°æÁ¡Àº Ä«ÇÇ¿¡ ¾÷·ÎµåµË´Ï´Ù. ´Ù¼¸¹ø° ¹®ÀÚ´Â °ø¹éÀ̳ª S°¡ Ç¥½ÃµË´Ï´Ù. ÆÄÀÏÀ̳ª µð·ºÅ丮´Â ÀÛ¾÷ º¹»çÀÇ ³ª¸ÓÁö °æ·Î(path)·ÎºÎÅÍ (svn switch ¸í·É¿¡ ÀÇÇØ) ºê·£Ä¡·Î ¹Ù²ï °ÍÀ» ÀǹÌÇÕ´Ï´Ù. svn status¿¡ °æ·Î(path)¸¦ ÁöÁ¤ÇÏ¸é ±× °æ·Î¿¡ ´ëÇÑ Á¤º¸¸¸À» Ç¥½ÃÇÕ´Ï´Ù.
svn statusµµ
ÀÌ°ÍÀº svn statusÀÇ "±ä Ç¥½Ã Çü½Ä" Ãâ·ÂÀÔ´Ï´Ù. ù¹ø° ¿(column)Àº °°½À´Ï´Ù¸¸ µÎ¹ø° ¿Àº ¾ÆÀÌÅÛÀÇ ÀÛ¾÷ ¸®ºñÀü ÀÔ´Ï´Ù. ¼¼¹ø°¿Í ³×¹ø°´Â °¢°¢ ¾ÆÀÌÅÛÀÌ ¸¶Áö¸·¿¡ º¯°æµÈ ¸®ºñÀü°ú ´©°¡ º¯°æÇß´ÂÁö Ç¥½ÃÇÕ´Ï´Ù. Áö±Ý±îÁö ³ª¿Â svn statusÀÇ ½ÇÇàÀº
¸ðµÎ ÀúÀå¼Ò(repository)¿Í Åë½ÅÀ» ÇÏÁö ¾Ê½À´Ï´Ù. ±×°ÍÀº ´ÜÁö ÀÛ¾÷ º¹»ç¾È¿¡¼
.svn µð·ºÅ丮ÀÇ ¸ÞŸµ¥ÀÌŸ¸¦ ºñ±³ÇÔÀ¸·Î½á
·ÎÄà ¸Ó½Å»ó¿¡¼¸¸ µ¿ÀÛÇÕ´Ï´Ù.
¸¶Áö¸·À¸·Î
µÎ º°Ç¥¿¡ ÁÖÀÇÇϼ¼¿ä. ÀÌ »óÅ·Πsvn update¸¦ ½ÇÇàÇϸé README¿Í trout.c ÀÇ º¯°æÁ¡À» ¹Þ°Ô µË´Ï´Ù. ÀÌ°ÍÀº ¸Å¿ì µµ¿òÀÌ µÇ´Â Á¤º¸ÀÔ´Ï´Ù. ´ç½ÅÀº Ä¿¹ÔÇϱâ Àü¿¡ README¿¡ °üÇÑ ¼¹ö»óÀÇ º¯°æÁ¡À» ¹Þ¾Æ¿Í¼ °»½ÅÇØ¾ß ÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é ÃÖ½ÅÀÌ ¾Æ´Ï¶ó´Â ÀÌÀ¯·Î Ä¿¹ÔÀº ½ÇÆÐÇÏ°ÚÁö¿ä(ÀÚ¼¼ÇÏ°Ô´Â ´ÙÀ½¿¡ ¸»ÇÕ´Ï´Ù). 1.5.3.2. svn diffÀÚ½ÅÀÇ º¯°æÁ¡À» Á¶»çÇÏ´Â ´Ù¸¥ ¹æ¹ýÀº svn diff ¸í·ÉÀ» »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. svn diff¸¦ Àμö ¾øÀÌ ½ÇÇàÇϸé ÀÚ½ÅÀÌ ¾î¶² º¯°æÀ» Çß´ÂÁö Á¤È®ÇÏ°Ô ¾Ë ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌ ¶§ÀÇ Ãâ·Â Çü½ÄÀº unified diff Çü½ÄÀÔ´Ï´Ù: [3]
svn diff ¸í·ÉÀº .svn ¿¡ ÀÖ´Â "¼öÁ¤¿ø ¸®ºñÀü(pristine)"°ú ÀÛ¾÷ º¹»ç ¾ÈÀÇ ÆÄÀÏÀ» ºñ±³ÇÑ °á°ú¸¦ Ãâ·ÂÇÕ´Ï´Ù. Ãß°¡ ¿¹¾àµÈ ÆÄÀÏÀº ¸ðµÎ Ãß°¡µÈ ÅؽºÆ®·Î¼ Ç¥½ÃµÇ°í »èÁ¦ ¿¹°íµÇ°í ÀÖ´Â ÆÄÀÏÀº ¸ðµÎ »èÁ¦µÈ ÅؽºÆ®·Î Ç¥½ÃµË´Ï´Ù. Ãâ·ÂÀº unified diff Çü½ÄÀ¸·Î Ç¥½ÃµË´Ï´Ù. Áï »èÁ¦µÈ ÁÙÀº ¾Õ¿¡ -°¡ Ç¥½ÃµÇ°í Ãß°¡µÈ ÁÙÀº ¾Õ¿¡ +°¡ Ç¥½ÃµË´Ï´Ù. svn diff´Â patch ÇÁ·Î±×·¥¿¡ À¯¿ëÇÏ´Ù·Ï ÆÄÀÏ À̸§°ú ¿ÀÇÁ¼Â(offset) Á¤º¸¸¦ Ç¥½ÃÇÕ´Ï´Ù. ÀÌ ¶§¹®¿¡ diffÀÇ Ãâ·ÂÀ» ÆÄÀÏ¿¡ ¾²´Â °ÍÀ¸·Î "ÆÐÄ¡"¸¦ »ý¼ºÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù:
¿¹¸¦ µé¾î ÆÐÄ¡ ÆÄÀÏÀ» ´Ù¸¥ °³¹ßÀÚ¿¡°Ô º¸³» Ä¿¹ÔÀü¿¡ Àç°ËÅ䳪 Å×½ºÆ®¸¦ ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. 1.5.3.3. svn revertÀ§ÀÇ diff Ãâ·ÂÀ» º¸°í READMEÀ» À߸ø ¼öÁ¤ÇÑ °ÍÀ» ¾Ë¾Ò´Ù°í ÇսôÙ. ÀÌ°ÍÀº svn revert¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸Å¿ì ÁÁÀº ±âȸÀÔ´Ï´Ù.
SubversionÀº ±× ÆÄÀÏÀ».svn¿¡ ÀÖ´Â "¼öÁ¤¿ø ¸®ºñÀü"¿¡ ÀÖ´Â °ÍÀ¸·Î µ¤¾î½á¼ ¼öÁ¤Çϱâ ÀüÀ¸·Î µÇµ¹¸³´Ï´Ù. ±×·¯³ª svn revert°¡ ¾î¶°ÇÑ ¿¹¾à Á¶ÀÛµµ Ãë¼ÒÇÒ ¼ö°¡ Àִµ¥ ÁÖÀÇÇϼ¼¿ä. ¿¹¸¦ µé¾î ÃÖÁ¾ÀûÀ¸·Î »õ·Î¿î ÆÄÀÏÀ» Ãß°¡ÇÏ´Â °ÍÀ» ±×¸¸µÑ ¼ö°¡ ÀÖ½À´Ï´Ù.
ȤÀº ½Ç¼ö·Î ¹öÀü °ü¸®·ÎºÎÅÍ ÆÄÀÏÀ» Áö¿ö¹ö·ÈÀ»Áöµµ ¸ð¸¨´Ï´Ù.
1.5.4. Ãæµ¹ÀÇ ÇؼÒ(´Ù¸¥ »ç¶÷ÀÇ º¯°æÁ¡°ú Merge)ÀÌÁ¦ svn status -u°¡ ¾î¶»°Ô Ãæµ¹À» ¿¹°íÇÒ ¼ö ÀÖ´ÂÁö¸¦ ¾Ë°í ÀÖ½À´Ï´Ù. svn update ¸¦ ½ÇÇàÇß´õ´Ï Àç¹ÌÀÖ´Â ÀÏÀÌ ÀϾ´Ù°í ÇսôÙ.
U¿Í G·Î Ç¥½ÃµÈ ÆÄÀÏÀº Ưº°È÷ »ý°¢ÇÒ °ÍÀÌ ¾ø½À´Ï´Ù. ÀÌ µÑÀº ÀúÀå¼Ò(repository)·ÎºÎÅÍÀÇ º¯°æÀ» Àß ¹Þ¾Æµé¿´½À´Ï´Ù. U·Î Ç¥½ÃµÈ ÆÄÀÏÀº ·ÎÄÿ¡¼´Â ¾î¶² º¯°æµµ ¾ø¾ú½À´Ï´Ù. µû¶ó¼ ÀúÀå¼Ò·ÎºÎÅÍÀÇ º¯°æ »çÇ×À» ¹Þ¾Æ¼ °»½Å(Updated)µÇ¾ú½À´Ï´Ù. G´Â ÇÕÃÄÁ³À½( merGed)À» ÀǹÌÇÕ´Ï´Ù. Áï ÆÄÀÏÀÌ ·ÎÄÿ¡¼ º¯°æµÇ¾úÁö¸¸ ÀúÀå¼Ò¿¡¼ÀÇ º¯°æ ºÎºÐ°ú´Â ÀüÇô °ãÄ¡Áö ¾Ê¾Ò½À´Ï´Ù. ±×·¯³ª C´Â Ãæµ¹À» ³ªÅ¸³À´Ï´Ù. ÀÌ°ÍÀº ¼¹ö·ÎºÎÅÍÀÇ º¯°æ »çÇ×ÀÌ ´ç½ÅÀÇ º¯°æ»çÇ×°ú °ãÄ¡´Â °ÍÀ» ÀǹÌÇÏ¸ç ´ç½ÅÀº ¾î´À ÂÊÀÎÁö¸¦ Á÷Á¢ ¼±ÅÃÇØ¾ß ÇÕ´Ï´Ù. ¸¸¾à Ãæµ¹ÀÌ ÀϾٸé Subversion Ŭ¶óÀ̾ðÆ®´Â ´ÙÀ½ÀÇ ¼¼ °¡Áö ÀÛ¾÷À» ¼öÇàÇÕ´Ï´Ù:
¿¹¸¦ µé¾î Sally°¡ ÀúÀå¼Ò¿¡ ÀÖ´Â sandwich.txt ÆÄÀÏÀ» º¯°æÇß´Ù°í ÇսôÙ. Harry´Â ÀÚ½ÅÀÇ ÀÛ¾÷ º¹»ç¿¡¼ ±× ÆÄÀÏ (sandwich.txt) ÆÄÀÏÀ» º¯°æÇÏ°í Ä¿¹ÔÇÕ´Ï´Ù. Sally´Â Ä¿¹ÔÇϱâ Àü¿¡ ÀÛ¾÷ Ä«ÇǸ¦ °»½ÅÇÕ´Ï´Ù¸¸. Áï °°Àº REV¸¦ Sally¿Í Harry°¡ ¼öÁ¤ÇÏ°í Harry°¡ Sallyº¸´Ù ¸ÕÀú commitÇßÀ»¶§ Sally°¡ commit¸¦ ÇÏ·Á°í ÇÒ ¶§ Sally´Â ´ÙÀ½°ú °°Àº Ãæµ¹ÀÇ º¸°í¸¦ ¹Þ½À´Ï´Ù.
ÀÌ ¶§ Subversion´Â ¼¼ °³ÀÇ Àӽà ÆÄÀÏÀÌ »èÁ¦µÉ ¶§±îÁö sandwich.txtÀÇ Ä¿¹ÔÀ» Çã°¡ ÇÏÁö ¾Ê½À´Ï´Ù.
¸¸¾à Ãæµ¹ÀÌ ¹ß»ýÇßÀ» °æ¿ì¿¡´Â ´ÙÀ½ÀÇ ¼¼ °¡Áö ¹æ¹ýÁß ÇÑ °¡Áö¸¦ ÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.
Ãæµ¹À» ÇØ°áÇϸé svn resolved¸¦ ½ÇÇàÇؼ Subversion¿¡ ±×°ÍÀ» ¾Ë·Á¾ß ÇÕ´Ï´Ù. ÀÌ°ÍÀº ¼¼ °³ÀÇ ÀÓ½ÃÆÄÀÏÀ» »èÁ¦ÇØ SubversionÀº ÀÌÁ¦ ÇØ´ç ÆÄÀÏÀÌ Ãæµ¹ »óÅ¿¡ ÀÖ´Ù°í »ý°¢ÇÏÁö ¾Ê°Ô µË´Ï´Ù. [4]
1.5.4.1. Ãæµ¹À» ¼öµ¿À¸·Î Merge¼öµ¿À¸·Î Ãæµ¹À» ÇÕÄ¡´Â °ÍÀº óÀ½¿¡´Â ¸Å¿ì ½ÈÀº ÀÏÀÌ°ÚÁö¸¸ Á¶±Ý ¿¬½ÀÇÏ¸é ¿ÀÅä¹ÙÀÌ¿¡¼ ³»¸®´Â °Í°ú °°ÀÌ °£´ÜÇÏ°Ô ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. ¿¹¸¦ µé¾î ´ç½Å°ú ´ç½ÅÀÇ µ¿·á SallyÀÇ ´ëÈ ºÎÁ·À¸·Î ÀÎÇØ µÎ »ç¶÷ÀÌ sandwich.txt¶ó´Â ÆÄÀÏÀ» µ¿½Ã¿¡ ÆíÁýÇß´Ù°í ÇսôÙ. Sally´Â ÀÚ½ÅÀÇ º¯°æÀ» Ä¿¹ÔÇß°í ´ç½ÅÀÌ ÀÛ¾÷ Ä«ÇǸ¦ °»½ÅÇÏ·Á°í Çϸé Ãæµ¹ÀÌ ÀϾ´Ï´Ù. ±×·¡¼ Ãæµ¹À» ÇØ°áÇϱâ À§ÇØ sandwich.txt¸¦ ÆíÁýÇØ¾ß ÇÕ´Ï´Ù. ÆÄÀÏÀ» º¸°Ú½À´Ï´Ù.
ÀÛ´Ù °°´Ù Å©´Ù´Â ±âÈ£´Â Ãæµ¹ Ç¥ÁöÀÔ´Ï´Ù. ¾ÕºÎºÐÀÇ µÎ ±âÈ£·Î µÑ·¯½ÎÀÎ ºÎºÐÀº ´ç½ÅÀÌ °íÄ£ °ÍÀÔ´Ï´Ù.
±×¸®°í µÎ ¹ø°¿Í ¼¼ ¹ø°ÀÇ Ãæµ¹ Ç¥½Ã »çÀÌÀÇ ÅؽºÆ®´Â Sally°¡ Ä¿¹ÔÇÑ ºÎºÐÀÔ´Ï´Ù.
º¸Åë Ãæµ¹ Ç¥Áö¿Í SallyÀÇ º¯°æ ºÎºÐÀ» ±×³É »èÁ¦Çعö¸®°í ½ÍÁö´Â ¾ÊÀ» °ÍÀÔ´Ï´Ù. ±×·± ÀÏÀ» Çϸé Sally°¡ sandwich¸¦ ¹Þ¾ÒÀ» ¶§¿¡ ³î¶ó°í ±×°ÍÀº ±×³à°¡ ¹Ù¶ó´Â ÀÏÀº ¾Æ´Ò °ÍÀÔ´Ï´Ù. ´ç½ÅÀº Àüȸ¦ °ÉµçÁö »ç¹«½ÇÀ» °Ç³Ê°¡¼ Sally¿¡°Ô ÀÌÅ»¸®¾Æ À½½ÄÁ¡¿¡¼´Â ¼Ò±Ý¿¡ ÀýÀÎ ¾ç¹èÃß(sauerkraut)¸¦ »ì ¼ö ¾ø´Ù°í ¼³¸íÇØ ÁÝ´Ï´Ù(µÎ ¸íÀÇ º¯°æÀÌ Ãæµ¹ÇÏ°í ÀÖ´Â °ÍÀ» ¼³¸íÇÕ´Ï´Ù). [5] Ä¿¹ÔÇÒ º¯°æ ³»¿ë¿¡ ´ëÇØ ÇÕÀǸ¦ ÇßÀ¸¸é ÆÄÀÏÀ» ÆíÁýÇØ Ãæµ¹ Ç¥Áö¸¦ »èÁ¦ÇÕ´Ï´Ù.
ÀÌÁ¦ svn resolved¸¦ ½ÇÇàÇÏ°í Ä¿¹ÔÇÕ´Ï´Ù.
Ãæµ¹ÀÌ ÀÖ´Â ÆÄÀÏÀ» °íÄ¡´Â Áß¿¡ È¥¶õ½º·´´Ù¸é ¾ðÁ¦³ª SubvervionÀÌ ´ç½ÅÀ» À§Çؼ ¸¸µç ÀÛ¾÷ º¹»ç¿¡ ÀÖ´Â ¼¼ °³ÀÇ Àӽà ÆÄÀÏÀ» Âü°íÇÒ ¼ö ÀÖ½À´Ï´Ù. ±× Áß¿¡´Â °»½ÅÀü¿¡ ´ç½ÅÀÌ ¼öÁ¤ÇÑ ¹öÀüÀÇ ÆÄÀϵµ ÀÖ½À´Ï´Ù. 1.5.4.2. ÀÛ¾÷ ÆÄÀÏ À§¿¡ ÆÄÀÏÀ» Ä«ÇÇÇϱâÃæµ¹ÀÌ ÀϾ»ç ÀÚ½ÅÀÌ ÇÑ º¯°æÀ» ¹«½ÃÇÏ·Á°í ÇÒ °æ¿ì¿¡´Â SubversionÀÌ ¸¸µç Àӽà ÆÄÀÏ Áß Çϳª¸¦ ´Ü¼øÈ÷ ÀÛ¾÷ ÆÄÀÏ¿¡ µ¤¾î¾²¸é µË´Ï´Ù.
1.5.4.3. Punting: svn revertÀÇ ÀÌ¿ëÃæµ¹ÀÌ ÀϾ Á¶»ç °á°ú ÀÚ½ÅÀÇ º¯°æÀ» ¹ö¸®°í ÆíÁýÀ» ´Ù½Ã ÇÏ´Â °æ¿ì´Â ´ÜÁö º¯°æÀ» ¿ø·¡´ë·Î µÇµ¹¸³´Ï´Ù.
Ãæµ¹ ÆÄÀÏÀ» ¿ø·¡´ë·Î µÇµ¹¸± ¶§´Â svn resolved¸¦ ½ÇÇàÇÒ ÇÊ¿ä°¡ ¾ø´Â °Í¿¡ ÁÖÀÇÇϼ¼¿ä. ÀÌÁ¦ ´ç½ÅÀÇ º¯°æÀ» Ä¿¹ÔÇÒ Áغñ°¡ µÇ¾ú½À´Ï´Ù. svn resolved´Â ÀÌ Àå¿¡¼ º» ´Ù¸¥ ´ëºÎºÐÀÇ Ä¿¸àµå¿Í´Â ´Þ¸® Àμö¸¦ ÇÊ¿ä·Î ÇÕ´Ï´Ù. ¾î¶°ÇÑ °æ¿ì¿¡¼µµ ÃæºÐÈ÷ ÁÖÀÇÇÏ°í ÆÄÀÏÁßÀÇ Ãæµ¹À» È®½ÇÈ÷ ÇØ°áÇÑ °æ¿ì¸¸ svn resolved ¸¦ ½ÇÇàÇϼ¼¿ä. Àӽà ÆÄÀÏÀÌ »èÁ¦µÇ¸é SubversionÀº ÆÄÀÏÀÌ Ãæµ¹ ¸¶Ä¿¸¦ Æ÷ÇÔÇÏ°í À־ Ä¿¹ÔÇÕ´Ï´Ù. 1.5.5. º¯°æÁ¡À» Ä¿¹Ôµåµð¾î ¿©±â±îÁö ¿Ô½À´Ï´Ù. ¼¹ö·ÎºÎÅÍÀÇ º¯°æÀ» ¸ðµÎ ÇÕÃÆ°í ÆíÁýÀº ¸ðµÎ ³¡³µ½À´Ï´Ù. ÀÌÁ¦ º¯°æÀ» ÀúÀå¼Ò¿¡ Ä¿¹Ô ÇÒ Áغñ°¡ ´Ù µÇ¾ú½À´Ï´Ù. svn commit ¸í·ÉÀº ´ç½ÅÀÇ ¸ðµç º¯°æÁ¡À» ÀúÀå¼Ò¿¡ º¸³À´Ï´Ù.
Ä¿¹ÔÇÒ ¶§¿¡´Â ¹Ù²ïÁ¡À» ¼³¸íÇÏ´Â ·Î±× ¸Þ¼¼Áö¸¦ ÁÙ ÇÊ¿ä°¡
ÀÖ½À´Ï´Ù. ·Î±× ¸Þ¼¼Áö´Â ´ç½ÅÀÌ ¸¸µç »õ·Î¿î ¸®ºñÀü¿¡ ºÙ¿©Áý´Ï´Ù. ·Î±× ¸Þ¼¼Áö°¡
°£´ÜÇÑ °æ¿ì´Â
±×·¯³ª ¹ú½á ·Î±× ¸Þ¼¼Áö¸¦ ¸¸µé¾î µÐ °æ¿ì´Â
ÀúÀå¼Ò´Â º¯°æÁ¡ÀÇ ³»¿ë¿¡ Àǹ̰¡ ÀÖÀ»Áö ¾î¶³Áö´Â ÀüÇô ½Å°æ¾²Áö ¾Ê½À´Ï´Ù. Subversion´Â ´ç½ÅÀÌ ¼öÁ¤ÇÑ ÆÄÀÏÀ» ´Ù¸¥ »ç¶÷ÀÌ ¼öÁ¤ÇÏ°í ÀÖÁö ¾Ê´Â °Í¸¸À» È®ÀÎÇÕ´Ï´Ù. ¸¸¾à ´Ù¸¥ »ç¶÷ÀÌ ±×·¯ÇÑ º¯°æÀ» ÇÏ°í ÀÖÀ¸¸é Ä¿¹ÔÀº ´ç½ÅÀÇ º¯°æ ÇÑ ÆÄÀÏÀÇ ¾î¶² °ÍÀΰ¡°¡ ÃÖ½ÅÀÌ ¾Æ´Ï¶ó°í ÇÏ´Â ¸Þ¼¼Áö¸¦ º¸³» °í Ä¿¹ÔÀº ½ÇÆÐÇÕ´Ï´Ù.
ÀÌ·¯ÇÑ °æ¿ì¿¡´Â svn update¸¦ ½ÇÇàÇÏ¿© ±× °á°ú·Î ³ª¿À´Â Ãæµ¹À» ÇؼÒÇÑ ÈÄ ÇÑ ¹ø ´õ Ä¿¹ÔÇØ ÁÖ¼¼¿ä. ÀÌ°ÍÀ¸·Î SubversionÀ» »ç¿ëÇÏ´Â ±âº»ÀûÀÎ ÀÛ¾÷ »çÀÌŬÀ» ¼³¸íÇß½À´Ï´Ù. Subversion¿¡´Â ÀÌ ±× ¹Û¿¡µµ ÀúÀå¼Ò³ª ÀÛ¾÷ º¹»ç¸¦ °ü¸®Çϱâ À§ÇÑ ¸¹Àº ±â´ÉÀÌ ÀÖ½À´Ï´Ù¸¸ ÀÌ Àå¿¡¼ Áö±Ý±îÁö ¼³¸íÇØ ¿Â ¸í·É¸¸À» »ç¿ëÇصµ ¸Å¿ì ¸¹Àº ÀÏÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù. 1.6. È÷½ºÅ丮 È®ÀÎÇϱâÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀúÀå¼Ò´Â ŸÀÓ ¸Ó½Å°ú °°Àº °÷ÀÔ´Ï´Ù. Áö±Ý±îÁö Ä¿¹ÔµÈ ¸ðµç º¯°æÀ» ±â·ÏÇϱ⠶§¹®¿¡ ÆÄÀÏÀ̳ª µð·ºÅ丮 °Å±â¿¡ µþ¸° ¸ÞŸµ¥ÀÌŸÀÇ ÀÌÀü ¹öÀüÀ» º¸´Â °Í¿¡ ÀÇÇØ È÷½ºÅ丮¸¦ Á¶»çÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. Subversion ¸í·É Çϳª·Î °ú°ÅÀÇ Æ¯Á¤ ÀÏÀÚ³ª ¸®ºñÀü ¹øÈ£ÀÇ ÀúÀå¼Ò »óŸ¦ üũ¾Æ¿ô(ȤÀº ¹ú½á ÀÖ´Â ÀÛ¾÷ Ä«ÇÇÀÇ º¹¿ø) ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª °ú°Å·Î µ¹¾Æ°¡Áö´Â ¾Ê°í ´ÜÁö °ú°Å°¡ ¾î¶°Çß´ÂÁö Á¶±Ý µé¿©´Ù º¸±â¸¸ ÇÏ°í ½ÍÀº Àϵµ ÀÚÁÖ ÀÖ½À´Ï´Ù. ÀúÀå¼Ò·ÎÀÇ È÷½ºÅ丮 µ¥ÀÌÅ͸¦ ´Ù·ç±â À§ÇÑ ¸í·ÉÀÌ ¸î °³ ÀÖ½À´Ï´Ù.
1.6.1. svn logÆÄÀÏÀ̳ª µð·ºÅ丮ÀÇ È÷½ºÅ丮¿¡ °üÇÑ Á¤º¸¸¦ º¸°í ½ÍÀ» ¶§´Â svn log ¸í·ÉÀ» »ç¿ëÇϼ¼¿ä. svn log´Â ÆÄÀÏÀ̳ª µð·ºÅ丮¸¦ ´©°¡ º¯°æÇß´ÂÁö ¾î´À ¸®ºñÀüÀ» º¯°æÇÑ °ÍÀÎÁö ±× ¸®ºñÀüÀÇ ½Ã°¢°ú ³¯Â¥´Â ¾ðÁ¦ÀÎÁö ±×¸®°í Ä¿¹Ô¿¡ µþ¸° ·Î±× ¸Þ½ÃÁö¸¦ Ç¥½ÃÇÕ´Ï´Ù. ¾î´À ¸®ºñÀüÀ¸·Î ±×°ÍÀÌ º¯°æµÇ°í Àΰ¡ ±× ¸®ºñÀüÀÇ ½Ã°¢°ú ÀÏÀÚ ÇÑÃþ ´õ ¸¸¾à Á¸ÀçÇϸé Ä¿¹Ô¿¡ ºÎ¼ö ÇÑ ·Î±× ¸Þ¼¼Áö¸¦ Ç¥½ÃÇÕ´Ï´Ù.
±âº»°ªÀ¸·Î ·Î±× ¸Þ¼¼Áö´Â ½Ã°£ ¼ø¼¿Í ¹Ý´ë·Î Ç¥½ÃµÇ´Â °Í¿¡
ÁÖÀÇÇϼ¼¿ä. ´Ù¸¥ ¹üÀ§ÀÇ ¸®ºñÀüÀ» ƯÁ¤ ¼ø¼·Î º¸°í ½ÍÀº °æ¿ì³ª ÇÑ ¸®ºñÀüÀ»
Âï¾î¼ º¸°í ½ÍÀ» ¶§´Â
ÇϳªÀÇ ÆÄÀÏÀ̳ª µð·ºÅ丮ÀÇ ·Î±× È÷½ºÅ丮¸¦ º¼ ¼öµµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î
ÀÌ°ÍÀº ÀÛ¾÷ ÆÄÀÏ(¶Ç´Â URL)ÀÌ º¯°æµÈ ¸®ºñÀü ¸¸À»Ç¥½ÃÇÕ´Ï´Ù. ¸¸¾à ÆÄÀÏÀ̳ª µð·ºÅ丮¿¡ ´ëÇØ Á» ´õ »ó¼¼ÇÑ Á¤º¸¸¦ ¾ò°í ½ÍÀ» ¶§¿¡´Â svn
log¿¡
1.6.2. svn diffsvn diff´Â ¾Õ¿¡¼ ´Ù·é ÀûÀÌ ÀÖ½À´Ï´Ù. ÀÌ°ÍÀº unified diff Çü½ÄÀ¸·Î ÆÄÀÏÀÇ Â÷ÀÌÁ¡À» Ç¥½ÃÇÕ´Ï´Ù. ÀúÀå¼Ò¿¡ Ä¿¹ÔÇϱâ Àü¿¡ ÀÛ¾÷ Ä«ÇÇ¿¡¼ º¯°æµÈ Á¡À» Ç¥½ÃÇϴµ¥ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. »ç½Ç svn diff¿¡´Â ¼¼ °¡Áö »ç¿ë¹ýÀÌ ÀÖ½À´Ï´Ù.
1.6.2.1. ·ÎÄÃÀÇ º¯°æ ³»¿ëÀ» È®ÀÎÇϱâÀÌ¹Ì ºÁ ¿Â °Íó·³ ¿É¼Ç¾øÀÌ svn diff¸¦ ½ÇÇàÇϸé ÀÛ¾÷ Ä«ÇÇÀÇ ³»¿ë°ú .svn¿¡ ij½¬µÈ "¼öÁ¤¿ø ¸®ºñÀü"ÀÇ À» ºñ±³ÇÕ´Ï´Ù.
1.6.2.2. ÀÛ¾÷ Ä«ÇÇ¿Í ÀúÀå¼Ò¸¦ ºñ±³Çϱâ
1.6.2.3. ÀúÀå¼Ò¿Í ÀúÀå¼Ò¸¦ ºñ±³Çϱâ
svn diff´Â ÀÛ¾÷ Ä«ÇÇ¿¡ ÀÖ´Â ÆÄÀÏÀ» ÀúÀå¼Ò¿Í ºñ±³ÇÒ ¶§¸¸ ¾µ ¼ö Àִ°ÍÀÌ ¾Æ´Õµð. ÀÛ¾÷ Ä«ÇÇ°¡ ¾ø¾îµµ URL Àμö¸¦ ÁÖ´Â °ÍÀ¸·Î ÀúÀå¼Ò¿¡ ÀÖ´Â ¾ÆÀÌÅÛ°úÀÇ Â÷À̸¦ Á¶»çÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌ°ÍÀº ·ÎÄà ¸Ó½Å¿¡ ÀÛ¾÷ Ä«ÇÇ°¡ ¾øÀ» ¶§¿¡ ÆÄÀÏÀÇ º¯°æÁ¡À» ¾Ë°í ½ÍÀº °æ¿ì¿¡ ¸Å¿ì Æí¸®ÇÕ´Ï´Ù.
1.6.3. svn cat¸¸¾à ÀÌÀü ¹öÀüÀÇ ÆÄÀÏÀ» º¸°í ½ÍÁö¸¸ µÎ ÆÄÀÏ »çÀÌÀÇ Â÷À̸¦ º¼ ÇÊ¿ä´Â ¾ø´Â °æ¿ì¿¡´Â svn cat¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
Á÷Á¢ ÆÄÀÏ¿¡ Ãâ·ÂÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
¾Æ¸¶µµ ¾î°¼ ³°Àº ¸®ºñÀüÀ¸·Î µÇµ¹¸®±â À§Çؼ ´Ü¼øÈ÷ svn update --revisionÀ» »ç¿ëÇÏÁö ¾Ê´Â °ÍÀÎÁö ±Ã±ÝÇÒ °ÍÀÔ´Ï´Ù. svn cat¸¦ »ç¿ëÇÏ´Â ÆíÀÌ ÁÁÀº ÀÌÀ¯°¡ ¸î °¡Áö ÀÖ½À´Ï´Ù. ¿ì¼± ¿ÜºÎÀÇ diff(GUIÀ̰ųª unified diff Çü½ÄÀÇ Ãâ·ÂÀÌ ¾Æ¹«·± Àǹ̵µ ¾ø´Â °æ¿ì) ÇÁ·Î±×·¥À¸·Î µÎ ¸®ºñÀüÀÇ Â÷ÀÌÁ¡À» º¸°í ½ÍÀ»Áöµµ ¸ð¸¨´Ï´Ù. ÀÌ °æ¿ì ³°Àº ¹öÀüÀÇ ³»¿ëÀ» ¾ò¾î¼ ÆÄÀÏ¿¡ Ãâ·ÂÇÑ °Í°ú ÀÛ¾÷ Ä«ÇÇÁßÀÇ ÆÄÀÏÀ» ¿ÜºÎ diff ÇÁ·Î±×·¥¿¡ ÀüÇØÁÝ´Ï´Ù. ÀÚÁÖ ´Ù¸¥ ¸®ºñÀü°úÀÇ Â÷ÀÌÁ¡À» ÃëÇÏ´Â °Íº¸´Ù´Â ±× ¹öÀüÀÇ ÆÄÀÏ Àüü¸¦ º¸´Â ÆíÀÌ °£´ÜÇÑ ÀÏÀÌ ÀÖ½À´Ï´Ù. 1.6.4. svn listsvn list ¸í·ÉÀº ·ÎÄà ¸Ó½Å¿¡ ½ÇÁ¦·Î ÆÄÀÏÀ» ¹ÞÁö ¾Ê°íµµ ÀúÀå¼Ò¿¡ ¾î¶² ÆÄÀÏÀÌ ÀÖ´ÂÁö º¸¿©ÁÝ´Ï´Ù.
Á» ´õ ÀÚ¼¼ÇÑ Ç¥½Ã¸¦ ¿øÇÑ´Ù¸é
°¢°¢ÀÇ ¼¼·ÎÁÙÀº ÆÄÀÏ ¶Ç´Â µð·ºÅ丮°¡ ¸¶Áö¸·À¸·Î ¹Ù²ï ¸®ºñÀü ¼öÁ¤ÇÑ »ç¶÷, ÆÄÀÏÀÎ °æ¿ì ±× ÆÄÀÏÀÇ Å©±â, ¸¶Áö¸·À¸·Î ¹Ù²ï ³¯Â¥, ±×¸®°í À̸§ÀÔ´Ï´Ù. 1.6.5. È÷½ºÅ丮 ±â´É¿¡ ´ëÇÑ ¸¶Áö¸· ¸»Áö±Ý±îÁö º¸¾Æ¿Â ¸ðµç ¸í·É¿¡ ´õÇؼ svn update¿Í svn
checkout ¿¡
1.7. ÀÚÁÖ »ç¿ëµÇ´Â ´Ù¸¥ ¸í·Éµé¾Õ¿¡¼ º» °Íµé¸¸Å ÀÚÁÖ ÀÌ¿ëµÇ´Â °ÍÀº ¾Æ´Õ´Ï´Ù¸¸ ´ÙÀ½ÀÇ ¸í·ÉÀÌ °¡²û ÇÊ¿äÇÏ°Ô µË´Ï´Ù. 1.7.1. svn cleanupSubversionÀÌ ÀÛ¾÷ Ä«ÇÇ(¶ÇÀº .svn¿¡ ÀÖ´Â Á¤º¸)¸¦ ¼öÁ¤ÇÒ °æ¿ì¿¡´Â °¡´ÉÇÑ ¾ÈÀüÇÏ°Ô ÇÏ·Á°í ÇÕ´Ï´Ù. ¹«¾ùÀΰ¡¸¦ º¯°æÇϱâ Àü¿¡ ½ÇÇà ³»¿ëÀ» ·Î±× ÆÄÀÏ¿¡ ¾²°í ±× ¸í·ÉÀ» ½ÇÇàÇÑ ÈÄ ¸¶Áö¸·¿¡ ·Î±× ÆÄÀÏÀ» »èÁ¦ÇÕ´Ï´Ù(ÀÌ°ÍÀº Àú³Î¸µ ÆÄÀÏ ½Ã½ºÅÛÀÇ ¹æ½Ä°ú ºñ½ÁÇÕ´Ï´Ù). SubversionÀÇ µ¿ÀÛÀÌ ÁߴܵǸé(Control-C ¸¦ ÀÔ·ÂÇϰųª ÄÄÇ»ÅÍ°¡ Á¾·áµÇ¾úÀ» °æ¿ì) ·Î±× ÆÄÀÏÀº µð½ºÅ©¿¡ ³²½À´Ï´Ù. ·Î±× ÆÄÀÏÀ» Àç½ÇÇàÇÏ´Â °ÍÀ¸·Î SubversionÀº ÀÌÀü¿¡ ÇÏ´ø ÀÛ¾÷À» ¿Ï·áÇÒ ¼ö ÀÖ°í ÀÛ¾÷ Ä«ÇÇ´Â Á¤»óÀûÀÎ »óÅ·ΠµÇµ¹¾Æ°©´Ï´Ù. svn cleanup°¡ ÇÏ´Â ÀÏÀº Á¤È®ÀÌ ÀÌ·± °ÍÀÔ´Ï´Ù. ÀÛ¾÷ Ä«ÇǸ¦ µÚÁ®¼ ³²Àº ·Î±×¸¦ ½ÇÇàÇÏ°í ÇÁ·Î¼¼½ºÀÇ Àá±ÝÀ» ¾ø¾Û´Ï´Ù. ÀÛ¾÷ Ä«ÇÇÀÇ ¾îµò°¡°¡ "Àá°Ü" ÀÖ´Ù°í SubversionÀÌ ¾Ë·ÁÁÙ ¶§ ÀÌ ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä. svn status´Â Àá°ÜÀÖ´Â Ç׸ñ ¿·¿¡ LÀ» Ç¥½ÃÇÕ´Ï´Ù.
1.7.2. svn importimport ¸í·ÉÀº ¹öÀü °ü¸®µÇ°í ÀÖÁö ¾ÊÀº ¿©·¯ÆÄÀϵéÀ» ÀúÀå¼Ò·Î À̵¿ÇÏ´Â °£´ÜÇÑ ¹æ¹ýÀÔ´Ï´Ù.
À§ÀÇ ¿¹´Â µð·ºÅ丮 mytreeÀÇ ³»¿ëÀ» ÀúÀå¼ÒÀÇ fooproject µð·ºÅ丮¿¡ ³Ö½À´Ï´Ù.
1.8. ¿ä¾àÀÌ°ÍÀ¸·Î Subversion Ŭ¶óÀ̾ðÆ®ÀÇ ¸í·É ´ëºÎºÐ¿¡ ´ëÇؼ ¼³¸íÇß½À´Ï´Ù. ¿©±â¼ ¼³¸íÇÏÁö ¾Ê¾ÒÁö¸¸ Áß¿äÇÑ °ÍÀº ºê·£Ä¡(branch)¿Í º´ÇÕ(merge) (> ÂüÁ¶) ±×¸®°í ¼Ó¼ºÀÔ´Ï´Ù (> ÂüÁ¶). SubversionÀÌ °¡Áö°í ÀÖ´Â ¸¹Àº ¸í·ÉÀ» ÆľÇÇÏ·Á¸é ±×¸®°í ¿©·¯ºÐÀÇ ÀÏÀ» ½±°Ô Çϱâ À§Çؼ ±×°ÍµéÀ» ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö ¾Ë¾Æº¸·Á¸é >¸¦ ÈȾ´Â °ÍÀÌ ÁÁÀ»°ÍÀÔ´Ï´Ù. Notes
|
You will be aided greatly by a person whom you thought to be unimportant. |