#!jade Subversion ·¹ÆÛ·±½º ÀÌ ÀåÀº SubversionÀÇ ¿ÏÀüÇÑ ·¹ÆÛ·±½ºÀÔ´Ï´Ù. Ä¿¸àµå ¶óÀΠŬ¶óÀ̾ðÆ® (svn)(¿Í)°ú ±× ¸ðµç ¼­ºê Ä¿¸àµå, ÇÑÃþ ´õ ÀúÀå¼Ò(repository) °ü¸® ÇÁ·Î±×·¥ (svnadmin¿Ísvnlook)(¿Í)°ú ±× ¸ðµç ¼­ºê Ä¿¸àµåÀÔ´Ï´Ù. Subversion Ä¿¸àµå ¶óÀΠŬ¶óÀ̾ðÆ®: <command>svn</command> Ä¿¸àµå ¶óÀΠŬ¶óÀ̾ðÆ®¸¦ »ç¿ëÇÏ·Á¸é svn (ÀÌ)¶ó°í ÀÔ·ÂÇÏ°í ³ª¼­, »ç¿ëÇÏ°í ½ÍÀº ¼­ºê Ä¿¸àµå¸¦ ÀÔ·ÂÇØ ÁÖ¼¼¿ä. ³×, ±×·¸³×¿ä. ½ºÀ­Ä¡¸¦ »ç¿ëÇÒ ¶§¿¡´Â ¼­ºê Ä¿¸àµå´Â ºÒÇÊ¿äÇÕ´Ï´Ù. Á¶±Ý ´ÙÀ½¿¡ ±×°Í¿¡ Á¢ÇÕ´Ï´Ù. , ¾î¶² ½ºÀ­Ä¡³ª ´ë»óÀÌ µÈ´Ù Ÿ°ÙÀ¸·Î ºÙ¾îµµ ±×·¸½À´Ï´Ù — ¼­ºê Ä¿¸àµå¿Í ½ºÀ­Ä¡ÀÇ ¹×Àº ƯÁ¤ÀÇ ¼ø¼­´Â ¾ø½À´Ï´Ù. ¿¹¸¦ µé¾î svn status: (À»)¸¦ »ç¿ëÇÏ´Â °æ¿ì¿¡, ÀÌÇÏ´Â ¸ðµÎ À¯È¿ÇÕ´Ï´Ù: $ svn -v status $ svn status -v $ svn status -v myfile Ŭ¶óÀ̾ðÆ® Ä¿¸àµåÀÇ ÀÌ¿ë¹ý¿¡ ´ëÇؼ­´Â, Á» ´õ ¸¹Àº ¿¹°¡ ¿¡ ÀÖ¾î, ¼Ó¼ºÀÇ °ü¸®¿¡ ´ëÇؼ­´Â ¿¡ ÀÖ½À´Ï´Ù. <command>svn</command> ÀÇ ½ºÀ­Ä¡ Subversion ´Â ¼­ºê Ä¿¸àµå ¸¶´Ù ´Ù¸¥ ½ºÀ­Ä¡¸¦ °¡Á® ÀÖ½À´Ï´Ù¸¸, ¸ðµÎ ±Û·Î¹úÇÏ°Ô ÀÏÇÕ´Ï´Ù—Áï °¢°¢ÀÇ ½ºÀ­Ä¡´Â ÇÔ²² ÀÌ¿ëµÇ´Â ¼­ºê Ä¿¸àµå¿¡ °ü°è¾øÀÌ °°Àº ÀÇ¹Ì (À»)¸¦ °¡Áý´Ï´Ù. ¿¹¸¦ µé¾î () (Àº)´Â Ç×»ó, ¾î´À ¼­ºê Ä¿¸àµå¿Í ÇÔ²² »ç¿ëÇصµÀåȲÇÑ Ãâ·ÂÀ» ÀǹÌÇÕ´Ï´Ù. CMD ÆÄÀÏ°£ÀÇ Â÷À̸¦ Ç¥½ÃÇϱâ À§Çؼ­ »ç¿ëÇÏ´Â ¿ÜºÎ ÇÁ·Î±×·¥À» ÁöÁ¤ÇÕ´Ï´Ù. svn diff°¡ ±âµ¿µÇ¸é(ÀÚ), µðÆúÆ®¿¡¼­´Â unifid diff Çü½Ä ÀÎ SubversionÀÇ ³»ºÎ diff ¿£ÁøÀÌ ÀÌ¿ëµË´Ï´Ù. ¿ÜºÎ diff ÇÁ·Î±×·¥ (À»)¸¦ ÀÌ¿ëÇÏ°í ½ÍÀº °æ¿ì´Â,¸¦ »ç¿ëÇØ ÁÖ¼¼¿ä. ½ºÀ­Ä¡·Î diff ÇÁ·Î±×·¥À» ÁöÁ¤ÇÏ´Â Àϵµ·Î ¿É´Ï´Ù. (ÀÚ¼¼ÇÏ°Ô´Â ÀÌ ÀåÀÇ ³ªÁß¿¡ ¼³¸íÇÏ°Ú½À´Ï´Ù). CMD ÆÄÀÏÀ» merge Çϱâ À§Çؼ­ »ç¿ëÇÏ´Â ¿ÜºÎ ÇÁ·Î±×·¥À» ÁöÁ¤ÇÕ´Ï´Ù. Ä¿¸àµåÀÇ ½ÇÇàÀ» ±×´ë·Î ´õµë½À´Ï´Ù¸¸, ½ÇÁ¦ÀÇ µ¿ÀÛÀº ÇÏÁö ¾Ê½À´Ï´Ù —ÀÛ¾÷ Ä«ÇÇ¿¡ ´ëÇؼ­µµ, ÀúÀå¼Ò(repository)¿¡ ´ëÇÑ Ä¿¸àµå¿¡µµ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. CMD ·Î±× ¸Þ¼¼Áö³ª ¼Ó¼ºÄ¡¸¦ ÆíÁýÇϴµ¥ »ç¿ëÇÏ´Â ¿ÜºÎ ÇÁ·Î±×·¥À» ÁöÁ¤ÇÕ´Ï´Ù. ENC Subversion ¿¡ Ä¿¹ÔÀÇ ¸Þ¼¼Áö¸¦ ÁغñÇÑ charset·Î encode Çϵµ·Ï(µíÀÌ) Áö½ÃÇÕ´Ï´Ù. µðÆúÆ®´Â ´ç½ÅÀÇ operating systemÀÇ ¿ø·¡ÀÇ locale ·Î, Ä¿¹Ô ¸Þ¼¼Áö°³ÀÇ encodeÀÇ °æ¿ì¿¡´Â ±×°ÍÀ» ÁöÁ¤ÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. () "ARGS" Subverion °¡ ÆÄÀÏ°£ÀÇ Â÷À̸¦ ¾òÀ» ¶§¿¡ »ç¿ëÇÏ´Â ¿ÜºÎ diff Ä¿¸àµå¿¡ °Ç³×ÁÖÁö ¾Ê°í (ÀÌ)¶ó°í´Â ¾È µÇ´Â Çϳª ÀÌ»óÀÇ Àμö¸¦ ÁöÁ¤ÇÕ´Ï´Ù. º¹¼öÀÇ Àμö¸¦ °Ç³×ÁÖ°í ½Í´Ù °æ¿ì´Â, ±×°Íµé ¸ðµç °ÍÀ» ÀοëºÎÈ£·Î ¹­Áö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. (¿¹¸¦ µé¾î, svn diff --diff-cmd /usr/bin/diff -x "-b -E"). ÀÌ ½ºÀ­Ä¡´Â½ºÀ­Ä¡µµ ÁöÁ¤ÇßÀ» °æ¿ì ¿¡¸¶¼ÅÀÌ¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. () FILENAME ÁöÁ¤ÇÑ ¼­ºê Ä¿¸àµå¿¡ ´ëÇØ, ÀÌ ½ºÀ­Ä¡ÀÇ Àμö·Î¼­ °Ç³×ÁØ ÆÄÀÏÀÇ ³»¿ëÀÌ »ç¿ëµË´Ï´Ù. ƯÁ¤ÀÇ Ä¿¸àµå ¶Ç´Â Á¶ÀÛÀÇ ½ÇÇàÀ» °­Á¦ÇÕ´Ï´Ù. Subversion °¡ Åë»óÀ̶ó¸é °ÅºÎÇÏ´Â °Í °°Àº ¸î°³ÀÇ Á¶ÀÛÀÌ ÀÖ½À´Ï´Ù¸¸, ÀÌ °­Á¦ ½ºÀ­Ä¡¸¦ »ç¿ëÇØ, Subversion ¿¡±×°ÍÀ» Çϸé(ÀÚ) ¾î¶»°Ô µÇ´Â ÀÏÀÌ ÀÖÀ»±î´Â ¾Ë°í Àֱ⠶§¹®¿¡, ¾î·µç ±×°ÍÀ» ½ÃÄÑ Áà¶ó°í ÀüÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌ ½ºÀ­Ä¡´Â, ÀüÀÚ °øÀÛÀ̳ª ¹«¾ùÀΰ¡·Î, ¸¶Áö¸·¿¡ Àü¿øÀ» ³Ö´Â »óȲ¿¡ ´à½À´Ï´Ù—¹«¾ùÀ» ÇÏ·Á ÇÏ°í ÀÖ´ÂÁö Àß ÀÌÇØÇÏ°í ÀÖÁö ¾ÊÀ¸¸é ¹Ýµå½Ã ½ÈÀº ´«À» ´çÇÏ°ÚÁö¿ä. ()³ª () ¿É¼Ç¿¡ °Ç³×ÁÖ´Â Àǽɽº·¯¿î Àμö¸¦ ¿Ã¹Ù¸¥ °ÍÀ¸·Î¼­ °­Á¦ÀûÀ¸·Î ¹Þ¾ÆµéÀδ٠°°°Ô Áö½ÃÇÕ´Ï´Ù. µðÆúÆ®¿¡¼­´Â, Subversion ´Â ¿Ã¹Ù¸¥ ¼­ºê Ä¿¸àµå·Î ¾î´À Çؼ®ÇÏ´Â ´ë½Å¿¡, ±×·¯ÇÑ Àμö°¡ ½Ç¼öÀÌ´Ù°í ÇÏ¿© ¿¡·¯¸¦ »ý¼ºÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ¹öÀüÈ­ µÈ ÆÄÀÏÀÇ Æнº¸¦ () ¿É¼Ç¿¡ °Ç³×ÁÖ¸é(ÀÚ), Subversion ´Â ±× Æнº°¡ Á¶ÀÛ ´ë»óÀ¸·Î ÇØ ÀǵµµÇ°í ÀÖ¾ú´Ù°í »ý°¢ÇÏÁö ¾Ê°í , ±× Àμö¿¡´Â ½Ç¼ö°¡ ÀÖÀ¸¸é(ÀÚ) °£ÁÖ, ·Î±× ¸Þ¼¼Áö¸¦ À§ÇÑ ¹öÀüÈ­µÇ¾î ÀÖÁö ¾ÊÀº ¿øÆÄÀÏÀ» ÁغñÇÏ´Â °Í¿¡ ½ÇÆÐÇØ ¹ö¸³´Ï´Ù. ÀÚ½ÅÀÇ Àǵµ¸¦ ¼±¾ðÇØ, ÀÌ·± Á¾·ùÀÇ ¿¡·¯ (À»)¸¦ ¹«½ÃÇϱâ À§Çؼ­´Â,¿É¼ÇÀ» ·Î±× ¸Þ¼¼Áö (À»)¸¦ ¹Þ¾ÆµéÀÌ´Â Ä¿¸àµå¿¡ ´ëÇؼ­ ÁöÁ¤ÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. () Çϳª ÀÌ»óÀÇ ¼­ºê Ä¿¸àµå¿Í ÇÔ²² »ç¿ëÇØ, °¢°¢ÀÇ ¼­ºê Ä¿¸àµåÀÇ ÆíÀÔ ÇïÇÁ ÅؽºÆ®¸¦ Ç¥½ÃÇÕ´Ï´Ù. ÀÌ ½ºÀ­Ä¡¸¸À» ´Üµ¶À¸·Î »ç¿ëÇϸé(ÀÚ), ÀϹÝÀûÀÎ Ä¿¸àµå Ŭ¶óÀ̾ðÆ®ÀÇ ÇïÇÁ ÅؽºÆ®¸¦ Ç¥½ÃÇÕ´Ï´Ù. Â÷ºÐÀ» °è»êÇÒ °æ¿ì¿¡, È÷½ºÅ丮¿¡ ÁÖÀÇÇÕ´Ï´Ù. (´Ù¸¥ Ãâ·Â°ú) ¿¬°áÇϴµ¥ ÀûÇÕÇÑ Çü½Ä¿¡¼­ Ãâ·ÂÀ» Ç¥½ÃÇÕ´Ï´Ù. () MESSAGE Ä¿¸àµå ¶óÀλ󿡼­ Ä¿¹Ô ¸Þ¼¼Áö¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ ½ºÀ­Ä¡ÀÇ ³ªÁß¿¡, ¿¹¸¦ µé¾î: $ svn commit -m "They don't make Sunday. " ARG ARG ¸¦ »õ·Î¿î Ÿ°ÙÀ¸·Î¼­ ÀÌ¿ëÇÕ´Ï´Ù. ÀÎÁõ Á¤º¸(À¯Àú¸íÀ̳ª Æнº¿öµåµî)¸¦ Subversion °ü¸® µð·ºÅ丮¿¡ ij½¬ÇÏÁö ¾Ê°Ô Áö½ÃÇÕ´Ï´Ù. »èÁ¦µÈ ÆÄÀÏÀÇ Â÷ºÐÀ» Ç¥½ÃÇÏÁö ¾Ê°Ô Subversion¿¡ Áö½ÃÇÕ´Ï´Ù. µðÆúÆ®¿¡¼­´Â ÆÄÀÏÀ» »èÁ¦ÇßÀ» ¶§ÀÇsvn diffÀÇ Ãâ·ÂÀº, ÆÄÀÏÀº »èÁ¦µÇÁö ¾Ê°í Á¦·Î ¾Æ¸£¹ÙÀÌÆ®·Î ³²¾Æ ÀÖ´Â °Í°ú °°Àº ÇüÅ°¡ µË´Ï´Ù. svn:ignore ¼Ó¼º¿¡ ¼º³É Ç߱⠶§¹®¿¡ Åë»óÀ̶ó¸é »ý·« µÇ´Â °Í °°Àº ÆÄÀÏÀÇ ½ºÅ×ÀÌÅͽº À϶÷À» Ç¥½ÃÇÕ´Ï´Ù. ¿¡ ÇÑÃþ ´õ ÀÚ¼¼ÇÑ Á¤º¸°¡ ÀÖ½À´Ï´Ù. ÀÎÁõÀÌ ½ÇÆÐÇϰųª ÃæºÐÇÑ Çã°¡°¡ ¾øÀ» ¶§¿¡, ÀÎÁõ ¿ä±¸ÇÏ´Â °ÍÀ» ¾ïÁ¦ÇÕ´Ï´Ù. (¿¹¸¦ µé¾î, À¯Àú¸í°ú Æнº¿öµå) ÀÌ°ÍÀº, SubversionÀ» ÀÚµ¿ ½ºÅ©¸³Æ®Áß¿¡¼­ ½ÇÇàÇÏ°í ÀÖ´Â °Í °°Àº ¶§·Î ÀÎÁõ ¿ä±¸½ÃÅ°´Â °Íº¸´Ùµµ ´ÜÁö ½ÇÆÐÇÏ´Â ÆíÀÌ Æí¸®ÇÑ °æ¿ì¿¡ µµ¿òÀÌ µË´Ï´Ù. () ¼­ºê µð·ºÅ丮¿¡ ´ëÇؼ­ ¼­ºê Ä¿¸àµå¸¦ Àç±ÍÀûÀ¸·Î ½ÇÇàÇÏ´Â °ÍÀ» ¾ïÁ¦ÇÕ´Ï´Ù. ´ëºÎºÐÀÇ ¼­ºê Ä¿¸àµå´Â µðÆúÆ®·Î Àç±ÍÀûÀ¸·Î ½ÇÇà µË´Ï´Ù¸¸, ¸î°³ÀÇ ¼­ºê Ä¿¸àµå—º¸ÅëÀº, ÀÛ¾÷ Ä«ÇÇÀÇ º¯°æ¿¡ ´ëÇÑ »èÁ¦³ª Ãë¼Ò°¡ ÀϾ´Â °Í °°Àº °Í—´Â ±×·± °ÍÀº ¾ø½À´Ï´Ù. ARG ARG ¸¦ ³°Àº Ÿ°ÙÀ¸·Î¼­ ÀÌ¿ëÇÕ´Ï´Ù. PASS Ä¿¸àµå ¶óÀλ󿡼­ ÀÎÁõ¿ë Æнº¿öµå¸¦ ÁöÁ¤ÇÕ´Ï´Ù—ÀÌ°ÍÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é, ÇÊ¿äÇÑ Àå¼Ò¿¡¼­ Subversion ´Â Æнº¿öµå ÀÔ·ÂÀ» ¿ä±¸ÇØ ¿É´Ï´Ù. () ½ÇÇàÁß¿¡ Áß¿äÇÑ Á¤º¸¸¸À» Ç¥½ÃÇϵµ·Ï(µíÀÌ) Áö½ÃÇÕ´Ï´Ù. () ¼­ºê Ä¿¸àµå¸¦ ¼­ºê µð·ºÅ丮¿¡ ´ëÇؼ­ Àç±ÍÀûÀ¸·Î ½ÇÇàÇÑ´Ù °°°Ô ÇÕ´Ï´Ù. ´ëºÎºÐÀÇ ¼­ºê Ä¿¸àµå´Â µðÆúÆ®·Î Àç±ÍÀûÀÎ µ¿ÀÛÀ» ÇÕ´Ï´Ù. FROM TO [PATH...] svn switch¼­ºê Ä¿¸àµå¿Í ÇÔ²² »ç¿ëÇÏ´Â °ÍÀ¸·Î ÀÛ¾÷ Ä«ÇÇ ÇÏÁö¸¸ ÂüÁ¶ÇÏ°í ÀÖ´Â ÀúÀå¼Ò(repository)ÀÇ Àå¼Ò¸¦ º¯°æÇÕ´Ï´Ù. ÀÌ°ÍÀº, ÀúÀå¼Ò(repository)ÀÇ Àå¼Ò°¡ À̵¿Çصµ, ¹ú½á Á¸ÀçÇÏ°í ÀÖ´Â ÀÛ¾÷ Ä«ÇǸ¦ °è¼ÓÇØ ÀÌ¿ëÇÏ°í ½ÍÀº °æ¿ì ¿¡ Æí¸®ÇÕ´Ï´Ù. ¿¹·Î¼­svn switch¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. () REV ƯÁ¤ÀÇ Á¶ÀÛÀ¸·Î, ¸®ºñÀü(¶Ç´Â ¸®ºñÀüÀÇ ¹üÀ§)À» ¼³Á¤ÇÕ´Ï´Ù. ¸®ºñÀüÀº ¸®ºñÀü ½ºÀ­Ä¡ÀÇ Àμö·Î¼­ ¹øÈ£, Å°¿öµå, ÀÏÀÚ(ÀÌ °æ¿ì´Â ¾È¿Ü¸ð¸¦ »ç¿ëÇØ)ÀÇ ¾î¶² °ÍÀΰ¡·Î ÁöÁ¤ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ¸®ºñÀüÀ» µÑÁöÁ¤ÇÒ ¶§¿¡´Â ÄÚ·ÐÀ¸·Î ´Ü¶ôÁþ½À´Ï´Ù. ¿¹¸¦ µé¾î: $ svn log -r 1729 $ svn log -r 1729:HEAD $ svn log -r 1729:1744 $ svn log -r {12/04/01}:{2/17/02} $ svn log -r 1729:{2/17/02} ÀÚ¼¼ÇÏ°Ô´Â À» ºÁ ÁÖ¼¼¿ä. ÆÄÀÏÀ̳ª µð·ºÅ丮ÀÇ ¼Ó¼ºÀÇ ´ë½Å¿¡, ¸®ºñÀüÀÇ ¼Ó¼º¿¡ ´ëÇØ Á¶ÀÛÇϵµ·Ï(µíÀÌ) ÇÕ´Ï´Ù. ÀÌ ½ºÀ­Ä¡¸¦ »ç¿ëÇÏ´Â °æ¿ì´Â ()¸¦ »ç¿ëÇØ ¸®ºñÀüµµ °Ç³×ÁÙ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. ¹öÀüÈ­ÇÏÁö ¾Ê´Â ¼Ó¼º¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ °ÍÀº (À»)¸¦ ºÁ ÁÖ¼¼¿ä. () ÀÛ¾÷ Ä«ÇÇÀÇ ¾î´À ÆÄÀÏÀÌ ÃÖ½ÅÀϱîÀÇ Á¤º¸¸¦ Ç¥½ÃÇÕ´Ï´Ù. ÀÌ°ÍÀº ½ÇÁ¦·Î Àڽſ¡°Ô ÀÛ¾÷ ÆÄÀÏÀ» °»½ÅÇÏÁö ¾Ê½À´Ï´Ù—¸¸¾à svn update ¸¦ ½ÇÇàÇß´Ù°í Çϸé(ÀÚ), ¾î´À ÆÄÀÏÀÌ °»½ÅµÇ´ÂÁö¸¦ Ç¥½ÃÇÒ »ÓÀÔ´Ï´Ù. SubversionÀº ¾ö¹ÐÇÑ Àǹ̷ÐÀ» »ç¿ëÇÏ°Ô µË´Ï´Ù. ÀÚ¼¼ÇÏ°Ô´Â (À»)¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. FILENAME Subversion ¿¡ Ä¿¸àµå ¶óÀλóÀÇ ¸ðµç ÆÄÀÏÀ» À϶÷Ç¥½Ã ÇÏ´Â ´ë½Å¿¡ ÁöÁ¤ÇÑ ÆÄÀÏÀÇ À϶÷À» ÃëµæÇϵµ·Ï Áö½ÃÇÕ´Ï´Ù. NAME Ä¿¸àµå ¶óÀλ󿡼­ÀÇ ÀÎÁõ¿¡, ÁöÁ¤ÇÑ À¯Àú ¸íĪÀ» »ç¿ëÇϵµ·Ï(µíÀÌ) Áö½ÃÇÕ´Ï´Ù—±×·¸Áö ¾ÊÀ¸¸é, ÇÊ¿äÇÑ Àå¼Ò¿¡¼­, SubversionÀº ±× ÀÔ·ÂÀ» À¯Àú¿¡°Ô ¿ä±¸ÇÕ´Ï´Ù. () ¼­ºê Ä¿¸àµå ½ÇÇà½Ã¿¡, ÇÒ ¼ö ÀÖ´Â »ç³ª¿öÁö°í ¸¹Àº Á¤º¸¸¦ Ç¥½ÃÇϵµ·Ï(µíÀÌ) Áö½ÃÇÕ´Ï´Ù. Subversion ´Â, Ãß°¡ Çʵå, ¸ðµç ÆÄÀÏÀÇ »ó¼¼ Á¤º¸, µ¿ÀÛ ³»¿ë¿¡ ´ëÇÑ Ãß°¡ Á¤º¸µîÀ» Ç¥½ÃÇÏ°Ô µË´Ï´Ù. Ŭ¶óÀ̾ðÆ® ÇÁ·Î±×·¥ÀÇ ¹öÀü ¹øÈ£¸¦ Ç¥½ÃÇÕ´Ï´Ù. ÀÌ Á¤º¸´Â ¹öÀü ¹øÈ£¿Ü, Subversion ÀúÀå¼Ò(repository)¿¡ Ŭ¶óÀ̾ðÆ® ÇÁ·Î±×·¥ ÇÏÁö¸¸ ¾×¼¼½º Çϱâ À§Çؼ­ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â ¸ðµâÀÇ À϶÷µµ Ç¥½ÃÇÕ´Ï´Ù. XML Æ÷¸ËÀ¸·Î Ãâ·ÂÇÕ´Ï´Ù. <command>svn</command> ¼­ºê Ä¿¸àµå svn add ÆÄÀÏÀ̳ª µð·ºÅ丮¸¦ Ãß°¡ÇÕ´Ï´Ù. ¿ë¹ý svn add PATH... ¼³¸í ÆÄÀÏÀ̳ª µð·ºÅ丮¸¦ ÀÛ¾÷ Ä«ÇÇ¿¡ Ãß°¡ÇØ ÀúÀå¼Ò(repository)¿¡ Ãß°¡ÇÒ °ÍÀ» ¿¹¾à ÇÕ´Ï´Ù. ½ÇÁ¦ÀÇ Ãß°¡´Â Ä¿¹Ô ¸í·ÉÀ¸·Î ÀúÀå¼Ò(repository)¿¡ ¾÷·ÎµåÇÏ¿© ÀÌ·ç¾îÁý´Ï´Ù. Ä¿¹Ô Àü¿¡ ¸¶À½ÀÌ ¹Ù²î¾úÀ» °æ¿ì¿£ svn revert·Î Ãß°¡¸¦ Ãë¼ÒÇÒ ¼ö ÀÖ½À´Ï´Ù. º°¸í ¾øÀ½ º¯°æ ´ë»ó ÀÛ¾÷ Ä«ÇÇ ½ºÀ­Ä¡ --targets FILENAME --non-recursive (-N) --quiet (-q) ·Ê ÀÛ¾÷ Ä«ÇÇ¿¡ ÆÄÀÏÀ» Ãß°¡: $ svn add foo.c A foo.c µð·ºÅ丮¸¦ Ãß°¡ÇÒ ¶§ svn add ÀÇ µðÆúÆ®´Â Àç±ÍÀûÀÔ´Ï´Ù: $ svn add testdir A testdir A testdir/a A testdir/b A testdir/c A testdir/d ³»ºÎ¿¡ ÀÖ´Â ÆÄÀÏÀ» Ãß°¡ÇÏ´Â °Í ¾øÀÌ , µð·ºÅ丮¸¸ Ãß°¡ÇÑ´Ù ÀÏÀÌ »ý±é´Ï´Ù: $ svn add --non-recursive otherdir A otherdir svn cat ÁöÁ¤ÇÑ ÆÄÀÏ ¶Ç´Â URLÀÇ ³»¿ëÀ» Ç¥½ÃÇÕ´Ï´Ù. ¿ë¹ý svn cat TARGET... ¼³¸í ÁöÁ¤ÇÑ ÆÄÀÏ ¶Ç´Â URLÀÇ ³»¿ëÀ» Ç¥½ÃÇÕ´Ï´Ù. µð·ºÅ丮ÀÇ ³»¿ëÀÇ Ç¥½Ã¿¡ ´ëÇؼ­´Â,svn list ¸¦ ºÁ ÁÖ¼¼¿ä. º°¸í ¾øÀ½ º¯°æ ´ë»ó ¾øÀ½ ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º ¹ß»ý ½ºÀ­Ä¡ --revision (-r) REV --username USER --password PASS ·Ê üũ¾Æ¿ô ÇÏ´Â °Í ¾øÀÌ ÀúÀå¼Ò(repository)ÁßÀÇ readme.txt¸¦ Ç¥½ÃÇÏ°í ½Í´Ù °æ¿ì: $ svn cat http://svn.red-bean.com/repos/test/readme.txt This is a README file. You should read this. ÀÛ¾÷ Ä«ÇÇ°¡ ÃÖ½ÅÀº ¾Æ´Ï´Ù(Àΰ¡, ÀÛ¾÷ Ä«ÇÇ¿¡ ¹«¾ùÀΰ¡ ¼öÁ¤À» ´õÇß´Ù °æ¿ì) »óÅ·Î, ÀÛ¾÷ Ä«ÇÇ°¡ ÀÖ´Â ÆÄÀÏÀÇ HEAD ¸®ºñÀüÀ» º¸°í ½ÍÀº °æ¿ì, Æнº¸¦ ÁöÁ¤Çϸésvn cat ´Â ÀÚµ¿ÀûÀ¸·Î HEAD ¸®ºñÀü ¿¡ ¾×¼¼½º ÇÕ´Ï´Ù: $ cat foo.c This file is in my local working copy and has changes that I've made. $ svn cat foo.c Latest revision fresh from the repository! svn checkout ÀúÀå¼Ò(repository)·ÎºÎÅÍ ÀÛ¾÷ Ä«ÇǸ¦ üũ¾Æ¿ô ÇÕ´Ï´Ù. ¿ë¹ý svn checkout URL... [PATH] ¼³¸í ÀúÀå¼Ò(repository)·ÎºÎÅÍ ÀÛ¾÷ Ä«ÇǸ¦ üũ¾Æ¿ô ÇÕ´Ï´Ù. PATH °¡ »ý·« µÇ¸é Ä«ÇÇó·Î¼­ URLÀÇ º£À̽º¸íÀÌ »ç¿ëµË´Ï´Ù. º¹¼öÀÇ URL°¡ ÁöÁ¤µÇ¾úÀ» °æ¿ì¿¡´Â, °¢°¢ÀÌ, PATHÀÇ ¼­ºê µð·ºÅ丮¿¡ üũ¾Æ¿ô µË´Ï´Ù¸¸ ¿©±â¼­ÀÇ ¼­ºê µð·ºÅ丮ÀÇ À̸§Àº URLÀÇ º£À̽º¸íÀÌ µË´Ï´Ù. º°¸í co º¯°æ ´ë»ó ÀÛ¾÷ Ä«ÇÇ°¡ »õ·Ó°Ô ¸¸µé¾îÁý´Ï´Ù. ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º ¹ß»ý ½ºÀ­Ä¡ --revision (-r) REV --quiet (-q) --non-recursive (-N) --username USER --password PASS --no-auth-cache --non-interactive ·Ê 'mine'·Î ºÒ¸®´Â µð·ºÅ丮¿¡ ÀÛ¾÷ Ä«ÇǸ¦ üũ¾Æ¿ô: $ svn checkout file:///tmp/repos/test mine A mine/a A mine/b Checked out revision 2. $ ls mine µÎ ´Ù¸¥ µð·ºÅ丮¸¦ µÎ °³°³ÀÇ ÀÛ¾÷ Ä«ÇÇ¿¡ üũ¾Æ¿ô: $ svn checkout file:///tmp/repos/test file:///tmp/repos/quiz A test/a A test/b Checked out revision 2. A quiz/l A quiz/m Checked out revision 2. $ ls quiz test µÎ ´Ù¸¥ µð·ºÅ丮¸¦ µÎ °³°³ÀÇ ÀÛ¾÷ Ä«ÇÇ¿¡ üũ¾Æ¿ô ÇÏÁö¸¸, ¾çÂÊ ¸ðµÎ 'working-copies'·Î ºÒ¸°´Ù µð·ºÅ丮¾È¿¡ ¸¸µç´Ù: $ svn checkout file:///tmp/repos/test file:///tmp/repos/quiz working-copies A working-copies/test/a A working-copies/test/b Checked out revision 2. A working-copies/quiz/l A working-copies/quiz/m Checked out revision 2. $ ls working-copies üũ¾Æ¿ôÀ» Áß´ÜÇÑ´Ù(°¡¸¶Å¸´Â, ³×Æ®¿öÅ© Á¢¼ÓÀÇ ºÒÆí µî¿¡ ÀÇÇØ Ã¼Å©¾Æ¿ôÀÌ Áߴܵɱî ÇÒ) °æ¿ì, Çѹø ´õ ¼ø¼öÇÑ Ã¼Å©¾Æ¿ôÀ» ½ÇÇàÇصµ, ºÒ¿ÏÀüÇÑ ÀÛ¾÷ Ä«ÇǸ¦ °»½ÅÇÏ´Â °Íµµ Àç°³ÇÒ ¼ö ÀÖ½À´Ï´Ù: $ svn checkout file:///tmp/repos/test test A test/a A test/b ^C svn: The operation was interrupted svn: caught SIGINT $ svn checkout file:///tmp/repos/test test A test/c A test/d ^C svn: The operation was interrupted svn: caught SIGINT $ cd test $ svn update A test/e A test/f Updated to revision 3. svn cleanup ÀÛ¾÷ Ä«ÇǸ¦ Àç±ÍÀûÀ¸·Î Á¤»óÈ­ÇÑ´Ù. ¿ë¹ý svn cleanup [PATH...] ¼³¸í ÀÛ¾÷ Ä«ÇǸ¦ Àç±ÍÀûÀ¸·Î Á¤»óÈ­Çϱâ À§ÇØ(¶§¹®¿¡), Á¶ÀÛÀÌ ¹Ì¿Ï·áÀÇ ¶ôÀ» »èÁ¦ÇÕ´Ï´Ù. ÀÛ¾÷ Ä«ÇÇ ¶ô¿¡·¯°¡ ¹ß»ýÇßÀ» ¶§¿¡´Â, ÀÌ Ä¿¸àµå¸¦ ½ÇÇàÇØ, ¶ôÀ» ÇØÁ¦ÇØ, ÀÛ¾÷ Ä«ÇǸ¦ Á¤»óÀûÀ¸·Î µÇµ¹·Á ÁÖ¼¼¿ä. (À»)¸¦ ºÁ ÁÖ¼¼¿ä. º°¸í ¾øÀ½ º¯°æ ´ë»ó ÀÛ¾÷ Ä«ÇÇ ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º ¹ß»ýÇÏÁö ¾Ê´Â´Ù ½ºÀ­Ä¡: ¾øÀ½ ·Ê svn cleanup ´Â ¾Æ¹«°Íµµ Ãâ·ÂÇÏÁö ¾Ê±â ¶§¹®¿¡, ±×´ÙÁö ¿¹´Â ¾ø½À´Ï´Ù. ¸¸¾à, PATH ¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é, '. '¸¦ ´ë½Å¿¡ »ç¿ëÇÕ´Ï´Ù. $ svn cleanup $ svn cleanup /path/to/working-copy svn commit ÀÛ¾÷ Ä«ÇÇÀÇ º¯°æÁ¡À» ÀúÀå¼Ò(repository)¿¡ º¸³À´Ï´Ù. ¿ë¹ý svn commit [PATH...] ¼³¸í ÀÛ¾÷ Ä«ÇÇÀÇ º¯°æÁ¡À» ÀúÀå¼Ò(repository)¿¡ º¸³À´Ï´Ù. Àΰ¡, ÀÇ ¿É¼ÇÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é svn ´Â ¿¡µðÅ͸¦ ±âµ¿ÇØ, À¯Àú¿¡°Ô Ä¿¹Ô ¸Þ¼¼Áö¸¦ ÀÛ¼º½Ãŵ´Ï´Ù. ¿¡ ÀÖ´Ù editor-cmd ÀÇ ÀåÀ» ºÁ ÁÖ¼¼¿ä. Ä¿¹Ô 󸮸¦ ½ÃÀÛÇØ Subversion°¡ ¸Þ¼¼Áö ÀÛ¼ºÀ» À§ÇÑ ¿¡µðÅ͸¦ ±âµ¿ ÇÑ ´ÙÀ½¿¡µµ ¾ÆÁ÷ º¯°æÀ» Ä¿¹ÔÇÏÁö ¾Ê°í Áß´ÜÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. Ä¿¹ÔÀ» Ãë¼ÒÇÏ°í ½Í´Ù¸é Ä¿¹Ô ¸Þ¼¼Áö¸¦ º¸Á¸ÇÏÁö ¾Ê°í ´ÜÁö ¿¡µðÅ͸¦ Á¾·á ÇØ ÁÖ¼¼¿ä. SubversionÀº Ä¿¹ÔÀ» Áß´ÜÇÏ´ÂÁö, ¸Þ¼¼Áö¾øÀÌ °è¼Ó ÇÏ´ÂÁö, ¸Þ¼¼Áö¸¦ ÀçÆíÁýÇұ (µé)¹°¾î ¿É´Ï´Ù. º°¸í ci ci (short for check in ÀÇ ´ÜÃàÇüÀ¸·Î, coÀÇ ´ÜÃàÀÌ ¾Æ´Õ´Ï´Ù. co´ÂcheckoutÀÇ ´ÜÃàÇüÀÔ´Ï´Ù. ) º¯°æ ´ë»ó ÀÛ¾÷ Ä«ÇÇ, ÀúÀå¼Ò(repository) ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º ¹ß»ý ½ºÀ­Ä¡ --message (-m) TEXT --file (-F) FILE --quiet (-q) --non-recursive (-N) --targets FILENAME --force-log --username USER --password PASS --no-auth-cache --non-interactive --encoding ENC ·Ê Ä¿¸àµå ¶óÀÎÀ¸·Î ÁöÁ¤ÇÑ Ä¿¹Ô ¸Þ¼¼Áö¿Í Ä¿·±Æ® µð·ºÅ丮 (. )(À»)¸¦ ¾Ï¹¬ÀÇ Å¸°ÙÀ¸·Î¼­ ´Ü¼øÇÑ º¯°æÀ» Ä¿¹ÔÇÕ´Ï´Ù: $ svn commit -m "added howto section. " Sending a Transmitting file data . Committed revision 3. ÆÄÀÏfoo.c (Ä¿¸àµå ¶óÀÎÀ¸·Î ¸í½ÃÀûÀ¸·Î ÁöÁ¤)ÀÇ º¯°æÁ¡À», ÆÄÀÏmsgÀÇ ³»¿ëÀ» Ä¿¹Ô ¸Þ¼¼Áö¿Í ÇØ Ä¿¹Ô: $ svn commit -F msg foo.c Sending foo.c Transmitting file data . Committed revision 5. Ä¿¹Ô ¸Þ¼¼Áö·Î¼­·Î ÁöÁ¤ÇÑ ÆÄÀÏÀÌ ¹öÀü °ü¸®ÇÏ¿¡ ÀÖ´Â °æ¿ì, ½ºÀ­Ä¡¸¦ »ç¿ëÇÒ ÇÊ¿ä°¡ ÀÖ´Ù: $ svn commit --file file_under_vc.txt foo.c svn: The log message file is under version control svn: Log message file is a versioned file; use `--force-log' to override. $ svn commit --force --file-log file_under_vc.txt foo.c Sending foo.c Transmitting file data . Committed revision 6. »èÁ¦ ¿¹°í ÆÄÀÏÀ» Ä¿¹Ô: svn commit -m "removed file 'c'. " Deleting c Committed revision 7. svn copy ÀÛ¾÷ Ä«Çdzª ÀúÀå¼Ò(repository)ÁßÀÇ, ÆÄÀÏÀ̳ª µð·ºÅ丮¸¦ Ä«ÇÇ. ¿ë¹ý svn copy SRC DST ¼³¸í ÀÛ¾÷ Ä«ÇÇ ¶Ç´Â ÀúÀå¼Ò(repository)ÁßÀÇ ÆÄÀÏÀ» Ä«ÇÇÇÕ´Ï´Ù. SRC ¿Í DST ´Â, ÀÛ¾÷ Ä«ÇÇ(WC) »óÀÇ Æнº·Îµµ, URL¿¡¼­µµ ±¦Âú½À´Ï´Ù: WC -> WC Ãß°¡¿ëÀ¸·Î ÆÄÀÏÀ» Ä«ÇÇÇØ, Ãß°¡ ¿¹°íÇÕ´Ï´Ù. (with history). WC -> URL WCÀÇ Ä«ÇǸ¦ Á÷Á¢ URL¿¡ Ä¿¹Ô. URL -> WC URL¸¦ WC¿¡ üũ¾Æ¿ô ÇØ, Ãß°¡ ¿¹°íÇÑ´Ù. URL -> URL ¿ÏÀüÇÑ ¼­¹ö»ó¸¸¿¡¼­ÀÇ Ä«ÇÇ. ÀÌ°ÍÀº º¸Åë ºê·£Ä¡(branch)³ª ű׿¡ ÀÌ¿ëµË´Ï´Ù. ÆÄÀÏÀº ÇϳªÀÇ ÀúÀå¼Ò(repository)ÀÇ ³»ºÎ¿¡¼­¸¸ Ä«ÇÇ °¡´ÉÇÕ´Ï´Ù. SubversionÀº ÀúÀå¼Ò(repository)°£ Ä«ÇǸ¦ ¼­Æ÷Æ®ÇÏ°í ÀÖÁö ¾Ê½À´Ï´Ù. º°¸í cp º¯°æ ´ë»ó Ä«ÇÇó°¡ URL ÀÎ °æ¿ì´Â ÀúÀå¼Ò(repository). Ä«ÇÇó°¡ ÀÛ¾÷ Ä«ÇÇÀÇ ÆнºÀÎ °æ¿ì´Â ÀÛ¾÷ Ä«ÇÇ. ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º Ä«ÇÇ¿ø ¶Ç´Â Ä«ÇÇó°¡ ÀúÀå¼Ò(repository)ÀÎÁö, ¼Ò½º ¸®ºñÀü ¹øÈ£¸¦ ÂüÁ¶ÇÒ ÇÊ¿ä°¡ ÀÖ´Â °æ¿ì¿¡´Â ¹ß»ý. ½ºÀ­Ä¡ --message (-m) TEXT --file (-F) FILE --revision (-r) REV --quiet (-q) --username USER --password PASS --no-auth-cache --non-interactive --encoding ENC ·Ê ÀÛ¾÷ Ä«ÇÇÁßÀÇ ÆÄÀÏ ¶Ç´Â µð·ºÅ丮¸¦ Ä«ÇÇ( Ä«ÇÇ ¿¹°í¸¸—´ÙÀ½ÀÇ Ä¿¹Ô±îÁö ÀúÀå¼Ò(repository)¿¡´Â ¾Æ¹«°Íµµ ÀϾÁö ¾Ê´Â´Ù): $ svn copy foo.txt bar.txt A bar.txt $ svn status A + bar.txt ÀúÀå¼Ò(repository)ÁßÀÇ URL ¿¡ ÀÛ¾÷ Ä«ÇÇÁßÀÇ ÆÄÀÏ ¶Ç´Â µð·ºÅ丮 (À»)¸¦ Ä«ÇÇ(µ¿½Ã¿¡ Ä¿¹ÔµÇ¹Ç·Î, Ä¿¹Ô ¸Þ¼¼Áö¸¦ ÁöÁ¤ÇÒ ÇÊ¿ä ÀÖ¾î): $ svn copy near.txt file:///tmp/repos/test/far-away.txt -m "Remote copy. " Committed revision 8. ÀúÀå¼Ò(repository)ÀÇ ÆÄÀÏ ¶Ç´Â µð·ºÅ丮¸¦ ÀÛ¾÷ Ä«ÇÇ¿¡ Ä«ÇÇ(Ä«ÇÇÀÇ ¿¹°í¸¸—´ÙÀ½ÀÇ Ä¿¹Ô±îÁö ÀúÀå¼Ò(repository)¿¡´Â ¾Æ¹«°Íµµ ÀϾÁö ¾Ê´Â´Ù): ÀÌ°ÍÀº ÀúÀå¼Ò(repository)ÁßÀÌ Á×Àº ÆÄÀÏÀ» restore½ÃÅ°´Â ÃßõÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù $ svn copy file:///tmp/repos/test/far-away near-here A near-here ±×¸®°í ¸¶Áö¸·¿¡ µÎ °³ÀÇ URLÀÇ »çÀÌ¿¡ Ä«ÇÇÇÏ´Â ¹æ¹ý: $ svn copy file:///tmp/repos/test/far-away file:///tmp/repos/test/over-there -m "remote copy. " Committed revision 9. ÀúÀå¼Ò(repository)ÁßÀÇ ¸®ºñÀü¿¡ ÅÂ±× Áþ°í ÇÏ´Â Á¦ÀÏ °£´ÜÇÑ ¹æ¹ý — ±× ¸®ºñÀü(º¸ÅëÀº HEAD)À» ÅÂ±× Áþ°í µÇ¾ú´Ù µð·ºÅ丮¿¡, ´ÜÁö svn copy ÇÑ´Ù. $ svn copy file:///tmp/repos/test/trunk file:///tmp/repos/test/tags/0. 6.32-prerelease -m "tag tree" Committed revision 12. ±× ű׸¦ ÀØ´Â °ÍÀ» ½ÅÆÄÀÏ ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù — ¾ðÁ¦¶óµµ ³°Àº ¸®ºñÀüÀ» ÁöÁ¤ÇØ ÅÂ±× ºÙÀÌ°í ÇÏ´Â °ÍÀÌ ÇÒ ¼ö ÀÖ½À´Ï´Ù: $ svn copy -r 11 file:///tmp/repos/test/trunk file:///tmp/repos/test/tags/0. 6.32-prerelease -m "Forgot to tag at rev 11" Committed revision 13. svn delete ÀÛ¾÷ Ä«Çdzª ÀúÀå¼Ò(repository)·ÎºÎÅÍ ÆÄÀÏ ¶Ç´Â µð·ºÅ丮¸¦ »èÁ¦ÇÕ´Ï´Ù. ¿ë¹ý svn delete PATH... svn delete URL... ¼³¸í PATH·Î ÁöÁ¤µÈ ÆÄÀÏ ¶Ç´Â µð·ºÅ丮´Â ´ÙÀ½ÀÇ Ä¿¹Ô ±×¸®°í »èÁ¦ÇÏ´Â °ÍÀ» ¿¹°íÇÕ´Ï´Ù. ÆÄÀÏ(¿Í ¾ÆÁ÷ Ä¿¹ÔÇÏ°í ÀÖÁö ¾Ê´Ù µð·ºÅ丮)´Â Áï½Ã ÀÛ¾÷ Ä«ÇǷκÎÅÍ »èÁ¦µË´Ï´Ù. ÀÌ Ä¿¸àµå´Â ¹öÀüÈ­µÇ¾î ÀÖÁö ¾ÊÀº°¡ ¼öÁ¤µÇ¾î ÀÖÁö ¾ÊÀº °Í¿¡ ´ëÇؼ­´Â µ¿ÀÛÇÏÁö ¾Ê½À´Ï´Ù. ½ºÀ­Ä¡¸¦ »ç¿ëÇϸé ÀÌ µ¿ÀÛÀ» º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù. URL·Î ÁöÁ¤µÈ ÆÄÀÏ ¶Ç´Â µð·ºÅ丮´Â Á÷Á¢ Ä¿¹ÔÀ» ¹ßÇàÇÏ´Â ÇüÅ·Π»èÁ¦µË´Ï´Ù. º¹¼öÀÇ URL ´Â ´ÜÀÏÀÇ Æ®·£Àè¼Ç(transaction)¿Í ÇØ ºÒºÐÇÒ¿¡ Ä¿¹ÔµË´Ï´Ù. º°¸í del, remove, rm º¯°æ ´ë»ó ÆÄÀÏ¿¡ ´ëÇؼ­ ½ÇÇàÇßÀ» °æ¿ì´Â ÀÛ¾÷ Ä«ÇÇ. URL¿¡ ´ëÇؼ­ ½ÇÇàÇßÀ» °æ¿ì´Â ÀúÀå¼Ò(repository) ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º URL¿¡ ´ëÇؼ­ Á¶ÀÛÇßÀ» °æ¿ì¸¸ ¹ß»ý ½ºÀ­Ä¡ --force --force-log --message (-m) TEXT --file (-F) FILE --quiet (-q) --targets FILENAME --username USER --password PASS --no-auth-cache --non-interactive --encoding ENC ·Ê svn ¸¦ »ç¿ëÇØ ÀÛ¾÷ Ä«ÇǷκÎÅÍ ÆÄÀÏÀ» »èÁ¦Çϸé(ÀÚ), ´ÜÁö »èÁ¦°¡ ¿¹°íµÉ »ÓÀÔ´Ï´Ù. ÆÄÀÏÀº ´ÙÀ½ÀÇ Ä¿¹Ô ±×¸®°í ÀúÀå¼Ò(repository)·ÎºÎÅÍ »èÁ¦µË´Ï´Ù. $ svn delete myfile D myfile $ svn commit -m "Deleted file 'myfile'. " Deleting myfile Transmitting file data . Committed revision 14. URL¸¦ »èÁ¦ÇÕ´Ï´Ù¸¸, ±×°ÍÀº Áï½Ã ÀϾ¹Ç·Î ·Î±× ¸Þ¼¼Áö¸¦ ÁöÁ¤ÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù: $ svn delete -m "Deleting file 'yourfile'" file:///tmp/repos/test/yourfile Committed revision 15. ÀÌ ¿¹´Â ÀÛ¾÷ Ä«ÇÇ¿¡ ¼öÁ¤ÀÌ ÀÖ´Â ÆÄÀÏÀ» °­Á¦ »èÁ¦ÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù: $ svn delete over-there svn: Attempting restricted operation for modified resource svn: Use --force to override this restriction svn: 'over-there' has local modifications $ svn delete --force over-there D over-there svn diff µÎ °³ÀÇ Æнºµ¿¾ÈÀÇ Â÷ÀÌÁ¡À» Ç¥½ÃÇÕ´Ï´Ù. ¿ë¹ý svn diff [-r N[:M]] [TARGET...] svn diff URL1[@N] URL2[@M] ¼³¸í µÎ °³ÀÇ Æнºµ¿¾ÈÀÇ Â÷ÀÌÁ¡À» Ç¥½ÃÇÕ´Ï´Ù. °¢°¢ÀÇ TARGET ´Â ÀÛ¾÷ Ä«ÇÇ Æнº³ª URLÀÔ´Ï´Ù. ¸¸¾à TARGET¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é '. '°¡ »ç¿ëµË´Ï´Ù. TARGET °¡ URL¶ó¸é ¸®ºñÀü N¿Í M´Â¸¦ »ç¿ëÇØ ÁöÁ¤µË´Ï´Ù. TARGET°¡ ÀÛ¾÷ Ä«ÇÇ Æнº¶ó¸é, ½ºÀ­Ä¡ÀÇ Àǹ̴ ÀÌÇÏ¿Í °°ÀÌ µË´Ï´Ù: --revision N:M ¼­¹ö´Â TARGET@N ¿Í TARGET@M ¸¦ ºñ±³ÇÕ´Ï´Ù. --revision N Ŭ¶óÀ̾ðÆ®´Â TARGET@N¿Í ÀÛ¾÷ Ä«ÇǸ¦ ºñ±³ÇÕ´Ï´Ù. (no --revision) Ŭ¶óÀ̾ðÆ®´Â TARGETÀÇ º£À̽º ¸®ºñÀü°ú ÀÛ¾÷ Ä«ÇǸ¦ ºñ±³ÇÕ´Ï´Ù. ´Ù¸¥ ±¸¹®À» »ç¿ëÇϸé(ÀÚ) ¼­¹ö´Â °¢°¢ ¸®ºñÀü N¿Í M¿¡ ÀÖ´Â URL1¿Í URL2 (À»)¸¦ ºñ±³ÇÕ´Ï´Ù. ¸¸¾à N³ª M°¡ »ý·« µÇ¸é HEADÀÇ °ªÀÌ »ç¿ëµË´Ï´Ù. º°¸í di º¯°æ ´ë»ó ¾øÀ½ ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º Â÷ÀÌÁ¡À» ¾Æ´Âµ¥ ÇÊ¿äÇÑ °æ¿ì´Â ¹ß»ýÇÕ´Ï´Ù. ´Ù¸¸ ÀÛ¾÷ Ä«ÇÇÀÇ BASE ¸®ºñÀüÀ» ÃëµæÇÏ´Â °æ¿ì´Â Á¦¿ÜÇÕ´Ï´Ù. ½ºÀ­Ä¡ --revision (-r) REV --extensions (-x) "ARGS" --non-recursive (-N) --diff-cmd CMD --username USER --password PASS --no-auth-cache --non-interactive --no-diff-deleted ·Ê BASE ¸®ºñÀü°ú ÀÛ¾÷ Ä«ÇǸ¦ ºñ±³ÇÕ´Ï´Ù. (svn diff ÀÇ Á¦ÀÏ ÀÚÁÖ ÀÖ´Â »ç¿ë¹ý): $ svn diff COMMITTERS Index: COMMITTERS =================================================================== --- COMMITTERS (revision 4404) +++ COMMITTERS (working copy) ÀÛ¾÷ Ä«ÇÇÀÇ º¯°æÀ» ÀÌÀüÀÇ ¸®ºñÀü°ú ºñ±³ÇÏ´Â ¹æ¹ý: $ svn diff -r 3900 COMMITTERS Index: COMMITTERS =================================================================== --- COMMITTERS (revision 3900) +++ COMMITTERS (working copy) ¸®ºñÀü 3000À¸·Î ¸®ºñÀü 3500À»'@'±¸¹®À» »ç¿ëÇØ ºñ±³: $ svn diff http://svn.collab.net/repos/svn/trunk/COMMITTERS@3000 http://svn.collab.net/repos/svn/trunk/COMMITTERS@3500 Index: COMMITTERS =================================================================== --- COMMITTERS (revision 3000) +++ COMMITTERS (revision 3500) … ¸®ºñÀü 3000À¸·Î ¸®ºñÀü 3500À» ¹üÀ§ ÁöÁ¤À¸·Î ºñ±³( ÀÌ °æ¿ì´Â ÇϳªÀÇ URL¸¸À» °Ç³×ÁÖ¸é µÈ´Ù): $ svn diff -r 3000:3500 http://svn.collab.net/repos/svn/trunk/COMMITTERS Index: COMMITTERS =================================================================== --- COMMITTERS (revision 3000) +++ COMMITTERS (revision 3500) ÀÛ¾÷ Ä«ÇÇ°¡ ÀÖ´Â °æ¿ì, ±ä URL ÁöÁ¤ÇÏ´Â °Í ¾øÀÌ Â÷ÀÌÁ¡À» ÃëµæÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù: $ svn diff -r 3000:3500 COMMITTERS Index: COMMITTERS =================================================================== --- COMMITTERS (revision 3000) +++ COMMITTERS (revision 3500) CMD ¸¦ »ç¿ëÇØ ¿ÜºÎ diff ÇÁ·Î±×·¥¿¡ Á÷Á¢ Àμö¸¦ °Ç³×ÁÝ´Ï´Ù svn diff --diff-cmd /usr/bin/diff -x "-i -b" COMMITTERS Index: COMMITTERS =================================================================== 0a1, 2 > This is a test > svn export µð·ºÅ丮 Æ®¸®ÀÇ export ¿ë¹ý svn export [-r REV] URL [PATH] svn export PATH1 PATH2 ¼³¸í ÃÖÃÊÀÇ ±¸¹®¿¡¼­´Â ÁöÁ¤µÈ URLÀÇ ÀúÀå¼Ò(repository)·ÎºÎÅÍ µð·ºÅ丮 Æ®¸®¸¦ export ÇÕ´Ï´Ù. ÀÌ Â÷ÀÌ, REV °¡ ÁöÁ¤µÇ¸é ¸®ºñÀü REV ·ÎºÎÅÍ, ±×·¸Áö ¾ÊÀ¸¸é HEADÀÇ ¸®ºñÀüÀÌ ÀÌ¿ëµÇ¾î °á°ú´Â PATH¿¡ Ãâ·ÂµË´Ï´Ù. PATH°¡ »ý·« µÇ¸é URLÀÇ ¸¶Áö¸· ºÎºÐÀÌ ·ÎÄà µð·ºÅ丮 ¸íĪÀ¸·Î¼­ ÀÌ¿ëµË´Ï´Ù. µÎ¹ø°ÀÇ ±¸¹®¿¡¼­´Â PATH1·Î ÁöÁ¤µÈ ·ÎÄà ÀÛ¾÷ Ä«ÇǸ¦ PATH2¿¡ Ãâ·Â ÇÕ´Ï´Ù. ¸ðµç ÀÛ¾÷ Ä«ÇÇ¿¡ÀÇ º¯°æÀº º¸Á¸µË´Ï´Ù¸¸, ¹öÀü °ü¸®ÇÏ ¿¡ ¾ø´Â ÆÄÀÏÀº Ä«ÇǵÇÁö ¾Ê½À´Ï´Ù. º°¸í ¾øÀ½ º¯°æ ´ë»ó ·ÎÄà µð½ºÅ© ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º URL·ÎºÎÅÍÀÇ exportÀÇ °æ¿ì¸¸ ¹ß»ý ½ºÀ­Ä¡ --revision (-r) REV --quiet (-q) --username USER --password PASS --no-auth-cache --non-interactive ·Ê ÀÛ¾÷ Ä«ÇǷκÎÅÍÀÇ export( ¸ðµç ÆÄÀÏ°ú µð·ºÅ丮¸¦ Çϳª Çϳª Ç¥½ÃÇÏÁö ¾Ê´Â´Ù): $ svn export a-wc my-export pantheon: /tmp> ÀúÀå¼Ò(repository)·ÎºÎÅÍ Á÷Á¢ export( ¸ðµç ÆÄÀÏ°ú µð·ºÅ丮¸¦ Ç¥½Ã): $ svn export file:///tmp/repos my-export A my-export/test A my-export/quiz … Exported revision 15. svn help ÇïÇÁ ¿ë¹ý svn help [SUBCOMMAND...] ¼³¸í SubversionÀ» »ç¿ëÇÏ´Â °æ¿ìÀÇ ÃÖ¼±ÀÇ °¡À̵å·Î, °Å±â¿¡ ºñ±³Çϸé(ÀÚ) ÀÌ Ã¥ µîÀº ¹ÌÄ¡Áö ¾Ê½À´Ï´Ù! º°¸í ?, h º¯°æ ´ë»ó ¾øÀ½ ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º ¹ß»ýÇÏÁö ¾Ê´Â´Ù ½ºÀ­Ä¡ --version --quiet (-q) svn import PATH¸¦ URL¿¡ ´ëÇؼ­ Àç±ÍÀûÀ¸·Î Ä¿¹ÔÇÕ´Ï´Ù. ¿ë¹ý svn import [PATH] URL ¼³¸í PATHÀÇ Ä«ÇǸ¦ Àç±ÍÀûÀ¸·ÎURL ¿¡ Ä¿¹ÔÇÕ´Ï´Ù. PATH °¡ ¾øÀ¸¸é '. '°¡ °¡Á¤µË´Ï´Ù. ÇÊ¿ä¿¡ µû¶ó¼­ Ä£µð·ºÅ丮°¡ ÀúÀå¼Ò(repository)¿¡ ¸¸µé¾îÁý´Ï´Ù. º°¸í ¾øÀ½ º¯°æ ´ë»ó ÀúÀå¼Ò(repository) ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º ¹ß»ýÇÑ´Ù ½ºÀ­Ä¡ --message (-m) TEXT --file (-F) FILE --quiet (-q) --non-recursive (-N) --username USER --password PASS --no-auth-cache --non-interactive --force-log --encoding ENC ·Ê ÀÌ°ÍÀº, ·ÎÄà µð·ºÅ丮'myproj'¸¦ ÀúÀå¼Ò(repository)ÀÇ ±Ù¿ø¿¡ ÀÓÆ÷Æ® ÇÕ´Ï´Ù: $ svn import -m "New import" myproj http://svn.red-bean.com/repos/test Adding myproj/sample.txt … Transmitting file data ......... Committed revision 16. ÀÌ°ÍÀº ·ÎÄà µð·ºÅ丮'myproj'¸¦ ÀúÀå¼Ò(repository)ÀÇ'trunk/vendors' ¿¡ ÀÓÆ÷Æ® ÇÕ´Ï´Ù. µð·ºÅ丮'trunk/vendor'´Â ÀÓÆ÷Æ® Çϱâ Àü¿¡ Á¸ÀçÇÏ°í ÀÖÁö ¾Ê¾Æµµ ±¦Âú½À´Ï´Ù —svn import (Àº)´Â Àç±ÍÀûÀ¸·Î µð·ºÅ丮¸¦ ¸¸µì´Ï´Ù: $ svn import -m "New import" myproj \ http://svn.red-bean.com/repos/test/trunk/vendors/myproj Adding myproj/sample.txt … Transmitting file data ......... Committed revision 19. svn info PATH¿¡ ´ëÇÑ Á¤º¸¸¦ Ç¥½ÃÇÕ´Ï´Ù. ¿ë¹ý svn info [PATH...] ¼³¸í ÀÛ¾÷ Ä«ÇÇÀÇ Æнº¿¡ ´ëÇÑ Á¤º¸¸¦ Ç¥½ÃÇÕ´Ï´Ù. ÀÌ°Í¿¡´Â: Æнº À̸§ URL ¸®ºñÀü ³ëµåÀÇ Á¾·ù ¸¶Áö¸·¿¡ ¼öÁ¤ÇÑ »ç¶÷ ¸¶Áö¸·¿¡ ¼öÁ¤ÇÑ ¸®ºñÀü ¸¶Áö¸·¿¡ ¼öÁ¤ÇÑ ÀϽà ¸¶Áö¸·¿¡ °»½ÅÇÑ ÅؽºÆ® ¸¶Áö¸·¿¡ °»½ÅÇÑ ¼Ó¼º üũ ¼¶ º°¸í ¾øÀ½ º¯°æ ´ë»ó ¾øÀ½ ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º ¹ß»ýÇÏÁö ¾Ê´Â´Ù ½ºÀ­Ä¡ --targets FILENAME --recursive (-R) ·Ê svn info ´Â ÀÛ¾÷ Ä«ÇÇÁßÀÇ ÆÄÀÏ ¶Ç´Â µð·ºÅ丮¿¡ °üÇÑ À¯¿ëÇÑ Á¤º¸¸¦ Ç¥½ÃÇÕ´Ï´Ù. ´ÙÀ½Àº ÆÄÀÏ¿¡ °üÇÑ Á¤º¸¸¦ Ç¥½ÃÇÕ´Ï´Ù: $ svn info foo.c Path: foo.c Name: foo.c URL: http://svn.red-bean.com/repos/test/foo.c Revision: 4417 Node Kind: file Schedule: normal Last Changed Author: sally Last Changed Rev: 20 Last Changed Date: 2003-01-13 16:43:13 -0600 (Mon, 13 Jan 2003) Text Last Updated: 2003-01-16 21:18:16 -0600 (Thu, 16 Jan 2003) Properties Last Updated: 2003-01-13 21:50:19 -0600 (Mon, 13 Jan 2003) Checksum: /3L38YwzhT93BWvgpdF6Zw== µð·ºÅ丮¿¡ ´ëÇÑ Á¤º¸¸¦ Ç¥½ÃÇÒ ¼öµµ ÀÖ½À´Ï´Ù: $ svn info vendors Path: trunk URL: http://svn.red-bean.com/repos/test/vendors Revision: 19 Node Kind: directory Schedule: normal Last Changed Author: harry Last Changed Rev: 19 Last Changed Date: 2003-01-16 23:21:19 -0600 (Thu, 16 Jan 2003) svn list ÀúÀå¼Ò(repository)ÁßÀÇ µð·ºÅ丮 ¿£Æ®¸®¸¦ À϶÷Ç¥ °¡¸®Åµ´Ï´Ù. ¿ë¹ý svn list [TARGET...] ¼³¸í °¢°¢ÀÇ TARGET ÆÄÀÏ°ú TARGET µð£«ÄíÆ®¸®ÀÇ ÀúÀå¼Ò(repository) ¾ÈÀÇ ³»¿ëÀ» À϶÷Ç¥ °¡¸®Åµ´Ï´Ù. TARGET °¡ ÀÛ¾÷ Ä«ÇÇÀÇ ÆнºÀÎ °æ¿ì, ´ëÀÀÇÏ´Â ÀúÀå¼Ò(repository) URL °¡ ÀÌ¿ëµË´Ï´Ù. µðÆúÆ®ÀÇ TARGET Ä¡´Â '. '·Î, ÇöÀçÀÇ ÀÛ¾÷ Ä«ÇÇ µð·ºÅ丮 ÀÇ ÀúÀå¼Ò(repository) URL¸¦ ÀǹÌÇÕ´Ï´Ù. ¸¦ »ç¿ëÇϸé(ÀÚ) ÀÌÇÏÀÇ Çʵ尡 ¾ÆÀÌÅÛ¸¶´ÙÀÇ »óŸ¦ ³ªÅ¸³À´Ï´Ù: ¸¶Áö¸· Ä¿¹ÔÀÇ ¸®ºñÀü ¹øÈ£ ¸¶Áö¸· Ä¿¹ÔÀ» ÇÑ »ç¶÷ µ¥ÀÌÅÍ »çÀÌÁî (¾Æ¸£¹ÙÀÌÆ® ´ÜÀ§ÀÇ) ¸¶Áö¸· Ä¿¹ÔÀÇ ÀϽà º°¸í ls º¯°æ ´ë»ó ¾øÀ½ ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º ¹ß»ýÇÑ´Ù ½ºÀ­Ä¡ --revision (-r) REV --verbose (-v) --recursive (-R) --username USER --password PASS --no-auth-cache --non-interactive ·Ê svn list ´Â, ÀÛ¾÷ Ä«ÇǸ¦ ´Ù¿î·ÎµåÇÏ´Â °Í ¾øÀÌ ¾î¶² ÆÄÀÏÀÌ ÀúÀå¼Ò(repository)¿¡ ÀÖÀ»±î¸¦ ¾È´Ù ¶§¿¡ µµ¿òÀÌ µË´Ï´Ù: $ svn list http://svn.red-bean.com/repos/test/support README.txt INSTALL ·Ê/ … UNIX ÀÇ ls¿Í °°ÀÌ Ãß°¡ Á¤º¸¸¦ ¾ò±â À§Çؼ­(¶§¹®¿¡) ½ºÀ­Ä¡¸¦ ºÙÀÏ ¼öµµ ÀÖ½À´Ï´Ù: svn list --verbose file:///tmp/repos 16 sally 28361 Jan 16 23:18 README.txt 27 sally 0 Jan 18 15:27 INSTALL 24 harry Jan 18 11:27 ¿¹/ ÀÚ¼¼ÇÏ°Ô´Â(À»)¸¦ ºÁ ÁÖ¼¼¿ä. svn log Ä¿¹Ô ·Î±× ¸Þ¼¼ÁöÀÇ Ç¥½Ã. ¿ë¹ý svn log [PATH] svn log URL [PATH...] ¼³¸í µðÆúÆ®ÀÇ Å¸°ÙÀº ÇöÀçÀÇ ÀÛ¾÷ µð·ºÅ丮ÀÇ Æнº°¡ µË´Ï´Ù. Àμö¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é svn log ´Â ÀÚ½ÅÀÇ ÀÛ¾÷ Ä«ÇÇÀÇ ÇöÀçÀÇ ÀÛ¾÷ µð·ºÅ丮 ÀڽŰú ±× ³»ºÎÀÇ ¸ðµç ÆÄÀÏ°ú µð·ºÅ丮¿¡ °üÇÑ ·Î±× ¸Þ¼¼Áö¸¦ Ç¥½ÃÇÕ´Ï´Ù. ÇϳªÀÇ Æнº, Çϳª ÀÌ»óÀÇ ¸®ºñÀü, ȤÀº ±×·¯ÇÑ Æí¼ºÀ» ÁöÁ¤ÇÏ´Â °ÍÀ¸·Î °á°ú ³»¿ëÀ» ÁöÁ¤À» ÇÒ ¼ö ÀÖ½À´Ï´Ù. ·ÎÄà ÆнºÀÇ µðÆúÆ® ¸®ºñÀü ¹üÀ§´Â, BASE:1 ÀÔ´Ï´Ù. URL¸¸À» ÁöÁ¤Çϸé, ±× URL ¿¡ Æ÷ÇԵǴ ¸ðµç ·Î±× ¸Þ¼¼Áö°¡ Ç¥½ÃµË´Ï´Ù. URLÀÇ µÚ¿¡ Æнº¸¦ ºÙÀ̸é URLÁßÀÇ ±×·¯ÇÑ Æнº¿¡ Æ÷ÇԵȴ٠¸Þ¼¼Áö¸¸ÀÌ Ç¥½ÃµË´Ï´Ù. URL ÀÇ µðÆúÆ® ¸®ºñÀü ¹üÀ§´Â HEAD:1 ÀÔ´Ï´Ù. ¸¦ ÁöÁ¤Çϸé(ÀÚ)svn log (Àº)´Â °¢°¢ÀÇ ·Î±× ¸Þ¼¼Áö¿Í ÇÔ²² °ü·ÃÇÑ ¸ðµç Æнº¸¦ Ç¥½ÃÇÕ´Ï´Ù. ¸¦ ÁöÁ¤Çϸé(ÀÚ) svn log (Àº)´Â ·Î±× ¸Þ¼¼ÁöÀÇ º»Ã¼ ºÎºÐÀ» Ç¥½ÃÇÏÁö ¾Ê°Ô µË´Ï´Ù(ÀÌ°ÍÀº ½ºÀ­Ä¡¿Í ¾ç¸³ÇÕ´Ï´Ù). °¢°¢ÀÇ ·Î±× ¸Þ¼¼Áö´Â, ±× ¸®ºñÀü¿¡ ¿µÇâÀÌ ÀÖ´Â Æнº°¡ µÎ ¹ø ÀÌ»ó ¿ä±¸µÇ¾îµµ, ÇÑ ¹ø¸¸ Ç¥½ÃµË´Ï´Ù. µðÆúÆ®¿¡¼­´Â Logs cross copy history; ·Î ÀÌ µ¿ÀÛÀ» ¹«È¿·Î ÇÒ ¼ö ÀÖ½À´Ï´Ù. º°¸í ¾øÀ½ º¯°æ ´ë»ó ¾øÀ½ ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º ¹ß»ýÇÑ´Ù ½ºÀ­Ä¡ --revision (-r) REV --quiet (-q) --verbose (-v) --targets FILENAME --username USER --password PASS --no-auth-cache --non-interactive --strict --incremental --xml ·Ê ÃÖ»óÁ¤µµ·Î svn log ¸¦ ½ÇÇàÇÏ´Â °Í¿¡ ÀÇÇØ ÀÛ¾÷ Ä«ÇÇÁßÀÇ º¯°æµÈ ¸ðµç ÆнºÀÇ ·Î±× ¸Þ¼¼Áö¸¦ º¼ ¼ö°¡ ÀÖ½À´Ï´Ù: $ svn log ------------------------------------------------------------------------ r20 | harry | 2003-01-17 22:56:19 -0600 (Fri, 17 Jan 2003) | 1 line Tweak. ------------------------------------------------------------------------ r17 | sally | 2003-01-16 23:21:19 -0600 (Thu, 16 Jan 2003) | 2 lines … ÀÛ¾÷ Ä«ÇÇÁßÀÇ Æ¯Á¤ÀÇ ÆÄÀÏ¿¡ °üÇÑ ¸ðµç ·Î±× ¸Þ¼¼Áö¸¦ Á¶»çÇÕ´Ï´Ù: $ svn log foo.c ------------------------------------------------------------------------ r32 | sally | 2003-01-13 16:43:13 -0600 (Mon, 13 Jan 2003) | 1 line Added defines. ------------------------------------------------------------------------ r28 | sally | 2003-01-07 21:48:33 -0600 (Tue, 07 Jan 2003) | 3 lines … ÀÛ¾÷ Ä«ÇÇ°¡ ¼öÁß¿¡ ¾ø´Â °æ¿ì, URL¸¦ log ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù: $ svn log http://svn.red-bean.com/repos/test/foo.c ------------------------------------------------------------------------ r32 | sally | 2003-01-13 16:43:13 -0600 (Mon, 13 Jan 2003) | 1 line Added defines. ------------------------------------------------------------------------ r28 | sally | 2003-01-07 21:48:33 -0600 (Tue, 07 Jan 2003) | 3 lines … °°Àº URL¾Æ·¡ÀÇ ¸î°³ÀÇ ´Ù¸¥ Æнº¸¦ °®°í ½ÍÀº °æ¿ìURL [PATH...] ±¸¹®À» »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. $ svn log http://svn.red-bean.com/repos/test/ foo.c bar.c ------------------------------------------------------------------------ r32 | sally | 2003-01-13 16:43:13 -0600 (Mon, 13 Jan 2003) | 1 line Added defines. ------------------------------------------------------------------------ r31 | harry | 2003-01-10 12:25:08 -0600 (Fri, 10 Jan 2003) | 1 line Added new file bar.c ------------------------------------------------------------------------ r28 | sally | 2003-01-07 21:48:33 -0600 (Tue, 07 Jan 2003) | 3 lines … ±×°ÍÀº Ä¿¸àµå ¶óÀλ󿡼­ ¾çÂÊ ¸ðµÎÀÇ URL¸¦ ¸í½ÃÀûÀ¸·Î µÎ´Â °Í°ú °°Àº °ÍÀÌ µË´Ï´Ù: $ svn log http://svn.red-bean.com/repos/test/foo.c \ http://svn.red-bean.com/repos/test/bar.c … º¹¼öÀÇ log Ä¿¸àµåÀÇ °á°ú¸¦ ¿¬°áÇÏ°í ½ÍÀº °æ¿ì, ½ºÀ­Ä¡¸¦ »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. svn log´Â º¸Åë ¸Þ¼¼ÁöÀÇ ÃÖÃÊ·Î µ¥½¬ÀÇ ÇàÀ» Ç¥½Ã ÇØ, °¢°¢ÀÇ °è¼ÓÇÏ´Â ·Î±× ¸Þ¼¼Áö¸¦ Ç¥½ÃÇØ, ¸¶Áö¸· ·Î±× ¸Þ¼¼Áö°¡ °Å±â¿¡ °è¼ÓµË´Ï´Ù. ¸¸¾à svn log ¸¦ µÎ °³ÀÇ ¸®ºñÀü ¹üÀ§¿¡¼­ ½ÇÇàÇßÀ» °æ¿ì, ´ÙÀ½°ú °°Àº Ãâ·Â (ÀÌ)°¡ µË´Ï´Ù: $ svn log -r 14:15 ------------------------------------------------------------------------ r14 | ... ------------------------------------------------------------------------ r15 | ... ------------------------------------------------------------------------ ±×·¯³ª, µÎ Â÷·Ê·Î µÇÁö ¾ÊÀº ·Î±× ¸Þ¼¼Áö¸¦ ÆÄÀÏ¿¡ Ãâ·ÂÇÏ°í ½ÍÀº °æ¿ì, ¹«¾ùÀΰ¡ ´ÙÀ½°ú °°Àº ±âºÐÀÌ µé°ÚÁö¿ä: $ svn log -r 14 > mylog $ svn log -r 19 >> mylog $ svn log -r 27 >> mylog $ cat mylog ------------------------------------------------------------------------ r14 | ... ------------------------------------------------------------------------ ------------------------------------------------------------------------ r19 | ... ------------------------------------------------------------------------ ------------------------------------------------------------------------ r27 | ... ------------------------------------------------------------------------ incremental ½ºÀ­Ä¡¸¦ »ç¿ëÇϸé, Ãâ·ÂÁßÀÇ Áߺ¹ ÇÑ µ¥½¬Çà ÀÇ Ç¥½Ã¸¦ ÇÇÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù: $ svn log --incremental -r 14 > mylog $ svn log --incremental -r 19 >> mylog $ svn log --incremental -r 27 >> mylog $ cat mylog ------------------------------------------------------------------------ r14 | ... ------------------------------------------------------------------------ r19 | ... ------------------------------------------------------------------------ r27 | ... ½ºÀ­Ä¡´Â, ½ºÀ­Ä¡¸¦ »ç¿ëÇßÀ» ¶§ °Í°ú °°Àº Ãâ·Â Á¦¾î¸¦ ÇÕ´Ï´Ù. ¸¸¾à svn log ¸¦ ƯÁ¤ÀÇ Æнº»óÀÇ Æ¯Á¤ÀÇ ¸®ºñÀü ÁöÁ¤À¸·Î ½ÇÇàÇϸé(ÀÚ) ¾Æ¹«°Íµµ Ãâ·ÂµÇÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù $ svn log -r 20 http://svn.red-bean.com/untouched.txt ------------------------------------------------------------------------ ±×°ÍÀº Æнº´Â ¸®ºñÀü¿¡ µû¶ó¼­´Â ¼öÁ¤µÇÁö ¾Ê¾Ò´ø °ÍÀ» ÀÇ¹Ì ÇÏ°í ÀÖ½À´Ï´Ù. ÀúÀå¼Ò(repository)ÀÇ ÃÖ»óÁ¤µµ·Î log ÇÏ´ÂÁö, ±× ¸®ºñÀüÀ¸·Î ¼öÁ¤ÇÑ ÆÄÀÏÀ» ¾Ë°í ÀÖ´Ù¸é, ¸í½ÃÀûÀ¸·Î ±×°ÍÀ» ÁöÁ¤ÇÏ´Â °ÍÀÌ ÇÒ ¼ö ÀÖ½À´Ï´Ù: $ svn log -r 20 touched.txt ------------------------------------------------------------------------ r20 | sally | 2003-01-17 22:56:19 -0600 (Fri, 17 Jan 2003) | 1 line Made a change. ------------------------------------------------------------------------ svn merge µÎ ¼Ò½ºÀÇ Â÷À̸¦ ÀÛ¾÷ Ä«ÇÇ Æнº¿¡ ¹Ý¿µÇÕ´Ï´Ù. ¿ë¹ý svn merge sourceURL1[@N] sourceURL2[@M] [WCPATH] svn merge -r N:M SOURCE [PATH] ¼³¸í ÃÖÃÊÀÇ Çü½Ä¿¡¼­´Â ¼Ò½º°¡ µÇ´Â URL´Â ¸®ºñÀü N ¿Í M ·Î ÁöÁ¤µÇ¾î ±× µÑÀÌ ºñ±³µË´Ï´Ù. ¸®ºñÀüÀÌ »ý·« µÇ¸é HEAD ¸¦ ÁöÁ¤µÈ °Í°ú °£ÁÖÇÕ´Ï´Ù. µÎ¹ø°ÀÇ Çü½Ä¿¡¼­´Â SOURCE ´Â URL Àΰ¡, ÀÛ¾÷ Ä«ÇÇ ¾ÆÀÌÅÛÀ̸ç, ±× °æ¿ì, ´ëÀÀÇÑ URL°¡ ÀÌ¿ëµË´Ï´Ù. ÀÌ, ¸®ºñÀü N ¿Í M ÀÇ URL°¡, ºñ±³ ´ë»ó°ú µË´Ï´Ù. WCPATH °¡ º¯°æÀ» ¹Þ¾ÆµéÀÌ´Â ÀÛ¾÷ Ä«ÇÇ ÆнºÀÔ´Ï´Ù. ¸¸¾à WCPATH°¡ »ý·« µÇ¸é(ÀÚ), µðÆúÆ®·Î¼­'. '°¡ ÀÌ¿ëµË´Ï´Ù. ´Ù¸¸, ¾çÂÊ ¸ðµÎÀÇ ¼Ò½ºÀÇ º£À̽º¸íÀÌ °°¾Æ, °Ô´Ù°¡ ±× À̸§ÀÇ ÆÄÀÏÀÌ'. '¿¡ ÀÖ´Â °æ¿ì´Â º°°³·Î, ÀÌ °æ¿ì´Â, Â÷ºÐÀº ±× ÆÄÀÏ¿¡ Àû¿ëµË´Ï´Ù. º°¸í ¾øÀ½ º¯°æ ´ë»ó ÀÛ¾÷ Ä«ÇÇ ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º URL¿¡ ´ëÇؼ­ µ¿ÀÛÇÒ ¶§ ¸¶¼Å ¹ß»ýÇÑ´Ù ½ºÀ­Ä¡ --revision (-r) REV --non-recursive (-N) --quiet (-q) --force --dry-run --username USER --password PASS --no-auth-cache --non-interactive ·Ê ºê·£Ä¡(branch)¸¦ ÁÖ°è¿¡ merge ÇÕ´Ï´Ù (ÁÖ°èÀÇ ÀÛ¾÷ Ä«ÇÇ°¡ ÀÖ´Â °ÍÀÌ ÀüÁ¦°¡ µË´Ï´Ù): $ svn merge http://svn.red-bean.com/repos/trunk/vendors \ http://svn.red-bean.com/repos/branches/vendors-with-fix U myproj/tiny.txt U myproj/thhgttg.txt U myproj/win.txt U myproj/flo.txt ¸®ºñÀü 23À¸·Î ºÐ±â(ºê·£Ä¡(branch)È­) ÇØ, ±× ºê·£Ä¡(branch)¾ÈÀÇ ÁÖ°è·Î º¯°æÀ» merge ÇÏ°í ½Í´Ù°í ÇÕ´Ï´Ù. ÀÌ°Í¿¡´Â ºê·£Ä¡(branch)ÀÇ ÀÛ¾÷ Ä«ÇÇ Áß(¾È)¿¡¼­ ÀÌÇÏ¿Í °°Àº Á¶ÀÛÀ» ÇÕ´Ï´Ù: $ svn merge -r 23:30 file:///tmp/repos/trunk/vendors U myproj/thhgttg.txt … º¯°æÀ» ÇϳªÀÇ ÆÄÀÏ¿¡ merge ÇÏ·Á¸é: $ cd myproj $ svn merge -r 30:31 thhgttg.txt U thhgttg.txt svn mkdir ¹öÀü °ü¸®ÇÏ¿¡ ÀÖ´Â »õ·Î¿î µð·ºÅ丮¸¦ ¸¸µì´Ï´Ù. ¿ë¹ý svn mkdir PATH... svn mkdir URL... ¼³¸í PATH ¶Ç´Â URL¸¦ ¸¶Áö¸· ºÎºÐÀ¸·Î ÇÒ °Í °°Àº µð·ºÅ丮¸¦ ¸¸µì´Ï´Ù. ÀÛ¾÷ Ä«ÇÇ PATH ·Î ÁöÁ¤µÈ µð·ºÅ丮´Â ÀÛ¾÷ Ä«ÇÇ¿¡ÀÇ Ãß°¡·Î¼­ ¿¹°íµË´Ï´Ù. URL ¿¡ ÀÇÇØ ÁöÁ¤µÈ µð·ºÅ丮´Â ÀÛ¼º°ú µ¿½Ã¿¡ Ä¿¹ÔµË´Ï´Ù. º¹¼öÀÇ µð·ºÅ丮 URL ´Â ºÒºÐÇÒ¿¡ Ä¿¹ÔµË´Ï´Ù. ¾î´À ÂÊÀÇ °æ¿ì¿¡¼­µµ µµÁßÀÇ µð·ºÅ丮´Â ¸ðµÎ Á¸ÀçÇÏ°í ÀÖÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. º°¸í ¾øÀ½ º¯°æ ´ë»ó ÀÛ¾÷ Ä«ÇÇ. URL¸¦ ÁöÁ¤ÇßÀ» °æ¿ì´Â ÀúÀå¼Ò(repository) ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º URL¸¦ ÁöÁ¤ÇßÀ» °æ¿ì´Â ¹ß»ýÇÑ´Ù ½ºÀ­Ä¡ --message (-m) TEXT --file (-F) FILE --quiet (-q) --username USER --password PASS --no-auth-cache --non-interactive --encoding ENC --force-log ·Ê ÀÛ¾÷ Ä«ÇÇÁß¿¡ µð·ºÅ丮¸¦ ¸¸µç´Ù: $ svn mkdir newdir A newdir ÀúÀå¼Ò(repository)¿¡ ¸¸µç´Ù(Ä¿¹ÔÀÌ ¹ß»ýÇϹǷΠ·Î±× ¸Þ¼¼Áö¸¦ ÁöÁ¤ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù) : $ svn mkdir -m "Making a new dir. " http://svn.red-bean.com/repos/newdir Committed revision 26. svn move ÆÄÀÏÀ̳ª µð·ºÅ丮¸¦ À̵¿ÇÑ´Ù. ¿ë¹ý svn move SRC DST ¼³¸í ÀÌ Ä¿¸àµå´Â ÀÛ¾÷ Ä«ÇÇ ¶Ç´Â ÀúÀå¼Ò(repository)¿¡ ÀÖ´Ù ÆÄÀÏÀ̳ª µð·ºÅ丮¸¦ À̵¿ÇÕ´Ï´Ù. ÀÌ Ä¿¸àµå´Â,svn copy ÀÇ µÚ¿¡ svn delete¸¦ ½ÇÇàÇÏ´Â °Í°ú °°Àº °ÍÀÔ´Ï´Ù. Subversion¿¡¼­´Â ÀÛ¾÷ Ä«ÇÇ¿Í URLÀÇ »çÀÌÀÇ À̵¿Àº ¼­Æ÷Æ®ÇÏ°í ÀÖÁö ¾Ê½À´Ï´Ù. °Ô´Ù°¡ ÆÄÀÏÀÇ À̵¿Àº ÇϳªÀÇ ÀúÀå¼Ò(repository)ÀÇ ³»ºÎ¿¡¼­¸¸ °¡´ÉÇÕ´Ï´Ù — SubversionÀº ÀúÀå¼Ò(repository)°£ÀÇ À̵¿À» ¼­Æ÷Æ®ÇÏ°í ÀÖÁö ¾Ê½À´Ï´Ù. WC -> WC À̵¿ÇÏ°í ³ª¼­, ÆÄÀÏÀ̳ª µð·ºÅ丮¸¦ Ãß°¡ ¿¹°íÇÕ´Ï´Ù. URL -> URL ¼­¹ö»ó¿¡¼­ÀÇ ¸íĪ º¯°æ º°¸í mv, rename, ren º¯°æ ´ë»ó ÀÛ¾÷ Ä«ÇÇ. URL¸¦ ÁöÁ¤ÇßÀ» °æ¿ì´Â ÀúÀå¼Ò(repository) ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º URL¸¦ ÁöÁ¤ÇßÀ» °æ¿ì´Â ¹ß»ýÇÑ´Ù ½ºÀ­Ä¡ --message (-m) TEXT --file (-F) FILE --revision (-r) REV --quiet (-q) --force --username USER --password PASS --no-auth-cache --non-interactive --encoding ENC --force-log ·Ê ÀÛ¾÷ Ä«ÇÇÀÇ ÆÄÀÏÀ» À̵¿: $ svn move foo.c bar.c A bar.c D foo.c ÀúÀå¼Ò(repository)ÀÇ ÆÄÀÏÀ» À̵¿(Ä¿¹ÔÀÌ ¹ß»ýÇϹǷΠĿ¹Ô ¸Þ¼¼Áö¸¦ ÁöÁ¤ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù): $ svn move -m "Move a file" http://svn.red-bean.com/repos/foo.c \ http://svn.red-bean.com/repos/bar.c Committed revision 27. svn propdel ¾ÆÀÌÅÛÀ¸·ÎºÎÅÍ ¼Ó¼ºÀ» »èÁ¦ÇÕ´Ï´Ù. ¿ë¹ý svn propdel PROPNAME [PATH...] svn propdel PROPNAME --revprop -r REV [URL] ¼³¸í ÀÌ°ÍÀº ÆÄÀÏ, µð·ºÅ丮, ¸®ºñÀüÀ¸·ÎºÎÅÍ ¼Ó¼ºÀ» »èÁ¦ÇÕ´Ï´Ù. ÃÖÃÊÀÇ Çü½ÄÀº ÀÛ¾÷ Ä«ÇÇÀÇ ¹öÀü °ü¸®µÈ ¼Ó¼ºÀ» »èÁ¦ÇØ, µÎ¹ø°ÀÇ Çü½Ä¿¡¼­´Â ÀúÀå¼Ò(repository) ¸®ºñÀü»óÀÇ ¹öÀü °ü¸®µÇ¾î ÀÖÁö ¾ÊÀº ¼Ó¼ºÀ» »èÁ¦ÇÕ´Ï´Ù. º°¸í pdel, pd º¯°æ ´ë»ó ÀÛ¾÷ Ä«ÇÇ. URL¸¦ ÁöÁ¤ÇßÀ» °æ¿ì´Â ÀúÀå¼Ò(repository) ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º URL¸¦ ÁöÁ¤ÇßÀ» °æ¿ì¸¸ ¹ß»ýÇÑ´Ù ½ºÀ­Ä¡ --quiet (-q) --recursive (-R) --revision (-r) REV --revprop ·Ê ÀÛ¾÷ Ä«ÇÇÀÇ ÆÄÀϷκÎÅÍ ¼Ó¼ºÀ» »èÁ¦ÇÑ´Ù $ svn propdel svn:mime-type some-script property `svn:mime-type' deleted from 'some-script'. ¸®ºñÀü ¼Ó¼ºÀ» »èÁ¦ÇÑ´Ù: $ svn propdel --revprop -r 26 release-date property `release-date' deleted from repository revision '26' svn propedit ¹öÀü °ü¸®µÇ°í ÀÖ´Â Çϳª ÀÌ»óÀÇ ¾ÆÀÌÅÛÀÇ ¼Ó¼ºÀ» ÆíÁýÇÑ´Ù. ¿ë¹ý svn propedit PROPNAME PATH... svn propedit PROPNAME --revprop -r REV [URL] ¼³¸í Çϳª ÀÌ»óÀÇ ¼Ó¼ºÀ» ÁÁ¾ÆÇÏ´Â ¿¡µðÅÍ·Î ¼öÁ¤ÇÕ´Ï´Ù. ÃÖÃÊÀÇ Çü½ÄÀº ÀÛ¾÷ Ä«ÇÇÁßÀÇ ¹öÀü °ü¸®µÈ ¼Ó¼ºÀ» ÆíÁýÇÕ´Ï´Ù. µÎ¹ø°ÀÇ Çü½Ä¿¡¼­´Â ÀúÀå¼Ò(repository) ¸®ºñÀü»óÀÇ ¹öÀü °ü¸®µÇ¾î ÀÖÁö ¾Ê´Ù ¼Ó¼ºÀ» ÆíÁýÇÕ´Ï´Ù. º°¸í pedit, pe º¯°æ ´ë»ó ÀÛ¾÷ Ä«ÇÇ. URL¸¦ ÁöÁ¤ÇßÀ» °æ¿ì´Â ÀúÀå¼Ò(repository) ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º URL¸¦ ÁöÁ¤ÇßÀ» °æ¿ì¸¸ ¹ß»ýÇÑ´Ù ½ºÀ­Ä¡ --revision (-r) REV --revprop --encoding ENC ·Ê svn propedit ´Â, º¹¼öÀÇ °ªÀ» °¡Áø´Ù ¼Ó¼ºÀ» °£´ÜÇÏ°Ô º¯°æÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù: $ svn propedit svn:keywords foo.c <svn will launch your favorite editor here, with a buffer open containing the current contents of the svn:keywords property. You can add multiple values to a property easily here by entering one value per line. > Set new value for property `svn:keywords' on `foo.c' svn propget ¼Ó¼ºÀÇ °ªÀ» Ç¥½ÃÇÕ´Ï´Ù. ¿ë¹ý svn propget PROPNAME [PATH...] svn propget PROPNAME --revprop -r REV [URL] ¼³¸í ÆÄÀÏ, µð·ºÅ丮, ¸®ºñÀüÀÇ ¼Ó¼ºÄ¡¸¦ Ç¥½ÃÇÕ´Ï´Ù. ÃÖÃÊÀÇ Çü½ÄÀº ÀÛ¾÷ Ä«ÇÇ¿¡ ÀÖ´Â Çϳª ÀÌ»óÀÇ ¾ÆÀÌÅÛÀÇ ¹öÀü °ü¸®µÈ ¼Ó¼ºÀ» Ç¥½ÃÇÕ´Ï´Ù. µÎ¹ø°ÀÇ Çü½ÄÀÎ ÀúÀå¼Ò(repository) ¸®ºñÀüÀÇ ¹öÀü °ü¸®ÇÏ°í ÀÖÁö ¾Ê´Â ¼Ó¼ºÀ» Ç¥½ÃÇÕ´Ï´Ù. ¼Ó¼º¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ °ÍÀº (À»)¸¦ ºÁ ÁÖ¼¼¿ä. º°¸í pget, pg º¯°æ ´ë»ó ÀÛ¾÷ Ä«ÇÇ. URL¸¦ ÁöÁ¤ÇßÀ» °æ¿ì´Â ÀúÀå¼Ò(repository) ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º URL¸¦ ÁöÁ¤ÇßÀ» ¶§ ¸¶¼Å ¹ß»ýÇÑ´Ù ½ºÀ­Ä¡ --recursive (-R) --revision (-r) REV --revprop ·Ê ÀÛ¾÷ Ä«ÇÇÁßÀÇ ¾ÆÀÌÅÛÀÇ ¼Ó¼ºÀ» Á¶»çÇÑ´Ù: $ svn propget svn:keywords foo.c Author Date Rev ¸®ºñÀü ¼Ó¼º¿¡ ´ëÇؼ­µµ °°ÀÌ: $ svn propget svn:log --revprop -r 20 Began journal. svn proplist ¸ðµç ¼Ó¼ºÀ» À϶÷Ç¥ °¡¸®Åµ´Ï´Ù. ¿ë¹ý svn proplist [PATH...] svn proplist --revprop -r REV [URL] ¼³¸í ÆÄÀÏ, µð·ºÅ丮, ¸®ºñÀüÀÇ ¸ðµç ¼Ó¼ºÀ» À϶÷Ç¥ °¡¸®Åµ´Ï´Ù. ÃÖÃÊÀÇ Çü½Ä¿¡¼­´Â ÀÛ¾÷ Ä«ÇÇÁßÀÇ ¹öÀü °ü¸®µÈ ¼Ó¼ºÀ» Ç¥½ÃÇÕ´Ï´Ù¸¸, µÎ¹ø°ÀÇ Çü½ÄÀÎ ÀúÀå¼Ò(repository) ¸®ºñÀüÀÇ ¼Ó¼ºÀ» Ç¥½ÃÇÕ´Ï´Ù. º°¸í plist, pl º¯°æ ´ë»ó ÀÛ¾÷ Ä«ÇÇ. URL°¡ ÁöÁ¤µÇ¾î ÀÖ´Â °æ¿ì´Â ÀúÀå¼Ò(repository) ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º URL¸¦ ÁöÁ¤ÇßÀ» °æ¿ì¸¸ ¹ß»ýÇÑ´Ù ½ºÀ­Ä¡ --verbose (-v) --recursive (-R) --revision (-r) REV --revprop ·Ê ÀÛ¾÷ Ä«ÇÇÀÇ ¾ÆÀÌÅÛÀÇ ¼Ó¼ºÀÇ À϶÷À» º¸°í ½ÍÀº °æ¿ì´Â proplist Ä¿¸àµå¸¦ »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù: $ svn proplist foo.c Properties on 'foo.c': svn:mime-type svn:keywords owner ±×·¯³ª Ç÷¡±×¸¦ ºÙÀ̸é(ÀÚ), °¢°¢ÀÇ ¼Ó¼ºÀÇ °ªµµ ÇÔ²² Ç¥½ÃÇÒ ¼ö°¡ ÀÖÀ¸¹Ç·Î ¸Å¿ì Æí¸®ÇÕ´Ï´Ù: $ svn proplist --verbose foo.c Properties on 'foo.c': svn:mime-type : text/plain svn:keywords : Author Date Rev owner : sally svn propset ÆÄÀÏ, µð·ºÅ丮, ¸®ºñÀüÀÇ PROPNAME ÀÇ °ª (À»)¸¦ PROPVAL·Î ¼³Á¤ÇÑ´Ù. ¿ë¹ý svn propset PROPNAME [PROPVAL | -F VALFILE] PATH [PATH [PATH ... ]] svn propset PROPNAME --revprop -r REV [PROPVAL | -F VALFILE] [URL] ¼³¸í ÆÄÀÏ, µð·ºÅ丮, ¸®ºñÀüÀÇ PROPNAMEÀÇ °ªÀ» PROPVAL·Î ¼³Á¤ÇÕ´Ï´Ù. ÃÖÃÊÀÇ ¿¹´Â ¹öÀü °ü¸®µÈ ÀÛ¾÷ Ä«ÇÇÁßÀÇ ¼Ó¼ºÄ¡ÀÇ º¯°æÀ¸·Î, µÎ¹ø°´Â ¹öÀü °ü¸®µÇ¾î ÀÖÁö ¾ÊÀº ÀúÀå¼Ò(repository)»óÀÇ ¸®ºñÀü ¼Ó¼ºÄ¡ÀÇ ÀÛ¼ºÀÔ´Ï´Ù. SubversionÀº, µ¿ÀÛ¿¡ ¿µÇâÀ» ÁÖ´Â ¸¹ÀºÆ¯º°ÇѼӼº (À»)¸¦ °®°í ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÏ°Ô´Â (À»)¸¦ ºÁ ÁÖ¼¼¿ä. º°¸í pset, ps º¯°æ ´ë»ó ÀÛ¾÷ Ä«ÇÇ. URL¸¦ ÁöÁ¤ÇßÀ» °æ¿ì¸¸ ÀúÀå¼Ò(repository) ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º URL¸¦ ÁöÁ¤ÇßÀ» °æ¿ì¸¸ ¹ß»ýÇÑ´Ù ½ºÀ­Ä¡ --file (-F) FILE --quiet (-q) --revision (-r) REV --targets FILENAME --recursive (-R) --revprop --encoding ENC ·Ê ÆÄÀÏÀÇ MIME ŸÀÔÀ» ¼³Á¤ÇÑ´Ù: $ svn propset svn:mime-type image/jpeg foo.jpg property `svn:mime-type' set on 'foo.jpg' UNIX »ó¿¡¼­, ¾î´À ÆÄÀÏ¿¡ ½ÇÇà ¼Ó¼ºÀ» ºÙÀÌ°í ½ÍÀ» ¶§¿¡´Â: $ svn propset svn:executable ON somescript property `svn:executable' set on 'somescript' ¾Æ¸¶, °øµ¿ ÀÛ¾÷ÀÚÀÇ ÆíÀǸ¦ »ý°¢Çϸé(ÀÚ), ¾î´À ¼Ó¼ºÀ» ¼³Á¤ ÇÏ·Á¸é ³»ºÎÀûÀÎ Æú¸®½Ã°¡ ¾øÀ¸¸é ¾ÈµË´Ï´Ù: $ svn propset owner sally foo.c property `owner' set on 'foo.c' ƯÁ¤ÀÇ ¸®ºñÀüÀÇ ·Î±× ¸Þ¼¼Áö¸¦ Ʋ·Á ¹ö·Á, ±×°ÍÀ» º¯°æÇÏ°í ½ÍÀ» ¶§, ¸¦ »ç¿ëÇØ, svn:log ¿¡ »õ·Î¿î ¸Þ¼¼Áö¸¦ ¼³Á¤ÇÕ´Ï´Ù: $ svn propset --revprop -r 25 svn:log "Journaled about trip to New York. " property `svn:log' set on repository revision '25' ȤÀº, ÀÛ¾÷ Ä«ÇǸ¦ °¡Áö°í ÀÖÁö ¾ÊÀº °æ¿ì¿¡¼­µµ, URL¸¦ ¼³Á¤ÇÏ´Â °ÍÀÌ ÇÒ ¼ö ÀÖ½À´Ï´Ù. $ svn propset --revprop -r 26 svn:log "Document nap. " http://svn.red-bean.com/repos property `svn:log' set on repository revision '25' ¸¶Áö¸·À¸·Î, ¼Ó¼ºÄ¡¸¦ ÆÄÀÏÀ» ÀÔ·ÂÀ¸·Î¼­ ¼³Á¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ ¹æ¹ýÀ¸·Î, ¼Ó¼ºÄ¡¿¡ ¹ÙÀ̳ʸ®Ä¡¸¦ ¼³Á¤ÇÏ´Â °Í Á¶Â÷ ÇÒ ¼ö ÀÖ½À´Ï´Ù: $ svn propset owner-pic -F sally.jpg moo.c property `owner-pic' set on 'moo.c' µðÆúÆ®¿¡¼­´Â Subversion ÀúÀå¼Ò(repository)ÁßÀÇ ¸®ºñÀü ¼Ó¼ºÀº º¯°æ ÇÒ ¼ö ¾ø½À´Ï´Ù. ÀúÀå¼Ò(repository) °ü¸®ÀÚ´Â'pre-revprop-change'¶ó°í ÇÑ´Ù À̸§ÀÇ ÈÅÀ» ¸¸µå´Â °ÍÀ¸·Î ¸í½ÃÀûÀ¸·Î ¸®ºñÀü ÇÁ·ÓÆÛƼÀÇ ¼öÁ¤À» À¯È¿ÇÏ°Ô ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. Ç«½º Ŭ¸³Æ®¿¡ ´ëÇØ ÀÚ¼¼ÇÏ°Ô´Â (À»)¸¦ ºÁ ÁÖ¼¼¿ä. svn resolved ÀÛ¾÷ Ä«ÇÇÀÇ ÆÄÀÏ ¶Ç´Â µð·ºÅ丮ÀÇ Ãæµ¹ »óŸ¦ Àâ±â µé¿©´Ù º¾´Ï´Ù. ¿ë¹ý svn resolved PATH... ¼³¸í ÀÛ¾÷ Ä«ÇÇÀÇ ÆÄÀÏ ¶Ç´Â µð·ºÅ丮ÀÇ Ãæµ¹ »óŸ¦ Àâ±â µé¿©´Ù º¾´Ï´Ù. ÀÌ Ä¿¸àµå´Â Ãæµ¹ ¸¶Ä¿¸¦ ÀǹÌÀûÀ¸·Î ÇؼÒÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó, ´ÜÁö Ãæµ¹¿¡ °ü°èÇÑ Áß°£ ÆÄÀÏÀ» »èÁ¦ÇØ, PATH·Î Çѹø ´õ Ä¿¹ÔÇÑ´Ù »ÓÀÔ´Ï´Ù. Áï Subversion¿¡ ±× Ãæµ¹Àº ¹ú½áÇؼҵǾú´Ù¶ó°í ÀüÇÕ´Ï´Ù. Ãæµ¹ÀÇ Çؼҿ¡ ´ëÇÑ ÀÚ¼¼ÇÑ °ÍÀº (À»)¸¦ ºÁ ÁÖ¼¼¿ä. º°¸í ¾øÀ½ º¯°æ ´ë»ó ÀÛ¾÷ Ä«ÇÇ ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º No ½ºÀ­Ä¡ --targets FILENAME --recursive (-R) --quiet (-q) ·Ê °»½Å Á¶ÀÛÁß¿¡ Ãæµ¹ÀÌ ÀÖ¾úÀ» °æ¿ì, ÀÛ¾÷ Ä«ÇÇ´Â ¼¼ °³ÀÇ »õ·Î¿î ÆÄÀÏÀ» ¸¸µì´Ï´Ù: $ svn update C foo.c Updated to revision 31. $ ls foo.c foo.c.mine foo.c.r30 foo.c.r31 Ãæµ¹À» ÇؼÒÇØ,foo.c ÀÇ Ä¿¹ÔÀÇ Áغñ°¡ ÇÒ ¼ö ÀÖ´ø »óÅ¿¡ ÀÖ´Â °æ¿ì,svn resolved ´Â ´ç½ÅÀÇ ÀÛ¾÷ Ä«ÇÇ¿¡, ÁÖÀÇÇÏÁö ¾ÊÀ¸¸é ¾È µÇ´Â ¸ðµç ÀÏÀ» ÀüÇÕ´Ï´Ù. ´ÜÁö Ãæµ¹ ÆÄÀÏÀ» »èÁ¦ÇÏ°í ³ª¼­ Ä¿¹ÔÇÒ ¼öµµÀÖ½À´Ï´Ù ÇÏÁö¸¸ svn resolved ´Â ÀÛ¾÷ Ä«ÇÇ °ü¸® areaÀÇ ±â·ÏÀ¸·Î¼­ Ãæµ¹ ÆÄÀÏÀ» »èÁ¦Çß´Ù Àϵµ µ¡ºÙÀ̹ǷÎ, ÀÌ Ä¿¸àµå¸¦ »ç¿ëÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù. svn revert ·ÎÄà ÆÄÀÏ¿¡ÀÇ ¸ðµç ÆíÁýÀ» Ãë¼ÒÇÕ´Ï´Ù. ¿ë¹ý svn revert PATH... ¼³¸í ÆÄÀÏ, µð·ºÅ丮¿¡ ´ëÇÑ º¯°æÀ» ¸ðµÎ Ãë¼ÒÇØ Ãæµ¹ »óŸ¦ ÇؼÒÇÕ´Ï´Ù. svn revert ÀÛ¾÷ Ä«ÇÇÀÇ ¾ÆÀÌÅÛÀÇ ³»¿ë ¸¸ÀÌ ¾Æ´Ï°í, ¼Ó¼ºÀÇ º¯°æµµ Ãë¼ÒÇÕ´Ï´Ù. ÇÑÃþ ´õ ¹ú½á ÇÑ ¿¹°í Á¶ÀÛÀ» Ãë¼ÒÇϴµ¥µµ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. (¿¹¸¦ µé¾î, ÆÄÀÏ¿¡ ´ëÇÑ Ãß°¡ ¶Ç´Â »èÁ¦ÀÇ ¿¹°í µµ»èÁ¦µÇ°í. º°¸í ¾øÀ½ º¯°æ ´ë»ó ÀÛ¾÷ Ä«ÇÇ ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º ¾øÀ½ ½ºÀ­Ä¡ --targets FILENAME --recursive (-R) --quiet (-q) ·Ê ÆÄÀÏ¿¡ ´ëÇÑ º¯°æÀÇ Ãë¼Ò: $ svn revert foo.c Reverted foo.c µð·ºÅ丮 Àüü¸¦ Ãë¼ÒÇÏ°í ½ÍÀº °æ¿ì´Â, Ç÷¡±×¸¦ »ç¿ëÇÕ´Ï´Ù: $ svn revert --recursive . Reverted newdir/afile Reverted foo.c Reverted bar.txt ¸¶Áö¸·À¸·Î, ¾î´À ¿¹°í Á¶ÀÛµµ Ãë¼ÒÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù: $ svn add mistake.txt whoops A mistake.txt A whoops A whoops/oopsie.c $ svn revert mistake.txt whoops Reverted mistake.txt Reverted whoops $ svn status ? mistake.txt ? whoops svn revert ÀÇ ´ë»óÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é, ±×°ÍÀº ¾Æ¹«°Íµµ ÇÏÁö ¾Ê½À´Ï´Ù — À߸øÇÑ ¼öÁ¤ÀÇ Æıâ·ÎºÎÅÍ ÀÛ¾÷ Ä«ÇǸ¦ ÁöÅ°±â À§Çؼ­,svn revert Á¶ÀÛÀº Àû¾îµµ ÇϳªÀÇ Àμö¸¦ ÁöÁ¤Çϵµ·Ï(µíÀÌ) ¿ä±¸ÇÕ´Ï´Ù. svn status ÀÛ¾÷ Ä«ÇÇ¿¡ ÀÖ´Â ÆÄÀÏÀ̳ª µð·ºÅ丮 »óŸ¦ Ç¥½Ã. ¿ë¹ý svn status [PATH...] ¼³¸í ÀÛ¾÷ Ä«ÇÇ¿¡ ÀÖ´Â ÆÄÀÏÀ̳ª µð·ºÅ丮 »óŸ¦ Ç¥½ÃÇÕ´Ï´Ù. Àμö°¡ ¾ø´Â °æ¿ì´Â, ·ÎÄ÷Π¼öÁ¤µÈ ¾ÆÀÌÅÛ¸¸ÀÌ Ç¥½ÃµË´Ï´Ù(ÀúÀå¼Ò(repository)¿¡ ´ëÇÏ´Â ¾×¼¼½º´Â ¹ß»ýÇÏÁö ¾Ê½À´Ï´Ù ¸¦ »ç¿ëÇϸé(ÀÚ), ÀÛ¾÷ ¸®ºñÀü°ú ¼­¹öÀÇ ÃÖ½ÅÀÌ ¾Æ´Ñ Á¤º¸µµ Ãß°¡µË´Ï´Ù. ¸¦ »ç¿ëÇϸé(ÀÚ), ¸ðµç ¾ÆÀÌÅÛ¿¡ ´ëÇÑ´Ù ¿ÏÀüÇÑ ¸®ºñÀü Á¤º¸¸¦ Ç¥½ÃÇÕ´Ï´Ù. Ãâ·ÂÀÇ ÃÖÃÊÀÇ 5¿­ÀÇ Ä®·³Àº °¢°¢ ÇÑ ±ÛÀÚÆøÀ¸·Î, ÀÛ¾÷ Ä«ÇÇ ¾ÆÀÌÅÛ ¸¶´Ù ¿©·¯°¡Áö Á¤º¸¸¦ Ç¥½ÃÇÕ´Ï´Ù. ÃÖÃÊÀÇ Ä®·³Àº, ¾ÆÀÌÅÛÀÌ Ãß°¡, »èÁ¦, ±× ÀÌ¿ÜÀÇ º¯°æ, ¸ñ »óÅÂÀÎÁö¸¦ (À»)¸¦ ³ªÅ¸³À´Ï´Ù. ' ' º¯°æÀº ¾ø½À´Ï´Ù. 'A' ¾ÆÀÌÅÛÀº Ãß°¡ ¿¹°íµÇ°í ÀÖ½À´Ï´Ù. 'D' ¾ÆÀÌÅÛÀº »èÁ¦ ¿¹°íµÇ°í ÀÖ½À´Ï´Ù. 'M' ¾ÆÀÌÅÛÀº ¼öÁ¤µÇ¾ú½À´Ï´Ù. 'C' ¾ÆÀÌÅÛÀº ÀúÀå¼Ò(repository)·ÎºÎÅÍ ¹ÞÀº °»½Å¿¡ ÀÇÇØ Ãæµ¹ ÇÑ »óÅ¿¡ ÀÖ½À´Ï´Ù. 'I' ¾ÆÀÌÅÛÀº ¹«½ÃµÇ°í ÀÖ´Â ¼Ó¼ºÀÔ´Ï´Ù (¿¹¸¦ µé¾î, svn:ignore¿Í °°Àº) '? ' ¾ÆÀÌÅÛÀº ¹öÀü °ü¸®ÇÏ¿¡ ¾ø½À´Ï´Ù. '! ' ¾ÆÀÌÅÛÀº ¾ø¾îÁ³½À´Ï´Ù(ÀÌ°ÍÀº ¿¹¸¦ µé¾î, svn¸¦ »ç¿ëÇÏÁö ¾Ê°í ÆÄÀÏÀ» »èÁ¦Çϰųª À̵¿ÇßÀ» °æ¿ì¿¡ ÀϾ´Ï´Ù). ¶Ç, ÀÌ°ÍÀº µð·ºÅ丮°¡ ºÒ¿ÏÀüÇÑ °ÍÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù (üũ¾Æ¿ôÀ̳ª °»½ÅÀÌ ÁߴܵÈ, µî). '~' ¾ÆÀÌÅÛÀº µð·ºÅ丮·Î¼­ ¹öÀü °ü¸®µÇ¾î ÀÖ½À´Ï´Ù¸¸, ÆÄÀÏ·Î ¿Å°Ü³õÀ» ¼ö ÀÖ¾î ¹ö·È½À´Ï´Ù. ȤÀº ±× ¿ªÀÇ »óȲÀÌ ÀϾ½À´Ï´Ù. µÎ¹ø°ÀÇ Ä®·³Àº ÆÄÀÏÀ̳ª µð·ºÅ丮ÀÇ ¼Ó¼º »óŸ¦ ³ªÅ¸³À´Ï´Ù. ' ' ¼öÁ¤Àº ¾ø½À´Ï´Ù. 'M' ÀÌ ¾ÆÀÌÅÛÀÇ ¼Ó¼ºÀº ¼öÁ¤µÇ¾ú½À´Ï´Ù. 'C' ÀÌ ¾ÆÀÌÅÛÀÇ ¼Ó¼ºÀº ÀúÀå¼Ò(repository)·ÎºÎÅÍ ¹ÞÀº ¼Ó¼º °»½Å¿¡ ÀÇÇØ Ãæµ¹ÇÑ »óÅ¿¡ ÀÖ½À´Ï´Ù. 3¹ø°ÀÇ Ä®·³Àº ÀÛ¾÷ Ä«ÇÇ°¡ ¶ô µÇ°í ÀÖ´Â °æ¿ì¿¡¸¸ »ç¿ëµË´Ï´Ù. ' ' ¾ÆÀÌÅÛÀº ¶ô µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù. 'L' ¾ÆÀÌÅÛÀº ¶ô µÇ°í ÀÖ½À´Ï´Ù. 4¹ø°ÀÇ Ä®·³Àº ¾ÆÀÌÅÛÀÌ Ãß°¡ ¿¹°íµÇ°í ÀÖ´Â °æ¿ì¿¡°Ô¸¸ »ç¿ëµË´Ï´Ù. ' ' Ä¿¹Ô ±â´Ù¸®´Â ¿¹°í´Â ¾ø½À´Ï´Ù. '+' Ä¿¹Ô ±â´Ù¸®´Â ¿¹°í°¡ ÀÖ½À´Ï´Ù. ´Ù¼¸¹ø°ÀÇ Ä®·³Àº ¾ÆÀÌÅÛÀÌ ºÎ¸ð¿¡ ´ëÇؼ­ »ó´ëÀûÀ¸·Î ±³Ã¼µÇ¾ú´Ù ¶§¿¡¸¸ »ç¿ëµË´Ï´Ù. (¸¦ ºÁ ÁÖ¼¼¿ä). ' ' ¾ÆÀÌÅÛÀº Ä£µð·ºÅ丮ÀÇ ¾ÆÀÌÀÔ´Ï´Ù. 'S' ¾ÆÀÌÅÛÀº ¹Ù²î°í ÀÖ½À´Ï´Ù. ÃֽŠ»óÅ¿¡ °ü°èÇÑ Á¤º¸°¡ 8¹ø°ÀÇ Ä®·³¿¡ Ç¥½ÃµË´Ï´Ù ( ½ºÀ­Ä¡¸¦ °Ç³×ÁÖ¾úÀ» °æ¿ì). ' ' ÀÛ¾÷ Ä«ÇÇÀÇ ¾ÆÀÌÅÛÀº ÃÖ½ÅÀÔ´Ï´Ù. '*' ¼­¹ö¿¡´Â ¾ÆÀÌÅÛÀÇ °Í Á» ´õ »õ·Î¿î ¹öÀüÀÌ Á¸ÀçÇÕ´Ï´Ù. ³ª¸ÓÁöÀÇ Çʵå´Â °ø¹é¿¡¼­ ´Ü¶ôÁö¾îÁø °¡º¯ÀåÀÔ´Ï´Ù. ³ª (À»)¸¦ ÁöÁ¤ÇßÀ» °æ¿ì´Â ÀÛ¾÷ ¸®ºñÀüÀÌ ´ÙÀ½ÀÇ Çʵ尡 µË´Ï´Ù. ½ºÀ­Ä¡¸¦ ÁöÁ¤Çϸé(ÀÚ) ¸¶Áö¸· Ä¿¹Ô ¸®ºñÀü (¿Í)°ú ±×°ÍÀ» ÇÑ »ç¶÷ÀÌ ´ÙÀ½¿¡ Ç¥½ÃµË´Ï´Ù. ÀÛ¾÷ Ä«ÇÇÀÇ Æнº´Â Ç×»ó ¸¶Áö¸· Çʵ尡 µÇ¹Ç·Î, °ø¹éÀ» Æ÷ÇÔÇÏ´Â °ÍÀÌ ÇÒ ¼ö ÀÖ½À´Ï´Ù. º°¸í stat, st º¯°æ ´ë»ó ¾øÀ½ ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º °¡ ÁöÁ¤µÇ¾úÀ» °æ¿ì¿¡ Çѹ߻ýÇÑ´Ù ½ºÀ­Ä¡ --show-updates (-u) --verbose (-v) --non-recursive (-N) --quiet (-q) --username USER --password PASS --no-auth-cache --non-interactive --force-log --no-ignore ·Ê ÀÛ¾÷ Ä«ÇÇ(?º¯°æÁ¡À» Á¶»çÇϱâ À§ÇÑ Á¦ÀÏ °£´ÜÇÑ ¹æ¹ý: $ svn status wc M wc/bar.c A + wc/qax.c ÀÛ¾÷ Ä«ÇÇÁß, ¾î´À ÆÄÀÏÀÌ ÃÖ½ÅÀÌ ¾Æ´Ñ°¡¸¦ ¾Ë°í ½ÍÀº °æ¿ì (Àº)´Â ½ºÀ­Ä¡¸¦ ÁöÁ¤ÇØ ÁÖ¼¼¿ä(ÀÌ°ÍÀº ÀÛ¾÷ Ä«ÇÇÀÇ ³»¿ëÀ»°áÄÚº¯°æÇÏÁö ¾Ê½À´Ï´Ù). ¸¶Áö¸·¿¡ ÀÚ½ÅÀÇ ÀÛ¾÷ Ä«ÇǸ¦ °»½ÅÇÏ°í ³ª¼­ ÀúÀå¼Ò(repository)ÀÇwc/foo.c (À¸)·Î º¯°æÀÌ ÀÖ¾úÀ» ¶§¿¡´Â ´ÙÀ½°ú °°ÀÌ µË´Ï´Ù: $ svn status --show-updates wc M 965 wc/bar.c * 965 wc/foo.c A + 965 wc/qax.c Head revision: 981 ´Â, ÃÖ½ÅÀÌ ¾Æ´Ñ ¾ÆÀÌÅÛÀÇ ÀÌ¿ô¿¡ asterisk¸¦ µÎ´Â¸¸ ÀÔ´Ï´Ù(Áï,svn update¸¦ ½ÇÇàÇß´Ù°í Çϸé ÀúÀå¼Ò(repository)·ÎºÎÅÍ ÀÇ Á¤º¸·Î °»½ÅµÉ ¾ÆÀÌÅÛÀÇ Àü¿¡°Ô¸¸, À̶ó°í ÇÏ´Â ÀǹÌÀÔ´Ï´Ù). Àº, ¾ÆÀÌÅÛÀÇ ÀúÀå¼Ò(repository) ¹öÀüÀ» ¹Ý¿µ ÇÑ »óÅ À϶÷À» Ç¥½ÃÇÏ´Â °ÍÀº¾Æ´Õ´Ï´Ù. ¸¶Áö¸·À¸·Î, status ¼­ºê Ä¿¸àµå·Î Á¦ÀÏ ¸¹Àº Á¤º¸¸¦ ¾òÀ¸·Á¸é: $ svn status --show-updates --verbose wc M 965 938 sally wc/bar.c * 965 922 harry wc/foo.c A + 965 687 harry wc/qax.c 965 687 harry wc/zig.c Head revision: 981 svn status ÀÇ °Í Á» ´õ ¸¹Àº ¿¹´Â ¿¡ ÀÖ½À´Ï´Ù. svn switch ÀÛ¾÷ Ä«ÇǸ¦ ´Ù¸¥ URL¿¡ °»½ÅÇÕ´Ï´Ù. ¿ë¹ý svn switch URL [PATH] ¼³¸í ÀÌ ¼­ºê Ä¿¸àµå´Â ÀÚ½ÅÀÇ ÀÛ¾÷ Ä«ÇǸ¦ »õ·Î¿î URL¿¡ °»½ÅÇØ, º¹Á¦¸¦ ¸¸µì´Ï´Ù. —±×·¸°Ô ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù¸¸, º¸ÅëÀº ±× URL´Â ¹ÙÅÁÀ¸·Î µÇ´Â ÀÛ¾÷ Ä«ÇÇ¿Í °øÅëÀÇ Á¶»óÀ» °¡Áý´Ï´Ù. ÀÌ°ÍÀÌ Subversion·Î ÀÛ¾÷ Ä«ÇǸ¦ ´Ù¸¥ ºê·£Ä¡(branch)¿¡ À̵¿½ÃÅ°´Â ¹æ¹ý ÀÔ´Ï´Ù. ¿¡ ÀÇÇØ ÀÚ¼¼ÇÑ ¼³¸íÀÌ ÀÖ½À´Ï´Ù. º°¸í sw º¯°æ ´ë»ó ÀÛ¾÷ Ä«ÇÇ ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º ¹ß»ýÇÑ´Ù ½ºÀ­Ä¡ --revision (-r) REV --non-recursive (-N) --quiet (-q) --diff3-cmd CMD --relocate --username USER --password PASS --no-auth-cache --non-interactive ·Ê Áö±Ý'vendors-with-fix'·ÎºÎÅÍ ºÐ±â ÇÑ'vendors'¶ó°í ÇÏ´Â µð·ºÅ丮ÀÇ ³»ºÎ¿¡ ÀÖ¾î, ±× ºê·£Ä¡(branch)ÀÇ ÀÛ¾÷ Ä«ÇÇ·Î ¿Å±â°í ½ÍÀ» ¶§¿¡´Â: $ svn switch http://svn.red-bean.com/repos/branches/vendors-with-fix . U myproj/foo.txt U myproj/bar.txt U myproj/baz.c U myproj/qux.c Updated to revision 31. ±×¸®°í, ¿ø·¡´ë·Î µ¹¾Æ°¡°í ½ÍÀ» ¶§¿¡´Â, ÃÖÃÊ·Î ÀÛ¾÷ Ä«ÇǸ¦ üũ¾Æ¿ô Çß´Ù ÀúÀå¼Ò(repository)ÀÇ Àå¼Ò¸¦ URL·Î¼­ ÁöÁ¤ÇÒ »ÓÀÔ´Ï´Ù: $ svn switch http://svn.red-bean.com/repos/trunk/vendors . U myproj/foo.txt U myproj/bar.txt U myproj/baz.c U myproj/qux.c Updated to revision 31. ÀÛ¾÷ Ä«ÇÇ Àüü¸¦ ¹Ù²Ù°í ½ÍÁö ¾ÊÀº °æ¿ì, ±× ÀϺθ¸À» ºê·£Ä¡(branch)¿¡ ¹Ù²Ü ¼öµµ ÀÖ½À´Ï´Ù. ÀúÀå¼Ò(repository)ÀÇ Àå¼Ò°¡ º¯°æµÇ¾úÁö¸¸, ±×´ë·Î °è¼ÓÇØ ÀÌ¿ëÇÏ°í ½Í´Ù°í »ý°¢ÇÑ´Ù ÀÛ¾÷ Ä«ÇÇ°¡ ÀÖ´Â °æ¿ì,svn switch --relocate¸¦ »ç¿ëÇØ ¾î´À URL·ÎºÎÅÍ ´Ù¸¥ URL¸¦ °¡¸®Å°µµ·Ï(µíÀÌ) ÀÛ¾÷ Ä«ÇǸ¦ º¯°æÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù: $ svn checkout file:///tmp/repos test A test/a A test/b … $ mv repos newlocation $ cd test/ $ svn update svn: Couldn't open a repository. svn: Unable to open an ra_local session to URL svn: Unable to open repository 'file:///tmp/repos' $ svn switch --relocate file:///tmp/repos file:///tmp/newlocation . $ svn update At revision 3. svn update ÀÛ¾÷ Ä«ÇÇÀÇ °»½Å. ¿ë¹ý svn update [PATH...] ¼³¸í svn update ´Â, ÀúÀå¼Ò(repository)ÀÇ ¼öÁ¤À» ÀÛ¾÷ Ä«ÇÇ¿¡ ¹Ý¿µÇÕ´Ï´Ù. ¸®ºñÀüÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é, HEAD ¸®ºñÀüÀÇ ÃֽŠÀÇ ³»¿ëÀÌ ¹Ý¿µµË´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ½ºÀ­Ä¡ ±×¸®°í ÁöÁ¤µÈ ¸®ºñÀü¿¡ ÀÛ¾÷ Ä«ÇǸ¦ µ¿±â ÇÕ´Ï´Ù. °»½ÅµÇ´Â ¾ÆÀÌÅÛ ¸¶´Ù, ¾î¶°ÇÑ µ¿ÀÛÀ» ÀÏÀ¸Ä×´ÂÁö¸¦ ³ªÅ¸³»´Â ij¸¯ÅÍ·Î ½ÃÀ۵ȴ٠ÇàÀÌ Ç¥½ÃµË´Ï´Ù. ÀÌ Ä³¸¯ÅÍ´Â ÀÌÇÏ¿Í °°Àº ÀǹÌÀÔ´Ï´Ù: A Ãß°¡ D »èÁ¦ U °»½Å C Ãæµ¹ M merge ÃÖÃÊÀÇ Ä®·³ÀÇ Ä³¸¯ÅÍ´Â ½ÇÁ¦ÀÇ ÆÄÀÏÀÇ °»½ÅÀ» ³ªÅ¸³À´Ï´Ù¸¸, ÆÄÀÏÀÇ ¼Ó¼ºÀÇ °»½Å »óȲÀº µÎ¹ø°ÀÇ Ä®·³¿¡¼­ °¡¸®Åµ´Ï´Ù. º°¸í up º¯°æ ´ë»ó ÀÛ¾÷ Ä«ÇÇ ÀúÀå¼Ò(repository)¿¡ÀÇ ¾×¼¼½º ¹ß»ýÇÑ´Ù ½ºÀ­Ä¡ --revision (-r) REV --non-recursive (-N) --quiet (-q) --username USER --password PASS --no-auth-cache --non-interactive ·Ê ¸¶Áö¸· °»½Å ÈÄ¿¡ ÀϾ ÀúÀå¼Ò(repository)ÀÇ ¼öÁ¤À» ¼öÁß¿¡ ³Ö½À´Ï´Ù: $ svn update A newdir/toggle.c A newdir/disclose.c A newdir/launch.c D newdir/README Updated to revision 32. Á» ´õ ³°Àº ¸®ºñÀüÀ¸·Î ÀÛ¾÷ Ä«ÇǸ¦ °»½ÅÇÒ ¼öµµ ÀÖ½À´Ï´Ù. (Subversion ´Â CVS ¿Í °°À̺پî ÆÄÀÏ ÀÇ °³³äÀ» °¡ÁöÁö ¾Ê½À´Ï´Ù. (À»)¸¦ ºÁ ÁÖ¼¼¿ä): svn update -r30 A newdir/README D newdir/toggle.c D newdir/disclose.c D newdir/launch.c U foo.c Updated to revision 30. ÇϳªÀÇ ÆÄÀÏÀÇ ³°Àº ¹öÀüÀ» Á¶»çÇÏ°í ½ÍÀ» ¶§¿¡´Â svn cat¸¦ »ç¿ëÇÏ°í ½Í¾îÁúÁöµµ ¾Ë·ÁÁöÁö ¾Ê½À´Ï´Ù. <command>svnadmin</command> svnadmin ´Â Subversion ÀúÀå¼Ò(repository)¸¦ °¨½ÃÇϰųª ¼öº¹ÇϰųªÇϱâ À§ÇÑ °ü¸®ÅøÀÔ´Ï´Ù. ÀÚ¼¼ÇÏ°Ô´ÂÀ» ºÁ ÁÖ¼¼¿ä. svnadmin´Â Á÷Á¢ ÀúÀå¼Ò(repository)¿¡ ´ëÇÑ ¾×¼¼½º¿¡ º¸´Ù µ¿ÀÛÇϹǷÎ(±×¸®°í, ÀúÀå¼Ò(repository)°¡ Á¸ÀçÇÏ´Â ¸Ó½Å»ó¿¡¼­¸¸ ÀÌ¿ëÇÏ´Â °ÍÀÌ ÇÒ ¼ö ÀÖÀ¸¹Ç·Î), URL°¡ ¾Æ´Ï°í, Æнº¸í¿¡ ÀÇÇØ ÀúÀå¼Ò(repository)¸¦ ÂüÁ¶ÇÕ´Ï´Ù. <command>svnadmin</command>½ºÀ­Ä¡ ÀúÀå¼Ò(repository)ÀÇ ÈÅÀ» ¿ìȸ ÇÕ´Ï´Ù. Æнº¸¦ Á¶»çÇÒ ¶§ Ä«ÇÇ È÷½ºÅ丮¸¦ Ç¥½ÃÇÕ´Ï´Ù. »õ·Î¿î ÀúÀå¼Ò(repository)¸¦ ÀÛ¼ºÇÒ °æ¿ì¿¡, ÀúÀå¼Ò(repository) ±¸Á¶ÀÇ ÅÛÇø´À» ÁöÁ¤ÇÕ´Ï´Ù. in-repository ÅÛÇø´Àº ÀúÀå¼Ò(repository) ÀÚ½ÅÀÇ ·¹À̾ƿô (À»)¸¦ ÁöÁ¤ÇÕ´Ï´Ù(±×°ÍÀº, db/ µð·ºÅ丮¾ÈÀÇ Berkeley DB ÆÄÀÏ ±×¸®°í »ç¿ëµË´Ï´Ù). /trunk, /branches ¡¤¡¤¡¤(¿Í)°ú °°Àº ÇüÅÂÀÔ´Ï´Ù. ÅÛÇø´Àº ÀúÀå¼Ò(repository)ÀÇ ÃÖÃÊÀÇ ·Îµå¸¦(hook ¾øÀ½À¸·Î) ½ÇÇàÇϴµ¥ °ü¸®ÀÚ³ª ¾îÇø®ÄÉÀ̼ǿ¡ ÀÇÇØ »ç¿ëÇÏ´Â °ÍÀ̶ó°í ¿É´Ï´Ù. µðÆúÆ®´Â ¾ø½À´Ï´Ù. ¾Æ¹«°Íµµ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ÀúÀå¼Ò(repository)´Âºó »óÅ·Π·Î ÀÛ¼ºµË´Ï´Ù. ¸®ºñÀüÀÇ Àüü¸¦ ´ýÇÁ ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó, ÀÌÀüÀÇ ¸®ºñÀü¿¡ ´ëÇÑ Â÷ºÐÀ¸·Î¼­ ´ýÇÁ ÇÕ´Ï´Ù. ¸¸µé°í ½Í´Ù°í »ý°¢ÇÏ´Â ÀúÀå¼Ò(repository)¸¦ À§Çؼ­(¶§¹®¿¡), µð½ºÅ©»óÀÇ ±¸Á¶¸¦ ÅÛÇø´¿¡ ÀÌ¿ëÇϵµ·Ï(µíÀÌ) ÁöÁ¤ÇÕ´Ï´Ù. on-disk ÅÛÇø´Àº ÀúÀå¼Ò(repository)ÀÇ µð·ºÅ丮 ±×°ÍÀ» ³ªÅ¸³À´Ï´Ù. °¢°¢ÀÇ ÅÛÇø´Àº À̸§À» °®°í, default ÀÇ µð½ºÅ© ÅÛÇø´Àº, ÀÌÇÏ¿Í °°Àº ³»¿ëÀ» °¡Áý´Ï´Ù: default/ README.txt dav/ format hooks/ post-commit.tmpl post-revprop-change.tmpl pre-commit.tmpl pre-revprop-change.tmpl start-commit.tmpl locks/ db.lock µð½ºÅ©»óÀÇ ±¸Á¶ÀÇ ÀüÇüÀûÀÎ »ç¿ë¹ýÀº ÀÛ¼ºµÇ´Â Ç«½º Ŭ¸³Æ®·Î¼­ ¹ú½á Á¤ÀÇµÈ °ÍÀ» »ç¿ëÇÏ´Â °Í °°Àº °æ¿ìÀÔ´Ï´Ù. ¿¹¸¦ µé¾î Ä¿¹Ô½ÃÀÇ ¸ÞÀÏ·¯¿Í ¹é¾÷ ½ºÅ©¸³Æ®°¡ ÀÖ´Ù post-commit ½ºÅ©¸³Æ®¸¦ ¸¸µé¾î ÀÖ´Ù°í ÇÕ´Ï´Ù. ÀÌÈÄ, °ü¸®ÀÚ°¡ »õ·Î¿î ÀúÀå¼Ò(repository)¸¦ ¸¸µé ¶§¸¶´Ù, ¸ðµç ÈÅÀ» ¹Ì¸® ÀÚµ¿ÀûÀ¸·Î Æ÷ÇÔÇÑ, ÀÌ »õ·Î¿î ÅÛÇø´À» ÁöÁ¤ÇÑ´Ù ÀÏÀÌ »ý±é´Ï´Ù. () ARG Á¶ÀÛ ´ë»óÀÌ µÇ´Â ƯÁ¤ÀÇ ¸®ºñÀüÀ» ÁöÁ¤ÇÕ´Ï´Ù. <command>svnadmin</command> ¼­ºê Ä¿¸àµå svnadmin list-unused-dblogs ¾î´À ·Î±× ÆÄÀÏÀÌ ¾ÈÀüÇÏ°Ô »èÁ¦ °¡´ÉÇÑ°¡¸¦ Berkeley DB ¿¡ ¹®ÀÇ . ¿ë¹ý svnadmin list-unused-dblogs REPOS_PATH ¼³¸í Berkeley DB ´Â ±ä±Þ½ÃÀÇ ¸®Ä¿¹ö¸®¸¦ À§Çؼ­(¶§¹®¿¡) ÀúÀå¼Ò(repository)ÀÇ ¸ðµç º¯°æÁ¡ÀÇ ·Î±×¸¦ ¸¸µì´Ï´Ù. ½Ã°£°ú ÇÔ²² ·Î±× ÆÄÀÏÀº ÃàÀûµË´Ï´Ù¸¸, ±× ´ëºÎºÐÀº ¹ú½á ÀÌ¿ëµÇÁö ¾Ê°í, µð½ºÅ© area¸¦ ÆîÄ¡±â À§Çؼ­(¶§¹®¿¡) »èÁ¦ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº (À»)¸¦ ºÁ ÁÖ¼¼¿ä. ·Ê ¸ðµç ÀÌ¿ëµÇ¾î ÀÖÁö ¾ÊÀº ·Î±× ÆÄÀÏÀ» ÀúÀå¼Ò(repository)·ÎºÎÅÍ »èÁ¦ÇÕ´Ï´Ù: $ svnadmin list-unused-dblogs /path/to/repos /path/to/repos/log. 0000000031 /path/to/repos/log. 0000000032 /path/to/repos/log. 0000000033 $ svnadmin list-unused-dblogs /path/to/repos | xargs rm ## disk space reclaimed! svnadmin create REPOS_PATH¿¡ ½Å±ÔÀÇ ºó ÀúÀå¼Ò(repository)¸¦ ¸¸µì´Ï´Ù. ¿ë¹ý svnadmin create REPOS_PATH ¼³¸í ÁöÁ¤ÇÑ Æнº¿¡ ½Å±Ô¿¡ ºó ÀúÀå¼Ò(repository)¸¦ ¸¸µì´Ï´Ù. Æнº°¡ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é ÀÚµ¿ÀûÀ¸·Î ¸¸µé¾îÁý´Ï´Ù. ½ºÀ­Ä¡ --on-disk-template arg --in-repos-template arg ·Ê »õ·Ó°Ô ÀúÀå¼Ò(repository)¸¦ ¸¸µé·Á¸é ´ÜÁö ÀÌÇÏ¿Í °°ÀÌ ÇÕ´Ï´Ù: $ svnadmin create /usr/local/svn/repos svnadmin dump ÆÄÀÏ ½Ã½ºÅÛÀÇ ³»¿ëÀ» Ç¥ÁØ Ãâ·Â¿¡ ´ýÇÁ ÇÕ´Ï´Ù. ¿ë¹ý svnadmin dump REPOS_PATH [-r LOWER[:UPPER]] [--incremental] ¼³¸í ÆÄÀÏ ½Ã½ºÅÛÀÇ ³»¿ëÀ»'dumpfile'°¡¹Ý°¡´É Çü½Ä¿¡¼­ ´ýÇÁ ÇØ, ÁøÇà »óȲ (À»)¸¦ Ç¥ÁØ Ãâ·Â¿¡ Ç¥½ÃÇÕ´Ï´Ù. ¸®ºñÀü LOWER ·ÎºÎÅÍ, UPPER±îÁö¸¦ ´ýÇÁ ÇÕ´Ï´Ù. ¸®ºñÀüÀÌ ÁöÁ¤ µÇÁö ¾ÊÀ¸¸é ¸ðµç ¸®ºñÀü Æ®¸®¸¦ ´ýÇÁ ÇÕ´Ï´Ù. LOWER¸¸ÀÌ ÁöÁ¤µÇ¾úÀ» °æ¿ì´Â ÇϳªÀÇ ¸®ºñÀü Æ®¸®¸¸ ´ýÇÁ ÇÕ´Ï´Ù. ½ÇÁ¦ÀÇ »ç¿ë¹ý¿¡ ´ëÇؼ­´Â À» ºÁ ÁÖ¼¼¿ä. ½ºÀ­Ä¡ --revision (-r) --incremental ·Ê ÀúÀå¼Ò(repository) ÀüüÀÇ ´ýÇÁ: $ svnadmin dump /usr/local/svn/repos SVN-fs-dump-format-version: 1 Revision-number: 0 * Dumped revision 0. Prop-content-length: 56 Content-length: 56 … ÀúÀå¼Ò(repository)ÀÇ ÇϳªÀÇ Æ®·£Àè¼Ç(transaction)ÀÇ Â÷ºÐ ´ýÇÁ: $ svnadmin dump /usr/local/svn/repos -r 21 --incremental * Dumped revision 21. SVN-fs-dump-format-version: 1 Revision-number: 21 Prop-content-length: 101 Content-length: 101 … svnadmin help ¿ë¹ý svnadmin help [SUBCOMMAND...] ¼³¸í ÀÌ ¼­ºê Ä¿¸àµå´Â ³×Æ®¿öÅ© Á¢¼ÓÀÌ Àß µÇÁö ¾Ê°Ô µÇ¾î ÀÌ Ã¥ÀÇ Ä«ÇǸ¦ ÀÐÀ» ¼ö ¾ø°Ô µÇ°Å³ª ÇØ ¾îµð¿£°¡ Çì¸Å¾î ¹ö·È´Ù °°Àº ¶§¿¡ µµ¿òÀÌ µË´Ï´Ù. svnadmin load Ç¥ÁØ ÀÔ·ÂÀ¸·ÎºÎÅÍ´ýÇÁ Çü½Ä ÀÇ µ¥ÀÌÅ͸¦ ÀоîµéÀÔ´Ï´Ù. ¿ë¹ý svnadmin load REPOS_PATH ¼³¸í Ç¥ÁØ ÀÔ·ÂÀ¸·ÎºÎÅÍ´ýÇÁ Çü½Ä ÀÇ µ¥ÀÌÅ͸¦ Àоîµé¿©, ÀúÀå¼Ò(repository)ÀÇ ÆÄÀÏ ½Ã½ºÅÛ¿¡ »õ·Ó´Ù ¸®ºñÀüÀ» Ä¿¹ÔÇÕ´Ï´Ù. ÁøÇà »óȲÀº Ç¥ÁØ Ãâ·Â¿¡ Ç¥½ÃµË´Ï´Ù. ·Ê ÀÌ°ÍÀº ¹é¾÷ÆÄÀϷκÎÅÍ ÀúÀå¼Ò(repository)¸¦ ·ÎµåÇÏ´Â ÃÖÃÊÀÇ ºÎºÐÀÔ´Ï´Ù(¹°·Ð ¹Ì¸®svn dump·Î ´ýÇÁ ÇØ µÐ °ÍÀÔ´Ï´Ù): $ svnadmin load /usr/local/svn/restored < repos-backup <<< Started new txn, based on original revision 1 * adding path : test ... done. * adding path : test/a ... done. … svnadmin lstxns Ä¿¹ÔµÇ¾î ÀÖÁö ¾ÊÀº ¸ðµç Æ®·£Àè¼Ç(transaction)ÀÇ À̸§ÀÇ Ç¥½Ã. ¿ë¹ý svnadmin lstxns REPOS_PATH ¼³¸í Ä¿¹ÔµÇ¾î ÀÖÁö ¾ÊÀº ¸ðµç Æ®·£Àè¼Ç(transaction)ÀÇ À̸§À» Ç¥½ÃÇÕ´Ï´Ù. Ä¿¹ÔµÇ¾î ÀÖÁö ¾ÊÀº Æ®·£Àè¼Ç(transaction)´Â ¾î¶»°Ô ¸¸µé¾îÁ® ¾î¶»°Ô Ãë±ÞÇؾßÇÒ °ÍÀΰ¡¿¡ ´ëÇؼ­´Â À» ºÁ ÁÖ¼¼¿ä. ·Ê ÀúÀå¼Ò(repository)ÁßÀÇ ¹ÌÇØ°áÀÇ Æ®·£Àè¼Ç(transaction) À϶÷ÀÇ Ç¥½Ã. $ svnadmin lstxns /usr/local/svn/repos/ 1w 1x svnadmin recover ÀúÀå¼Ò(repository)ÁßÀÌ ¾ø¾îÁø »óȲÀÇ º¹¿ø. ¿ë¹ý svnadmin recover REPOS_PATH ¼³¸í ÀúÀå¼Ò(repository)´Â ¼öº¹µÉ ÇÊ¿ä°¡ ÀÖ´Ù°í ÇÏ´Â ¿¡·¯ ¸Þ¼¼Áö¸¦ ¹Þ¾Æµé¿´´Ù ¶§·Î´Â ÀÌ Ä¿¸àµå¸¦ ½ÇÇàÇØ ÁÖ¼¼¿ä. ÀúÀå¼Ò(repository)¿¡ ¾×¼¼½º ÇÏ°í ÀÖ´Â °ÍÀÌ ÀڽŠ»ÓÀÌ´Ù°í ÇÏ´Â °ÍÀÌ ¿ÏÀüÇÏ°Ô È®½ÇÇÑ °æ¿ì¿¡¸¸ ÀÌ Ä¿¸àµå¸¦ ½ÇÇàÇØ ÁÖ¼¼¿ä—ÀÌ Ä¿¸àµå¿¡´Â ¹èŸÀûÀÎ ¾×¼¼½º±ÇÀÌ ÇÊ¿äÇÕ´Ï´Ù. ÀúÀå¼Ò(repository)ÀÇ ¼öº¹¿¡ °üÇÑ ÀÚ¼¼ÇÑ °ÍÀº (À»)¸¦ ºÁ ÁÖ¼¼¿ä. ·Ê Çó ÇØ ¹ö¸° ÀúÀå¼Ò(repository)ÀÇ ¼öº¹: $ svnadmin recover /usr/local/svn/repos/ Acquiring exclusive lock on repository db. Recovery is running, please stand by... Recovery completed. The latest repos revision is 34. svnadmin rmtxns ÀúÀå¼Ò(repository)·ÎºÎÅÍ Æ®·£Àè¼Ç(transaction)¸¦ »èÁ¦ÇÕ´Ï´Ù. ¿ë¹ý svnadmin rmtxns REPOS_PATH TXN_NAME... ¼³¸í ¹ÌÇØ°áÀÇ Æ®·£Àè¼Ç(transaction)¸¦ ÀúÀå¼Ò(repository)·ÎºÎÅÍ »èÁ¦ÇÕ´Ï´Ù. ÀÌ°ÍÀº,±×¸®°í ÀÚ¼¼ÇÏ°Ô Á¢ÇÒ ¼ö ÀÖ°í ÀÖ½À´Ï´Ù. ·Ê À̸§ÀÌ ºÙÀº Æ®·£Àè¼Ç(transaction)ÀÇ »èÁ¦: $ svnadmin rmtxns /usr/local/svn/repos/ 1w 1x Çà¿îÀÇ ÀÏ·Î, svn lstxns ÀÇ Ãâ·ÂÀº, rmtxnsÀÇ ÀԷ°ú °°Àº Á¤µµ Àß ¿òÁ÷ÀÔ´Ï´Ù: $ svnadmin rmtxns /usr/local/svn/repos/ `svnadmin lstxns /usr/local/svn/repos/` ÀÌ°ÍÀº ÀúÀå¼Ò(repository)·ÎºÎÅÍ ¸ðµç Ä¿¹ÔµÇ¾î ÀÖÁö ¾ÊÀº Æ®·£Àè¼Ç(transaction) (À»)¸¦ »èÁ¦ÇÕ´Ï´Ù. svnadmin setlog ¸®ºñÀü¿¡ ·Î±× ¸Þ¼¼Áö¸¦ ¼³Á¤ÇÕ´Ï´Ù. ¿ë¹ý svnadmin setlog REPOS_PATH -r REVISION FILE ¼³¸í FILEÀÇ ³»¿ëÀ» ¸®ºñÀü REVISIONÀÇ ·Î±× ¸Þ¼¼Áö·Î¼­ ¼³Á¤ÇÕ´Ï´Ù. ÀÌ°ÍÀº,svn propset --revprop¸¦ »ç¿ëÇØ ¸®ºñÀü»ó¿¡ svn:log¼Ó¼ºÀ» ¼³Á¤ÇÏ´Â °Í°ú ´à¾Æ ÀÖ½À´Ï´Ù¸¸, ¸¦ »ç¿ëÇØ Ä¿¹Ô ÀüÈÄÀÇ ÈÅÀÇ ½ÇÇàÀ» ÇÇÇÑ´Ù ÀÏÀÌ »ý±é´Ï´Ù. ÀÌ°ÍÀº pre-revprop-change ÈÅÁß¿¡¼­ ¸®ºñÀü ¼Ó¼ºÀÇ ¼öÁ¤ ÇÏÁö¸¸ À¯È¿ÇÏÁö ¾Ê´Â °æ¿ì¿¡ Æí¸®ÇÕ´Ï´Ù. ¸®ºñÀü ¼Ó¼ºÀº ¹öÀü °ü¸®ÇÏ¿¡´Â ¾ø±â ¶§¹®¿¡ ÀÌ Ä¿¸àµå´Â ÀÌÀüÀÇ ·Î±× ¸Þ¼¼Áö¸¦ ¿ÏÀüÇÏ°Ô µ¡¾²±âÇØ ¹ö¸³´Ï´Ù. ½ºÀ­Ä¡ --revision (-r) ARG --bypass-hooks ·Ê ÆÄÀÏ'msg'ÀÇ ³»¿ëÀ» ¸®ºñÀü 19ÀÇ ·Î±× ¸Þ¼¼Áö·Î ¼³Á¤ÇÕ´Ï´Ù: $ svnadmin setlog /usr/local/svn/repos/ -r 19 msg <command>svnlook</command> svnlook ´Â Subversion ÀúÀå¼Ò(repository)ÀÇ ´Ù¸¥ ºÎºÐÀ» Á¶»çÇϱâ À§ÇÑ Ä¿¸àµå ¶óÀÎ ÅøÀÔ´Ï´Ù. ÀÌ Ä¿¸àµå´Â ÀúÀå¼Ò(repository)¿¡´Â ¹«½¼ º¯°æµµ ´õÇÏÁö ¾Ê½À´Ï´Ù—´ÜÁöÁ¶»çÇϴ½ÍÀº ¿¡ ÀÌ¿ëµË´Ï´Ù. svnlook´Â ÀúÀå¼Ò(repository) ÈÅÀ¸·Î ÀÌ¿ëµÇ´Â °ÍÀÌ ÀüÇüÀûÀÔ´Ï´Ù¸¸, ÀúÀå¼Ò(repository) °ü¸®ÀÚ´Â Áø´ÜÀÇ ¸ñÀûÀ¸·Îµµ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â °Í¿¡ ´«Ä¡Ã§Áöµµ ¾Ë·ÁÁöÁö ¾Ê½À´Ï´Ù. svnlook ´Â Á÷Á¢ ÀúÀå¼Ò(repository)¿¡ ¾×¼¼½º ÇÏ´Â ÇüÅ·Π½ÇÇàµÈ´Ù ÀÇ·Î(±×¸®°í, ±×°ÍÀÌ ÀÌÀ¯·Î ÀúÀå¼Ò(repository)ÀÇ Á¸ÀçÇÏ´Â ¸Ó½Å»ó¿¡¼­¸¸ ÀÌ¿ëÇÏ´Â °ÍÀÌ ÇÒ ¼ö ÀÖ½À´Ï´Ù¸¸), URL°¡ ¾Æ´Ï°í, Æнº ¸íĪ¿¡ ÀÇÇØ ÀúÀå¼Ò(repository)¸¦ ÂüÁ¶ÇÕ´Ï´Ù. ¸®ºñÀüÀ̳ª Æ®·£Àè¼Ç(transaction)°¡ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é, svnlook ´Â ÀúÀå¼Ò(repository)ÀÇ ÃֽŠ¸®ºñÀüÀ» »ç¿ëÇÕ´Ï´Ù. <command>svnlook</command>½ºÀ­Ä¡ svnlook ÁßÀÇ ½ºÀ­Ä¡´Â svn ³ªsvnadminµî°ú ÇÔ²²·Î ±Û·Î¹úÇÏ°Ô ÀÏÇÕ´Ï´Ù¸¸, (Á¤µµ)¸¸Å­ ¾î´À ½ºÀ­Ä¡´Â ÇϳªÀÇ ¼­ºê Ä¿¸àµå¿¡ ¹Û¿¡ È¿°ú°¡ ¾ø½À´Ï´Ù. ±×°ÍÀºsvnlookÀÇ ±â´ÉÀÇ À¯È¿ ¹üÀ§°¡(ÀǵµÀûÀ¸·Î) ÇÑÁ¤µÇ¾î Àֱ⠶§¹®ÀÔ´Ï´Ù. svnlook°¡ »èÁ¦µÈ ÆÄÀÏÀÇ Â÷À̸¦ Ç¥½ÃÇÏÁö ¾Ê°Ô ÇÕ´Ï´Ù. Æ®·£Àè¼Ç(transaction)/¸®ºñÀüÁß¿¡¼­ ÆÄÀÏÀÌ »èÁ¦µÇ¾úÀ» ¶§ÀÇ µðÆúÆ® µ¿ÀÛÀº, ±× ÆÄÀÏÀÌ ºó ÆÄÀϷμ­ ³²¾Æ ÀÖÀ» ¶§ °Í°ú °°°Ô µË´Ï´Ù. () Á¶»çÇÏ°í ½ÍÀº ƯÁ¤ÀÇ ¸®ºñÀü ¹øÈ£¸¦ ÁöÁ¤ÇÕ´Ï´Ù. () Á¶»çÇÏ°í ½ÍÀº ƯÁ¤ÀÇ Æ®·£Àè¼Ç(transaction) ¹øÈ£¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÆÄÀÏ ½Ã½ºÅÛ Æ®¸®ÁßÀÇ, °¢°¢ÀÇ Æнº¸¶´ÙÀÇ ÆÄÀÏ ½Ã½ºÅÛ ³ëµå ¸®ºñÀü ¹øÈ£¸¦ Ç¥½ÃÇÕ´Ï´Ù. <command>svnlook</command> ¼­ºê Ä¿¸àµå svnlook author ó¸®ÇÑ »ç¶÷ÀÇ Ç¥½Ã. ¿ë¹ý svnlook author REPOS_PATH ¼³¸í ÀúÀå¼Ò(repository)ÀÇ ¸®ºñÀüÀ̳ª Æ®·£Àè¼Ç(transaction)¸¦ ½ÇÇàÇß´Ù »ç¶÷À» Ç¥½ÃÇÕ´Ï´Ù. ½ºÀ­Ä¡ --revision (-r) --transaction (-t) ·Ê svnlook author´Â Æí¸®ÇÕ´Ï´Ù¸¸, ±×¸¸Å­ Àç¹ÌÀÖ´Â Ä¿¸àµå°¡ ¾Æ´Õ´Ï´Ù: $ svnlook author -r 40 /usr/local/svn/repos sally svnlook cat ÆÄÀÏÀÇ ³»¿ëÀ» Ç¥½ÃÇÕ´Ï´Ù ¿ë¹ý svnlook cat REPOS_PATH PATH_IN_REPOS ¼³¸í ÆÄÀÏÀÇ ³»¿ëÀ» Ç¥½ÃÇÕ´Ï´Ù. ½ºÀ­Ä¡ --revision (-r) --transaction (-t) ·Ê ÀÌÇÏ´Â/trunk/README ¿¡ ÀÖ´Â Æ®·£Àè¼Ç(transaction) ax8ÁßÀÇ ÆÄÀÏÀÇ ³»¿ëÀ» Ç¥½ÃÇÏ°í ÀÖ½À´Ï´Ù: $ svnlook cat -t ax8 /usr/local/svn/repos /trunk/README Subversion, a version control system. ===================================== $LastChangedDate: 2003-07-17 10:45:25 -0500 (Thu, 17 Jul 2003) $ Contents: I. A FEW POINTERS II. DOCUMENTATION III. PARTICIPATING IN THE SUBVERSION COMMUNITY … svnlook changed º¯°æµÈ Æнº¸¦ Ç¥½ÃÇÕ´Ï´Ù. ¿ë¹ý svnlook changed REPOS_PATH ¼³¸í svn update-style ÀÇ Á¦ÀÏ ½ºÅ×ÀÌÅͽº ij¸¯ÅÍ¿Í °°ÀÌ Æ¯Á¤ÀÇ ¸®ºñÀüÀ̳ª Æ®·£Àè¼Ç(transaction)·Î º¯°æµÈ Æнº¸¦ Ç¥½ÃÇÕ´Ï´Ù: A ´Â Ãß°¡,D ´Â »èÁ¦,U ´Â ¼öÁ¤À» ³ªÅ¸³À´Ï´Ù. ½ºÀ­Ä¡ --revision (-r) --transaction (-t) ·Ê Å×½ºÆ® ÀúÀå¼Ò(repository)ÀÇ ¸®ºñÀü 99·Î ¼öÁ¤ÇÑ ¸ðµç ÆÄÀÏÀÇ À϶÷À» Ç¥½ÃÇÕ´Ï´Ù: $ svnlook changed -r 39 /usr/local/svn/repos A trunk/vendors/deli/ A trunk/vendors/deli/chips.txt A trunk/vendors/deli/sandwich.txt A trunk/vendors/deli/pickle.txt svnlook date ÀÏÀÚ¸¦ Ç¥½ÃÇÕ´Ï´Ù. ¿ë¹ý svnlook date REPOS_PATH ¼³¸í ÀúÀå¼Ò(repository)ÁßÀÇ Æ¯Á¤ ¸®ºñÀüÀ̳ª Æ®·£Àè¼Ç(transaction)ÀÇ ÀÏÀÚ¸¦ Ç¥½ÃÇÕ´Ï´Ù. ½ºÀ­Ä¡ --revision (-r) --transaction (-t) ·Ê ÀÌ°ÍÀº, Å×½ºÆ® ÀúÀå¼Ò(repository)ÀÇ ¸®ºñÀü 40ÀÇ ÀÏÀÚ¸¦ Ç¥½ÃÇÕ´Ï´Ù: $ svnlook date -r 40 /tmp/repos/ 2003-02-22 17:44:49 -0600 (Sat, 22 Feb 2003) svnlook diff º¯°æµÈ ÆÄÀÏ, µð·ºÅ丮ÀÇ Â÷ºÐÀ» Ç¥½ÃÇÕ´Ï´Ù. ¿ë¹ý svnlook diff REPOS_PATH ¼³¸í ÀúÀå¼Ò(repository)Áß¿¡¼­ º¯°æµÈ ÆÄÀÏ, ¼Ó¼ºÀÇ Â÷ºÐÀ» GNU Çü½Ä¿¡¼­ Ç¥½ÃÇÕ´Ï´Ù. ½ºÀ­Ä¡ --revision (-r) --transaction (-t) --no-diff-deleted ·Ê ÀÌ°ÍÀº, »õ·Ó°Ô Ãß°¡µÈ ÆÄÀÏ(ºó ÆÄÀÏ), »èÁ¦µÈ ÆÄÀÏ, Ä«ÇǵǾú´Ù ÆÄÀÏÀ» Ç¥½ÃÇÕ´Ï´Ù: $ svnlook diff -r 40 /usr/local/svn/repos/ Copied: egg.txt (from rev 39, trunk/vendors/deli/pickle.txt) Added: trunk/vendors/deli/soda.txt ============================================================================== Modified: trunk/vendors/deli/sandwich.txt ============================================================================== --- trunk/vendors/deli/sandwich.txt (original) +++ trunk/vendors/deli/sandwich.txt 2003-02-22 17:45:04. 000000000 -0600 @@ -0, 0 +1 @@ +Don't forget the mayo! Deleted: trunk/vendors/deli/chips.txt ============================================================================== Deleted: trunk/vendors/deli/pickle.txt ============================================================================== svnlook dirs-changed º¯°æÀÌ ÀÖ´ø µð·ºÅ丮¸¦ Ç¥½ÃÇÕ´Ï´Ù. ¿ë¹ý svnlook dirs-changed REPOS_PATH ¼³¸í (¼Ó¼ºÀ» ÆíÁý¿¡ ÀÇÇØ) ±×°Í ÀÚ½ÅÀ¸·Î º¯°æÀÌ ÀÖ¾ú´ÂÁö, ±× ¾ÆÀÌÀÇ ÆÄÀÏ·Î º¯°æÀÌ ÀÖ´ø µð·ºÅ丮¸¦ Ç¥½ÃÇÕ´Ï´Ù. ½ºÀ­Ä¡ --revision (-r) --transaction (-t) ·Ê ¿ì¸®ÀÇ »ùÇà ÀúÀå¼Ò(repository)ÁßÀÇ ¸®ºñÀü 40À¸·Î ¼öÁ¤µÇ¾ú´Ù µð·ºÅ丮¸¦ Ç¥½ÃÇÕ´Ï´Ù: $ svnlook dirs-changed -r 40 /usr/local/svn/repos trunk/vendors/deli/ svnlook help ¿ë¹ý Also svnlook -h and svnlook -?. ¼³¸í svnlook ÀÇ ÇïÇÁ¸¦ Ç¥½ÃÇÕ´Ï´Ù. svn helpÀÇ ÇïÇÁ¿Í °°¾Æ, ¹«¾ùÀΰ¡°¡ ¸ð¸£°Ô µÇ¾úÀ» ¶§¿¡´Â Ç×»ó µµ¿òÀÌ µË´Ï´Ù. svnlook history ÀúÀå¼Ò(repository)ÁßÀÇ ÆнºÀÇ È÷½ºÅ丮¿¡ °üÇÑ Á¤º¸¸¦ Ç¥½ÃÇÕ´Ï´Ù (ȤÀº Æнº°¡ ÁöÁ¤µÇÁö ¾Ê¾Ò´ø °æ¿ì¿¡´Â ·çÆ® µð·ºÅ丮°¡ µË´Ï´Ù). ¿ë¹ý svnlook history REPOS_PATH [PATH_IN_REPOS] ¼³¸í ÀúÀå¼Ò(repository)ÁßÀÇ ÆнºÀÇ È÷½ºÅ丮¿¡ °üÇÑ Á¤º¸¸¦ Ç¥½ÃÇÕ´Ï´Ù (ȤÀº Æнº°¡ ÁöÁ¤µÇÁö ¾Ê¾Ò´ø °æ¿ì¿¡´Â ·çÆ® µð·ºÅ丮°¡ µË´Ï´Ù). ½ºÀ­Ä¡ --revision (-r) --show-ids ·Ê ÀÌÇÏ´Â ¿¹·Î¼­ ¸¸µç ÀúÀå¼Ò(repository)ÀÇ ¸®ºñÀü 15 ·Î º¸¾Ò´Ù Æнº/tags/1. 0ÀÇ È÷½ºÅ丮 Ç¥½ÃÀÔ´Ï´Ù. $ svnlook history -r 20 /usr/local/svn/repos /tags/1. 0 --show-ids REVISION PATH <ID> -------- --------- 19 /tags/1. 0 <1. 2.12> 17 /branches/1. 0-rc2 <1. 1.10> 16 /branches/1. 0-rc2 <1. 1. x> 14 /trunk <1. 0. q> 13 /trunk <1. 0. o> 11 /trunk <1. 0. k> 9 /trunk <1. 0. g> 8 /trunk <1. 0. e> 7 /trunk <1. 0. b> 6 /trunk <1. 0.9> 5 /trunk <1. 0.7> 4 /trunk <1. 0.6> 2 /trunk <1. 0.3> 1 /trunk <1. 0.2> svnlook info ÀÛ¾÷ÀÚ, ÀÏÀÚ, ·Î±× ¸Þ¼¼ÁöÀÇ Å©±â, ·Î±× ¸Þ¼¼Áö¸¦ Ç¥½ÃÇÕ´Ï´Ù. ¿ë¹ý svnlook info REPOS_PATH ¼³¸í ÀÛ¾÷ÀÚ, ÀÏÀÚ, ·Î±× ¸Þ¼¼ÁöÀÇ Å©±â, ·Î±× ¸Þ¼¼Áö¸¦ Ç¥½ÃÇÕ´Ï´Ù. ½ºÀ­Ä¡ --revision (-r) --transaction (-t) ·Ê ÀÌ°ÍÀº »ùÇà ÀúÀå¼Ò(repository)ÀÇ ¸®ºñÀü 40¿¡ ´ëÇÑ info ÀÇ Ãâ·ÂÀÔ´Ï´Ù. $ svnlook info -r 40 /usr/local/svn/repos sally 2003-02-22 17:44:49 -0600 (Sat, 22 Feb 2003) 15 Rearrange lunch. svnlook log ·Î±× ¸Þ¼¼Áö¸¦ Ç¥½ÃÇÕ´Ï´Ù. ¿ë¹ý svnlook log REPOS_PATH ¼³¸í ·Î±× ¸Þ¼¼Áö¸¦ Ç¥½ÃÇÕ´Ï´Ù. ½ºÀ­Ä¡ --revision (-r) --transaction (-t) ·Ê ÀÌ°ÍÀº »ùÇà ÀúÀå¼Ò(repository)ÀÇ ¸®ºñÀü 40ÀÇ ·Î±× Ç¥½ÃÀÔ´Ï´Ù: $ svnlook log /tmp/repos/ Rearrange lunch. svnlook proplist ¹öÀüÈ­ µÈ ÆÄÀÏ°ú µð·ºÅ丮ÀÇ ¼Ó¼ºÀÇ À̸§°ú °ªÀ» Ç¥½ÃÇÕ´Ï´Ù. ¿ë¹ý svnlook proplist REPOS_PATH PATH_IN_REPOS ¼³¸í ÀúÀå¼Ò(repository)ÁßÀÇ ÆнºÀÇ ¼Ó¼ºÀ» À϶÷Ç¥ °¡¸®Åµ´Ï´Ù. -v¸¦ »ç¿ëÇØ ¼Ó¼ºÄ¡µµ Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ½ºÀ­Ä¡ --revision (-r) --transaction (-t) --verbose (-v) ·Ê ÀÌ°ÍÀº HEAD ¸®ºñÀü¿¡ ÀÖ´Â ÆÄÀÏ/trunk/README (À¸)·Î ¼³Á¤µÈ ¼Ó¼º¸íÀ» Ç¥½ÃÇÏ°í ÀÖ½À´Ï´Ù: $ svnlook proplist /usr/local/svn/repos /trunk/README original-author svn:mime-type ÀÌ°ÍÀº ÀüÀÇ ¿¹¿Í °°Àº Ä¿¸àµåÀÔ´Ï´Ù¸¸, À̹øÀº ¼Ó¼ºÄ¡µµ ÇÔ²² Ç¥½Ã ÇÏ°í ÀÖ½À´Ï´Ù: $ svnlook proplist /usr/local/svn/repos /trunk/README original-author : fitz svn:mime-type : text/plain svnlook tree Æ®¸®¸¦ Ç¥½ÃÇÕ´Ï´Ù. ¿ë¹ý svnlook tree REPOS_PATH [PATH_IN_REPOS] ¼³¸í PATH_IN_REPOS ·ÎºÎÅÍ ½ÃÀ۵Ǵ Ʈ¸®¸¦ Ç¥½ÃÇÕ´Ï´Ù. (PATH_IN_REPOS ÀÇ ÁöÁ¤ÀÌ ¾ø´Â °æ¿ì¿¡´Â ·çÆ®·ÎºÎÅÍ ½ÃÀ۵Ǵ Ʈ¸®¸¦ Ç¥½ÃÇÕ´Ï´Ù. ). ¿É¼ÇÀ¸·Î ³ëµå ¸®ºñÀü id¸¦ Ç¥½Ã½Ãų ¼öµµ ÀÖ½À´Ï´Ù. ½ºÀ­Ä¡ --revision (-r) --transaction (-t) --show-ids ·Ê ÀÌ°ÍÀº, (³ëµå ¹øÈ£ µ¹ÃâÇÏ°í) »ùÇà ÀúÀå¼Ò(repository)ÀÇ ¸®ºñÀü 40ÀÇ Æ®¸®¸¦ Ç¥½ÃÇÑ °ÍÀÔ´Ï´Ù: $ svnlook tree -r 40 /usr/local/svn/repos --show-ids / <0. 0.2j> trunk/ <p. 0.2j> vendors/ <q. 0.2j> deli/ <1g. 0.2j> egg.txt <1i.e. 2j> soda.txt <1k. 0.2j> sandwich.txt <1j. 0.2j> svnlook youngest Á¦ÀÏ ÃÖ±ÙÀÇ ¸®ºñÀü ¹øÈ£¸¦ Ç¥½ÃÇÕ´Ï´Ù. ¿ë¹ý svnlook youngest REPOS_PATH ¼³¸í ÀúÀå¼Ò(repository)¿¡ ÀÖ´Â Á¦ÀÏ ÃÖ±ÙÀÇ ¸®ºñÀü ¹øÈ£¸¦ Ç¥½ÃÇÕ´Ï´Ù. ·Ê ÀÌ°ÍÀº, »ùÇà ÀúÀå¼Ò(repository)ÀÇ Á¦ÀÏ ÃÖ±ÙÀÇ ¸®ºñÀü ¹øÈ£¸¦ Ç¥½ÃÇÏ°í ÀÖ½À´Ï´Ù: $ svnlook youngest /tmp/repos/ 42