Subversion-HOWTO
Subversion »ç¿ë HOWTO
ÀÌÀçÈ« http://www.pyrasis.com ~2005.7.31 ¹öÀü 1.2.1
CVSÀÇ ´ÜÁ¡µéÀ» °³¼±ÇÑ ¹öÀü °ü¸® ½Ã½ºÅÛÀÎ SubversionÀ» ÀÌ¿ëÇÏ¿© ÇÁ·Î±×·¥ÀÇ ¼Ò½º Äڵ带 °ü¸®ÇÏ´Â ¹æ¹ý°ú À¯´Ð½º, ¸®´ª½º ¹× Windows¿¡¼ SubversionÀ» ¼³Ä¡Çغ¸°í »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù.
1. ¼ÒÇÁÆ®¿þ¾î ¹öÀü °ü¸®ÀÇ ÀÌÇØ ¶SubversionÀº ¼ÒÇÁÆ®¿þ¾î ¹öÀü °ü¸® ½Ã½ºÅÛÀÔ´Ï´Ù. ÀÌÀü¿¡ CVS°°Àº ¿ª»ç°¡ ±íÀº ¼ÒÇÁÆ®¿þ¾î ¹öÀü °ü¸® ½Ã½ºÅÛÀ» »ç¿ëÇØ º» °æÇèÀÌ ÀÖ´Ù¸é ½±°Ô ÁøÇà ÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ÀÌ Àå¿¡¼´Â ¼ÒÇÁÆ®¿þ¾î ¹öÀü °ü¸® ½Ã½ºÅÛÀ» óÀ½ Á¢ÇÏ´Â ºÐµéÀ» À§ÇØ ÀÚÁÖ ³ª¿À´Â ¿ë¾îµé°ú °³³äÀ» Á¤¸® ÇÏ¿´½À´Ï´Ù.
1.1. ¹öÀü °ü¸® ½Ã½ºÅÛÀÇ Çʿ伺 ¶°ú¿¬ ¼ÒÇÁÆ®¿þ¾î¸¦ ¸¸µå´Âµ¥ ¹öÀü°ü¸®°¡ ¿Ö ÇÊ¿äÇÒ±î¿ä? ¹öÀü °ü¸®°¡ ÇÊ¿äÇÏ°Ô µÈ ÀÌÀ¯´Â °øµ¿ ÀÛ¾÷ ¶§¹®ÀÔ´Ï´Ù. ÇÑ»ç¶÷ÀÌ Å« ÇÁ·ÎÁ§Æ®¸¦ ÁøÇà ÇÏ´Â °ÍÀÌ ¾Æ´Ï±â ¶§¹®¿¡ ¹öÀü °ü¸® ½Ã½ºÅÛÀÌ ÇÊ¿ä ÇÏ°Ô µÇ¾ú½À´Ï´Ù.
¹öÀü °ü¸® ÇÁ·Î±×·¥À» »ç¿ëÇÏ°Ô µÇ¸é ´ÙÀ½°ú °°Àº ÀåÁ¡ÀÌ ÀÖ½À´Ï´Ù.
ÀåÁ¡À» ³ª¿ÇÏÀÚ¸é ´õ ¸¹½À´Ï´Ù¸¸ ´ÜÁ¡À» À̾߱â ÇÏÀÚ¸é ¾Æ¹«·¡µµ ÇÁ·Î±×·¥ °³¹ßÀÚµéÀÌ ¼ÒÇÁÆ®¿þ¾î ¹öÀü °ü¸® ½Ã½ºÅÛÀÇ °³³äÀ» Á¦´ë·Î ÀÌÇØÇÏ°í ±â´ÉµéÀ» Àß »ç¿ëÇÏ¿© È¿À²ÀûÀÎ ¹öÀü °ü¸®°¡ µÇ·Á¸é ¶Ç´Ù½Ã »õ·Î¿î °ÍÀ» ¹è¿ö¾ß ÇÑ´Ù´Â °Í ¶§¹®¿¡ ½±°Ô Á¢±ÙÇÏÁö ¾ÊÀ¸·Á´Â °æÇâÀÌ ÀÖ½À´Ï´Ù. ƯÈ÷³ª ¿ì¸®³ª¶ó ÇÁ·Î±×·¥ °³¹ßÀÚµéÀÇ °æ¿ì À©µµ¿ì °øÀ¯ Æú´õ¸¦ ÀÌ¿ëÇØ¼ °³¹ßÀ» ÇÏ´Â °æ¿ì°¡ ¸¹½À´Ï´Ù. ÀÌ·¸°Ô µÇ¸é ´©°¡ ¹«¾ùÀ» ¼öÁ¤Çß´ÂÁö ¾Ë ¼öµµ ¾ø°í ³²ÀÌ ÇØ ³õÀº ¼Ò½º À§¿¡ À߸øµÈ ¼Ò½º¸¦ µ¤¾î¾²´Â °æ¿ìµµ ¸¹ÀÌ ¹ß»ýÇϰí ÀÖ½À´Ï´Ù.
ÇÑ»ç¶÷ÀÌ °³ÀÎÀûÀ¸·Î ÁøÇà ÇÏ´Â ÇÁ·ÎÁ§Æ®°¡ ÀÖ´õ¶óµµ ¹öÀü °ü¸® ÇÁ·Î±×·¥À» »ç¿ëÇÏ´Â °ÍÀÌ ¸Å¿ì Æí¸®ÇÕ´Ï´Ù. ¾Õ¼ ¸»ÇÑ ÀåÁ¡µéÀº ¿©·¯ ¸íÀÌ °³¹ß ÇÏ´Â °Í°ú ÇÑ»ç¶÷ÀÌ °³¹ß ÇÏ´Â °Í¿¡ ¸ðµÎ ÇØ´çµÇ´Â °ÍµéÀÔ´Ï´Ù.
¼ÒÇÁÆ®¿þ¾î ¹öÀü °ü¸® ½Ã½ºÅÛÀ» ÀÌ¿ëÇÏ´Â ÇÁ·ÎÁ§Æ®µéÀº ¾ÆÁÖ ¸¹½À´Ï´Ù. ´ëºÎºÐ Open Source·Î µÈ ÇÁ·ÎÁ§Æ®µéÀº CVS¸¦ ÀÌ¿ëÇÏ¿© ¹öÀü °ü¸®¸¦ ÇÕ´Ï´Ù. ´ëÇ¥ÀûÀ¸·Î *BSD, OpenOffice, Mozilla, XFree86, Apache¿Í SourceForge.netÀÇ ¸ðµç ÇÁ·ÎÁ§Æ®µé ÀÔ´Ï´Ù. ºñ´Ü Open Source »Ó¸¸ÀÌ ¾Æ´Ñ »ó¾÷ ÇÁ·Î±×·¥À» ¸¸µå´Â ȸ»çµé¿¡¼µµ ¼ÒÇÁÆ®¿þ¾î ¹öÀü °ü¸® ½Ã½ºÅÛÀº ÇʼöÀûÀÔ´Ï´Ù.
1.2. ¹öÀü °ü¸® ½Ã½ºÅÛÀÇ Á¾·ù ¶ÇöÀç ³ª¿Í ÀÖ´Â ¼ÒÇÁÆ®¿þ¾î ¹öÀü °ü¸® ½Ã½ºÅÛÀº ¿©·¯ Á¾·ù°¡ ÀÖ½À´Ï´Ù. °¢°¢ Àå´ÜÁ¡ÀÌ ÀÖ½À´Ï´Ù.
1.3. ¹öÀü °ü¸® ½Ã½ºÅÛÀÇ ¿ë¾îµé ¶¼ÒÇÁÆ®¿þ¾î ¹öÀü °ü¸® ½Ã½ºÅÛ¿¡¼ »ç¿ëµÇ´Â ¿ë¾îµéÀ» ¾Ë¾Æº¸µµ·Ï ÇϰڽÀ´Ï´Ù.
ÀúÀå¼Ò : ¸®Æ÷ÁöÅ丮(Repository)¶ó°íµµ ÇÏ¸ç ¸ðµç ÇÁ·ÎÁ§Æ®ÀÇ ÇÁ·Î±×·¥ ¼Ò½ºµéÀº ÀÌ ÀúÀå¼Ò ¾È¿¡ ÀúÀåÀÌ µË´Ï´Ù. ±×¸®°í ¼Ò½º»Ó¸¸ÀÌ ¾Æ´Ï¶ó ¼Ò½ºÀÇ º¯°æ »çÇ×µµ ¸ðµÎ ÀúÀåµË´Ï´Ù. ³×Æ®¿öÅ©¸¦ ÅëÇØ¼ ¿©·¯ »ç¶÷ÀÌ Á¢±Ù ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹öÀü °ü¸® ½Ã½ºÅÛ ¸¶´Ù °¢°¢ ´Ù¸¥ ÆÄÀÏ ½Ã½ºÅÛÀ» °¡Áö°í ÀÖÀ¸¸ç SubversionÀº Berkeley DB¸¦ »ç¿ëÇÕ´Ï´Ù. ÇÑ ÇÁ·ÎÁ§Æ® ¸¶´Ù ÇϳªÀÇ ÀúÀå¼Ò°¡ ÇÊ¿äÇÕ´Ï´Ù.
üũ¾Æ¿ô : ÀúÀå¼Ò¿¡¼ ¼Ò½º¸¦ ¹Þ¾Æ¿À´Â °ÍÀÔ´Ï´Ù. üũ¾Æ¿ôÀ» ÇÑ ¼Ò½º¸¦ º¸¸é ÇÁ·Î±×·¥ ¼Ò½º°¡ ¾Æ´Ñ ´Ù¸¥ µð·ºÅ丮¿Í ÆÄÀϵéÀÌ ¼¯¿© ÀÖ´Â °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù. ÀÌ µð·ºÅ丮¿Í ÆÄÀϵéÀº ¹öÀü °ü¸®¸¦ À§ÇÑ ÆÄÀϵéÀÔ´Ï´Ù. ÀÓÀÇ·Î Áö¿ì°Å³ª º¯°æÇϸé ÀúÀå¼Ò¿Í ¿¬°áÀÌ µÇÁö ¾Ê½À´Ï´Ù. üũ¾Æ¿ô¿¡µµ ±ÇÇÑÀ» ÁÙ ¼ö ÀÖ½À´Ï´Ù. ¿ÀÇ ¼Ò½º ÇÁ·ÎÁ§Æ®µé¿¡¼´Â ´ëºÎºÐ À͸í üũ¾Æ¿ôÀ» Çã¿ëÇϰí ÀÖ½À´Ï´Ù.
Ä¿¹Ô(Commit) : üũ¾Æ¿ô ÇÑ ¼Ò½º¸¦ ¼öÁ¤, ÆÄÀÏ Ãß°¡, »èÁ¦ µîÀ» ÇÑ µÚ ÀúÀå¼Ò¿¡ ÀúÀåÇÏ¿© °»½Å ÇÏ´Â °ÍÀÔ´Ï´Ù. Ä¿¹ÔÀ» Çϸé CVSÀÇ °æ¿ì ¼öÁ¤ÇÑ ÆÄÀÏÀÇ ¸®ºñÀüÀÌ Áõ°¡Çϰí SubversionÀÇ °æ¿ì Àüü ¸®ºñÀüÀÌ 1 Áõ°¡ÇÏ°Ô µË´Ï´Ù.
¾÷µ¥ÀÌÆ®(Update) : üũ¾Æ¿ôÀ» ÇØ¼ ¼Ò½º¸¦ °¡Á® ¿Ô´õ¶óµµ ´Ù¸¥ »ç¶÷ÀÌ Ä¿¹ÔÀ» ÇÏ¿© ¼Ò½º°¡ ´Þ¶óÁ³À» °ÍÀÔ´Ï´Ù. ÀÌ·² °æ¿ì ¾÷µ¥ÀÌÆ®¸¦ ÇÏ¿© ÀúÀå¼Ò¿¡ ÀÖ´Â ÃֽйöÀüÀÇ ¼Ò½º¸¦ °¡Á®¿É´Ï´Ù. ¹°·Ð ¹Ù²ï ºÎºÐ¸¸ °¡Á®¿É´Ï´Ù.
¸®ºñÀü(Revision) : ¼Ò½º ÆÄÀϵîÀ» ¼öÁ¤ÇÏ¿© Ä¿¹ÔÇÏ°Ô µÇ¸é ÀÏÁ¤ÇÑ ±ÔÄ¢¿¡ ÀÇÇØ ¼ýÀÚ°¡ Áõ°¡ ÇÕ´Ï´Ù. ÀúÀå¼Ò¿¡ ÀúÀåµÈ °¢°¢ÀÇ ÆÄÀÏ ¹öÀüÀ̶ó ÇÒ ¼ö ÀÖ½À´Ï´Ù. SubversionÀÇ °æ¿ì ÆÄÀϺ°·Î ¸®ºñÀüÀÌ ¸Å°ÜÁöÁö ¾Ê°í Çѹø Ä¿¹Ô ÇÑ °ÍÀ¸·Î Àüü ¸®ºñÀüÀÌ ¸Å°Ü Áý´Ï´Ù. ¸®ºñÀüÀ» º¸°í ÇÁ·ÎÁ§Æ® ÁøÇà »óȲÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù.
ÀÓÆ÷Æ®(Import) : ¾Æ¹«°Íµµ µé¾îÀÖÁö ¾ÊÀº ÀúÀå¼Ò¿¡ ¸Ç óÀ½ ¼Ò½º¸¦ ³Ö´Â ÀÛ¾÷ÀÔ´Ï´Ù.
ÀͽºÆ÷Æ®(Export) : üũ¾Æ¿ô°ú´Â ´Þ¸® ¹öÀü °ü¸® ÆÄÀϵéÀ» »« ¼ø¼öÇÑ ¼Ò½º ÆÄÀÏÀ» ¹Þ¾Æ¿Ã ¼ö ÀÖ½À´Ï´Ù. ¼Ò½º¸¦ ¾ÐÃàÇÏ¿© ¸±¸®Áî ÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù.
1.4. ÀúÀå¼ÒÀÇ µð·ºÅ丮 ¹èÄ¡ ¶ÀúÀå¼Ò¿¡ ¹Ù·Î ¼Ò½º¸¦ ³Ö¾î ÇÁ·ÎÁ§Æ®¸¦ ÁøÇà ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¸Áö¸¸ ¹öÀü °ü¸® ½Ã½ºÅÛ¿¡¼ ±ÇÀåÇÏ´Â µð·ºÅ丮 ¹èÄ¡ ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
-- http://svn.samplerepository.org/svn/sample
+--+---+- branches
| +--+- dav-mirror
| | |--- src
| | |--- doc
| | +--- Makefile
| |
| +--- svn-push
| +--- svnserve-thread-pools
|
+---+- tags
| +--- 0.10
| +--+- 0.10.1
| | |--- src
| | |--- doc
| | +--- Makefile
| |
| +--- 0.20
| +--- 0.30
| +--- 0.50
| +--- 1.01
|
+---+- trunk
|--- src
|--- doc
+--- Makefile
À§¿¡ º¸ÀÌ´Â ±¸Á¶´Â º¸Åë ÀÚÁÖ »ç¿ëµÇ´Â µð·ºÅ丮 ±¸Á¶ÀÔ´Ï´Ù. ÀúÀå¼Ò µð·ºÅ丮 ¾Æ·¡ branches, tags, trunk ¶ó´Â 3°³ÀÇ µð·ºÅ丮°¡ ÀÖ½À´Ï´Ù. ÀÌ µð·ºÅ丮µéÀº °¢°¢ÀÇ ¿ëµµ°¡ ÀÖ½À´Ï´Ù. CVS´Â branch¿Í tag¸¦ À§ÇÑ ¸í·ÉÀÌ µû·Î Á¸Àç ÇÏÁö¸¸. SubversionÀÇ °æ¿ì ¸í·ÉÀÌ ÀÖ±ä ÇÏÁö¸¸ ´Ü¼øÇÑ µð·ºÅ丮 º¹»ç¿Í °°Àº È¿°ú¸¦ ³À´Ï´Ù.
trunk : ´Ü¾î ÀÚüÀÇ ¶æÀº º»Ã¼ ºÎºÐ, ³ª¹«ÁÙ±â, ¸öÅë µî ÀÔ´Ï´Ù. ÇÁ·ÎÁ§Æ®¿¡¼ °¡Àå Áß½ÉÀÌ µÇ´Â µð·ºÅ丮ÀÔ´Ï´Ù. ¸ðµç ÇÁ·Î±×·¥ °³¹ß ÀÛ¾÷Àº trunk µð·ºÅ丮¿¡¼ ÀÌ·ç¾îÁý´Ï´Ù. ±×·¡¼ À§ÀÇ ±¸Á¶¿¡¼ trunk µð·ºÅ丮 ¾Æ·¡¿¡´Â ¹Ù·Î ¼Ò½ºµéÀÇ ÆÄÀϰú µð·ºÅ丮°¡ µé¾î°¡°Ô µË´Ï´Ù.
branches : ³ª¹«ÁÙ±â(trunk)¿¡¼ »¸¾îÁ® ³ª¿Â ³ª¹« °¡Áö¸¦ ¶æÇÕ´Ï´Ù. trunk µð·ºÅ丮¿¡¼ ÇÁ·Î±×·¥À» °³¹ßÇÏ´Ù º¸¸é Å« ÇÁ·ÎÁ§Æ®¿¡¼ ¶Ç ´Ù¸¥ ÀÛÀº ºÐ·ù·Î »©¼ µû·Î °³¹ßÇØ¾ß ÇÒ °æ¿ì°¡ »ý±é´Ï´Ù. ÇÁ·ÎÁ§Æ®¾ÈÀÇ ÀÛÀº ÇÁ·ÎÁ§Æ®¶ó°í »ý°¢ÇÏ¸é µË´Ï´Ù. branches µð·ºÅ丮 ¾È¿¡ ¶Ç ´Ù¸¥ µð·ºÅ丮¸¦ µÎ¾î ±× ¾È¿¡¼ °³¹ßÇÏ°Ô µË´Ï´Ù.
tags : tag´Â ²¿¸®Ç¥¶ó´Â ¶æÀ» °¡Áö°í ÀÖ½À´Ï´Ù. ÀÌ µð·ºÅ丮´Â ÇÁ·Î±×·¥À» °³¹ßÇÏ¸é¼ Á¤±âÀûÀ¸·Î ¸±¸®Á ÇÒ ¶§ 0.1, 0.2, 1.0 ÇÏ´Â ½ÄÀ¸·Î ¹öÀüÀ» ºÙ¿© ¹ßÇ¥ÇÏ°Ô µÇ´Âµ¥ ±×¶§±×¶§ ¹ßÇ¥ÇÑ ¼Ò½º¸¦ µû·Î ÀúÀåÇÏ´Â °ø°£ÀÔ´Ï´Ù. À§¿¡¼ º¸¸é tags µð·ºÅ丮 ¾Æ·¡¿¡´Â ¹öÀü¸íÀ¸·Î µð·ºÅ丮°¡ ¸¸µé¾îÁ® ÀÖ½À´Ï´Ù.
2. Subversion ¶SubversionÀº CVS¸¦ ´ëüÇϱâ À§ÇØ °³¹ßµÇ°í ÀÖ½À´Ï´Ù. SubversionÀº ¼Ò½º ÄÚµå´Â ¹°·Ð ¹ÙÀ̳ʸ® ÆÄÀÏ µîÀÇ ¿©·¯°¡Áö Çü½ÄÀÇ ÆÄÀÏÀ» °ü¸® ÇÒ ¼ö ÀÖ½À´Ï´Ù.
2.1. CVS¿Í ºñ±³ÇÑ SubversionÀÇ ÀåÁ¡µé ¶
2.2. ¼³Ä¡ Áغñ ÀÛ¾÷ ¶ÀÌ Àå¿¡¼´Â ¸®´ª½º, À¯´Ð½º µîÀÇ POSIX ȣȯ ¿î¿µÃ¼Á¦¿¡¼ ¼Ò½º¸¦ ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ÇÏ´Â ¹æ¹ýÀ» ´Ù·ç°í ÀÖ½À´Ï´Ù.
Microsoft Windows¿¡¼ÀÇ »ç¿ëÀº
![]() °¢°¢ ¸®´ª½º ¹èÆ÷ÆÇ ¹× FreeBSD, NetBSD µîÀÇ Àü¿ë ÆÐŰÁö¿¡ ´ëÇØ¼´Â ¿î¿µÃ¼Á¦º° Àü¿ë ÆÐŰÁö ÀåÀ» ÂüÁ¶ÇϽʽÿÀ.
¼³Ä¡¸¦ À§ÇØ ÁغñÇØ¾ß ÇÒ ÀÏ.
2.3. »ç¿ë ÇÒ °¢°¢ÀÇ ÆÄÀÏµé ±¸Çϱ⠶
3.1. OpenSSL ÄÄÆÄÀϰú ¼³Ä¡ ¶
# tar vxzf openssl-0.9.7c.tar.gz
# cd openssl-0.97c
openssl-0.97c# ./config
openssl-0.97c# make
openssl-0.97c# make install
3.2. Berkeley DB ÄÄÆÄÀϰú ¼³Ä¡ ¶
# tar vxzf db-4.3.28.NC.tar.gz
# cd db-4.3.28.NC
db-4.3.28.NC# cd build_unix
db-4.3.28.NC/build_unix# ../dist/configure
db-4.3.28.NC/build_unix# make
db-4.3.28.NC/build_unix# make install
db-4.3.28.NC/build_unix# echo "/usr/local/BerkeleyDB.4.3/lib" >> /etc/ld.so.conf
db-4.3.28.NC/build_unix# ldconfig
3.3. Apache ÄÄÆÄÀϰú ¼³Ä¡ ¶Apache´Â ¼³Ä¡Çصµ µÇ°í ¾È ÇØµµ µË´Ï´Ù. À¥À¸·Î ÀúÀå¼Ò¸¦ °ø°³ÇѴٰųª. http:// ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇØ¼ subversionÀ» ÀÌ¿ëÇÏ°í ½Í´Ù¸é ¼³Ä¡Çϵµ·Ï ÇÕ´Ï´Ù.
# tar vxzf httpd-2.0.54.tar.gz
httpd-2.0.54# ./configure --prefix=/usr/local/apache2 --enable-suexec \
--enable-so --with-suexec-caller=bin \
--enable-ssl --with-ssl=/usr/local/ssl --enable-cache \
--enable-ext-filter --with-z=/usr/include --enable-dav \
--with-dbm=db4 --with-berkeley-db=/usr/local/BerkeleyDB.4.2
httpd-2.0.54# make
httpd-2.0.54# make install
3.4. Subversion ÄÄÆÄÀϰú ¼³Ä¡ ¶µ¥ºñ¾ÈÀÇ °æ¿ì zlib1g-dev, libxml2-dev, libexpat1-devÀÇ ÆÐŰÁö°¡ ÇÊ¿äÇÕ´Ï´Ù. ´Ù¸¥ ¹èÆ÷ÆÇÀÇ °æ¿ìµµ °ÅÀÇ °°Àº À̸§À¸·ÎµÈ ÆÐŰÁö°¡ ÀÖÀ» °ÍÀÔ´Ï´Ù. ÀÌ ÆÐŰÁöµéÀº ¶óÀ̺귯¸®¿Í Çì´õ ÆÄÀÏÀ» Æ÷ÇÔÇϰí ÀÖ´Â °ÍµéÀÔ´Ï´Ù.
¾Õ¿¡¼ Apache¸¦ ¼³Ä¡ÇßÀ» °æ¿ì
# tar vxzf subversion-1.2.1.tar.gz
# cd subversion-1.2.1
subversion-1.2.1# ./configure --with-zlib --with-ssl=/usr/local/ssl \
--with-apr=/usr/local/apache2 \
--with-apr-util=/usr/local/apache2 \
--with-apxs=/usr/local/apache2/bin/apxs \
--with-dbm=db4 --with-berkeley-db=/usr/local/BerkeleyDB.4.3
subversion-1.2.1# make
subversion-1.2.1# make install
Apache¸¦ ¼³Ä¡ÇÏÁö ¾Ê¾ÒÀ» °æ¿ì
# tar vxzf subversion-1.2.1.tar.gz
# cd subversion-1.2.1
subversion-1.2.1# ./configure --with-zlib --with-ssl=/usr/local/ssl \
--with-dbm=db4 --with-berkeley-db=/usr/local/BerkeleyDB.4.3
subversion-1.2.1# make
subversion-1.2.1# make install
4.1. ÀúÀå¼Ò ¸¸µé±â ¶¼Ò½º¸¦ ÀúÀåÇÒ °ø°£À» ¸¸µé¾î¾ß ÇÕ´Ï´Ù. ÀúÀå¼Ò(Repository)´Â ÇÁ·ÎÁ§Æ® ¸¶´Ù Çϳª¾¿ ÀÖ¾î¾ß ÇÕ´Ï´Ù. ÀúÀå¼Ò ¾È¿¡ ÇÁ·ÎÁ§Æ®ÀÇ ¼Ò½º°¡ ´Ù µé¾î°¡°Ô µÇ¸ç ´Ù¸¥ ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇÑ´Ù¸é ±× ÇÁ·ÎÁ§Æ®¸¦ À§ÇÑ ÀúÀå¼Ò¸¦ Çϳª ´õ ¸¸µé¾î ÁÖ¾î¾ß ÇÕ´Ï´Ù. /home/svn¾È¿¡ ÀúÀå¼Ò¸¦ ¸¸µéµµ·Ï ÇϰڽÀ´Ï´Ù. ¾ÕÀ¸·Î ÀúÀå¼Ò¸¦ Ãß°¡ ÇÒ ¶§¿¡´Â /home/svn ¾Æ·¡¿¡ Ãß°¡ÇÏ¸é µË´Ï´Ù. ²À /home/svn¿¡ ÇÏÁö ¾Ê¾Æµµ µÇ¸ç ´Ù¸¥ °÷¿¡ ÇØµµ µË´Ï´Ù.
¹öŬ¸®DB¸¦ ÀÌ¿ëÇÑ ÀúÀå¼Ò ¸¸µé±â
# mkdir /home/svn
# cd /home/svn/
/home/svn# svnadmin create --fs-type bdb sample
ÆÄÀϽýºÅÛÀ» ÀÌ¿ëÇÑ ÀúÀå¼Ò ¸¸µé±â
# mkdir /home/svn
# cd /home/svn/
/home/svn# svnadmin create --fs-type fsfs sample
svnadminÀ¸·Î sampleÀ̶ó´Â ÀúÀå¼Ò¸¦ ¸¸µé¸é /home/svn ¾Æ·¡ sampleÀ̶ó´Â µð·ºÅ丮°¡ »ý±é´Ï´Ù. ÀÌ µð·ºÅ丮 ¾È¿¡´Â SubversionÀÌ Á¦¾îÇÏ´Â ÆÄÀϵéÀÌ µé¾îÀÖ½À´Ï´Ù. ÀÌ µð·ºÅ丮 ¾ÈÀÇ ÆÄÀϵéÀº Berkeley DB Çü½ÄÀ¸·Î µÇ¾î ÀÖ½À´Ï´Ù. DB ÆÄÀϵéÀº ¼öÁ¤ÇÏ´Â ÀÏÀÌ ¾øµµ·Ï ÇÕ´Ï´Ù. sample ÀúÀå¼ÒÀÇ Àüü °æ·Î´Â /home/svn/sampleÀÌ µË´Ï´Ù.
ÀÌÁ¦ºÎÅÍ sample ÀúÀå¼Ò¸¦ °è¼Ó »ç¿ëÇÏ¿© ¼³¸íÀ» ÇϰڽÀ´Ï´Ù.
4.1.1. °øµ¿ ÀÛ¾÷À» À§ÇÑ ÀúÀå¼Ò ±×·ì ¼³Á¤ ¶svn+ssh://·Î ÀÛ¾÷À» ÇÏ·Á¸é ½Ã½ºÅÛ °èÁ¤À» ¸¸µé¾î¾ß ÇÕ´Ï´Ù. ´ëºÎºÐ °èÁ¤À» ¸¸µé°í ±×·ìÀ» Çϳª·Î ¹´Âµ¥. ÀÌ·² °æ¿ì ±×·ì¿¡ ¼Ò¼ÓµÈ »ç¿ëÀڵ鿡°Ôµµ ÀúÀå¼Ò ¾²±â ±ÇÇÑÀ» ÁÖ¾î¾ß ÇÕ´Ï´Ù. ±×·¡¼ ÀúÀå¼ÒÀÇ ±×·ì ±ÇÇÑÀ» Á¶Á¤ÇØÁÖ¾î¾ß ÇÕ´Ï´Ù. ±×·ì ¾²±â ±ÇÇÑÀ» ÁÖÁö ¾ÊÀ¸¸é ÀúÀå¼Ò¸¦ ¸¸µç °èÁ¤¸¸ ÀúÀå¼Ò¿¡ Á¢±ÙÀÌ °¡´ÉÇϰí. ±×·ì¿¡ ¼ÓÇØ ÀÖ´õ¶óµµ ´Ù¸¥ »ç¿ëÀÚ´Â ÀúÀå¼Ò¿¡ Á¢±Ù ÇÒ ¼ö ¾ø°Ô µË´Ï´Ù.
# chmod -R g+w sample
4.2. Apache ¼³Á¤ ¶Apache¸¦ ¼³Ä¡Çß´Ù¸é Apache ¼³Á¤À» ÇØÁÖ¾î¾ß ÇÕ´Ï´Ù.
Apache°¡ ÀúÀå¼Ò¿¡ Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï ¼ÒÀ¯ÀÚ¿Í ±ÇÇÑÀ» ¹Ù²ß´Ï´Ù. Apache´Â ±âº»ÀûÀ¸·Î ¼³Ä¡Çϸé nobody¿Í nogroup·Î ½ÇÇàµË´Ï´Ù.
# cd /home/svn
/home/svn# chown -R nobody.nogroup sample
Apache¸¦ /usr/local/apache2¿¡ ¼³Ä¡ÇßÀ¸¹Ç·Î ¼³Á¤ÆÄÀÏÀº /usr/local/apach2/conf/httpd.conf ÀÔ´Ï´Ù. dav, dav_svn ¸ðµâÀÌ ¼³Á¤µÇ¾î ÀÖ´ÂÁö È®ÀÎ ÇÕ´Ï´Ù. ÁÖ¼®Ã³¸® µÇ¾î ÀÖÀ¸¸é ÁÖ¼®À» ¾ø¾Ö°í ¾ø´Ù¸é ¾Æ·¡ µÎÁÙÀ» Ãß°¡ÇÕ´Ï´Ù.
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
httpd.conf ÆÄÀÏ ¸Ç µÞºÎºÐ¿¡ ¾Æ·¡¿Í °°ÀÌ Ãß°¡ ÇÕ´Ï´Ù. ¼³Á¤À» ÀúÀåÇÑ µÚ¿¡ Apache¸¦ Àç½ÃÀÛ ÇÕ´Ï´Ù.
<Location /svn/sample>
DAV svn
SVNPath /home/svn/sample
</Location>
http://(Subversion°ú Apache¸¦ ¼³Ä¡ÇÑ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample ·Î Á¢¼ÓÀ» ÇÕ´Ï´Ù.
À¥ ºê¶ó¿ìÀú¿¡ ¾Æ·¡¿Í °°Àº ȸéÀÌ º¸À̸é Subversion ÀúÀå¼Ò¿Í ¾ÆÆÄÄ¡°¡ Àß µ¿ÀÛÇϰí ÀÖ´Â °ÍÀÔ´Ï´Ù. ¾Æ·¡¿Í °°ÀÌ ³ª¿ÀÁö ¾Ê´Â´Ù¸é ¾ÆÆÄÄ¡ ¼³Á¤°ú ÀúÀå¼ÒÀÇ ¼ÒÀ¯ÀÚ¿Í ±×·ìÀ» ´Ù½Ã ÇÑ ¹ø »ìÆìº¸½Ã±â ¹Ù¶ø´Ï´Ù.
Revision 0: /
--------------------------------------------------------------------------------
Powered by Subversion version 1.0.0.
ÀÌ·¸°Ô ½ÇÇà ½ÃÄ×À¸¸é "# svn checkout
http://(Subversion¼¹ö IP¶Ç´Â µµ¸ÞÀÎ)/svn/sample sample "À» ÀÔ·ÂÇÕ´Ï´Ù. "Checked out revision 0."ÀÌ ³ª¿À¸é Á¦´ë·Î ¼³Á¤ÀÌ µÈ °ÍÀÔ´Ï´Ù. ¾Æ¹«³ª(Anonymous) ÀúÀå¼Ò¿¡ Á¢±ÙÇØ¼ üũ¾Æ¿ô, Ä¿¹Ô µîÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù.
4.2.1. Apache¿¡¼ ID·Î »ç¿ëÀÚ ÀÎÁõ ¶ÀÌÁ¦ ID¸¦ ÅëÇØ ÀÎÁõµÈ »ç¿ëÀÚ¸¸ ¼Ò½º¸¦ üũ¾Æ¿ôÇϰí Ä¿¹Ô ÇÒ ¼ö ÀÖµµ·Ï ¼³Á¤ ÇϰڽÀ´Ï´Ù.
¾ÆÆÄÄ¡¿¡ »ç¿ëÇÒ ÆÐ½º¿öµå ÆÄÀÏÀ» ¸¸µì´Ï´Ù. "# htpasswd -c ÆÐ½º¿öµåÆÄÀÏ¸í »ç¿ëÀÚID"
# cd /usr/local/apache/conf
/usr/local/apache/conf# ../bin/htpasswd -c passwd sampleuser
New password:
Re-type new password:
¹æ±Ý ¼öÁ¤Çß´ø /usr/local/apache2/conf/httpd.conf ÆÄÀÏÀÇ ¸Ç ¸¶Áö¸· ºÎºÐ¿¡ Ãß°¡ÇÑ ºÎºÐÀ» ´Ù½Ã ¼³Á¤ ÇÕ´Ï´Ù.
<Location /svn/sample>
DAV svn
SVNPath /home/svn/sample
AuthType Basic
AuthName "pyrasis's Repository"
AuthUserFile /usr/local/apache2/conf/passwd
Require valid-user
</Location>
ÀÌÁ¦ À¥ ºê¶ó¿ìÀú·Î ´Ù½Ã sampleÀúÀå¼Ò·Î Á¢¼ÓÇØ º¸¸é ID¿Í ÆÐ½º¿öµå¸¦ ¹¯´Â âÀÌ ³ª¿Ã °ÍÀÔ´Ï´Ù. ¸¸µç ID¿Í ÆÐ½º¿öµå¸¦ ÀÔ·ÂÇϸé ÀúÀå¼Ò¸¦ º¼ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô µÇ¸é üũ¾Æ¿ô, Ä¿¹ÔµîÀ» ÇÒ ¶§ ID¿Í ¾ÏÈ£¸¦ ¹°¾îº¸°Ô µË´Ï´Ù.
À¥ ºê¶ó¿ìÀú·Î ÀúÀå¼Ò¸¦ º¸´Â °Í°ú üũ¾Æ¿ôÀº ¾Æ¹«¿¡°Ô³ª(Anonymous) ÇÒ ¼ö ÀÖ°Ô Çϰí Ä¿¹ÔÀº ÁöÁ¤µÈ »ç¿ëÀÚ¸¸ ÇÒ ¼ö ÀÖµµ·Ï ÇÏ·Á¸é httpd.conf¿¡¼ ¼³Á¤ÇÑ ºÎºÐÀ» ¾Æ·¡¿Í °°ÀÌ ¹Ù²Ù¾î ÁÖ¸é µË´Ï´Ù.
<Location /svn/sample>
DAV svn
SVNPath /home/svn/sample
AuthType Basic
AuthName "pyrasis's Repository"
AuthUserFile /usr/local/apache2/conf/passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
"# svn
checkout http://(Subversion¼¹ö IP¶Ç´Â µµ¸ÞÀÎ)/svn/sample sample" À» ÀÔ·ÂÇϸé ID¿Í ÆÐ½º¿öµå¸¦ ¹°¾î¿É´Ï´Ù. ID¿Í ÆÐ½º¿öµå¸¦ ÀÔ·ÂÇÏ°í ³ª¼ "Checked out revision 0." ÀÌ Ãâ·ÂµÇ¸é Á¦´ë·Î ¼³Á¤ µÈ °ÍÀÔ´Ï´Ù.
4.3. svnserve¸¦ »ç¿ëÇÑ ¼¹ö ¶SubversionÀÇ °íÀ¯ ÇÁ·ÎÅäÄÝÀÎ svn://À» ÀÌ¿ëÇÒ ¼ö ÀÖ´Â svnserve¸¦ »ç¿ëÇØ¼ ¼¹ö ¼³Á¤À» ÇØº¸°Ú½À´Ï´Ù. À̰ÍÀ» »ç¿ëÇϸé Apache¸¦ »ç¿ëÇÑ °Íº¸´Ù üũ¾Æ¿ô, Ä¿¹Ô ¼Óµµ°¡ ´õ ºü¸¨´Ï´Ù.
svnserve·Î ¼¹ö¸¦ ½ÇÇà ½Ã۸é 3690¹øÀÇ Æ÷Æ®°¡ ¿¸³´Ï´Ù. sample ÀúÀå¼Ò°¡ /home/svn ¾Æ·¡¿¡ ÀÖÀ» °æ¿ì
# svnserve -d -r /home/svn/
ÀÌ·¸°Ô ½ÇÇà ½ÃÄ×À¸¸é "# svn checkout
svn://(Subversion¼¹ö IP¶Ç´Â µµ¸ÞÀÎ)/sample sample"À» ÀÔ·ÂÇÕ´Ï´Ù. "Checked out revision 0."ÀÌ ³ª¿À¸é Á¦´ë·Î ¼³Á¤ÀÌ µÈ °ÍÀÔ´Ï´Ù. ÀÌ°Í ¶ÇÇÑ ¾Æ¹«³ª(Anonymous) ÀúÀå¼Ò¿¡ Á¢±ÙÇØ¼ üũ¾Æ¿ô, Ä¿¹Ô µîÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù.
4.3.1. svnserve¿¡¼ ID·Î »ç¿ëÀÚ ÀÎÁõ ¶Subversion 0.33.0¹öÀü ÀÌÈĺÎÅÍ svnserve·Î ID·Î »ç¿ëÀÚ ÀÎÁõÀÌ °¡´ÉÇÏ°Ô µÇ¾ú½À´Ï´Ù. ±× ÀÌÀü ¹öÀü¿¡¼ svnadminÀ¸·Î ÀúÀå¼Ò¸¦ ¸¸µé¸é ÀúÀå¼Ò µð·ºÅ丮 ¾Æ·¡¿¡ conf µð·ºÅ丮°¡ »ý±âÁö ¾ÊÁö¸¸ 0.33.0 ¹öÀüÀÌÈÄ¿¡ svnadminÀ¸·Î ÀúÀå¼Ò¸¦ ¸¸µé¾ú´Ù¸é ÀúÀå¼Ò µð·ºÅ丮 ¾Æ·¡¿¡ conf µð·ºÅ丮°¡ ÀÚµ¿À¸·Î »ý¼ºµË´Ï´Ù. ÀÌÀü ¹öÀü¿¡¼ ¸ÕÀú ÀúÀå¼Ò¸¦ ¸¸µé¾î µÎ¾ú´Ù¸é ÀúÀå¼Ò µð·ºÅ丮 /home/svn/sample ¾Æ·¡ conf µð·ºÅ丮¸¦ ¸¸µé¾î ÁÝ´Ï´Ù. (/home/svn/sample/conf)
ÀÌÁ¦ °¢ ÀúÀå¼Ò µð·ºÅ丮 ¾Æ·¡ conf µð·ºÅ丮°¡ ÀÖ½À´Ï´Ù. /home/svn/sample/conf/svnserve.conf ÆÄÀÏÀÌ svnserveÀÇ ¼³Á¤ ÆÄÀÏÀÔ´Ï´Ù. 0.33.0 ¹öÀü ÀÌÀü ¸¸µç ÀúÀå¼Ò¿¡´Â conf µð·ºÅ丮 ¹× svnserve.conf ÆÄÀÏÀÌ ¾ø½À´Ï´Ù. ±×·² °æ¿ì¿¡´Â conf µð·ºÅ丮¿Í svnserve.conf ÆÄÀÏÀ» ¸¸µé¾î ÁÖ¸é µË´Ï´Ù.
svnserve.conf ÆÄÀÏÀ» ¾Æ·¡¿Í °°ÀÌ ¼³Á¤ ÇÕ´Ï´Ù.
### This file controls the configuration of the svnserve daemon, if you
### use it to allow access to this repository. (If you only allow
### access through http: and/or file: URLs, then this file is
### irrelevant.)
### Visit http://subversion.tigris.org/ for more information.
[general]
### These options control access to the repository for unauthenticated
### and authenticated users. Valid values are "write", "read",
### and "none". The sample settings below are the defaults.
anon-access = none
auth-access = write
### The password-db option controls the location of the password
### database file. Unless you specify a path starting with a /,
### the file's location is relative to the conf directory.
### The format of the password database is similar to this file.
### It contains one section labelled [users]. The name and
### password for each user follow, one account per line. The
### format is
### USERNAME = PASSWORD
### Please note that both the user name and password are case
### sensitive. There is no default for the password file.
password-db = passwd
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa. The default realm
### is repository's uuid.
realm = pyrasis's Repository
anon-access = noneÀ¸·Î ¾Æ¹«¿¡°Ô³ª(Anonymous) ÀúÀå¼Ò¿¡ Á¢±ÙÇÏ´Â °ÍÀ» ¸·¾Ò½À´Ï´Ù. read·Î Çϸé Àб⸸ °¡´ÉÇϸç write·Î ÇØÁÖ¸é ÀÐ°í ¾²±â°¡ °¡´ÉÇØÁý´Ï´Ù.
auth-access = write´Â ID·Î ÀÎÁõµÈ »ç¿ëÀÚ¿¡°Ô ¾²±â ±ÇÇÑÀ» ÁÖ´Â °ÍÀÔ´Ï´Ù.
password-db = passwd ÀÌ ¼³Á¤Àº svnserveÀÇ ÆÐ½º¿öµå ÆÄÀÏÀÔ´Ï´Ù ÀÌÀüÀÇ Apache ÆÐ½º¿öµå ÆÄÀϰú´Â º°°³ÀÔ´Ï´Ù. ¾Æ·¡ ³»¿ëÀ¸·Î /home/svn/sample/conf ¾Æ·¡ passwd ¶ó´Â À̸§À¸·Î ¸¸µì´Ï´Ù. ID = ÆÐ½º¿öµå Çü½Ä ÀÔ´Ï´Ù. ¾ÆÁ÷ ¾ÏÈ£ÈµÈ ÆÐ½º¿öµå´Â Áö¿øÇÏÁö ¾Ê´Â °Í °°½À´Ï´Ù. ¹öÀü ¾÷À» ÅëÇØ °³¼± µÉ °Í °°½À´Ï´Ù.
passwd
[users]
sampleuser = 02030104
ÀÌÁ¦ "# svn checkout svn://(Subversion ¼¹öÀÇ IP¶Ç´Â µµ¸ÞÀÎ)/sample sample" À» ÇØº¸¸é ID¿Í ÆÐ½º¿öµå¸¦ ÀÔ·ÂÇ϶ó°í ³ª¿É´Ï´Ù. À§¿¡¼ ¼³Á¤Çß´ø ID¿Í ÆÐ½º¿öµå¸¦ ÀÔ·ÂÇϸé üũ¾Æ¿ôÀÌ µÇ¸ç "Checked out revision 0." ÀÌ ³ª¿À¸é ¼³Á¤ÀÌ Á¦´ë·Î µÈ °ÍÀÔ´Ï´Ù.
4.4. SSH + svnserve ¼¹ö ¶SSH2 µ¥¸óÀ¸·Î svnserveÀ» Åͳθµ ÇÏ¿© ÀÛµ¿½Ãŵ´Ï´Ù. ÀÌ·¸°Ô µÇ¸é svn+ssh:// ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÏ°Ô µÇ¸ç »ç¿ëÀÚ ÀÎÁõÀº ½Ã½ºÅÛ °èÁ¤À¸·Î ÀÎÁõÀ» ÇÕ´Ï´Ù. ±¸µ¿½ÃŰ´Â ¹æ¹ýÀº µû·Î ÀÖÁö ¾ÊÀ¸¸ç SSHµ¥¸ó¸¸ ¶° ÀÖÀ¸¸é µË´Ï´Ù.
Ŭ¶óÀÌ¾ðÆ®¿¡¼ svn+ssh:// ¸¦ »ç¿ëÇϱâ
Ŭ¶óÀÌ¾ðÆ®¿¡¼ ¼¹ö·Î Á¢¼ÓÇÒ ID¼³Á¤, °¢ »ç¿ëÀÚ °èÁ¤ÀÇ µð·ºÅ丮¿¡ .subversionÀ̶ó´Â µð·ºÅ丮°¡ ÀÖ½À´Ï´Ù. ¿©±â¿¡ º¸¸é config ¶ó´Â ÆÄÀÏÀÇ ¸Ç ¸¶Áö¸·¿¡ ¾Æ·¡¿Í °°ÀÌ Ãß°¡ÇÕ´Ï´Ù. ssh -l ¼¹ö¿¡ Á¢¼ÓÇÒ ID
~/.subversion/config
[tunnels]
ssh = ssh -l sampleuser
ÁÖÀÇÇÒ Á¡Àº IPÁÖ¼Ò³ª µµ¸ÞÀÎ µÚ¿¡ ÀúÀå¼ÒÀÇ Àý´ë °æ·Î¸¦ Àû¾îÁÖ¾î¾ß ÇÕ´Ï´Ù. svnserve¸¦ ¶ç¿ö¼ /home/svn/°ú °°ÀÌ ÁöÁ¤ÇØ ÁÖÁö ¾Ê¾Ò±â ¶§¹®¿¡ °¢ ÀúÀå¼ÒÀÇ Àý´ë°æ·ÎÀÎ /home/svn/sample·Î ÇÕ´Ï´Ù.
# svn checkout svn+ssh://(Subversion ¼¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/home/svn/sample sample
5. ½ÇÁ¦·Î »ç¿ëÇϱ⠶°£´ÜÇÑ ¿¹Á¦ ÇÁ·Î±×·¥À» ÅëÇØ¼ SubversionÀÇ »ç¿ë¹ýÀ» ¾Ë¾Æº¸µµ·Ï ÇϰڽÀ´Ï´Ù. Ä¿¸Çµå ¶óÀΠŬ¶óÀ̾ðÆ®À» ÅëÇØ ¾Ë¾Æº¸°Ú½À´Ï´Ù. X À©µµ¿ì, MS À©µµ¿ì¿ë GUI Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥¿¡ ´ëÇØ¼´Â µÚ¿¡ ¼³¸íÇϵµ·Ï ÇϰڽÀ´Ï´Ù.
5.1. ¿¡µðÅÍ ¼³Á¤ ¶Subversion¿¡¼ »ç¿ëÇÒ ±âº»ÀûÀÎ ¿¡µðÅ͸¦ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. À̰ÍÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é Ä¿¹Ô µîÀ» ÇÒ ¼ö ¾ø°Ô µË´Ï´Ù.
°¢ »ç¿ëÀÚ °èÁ¤ÀÇ µð·ºÅ丮¿¡´Â .profileÀ̳ª .bash_profile µîÀÇ È¯°æ º¯¼ö µîÀ» ÁöÁ¤ÇÏ´Â ÆÄÀÏÀÌ ÀÖ½À´Ï´Ù. ¿©±â¿¡ ¾Æ·¡¿Í °°ÀÌ Ãß°¡ ÇÕ´Ï´Ù. ¿©±â¿¡¼´Â ¿¡µðÅ͸¦ vimÀ¸·Î ¼³Á¤ ÇϰڽÀ´Ï´Ù. vimÀÇ °æ·Î´Â »ç¿ëÀÚ¸¶´Ù ´Ù¸¦ ¼ö ÀÖÀ¸¹Ç·Î »ç¿ëÇϰíÀÚ ÇÏ´Â ½Ã½ºÅÛ¿¡ ¸Â°Ô Àû¾îÁֽʽÿÀ.
SVN_EDITOR=/usr/bin/vim
export SVN_EDITOR
5.2. ±âº» µð·ºÅ丮 ¸¸µé±â ¶¾Õ¼ ¼³¸í Çß´ø trunk, branches, tags µð·ºÅ丮¸¦ ¸¸µé¾î º¸°Ú½À´Ï´Ù.
trunk µð·ºÅ丮ÀÇ »ý¼º, ¾Õ¿¡¼ Apache¸¦ ÅëÇØ ¼³Á¤ Çß´Ù¸é
http:// ¸¦ svnserve·Î ¼³Á¤Çß´Ù¸é svn:// ·Î SSH¸¦ »ç¿ëÇÑ´Ù¸é svn+ssh:// ·Î ÇÏ¿© ¼¹ö ¼³Á¤¿¡ ¸Â°Ô ÁÖ¼Ò¸¦ Àû¾î ÁֽʽÿÀ.
apache¸¦ ¿¬µ¿ÇÑ °æ¿ì
# svn mkdir http://(Subversion ¼¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample/trunk
# svn mkdir svn://(Subversion¼¹ö IP¶Ç´Â µµ¸ÞÀÎ)/sample/trunk
--This line, and those below, will be ignored--
A http://(Subversion ¼¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample/trunk
vimÀ» ºüÁ® ³ª¿Ô´Ù¸é ¾Æ·¡¿Í °°ÀÌ ³ª¿À´Âµ¥(Ä¿¹Ô ·Î±×¸¦ ÀÔ·ÂÇÏÁö ¾ÊÀ¸¸é ¾Æ·¡¿Í ÀÌ ³ª¿À°ÔµË´Ï´Ù.) c¸¦ ´©¸£°í ¿£Å͸¦ Ä¡¸é µð·ºÅ丮°¡ ¸¸µé¾î Áö°Ô µË´Ï´Ù.
Log message unchanged or not specified
a)bort, c)ontinue, e)dit
c¸¦ ÀÔ·ÂÇÑµÚ ¾Æ·¡¿Í °°ÀÌ ³ª¿À¸é µð·ºÅ丮 »ý¼ºÀº ¼º°øÇÑ °ÍÀÔ´Ï´Ù. ÀÌ ¹æ¹ý´ë·Î branches, tags µð·ºÅ丮µµ ¸¸µì´Ï´Ù.
Committed revision 1.
¸¸¾à read-only¿¡·¯°¡ ³ª¿Ã °æ¿ì conf/svnserve.conf¿¡¼ °èÁ¤À» ¸¸µéÁö ¾Ê¾Æ¼ ±×·¸½À´Ï´Ù. anonymous·Î »ç¿ëÇÒ °æ¿ì #general, #anon-access = read °¡ ÁÖ¼® ó¸® µÇ¾î Àִµ¥ ÁÖ¼®À» ¾ø¾Ö°í anon-access = write·Î ¹Ù²Ù½Ã¸é µË´Ï´Ù.
Á¦´ë·Î ¸¸µé¾î Á³´ÂÁö È®ÀÎÀ» ÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÀÔ·Â ÇÕ´Ï´Ù. list´Â ÀúÀå¼Ò ¾ÈÀÇ µð·ºÅ丮¿Í ÆÄÀϵéÀ» Ç¥½ÃÇØ ÁÝ´Ï´Ù.
¾ÕÀ¸·Î µð·ºÅ丮 »ý¼º, »èÁ¦, À̸§º¯°æ, ÆÄÀÏ, Ãß°¡, »èÁ¦, º¹»ç, À̵¿°ú Ä¿¹Ô, µîÀ» ÇÒ ¶§ vimÀÌ ½ÇÇàµÇ¸é¼ ¾î¶² °ÍµéÀÌ ¹Ù²î´ÂÁö Ç¥½Ã°¡ µË´Ï´Ù. Ä¿¹Ô ·Î±×¸¦ ÀÔ·ÂÇÑµÚ vimÀ» Á¾·áÇϸé Ä¿¹ÔÀÌ ¿Ï·á µË´Ï´Ù. Ä¿¹Ô ·Î±×¸¦ ÀÔ·ÂÇÏÁö ¾Ê¾ÒÀ» °æ¿ì
a)bort, c)ontinue, e)dit °¡ ³ª¿À°Ô µÇ´Âµ¥ c)ontinue) ·Î °è¼Ó ÇÏ¸é µË´Ï´Ù.
![]() 5.3. Import ¶¸Ç óÀ½ ÇÁ·ÎÁ§Æ®¸¦ ½ÃÀÛÇÒ ¶§ ÀúÀå¼Ò¿¡ ¼Ò½ºµéÀ» ³Ö¾î¾ß ÇÕ´Ï´Ù. ÀÌ·² ¶§ ÇÏ´Â °ÍÀÌ import ÀÛ¾÷ÀÔ´Ï´Ù. sampledir À̶ó´Â µð·ºÅ丮¸¦ ¸¸µç µÚ¿¡ ±× ¾Æ·¡ ´ÙÀ½°ú °°Àº °£´ÜÇÑ ¼Ò½º¸¦ ÀÛ¼ºÇØ º¸½Ê½Ã¿À.
# mkdir sampledir
# cd sampledir
sampledir# vim sample.c
#include <stdio.h>
int main()
{
printf("Sample Program Version 0.1\n");
return 0;
}
ÀÌ ¼Ò½º¸¦ ÀúÀå¼ÒÀÇ trunk µð·ºÅ丮¿¡ import ÇϰڽÀ´Ï´Ù. ¾Æ·¡ sampledirÀº µð·ºÅ丮ÀÔ´Ï´Ù. ÆÄÀÏÀ» ÀûÀ¸¸é importµÇÁö ¾Ê½À´Ï´Ù. ²À µð·ºÅ丮¸¦ ¸¸µé°í ±× µð·ºÅ丮¸¦ Àû¾î ÁֽʽÿÀ. ÀúÀå¼ÒÀÇ trunk µð·ºÅ丮¿¡´Â sampledir µð·ºÅ丮¾ÈÀÇ sample.c ÆÄÀϸ¸ ¿Ã¶ó°¡°Ô µÇ°í sampledirÀº ¿Ã¶ó°¡Áö ¾Ê½À´Ï´Ù. sampledir ¾Æ·¡ µð·ºÅ丮¸¦ ¸¸µé¾ú´Ù¸é ±× µð·ºÅ丮´Â ÀúÀå¼ÒÀÇ trunk µð·ºÅ丮 ¾Æ·¡¿¡ ¿Ã¶ó°¡°Ô µË´Ï´Ù.
sampledir# cd ..
# svn import sampledir http://(Subversion ¼¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample/trunk
import°¡ Á¦´ë·Î µÇ¾ú´ÂÁö È®ÀÎÇØ º¾½Ã´Ù. list ¸í·ÉÀ» ÀÌ¿ëÇØ trunk µð·ºÅ丮¿¡ ¹«¾ùÀÌ ÀÖ³ª º¸°Ú½À´Ï´Ù.
# svn list http://(Subversion ¼¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample/trunk
sample.c
5.4. Checkout ¶ÀÌÁ¦ ºÎÅÍ SubversionÀ» ÀÌ¿ëÇØ¼ ÇÁ·Î±×·¥ ¼Ò½º¸¦ °ü¸® ÇÒ ¼ö ÀÖ½À´Ï´Ù. checkoutÀ» ÇØ¼ ¾îµð¼µç ¼Ò½º¸¦ ¹Þ¾Æ º¼ ¼ö ÀÖ½À´Ï´Ù. ¹æ±Ý import¸¦ ÇϱâÀ§ÇØ ¸¸µé¾ú´ø sampledirÀº Áö¿öµµ µË´Ï´Ù.
svn checkoutÀº svn co·Î ÁÙÀÏ ¼ö ÀÖ½À´Ï´Ù. "svn checkout ÀúÀå¼ÒÁÖ¼Ò ·ÎÄõð·ºÅ丮" ÀÇ Çü½Ä ÀÔ´Ï´Ù.
# svn checkout http://(Subversion ¼¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample/trunk sample
A sample/sample.c
Checked out revision 4.
checkoutÀ» ÇÑ µð·ºÅ丮 ¾È¿¡´Â .svn À̶ó´Â µð·ºÅ丮°¡ ÀÖ½À´Ï´Ù. ÀÌ µð·ºÅ丮´Â Subversion ÀúÀå¼Ò Á¤º¸°¡ µé¾î Àֱ⠶§¹®¿¡ Áö¿ì¸é ¾È µË´Ï´Ù.
5.5. Update ¶Ã¼Å©¾Æ¿ô ÇØ¼ ¹ÞÀº ¼Ò½º¸¦ ÀúÀå¼ÒÀÇ ÃÖ±Ù ³»¿ëÀ¸·Î ¾÷µ¥ÀÌÆ® ÇÏ´Â ¸í·ÉÀÔ´Ï´Ù. üũ¾Æ¿ô ÇØ¼ ¹ÞÀº ¼Ò½ºÀÇ revisionº¸´Ù ÀúÀå¼ÒÀÇ revisionÀÌ ³ôÀ¸¸é ¾÷µ¥ÀÌÆ® ÇÏ°Ô µË´Ï´Ù. ¾÷µ¥ÀÌÆ®¸¦ ÇÏ°Ô µÇ¸é ÀüºÎ ´Ù ¹Þ¾Æ¿À´Â °ÍÀÌ ¾Æ´Ï¶ó º¯°æ µÈ °Íµé¸¸ ¹Þ¾Æ¿É´Ï´Ù. ¼Ò½º¸¦ ¼öÁ¤Çϱâ Àü¿¡ ¾ðÁ¦³ª update ¸í·ÉÀ¸·Î ¼Ò½º¸¦ °¡Àå ÃֽŠrevisionÀ¸·Î ¸ÂÃß°í ÀÛ¾÷À» ÇØ¾ß ÇÕ´Ï´Ù.
svn update´Â svn up·Î ÁÙ¿© »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
sample# svn update
5.6. Commit ¶checkout ÇØ¼ ¹ÞÀº ¼Ò½º¸¦ ¼öÁ¤Çϰí ÀúÀå¼Ò¿¡ ¼öÁ¤µÈ ¼Ò½º¸¦ Àû¿ëÇØ º¸°Ú½À´Ï´Ù. ÀÌ ÀÛ¾÷À» Ä¿¹Ô(Commit)À̶ó°í ÇÕ´Ï´Ù.
üũ¾Æ¿ô ¹ÞÀº sample.c ¼Ò½º¸¦ ¾Æ·¡Ã³·³ ¼öÁ¤ÇÕ´Ï´Ù.
#include <stdio.h>
int main()
{
printf("Sample Program Version 0.2\n");
printf("Hello Subversion\n");
return 0;
}
ÀÌÁ¦ Ä¿¹ÔÀ» ÇØ º¾½Ã´Ù Ä¿¹Ô ¸í·ÉÀº üũ¾Æ¿ô ÇØ¼ ¼Ò½º¸¦ ¹ÞÀº µð·ºÅ丮¿¡¼ ÇØ¾ß µË´Ï´Ù. svn commitÀº svn ci·Î ÁÙ¿© ¾µ ¼ö ÀÖ½À´Ï´Ù. Ä¿¹Ô ¸í·ÉÀ» ³»¸®¸é Ä¿¹Ô ·Î±×¸¦ ÀÛ¼ºÇÏ´Â ¿¡µðÅͰ¡ ½ÇÇà µË´Ï´Ù. Ä¿¹Ô ·Î±×¸¦ ÀÔ·ÂÇÑÈÄ ÀúÀåÀ» Çϸé Ä¿¹ÔÀÌ µË´Ï´Ù.
sample# svn commit
Sending sample.c
Transmitting file data .
Committed revision 5.
5.7. Log ¶ÀÌÁ¦ ÀúÀå¼Ò¿¡ ¾î¶°ÇÑ °ÍµéÀÌ º¯°æ µÇ¾ú´ÂÁö È®ÀÎ ÇÒ ¼ö ÀÖ´Â log ¸í·É¿¡ ´ëÇØ ¾Ë¾Æº¸°Ú½À´Ï´Ù.
log ¸í·ÉÀº üũ¾Æ¿ô ¹ÞÀº µð·ºÅ丮 ¾È¿¡¼ ÇØ¾ß ÇÕ´Ï´Ù. revision°ú ³¯Â¥, ´©°¡ Ä¿¹ÔÀ» Çß´ÂÁö ¾Ë ¼ö ÀÖ½À´Ï´Ù. ¿©±â¼´Â (no author)·Î ³ª¿É´Ï´Ù. À̰ÍÀº ¼¹ö ¼³Á¤¿¡¼ ¾Æ¹«³ª Ä¿¹Ô ÇÒ ¼ö ÀÖ°Ô ÇÏ¿©¼ ÀÌ·¸°Ô ³ª¿À´Â °ÍÀ̰í ID¸¦ ÅëÇØ ÀÎÁõÀ» Çϵµ·Ï ¼³Á¤À» ÇßÀ¸¸é ID°¡ Ç¥½Ã µË´Ï´Ù.
sample# svn log
------------------------------------------------------------------------
r4 | (no author) | 2003-11-23 14:40:05 +0900 (Sun, 23 Nov 2003) | 1 line
------------------------------------------------------------------------
r1 | (no author) | 2003-11-23 14:39:00 +0900 (Sun, 23 Nov 2003) | 1 line
-----------------------------------------------------------------------
sample# svn log --revision 5:19 # revision 5ºÎÅÍ 9±îÁöÀÇ ·Î±×¸¦ Ãâ·ÂÇÕ´Ï´Ù.
sample# svn log -r 19:5 # revision 19ºÎÅÍ 5±îÁö ¿ªÀ¸·Î Ãâ·ÂÇÕ´Ï´Ù.
sample# svn log -r 8 # revision 8ÀÇ ·Î±×¸¦ Ãâ·ÂÇÕ´Ï´Ù.
sample# svn log sample.c
sample# svn log http://(Subversion ¼¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample/trunk/sample.c
sample# svn log -r 5 -v
------------------------------------------------------------------------
r5 | (no author) | 2003-11-23 14:42:34 +0900 (Sun, 23 Nov 2003) | 1 line
Changed paths:
M /trunk/sample.c
------------------------------------------------------------------------
sample# svn log -v
------------------------------------------------------------------------
r4 | (no author) | 2003-11-23 14:40:05 +0900 (Sun, 23 Nov 2003) | 1 line
Changed paths:
A /trunk/sample.c
------------------------------------------------------------------------
r1 | (no author) | 2003-11-23 14:39:00 +0900 (Sun, 23 Nov 2003) | 1 line
Changed paths:
A /trunk
------------------------------------------------------------------------
5.8. Diff ¶diff ¸í·ÉÀ» »ç¿ëÇÏ¸é ¿¹Àü ¼Ò½º ÆÄÀϰú Áö±ÝÀÇ ¼Ò½º ÆÄÀÏÀ» ºñ±³ÇØ º¼ ¼ö ÀÖ½À´Ï´Ù. À§¿¡¼ ³ª¿Â ·Î±×¿Í °°ÀÌ ¿ì¸®´Â revision 4(r4)¿¡¼ sample.c¸¦ import Çß½À´Ï´Ù. ±×¸®°í revision 5¿¡¼ ¼Ò½º¸¦ ¼öÁ¤Çϰí Ä¿¹Ô Çß½À´Ï´Ù.
ÃÖÃÊ¿¡ import Çß´ø ¼Ò½º sample.cÀÇ revision 4¿Í ¼öÁ¤Çؼ Ä¿¹ÔÇÑ revision 5ÀÇ Â÷ÀÌÁ¡À» diff ¸í·ÉÀ¸·Î Ãâ·ÂÇØ º¸°Ú½À´Ï´Ù. --revision 4¸¸ ÀûÀ¸¸é ÇöÀç revision 5¿Í ºñ±³ÇÏ°Ô µË´Ï´Ù.
sample# svn diff --revision 4 sample.c
Index: sample.c
===================================================================
--- sample.c (revision 4)
+++ sample.c (working copy)
@@ -2,7 +2,8 @@
int main()
{
- printf("Sample Program Version 0.1\n");
+ printf("Sample Program Version 0.2\n");
+ printf("Hello Subversion\n");
return 0;
}
sample# svn diff --revision 4:5 sample.c
Index: sample.c
===================================================================
--- sample.c (revision 4)
+++ sample.c (revision 5)
@@ -2,7 +2,8 @@
int main()
{
- printf("Sample Program Version 0.1\n");
+ printf("Sample Program Version 0.2\n");
+ printf("Hello Subversion\n");
return 0;
}
¿©±â¼ ÁÖÀÇÇÒ Á¡Àº CVS´Â revisionÀ» ÆÄÀÏ ÇϳªÇϳª¿¡ ´Ù ¸Å±âÁö¸¸ SubversionÀº ÆÄÀÏ¿¡ revisionÀ» ¸Å±âÁö ¾Ê°í ¼Ò½º ¼öÁ¤, ÆÄÀÏ º¹»ç, À̵¿, »èÁ¦ µîÀ» ÇÏ°í ±×¶§ ÇÑ Ä¿¹ÔÀ¸·Î revisionÀ» ¸Å±é´Ï´Ù. ±×·¡¼ ´Ù¸¥ ÆÄÀϵéÀÌ¶óµµ °°Àº revision ¹øÈ£¸¦ °¡Áö°Ô µË´Ï´Ù.
5.9. Blame ¶BlameÀº ÇÑ ¼Ò½ºÆÄÀÏÀ» ´ë»óÀ¸·Î °¢ ¸®ºñÀü ´ëÇØ¼ ¾î¶² ÇàÀ» ´©°¡ ¼öÁ¤Çß´ÂÁö ¾Ë¾Æº¸±â À§ÇÑ ¸í·ÉÀÔ´Ï´Ù.
¸®ºñÀü, Ä¿¹ÔÇÑ »ç¿ëÀÚÀÇ ID, ¼Ò½º ¼ø¼ÀÔ´Ï´Ù.
sample# svn blame sample.c
4 sampleuser #include <stdio.h>
4 sampleuser
4 sampleuser int main()
4 sampleuser {
5 sampleuser printf("Sample Program Version 0.2\n");
5 sampleuser printf("Hello Subversion\n");
4 sampleuser
4 sampleuser return 0;
4 sampleuser }
4 sampleuser
ÇÑ ¿¹·Î ¿©·¯»ç¶÷ÀÌ Ä¿¹ÔÇßÀ» °æ¿ì ¾Æ·¡Ã³·³ ³ª¿É´Ï´Ù.
4 sampleuser #include <stdio.h>
4 sampleuser
4 sampleuser int main()
4 sampleuser {
7 epifanes printf("Sample Program Version 0.3\n");
6 pyrasis printf("Hello Subversion\n");
4 sampleuser
4 sampleuser return 0;
4 sampleuser }
4 sampleuser
ƯÁ¤ ¸®ºñÀü¸¸ ÁöÁ¤Çؼ º¼ ¼öµµ ÀÖ½À´Ï´Ù. ¸®ºñÀüÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ÇöÀç ¸®ºñÀüÀ» ´ë»óÀ¸·Î ÇÕ´Ï´Ù.
sample# svn blame -r 4 sample.c
5.10. lock ¶svn lock ¸í·ÉÀ¸·Î ÆÄÀÏÀ» Àá±Û ¼ö ÀÖ½À´Ï´Ù.
sample# svn lock hello.c
5.11. Add ¶svn add ¸í·ÉÀ¸·Î »õ ÆÄÀÏÀ» Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù.
sample# svn add hello.c
A hello.c
sample# svn commit
5.12. Export ¶Ã¼Å©¾Æ¿ôÀº SubversionÀÌ ¹öÀü°ü¸®¸¦ ÇÒ ¼ö ÀÖµµ·Ï °¢Á¾ ÆÄÀÏÀÌ ¼Ò½º Æú´õ ¾È¿¡ ÇÔ²² »ý±é´Ï´Ù. À̰Ͱú´Â ´Þ¸® Export´Â ¼ø¼öÇÏ°Ô ÇÁ·Î±×·¥ÀÇ ¼Ò½º¸¸ °¡Á®¿Ã ¼ö ÀÖ½À´Ï´Ù. ¸¸µé¾îÁø ¼Ò½º¸¦ ¾ÐÃàÇÏ¿© ¸±¸®Áî ÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù.
sample# svn export http://(Subversion ¼¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample2/trunk sample
5.13. Branch¿Í Tag ¶CVS¿¡¼ÀÇ Branch¿Í Tag´Â Branch¿Í Tag¸¦ À§ÇÑ ¸í·ÉÀÌ ÀÖ½À´Ï´Ù. CVS¿¡¼ Branch¿Í Tag¸¦ ÇÏ°Ô µÇ¸é ÀúÀå¼ÒÀÇ ÆÄÀÏ¿¡´Â Branch ¶Ç´Â Tag µÇ¾ú´Ù´Â Ç¥½Ã°¡ ÇÔ²² ºÙ°Ô µË´Ï´Ù. üũ¾Æ¿ô ÇÒ ¶§¿¡µµ Branch¿Í TagÀÇ ¼Ò½º¸¦ ¹Þ¾Æ¿À·Á¸é Branch, Tag¸¦ ÁöÁ¤ÇÏ´Â ¿É¼ÇÀ» ÁÖ¾î¾ß Çß½À´Ï´Ù.
CVS¿Í´Â ´Þ¸® SubversionÀº Branch¿Í Tag°¡ Ưº°ÇÑ ¸í·ÉÀÌ ÀÖ´Â °Íµµ ¾Æ´Ï°í ÀÌ·± °ÍµéÀ» ÇÑ´Ù°í ÇØµµ ÀúÀå¼Ò¿¡ Ưº°È÷ Branch, Tag¶ó°í ±â·ÏÀÌ ³²´Â °Íµµ ¾Æ´Õ´Ï´Ù. Subversion¿¡¼ Branch¿Í Tag´Â ´Ü¼øÇÑ µð·ºÅ丮 º¹»ç ¸í·ÉÀ¸·Î ÇÒ ¼ö ÀÖ°í Branch, Tag¸¦ Çß´õ¶óµµ µð·ºÅ丮 º¹»ç¿Í °°½À´Ï´Ù.
5.13.1. Branch ¶Branch¸¦ ÇØ¾ß ÇÒ °æ¿ì´Â ¾Õ¼ ¼³¸í ÇßµíÀÌ ÇÁ·ÎÁ§Æ®Áß ÀÛÀº ºÐ·ù·Î ³ª´©¾î °³¹ß Çϰųª ¼Ò½º¸¦ µû·Î ºÐ¸®ÇÏ¿© ½ÇÇèÀûÀÎ ÄÚµå ¸¦ ÀÛ¼ºÇÒ °æ¿ì µî ÀÔ´Ï´Ù.
Subversion¿¡¼´Â Branch¸¦ copy ¸í·ÉÀ¸·Î ¼öÇà ÇÕ´Ï´Ù. trunkÀÇ ³»¿ëÀ» Branches¾È¿¡ »õ·Î¿î À̸§À¸·Î º¹»ç ÇÏ´Â °ÍÀÔ´Ï´Ù. üũ¾Æ¿ô ¹ÞÀº ¼Ò½º¿¡¼ ¹Ù·Î copy¸¦ ÇÒ ¼öµµ ÀÖ°í ¿ø°Ý¿¡¼ URL·Î º¹»ç¸¦ ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ¾Æ·¡ üũ¾Æ¿ô ¹ÞÀº °ÍÀº trunk¸¸ ¹ÞÀº °ÍÀÌ ¾Æ´Ï°í sample µð·ºÅ丮 ¾Æ·¡¸¦ ÀüºÎ ¹Þ´Â °ÍÀÔ´Ï´Ù.
svn checkout http://(Subversion ¼¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample sample
sample# svn copy trunk branches/sample-branch
sample# svn commit
# svn copy http://(Subversion ¼¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample/trunk \
http://(Subversion ¼¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample/branches/sample-branch
# svn checkout \
http://(Subversion ¼¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample/branches/sample-branch \
sample-branch
5.13.1.1. Merge ¶À§¿Í °°ÀÌ ¿ì¸®´Â trunk¸¦ sample-branch·Î Branch Çß½À´Ï´Ù. sample-branch¸¦ ¼öÁ¤ÇÏ´Ù°¡ trunk¿¡µµ ¹Ý¿µÇÏ°í ½Í´Ù¸é. merge ¸í·ÉÀ» »ç¿ëÇÏ¸é µË´Ï´Ù. ÇϳªÇϳª ¼Ò½º Äڵ带 ¿Å°Ü¼ ÀÔ·ÂÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù. ´Ù¸¸ merge ÇÑ µÚ¿¡´Â ²À »ç¶÷ÀÌ È®ÀÎÀ» ÇØ ºÁ¾ß°ÚÁÒ.
sample-branch¸¦ üũ¾Æ¿ô ÇÕ´Ï´Ù.
# svn checkout \
http://(Subversion ¼¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample/branches/sample-branch \
sample-branch
sample-branchÀÇ sample.c¸¦ ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ ÇÕ´Ï´Ù. printf("Hello World\n");¸¦ Ãß°¡ Çß½À´Ï´Ù. ±×¸®°í commitÀ» ÇÕ´Ï´Ù. Áö±Ý ¼öÁ¤µÈ °ÍÀº revision 7ÀÔ´Ï´Ù.
#include <stdio.h>
int main()
{
printf("Sample Program Version 0.2\n");
printf("Hello Subversion\n");
printf("Hello World\n");
return 0;
}
# svn checkout http://(Subversion ¼¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample/trunk sample
#include <stdio.h>
int main()
{
printf("Sample Program Version 0.2\n");
printf("Hello Subversion\n");
return 0;
}
sample# svn merge -r 6:7 \
http://(Subversion ¼¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample/branches/sample-branch
U sample.c
sample# svn commit
sample# svn update
#include <stdio.h>
int main()
{
printf("Sample Program Version 0.2\n");
printf("Hello Subversion\n");
printf("Hello World\n");
return 0;
}
ÆÄÀÏ Çϳª¸¸ merge¸¦ ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
# svn merge -r 6:7 sample.c
ÀúÀå¼Ò ÁÖ¼Ò³¢¸® merge¸¦ ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
# svn merge http://(Subversion ¼¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample2/trunk \
http://(Subversion ¼¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample2/branches/sample-branch
5.13.2. Tag ¶Tag´Â ¸¸µç ÇÁ·Î±×·¥À» À¥ »çÀÌÆ® µî¿¡ °ø°³ÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù. Tagµµ Subversion¿¡¼´Â Branch¿Í ¸¶Âù°¡Áö·Î µð·ºÅ丮 º¹»ç(copy)¿Í °°½À´Ï´Ù. tags µð·ºÅ丮 ¾È¿¡´Â ÀϹÝÀûÀ¸·Î ¸±¸®Áî(¹ßÇ¥)ÇÏ´Â ¹öÀüº° µð·ºÅ丮¸¦ ¸¸µé¾î »ç¿ëÇÕ´Ï´Ù.
0.1 ¹öÀüÀ» ¹ßÇ¥ÇÒ ¶§ 0.1 ¹öÀüÀÇ ¼ø°£À» tags µð·ºÅ丮¿¡ º¹»çÇÏ´Â °ÍÀÔ´Ï´Ù. 0.2°¡ µÇ¾úÀ» ¶§ tags¾Æ·¡ 0.2 µð·ºÅ丮·Î º¹»çÇÕ´Ï´Ù. ÀÌ·¸°Ô µÇ¸é °¢°¢ÀÇ ¹öÀüº°·Î ¼Ò½º¸¦ °ü¸® ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀúÀå¼Ò¿¡¼´Â ½ÇÁ¦·Î º¹»ç°¡ µÇ´Â °ÍÀº ¾Æ´Ï°í º¯°æµÈ Á¡¸¸ º¹»çÇϱ⠶§¹®¿¡ ÀúÀå¼ÒÀÇ ¿ë·®ÀÌ ¼Ò½ºÄÚµåÀÇ Å©±â¸¸Å ¹è·Î ´Ã¾î³ªÁö´Â ¾Ê½À´Ï´Ù.
trunkÀÇ ¼Ò½º¸¦ 0.1 ¹öÀüÀ¸·Î Tag, Branch¿Í ¸¶Âù°¡Áö·Î üũ¾Æ¿ô ¹ÞÀº ¼Ò½º¿¡¼µµ ÇÒ ¼ö ÀÖ°í ¿ø°Ý¿¡¼ URL·Îµµ ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¾Æ·¡ üũ¾Æ¿ô ¹ÞÀº °ÍÀº trunk¸¸ ¹ÞÀº °ÍÀÌ ¾Æ´Ï°í sample µð·ºÅ丮 ¾Æ·¡¸¦ ÀüºÎ ¹Þ´Â °ÍÀÔ´Ï´Ù.
# svn checkout http://(Subversion ¼¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample sample
sample# svn copy trunk tags/0.1
sample# svn commit
¿ø°Ý¿¡¼ URL·Î º¹»çÇÕ´Ï´Ù. ÀÌ °æ¿ì commitµµ °°ÀÌ ÀÌ·ç¾îÁý´Ï´Ù. üũ¾Æ¿ô ¹ÞÀº ¼Ò½º´Â update¸¦ ÇØÁÖ¾î¾ß ÇÕ´Ï´Ù.
# svn copy http://(Subversion ¼¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample/trunk \
http://(Subversion ¼¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample/tags/0.1
ÀÌÁ¦ 0.1·Î TagÇÑ ¼Ò½º¸¦ Export·Î ¹Þ¾Æ¼ ¾ÐÃàÇÑ µÚ¿¡ ¸±¸®Áî(°ø°³)¸¦ ÇÏ¸é µË´Ï´Ù.
# svn export http://(Subversion ¼¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample/tags/0.1 sample-0.1
5.14. Revert ¶¼Ò½º¸¦ ¼öÁ¤ÇÏ¸é¼ merge¸¦ ÇÏ´Ù º¸¸é ºÐ¸íÈ÷ À߸ø ÇßÀ» °æ¿ì°¡ »ý±é´Ï´Ù. ÀÌ·² ¶§ ÇÏ´Â °ÍÀÌ revertÀÔ´Ï´Ù. revert´Â ´Ü¾î ¶æ ±×´ë·Î µÇµ¹¸®´Â ¸í·ÉÀÔ´Ï´Ù. Ä¿¹ÔÀ» Çϱâ Àü¿¡¸¸ µÇµ¹¸± ¼ö ÀÖ½À´Ï´Ù. Ä¿¹Ô ÇϱâÀüÀÇ Ã¼Å©¾Æ¿ô ¹ÞÀº ¼Ò½º¸¦ µÇµ¹¸®´Â ¸í·ÉÀÔ´Ï´Ù. ¿ø°Ý ÀúÀå¼ÒÀÇ °ÍÀº µÇµ¹¸± ¼ö ¾ø½À´Ï´Ù.
sample# svn revert sample.c
5.15. ¹é¾÷ ¹× º¹±¸ ¶ÀúÀå¼Ò´Â °¡Àå Áß¿äÇÑ °ø°£À̱⠶§¹®¿¡ ¹é¾÷Àº ÇʼöÀÔ´Ï´Ù. ÀúÀå¼Ò µð·ºÅ丮¸¦ ±×´ë·Î º¸°üÇÒ ¼öµµ ÀÖÁö¸¸ ¹é¾÷°ú º¹±¸ ¸í·ÉÀ» »ç¿ëÇϴ°ÍÀÌ Æí¸®ÇÕ´Ï´Ù.
Windows, ¸®´ª½º, BSD µî ¿î¿µÃ¼Á¦¿¡ °ü°è¾øÀÌ ¹é¾÷ ¹× º¹±¸°¡ °¡´ÉÇÕ´Ï´Ù. Windows¿¡¼ ¹é¾÷ÇѰÍÀ» ¸®´ª½º¿¡¼ »ç¿ëÇÒ ¼öµµ ÀÖ°í BSD¿¡¼ ¹é¾÷ÇÑ °ÍÀ» Windows¿¡¼ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
ÀúÀå¼ÒÀÇ ¼¹ö¸¦ ¿Å±æ¶§¿¡´Â ÀúÀå¼Ò µð·ºÅ丮¸¦ ¿Å±â´Â °ÍÀÌ ¾Æ´Ï¶ó ÀúÀå¼Ò ¹é¾÷À» ÇÑµÚ ±× ¹é¾÷ÆÄÀÏÀ» ÀÌ¿ëÇÏ¿© »õ ¼¹ö¿¡¼ º¹±¸¸¦ ÇÏ´Â ¹æ½ÄÀ¸·Î ¿Å°Ü¾ßÇÕ´Ï´Ù.
5.15.1. Dump ¶sample ÀúÀå¼Ò¸¦ ¹é¾÷ÇÕ´Ï´Ù. Ç¥ÁØ ÀÔÃâ·ÂÀ» ÅëÇØ¼ ÀúÀå¼ÒÀÇ ³»¿ëÀ» ÆÄÀÏ·Î »ý¼ºÇÕ´Ï´Ù. svnadmin dump ¸í·ÉÀ» »ç¿ëÇϸç ÀÌ ¸í·ÉÀº ÀúÀå¼Ò µð·ºÅ丮 ¹Ù±ù¿¡¼ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
repos# ls
sample
repos# svnadmin dump sample > sample.dump
5.15.2. Load ¶ÀúÀå¼Ò ¹é¾÷ ÆÄÀÏÀ» ÀÌ¿ëÇØ¼ ÀúÀå¼Ò¸¦ º¹±¸ÇÕ´Ï´Ù. svnadmin load ¸í·ÉÀ» »ç¿ëÇÕ´Ï´Ù.
ºó ÀúÀå¼Ò¸¦ »ý¼ºÇÑ µÚ ¹é¾÷ ÆÄÀÏÀ» ÀÌ¿ëÇØ¼ º¹±¸¸¦ ÇÕ´Ï´Ù.
repos# svnadmin create sample
repos# ls
sample sample.dump
repos# svnadmin load sample < sample.dump
6. Microsoft Windows¿¡¼ »ç¿ëÇϱ⠶Microsoft Windows¿¡¼µµ SubversionÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¼Ò½º¸¦ ÄÄÆÄÀÏÇÏÁö ¾Ê°í ¼³Ä¡ ÆÄÀÏÀ» ÅëÇØ °£´ÜÇÏ°Ô ¼³Ä¡Çؼ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Windows¿¡¼µµ ¸®´ª½º, À¯´Ð½º¿Í ¶È°°Àº ±â´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
6.1. ¼³Ä¡ ÆÄÀÏ ±¸Çϱ⠶Subversion Windows ¼³Ä¡ÆÄÀÏ
Windows ¿ë ¼³Ä¡ ÆÄÀÏÀ» ¹Þ½À´Ï´Ù. ZIPÀ¸·Î ¾ÐÃàµÈ ¹ÙÀ̳ʸ®¸¦ »ç¿ëÇØµµ »ó°ü¾ø½À´Ï´Ù.
svn-1.0.0-setup.exe
6.2. ¼³Ä¡ ¶¼³Ä¡ ÆÄÀÏÀ» ¹Þ¾Ò´Ù¸é ÀϹÝÀûÀÎ Windows ÇÁ·Î±×·¥À» ¼³Ä¡ÇϵíÀÌ ¼³Ä¡ÇÏ¸é µË´Ï´Ù. ZIPÀ¸·Î ¾ÐÃàµÈ °ÍÀº Àû´çÇÑ µð·ºÅ丮¿¡ ¾ÐÃàÀ» ÇØÁ¦ÇÑµÚ »ç¿ëÇÏ¸é µË´Ï´Ù.
6.3. »ç¿ëÇϱ⠶Áö±Ý ¼³Ä¡ÇѰ͵éÀº Subversion Ä¿¸Çµå ¶óÀΠŬ¶óÀÌ¾ðÆ®¿Í ÀúÀå¼Ò¸¦ ³×Æ®¿öÅ©¿¡¼µµ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ¼¹ö ÇÁ·Î±×·¥ µéÀÔ´Ï´Ù. Ä¿¸Çµå¶óÀÎ »ç¿ë¹ýÀº ¸®´ª½º, À¯´Ð½º¿Í ¶È°°½À´Ï´Ù. ´Ù¸¸ Windows¿¡¼´Â ¸í·É ÇÁ·ÒÇÁÆ®(cmd.exe)¿¡¼ »ç¿ëÇÕ´Ï´Ù.
ZIPÀ¸·Î µÈ ¹ÙÀ̳ʸ®¸¦ »ç¿ëÇÏ·Á ÇÑ´Ù¸é ¸í·É ÇÁ·ÒÇÁÆ®¿¡¼ SubversionÀÇ ¸í·ÉÀ» ½ÇÇàÇϱâ À§ÇØ È¯°æ º¯¼öÀÇ ½Ã½ºÅÛ º¯¼ö PATH¿¡ Subversion ¾ÐÃàÀ» ÇØÁ¦ÇÑ µð·ºÅ丮¸¦ Ãß°¡ÇÕ´Ï´Ù. ¼³Ä¡ ÆÄÀÏ·Î ¼³Ä¡Çß´Ù¸é ÀÚµ¿À¸·Î ȯ°æ º¯¼ö¿¡ Ãß°¡µË´Ï´Ù.
Ä¿¹Ô ·Î±×¸¦ ÀÔ·ÂÇÒ ¼ö ÀÖµµ·Ï ȯ°æ º¯¼öÀÇ Administrator¿¡ ´ëÇÑ »ç¿ëÀÚ º¯¼ö¿¡ º¯¼öÀ̸§ SVN_EDITOR, °ª notepad¸¦ ¼³Á¤ÇÕ´Ï´Ù. notepad°¡ ¾Æ´Ñ ´Ù¸¥ ÆíÁý±â¸¦ ÀÌ¿ëÇÏ·Á¸é ÆíÁý±âÀÇ ½ÇÇàÆÄÀÏÀÇ °æ·Î¸¦ ÁöÁ¤ÇØ ÁÖ¸é µË´Ï´Ù.
ÀúÀå¼Ò ¸¸µé±â. C:\¿¡ repos¶ó´Â Æú´õ¸¦ ¸¸µé¾ú½À´Ï´Ù. ¸í·É ÇÁ·ÒÇÁÆ®¸¦ ½ÇÇàÇÕ´Ï´Ù.
C:\Documents and Settings\Administrator>cd c:\repos
C:\repos>svnadmin create --fs-type bdb sample
C:\repos>svnadmin create --fs-type fsfs sample
üũ¾Æ¿ô.
svn:// , http:// ¸¦ ÀÌ¿ëÇÑ Ã¼Å©¾Æ¿ô ¹æ½ÄÀº À§¿¡¼ ¼³¸íÇÑ ¹æ¹ý°ú ¶È°°½À´Ï´Ù.
À©µµ¿ì ÆÄƼ¼Ç¿¡ ÀÖ´Â ÀúÀå¼Ò¿¡ Á÷Á¢ Á¢±ÙÇÏ´Â ¹æ¹ý.
C:\temp>svn checkout file:///C:/repos/sample
svnserve¸¦ »ç¿ëÇÑ ¼¹ö
C:\>svnserve -d -r C:\repos
¸í·ÉÇà¿¡¼ ÀÏÀÏÀÌ ½ÇÇàÇÏ´Â ºÒÆíÇÔÀ» ´ú¾îÁÖ´Â SVNSERVE Manager°°Àº ÇÁ·Î±×·¥À» ÀÌ¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù. svnserveÀÇ µ¿ÀÛ/Á¤Áö »óŸ¦ Æ®·¹ÀÌ ¾ÆÀÌÄÜÀ¸·Î Ç¥½ÃÇØ ÁÖ¸ç ½Ã½ºÅÛ ½ÃÀ۽à svnserve¸¦ ÀÚµ¿À¸·Î ½ÇÇà ÇÏ°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Windows¿ë Subversion ¸í·Éµµ ¸®´ª½º, À¯´Ð½º¿¡¼ÀÇ ¸í·É°ú ¶È°°½À´Ï´Ù. ÇÏÁö¸¸ Windows¿¡¼´Â ±×·¡ÇÈ Å¬¶óÀÌ¾ðÆ®°¡ Àֱ⠶§¹®¿¡ ¸í·É ÇÁ·ÒÇÁÆ®¸¦ »ç¿ëÇÏ´Â ÀÏÀº ¸¹Áö ¾Ê½À´Ï´Ù. TortoiseSVNÀ» »ç¿ëÇÏ¸é ÆË¾÷ ¸Þ´º¸¦ ÀÌ¿ëÇØ¼ ÀúÀå¼Ò ¸¸µé±â, üũ¾Æ¿ô, Ä¿¹Ô µî ¸Å¿ì Æí¸®ÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
7. ¿î¿µÃ¼Á¦º° Àü¿ë ÆÐŰÁö ¶¸®´ª½º ¹èÆ÷ÆÇº°(Redhat, Debian, SuSE) Àü¿ë ¹ÙÀ̳ʸ® ÆÐŰÁö, FreeBSD Æ÷Æ® Ä÷º¼Ç, NetBSD pkgsrc, Mac OS X ÆÐŰÁö µî Æí¸®ÇÏ°Ô ¼³Ä¡ÇÒ ¼ö ÀÖµµ·Ï ¿î¿µÃ¼Á¦º° Àü¿ë ÆÐŰÁö°¡ Á¦°øµÇ°í ÀÖ½À´Ï´Ù. À̰͵éÀ» »ç¿ëÇÏ¸é ¼Ò½º¸¦ ÄÄÆÄÀÏ ÇÏÁö ¾Ê°í ¹Ù·Î ¼³Ä¡Çؼ »ç¿ëÇÒ ¼ö ÀÖ´Â ÀåÁ¡ÀÌ ÀÖ½À´Ï´Ù.
¿î¿µÃ¼Á¦º° ÆÐŰÁö´Â ¾Æ·¡ ¸µÅ©¿¡¼ ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù.
![]() ![]() 8. GUI Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ ¶Subversion¿¡¼ ±âº»ÀûÀ¸·Î Áö¿øÇÏ´Â Ä¿¸Çµå ¶óÀÎ ¸í·É svnÀº »ç¿ëÇϱ⿡ ºÒÆíÇÑ Á¡ÀÌ ¸¹½À´Ï´Ù. ¾ÕÀ¸·Î ¼Ò°³ÇÒ °ÍµéÀº MS Windows, X Window µî¿¡¼ »ç¿ë °¡´ÉÇÑ Subversion Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ ÀÔ´Ï´Ù.
8.1. TortoiseSVN ¶MS Windows¿ë GUI Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ÀÔ´Ï´Ù. CVS GUI Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥À¸·Î À¯¸íÇÑ TortoiseCVS¿Í °ÅÀÇ °°Àº ÀÎÅÍÆäÀ̽º¸¦ °¡Áö°í ÀÖ½À´Ï´Ù.
![]() ![]() 8.2. Ankhsvn ¶Visual Studio .NET ¾ÖµåÀÎ Çü½ÄÀÇ Subversion Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ÀÔ´Ï´Ù. VS.NET°ú ÅëÇÕ¼ºÀÌ ¸Å¿ì ³ô½À´Ï´Ù. VS.NETÀÇ ¼Ö·ç¼Ç ºä¿¡¼ Ä¿¹Ô, ¾÷µ¥ÀÌÆ® µîÀÇ ÀÛ¾÷ÀÌ °¡´ÉÇÏ¸ç ¼Ö·ù¼Ç ºäÀÇ °¢ ÆÄÀÏ¿¡ ¼öÁ¤µÇ¾ú°Å³ª ¼öÁ¤µÇÁö ¾ÊÀº ÆÄÀÏÀÇ »óŸ¦ Ç¥½ÃÇØÁÝ´Ï´Ù.
![]() ![]() 8.3. RapidSVN ¶Å©·Î½º Ç÷§Æû Subversion Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ÀÔ´Ï´Ù. Windows, ¸®´ª½º, BSDÀÇ X Window¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
![]() ![]() 9.1. ViewCVS ¶CVS À¥ ÀÎÅÍÆäÀ̽º·Î À¯¸íÇÕ´Ï´Ù. ¾ÆÆÄÄ¡¿Í mod_python ±â¹ÝÀ¸·Î µ¿ÀÛÇϸç Subversion ÆÄÀ̽㠹ÙÀεùÀ¸·Î ¸¸µé¾îÁ® ÀÖ½À´Ï´Ù. ÃֽŹöÀüÀº Subversionµµ Áö¿øÇϰí ÀÖ½À´Ï´Ù. À¯´Ð½º, ¸®´ª½º, Windows ¸ðµÎ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
![]() ![]() 9.2. WebSVN ¶Subversion Àü¿ë À¥ ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù. Subversion svnlook°ú ¿¬µ¿ÇÏ¿© À¥À¸·Î Ç¥½ÃÇÕ´Ï´Ù. ¾ÆÆÄÄ¡¿Í php°¡ ÇÊ¿äÇÕ´Ï´Ù.
![]() ![]() 10.1. svn: Entry 'file name' has unexpectedly changed special status ¶³ªÀÇ °æ¿ì symbolic lynkÆÄÀÏÀ» svn addÇÏ¿´´Ù°¡ ±×³É Áö¿ì°í »õ·Î¿î ÆÄÀÏÀ» ¸¸µé¾î svn ciÇÏÀÚ À§¿Í °°Àº ¹®Á¦°¡ ¹ß»ýÇß´Ù. À̰æ¿ì ´ÙÀ½°ú °°ÀÌ Ã³¸®ÇÑ´Ù.
$ ln -s /some/dir/file ./file1
$ svn add file1
$ rm file1
$ cat > file1
my
new
version
$ svn ci
svn: Entry 'file1' has unexpectedly changed special status
$ rm file1
$ ln -s /some/dir/file ./file1
$ svn ci
$ svn rm file1
$ cat > file1
my
new
version
$ svn add file1
$ svn ci
|
If it pours before seven, it has rained by eleven. |