'''°³¹ßȯ°æÀÇ È¿À²Àû °³¼±'''
[[TableOfContents]]
== ¼Ò°³ ==
* ÇÁ·ÎÁ§Æ® ¿¡ÄڽýºÅÛ or °³¹ßȯ°æÀÇ È¿À²Àû °³¼±
* °´ë±Ç
== ¸ñÂ÷ ==
* ÀÏÇϱâ ÆíÇÏ¸é¼ ÁÁÀº Ç°ÁúÀ» ³¾ ¼ö ÀÖ´Â °³¹ß ȯ°æÀº?
* SubversionÀ» ÀÌ¿ëÇÑ ¼Ò½º°ü¸®
* TracÀ» ÀÌ¿ëÇÑ À̽´°ü¸®
* ÃÖÁ¾¸ñÇ¥´Â Áö¼ÓÀûÀÎ ÅëÇÕ
== ÀÏÇϱâ ÆíÇÏ¸é¼ ÁÁÀº Ç°ÁúÀ» ³¾ ¼ö ÀÖ´Â °³¹ß ȯ°æÀº? ==
=== ¸ñÇ¥ ===
* °³¹ßȯ°æÀ» °³¼±Çسª°£´Ù´Â ¸ñÇ¥¸¦ °¡Áö°í Ãʱ⿡´Â ¼Ò½º°ü¸® Á¤µµ·Î ½ÃÀÛÇØ Á¡ÁøÀûÀ¸·Î À̽´°ü¸® ±×¸®°í Áö¼ÓÀûÀÎ ÅëÇÕ±îÁö È®´ëÀû¿ë
* DRY(Don't Repeat Yourself)ÇÑ ºÎºÐÀ» ÃÖ´ëÇÑ ÁÙ¿© ÀÛ¾÷È¿À² ±Ø´ëÈÇÒ ¼ö ÀÖ´Â °³¹ßȯ°æ ±¸Ãà
* ¾Æ·¡ÀÇ Èıâó·³ °³¹ßÀÚÀÇ °³À¸¸§ Á¦°Å
{{{
Áö¼ÓÀûÀÎ ÅëÇÕ º£Å¸¸®´õ Èıâ Áß °¡Àå ¿Í´ê´Â Èıâ
¡°(Àΰ£ÀûÀ¸·Î´Â µ¹¾Æº¼ ÀÏ ¾ø´Â ÀÌÀ̱ä ÇÏÁö¸¸) ·¡¸® ¿ùÀº °³¹ßÀÚÀÇ ´ö¸ñ Áß Çϳª·Î '°ÔÀ¸¸§'À» ²Å¾Ò¾úÁÒ. ÀÌ Ã¥¿¡¼´Â °ÔÀ¸¸£Áö ¸øÇÑ °³¹ßÀÚ¸¦ '°í°´ÀÇ ½Å¹ßÀº ºóÆ´¾øÀÌ °íÃÄÁÖ¸é¼, Á¤ÀÛ ÀÚ½ÅÀÇ ¾ÆÀ̵éÀ» À§ÇÑ ½Å¹ß ¼ö¼±Àº Àؾî¹ö¸®´Â ±¸µÎ ¼ö¼±°ø'À̶ó°í ²¿Áý°í ÀÖ´øµ¥ ¾î¾Áö ÀÌ ±¸Àý¿¡ ÀúÀÚÀÇ Àǵµ°¡ ´Ù ´ã°Ü ÀÖ´Â µíÇϳ׿ä. ÀÚ, °ÔÀ¸¸£°íÀÚ ÇÏ´Â °³¹ßÀÚ¸¦ À§ÇÑ ¸ÚÁø Ä£±¸ Çϳª¸¦ ¼Ò°³ÇÕ´Ï´Ù. ÀÌ Ã¥À¸·Î ´Ù¸¥ ¸ÚÁø Ã¥À» ÁýÇÊÇÏ´Â ¿©À¯ ½Ã°£À» ¾òÀ» ¼ö ÀÖ´Â °³¹ßÀÚµéÀÌ ´Ã¾î³ª±æ ±â´ëÇÏ°í... À½ ±×¸®°í Ȥ½Ã ¾Úºñ¾ðÆ® ¿Àºê¸¦ Á¦°Ô ¼±¹°ÇÒ(¾Æ´Ï ±¸°æ½ÃÄÑ ÁÙ) À̸¦ ã½À´Ï´Ù.¡±
—±èÇüÁØ, http://tzara.wordpress.com
}}}
=== ´Ù¸¥ °³¹ß»çµéÀÇ °³¹ßü°è ¼Ò°³ ===
* [http://blog.empas.com/ksnv6955/read.html?a=19390446 »çÀ̳À¼ÒÇÁÆ®(Synapsoft) °³¹ßü°è]
* [http://blog.tattertools.com/153 TNC´Â ÀÌ°Å ¾øÀ¸¸é ¾È±¼·¯°¡¿ä...]
=== µµÀÔ Àü °í·Á»çÇ× ===
* ¿©·¯ºÐµé 'Àº źȯ'(´Á´ëÀΰ£À» Çѹ濡 Àâ´Â źȯ, ¹¦Ã¥, Ưȿ¾àÀÇ ¶æ)À̶õ ¸»À» µé¾îº¸½ÅÀûÀÌ ÀÖÀ¸½Ç °Ì´Ï´Ù. ¾î¶² ¼ÒÇÁÆ®¿þ¾î Á¦Ç°ÀÌ°Ç°£¿¡ ¸ðµç ¹®Á¦¸¦ ÇØ°áÇØ ÁÖÁö´Â ¾Ê½À´Ï´Ù. Á¦°¡ ¼³¸íµå¸®´Â ³»¿ë ¶ÇÇÑ ¸¶Âù°¡Áö »ç°í·Î Á¢±ÙÇØ¾ß ÇÕ´Ï´Ù. ÀÌ°ÍÀ» µµÀÔÇϴ°͸¸À¸·Î ¸ðµç°ÍÀÌ ´Ù Àß µÉ²¨¶ó°í ¹Ï°í ½ÍÁö¸¸ Çö½ÇÀº ±×·¸Áö ¾Ê°í ³ÃÁ¤ÇÕ´Ï´Ù. ±×·¯±â¿¡ Çö¸íÇÏ°Ô ´ëóÇÏ´Â ÀÚ¼¼°¡ ÇÊ¿äÇÕ´Ï´Ù. ÀÌ ³»¿ëÀ» µµÀÔÇÏ°íÀÚ ÇÏ´Â ÀÇÁö°¡ ÀÖ´Â »ç¶÷Àº ÆÀÀåÀϼöµµ ¸»´Ü »ç¿øÀÏ ¼öµµ ÀÖ½À´Ï´Ù. °¢±â ·Ñº°·Î ÀÌ°ÍÀ» µµÀÔÇϴµ¥ ÇÊ¿äÇÑ ³ë·ÂÀÌ µå´Â°ÍÀº Â÷ÀÌ°¡ ÀÖÀ»°ÍÀÔ´Ï´Ù. ÇÏÁö¸¸ °¡Àå Áß¿äÇÑ °ÍÀº ÆÀ ±¸¼º¿ø°£¿¡ »ý°¢ÀÌ ÇÕÃÄÁöÁö ¾ÊÀ¸¸é °ø¿°ºÒÀÌ µÉ ¼ö ÀÖ´Ù´Â Á¡À» ¹Ýµå½Ã ¸í½ÌÇϽñ⠹ٶø´Ï´Ù.
* ÇöÀç ÀÌ·¯ÇÑ ÇÁ·Î¼¼½º°¡ Àû¿ëµÇÁö ¾ÊÀº °÷¿¡¼ µµÀԽõµ Àü ²À ¾Ë¾ÆµÎ¾î¾ß ÇÒ ³»¿ëÀº ¾îÂ÷ÇÇ ÀÌ ÇÁ·Î¼¼½ºµµ ´Ù¸¥ ÆÀ¿øÀÇ °³¼ºÀ» Á¸ÁßÇÏ°í µµÀÔÀÇ °ø°¨´ë¸¦ Çü¼ºÇÏ´Â °ÍÀÌ °¡Àå Áß¿ä. ÀÌ·±¿ä¼Ò°¡ ºüÁø µµÀÔÀº ¾Ó²¿ºüÁø Â𻧰úµµ °°´Ù.
=== µµÀÔ °è±â ===
* [http://en.wikipedia.org/wiki/Joel_Spolsky Á¶¿¤ ½ºÆú½ºÅ°]°¡ [http://korean.joelonsoftware.com/Articles/TheJoelTest.html Á¦¾ÈÇÑ ±âÁØ]À» Áؼö(?)Çغ¸¸é¼ ÇϳªÇϳª¾¿ Àû¿ëÇغ¸´Ù º¸´Ï ÀÚ¿¬½º·¹ ÆÀ ÇÁ·ÎÁ§Æ® °ü¸®µµ±¸(subverion + trac + Áö¼ÓÀûÀÎ ÅëÇÕ)¶ó´Â °ÍÀ» ÇÁ·ÎÁ§Æ®¿¡ Àû¿ë
* óÀ½¿£ ¼Ò½º°ü¸®¸¦ Çغ¸°íÀÚ Àû¿ëÀ» ½ÃÀÛÇÏ¿´°í ¼Ò½ººê¶ó¿ì¡ÀÇ ºÒÆíÇÔÀ¸·Î viewvc¸¦ µµÀÔÇÏ¿© 1Â÷ÀûÀÎ ºÒ¸¸Àº ÇؼÒÇßÀ¸³ª 2Â÷ÀûÀÎ viewvcÀÇ ÀÎÅÍÆäÀ̽º ºÎÁ·À¸·Î ÀÚ¿¬½º·´°Ô tracÀ» µµÀÔÇÏ°Ô µÇ¾ú°í ¼Ò½º¿Í À̽´¸¦ ÅëÇÕÇÏ¿´°í ¹èÆ÷¶ó´Â À̽´¸¦ ÇØ°áÇϱâ À§ÇØ Áö¼ÓÀûÀÎ ÅëÇÕ ¼Ö·ç¼ÇÀ» Àû¿ë
=== °³¹ßȯ°æ ===
===== ´ëÇ¥ÀûÀÎ ±âÁ¸ ÆÀ ÇÁ·ÎÁ§Æ® °ü¸®ÀÇ ¿¹ =====
* attachment:°´ë±Ç/develop_current.png
*°³¹ß È帧
* °³¹ßÀÚ´Â °³¹ß¼¹öÀÇ °øÀ¯µÈ ¼Ò½ºÆú´õ¿¡ Á÷Á¢ Á¢±ÙÇÏ¿© ¼Ò½º¸¦ ¼öÁ¤ÇÏ°í TEST À¥¼¹ö¿¡¼ ¼öÁ¤³»¿ªÀ» È®ÀÎÇÑ´Ù.
* Å×½ºÆ®°¡ ¿Ï·áµÈ ³»¿ªÀº ¹èÆ÷ÀÛ¾÷À» °ÅÃÄ ¿î¿µ¼¹ö¿¡ ¹Ý¿µµÈ´Ù.
* Àû¿ë´ë»ó °³¹ßȯ°æ
* 1ÀÎ °³¹ß or ´Ù¼öÀÇ °³¹ßÀÚ°¡ Á¤È®È÷ ¾÷¹«ºÐÀåµÈ °³¹ß ½Ã
* ±âÁ¸ °³¹ßȯ°æÀÌ °¡Áö´Â ¹®Á¦Á¡
* UNDO ¹öÆ° ¾ø´Â ¿¡µðÅÍ(°³¹ßȯ°æ)
* µ¿ÀÏÇÑ ÆÄÀÏ ÀÛ¾÷ ½Ã ÀÛ¾÷»óÅ º¸Àå ¾ÈµÊ(¼·Î ´Ù¸¥ °³¹ßÀÚ°¡ ÇϳªÀÇ ÆÄÀÏÀ» µ¿½Ã¿¡ ¼öÁ¤ÇÒ¶§)
* »çº»~, notice_YYMMDD °°Àº dummy ÆÄÀÏ ¾ç»êÀ¸·Î ÀÎÇÑ ¼¹ö ¸®¼Ò½º ³¶ºñ
* °³¹ßÀÚ°¡ ¸¾¸¸ ¸ÔÀ¸¸é ¼Ò½º°¡ »èÁ¦µÉ ¼ö Àִ ȯ°æ
===== ü°èÀûÀÎ ÆÀ ÇÁ·ÎÁ§Æ® °ü¸®·Î °³¼± ¿¹ =====
* attachment:°´ë±Ç/develop_improve.png
* °³¹ß È帧
1. °³¹ßÀÚ´Â Ç×»ó ÀÛ¾÷ Àü update ÀÛ¾÷ ¼öÇà
1. °³¹ßÀÚ´Â ÀÛ¾÷ ¿Ï·á ÈÄ ÀÛ¾÷¼Ò½º commit
1. CI¼¹ö ¹èÆ÷ó¸®
1. ½Ã½ºÅÛ ÀÚµ¿¼öÇà
* ÇÁ·ÎÁ§Æ®º°·Î ¹Ì¸® ¼³Á¤µÈ ½ºÄÉÁì(¸Å ½Ã°£¸¶´Ù)À» ÅëÇØ Subversion ÀúÀå¼Ò¿¡ º¯°æµÈ ¼Ò½º¸¦ ''Checkout''ÇÏ°í ¹èÆ÷ó¸® ÀÚµ¿È ¼³Á¤À» ÅëÇØ º¯°æµÈ ¼Ò½º¸¦ Test PC IIS¼¹ö·Î ¹Ý¿µ
1. »ç¿ëÀÚ Á÷Á¢¼öÇà
* ¼Ò½º¹Ý¿µ ÀÛ¾÷Àº ½ºÄÉÁì ó¸® ¿Ü¿¡µµ »ç¿ëÀÚ°¡ Á÷Á¢ ¹èÆ÷ÀÛ¾÷À» ¼öÇàÇϴ°ÍÀÌ °¡´É
1. ¿î¿µ¼¹ö·Î ¼Ò½º¹Ý¿µÀÇ ±âÁ¸°ú µ¿ÀÏÇÏ°Ô °³¹ßÀÚ°¡ Á÷Á¢ ¹Ý¿µ. ÇâÈÄ °³¼±µÈ ¹èÆ÷¸ðµ¨ Àû¿ë¿¹Á¤
* ¼Ò½º¹öÁ¯°ü¸® ½Ã½ºÅÛ µµÀÔ¿¡ µû¸¥ Àå´ÜÁ¡
* ÀåÁ¡
* ¹öÁ¯°ü¸® ½Ã½ºÅÛÀÇ ÀåÁ¡À» °æÇèÇغ¸°í ³ª¸é ÀÌÀüÀÇ °³¹ßȯ°æÀ¸·Î µ¹¾Æ°¡±â ¾î·Æ´Ù.
* ¸ðµç ¼Ò½º¿¡ ´ëÇÑ À̷»çÇ× ÃßÀûÀÌ °¡´ÉÇÏ´Ù.
* ¼Ò½º UNDO, REDO°¡ °¡´ÉÇÏ´Ù.
* ´ÜÁ¡
* ¹öÁ¯°ü¸®(Subversion) °³¹ßüÁ¦´Â '''°³¹ßÀÚ ·ÎÄÃPC¿¡ IIS¸¦ ¼³Ä¡'''Çؼ °³¹ßÇÔ¿¡ µû¶ó ¾à°£ ¹ø°Å·Î¿ò
* ¹öÁ¯°ü¸® ½Ã½ºÅÛÀ» ½áº¸Áö ¾ÊÀº »ç¿ëÀڵ鿡°Ô´Â Á¶±Ý ³¸¼³Àº ¹æ½ÄÀ̶ó °ÅºÎ°¨ÀÌ ÀÖÀ½
* »ç¿ë¹ý ÇÊÈ÷ ¼÷ÁöÇؾßÇÔ
== SubversionÀ» ÀÌ¿ëÇÑ ¼Ò½º°ü¸® ==
* [http://wiki.kldp.org/wiki.php/SubversionBook SubversionBook]
* SubversionÀÌ Àû¿ëµÇ´Â °¡Àå ´ëÇ¥ÀûÀÎ »ç·Ê - [http://www.gamemeca.com/news/img_data/200707/TERRAN-2.jpg Starcraft2µµ SubversionÀ» ÅëÇØ °³¹ß]
* Subversion ¿Ü¿¡µµ ¹«¼öÈ÷ ¸¹Àº Á¾·ùÀÇ [http://en.wikipedia.org/wiki/Comparison_of_revision_control_software SCM ¼ÒÇÁÆ®¿þ¾î]µéÀÌ Á¸ÀçÇÕ´Ï´Ù.
* SubversionÀº ¸í·ÉÇà ÀÎÅÍÆäÀ̽º¿¡¼´Â »ç¿ëÇÏ´Â ¸í·É¾î¸¦ µû¼ svnÀ̶ó°í ÁÙ¿©¼ ºÎ¸£±âµµ ÇÕ´Ï´Ù.
* SubversionÀº 2000³â CVS °³¹ß ¸â¹öµéÀÌ ÀDZâÅõÇÕÇÏ¿© "CVS ´ëü"¸¦ ¸ñÇ¥·Î °³¹ßµÇ¾ú½À´Ï´Ù.
* CVS¿Í ºñ±³ÇßÀ» ¶§, SubversionÀº ´ÙÀ½°ú °°Àº ÀåÁ¡À» °¡Áø´Ù.
* ¿øÀÚÀûÀ¸·Î ¾²±â°¡ °¡´ÉÇϹǷÎ, ´Ù¸¥ »ç¿ëÀÚÀÇ ¾²±â¿Í ¾ûÅ°Áö ¾Ê´Â´Ù.
* À̸§À» ¹Ù²Ù°Å³ª, º¹»çÇϰųª, ÆÄÀÏÀ» »èÁ¦Çصµ revision history¸¦ À¯ÁöÇÑ´Ù.
* ÀÌÁø ÆÄÀϵµ È¿À²ÀûÀ¸·Î ÀúÀåÇÒ ¼ö ÀÖ´Ù.
* µð·ºÅ丮µµ ¹öÀü °ü¸®ÇÒ ¼ö ÀÖ´Ù. µð·ºÅ丮 Àüü¸¦ ºü¸£°Ô ¿Å±â°Å³ª º¹»çÇÒ ¼ö ÀÖÀ¸¸ç, revision historyµµ ±×´ë·Î À¯ÁöÇÑ´Ù.
* ¼Ò½º ÀúÀå°íÀÇ Å©±â¿¡ »ó°ü¾øÀÌ ÀÏÁ¤ÇÑ ½Ã°£¾È¿¡ branchingÀ̳ª taggingÀ» ÇÒ ¼ö ÀÖ´Ù.
* ¼Ò½º ÀúÀå°í Á¢±ÙÀÌ ÃÖÀûÈ µÇ¾ú±â ¶§¹®¿¡, ¼Ò½º ÀúÀå°í¿¡¼ ºÒÇÊ¿äÇÑ ³×Æ®¿öÅ© Æ®·¡ÇÈÀ» ÁÙÀÏ ¼ö ÀÖ´Ù.
# Subversion Server´Â Á¢±Ù¼ºÀÌ °¡Àå ÁÁÀº Apache ¼¹ö¹æ½ÄÀ» ÅÃÇÏ¿´°í Apache moduelÀ» ÅëÇØ ¼ºñ½º
=== SubversionÀ» ÀÌ¿ëÇÑ °³¹ß ===
attachment:subversion_with_develop.png
=== ÀúÀå¼Ò µð·ºÅ丮 ±¸Á¶ ===
{{{
-- 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
}}}
=== ¿ë¾î¼³¸í ===
* ÀúÀå¼Ò
* ¸®Æ÷ÁöÅ丮(Repository)¶ó°íµµ ÇÏ¸ç ¸ðµç ÇÁ·ÎÁ§Æ®ÀÇ ÇÁ·Î±×·¥ ¼Ò½ºµéÀº ÀÌ ÀúÀå¼Ò ¾È¿¡ ÀúÀåÀÌ µË´Ï´Ù. ±×¸®°í ¼Ò½º»Ó¸¸ÀÌ ¾Æ´Ï¶ó ¼Ò½ºÀÇ º¯°æ »çÇ×µµ ¸ðµÎ ÀúÀåµË´Ï´Ù. ³×Æ®¿öÅ©¸¦ ÅëÇؼ ¿©·¯ »ç¶÷ÀÌ Á¢±Ù ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹öÀü °ü¸® ½Ã½ºÅÛ ¸¶´Ù °¢°¢ ´Ù¸¥ ÆÄÀÏ ½Ã½ºÅÛÀ» °¡Áö°í ÀÖÀ¸¸ç SubversionÀº Berkeley DB¸¦ »ç¿ëÇÕ´Ï´Ù. ÇÑ ÇÁ·ÎÁ§Æ® ¸¶´Ù ÇϳªÀÇ ÀúÀå¼Ò°¡ ÇÊ¿äÇÕ´Ï´Ù.
* ¸®ºñÀü(Revision)
* ¼Ò½º ÆÄÀϵîÀ» ¼öÁ¤ÇÏ¿© Ä¿¹ÔÇÏ°Ô µÇ¸é ÀÏÁ¤ÇÑ ±ÔÄ¢¿¡ ÀÇÇØ ¼ýÀÚ°¡ Áõ°¡ ÇÕ´Ï´Ù. ÀúÀå¼Ò¿¡ ÀúÀåµÈ °¢°¢ÀÇ ÆÄÀÏ ¹öÀüÀ̶ó ÇÒ ¼ö ÀÖ½À´Ï´Ù. SubversionÀÇ °æ¿ì ÆÄÀϺ°·Î ¸®ºñÀüÀÌ ¸Å°ÜÁöÁö ¾Ê°í Çѹø Ä¿¹Ô ÇÑ °ÍÀ¸·Î Àüü ¸®ºñÀüÀÌ ¸Å°Ü Áý´Ï´Ù. ¸®ºñÀüÀ» º¸°í ÇÁ·ÎÁ§Æ® ÁøÇà »óȲÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù.
* branches
* ³ª¹«ÁÙ±â(trunk)¿¡¼ »¸¾îÁ® ³ª¿Â ³ª¹« °¡Áö¸¦ ¶æÇÕ´Ï´Ù. trunk µð·ºÅ丮¿¡¼ ÇÁ·Î±×·¥À» °³¹ßÇÏ´Ù º¸¸é Å« ÇÁ·ÎÁ§Æ®¿¡¼ ¶Ç ´Ù¸¥ ÀÛÀº ºÐ·ù·Î »©¼ µû·Î °³¹ßÇØ¾ß ÇÒ °æ¿ì°¡ »ý±é´Ï´Ù. ÇÁ·ÎÁ§Æ®¾ÈÀÇ ÀÛÀº ÇÁ·ÎÁ§Æ®¶ó°í »ý°¢ÇÏ¸é µË´Ï´Ù. branches µð·ºÅ丮 ¾È¿¡ ¶Ç ´Ù¸¥ µð·ºÅ丮¸¦ µÎ¾î ±× ¾È¿¡¼ °³¹ßÇÏ°Ô µË´Ï´Ù.
* tags
* tag´Â ²¿¸®Ç¥¶ó´Â ¶æÀ» °¡Áö°í ÀÖ½À´Ï´Ù. ÀÌ µð·ºÅ丮´Â ÇÁ·Î±×·¥À» °³¹ßÇÏ¸é¼ Á¤±âÀûÀ¸·Î ¸±¸®Á ÇÒ ¶§ 0.1, 0.2, 1.0 ÇÏ´Â ½ÄÀ¸·Î ¹öÀüÀ» ºÙ¿© ¹ßÇ¥ÇÏ°Ô µÇ´Âµ¥ ±×¶§±×¶§ ¹ßÇ¥ÇÑ ¼Ò½º¸¦ µû·Î ÀúÀåÇÏ´Â °ø°£ÀÔ´Ï´Ù. À§¿¡¼ º¸¸é tags µð·ºÅ丮 ¾Æ·¡¿¡´Â ¹öÀü¸íÀ¸·Î µð·ºÅ丮°¡ ¸¸µé¾îÁ® ÀÖ½À´Ï´Ù.
* trunk
* ´Ü¾î ÀÚüÀÇ ¶æÀº º»Ã¼ ºÎºÐ, ³ª¹«ÁÙ±â, ¸öÅë µî ÀÔ´Ï´Ù. ÇÁ·ÎÁ§Æ®¿¡¼ °¡Àå Áß½ÉÀÌ µÇ´Â µð·ºÅ丮ÀÔ´Ï´Ù. ¸ðµç ÇÁ·Î±×·¥ °³¹ß ÀÛ¾÷Àº trunk µð·ºÅ丮¿¡¼ ÀÌ·ç¾îÁý´Ï´Ù. ±×·¡¼ À§ÀÇ ±¸Á¶¿¡¼ trunk µð·ºÅ丮 ¾Æ·¡¿¡´Â ¹Ù·Î ¼Ò½ºµéÀÇ ÆÄÀÏ°ú µð·ºÅ丮°¡ µé¾î°¡°Ô µË´Ï´Ù.
=== Tortoise SVN ¿À¹ö·¹ÀÌ ¾ÆÀÌÄÜ ¼³¸í ===
attachment:subversion_icon.png
=== Subversion ¼³Ä¡ ===
* º» ¼³Ä¡¹®¼´Â http://www.pyrasis.com/main/SubversionServerForWindows À» ÂüÁ¶ÇÏ¿© ÀÛ¼ºÇÏ¿´½À´Ï´Ù.
* Subversion Server´Â Á¢±Ù¼ºÀÌ °¡Àå ÁÁÀº Apache ¼¹ö¹æ½ÄÀ» ÅÃÇÏ¿´°í Apache moduelÀ» ÅëÇØ ¼ºñ½º
* ¼ºê¹öÁ¯ÀÇ berkly db¿Í fssÀÇ Â÷ÀÌÁ¡À» ¼³¸í
* ¼ºê¹öÁ¯ changeset ºñ±³¸¦ winmerge·Î ¼³¸í
==== ´Ù¿î·Îµå ¸ñ·Ï ====
* [http://httpd.apache.org/ Apache HTTP Server 2.0.63] - [http://mirror.apache-kr.org/httpd/binaries/win32/apache_2.0.63-win32-x86-no_ssl.msi ´Ù¿î·Îµå]
* [http://subversion.tigris.org/ Subversion 1.4.6 - Windows 32bit] - [http://subversion.tigris.org/files/documents/15/41686/svn-1.4.6-setup.exe ´Ù¿î·Îµå]
==== ¼³Ä¡ ====
1. Apache HTTP Server 2.0.63 ÇÁ·Î±×·¥ ¼³Ä¡
1. Subversion 1.4.6 ÇÁ·Î±×·¥ ¼³Ä¡
* ¾ÆÆÄÄ¡¸¦ ¸ÕÀú ¼³Ä¡ÇÑ °æ¿ì Subversion ÀνºÅç·¯°¡ ¾ÆÆÄÄ¡¸¦ ÀνÄÇؼ ÀÚµ¿À¸·Î httpd.conf ¼³Á¤ÆÄÀÏ º¯°æ
attachment:subversion_install_with_apache_modules.png
* httpd.conf ¼³Á¤ÆÄÀÏ º¯°æ³»¿ª
* !LoadModule dav_module modules/mod_dav.so ÁÖ¼®ÇØÁ¦
* !LoadModule dav_svn_module "C:/Program Files/Subversion/bin/mod_dav_svn.so" Ãß°¡
* !LoadModule authz_svn_module "C:/Program Files/Subversion/bin/mod_authz_svn.so" Ãß°¡
==== ÀúÀå¼Ò ¼³Á¤ ¹× Apache ¼³Á¤ ====
* ÀúÀå¼Ò »ý¼º
{{{
mkdir c:\repos\svn
cd c:\repos\svn
svnadmin create sample
}}}
* svnadminÀ¸·Î sampleÀ̶ó´Â ÀúÀå¼Ò¸¦ ¸¸µé¸é c:\repos\svn ¾Æ·¡ sampleÀ̶ó´Â µð·ºÅ丮°¡ »ý±é´Ï´Ù. ÀÌ µð·ºÅ丮 ¾È¿¡´Â SubversionÀÌ Á¦¾îÇÏ´Â ÆÄÀϵéÀÌ µé¾îÀÖ½À´Ï´Ù. ÀúÀå¼Ò »ý¼º ½Ã ¾Æ¹«·± ¿É¼ÇÀ» ÁÖÁö ¾ÊÀ¸¸é ÆÄÀϽýºÅÛÀ¸·Î ÀúÀå¼Ò°¡ ¸¸µé¾î Áý´Ï´Ù. sample ÀúÀå¼ÒÀÇ Àüü °æ·Î´Â c:\repos\svn\sampleÀÌ µË´Ï´Ù.
* Apache ¼³Á¤
1. ÆÄÀÏÆíÁý±â·Î C:\Program Files\Apache Group\Apache2\modules\httpd.conf ÆÄÀÏ ¸Ç µÞºÎºÐ¿¡ ¾Æ·¡¿Í °°ÀÌ Ãß°¡
{{{
DAV svn
SVNPath C:/repos/svn/sample
}}}
1. ¼³Á¤À» ¸¶Ä£ ÈÄ ¾ÆÆÄÄ¡ ¼¹ö Àç½ÃÀÛ. http://localhost/svn/sample/ À¸·Î Á¢¼Ó ÈÄ ¾Æ·¡ÀÇ ¸Þ½ÃÁö È®ÀεǸé Apache¿Í Subversion 1Â÷ ¿¬µ¿ ¿Ï·á
{{{
Revision 0: /
Powered by Subversion version 1.4.6 (r28521).
}}}
* Apache¿¡¼ ID·Î »ç¿ëÀÚ ÀÎÁõ
* ÀÌÁ¦ ID¸¦ ÅëÇØ ÀÎÁõµÈ »ç¿ëÀÚ¸¸ ¼Ò½º¸¦ üũ¾Æ¿ôÇÏ°í Ä¿¹Ô ÇÒ ¼ö ÀÖµµ·Ï ¼³Á¤ ÇÏ°Ú½À´Ï´Ù.
* ¾ÆÆÄÄ¡¿¡ »ç¿ëÇÒ Æнº¿öµå ÆÄÀÏÀ» ¸¸µì´Ï´Ù. "htpasswd -c Æнº¿öµåÆÄÀÏ¸í »ç¿ëÀÚID"
{{{
cd C:\Program Files\Apache Group\Apache2\bin
htpasswd -c ..\conf\passwd sampleuser
}}}
"# htpasswd -c"´Â Æнº¿öµå ÆÄÀÏÀ» óÀ½ ¸¸µé ¶§ÀÇ ¿É¼ÇÀÌ°í »ç¿ëÀÚ¸¦ Ãß°¡ÇÏ°í ½ÍÀ» ¶§¿¡´Â "# htpasswd Æнº¿öµåÆÄÀÏ¸í »ç¿ëÀÚID" ·Î ÇØÁÖ¸é µË´Ï´Ù.
* ¹æ±Ý ¼öÁ¤Çß´ø ÆÄÀÏÆíÁý±â·Î httpd.conf ÆÄÀÏÀÇ ¸Ç ¸¶Áö¸· ºÎºÐ¿¡ Ãß°¡ÇÑ ºÎºÐÀ» ´Ù½Ã ¼³Á¤ ÇÕ´Ï´Ù.
{{{
DAV svn
SVNPath C:/repos/svn/sample
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile "C:/Program Files/Apache Group/Apache2/conf/passwd"
Require valid-user
}}}
4ÁÙÀÌ Ãß°¡ µÇ¾ú½À´Ï´Ù. !AuthType BasicÀº Apache ±âº» Æнº¿öµå ÀÎÁõÀÔ´Ï´Ù. !AuthNameÀº Æнº¿öµå°¡ °É¸° À¥ÆäÀÌÁö¿¡ ¶ß´Â ·Î±×ÀÎâ¿¡ ³ª¿Ã ¹®ÀåÀÔ´Ï´Ù. !AuthUserFileÀº ¹æ±Ý Àü ¸¸µé¾ú´ø ¾ÆÆÄÄ¡ Æнº¿öµå ÆÄÀÏÀÔ´Ï´Ù. Àý´ë°æ·Î·Î Àû¾îÁÖ¾î¾ß ÇÕ´Ï´Ù. Require valid-user´Â ÀÎÁõµÈ »ç¿ëÀÚ¸¸ º¼ ¼ö ÀÖ°Ô ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù.
* ¼³Á¤À» ¸¶Ä£ ÈÄ ¾ÆÆÄÄ¡ ¼¹ö Àç½ÃÀÛ. http://localhost/svn/sample/ À¸·Î Á¢¼Ó ÈÄ »ç¿ëÀÚ ÀÎÁõ °úÁ¤ È®ÀεǸé Apache¿Í Subversion 2Â÷ ¿¬µ¿ ¿Ï·á
* À͸í»ç¿ëÀÚ(Anonymous)¿¡ ´ëÇÑ Read ±ÇÇѺο© ¼³Á¤
* À¥ ºê¶ó¿ìÀú·Î ÀúÀå¼Ò¸¦ º¸´Â °Í°ú üũ¾Æ¿ôÀº ¾Æ¹«¿¡°Ô³ª(Anonymous) ÇÒ ¼ö ÀÖ°Ô ÇÏ°í Ä¿¹ÔÀº ÁöÁ¤µÈ »ç¿ëÀÚ¸¸ ÇÒ ¼ö ÀÖµµ·Ï ÇÏ·Á¸é httpd.conf¿¡¼ ¼³Á¤ÇÑ ºÎºÐÀ» ¾Æ·¡¿Í °°ÀÌ ¹Ù²Ù¾î ÁÖ¸é µË´Ï´Ù.
{{{
DAV svn
SVNPath C:/repos/svn/sample
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile "C:/Program Files/Apache Group/Apache2/conf/passwd"
Require valid-user
}}}
ÀÌ·¸°Ô Çϸé ÀúÀå¼Ò¸¦ º¸°Å³ª üũ¾Æ¿ôÀ» ÇÒ ¶§´Â ID¿Í Æнº¿öµå¸¦ ¹¯Áö ¾Ê°í Ä¿¹ÔÀ̳ª µð·ºÅ丮. ÆÄÀϺ¹»ç µîÀÇ ÀúÀå¼Ò¸¦ º¯°æÇÏ´Â ÀÛ¾÷À» ÇÒ ¶§¿¡´Â ID¿Í Æнº¿öµå¸¦ ¹°¾îº¸°Ô µË´Ï´Ù.
==== ÀúÀå¼Ò ±âº» µð·ºÅ丮 ±¸¼º ====
* ±âº» ÀúÀå¼Ò ±¸Á¶
{{{
-- c:\repos\svn\sample
+--+---+- branches
+---+- tags
+---+- trunk
}}}
* À§ ±¸Á¶´ë·Î svn ¸í·É¾î¸¦ ÅëÇØ ÀúÀå¼Ò¿¡ µð·ºÅ丮 »ý¼º
{{{
svn mkdir http://localhost/svn/sample/branches -m "Initial branches" --username <»ç¿ëÀÚ¾ÆÀ̵ð> --password <Æнº¿öµå>
svn mkdir http://localhost/svn/sample/tags -m "Initial tags" --username <»ç¿ëÀÚ¾ÆÀ̵ð> --password <Æнº¿öµå>
svn mkdir http://localhost/svn/sample/trunk -m "Initial trunk" --username <»ç¿ëÀÚ¾ÆÀ̵ð> --password <Æнº¿öµå>
}}}
* »ý¼º °á°ú È®ÀÎ
{{{
Revision 3: /
* branches/
* tags/
* trunk/
Powered by Subversion version 1.4.6 (r28521).
}}}
=== Subversion ±âº» ¸í·É¾î ===
==== Import ====
¸Ç óÀ½ ÇÁ·ÎÁ§Æ®¸¦ ½ÃÀÛÇÒ ¶§ ÀúÀå¼Ò¿¡ ¼Ò½ºµéÀ» ³Ö¾î¾ß ÇÕ´Ï´Ù. ÀÌ·² ¶§ ÇÏ´Â °ÍÀÌ import ÀÛ¾÷ÀÔ´Ï´Ù. sampledir À̶ó´Â µð·ºÅ丮¸¦ ¸¸µç µÚ¿¡ ±× ¾Æ·¡ ´ÙÀ½°ú °°Àº °£´ÜÇÑ ¼Ò½º¸¦ ÀÛ¼ºÇØ º¸½Ê½Ã¿À.
{{{
C:\Temp>mkdir sampledir
C:\Temp>cd sampledir
C:\Temp\sampledir>edit sample.c
}}}
{{{
#include
int main()
{
printf("Sample Program Version 0.1\n");
return 0;
}
}}}
ÀÌ ¼Ò½º¸¦ ÀúÀå¼ÒÀÇ trunk µð·ºÅ丮¿¡ import ÇÏ°Ú½À´Ï´Ù. ¾Æ·¡ sampledirÀº µð·ºÅ丮ÀÔ´Ï´Ù. ÆÄÀÏÀ» ÀûÀ¸¸é importµÇÁö ¾Ê½À´Ï´Ù. ²À µð·ºÅ丮¸¦ ¸¸µé°í ±× µð·ºÅ丮¸¦ Àû¾î ÁֽʽÿÀ. ÀúÀå¼ÒÀÇ trunk µð·ºÅ丮¿¡´Â sampledir µð·ºÅ丮¾ÈÀÇ sample.c ÆÄÀϸ¸ ¿Ã¶ó°¡°Ô µÇ°í sampledirÀº ¿Ã¶ó°¡Áö ¾Ê½À´Ï´Ù. sampledir ¾Æ·¡ µð·ºÅ丮¸¦ ¸¸µé¾ú´Ù¸é ±× µð·ºÅ丮´Â ÀúÀå¼ÒÀÇ trunk µð·ºÅ丮 ¾Æ·¡¿¡ ¿Ã¶ó°¡°Ô µË´Ï´Ù.
{{{
C:\Temp\sampledir>cd ..
C:\Temp>svn import sampledir http://localhost/svn/sample/trunk -m "sample.c import" --username <»ç¿ëÀÚ¾ÆÀ̵ð> --password <Æнº¿öµå>
Ãß°¡ sampledir\sample.c
Ä¿¹ÔµÈ ¸®ºñÀü 4.
}}}
ÀÌÁ¦ import°¡ Á¦´ë·Î µÇ¾ú´ÂÁö È®ÀÎÇØ º¾½Ã´Ù. list ¸í·ÉÀ» ÀÌ¿ëÇØ trunk µð·ºÅ丮¿¡ ¹«¾ùÀÌ ÀÖ³ª º¸°Ú½À´Ï´Ù.
{{{
C:\Temp>svn list http://localhost/svn/sample/trunk
sample.c
}}}
==== Checkout ====
ÀÌÁ¦ ºÎÅÍ SubversionÀ» ÀÌ¿ëÇؼ ÇÁ·Î±×·¥ ¼Ò½º¸¦ °ü¸® ÇÒ ¼ö ÀÖ½À´Ï´Ù. checkoutÀ» Çؼ ¾îµð¼µç ¼Ò½º¸¦ ¹Þ¾Æ º¼ ¼ö ÀÖ½À´Ï´Ù. ¹æ±Ý import¸¦ ÇϱâÀ§ÇØ ¸¸µé¾ú´ø sampledirÀº Áö¿öµµ µË´Ï´Ù.
svn checkoutÀº svn co·Î ÁÙÀÏ ¼ö ÀÖ½À´Ï´Ù. "svn checkout ÀúÀå¼ÒÁÖ¼Ò ·ÎÄõð·ºÅ丮" ÀÇ Çü½Ä ÀÔ´Ï´Ù.
{{{
C:\Temp>svn checkout http://localhost/svn/sample/trunk sample
A sample\sample.c
üũ¾Æ¿ôµÈ ¸®ºñÀü 4.
}}}
checkoutÀ» ÇÑ µð·ºÅ丮 ¾È¿¡´Â .svn À̶ó´Â µð·ºÅ丮°¡ ÀÖ½À´Ï´Ù. ÀÌ µð·ºÅ丮´Â Subversion ÀúÀå¼Ò Á¤º¸°¡ µé¾î Àֱ⠶§¹®¿¡ Áö¿ì¸é ¾È µË´Ï´Ù.
==== Blame ====
BlameÀº ÇÑ ¼Ò½ºÆÄÀÏÀ» ´ë»óÀ¸·Î °¢ ¸®ºñÀü ´ëÇؼ ¾î¶² ÇàÀ» ´©°¡ ¼öÁ¤Çß´ÂÁö ¾Ë¾Æº¸±â À§ÇÑ ¸í·ÉÀÔ´Ï´Ù.
¸®ºñÀü, Ä¿¹ÔÇÑ »ç¿ëÀÚÀÇ ID, ¼Ò½º ¼ø¼ÀÔ´Ï´Ù.
{{{
sample# svn blame sample.c
4 sampleuser #include
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
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
== TracÀ» ÀÌ¿ëÇÑ À̽´°ü¸® ==
* Trac ¼³Ä¡ ¹× Subversion°úÀÇ ÅëÇÕ
=== TracÀ» ÀÌ¿ëÇÑ °³¹ß»ç·Ê ===
* [http://dev.textcube.org/ ÅؽºÆ®Å¥ºê °³¹ß ¼¾ÅÍ]
* [http://trac.playxp.com/ Play XP °³¹ß ¼¾ÅÍ]
* [http://dev.rubyonrails.org dev.rubyonrails.org]
=== Trac ¼³Ä¡ ===
==== ´Ù¿î·Îµå ¸ñ·Ï ====
1. Python
||¼³¸í||´Ù¿î·Îµå||ȨÆäÀÌÁö||
||python-2.4.4||[http://www.python.org/ftp/python/2.4.4/python-2.4.4.msi ´Ù¿î·Îµå]||http://www.python.org/||
||Python extensions for Windows||[http://jaist.dl.sourceforge.net/sourceforge/pywin32/pywin32-210.win32-py2.4.exe ´Ù¿î·Îµå]||http://sourceforge.net/projects/pywin32/||
||mod_python(apache module)||[http://ftp.kaist.ac.kr/pub/Apache/httpd/modpython/win/3.3.1/mod_python-3.3.1.win32-py2.4-Apache2.0.exe ´Ù¿î·Îµå]||http://www.modpython.org/||
||Subversion Python Bindings||[http://subversion.tigris.org/files/documents/15/38214/svn-python-1.4.4.win32-py2.4.exe ´Ù¿î·Îµå]||http://subversion.tigris.org/||
2. Trac
||¼³¸í||´Ù¿î·Îµå||ȨÆäÀÌÁö||
||trac-0.10.4-ko||[http://kldp.net/frs/download.php/3862/trac-0.10.4-ko.tar.gz ´Ù¿î·Îµå]||http://kldp.net/projects/trac-ko/||
||Docutils||[http://prdownloads.sourceforge.net/docutils/docutils-0.4.tar.gz?download ´Ù¿î·Îµå]||http://docutils.sourceforge.net/||
||pysqlite||[http://initd.org/pub/software/pysqlite/releases/2.3/2.3.5/pysqlite-2.3.5.win32-py2.4.exe ´Ù¿î·Îµå]||http://initd.org/tracker/pysqlite||
||Clearsilver||[http://www.clearsilver.net/downloads/win32/clearsilver-0.9.14.win32-py2.4.exe ´Ù¿î·Îµå]||http://www.clearsilver.net/||
||!SilverCity||[http://downloads.sourceforge.net/silvercity/SilverCity-0.9.7.win32-py2.4.exe?modtime=1164245766&big_mirror=0 ´Ù¿î·Îµå]||http://silvercity.sourceforge.net/||
||diffutils||[http://jaist.dl.sourceforge.net/sourceforge/gnuwin32/diffutils-2.8.7-1.exe ´Ù¿î·Îµå]||http://sourceforge.net/projects/gnuwin32||
||enscript||[http://jaist.dl.sourceforge.net/sourceforge/gnuwin32/enscript-1.6.3-9-bin.exe ´Ù¿î·Îµå]||http://sourceforge.net/projects/gnuwin32||
||sed||[http://jaist.dl.sourceforge.net/sourceforge/gnuwin32/sed-4.1.4.exe ´Ù¿î·Îµå]||http://sourceforge.net/projects/gnuwin32||
==== Trac ¼³Ä¡ ====
* Python
1. Python 2.4.4
1. Python °æ·Î ȯ°æº¯¼ö·Î µî·Ï
attachment:python_environment_setting.png
1. Python extensions for Windows
1. mod_python(apache module)
1. Subversion Python Bindings
* Trac
1. Trac ¼³Ä¡
1. ¾ÐÃàÇ®°í python setup.py install
1. !DocUtils ¼³Ä¡
1. ¾ÐÃàÇ®°í python setup.py install
1. pysqlite ¼³Ä¡
1. Clearsilver ¼³Ä¡
1. !SilverCity ¼³Ä¡
==== Trac Plugin ¼³Ä¡ ====
* [http://www.ncube.net/entry/À©µµ¿ì¿¡¼-ÇÁ·ÎÁ§Æ®-°ü¸®Åø-Trac-¼³Ä¡¿Í-±âŸ-Plugin-¼³Ä¡ http://www.ncube.net/entry/À©µµ¿ì¿¡¼-ÇÁ·ÎÁ§Æ®-°ü¸®Åø-Trac-¼³Ä¡¿Í-±âŸ-Plugin-¼³Ä¡]
* °³¿ä
* Trac pluginÀº egg¶ó´Â python ¹èÆ÷ÆÐÅ°Áö¸¦ ÅëÇØ ¼³Ä¡¸¦ ÇØÁÖ¾î¾ß ÇÑ´Ù.
* Trac plugin Á¦ÀÛÀÚµéÀÌ eggÆÄÀÏÀ» Á÷Á¢ python ¹öÁ¯º°·Î Æ÷ÆÃÇØÁÖ´Â °æ¿ìµµ ÀÖÁö¸¸ ÀÌ´Â ÈçÄ¡ ¾ÊÀº°æ¿ì¶ó ±×³É source¸¦ eggÆÄÀÏ·Î ¸¸µé¾î¼ ó¸®Çϵµ·Ï ÇÏ´Â ½À°üÀ» ¸¸µå´Â°Ô ÆíÇÏ´Ù.
* Trac plugin ÆÄÀÏÀÇ ¼Ò½º¸¦ º¸¸é setup.pyÀÌ ÀÖÀ¸¸ç python setup.py bdist_egg ¸í·ÉÀ» ¼öÇàÇؼ eggÆÄÀÏ·Î ¸¸µé¸é µÇ°í Trac Admin - Plugins ÆäÀÌÁö¿¡¼ Install Plugin ó¸®ÇØÁÖ¸é µÈ´Ù.
* Trac plugin ¼³Ä¡ÇÏ°í ¾ÆÆÄÄ¡ ¼¹ö¸¦ Àç½ÃÀÛÇϸé Àû¿ëÀÌ µÇ°í Ưº°ÇÑ °æ¿ì´Â trac.ini ¼³Á¤ÆÄÀÏÀ» ¼öÁ¤ÇÏ¿© ¼¼¼¼ÇÑ ¿É¼ÇÀ» ¼³Á¤ÇÒ ¼ö ÀÖ´Ù.
* ƯÁ¤ Trac pluginÀ» python library·Î ¼³Ä¡¸¦ ÇÏ·Á°í Çϴ°æ¿ì easy_install ¸í·ÉÀ» ÅëÇØ ¼³Ä¡ÇÒ ¼ö ÀÖ´Ù.
* easy_install
* [http://peak.telecommunity.com/DevCenter/setuptools#installing-setuptools homepage]
* [attachment:ez_setup.py?format=raw ez_setup.py ´Ù¿î·Îµå]
* [http://peak.telecommunity.com/dist/ez_setup.py ¿øº»]
{{{
c:\python24\python.exe ez_setup.py setuptools==dev
}}}
* easy_install ¼³Ä¡¿Ï·á È®ÀÎÀº python24/scripts/easy_install.exe ÆÄÀÏ È®ÀÎ
* Plugin
* ''c:\python24\scripts\easy_install.exeÀ» ÅëÇØ ¼Ò½º°æ·Î¸¦ ÁöÁ¤ÇØÁÖ¸é ÀÚµ¿À¸·Î ¼³Ä¡µÊ''
* [http://trac.edgewall.org/wiki/PluginList Trac Plugin List]
* Web Admin
1. [http://trac.edgewall.org/wiki/WebAdmin homepage]
1. ¼³Ä¡
{{{
c:\python24\scripts\easy_install.exe http://svn.edgewall.com/repos/trac/sandbox/webadmin
}}}
1. ¼³Á¤(trac.ini)
{{{
[components]
webadmin.* = enabled
}}}
* Account Manager
1. [http://trac-hacks.org/wiki/AccountManagerPlugin homepage]
1. ¼³Ä¡
{{{
c:\python24\scripts\easy_install.exe http://trac-hacks.org/svn/accountmanagerplugin/0.10
}}}
1. ¼³Á¤(trac.ini)
{{{
[components]
acct_mgr.admin.accountmanageradminpage = enabled
acct_mgr.api.accountmanager = enabled
acct_mgr.db.sessionstore = enabled
acct_mgr.htfile.abstractpasswordfilestore = enabled
acct_mgr.htfile.htdigeststore = enabled
acct_mgr.htfile.htpasswdstore = enabled
acct_mgr.http.httpauthstore = enabled
acct_mgr.pwhash.htdigesthashmethod = enabled
acct_mgr.pwhash.htpasswdhashmethod = enabled
acct_mgr.web_ui.accountmodule = enabled
trac.web.auth.LoginModule = disabled
acct_mgr.web_ui.LoginModule = enabled
acct_mgr.web_ui.RegistrationModule = disabled
}}}
* ¼³Á¤Âü°í(trac.ini)
{{{
acct_mgr.web_ui.registrationmodule = disabled
}}}
* À§ÀÇ ¿É¼ÇÀº È°¼ºÈ µÇ¸é anonymous »ç¿ëÀÚ°¡ Á÷Á¢ trac ÆäÀÌÁö¿¡¼ register°¡ °¡´ÉÇÏ´Ù. ÀÌ ¿É¼ÇÀº ÇÁ·ÎÁ§Æ® Ãʱ⠽űԻç¿ëÀÚ¸¦ µî·ÏÇÒ¶§ À¯¿ëÇÏ¸ç »ç¿ëÀÚ µî·ÏÀÌ ¸¶°¨µÇ¸é ¹Ýµå½Ã disabled Çسõ¾Æ¾ß ¹«ºÐº°ÇÑ »ç¿ëÀÚ µî·ÏÀ» ¸·À»¼ö ÀÖÀ»°Í
==== Trac ÇÁ·ÎÁ§Æ® »ý¼º ====
* ÀÛ¾÷ Àü
* subversion ÀúÀå¼Ò ¹é¾÷
{{{
subversion Æú´õ ¹é¾÷ or bulk ¶ß´Â °úÁ¤ ±â¼ú
}}}
* ÇÁ·ÎÁ§Æ® »ý¼º
* Trac ÇÁ·ÎÁ§Æ® Æú´õ »ý¼º('''''Æú´õ »ý¼ºÇÏÁö ¾Ê°í ÁøÇàÇÒ °æ¿ì ¿À·ù¹ß»ý''''')
{{{
mkdir D:/repos/trac/test/
}}}
* trac-adminÀ» ÅëÇÑ ÇÁ·ÎÁ§Æ® »ý¼º
{{{
c:\Python24\Scripts>python trac-admin D:/repos/trac/test/trac.db
Trac [D:\repos\trac\test\trac.db]> initenv ¿£ÅÍ
project Name [My Project]> test ¿£ÅÍ
Database connection string [sqlite:db/trac.db]> ¿£ÅÍ
Repository type [svn]> ¿£ÅÍ
Path to repository [/path/to/repos]> D:/repos/svn/test ¿£ÅÍ
Templates directory [C:\Python23\share\trac\templates]> ¿£ÅÍ
Creating and Initializing Project -> ÇÁ·ÎÁ§Æ® »ý¼º ½ÃÀÛ
}}}
* »ç¿ëÀÚ ±ÇÇѼ³Á¤
* [http://trac.edgewall.org/wiki/TracPermissions ±ÇÇѼ³Á¤ ¸Þ´º¾ó]
* »ç¿ëÀÚ ±ÇÇѼ³Á¤Àº trac-admin »óÅ¿¡¼ ¾Æ·¡ ¸í·É ¼öÇà
* anonymous ±ÇÇÑ Ãà¼Ò ó¸®
{{{
permission remove anonymous TICKET_CREATE
permission remove anonymous TICKET_MODIFY
permission remove anonymous WIKI_CREATE
permission remove anonymous WIKI_MODIFY
}}}
* administrator user °ü¸®ÀÚ ±ÇÇÑ ºÎ¿©ÇÏ¿© Ãß°¡
{{{
permission add administrator TRAC_ADMIN
}}}
* htaccess ÆÄÀÏ »ý¼º
* »ç¿ëÀÚ °ü¸® ÆÄÀÏÀÎ d:/repos/trac/test/.htaccess¸¦ [http://httpd.apache.org/docs/2.0/programs/htpasswd.html htpasswd]¸¦ ÅëÇØ administrator Çϳª¸¸ »ý¼º. ¾ÏÈ£´Â "1234"·Î »ý¼º
==== Trac ¼ºñ½º ¾ÆÆÄÄ¡ À¥¼¹ö¿¡ µî·Ï ====
1. trac cgi º¹»ç
{{{
copy c:\python24\share\trac\cgi-bin\trac.cgi "c:\Program Files\Apache Group\Apache2\cgi-bin"
}}}
1. httpd.conf ÆÄÀÏ ¼³Á¤
{{{
# module Ãß°¡
LoadModule python_module modules/mod_python.so
# httpd.conf ¸Ç ÇÏ´Ü¿¡ Trac ¼ºñ½º ¼³Á¤ Ãß°¡
Alias /trac "C:/Python24/share/trac/htdocs"
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracUriRoot /
PythonOption TracEnv "D:/repos/trac/test/trac.db"
PythonOption TracLocale "English_KOREA"
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
}}}
==== Trac ȯ°æ¼³Á¤ ====
* trac.ini´Â Trac ȯ°æ¼³Á¤ ¼³Á¤ÆÄÀÏÀ̸ç d:/repos/trac/test/trac.db/conf/ µð·ºÅ丮¿¡ À§Ä¡
* Trac plugin¼³Á¤Àº ¿Ï·áµÈ »óÅÂ¶ó °¡Á¤
* ¾Æ·¡ ¼³Á¤³»¿ªÀº ÇöÀç ¿î¿µÁßÀÎ »ùÇà trac.iniÆÄÀÏÀÓ
{{{
# -*- coding: utf-8 -*-
[account-manager]
password_file = d:/repos/trac/test/.htaccess
password_format = htpasswd
password_store = HtPasswdStore
[attachment]
max_size = 1048576
render_unsafe_content = false
[browser]
downloadable_paths = /trunk, /branches/*, /tags/*
hide_properties = svk:merge
render_unsafe_content = false
[changeset]
max_diff_bytes = 10000000
max_diff_files = 0
wiki_format_messages = true
[components]
acct_mgr.admin.accountmanageradminpage = enabled
acct_mgr.api.accountmanager = enabled
acct_mgr.db.sessionstore = enabled
acct_mgr.htfile.abstractpasswordfilestore = enabled
acct_mgr.htfile.htdigeststore = enabled
acct_mgr.htfile.htpasswdstore = enabled
acct_mgr.http.httpauthstore = enabled
acct_mgr.pwhash.htdigesthashmethod = enabled
acct_mgr.pwhash.htpasswdhashmethod = enabled
acct_mgr.web_ui.accountmodule = enabled
acct_mgr.web_ui.loginmodule = enabled
acct_mgr.web_ui.registrationmodule = enabled
addcomment.macro.* = enabled
macropost.web_ui.* = enabled
trac.web.auth.loginmodule = disabled
trac.wiki.web_ui.wikimodule = disabled
tracnav.tracnav.* = enabled
tractags.* = enabled
webadmin.* = enabled
[header_logo]
alt =
height = -1
link =
src =
width = -1
[logging]
log_file = trac.log
log_level = DEBUG
log_type = none
[mimeviewer]
enscript_modes = text/x-dylan:dylan:4
enscript_path = enscript
max_preview_size = 262144
mime_map = text/x-dylan:dylan,text/x-idl:ice,text/x-ada:ads:adb
php_path = php
silvercity_modes =
tab_width = 8
[notification]
always_notify_owner = false
always_notify_reporter = false
always_notify_updater = true
mime_encoding = base64
smtp_always_bcc =
smtp_always_cc =
smtp_default_domain =
smtp_enabled = true
smtp_from =
smtp_password =
smtp_port = 25
smtp_replyto =
smtp_server =
smtp_subject_prefix = __default__
smtp_user = administrator
use_public_cc = false
use_short_addr = false
use_tls = false
[project]
descr = Test Project Management System - Trac
footer = Visit the Trac open source project at
http://trac.edgewall.org/
icon = common/trac.ico
name = Test Project Management System
url = http://example.org/
[search]
min_query_length = 3
[ticket]
default_component =
default_milestone = °Ë»ö·Î±× ±â´Éº£Å¸
default_priority = major
default_type = defect
default_version =
restrict_owner = false
[timeline]
changeset_long_messages = false
changeset_show_files = 0
default_daysback = 15
ticket_show_details = false
[trac]
authz_file =
authz_module_name =
base_url =
check_auth_ip = true
database = sqlite:db/trac.db
default_charset = EUC-KR
default_handler = TagsWikiModule
htdocs_location =
ignore_auth_case = false
mainnav = wiki,timeline,roadmap,browser,tickets,newticket,search
metanav = login,logout,settings,help,about
permission_store = DefaultPermissionStore
repository_dir = D:/repos/svn/test
repository_type = svn
timeout = 20
[wiki]
ignore_missing_pages = false
render_unsafe_content = false
split_page_names = false
}}}
==== ¸µÅ© ====
* °³³äžÀç
* [http://gyuha.tistory.com/3 Trac project management ( issue tracking system )]
* [http://openlook.org/blog/867 Trac°ú ÇÔ²²ÇÑ 2ÁÖ]
* [http://ncrash.springnote.com/pages/360782/attachments/148876 CRMSºÐ¼® ¹× ÅëÇÕÀúÀå¼Ò °³¹ß Àû¿ë ¹æ¾È ¿¬±¸]
* ¿ÜºÎ Trac ¿î¿µ»çÀÌÆ®
* [http://www.uos.ac.kr/index.jsp ¼¿ï½Ã¸³´ëÇб³] - [http://ai.uos.ac.kr/trac/ ¼¿ï½Ã¸³´ëÇб³ ÀΰøÁö´É ¿¬±¸½Ç]
* [http://tattertools.co.kr/ Å×ÅÍÅøÁî] - [http://dev.textcube.org/ ÅؽºÆ®Å¥ºê °³¹ß ¼¾ÅÍ ]
* [http://www.rubyonrails.org/ Ruby on Rails] - [http://dev.rubyonrails.org/ Rails Trac]
* [http://springide.org/blog/ Spring IDE] - [http://springide.org/project/wiki/SpringideGuide Spring IDE Guide - Trac]
* Trac ¼³Ä¡
* [http://eahn.tistory.com/12 TRAC ÇÁ·ÎÁ§Æ®°ü¸® ½Ã½ºÅÛ ¼³Ä¡ for Windows]
* enscript, sedµµ »ç¿ëÇÏ´ÂÁö üũÇغÁ¾ßÇÔ
* [http://nb.inode.co.nz/articles/TracSvnApacheDev.html Apache VirtualHost ºÎºÐ ¼³¸íÀÌ ÀߵǾî ÀÖ´Â ¹®¼]
* [http://aslongas.pe.kr/tt/entry/Windows-XP%EC%97%90-Trac-Subversion-%EB%B0%8F-MoniWiki-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0 Windows XP¿¡ Trac, Subversion ¹× MoniWiki ¼³Ä¡Çϱâ]
* [http://theeye.pe.kr/112 Áß¼Ò±Ô¸ð ÇÁ·ÎÁ§Æ® °³¹ß½Ã½ºÅÛ Trac]
== ÃÖÁ¾¸ñÇ¥´Â Áö¼ÓÀûÀÎ ÅëÇÕ ==
=== ÅëÇÕ ºôµå ¸Ó½Å ===
* ÅëÇÕ ºôµå ¸Ó½ÅÀº ¼ÒÇÁÆ®¿þ¾î¸¦ ºôµåÇÏ´Â °ÍÀ» ±× À¯ÀÏÇÑ Á¸Àç ¸ñÀûÀ¸·Î »ï´Â º°µµÀÇ ÄÄÇ»Å͸¦ ¸»ÇÕ´Ï´Ù. ÅëÇÕ ºôµå ÄÄÇ»ÅÍ¿¡¼ CI ¼¹ö°¡ µ¹¾Æ°¡°í, CI ¼¹ö´Â ¹öÀü °ü¸® ÀúÀå¼Ò¸¦ Æú¸µÇÕ´Ï´Ù.
=== Áö¼ÓÀûÀÎ ÅëÇÕÀÌ ¿ä±¸ÇÏ´Â ÄÄÆ÷³ÍÆ® ===
* ¹öÀü °ü¸® ÀúÀå¼Ò·ÎÀÇ ¿¬°á
* ºôµå ½ºÅ©¸³Æ®
* ¸î Á¾·ùÀÇ Çǵå¹é ¸ÞÄ¿´ÏÁò(À̸ÞÀÏ °°Àº)
* ¼Ò½º ÄÚµå º¯°æ ³»¿ªÀ» ÅëÇÕÇϱâ À§ÇÑ ÇÁ·Î¼¼½º(¼öÀÛ¾÷À¸·Î Çϵç, CI ¼¹ö¸¦ È°¿ëÇϵç)
=== ÅëÇÕ ¸Ó½Å Çǵå¹é ÀåÄ¡ ===
* Çǵå¹é ÀåÄ¡ °áÁ¤ Àü ³Ê¹«³ª ¸¹Àº Á¤º¸´Â Çǵå¹éÀÇ È¿°ú¸¦ ÁÙÀÌ´Â "¼ÒÀ½"ÀÌ µÉ ¼ö Àִٴ°ÍÀ» ¿°µÎÇÏ°í °³¹ßȯ°æÀ» Àß °í·ÁÇØ ÀûÀýÈ÷ ¼±ÅÃ
|| Çǵå¹é ÀåÄ¡ || ¼³¸í || image ||
|| À̸ÞÀÏ || ºôµå »óŸ¦ ¶§¿¡ ¸ÂÃç Á¦°øÇÑ´Ù. || [http://www.javaranch.com/journal/200409/images/buildfailed_email.jpg http://tbn0.google.com/images?q=tbn:7x_1DJORQSTJpM:http://www.javaranch.com/journal/200409/images/buildfailed_email.jpg] ||
|| RSS || ºôµå »óÅÂ¿Í °ü·ÃÇÑ °æ°í¸¦ RSS ¸®´õ±â·Î º¸³½´Ù. || [http://www-128.ibm.com/developerworks/java/library/j-ap11146/rss.jpg http://tbn0.google.com/images?q=tbn:sv4fWBQmY07bzM:http://www-128.ibm.com/developerworks/java/library/j-ap11146/rss.jpg] ||
|| SMS || ºôµå »óÅ¿¡ ´ëÇØ ¼¿Æù¿¡ ÅؽºÆ® ¸Þ½ÃÁö¸¦ º¸³½´Ù. || [http://www-128.ibm.com/developerworks/java/library/j-ap11146/sms.jpg http://tbn0.google.com/images?q=tbn:slfljECrsjmkSM:http://www-128.ibm.com/developerworks/java/library/j-ap11146/sms.jpg] ||
|| X10 || ½Ã°¢Àû ¹æ½ÄÀ¸·Î Çǵå¹éÀ» º¸³½´Ù. LAVA ·¥ÇÁ¿Í »¡°£ °æ°íµîÀÌ ´ëÇ¥ÀûÀÎ ¿¹ÀÌ´Ù || http://tbn0.google.com/images?q=tbn:K_CG7LadNqIsIM:http://www.ibm.com/developerworks/kr/library/j-ap11146/red-light.jpg ||
|| Ambient Orb || ºôµå »óŸ¦ ¾Ë·ÁÁÖ´Â ¶Ç ´Ù¸¥ ½Ã°¢ÀûÀÎ ¹æ½ÄÀÌ´Ù. ƯÁ¤ Á¤º¸¿¡ µû¶ó Ä¿½ºÅ͸¶ÀÌ¡ µÉ ¼ö ÀÖ´Ù. || http://tbn0.google.com/images?q=tbn:QBkfpLfPkTp4SM:http://www.ibm.com/developerworks/java/library/j-ap11297/ambientorb.gif http://tbn0.google.com/images?q=tbn:8T4rHr49J5pChM:http://agileskunkworks.org/images/RedOrb.jpg ||
|| ¸ð´ÏÅÍ || Windows ŽºÅ©¹Ù¿¡¼ ºôµå »óŸ¦ ¾Ë·ÁÁØ´Ù. || [http://www.ibm.com/developerworks/kr/library/j-ap11146/cctray-success.jpg http://tbn0.google.com/images?q=tbn:8dOL9gErA5B5nM:http://www.ibm.com/developerworks/kr/library/j-ap11146/cctray-success.jpg] ||
* À§ÀÇ Ç׸ñµéÀº È¿°úÀûÀÎ CI ½Ã½ºÅÛÀÇ ÇÙ½ÉÀ̶ó ÇÏ°Ú½À´Ï´Ù. ¹öÀü °ü¸® ½Ã½ºÅÛ¿¡ º¯°æ ³»¿ªÀÌ µé¾î¿Ã ¶§¸¶´Ù ÀÚµ¿ÈµÈ ºôµå°¡ ÀÛµ¿ÇÏ°í ÀÏ´Ü ¸¸µé¾î³õ°í ³ª¸é, CI ½Ã½ºÅÛ¿¡ ´Ù¸¥ ±â´ÉÀ» ³ÖÀ» ¼ö°¡ ÀÖ½À´Ï´Ù.
* ±âº»ÀûÀÎ CI ½Ã½ºÅÛÀÌ ±¸ÃàµÈ ÈÄ Ãß°¡ÇÒ ¼ö ÀÖ´Â ±â´É
* ¼Ò½ºÄÚµå ÄÄÆÄÀÏ
* Áö¼ÓÀûÀÎ ¼Ò½º ÄÚµå ÄÄÆÄÀÏÀº CIÀÇ °¡Àå ±âº»ÀûÀÌ°í ÀϹÝÀûÀΠƯ¡ Áß ÇϳªÀ̸ç Áö¼ÓÀûÀÎ ¼Ò½º ÄÚµå ÄÄÆÄÀÏÀº ¾ÆÁÖ ÈçÇÏ°Ô ÇÏ´Â ÀÏÀ̶ó CI¿Í µ¿ÀǾî·Î Ãë±Þ¹Þ´Â Á¤µµ
* µ¥ÀÌÅÍ º£À̽º ÅëÇÕ
* Å×ÀÌÅͺ£À̽º ¼Ò½ºÄÚµå-µ¥ÀÌÅÍ Á¤ÀÇ ¾ð¾î(DDL) ½ºÅ©¸³Æ®, µ¥ÀÌÅÍ Á¶ÀÛ ¾ð¾î(DML) ½ºÅ©¸³Æ®, ÀúÀå ÇÁ·Î½ÃÀú, ºÐÇÒ µîµî ¿ª½Ã ´Ù¸¥ ¼Ò½º ÄÚµå¿Í ¶È°°ÀÌ Ãë±Þ
* Å×½ºÆ®
* ÀÚµ¿ÈµÇ°í Áö¼ÓÀûÀÎ Å×½ºÆ®°¡ ±¸ºñµÇ¾î ÀÖÁö ¾ÊÀº CI´Â CI°¡ ¾Æ´Ï¶ó°í »ý°¢ÇÏ´Â »ç¶÷ÀÌ ¸¹Áö¸¸ Çʼö ±¸¼º¿ä¼Ò°¡ ¾Æ´Ïµí ±âº»ÀûÀÎ CIÀ» ±¸Ãà ÈÄ Àû¿ëÇØ ³ª°¡´Â ¸ñÇ¥Áß Çϳª·Î ¿°µÎÇØµÖ¾ß ÇÔ
* ÀÚµ¿ÈµÈ Å×½ºÆ®°¡ Á¸ÀçÇÒ ¶§ ¼ÒÇÁÆ®¿þ¾î¸¦ ¼öÁ¤ÇÏ´Â °³¹ßÀÚ´Â Á» ´õ È®½ÇÇÑ Àڽɰ¨À» °®°í °³¹ß¿¡ ÇÒ ¼ö ÀÖµµ·Ï µµ¿ÍÁÝ´Ï´Ù.
* °Ë»ç
* ÀÚµ¿ÈµÈ ÄÚµå °Ë»ç¸¦ ÅëÇØ ¿©·¯ ÄÚµù ±ÔÄ¢À» °Á¦ÇÔÀ¸·Î½á ¼ÒÇÁÆ®¿þ¾îÀÇ ÀüüÀûÀÎ Ç°ÁúÀ» ³ôÀÏ ¼ö ÀÖ½À´Ï´Ù.
* ´ëÇ¥ÀûÀÎ ÄÚµå °Ë»çµµ±¸·Î´Â ÀÚ¹Ù Äڵ带 °Ë»çÇÏ´Â CheckstyleÀÌ ÀÖÀ¸¸ç À̸¦ ÀÌ¿ëÇØ ÄÚµù Ç¥ÁØ°ú Ç°Áú ¸ÞÆ®¸¯À» Áö¼ÓÀûÀ¸·Î ¸ð´ÏÅ͸µÀÌ °¡´ÉÇÏ°Ô µµ¿ÍÁÝ´Ï´Ù.
* ¹èÆ÷
* °ÅÀÇ ´ëºÎºÐÀÇ ºôµå´Â ¹èÆ÷¸¦ ¸ñÀûÀ¸·Î ¼öÇàÇÕ´Ï´Ù.
* ¹èÆ÷¸¦ Áö¼ÓÀûÀ¸·Î ÇÏ°ÔµÇ¸é ¾î´À ¼ø°£ÀÌ¶óµµ ½ÇÁ¦·Î ÀÛµ¿ÇÏ´Â ¼ÒÇÁÆ®¿þ¾î¸¦ ¹èÆ÷ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹°·Ð ÀÌ°ÍÀÌ °¡´ÉÇÏ°Ô²û Çϱâ À§Çؼ´Â ¹öÀü °ü¸® ÀúÀå¼Ò¿¡¼ ¼Ò½º ÆÄÀÏÀ» üũ¾Æ¿ôÇÏ°í, ºôµå¸¦ ¼öÇàÇÏ°í Å×½ºÆ®¿Í °Ë»ç¸¦ ÀüºÎ ¼º°ø½ÃÅ°°í, ¸±¸®Áî¿¡ ²¿¸®Ç¥(tag)¸¦ ºÙÀ̸ç, ¹èÆ÷ ÆÄÀÏÀ» Àß ²Ù¸ç¾ß ÇÕ´Ï´Ù.
* CI ½Ã½ºÅÛÀÇ ÇÙ½É ¸ñÇ¥´Â Ç×»ó ÃÖ±Ù Äڵ带 °¡Áö°í ¼ÒÇÁÆ®¿þ¾î¸¦ ºôµåÇÏ°í Å×½ºÆ®ÇÏ´Â °ÍÀÔ´Ï´Ù.
* Áö¼ÓÀûÀÎ ÅëÇÕÀÌ ÁÖ´Â °¡Ä¡
* ÈçÈ÷ ¹ß»ýÇÏ´Â ÀϹÝÀûÀÎ À§ÇèÀ» ÁÙ¿©ÁØ´Ù
* ¹Ýº¹ÀûÀÎ ¼öÀÛ¾÷À» ÁÙ¿©ÁØ´Ù
* ¾ðÁ¦ ¾î´À ¶§¶óµµ ¹èÆ÷ÇÒ ¼ö ÀÖ´Â ¼ÒÇÁÆ®¿þ¾î¸¦ »ý¼ºÇس½´Ù
* ÇÁ·ÎÁ§Æ® °¡½Ã¼ºÀ» º¸´Ù ÁÁ°Ô ÇØÁØ´Ù
* °³¹ß ÆÀÀÌ ¼ÒÇÁÆ®¿þ¾î Á¦Ç°¿¡ ´ëÇØ º¸´Ù Å« ÀڽۨÀ» °®°Ô ÇØÁØ´Ù
== Q&A ==
== ¼¼¹Ì³ªÀÇ ¸ñÀû°ú ¹æÇ⼺ ==
* °³¹ßÀڵ鿡°Ô ¹«¾ùÀ» Àü´ÞÇÒ °ÍÀΰ¡?
* ÁÁÀº°³¹ßȯ°æÀÌ °³¹ßÀÚ¿Í ÇÁ·ÎÁ§Æ®¿¡°Ô °¡Á®´Ù ÁÖ´Â ÇýÅÃ(?), Áß¿ä Æ÷ÀÎÆ®´Â »îÀÇ Áú°ú Ç°ÁúÀÇ °³¼±¿¡ ÁÖ¾ÈÁ¡
* ¾î¶² ¹æ¹ýÀ¸·Î ¼³µæÇϸé ÁÁÀ»±î?
* Áö¼ÓÀûÀÎ ÅëÇÕ ½Ã½ºÅÛÀ» ÀÌ¿ëÇÑ »ç·Ê ¼Ò°³
* °ü·Ã µµ¼ÀÇ ±¸Àý Àοë
* '''¼¼¹Ì³ª¿¡ »ç¿ëµÉ ¼Ò½º´Â ¿ÀǼҽº¸¦ ÀÌ¿ëÇÏ¿© ÁøÇà'''
* daysago°¡ ÁÁÀº ¿¹Á¦°¡ µÉµí½ÍÀ½
* trac + subversion + continuous integration ¼Ò°³¸¦ ½Ç Àû¿ë¿¹¸¦ µé¾î ¼³¸í
* '''º»°ÝÀûÀÎ ¼¼¹Ì³ª¸¦ ½ÃÀÛÇϱâ Àü¿¡ ¾Æ·¡ÀÇ »ç·Ê¸¦ ¼Ò°³ÇÏ°í ÁøÇàÇÏ´Â °ÍÀÌ È¿°úÀûÀÎ Àü´Þ¿¡ Çʼö ¿ä¼Ò'''
* Visual C++À» ÀÌ¿ëÇØ software product¸¦ ¸¸µé¾î³»´Â °÷¿¡¼ cruisecontrol .net À¸·Î Àû¿ëÇÑ ¿¹Á¦
* ´©±º°¡°¡ ¼Ò½º¸¦ º¯°æÇÏ°í ó¸®ÇÏ°í Åð±ÙÇßÀ»¶§ ´ÙÀ½³¯ ÆÀ¿øÀÌ ºôµå¸¦ ¼öÇàÇßÀ»¶§ ºôµå°¡ ±úÁö´Â »óȲÀ» ¹Ù·Î ijġ
* Java¸¦ ÀÌ¿ëÇÑ web site°³¹ß¿¡¼µµ ¸¶Âù°¡Áö·Î Áö¼ÓÀûÀÎ ÅëÇÕ ºôµåÇÁ·Î¼¼½º¿¡¼ ¼³Á¤ÇصРÅ×½ºÆ® ¼öÆ®¸¦ °ÅÄ¡¸é¼ ¿¡·¯°¡ ¹ß»ýÇßÀ»¶§ÀÇ ´ëÀÀ ¿¹Á¦
* subversion »ç¿ë»ç·Ê ¹ßÇ¥³»¿ë ¿ä¾à
* Checkout, Update, CommitµîÀ» ½ÇÁ¦ ó¸®ÇÏ´Â UCC Á¦ÀÛ
* µÎ °³¹ßÀÚ°¡ ÇϳªÀÇ ¼Ò½º¸¦ µ¿½Ã¿¡ ¼öÁ¤ÇßÀ» ¶§ ´ëóÇÏ´Â »óȲ¹¦»ç UCC Á¦ÀÛ WinMerge¸¦ ÀÚ¿¬½º·´°Ô ¼Ò°³
* Subversion »óȲº° ¾ÆÀÌÄÜÀº ÷ºÎÀÚ·á·Î ¼Ò°³ÇÏ°í ¾ÆÀÌÄÜÀº ½ÇÁ¦ Àû¿ëÇØ »ç¿ëÇÏ¸é¼ ÇÊ¿äÇÑ ºÎºÐÀ̶ó°í °£·«ÇÏ°Ô ¼Ò°³
* ÈǸ¢ÇÑ Âü°í ÆäÀÌÁö
* ["Bazaar/Bazaar 5ºÐ °ÀÇ"]
* ¼³¹®Ç׸ñ
* ¾î¶² ¹æ¹ý·ÐÀ» ÆÀ¿¡ Àû¿ëÇÏ¿© »ç¿ëÇÏ°í ÀÖ´ÂÁö?
* ÇÁ·ÎÁ§Æ® ¿¡ÄڽýºÅÛ(°³¹ßȯ°æÀÇ È¿À²Àû °³¼±)Àº ¾ÖÀÚÀÏ ¹æ¹ý·ÐÀ» ÁöÇâÇÕ´Ï´Ù.
* ÇÁ·ÎÁ§Æ®¿¡ °³¹ßȯ°æÀ» °³¼±Çϱâ À§Çؼ Àû¿ëÇÏ°í ÀÖ´Â ½Ã½ºÅÛÀº?
* SUBVERSION
* À̽´ÃßÀû°ü¸®
* Áö¼ÓÀûÀÎ ÅëÇÕ
* ''¼³¹®À» ÅëÇØ µµÀÔÀü°ú ÈÄÀÇ ´À³¤Á¡À» ¹°¾îº¸´Â ½Ã°£À» °¡Á®º¸´Â°ÍÀÌ ¼¼¹Ì³ª¿¡ µµ¿òÀÌ µÉ²¨ °°À½''
* [http://www.dt.co.kr/contents.htm?article_no=2007111502010660611001 ü°èÀûÀ¸·Î °ü¸®ÇÏ´Â °ÍÀÌ Áß¿ä]
== Âü°íÀÚ·á - À¥ ==
* Agile
* [http://www.okjsp.pe.kr/upload/Agile_Voice.zip ±â¹ÎÇÑ ¹æ¹ý·Ð XP¿Í ±â¹ÎÇÑ ¹®È À̾߱⠰¿¬ ³ìÃë]
* Subversion
* [http://www.pyrasis.com/main/Subversion-HOWTO Subversion »ç¿ë HOWTO]
* [http://www.pyrasis.com/main/SubversionServerForWindows À©µµ¿ì¿¡¼ Subversion ¼¹ö ¿î¿µÇϱâ]
* [http://www.codeproject.com/w2k/SubversionApache.asp How to set up Subversion with Apache in Windows]
* [http://httpd.apache.org/docs/2.0/platform/windows.html#winsvc Apache ¼¹ö¸¦ ¼ºñ½º·Î µî·ÏÇϱâ]
* Áö¼ÓÀûÀÎ ÅëÇÕ
* [http://wiki.javajigi.net/pages/viewpage.action?pageId=2240 Eclipse¸¦ È°¿ëÇÑ È¿À²ÀûÀÎ ÆÀ °³¹ß ¹× ¹èÆ÷ Àü·«]
* [http://www.ibm.com/developerworks/kr/library/j-ap11146/index.html »ç¶÷À» À§ÇÑ ÀÚµ¿È: Áö¼ÓÀûÀÎ Çǵå¹é (ÇѱÛ)]
== Âü°íÀÚ·á - µµ¼ ==
* [http://www.developerfarm.co.kr/JSPWiki/Wiki.jsp?page=CI Áö¼ÓÀûÀÎ ÅëÇÕ]
* [http://www.developerfarm.co.kr/JSPWiki/Wiki.jsp?page=ShipIt Ship it! ¼º°øÀûÀÎ ¼ÒÇÁÆ®¿þ¾î °³¹ß ÇÁ·ÎÁ§Æ®¸¦ À§ÇÑ ½Ç¿ë °¡À̵å]
* [http://insightbook.springnote.com/pages/288650 ¹öÀü°ü¸® usnig CVS]
== ±âŸ ¸µÅ© ==
* http://kldp.org/node/37764
* http://elenoa.tistory.com/38
* http://www.pyrasis.com/blog/entry/CVSToSubersion
* http://en.wikipedia.org/wiki/Comparison_of_revision_control_software
=== Áö¼ÓÀûÀÎ ÅëÇÕ¿¡ °üÇÑ ±â»çµé ===
* http://monac.egloos.com/1656867
* http://moai.tistory.com/224
* http://kaistizen.net/EE/index.php/weblog/comments/columns_updated/
* http://kaistizen.net/EE/index.php/imaso/continuousintegration_2008_01/
== ¼¼¹Ì³ª Èı⠸µÅ© ==
* [http://okjsp.tistory.com/1165643381 okjspºÎ»ê¼¼¹Ì³ª-ÇÁ·ÎÁ§Æ® ¿¡ÄڽýºÅÛ; °³¹ßȯ°æ È¿À²Àû °³¼± Æí]
* [http://progressio.tistory.com/137 À°³â±Ù - OKJSP ºÎ»ê ¼¼¹Ì³ª]
== µµÀÔÇÏ¸é¼ ==
=== µµÀÔ ¹æ¾È ===
ÇöÀç±îÁö °¡Àå È¿°úÀûÀÎ µµÀÔ ¹æ¹ý(´Ü, È¥ÀÚ¼ ƯÁ¤ ¼Ö·ç¼ÇÀ̳ª À¥»çÀÌÆ®¸¦ ¸Ã°í Àִ°æ¿ì À¯¿ë)
1. º»ÀÎÀÌ ¸ÕÀú °³¹ßȯ°æ¿¡ ½áº¸°í ±âÁ¸ °³¹ßȯ°æ¿¡¼ ¿ä±¸µÇ´Â »çÇ×À» ÃæºÐÈ÷ ¸¸Á·ÇÏ´ÂÁö È®ÀÎ
1. °³¹ßȯ°æ º¯ÈÀÇ À̽´°¡ ¹ß»ýÇÏ¿´À»¶§ Àº±Ù½½Â½ ¾ê±â¸¦ ²¨³½´Ù
1. "º»ÀÎÀÇ °³¹ßȯ°æÀº ±×·¯ÇÑ À̽´¸¦ ÇؼÒÇÏ¿© ¿î¿µÇÏ°í ÀÖ´Ù°í..."
1. Èï¹ÌÀ¯¹ß°ú µ¿ÀÏÇÑ ¹®Á¦¿¡ ´ëÇÑ ÇØ°áÃ¥À» ü°èÀûÀ¸·Î Á¦½Ã
1. ÀÌ°ÍÀº wiki·Î Àû¿ë¹æ¾ÈÀ» ü°èÀûÀ¸·Î Á¤¸®ÇÏ´Â °ÍÀÌ Áß¿ä
=== InfoQ ===
Kenny±ºÀÌ ¼Ò°³ÇØ ÁØ »çÀÌÆ®Àε¥ '''Tracking change and innovation in the enterprise software development community'''¸¦ Ç¥¹æ
* ²À Àо¶ó°í ÇÑ article
* subversionÀ» ÆÀ¿¡ Àû¿ëÇÒ ¶§ ²À ¾Ë¾ÆµÎ¾î¾ß ÇÏ´Â ³»¿ë
* [http://www.infoq.com/articles/agile-version-control Version Control for Multiple Agile Teams]
* [http://www.infoq.com/news/2008/04/kniberg-agile-version-control Agile Version Control for Multi-Team Development]
* dscm ¾ê±âÇÏ¸é¼ ³ª¿Ô´ø ³»¿ë °°Àºµ¥ --;
* http://www.infoq.com/news/2007/12/multiple-projects-one-agile-team
* ÃÖ°íÀÇ »Ë»Ñ Mingle 2.0
* http://studios.thoughtworks.com/mingle-project-intelligence
=== Mingle ===
==== Install for windows ====
* 8080Æ÷Æ®·Î ¼³Ä¡¸¦ 8090À¸·Î º¯°æÇÑ ÈÄ ÇÁ·Î±×·¥ ¼³Ä¡ ¿Ï·á
* http://localhost:8090 Á¢¼Ó
* firefox·Î´Â Á¢±ÙÀÌ µÇ´Âµ¥ IE·Î ÇÒ °æ¿ì ÆäÀÌÁö°¡ ¶ßÁö ¾Ê´Â Çö»ó ¹ß»ý
* ¼³Ä¡ ¿Ï·áµÈ ÈÄ Áï½Ã Á¢±ÙÇϸé Á¢±Ù¾ÈµÇ´Ù°¡ 10ºÐÂë Áö³ª´Ï±î µÇµå¶ó´É -_-;
{{{
Internet Explorer¿¡¼ À¥ ÆäÀÌÁö¸¦ Ç¥½ÃÇÒ ¼ö ¾ø½À´Ï´Ù.
°¡´É¼ºÀÌ ³ôÀº ¿øÀÎ:
ÀÎÅͳݿ¡ ¿¬°áµÇ¾î ÀÖÁö ¾Ê½À´Ï´Ù.
À¥ »çÀÌÆ®¿¡ ¹®Á¦°¡ ¹ß»ýÇß½À´Ï´Ù.
ÁÖ¼Ò¿¡ ¿ÀŸ°¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù.
°¡´ÉÇÑ ÇØ°á ¹æ¹ý:
¿¬°á ¹®Á¦ Áø´Ü
Ãß°¡ Á¤º¸
}}}
* mysql°ú stmp ¼ÂÆà ÈÄ ¼³Ä¡ ¸¶¹«¸®
==== ¸µÅ© ====
* http://hwanysnote.blogspot.com/2008/02/buildix-complete-and-active-agile.html