· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Subversion-HOWTO

Subversion »ç¿ë HOWTO

ÀÌÀçÈ« http://www.pyrasis.com ~2005.7.31 ¹öÀü 1.2.1


CVSÀÇ ´ÜÁ¡µéÀ» °³¼±ÇÑ ¹öÀü °ü¸® ½Ã½ºÅÛÀÎ SubversionÀ» ÀÌ¿ëÇÏ¿© ÇÁ·Î±×·¥ÀÇ ¼Ò½º Äڵ带 °ü¸®ÇÏ´Â ¹æ¹ý°ú À¯´Ð½º, ¸®´ª½º ¹× Windows¿¡¼­ SubversionÀ» ¼³Ä¡Çغ¸°í »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù.

Contents

1. ¼ÒÇÁÆ®¿þ¾î ¹öÀü °ü¸®ÀÇ ÀÌÇØ
1.1. ¹öÀü °ü¸® ½Ã½ºÅÛÀÇ Çʿ伺
1.2. ¹öÀü °ü¸® ½Ã½ºÅÛÀÇ Á¾·ù
1.3. ¹öÀü °ü¸® ½Ã½ºÅÛÀÇ ¿ë¾îµé
1.4. ÀúÀå¼ÒÀÇ µð·ºÅ丮 ¹èÄ¡
2. Subversion
2.1. CVS¿Í ºñ±³ÇÑ SubversionÀÇ ÀåÁ¡µé
2.2. ¼³Ä¡ Áغñ ÀÛ¾÷
2.3. »ç¿ë ÇÒ °¢°¢ÀÇ ÆÄÀÏµé ±¸Çϱâ
3. ¼³Ä¡Çϱâ
3.1. OpenSSL ÄÄÆÄÀϰú ¼³Ä¡
3.2. Berkeley DB ÄÄÆÄÀϰú ¼³Ä¡
3.3. Apache ÄÄÆÄÀϰú ¼³Ä¡
3.4. Subversion ÄÄÆÄÀϰú ¼³Ä¡
4. ¼¼ºÎ ¼³Á¤
4.1. ÀúÀå¼Ò ¸¸µé±â
4.1.1. °øµ¿ ÀÛ¾÷À» À§ÇÑ ÀúÀå¼Ò ±×·ì ¼³Á¤
4.2. Apache ¼³Á¤
4.2.1. Apache¿¡¼­ ID·Î »ç¿ëÀÚ ÀÎÁõ
4.3. svnserve¸¦ »ç¿ëÇÑ ¼­¹ö
4.3.1. svnserve¿¡¼­ ID·Î »ç¿ëÀÚ ÀÎÁõ
4.4. SSH + svnserve ¼­¹ö
5. ½ÇÁ¦·Î »ç¿ëÇϱâ
5.1. ¿¡µðÅÍ ¼³Á¤
5.2. ±âº» µð·ºÅ丮 ¸¸µé±â
5.3. Import
5.4. Checkout
5.5. Update
5.6. Commit
5.7. Log
5.8. Diff
5.9. Blame
5.10. lock
5.11. Add
5.12. Export
5.13. Branch¿Í Tag
5.13.1. Branch
5.13.1.1. Merge
5.13.2. Tag
5.14. Revert
5.15. ¹é¾÷ ¹× º¹±¸
5.15.1. Dump
5.15.2. Load
6. Microsoft Windows¿¡¼­ »ç¿ëÇϱâ
6.1. ¼³Ä¡ ÆÄÀÏ ±¸Çϱâ
6.2. ¼³Ä¡
6.3. »ç¿ëÇϱâ
7. ¿î¿µÃ¼Á¦º° Àü¿ë ÆÐŰÁö
8. GUI Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥
8.1. TortoiseSVN
8.2. Ankhsvn
8.3. RapidSVN
9. À¥ ÀÎÅÍÆäÀ̽º
9.1. ViewCVS
9.2. WebSVN
10. ¾²´Ù°¡ ¹ß»ýÇÏ´Â »ç¼ÒÇÑ ¹®Á¦
10.1. svn: Entry 'file name' has unexpectedly changed special status

1. ¼ÒÇÁÆ®¿þ¾î ¹öÀü °ü¸®ÀÇ ÀÌÇØ

SubversionÀº ¼ÒÇÁÆ®¿þ¾î ¹öÀü °ü¸® ½Ã½ºÅÛÀÔ´Ï´Ù. ÀÌÀü¿¡ CVS°°Àº ¿ª»ç°¡ ±íÀº ¼ÒÇÁÆ®¿þ¾î ¹öÀü °ü¸® ½Ã½ºÅÛÀ» »ç¿ëÇØ º» °æÇèÀÌ ÀÖ´Ù¸é ½±°Ô ÁøÇà ÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ÀÌ Àå¿¡¼­´Â ¼ÒÇÁÆ®¿þ¾î ¹öÀü °ü¸® ½Ã½ºÅÛÀ» óÀ½ Á¢ÇÏ´Â ºÐµéÀ» À§ÇØ ÀÚÁÖ ³ª¿À´Â ¿ë¾îµé°ú °³³äÀ» Á¤¸® ÇÏ¿´½À´Ï´Ù.

1.1. ¹öÀü °ü¸® ½Ã½ºÅÛÀÇ Çʿ伺

°ú¿¬ ¼ÒÇÁÆ®¿þ¾î¸¦ ¸¸µå´Âµ¥ ¹öÀü°ü¸®°¡ ¿Ö ÇÊ¿äÇÒ±î¿ä? ¹öÀü °ü¸®°¡ ÇÊ¿äÇÏ°Ô µÈ ÀÌÀ¯´Â °øµ¿ ÀÛ¾÷ ¶§¹®ÀÔ´Ï´Ù. ÇÑ»ç¶÷ÀÌ Å« ÇÁ·ÎÁ§Æ®¸¦ ÁøÇà ÇÏ´Â °ÍÀÌ ¾Æ´Ï±â ¶§¹®¿¡ ¹öÀü °ü¸® ½Ã½ºÅÛÀÌ ÇÊ¿ä ÇÏ°Ô µÇ¾ú½À´Ï´Ù.

¹öÀü °ü¸® ÇÁ·Î±×·¥À» »ç¿ëÇÏ°Ô µÇ¸é ´ÙÀ½°ú °°Àº ÀåÁ¡ÀÌ ÀÖ½À´Ï´Ù.
  • °³¹ß ¹öÀü°ú ¸±¸®Áî ¹öÀüÀ» ¼¯ÀÌÁö ¾Ê°í ½±°Ô °ü¸® ÇÒ ¼ö ÀÖ½À´Ï´Ù.
  • ¼Ò½º¸¦ Àß ¸ø ¼öÁ¤ Çß´õ¶óµµ ±â·ÏÀÌ ³²°í µÇµ¹¸®±â°¡ ½±½À´Ï´Ù.(¸¹Àº ÆÄÀÏÀÇ °æ¿ì À¯¿ë)
  • ¼öÁ¤, Ãß°¡, »èÁ¦ µîÀÇ ±â·ÏÀÌ ¸ðµÎ ³²°í º¯°æ »çÇ×À» ÃßÀûÇϱ⠽±½À´Ï´Ù.
  • °³¹ßÀÚµéÀÌ µû·Î µû·Î ¹é¾÷À» ÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù.

°¡Àå À¯¿ëÇÑ ÀåÁ¡Àº ¾Æ¹«·¡µµ À߸ø ¼öÁ¤ÇÑ ¼Ò½º¸¦ ½±°Ô µÇµ¹¸± ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. ÇÁ·ÎÁ§Æ®°¡ Ä¿Áö´Ùº¸¸é ¼Ò½º°¡ ²¿ÀÌ°Ô µÇ°í °ñÄ¡ ¾ÆÇ »óȲÀÌ ÇѵΠ¹ø ¹ß»ýÇÏ´Â °ÍÀÌ ¾Æ´ÏÁÒ. ±×¸®°í º¯°æ »çÇ×ÀÌ ¸ðµÎ ±â·ÏµÇ°í ¹«¾ùÀ» º¯°æ Çß´ÂÁö ½±°Ô º¼ ¼ö ÀÖ½À´Ï´Ù. ¿· »ç¶÷ÀÌ ¼öÁ¤ÇÑ °ÍÀ» ½±°Ô º¼ ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í °¡Àå Å« ¹®Á¦¸¦ ÀÏÀ¸Å°´Â ¹é¾÷À» ÇÏÁö ¾Ê¾Æ ¼Ò½º¸¦ ºÐ½ÇÇÏ´Â ÃÖ¾ÇÀÇ »óȲµµ ½±°Ô ÇØ°á µË´Ï´Ù.

ÀåÁ¡À» ³ª¿­ÇÏÀÚ¸é ´õ ¸¹½À´Ï´Ù¸¸ ´ÜÁ¡À» À̾߱â ÇÏÀÚ¸é ¾Æ¹«·¡µµ ÇÁ·Î±×·¥ °³¹ßÀÚµéÀÌ ¼ÒÇÁÆ®¿þ¾î ¹öÀü °ü¸® ½Ã½ºÅÛÀÇ °³³äÀ» Á¦´ë·Î ÀÌÇØÇÏ°í ±â´ÉµéÀ» Àß »ç¿ëÇÏ¿© È¿À²ÀûÀÎ ¹öÀü °ü¸®°¡ µÇ·Á¸é ¶Ç´Ù½Ã »õ·Î¿î °ÍÀ» ¹è¿ö¾ß ÇÑ´Ù´Â °Í ¶§¹®¿¡ ½±°Ô Á¢±ÙÇÏÁö ¾ÊÀ¸·Á´Â °æÇâÀÌ ÀÖ½À´Ï´Ù. ƯÈ÷³ª ¿ì¸®³ª¶ó ÇÁ·Î±×·¥ °³¹ßÀÚµéÀÇ °æ¿ì À©µµ¿ì °øÀ¯ Æú´õ¸¦ ÀÌ¿ëÇØ¼­ °³¹ßÀ» ÇÏ´Â °æ¿ì°¡ ¸¹½À´Ï´Ù. ÀÌ·¸°Ô µÇ¸é ´©°¡ ¹«¾ùÀ» ¼öÁ¤Çß´ÂÁö ¾Ë ¼öµµ ¾ø°í ³²ÀÌ ÇØ ³õÀº ¼Ò½º À§¿¡ À߸øµÈ ¼Ò½º¸¦ µ¤¾î¾²´Â °æ¿ìµµ ¸¹ÀÌ ¹ß»ýÇϰí ÀÖ½À´Ï´Ù.

ÇÑ»ç¶÷ÀÌ °³ÀÎÀûÀ¸·Î ÁøÇà ÇÏ´Â ÇÁ·ÎÁ§Æ®°¡ ÀÖ´õ¶óµµ ¹öÀü °ü¸® ÇÁ·Î±×·¥À» »ç¿ëÇÏ´Â °ÍÀÌ ¸Å¿ì Æí¸®ÇÕ´Ï´Ù. ¾Õ¼­ ¸»ÇÑ ÀåÁ¡µéÀº ¿©·¯ ¸íÀÌ °³¹ß ÇÏ´Â °Í°ú ÇÑ»ç¶÷ÀÌ °³¹ß ÇÏ´Â °Í¿¡ ¸ðµÎ ÇØ´çµÇ´Â °ÍµéÀÔ´Ï´Ù.

¼ÒÇÁÆ®¿þ¾î ¹öÀü °ü¸® ½Ã½ºÅÛÀ» ÀÌ¿ëÇÏ´Â ÇÁ·ÎÁ§Æ®µéÀº ¾ÆÁÖ ¸¹½À´Ï´Ù. ´ëºÎºÐ Open Source·Î µÈ ÇÁ·ÎÁ§Æ®µéÀº CVS¸¦ ÀÌ¿ëÇÏ¿© ¹öÀü °ü¸®¸¦ ÇÕ´Ï´Ù. ´ëÇ¥ÀûÀ¸·Î *BSD, OpenOffice, Mozilla, XFree86, Apache¿Í SourceForge.netÀÇ ¸ðµç ÇÁ·ÎÁ§Æ®µé ÀÔ´Ï´Ù. ºñ´Ü Open Source »Ó¸¸ÀÌ ¾Æ´Ñ »ó¾÷ ÇÁ·Î±×·¥À» ¸¸µå´Â ȸ»çµé¿¡¼­µµ ¼ÒÇÁÆ®¿þ¾î ¹öÀü °ü¸® ½Ã½ºÅÛÀº ÇʼöÀûÀÔ´Ï´Ù.

1.2. ¹öÀü °ü¸® ½Ã½ºÅÛÀÇ Á¾·ù

ÇöÀç ³ª¿Í ÀÖ´Â ¼ÒÇÁÆ®¿þ¾î ¹öÀü °ü¸® ½Ã½ºÅÛÀº ¿©·¯ Á¾·ù°¡ ÀÖ½À´Ï´Ù. °¢°¢ Àå´ÜÁ¡ÀÌ ÀÖ½À´Ï´Ù.
  • CVS (Concurrent Version System) : °¡Àå ³Î¸® »ç¿ëµÇ¸ç ¿ª»ç°¡ ±íÀº ¹öÀü °ü¸® ½Ã½ºÅÛÀÔ´Ï´Ù. [http]http://www.cvshome.org[]
  • Subversion : CVSÀÇ ´ÜÁ¡À» °³¼±Çϰí CVS¸¦ ´ëüÇÒ ¸ñÀûÀ¸·Î °³¹ß µÇ¾ú½À´Ï´Ù. ÀÌ ¹®¼­¿¡¼­ ¼³¸íÇÒ ¹öÀü °ü¸® ½Ã½ºÅÛÀÔ´Ï´Ù. [http]http://subversion.tigris.org[]
  • Visual Sourcesafe : Microsoft¿¡¼­ ¸¸µç ¹öÀü °ü¸® ½Ã½ºÅÛÀÔ´Ï´Ù. CVS¿Í´Â ¹öÀü °ü¸® °üÁ¡¿¡¼­ Á¶±ÝÀÇ Â÷ÀÌÁ¡ÀÌ ÀÖ½À´Ï´Ù. À©µµ¿ì ±â¹Ý ¼ÒÇÁÆ®¿þ¾îÀÇ ¹öÀü °ü¸®¸¦ ÇÒ ¶§ ÀÚÁÖ »ç¿ëµË´Ï´Ù. [http]http://msdn.microsoft.com/ssafe/[]
  • Clear Case : RationalÀ̶ó´Â ȸ»ç¿¡¼­ ¸¸µç ¹öÀü °ü¸® ½Ã½ºÅÛÀÔ´Ï´Ù. Áö±ÝÀº IBM¿¡ ÇÕº´µÇ¾ú½À´Ï´Ù. »ó¿ë ¼ÒÇÁÆ®¿þ¾îÀÔ´Ï´Ù. [http]http://www-306.ibm.com/software/rational[]
  • BitKeeper : ¸®´ª½º Ä¿³ÎÀÌ BitKeeper¸¦ ÀÌ¿ëÇØ¼­ °³¹ß Çϰí ÀÖ½À´Ï´Ù. »ó¿ë ¼ÒÇÁÆ®¿þ¾îÀÔ´Ï´Ù. [http]http://www.bitkeeper.com[]

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ÀÇ ÀåÁ¡µé

  • Ä¿¹Ô ´ÜÀ§°¡ ÆÄÀÏÀÌ ¾Æ´Ï¶ó üÀÎÁö¼ÂÀ̶ó´Â Á¡ÀÔ´Ï´Ù. CVS¿¡¼­¶ó¸é ¿©·¯ °³ÀÇ ÆÄÀÏÀ» ÇѲ¨¹ø¿¡ Ä¿¹ÔÇÏ´õ¶óµµ °¢°¢ÀÇ ÆÄÀϸ¶´Ù. ¸®ºñÀüÀÌ µû·Î ºÙ½À´Ï´Ù. ¹Ý¸é Subversion¿¡¼­´Â ÆÄÀϺ° ¸®ºñÀüÀÌ ¾ø°í Çѹø Ä¿¹ÔÇÒ ¶§¸¶´Ù º¯°æ »çÇ׺°·Î ¸®ºñÀüÀÌ Çϳª¾¿ Áõ°¡ÇÕ´Ï´Ù.
  • CVS¿¡ ºñÇØ ¾öû³ª°Ô ºü¸¥ ¾÷µ¥ÀÌÆ®/ºê·£Äª/ÅÂ±ë ½Ã°£.
  • CVS¿Í °ÅÀÇ µ¿ÀÏÇÑ »ç¿ë¹ý. CVS »ç¿ëÀÚ¶ó¸é ´©±¸³ª ¾î·Á¿ò ¾øÀÌ ±Ý¹æ ¹è¿ï ¼ö ÀÖ½À´Ï´Ù.
  • ÆÄÀÏ À̸§º¯°æ, À̵¿, µð·ºÅ丮 ¹öÀü °ü¸®µµ Áö¿ø.
  • ¿øÀÚÀû(atomic) Ä¿¹Ô. CVS¿¡¼­´Â ¿©·¯ ÆÄÀÏÀ» Ä¿¹ÔÇÏ´Ù°¡ ¾î´À ÇÑ ÆÄÀÏ¿¡¼­ Ä¿¹ÔÀÌ ½ÇÆÐÇßÀ» °æ¿ì ¾ÕÀÇ ÆÄÀϸ¸ Ä¿¹ÔÀÌ Àû¿ëµÇ°í µÚÀÇ ÆÄÀϵéÀº ±×´ë·Î ³²¾ÆÀÖ°Ô µË´Ï´Ù. SubversionÀº ¿©·¯°³ÀÇ ÆÄÀÏÀ» Ä¿¹ÔÇÏ´õ¶óµµ Ä¿¹ÔÀÌ ½ÇÆÐÇÏ¸é ¸ðµÎ ÀÌÀü »óÅ·ΠµÇµ¹¾Æ °©´Ï´Ù.
  • ¾ç¹æÇâ µ¥ÀÌÅÍ Àü¼ÛÀ¸·Î ³×Æ®¿öÅ© ¼ÒÅë·®(Æ®·¡ÇÈ) ÃÖ¼ÒÈ­.
  • Æ®¸®º°, ÆÄÀϺ° Á¢±Ù Á¦¾î ¸®½ºÆ®. ÀúÀå¼Ò ¾²±â Á¢±ÙÀ» °¡Áø °³¹ßÀÚ¶óµµ ¾Æ¹« ¼Ò½º³ª ¼öÁ¤ÇÏÁö ¸øÇÏ°Ô Á¶ÀýÇÒ ¼ö ÀÖ½À´Ï´Ù.
  • ÀúÀå¼Ò/ÇÁ·ÎÁ§Æ®º° ȯ°æ ¼³Á¤ °¡´É
  • È®À强À» ¿°µÎ¿¡ µÐ ±¸Á¶, ±ò²ûÇÑ ¼Ò½º

2.2. ¼³Ä¡ Áغñ ÀÛ¾÷

ÀÌ Àå¿¡¼­´Â ¸®´ª½º, À¯´Ð½º µîÀÇ POSIX ȣȯ ¿î¿µÃ¼Á¦¿¡¼­ ¼Ò½º¸¦ ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ÇÏ´Â ¹æ¹ýÀ» ´Ù·ç°í ÀÖ½À´Ï´Ù.

Microsoft Windows¿¡¼­ÀÇ »ç¿ëÀº [http]Microsoft Windows¿¡¼­ »ç¿ëÇϱâ ÀåÀ» ÂüÁ¶ÇϽʽÿÀ.

°¢°¢ ¸®´ª½º ¹èÆ÷ÆÇ ¹× FreeBSD, NetBSD µîÀÇ Àü¿ë ÆÐŰÁö¿¡ ´ëÇØ¼­´Â ¿î¿µÃ¼Á¦º° Àü¿ë ÆÐŰÁö ÀåÀ» ÂüÁ¶ÇϽʽÿÀ.

¼³Ä¡¸¦ À§ÇØ ÁغñÇØ¾ß ÇÒ ÀÏ.

2.3. »ç¿ë ÇÒ °¢°¢ÀÇ ÆÄÀÏµé ±¸Çϱâ

  • Subversion ¼Ò½ºÆÄÀÏ [http]http://subversion.tigris.org[] subversion-1.2.X.tar.gz SubversionÀº ÃֽйöÀüÀ» ¹Þ½À´Ï´Ù.

  • Apache2 [http]http://httpd.apache.org[] httpd-2.0.XX.tar.gz Apache 2 µµ ÃֽйöÀüÀ» ¹Þ½À´Ï´Ù. 1.3¹öÀüÀº ¿¬µ¿ÀÌ ºÒ°¡´É ÇÕ´Ï´Ù.

  • Berkeley DB [http]http://www.sleepycat.com/download/index.shtml[] db-4.3.28.NC.tar.gz Berkeley DB´Â ¹öÀüÀ» ²À 4.3.28À» »ç¿ëÇÏ¿©¾ß ÇÕ´Ï´Ù. (Subversion ¹öÀü 1.1 ºÎÅÍ´Â ±»ÀÌ ¹öŬ¸® DB¸¦ »ç¿ëÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù. ÆÄÀÏ ½Ã½ºÅÛÀ» »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.)

  • OpenSSL [http]http://www.openssl.org/source[] openssl-0.9.7c.tar.gz OpenSSLÀº LASTEST¶ó°í µÈ °ÍÀ» ¹Þ½À´Ï´Ù.

À§ÀÇ ÆÄÀϵéÀ» /root¿¡ ¹Þ½À´Ï´Ù.

3. ¼³Ä¡Çϱâ

Subversion°ú ¿¬°üµÈ ÇÁ·Î±×·¥µéÀ» ÄÄÆÄÀÏ ÇÏ°í ¼³Ä¡ÇϰڽÀ´Ï´Ù.

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. ¼¼ºÎ ¼³Á¤

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.
À§¿Í °°ÀÌ ¼³Á¤ÇÏ¸é ´©±¸µçÁö(Anonymous) À¥ ºê¶ó¿ìÀú·Î ÀúÀå¼Ò¸¦ º¼ ¼ö ÀÖ°í Subversion Ŭ¶óÀÌ¾ðÆ®¸¦ ÀÌ¿ëÇØ¼­ ¼Ò½º¸¦ üũ¾Æ¿ô, ÀͽºÆ÷Æ®, Ä¿¹ÔÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÌ·¸°Ô ½ÇÇà ½ÃÄ×À¸¸é "# 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:
"# htpasswd -c"´Â ÆÐ½º¿öµå ÆÄÀÏÀ» óÀ½ ¸¸µé ¶§ÀÇ ¿É¼ÇÀÌ°í »ç¿ëÀÚ¸¦ Ãß°¡ÇÏ°í ½ÍÀ» ¶§¿¡´Â "# htpasswd ÆÐ½º¿öµåÆÄÀÏ¸í »ç¿ëÀÚID" ·Î ÇØÁÖ¸é µË´Ï´Ù.

¹æ±Ý ¼öÁ¤Çß´ø /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>
4ÁÙÀÌ Ãß°¡ µÇ¾ú½À´Ï´Ù. AuthType BasicÀº Apache ±âº» ÆÐ½º¿öµå ÀÎÁõÀÔ´Ï´Ù. AuthNameÀº ÆÐ½º¿öµå°¡ °É¸° À¥ÆäÀÌÁö¿¡ ¶ß´Â ·Î±×ÀÎâ¿¡ ³ª¿Ã ¹®ÀåÀÔ´Ï´Ù. AuthUserFileÀº ¹æ±Ý Àü ¸¸µé¾ú´ø ¾ÆÆÄÄ¡ ÆÐ½º¿öµå ÆÄÀÏÀÔ´Ï´Ù. Àý´ë°æ·Î·Î Àû¾îÁÖ¾î¾ß ÇÕ´Ï´Ù. Require valid-user´Â ÀÎÁõµÈ »ç¿ëÀÚ¸¸ º¼ ¼ö ÀÖ°Ô ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù.

ÀÌÁ¦ À¥ ºê¶ó¿ìÀú·Î ´Ù½Ã 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>
ÀÌ·¸°Ô Çϸé ÀúÀå¼Ò¸¦ º¸°Å³ª üũ¾Æ¿ôÀ» ÇÒ ¶§´Â ID¿Í ÆÐ½º¿öµå¸¦ ¹¯Áö ¾Ê°í Ä¿¹ÔÀ̳ª µð·ºÅ丮. ÆÄÀϺ¹»ç µîÀÇ ÀúÀå¼Ò¸¦ º¯°æÇÏ´Â ÀÛ¾÷À» ÇÒ ¶§¿¡´Â ID¿Í ÆÐ½º¿öµå¸¦ ¹°¾îº¸°Ô µË´Ï´Ù.

"# 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
svnserve¸¸ ½ÇÇàÇÑ °æ¿ì
# svn mkdir svn://(Subversion¼­¹ö IP¶Ç´Â µµ¸ÞÀÎ)/sample/trunk
À§Ã³·³ ÀÔ·ÂÀ» Çϸé vimÀÌ ½ÇÇàµÇ¸é¼­ ¾Æ·¡¿Í °°ÀÌ ³ª¿Ã °ÍÀÔ´Ï´Ù. :q!·Î ºüÁ® ³ª°©´Ï´Ù.
--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´Â ÀúÀå¼Ò ¾ÈÀÇ µð·ºÅ丮¿Í ÆÄÀϵéÀ» Ç¥½ÃÇØ ÁÝ´Ï´Ù.
# svn list http://(Subversion ¼­¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample branches/ tags/ trunk/

¾ÕÀ¸·Î µð·ºÅ丮 »ý¼º, »èÁ¦, À̸§º¯°æ, ÆÄÀÏ, Ãß°¡, »èÁ¦, º¹»ç, À̵¿°ú Ä¿¹Ô, µîÀ» ÇÒ ¶§ 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µµ À§¿¡¼­ µð·ºÅ丮¸¦ ¸¸µé¾úÀ» ¶§ ó·³ vimÀÌ ½ÇÇàµÇ°Ô µË´Ï´Ù. importµÇ´Â ÆÄÀϵéÀÌ Ç¥½ÃµË´Ï´Ù. :q!·Î ´Ý°í c¸¦ ÀÔ·ÂÇϸé import µÇ°Ô µË´Ï´Ù.

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 -----------------------------------------------------------------------
--revision°ú -rÀº °°½À´Ï´Ù.
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
-v ¿É¼ÇÀº ´õ ÀÚ¼¼ÇÑ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ¾Æ·¡ MÀº Modify(¼öÁ¤)ÀÇ Ç¥½Ã ÀÔ´Ï´Ù. ¼Ò½º ÆÄÀÏÀ» ¼öÁ¤Çϰí Ä¿¹Ô Ç߱⠶§¹®ÀÔ´Ï´Ù.
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 ------------------------------------------------------------------------
A ´Â Add(Ãß°¡) Ç¥½Ã ÀÔ´Ï´Ù. trunk¶ó´Â µð·ºÅ丮¸¦ ¸¸µé¾ú°í sample.c ÆÄÀÏÀ» import Ç߱⠶§¹®¿¡ A(Ãß°¡) Ç¥½Ã°¡ ³ª¿À°Ô µÇ´Â °ÍÀÔ´Ï´Ù.
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; }
revision 4¿Í 5¸¦ ºñ±³ ÇÏ°í ½ÍÀ¸¸é --revision 4:5 (-r 4:5)·Î ÇÏ¸é µË´Ï´Ù. --revision 8:10 µµ °¡´ÉÇÕ´Ï´Ù.
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
svn lock ¸í·ÉÀ¸·Î ÆÄÀÏÀ» Àá±×¾úÀ» °æ¿ì ¿Ö Àá±×¾ú´ÂÁö ·Î±×¸¦ ±â·ÏÇÒ ¼ö ÀÖ½À´Ï´Ù. ÆÄÀÏÀ» Àá±×¾úÀ» °æ¿ì ÆÄÀÏÀ» Àá±Ù »ç¿ëÀÚ¸¸ ¼öÁ¤À» ÇØ¼­ Ä¿¹ÔÀ» ÇÒ ¼ö ÀÖ°í ´Ù¸¥ »ç¿ëÀÚ´Â ¼öÁ¤À» ÇÒ ¼ö ¾ø½À´Ï´Ù. ÆÄÀÏÀÇ Àá±ÝÀ» ÇØÁ¦ÇÒ °æ¿ì¿¡´Â svn unlock ¸í·ÉÀ» »ç¿ëÇÏ¸é µË´Ï´Ù. ÆÄÀÏ Àá±Ý±â´ÉÀº ¿©·¯¸íÀÌ °³¹ßÀ» Çϰí ÀÖÀ» °æ¿ì ÇÑ ÆÄÀÏ¿¡¼­ ÀÛ¾÷ÀÌ ³Ê¹« ¸¹¾Æ ¸ðµÎ ³¡³»Áö ¸øÇϰí Áß°£ Áß°£¿¡ Ä¿¹Ô¸¸ ÇØ³õ¾ÒÀ» °æ¿ì ´Ù¸¥ »ç¶÷ÀÌ ±× ÆÄÀÏÀ» ¼öÁ¤Çعö¸®¸é ÇÏ´ø ÀÛ¾÷ÀÌ ¾û¸ÁÀÌ µÇ¾î ¹ö¸³´Ï´Ù. ±×·¡¼­ ÆÄÀÏÀ» Àá±×¾î ÀÛ¾÷ÀÌ ³¡³¯¶§ ±îÁö ÇÑ »ç¶÷¸¸ Ä¿¹ÔÀ» ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÛ¾÷ÀÌ ³¡³ª¸é ÆÄÀÏ Àá±ÝÀ» ÇØÁ¦ ÇÏ¸é µË´Ï´Ù.

5.11. Add

svn add ¸í·ÉÀ¸·Î »õ ÆÄÀÏÀ» Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù.
sample# svn add hello.c A hello.c
svn add·Î ÆÄÀÏÀ» Ãß°¡ÇÑ µÚ¿¡´Â svn commitÀ¸·Î Ä¿¹ÔÀ» ÇØÁÖ¾î¾ß ¿ÏÀüÈ÷ ÆÄÀÏÀÌ ÀúÀå¼Ò¿¡ Ãß°¡µË´Ï´Ù.
sample# svn commit
¹°·Ð Ä¿¹Ô ·Î±×µµ ÀÔ·ÂÇØ¾ß µË´Ï´Ù.

5.12. Export

üũ¾Æ¿ôÀº SubversionÀÌ ¹öÀü°ü¸®¸¦ ÇÒ ¼ö ÀÖµµ·Ï °¢Á¾ ÆÄÀÏÀÌ ¼Ò½º Æú´õ ¾È¿¡ ÇÔ²² »ý±é´Ï´Ù. À̰Ͱú´Â ´Þ¸® Export´Â ¼ø¼öÇÏ°Ô ÇÁ·Î±×·¥ÀÇ ¼Ò½º¸¸ °¡Á®¿Ã ¼ö ÀÖ½À´Ï´Ù. ¸¸µé¾îÁø ¼Ò½º¸¦ ¾ÐÃàÇÏ¿© ¸±¸®Áî ÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù.
sample# svn export http://(Subversion ¼­¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample2/trunk sample
--revision (-r)À¸·Î revisionÀ» ÁöÁ¤Çϸé ÁöÁ¤ÇÑ revisionÀÇ ¼Ò½º¸¦ ¹Þ¾Æ¿É´Ï´Ù. ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é °¡Àå ÃÖ±ÙÀÇ revisionÀÇ °ÍÀ» °¡Á®¿É´Ï´Ù.

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
¿ø°Ý¿¡¼­ URL·Î copy¸¦ Çϸé commitµµ °°ÀÌ ÀÌ·ç¾îÁý´Ï´Ù. üũ¾Æ¿ô ¹ÞÀº ¼Ò½º¿¡¼­´Â update¸¦ ÇØÁÖ¾î¾ß ÇÕ´Ï´Ù.
# svn copy http://(Subversion ¼­¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample/trunk \ http://(Subversion ¼­¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample/branches/sample-branch
BranchµÈ ¼Ò½º¸¦ ¹Þ±â À§Çؼ­´Â branches/sample-branch¸¦ üũ¾Æ¿ô ÇÏ¸é µË´Ï´Ù. trunk¿Í branche´Â µû·Î revisionÀ» °¡ÁöÁö ¾Ê½À´Ï´Ù. SubversionÀÇ revisionÀº ÀúÀå¼Ò ÀüüÀÇ revisionÀÔ´Ï´Ù.
# 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; }
ÀÌÁ¦ sampleÀÇ trunk¸¦ üũ¾Æ¿ô ÇÕ´Ï´Ù.
# svn checkout http://(Subversion ¼­¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample/trunk sample
trunkÀÇ sample.c´Â ¾Æ·¡¿Í °°½À´Ï´Ù.
#include <stdio.h> int main() { printf("Sample Program Version 0.2\n"); printf("Hello Subversion\n"); return 0; }
ÀÌÁ¦ sample-branchÀÇ ¼öÁ¤µÈ °ÍÀ» trunk¿¡ merge ÇØ º¸°Ú½À´Ï´Ù. "svn merge -r N:N ÀúÀå¼ÒÁÖ¼Ò Ã¼Å©¾Æ¿ôµÈµð·ºÅ丮" Çü½Ä ÀÔ´Ï´Ù. ¾Æ·¡´Â ÀúÀå¼Ò ÁÖ¼Ò Çϳª¸¸ ÀԷµǾî ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô µÇ¸é Áö±Ý üũ¾Æ¿ôÇÑ ¼Ò½º¿Í merge¸¦ ÇÏ°Ô µË´Ï´Ù. mergeÇÒ revision ¹øÈ£¸¦ ÁÖÀÇÇØ ÁֽʽÿÀ. 6:7Àº r 6°ú r 7ÀÇ Â÷ÀÌÁ¡À» ¶æÇÕ´Ï´Ù. sample-branchÀÇ r 6°ú r 7ÀÇ Â÷ÀÌÁ¡À» Áö±ÝÀÇ Ã¼Å©¾Æ¿ôµÈ trunk¿¡ Àû¿ëÇ϶ó´Â °Í ÀÔ´Ï´Ù.
sample# svn merge -r 6:7 \ http://(Subversion ¼­¹öÀÇ IPÁÖ¼Ò ¶Ç´Â µµ¸ÞÀÎ)/svn/sample/branches/sample-branch U sample.c sample# svn commit sample# svn update
ÀÌÁ¦ sample.c¸¦ ¿­¾îº¸¸é ¾Æ·¡¿Í °°ÀÌ sample-branch¿¡¼­ ¼öÁ¤ÇÑ °ÍÀÌ merge°¡ µÇ¾î ÀÖ½À´Ï´Ù.
#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
¹öŬ¸® DB¸¦ ÀÌ¿ëÇÑ ÀúÀå¼Ò
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 ÆÐŰÁö µî Æí¸®ÇÏ°Ô ¼³Ä¡ÇÒ ¼ö ÀÖµµ·Ï ¿î¿µÃ¼Á¦º° Àü¿ë ÆÐŰÁö°¡ Á¦°øµÇ°í ÀÖ½À´Ï´Ù. À̰͵éÀ» »ç¿ëÇÏ¸é ¼Ò½º¸¦ ÄÄÆÄÀÏ ÇÏÁö ¾Ê°í ¹Ù·Î ¼³Ä¡Çؼ­ »ç¿ëÇÒ ¼ö ÀÖ´Â ÀåÁ¡ÀÌ ÀÖ½À´Ï´Ù.

¿î¿µÃ¼Á¦º° ÆÐŰÁö´Â ¾Æ·¡ ¸µÅ©¿¡¼­ ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù. [http]http://subversion.tigris.org/project_packages.html[]

8. GUI Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥

Subversion¿¡¼­ ±âº»ÀûÀ¸·Î Áö¿øÇÏ´Â Ä¿¸Çµå ¶óÀÎ ¸í·É svnÀº »ç¿ëÇϱ⿡ ºÒÆíÇÑ Á¡ÀÌ ¸¹½À´Ï´Ù. ¾ÕÀ¸·Î ¼Ò°³ÇÒ °ÍµéÀº MS Windows, X Window µî¿¡¼­ »ç¿ë °¡´ÉÇÑ Subversion Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ ÀÔ´Ï´Ù.

8.1. TortoiseSVN

MS Windows¿ë GUI Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ÀÔ´Ï´Ù. CVS GUI Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥À¸·Î À¯¸íÇÑ TortoiseCVS¿Í °ÅÀÇ °°Àº ÀÎÅÍÆäÀ̽º¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. [http]http://tortoisesvn.tigris.org[]

8.2. Ankhsvn

Visual Studio .NET ¾ÖµåÀÎ Çü½ÄÀÇ Subversion Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ÀÔ´Ï´Ù. VS.NET°ú ÅëÇÕ¼ºÀÌ ¸Å¿ì ³ô½À´Ï´Ù. VS.NETÀÇ ¼Ö·ç¼Ç ºä¿¡¼­ Ä¿¹Ô, ¾÷µ¥ÀÌÆ® µîÀÇ ÀÛ¾÷ÀÌ °¡´ÉÇÏ¸ç ¼Ö·ù¼Ç ºäÀÇ °¢ ÆÄÀÏ¿¡ ¼öÁ¤µÇ¾ú°Å³ª ¼öÁ¤µÇÁö ¾ÊÀº ÆÄÀÏÀÇ »óŸ¦ Ç¥½ÃÇØÁÝ´Ï´Ù. [http]http://ankhsvn.tigris.org[]

8.3. RapidSVN

Å©·Î½º Ç÷§Æû Subversion Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ÀÔ´Ï´Ù. Windows, ¸®´ª½º, BSDÀÇ X Window¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. [http]http://rapidsvn.tigris.org[]

9. À¥ ÀÎÅÍÆäÀ̽º

ÀúÀå¼Ò¸¦ À¥ºê¶ó¿ìÀú·Î ÆíÇÏ°Ô º¼ ¼ö ÀÖ´Â ÀÎÅÍÆäÀ̽ºµéÀÔ´Ï´Ù.

9.1. ViewCVS

CVS À¥ ÀÎÅÍÆäÀ̽º·Î À¯¸íÇÕ´Ï´Ù. ¾ÆÆÄÄ¡¿Í mod_python ±â¹ÝÀ¸·Î µ¿ÀÛÇϸç Subversion ÆÄÀ̽㠹ÙÀεùÀ¸·Î ¸¸µé¾îÁ® ÀÖ½À´Ï´Ù. ÃֽŹöÀüÀº Subversionµµ Áö¿øÇϰí ÀÖ½À´Ï´Ù. À¯´Ð½º, ¸®´ª½º, Windows ¸ðµÎ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. [http]http://sourceforge.net/projects/viewcvs[]


9.2. WebSVN

Subversion Àü¿ë À¥ ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù. Subversion svnlook°ú ¿¬µ¿ÇÏ¿© À¥À¸·Î Ç¥½ÃÇÕ´Ï´Ù. ¾ÆÆÄÄ¡¿Í php°¡ ÇÊ¿äÇÕ´Ï´Ù. [http]http://websvn.tigris.org[]

10. ¾²´Ù°¡ ¹ß»ýÇÏ´Â »ç¼ÒÇÑ ¹®Á¦

10.1. svn: Entry 'file name' has unexpectedly changed special status

³ªÀÇ °æ¿ì symbolic lynkÆÄÀÏÀ» svn addÇÏ¿´´Ù°¡ ±×³É Áö¿ì°í »õ·Î¿î ÆÄÀÏÀ» ¸¸µé¾î svn ciÇÏÀÚ À§¿Í °°Àº ¹®Á¦°¡ ¹ß»ýÇß´Ù. À̰æ¿ì ´ÙÀ½°ú °°ÀÌ Ã³¸®ÇÑ´Ù.

  1. ¿ì¼± ¿ø·¡ÀÇ symbolic lynk¸¦ ´Ù½Ã º¹±¸ ÇÑ´Ù.
  2. ±×´ÙÀ½ svn ciÀ» ÇÑ´Ù
  3. ±× ´ÙÀ½ svn rm symbolic linkÇÑ´Ù
  4. ±× ´ÙÀ½ ´Ù½Ã ³»°¡ ¹Ù²Ù°íÀÚ ÇÏ´Â ÆÄÀÏÀ» ¸¸µç´Ù
  5. 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





sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2008-10-25 13:54:47
Processing time 0.0344 sec