ãã®è©±ã¯ãå€ãã®å€ãã®æ¹èšåã«å§ãŸããŸãã-ãã®åŸãSVNãªããžããªã¯åæã®ç¶æ
ã§ããããã®ååšã«ãã£ãŠãããåsecãããã°ã¯1ã€ããããŸããã§ããã æåã®ã³ããããæåã®ããŒã«ããã¯ããã°ãã¥ãŒ-ãããã¯ãã¹ãŠãšãŠããšããµã€ãã£ã³ã°ã§ããšãŠãæ°ãããã®ã§ããã ãããŠããªããžããªã¯ããããã®æåã®ããã®ãããªå¿«é©ãªã¹ãããããã®åŸåœŒãæè¡å°ã«å°ããšä»®å®ã§ããŸããïŒ
ãªããžããªã¯æé·ãã¯ã¬ãŒããæçããŸããã æéãçµã€ã«ã€ããŠãç§ã¯ã³ãããã«æ
£ããæåã®ã¿ã°ãçŸãããã©ã³ãã®å€¢ã§ããå®çŸäžå¯èœã«æããŸããã ãªããžããªã¯ä»ã®SVNãªããžããªãšç¥ãåãã«ãªãããã¡ã€ã«ãããã€ãã®ãªããžããªãšäº€æãå§ããŸããã æã
ã圌ã¯æ°ããå人ããé·ãéå€æŽãéãåºãããã®éçšã§å·®åã®åæã楜ããã§ããã
æåã®é²ãå°å¹³ç·äžã«çŸãå§ããã®ã¯ããªããžããªãéçºè
ã®äŒè©±ã§ãŸããŸã銎æã¿ã®ãªãåèªãGitããšãDVCSããèãå§ãããšãã§ãã 圌ã¯ãªããžããªã®å人ã«ããã«ã€ããŠå°ããããšããŸãããã圌ãã¯æ¥ãããããã«ç®ãããããã ãã§ãã...
æéãçµã€ã«ã€ããŠããããã®å¿é
ã¯ãããŸããŸãããã人çã¯ä»¥åãšåãã§ã¯ãªããªããŸããã ãªããžããªã¯æ¥èœãã人çã®æå³ã«ã€ããŠãã£ãšèãå§ããŸããã å€ãçµã³ã€ãã¯ãã¯ãåã³ãäžããããããè² æ
ã®å€ãäŸåé¢ä¿ã«å€ãããŸããã ããŒãžäžã«ãæªå€¢ãäžæº¶æ§ã®çŽäºã«ã€ããŠå€¢ãèŠãããã«ãªããŸããã
ã³ããããçªç¶åæ¢ãããšãã人çã¯ãã£ãããšæµããŸããã äžå®ãªäºæã¯ããã«åéããŸããã ãã¡ããããªããžããªã¯ãéçºè
ãäŒæããšããªããã°ãªããªããšããèãã§å®å¿ããããã«ãã¹ãŠãéåžžã®ã³ãŒã¹ã«æ»ããŸãããäœãæªãæãã¯å»ããŸããã§ããã
ããæ©ããã¢ãããã¯ãããŸããã ãæåŸã«ãsvn commitïŒãããªããžããªã¯å¹žçŠã«èããé·å¹Žã«ããã£ãŠå·§åŠã«ãã¢ã«é£ã³ã€ããã ãããã¯èª°ã§ããïŒããšåœŒã¯å°ããããããã«å¿ããŠã圌ã¯ãã¢ã®å€ã§ç·åŒµããã¹ãããã«ã ããèããã ã¹ããŒã³ã®äžã§åå£ã«åžã蟌ãŸããã ãã°ããããŠããã¢ã®åŸãã§ã圌ãã¯èšããŸããïŒãéããŠãsvnadmin dumpãã éããŠããæã§ããªããžããªã¯ãã¢ãéããŸãã...ãããŠãæèŠãªãã§èœã¡ãŸããã
ã³ãããã¯ç§ã®ç®ã®åã§æ¬¡ã
ãšç«¶ãåããçŸãããæ¶ãããããã®ã§ãäœåºŠãç¹°ãè¿ããŸããã ãSvnadminã®ããŒããsvnadminã®ãã³ããsvnadminã®ããŒããsvnadminã®ãã³ãã-ãªããžããªã¯äœãèµ·ãã£ãŠããã®ãç解ã§ãããæèãåãæ»ããããåã³å¿åŽã«å€±æããŸããã ãããŠãé ãã«ããå°ããªã¡ãã€ãã®å
ã ããåžæã«åœ±é¿ãäžããŸãã...
䞻人å
¬ããã°ãã眮ããŠãäœãèµ·ãã£ãã®ããææ¡ããŸãããã
éçºè
ã®ç®ãéããŠ
è³¢æãªèªè
ã¯ãRepositoryãããèªèº«ãèŠã€ããç¶æ³ãäœããã®åœ¢ã§
åæ£ããŒãžã§ã³ç®¡çã·ã¹ãã ã«é¢é£ããŠãããšç€ºåãããããããŸããã ããããŸãã«èµ·ãã£ãããšã§ã-éçºè
ã¯
Mercurialã®ãã¹ãŠã®å©ç¹ãå¹ã蟌ãŸããããã§ãã¹ãŠã®ã³ãŒãã移è¡ããããšã«æ±ºããŸããã ããããSubversionããMercurialãžã®ç§»è¡ã¯éåžžã«ç°¡åã«è¡ãããšãã§ããŸããããªããªããžããªãèŠãããå¿
èŠããã£ãã®ã§ããïŒ
äºå®ã¯ãéçºè
ã2ã€ã®ééããç¯ãåã«ãä»ã§ã¯ãã¹ãŠã®æ å
ãèŠããŠãããšããããšã§ãã
- æåã¯ããã¹ãŠã®ãã¹ããã©ã¯ãã£ã¹ã«åããŠãåŸæ¥ã®ãã©ã«ããã©ã³ã¯ããã©ã³ããã¿ã°ãäœæããããšãªãããªããžããªã®ã«ãŒãã«ã³ããããå§ããŸããã ãã®åŸããããã®ãã©ã«ããŒãäœæããããã¡ã€ã«ã転éãããŸãããããåãã®ãšããããªããžããªããã³ããããæ¶å»ããããšã¯ãããŸããã ããŠããã¹ãŠãå€æŽããªããŸãŸã«ããŠãããšãMercurialã«ç§»è¡ãããšãã«ããã©ã³ã¯ã®å€åŽã®ã³ããããæ¶ããŸãã
- ç§ãã¡ãæãåºãããã«ãããŒããŒã®ãªããžããªã¯ãé¢åãªäŸåé¢ä¿ãã«é¥ã£ãŠããŸãããã¡ãããããã§ã¯ãsvnïŒexternalsã«ã€ããŠè©±ããŠããŸãã åã«ããã®æè¡ã®äžæŽåã«ã€ããŠè©±ããŸããã çŸåšãMercurialã«ç§»è¡ããå ŽåãsvnïŒexternalsã移è¡ããç°¡åãªæ¹æ³ã¯ãããŸããã
SubversionããMercurialã«å±¥æŽå
šäœãæ£ãã転éããããã«ãéçºè
ã¯SVNãªããžããªãå€æŽããŠäžèšã®åé¡ãåãé€ãããšã«ããŸããã
ã¡ã¹ã®äžã®ãªããžããª
ãªããžããªãå€æŽããã«ã¯ããŸãsvnadminãŠãŒãã£ãªãã£ãå¿
èŠã§ãããã®ãŠãŒãã£ãªãã£ã䜿çšãããšãSVNãªããžããªã®å®å
šãªãã³ããç¹å®ã®ãªããžã§ã³ãŸãã¯ãªããžã§ã³ã®ç¯å²ã®ãã³ããããã³æ¢åã®ãªããžããªãžã®ããŒã«ãã³ããäœæã§ããŸãã WindowsãŠãŒã¶ãŒã®å°ããªäœè«-ãã®ãŠãŒãã£ãªãã£ã¯TortoiseSVNã®äžéšã§ã¯ãããŸããããsvnadminãååšãã
Slik SVNãªã©ã®è¿œå ã®Subversionã¯ã©ã€ã¢ã³ããã€ã³ã¹ããŒã«ã§ããŸãã
ãªããžããªãå€æŽããäžè¬çãªèãæ¹ã¯æ¬¡ã®ãšããã§ãããæ£ãããã³ããããå€æŽããã«ã³ããŒãããééã£ããã³ããããæåã§çœ®ãæããããšã«ããããªããžããªãæåããåäœæããå¿
èŠããããŸãã ç§ãã¡ã®å Žåãæ£ç¢ºæ§ã¯ãã³ãããã«svnïŒexternalsã®èšåãå«ãŸããŠãããããã¹ãŠã®ãã¡ã€ã«ããã©ã³ã¯ã«ããç¶æ³ãšããŠç解ãããŸãã åæ§æåŸãå€æŽãããã³ãããã®å
ã®ã³ãããã®æ¥ä»ãšæå»ã調æŽããå¿
èŠããããŸãã
ã¡ãœããã®åäœãç解ããããã«ãå®éã®ãªããžããªã®å€æŽãæ€èšããŠãã ããã äžèšã®åé¡ããã¹ãŠå«ãå°ããªãã¹ããªããžããªãæºåããŸããã ãã³ãïŒdemo_repo.dmpïŒã¯ã
ãã¡ãã®èšäºã«èšèŒãããŠããä»ã®ãã³ããšäžç·ã«ããŠã³ããŒãã§ããŸãã
ãªããžããªã«ã¯8ã€ã®ãªããžã§ã³ãå«ãŸããŠããŸãããããããã®èª¬æã次ã«ç€ºããŸãã
- ãªããžããªã®ã«ãŒãã«ããã¹ããã¡ã€ã«ãè¿œå ãããŸããã
- å°ããªCïŒHelloWorldãããžã§ã¯ãããªããžããªã®ã«ãŒãã«è¿œå ãããŸããã
- ãã©ã³ã¯ãã¿ã°ããã©ã³ããã©ã«ããè¿œå ãããŸããã ã«ãŒãããã®ãã¹ãŠã®ãã¡ã€ã«ã¯ãã©ã³ã¯ã«ç§»åãããŸãã
- ããµãŒãããŒãã£ããã©ã«ããŒãè¿œå ãããå€éšãªããžããªãŒãããµããã©ã«ããŒã«ãã¡ã€ã«ãããŠã³ããŒãããããã®svnïŒexternalsããããã£ãŒãèšå®ãããŸããã
- ããµãŒãããŒãã£ããã©ã«ããŒã®svnïŒexternalsããããã£ãåé€ããããã©ã³ã¯ãã©ã«ããŒã«èšå®ãããŸããã
- ãã©ã³ã¯ããããã¹ããã¡ã€ã«ãåé€ããŸããã
- ãã©ã³ã¯ãã©ã«ããŒã«ã¯svnïŒignoreããããã£ãèšå®ãããŠããŸãã HelloWorldã®äžéšã®ãã¡ã€ã«ãå€æŽããŸããã
- ãã©ã³ã¯ã«ããã¹ããã¡ã€ã«ãè¿œå ããŸããã HelloWorldã®ãµããã©ã«ããŒãåé€ããŸããã
æããã«ãããã§ã®ãæ£ããããã®ã¯ãªããžã§ã³6ãš8ã®ã¿ã§ããæ®ãã¯ãã¹ãŠäœããã®æ¹æ³ã§ä¿®æ£ããå¿
èŠããããŸãã
ãªããžã§ã³1ã2ã3ã®åé¡ã¯ããã¡ã€ã«ããã©ã³ã¯ã®å€åŽã«ããããšã§ãã ãããä¿®æ£ããããã«ããããã®åã«1ã€ã®ã³ããããæ¿å
¥ãããã©ã³ããã¿ã°ããã©ã³ã¯ãã©ã«ããŒãäœæããŸãã ãã¡ã€ã«ããã©ã³ã¯ã«è¿œå ãããããã«ãã³ããã1ããã³2ãå€æŽããŸãã ã³ããã3ã¯å®å
šã«åé€ãããŸãã
ãªããžã§ã³4ãš5ã¯svnïŒexternalsã«é¢é£ããŠããŸããå€éšã®äŸåé¢ä¿ãå€éšãªããžããªããããŒãããããã¡ã€ã«ã«çŽæ¥çœ®ãæããå¿
èŠããããŸãã ãªããžã§ã³7ã¯æããã«ç¡å®³ã§ãããsvnïŒexternalsã«éæ¥çã«é¢é£ããŠããŸãã詳现ã¯åŸã§èª¬æããŸãã
ããã§ã¯å§ããŸãããã Windowsã®ãªããžããªãå€æŽããŸãããããšãã°Linuxã®å ŽåãšãŸã£ããåãæé ãå®è¡ããããšã劚ãããã®ã¯ãããŸããã
SVNãåãé€ãïŒå€éš
ããã«ãã¹ãŠã®ã³ãããããã©ã³ã¯ã«ç§»åããŠãsvnïŒexternalsãåé€ããªãã§ãã ããã ãããã®ã¿ã¹ã¯ãé çªã«å®äºããããšããå§ãããŸãã 2çªç®ã®ã¿ã¹ã¯ããå§ããŸãã
ãŸããæåã§çœ®ãæããå¿
èŠãããåé¡ã®ãããã¹ãŠã®ãªããžã§ã³ãèå¥ããå¿
èŠããããŸãã ããã¹ããšãã£ã¿ã§ãªããžããªã®å®å
šãªãã³ããéãïŒ
ã¡ã¢åž³++ã䜿çšïŒããsvnïŒexternalsããšãããã¬ãŒãºã®åºçŸãé çªã«æ¢ããŸãã ãããã¯å¿
èŠä»¥äžã«å€ããªãå¯èœæ§ããããŸããç§ãã¡ã¯ãã®ãããªçºçã«ã®ã¿èå³ããããŸã
K 13
svnïŒå€èŠ³
ãã®ãããªå Žæããšã«ãäžã®ãRevision-numberïŒããšããè¡ãèŠã€ããå¿
èŠããããŸãã å¿
èŠãªåé¡ã®ãããªããžã§ã³ã®çªå·ãå«ãŸããŠããŸãã
ãã¹ããªããžããªã®ãã³ãã®æåŸã«å°éãããšã4ã5ãããã³7ã®åé¡ãªããžã§ã³çªå·ãååŸããå¿
èŠããããŸãã
次ã«ãå€æŽãå¿
èŠãšããªããªããžã§ã³çšã®éšåãã³ããæºåããå¿
èŠããããŸãã ãããè¡ãã«ã¯ïŒ
- ãªããžããªãå®å
šã«ããŒã«ã«ãã©ã«ããŒã«ããŒãããfull_repoãšåŒã³ãŸãã ããã¯ã次ã®ã³ãã³ãã©ã€ã³åŒã³åºãã䜿çšããŠè¡ãããŸãã
CïŒ\ Subversion> svnadmin create full_repo
CïŒ\ Subversion> svnadmin load full_repo <demo_repo.dmp
- 次ã«ãå€æŽããå¿
èŠã®ãªããªããžããªã®ãªããžã§ã³ïŒ1-3ã6ã8ïŒã®ãã³ããæºåããŸãã
CïŒ\ Subversion> svnadmin dump full_repo -r 0ïŒ3 --incremental> demo0_3.dmp
CïŒ\ Subversion> svnadmin dump full_repo -r 6 --incremental> demo6.dmp
CïŒ\ Subversion> svnadmin dump full_repo -r 8 --incremental> demo8.dmp
- çµæã®ãã³ãã«æååãsvnïŒexternalsããå«ãŸããŠããªãããšã確èªããŠãã ããã ä»ãããããæ
éã«ç¢ºèªããããšãéèŠã§ãããã®æ®µéã§èª€ã£ãŠééãããšãå°æ¥ã®ç掻ãéåžžã«è€éã«ãªããŸãã
次ã«ãå€æŽããããªããžããªã®äœæãéå§ããŸãã æåã«ãæåã®3ã€ã®ãªããžã§ã³ãããŒãããŸãïŒããšãã°ãresult_repoãšåŒã³ãŸãããïŒïŒ
CïŒ\ Subversion> svnadmin create result_repo
CïŒ\ Subversion> svnadmin load result_repo <demo0_3.dmp
次ã«ã4çªç®ã®ã³ããããä¿®æ£ããå¿
èŠããããŸãã ãããè¡ãã«ã¯ãæ°ãããªããžããªããã§ãã¯ã¢ãŠãããå¿
èŠããããŸãã ããã«ã¯ãTortoiseSVNã䜿çšãããã次ã®ããã«ã³ãã³ãã©ã€ã³ããäœæ¥ãç¶è¡ã§ããŸãã
CïŒ\ Subversion> svn co fileïŒ/// CïŒ/ Subversion / result_repo result_checkout
ãã¹ãŠãèšç»ã©ããã§ããããšã確èªããŸã-result_checkoutãã©ã«ããŒã«ç§»åããŠã3ã€ã®ãªããžã§ã³ãããŒããããŠããããšã確èªããŸãã
CïŒ\ Subversion> cd result_checkout
CïŒ\ Subversion \ result_checkout> svn log -l 1
-------------------------------------------------- ----------------------
r3 | ã·ããšã| 2010-12-09 23:53:09 +0600ïŒ2010幎12æ9æ¥æšææ¥ïŒ| 1è¡
ãã©ã³ã¯ã«ç§»åããŸããã
-------------------------------------------------- ----------------------
ããã§ããæ£ããã4åç®ã®ã³ããããå®è¡ããå¿
èŠããããŸãã ãããè¡ãã«ã¯ã4çªç®ã®ãªããžã§ã³ã®å
ã®ãªããžããªã®ç¶æ
ãå¿
èŠã§ãã ãããã£ãŠãç§ãã¡ã¯åœŒã®ããã«ãã§ãã¯ã¢ãŠããè¡ããŸãããããã«æ¹èšçªå·4ã«ãªããŸãã
CïŒ\ Subversion \ result_checkout> cd ..
CïŒ\ Subversion> svn co fileïŒ/// CïŒ/ Subversion / full_repo full_checkout -r 4
å€éšãªããžããªãããã¡ã€ã«ãããŠã³ããŒãããããããæåŸã®ã³ãã³ãã«ã¯å°ãæéããããå ŽåããããŸãã
æèšã確èªããŠãã ããã äœæ¥ãã©ã«ããŒã¯æ¬¡ã®ããã«ãªããŸãã
ãŸããTortoiseSVNã®full_checkoutã®ãã°ã¯æ¬¡ã®ããã«ãªããŸãã
ãã°ã§ã¯ã第4ãªããžã§ã³ã§äœãå€æŽããããã確èªããŸãã ãããŠã以äžãå€æŽãããŸãã-ããµãŒãããŒãã£ããã©ã«ããŒããã©ã³ã¯ã«è¿œå ãããŸããããåçŽã§ã¯ãããŸããããsvnïŒexternalsããããã£ãèšå®ãããŠããŸãïŒ
iTextSharp https://itextsharp.svn.sourceforge.net/svnroot/itextsharp/tags/iTextSharp_5_0_5/iTextSharp/text/xml/simpleparser/
ãããã£ãŠã4åç®ã®ã³ããããä¿®æ£ããã«ã¯ãä¿®æ£ãããªããžããªã«/ trunk / 3rd party / iTextSharpãã©ã«ããŒãè¿œå ããŠã³ãããããå¿
èŠããããŸãã
- result_checkout / trunkã«ç§»åããŸã
- ãµãŒãããŒãã£ã®ãã©ã«ããŒãäœæãã
- full_checkoutããiTextSharpãã©ã«ããŒãã³ããŒããŸã
- .svnãµããã©ã«ããŒãåé€ããŸã
- result_checkoutãªããžããªå
ã®ãã¹ãŠã®ã³ã³ãã³ããå«ããµãŒãããŒãã£ã®ãã©ã«ããŒãè¿œå ïŒsvn addïŒ
- 次ã®ããã«ãå
ã®çœ²åãä¿æããŠã³ãããããŸãã
CïŒ\ Subversion \ result_checkout> svn commit -m "å€éšåç
§ãè¿œå ããŸãã"
OKãæåã®å€æŽãããã³ãããããããŸãïŒ ãã ããå
ã«é²ãåã«ããã®ãããªããã»ã¹ã®éçšã§ãšã©ãŒãäœã«æºã¡ãŠããããèããŠã¿ãŸãããïŒããšãã°ãééã£ããã®ãã³ãããããããééã£ããã³ããããŒã«ããå ŽåïŒã ãªããžããªã«ã¯8åã®ã³ãããã§ã¯ãªã2000åã®ã³ãããããããåããŠsvnïŒexternalsããªããžã§ã³çªå·1200ã«ãããšæ³åããŠãã ããã ãã®å Žåãæåã®ãã³ãïŒ0ã1199ã®ãªããžã§ã³ïŒãæ¢ã«èªã¿èŸŒãŸããŠããããããã§ãã¯ã¢ãŠãã«ã¯æéãããããŸãã
ãšã©ãŒã®çµæã¯éåžžã«äžå¿«ãªãã®ã«ãªãå¯èœæ§ããããŸããåäœæããããªããžããªãç°¡åã«ç Žå£ããå¯èœæ§ããããããæåããããçŽãå¿
èŠããããŸãã ãããã£ãŠãäžéçµæã®ããã¯ã¢ããã®åé¡ã¯ããã«åŠçããå¿
èŠããããŸãã ãŒããã埩å
ããã®ã«æéããããå Žåã¯ãå°ãªããšããªããžããªïŒresult_repoïŒãšãã§ãã¯ã¢ãŠãïŒresult_checkoutïŒãä¿åããå¿
èŠããããŸãã
ãã®æ¹æ³ã§ããã¯ã¢ãããæŽçããŸã-å¿
èŠãªãã©ã«ããŒãzipã¢ãŒã«ã€ãã«å§çž®ããç¹å®ã®ãã©ã«ããŒã«ã³ããŒããŸãã ãããè¡ãã«ã¯ã
7-zipã¢ãŒã«ã€ãã䜿çšããŸãã ã€ã³ã¹ããŒã«ããŠã7z.exeãžã®ãã¹ãPATHç°å¢å€æ°ã«è¿œå ããŸãã ããã§ã次ã®ããã«ãªããžããªã®äžéç¶æ
ãããã¯ã¢ããã§ããŸãã
CïŒ\ Subversion> 7zããã¯ã¢ãã\ result_repoX.zip result_repoã
Xã¯ãªããžã§ã³çªå·ã§ãïŒããšãã°ãä»åã®ã±ãŒã¹ã§ã¯X == 4ïŒ
äžéçµæãä¿åãããã次ã«é²ã¿ãŸãã5çªãæåã§ã³ãããããå¿
èŠããããŸãã ãããè¡ãã«ã¯ïŒ
- full_checkoutããªããžã§ã³çªå·5ã«æŽæ°ããŸãã
CïŒ\ Subversion \ full_checkout> svn up -r 5
- 5çªç®ã®ã³ãããã«å«ãŸããå€æŽã確èªãã
ãã®å Žåãå€æŽã¯æå°éã§ã-svnïŒexternalsããããã£ã¯ããµãŒãããŒãã£ããã©ã«ããŒã«å¯ŸããŠåé€ããããã©ã³ã¯ãã©ã«ããŒã«å¯ŸããŠäœæãããŸããã å€éšãªããžããªã®ã¢ãã¬ã¹ãããã³ãã¡ã€ã«ãããŠã³ããŒããããã©ã«ãã¯å€æŽãããŠããŸããã ãããã£ãŠãæ°ãããªããžããªã®å Žåãå€æŽã¯å¿
èŠãããŸãããäœããã®æ¹æ³ã§ã³ãããããã ãã§ãã ãããè¡ãã«ã¯ããã©ã³ã¯ã«ç©ºã®Fictiveãã¡ã€ã«ãäœæããSVNã«è¿œå ããŠã³ãããããŸãã 眲åãã³ãããã«å€æŽããªãããšããå§ãããŸãïŒçç±-åŸã§æããã«ãªããŸãïŒ
5åç®ã®ã³ããããè¿œå ãããåŸãdemo6.dmpãããŒã«ããŸãã
CïŒ\ Subversion> svnadmin load result_repo <demo6.dmp
ããã¯ã¢ãããäœæããããã°ã©ã ã®æåŸã®éèŠãªãã€ã³ãã§ããã³ããã7ã®å€æŽã«é²ã¿ãŸãã full_checkoutãªããžããªã7çªç®ã®ãªããžã§ã³ã«æŽæ°ããå€æŽã®ãªã¹ãã確èªããŸãã
ãã®ã³ããããå€æŽããå¿
èŠãããçç±ã¯ãsvnïŒexternalsã«é¢ããŠå€æŽãå ããããŠããªããããããã«ã¯æããã«ãªããŸããã ãã©ã³ã¯ãã©ã«ããŒã®svnïŒignoreããããã£ãå€æŽãããŸããããããçç±ã§ããããã ããã§ãã å®éã«ã¯ããã©ã³ã¯ãã©ã«ããŒããããã£ã®å®å
šãªèª¬æã¯ãsvnïŒexternalsãšãšãã«ãªããžã§ã³7ã®SVNãã³ãã«æ ŒçŽãããŠããŸãã
ã ããããã€ã³ãã«ã 7åç®ã®ã³ããããè¡ãã«ã¯2ã€ã®æ¹æ³ããããŸãã
1ã€ç®ã¯ãå
ã®ãªããžããªãã7çªç®ã®ãªããžã§ã³ã®ãã³ããååŸããsvnïŒexternalsãtrunkãã©ã«ããŒããããã£ããåé€ããŸãïŒããã¹ããšãã£ã¿ãŒã§éããŠãåé€ããããããã£ãProp-content-lengthãããã³ããŸãã¯ããsvnadmin setrevpropãã³ãã³ãã䜿çšããŠããã®ãæ£ããããã³ããæ°ãããªããžããªã«ããŒã«ããŸãã ãã®å Žåããã®ã¢ãããŒããæé©ãªãœãªã¥ãŒã·ã§ã³ã§ãã
ãã ããã»ãšãã©ã®å Žåãå®éã®ãªããžããªã«äœ¿çšããå¿
èŠãããããã2çªç®ã®æ¹æ³ãæ€èšããæ¹ãèå³æ·±ãã§ãã ãã®æ¹æ³ã¯ãTortoiseSVNã®ã¹ãã³ãè©ŠããŠã7ã®ãã¹ãŠã®å€æŽãèªåã§ã³ãããããããšã§æ§æãããŸãã
SVNã¯ã©ã€ã¢ã³ãã®ã¢ã¯ã·ã§ã³ãã©ãã ãæ
éã«ç¹°ãè¿ããã¯ãå¿èãšæ³šæåã«å®å
šã«äŸåããŸãã åå€æŽãåå¥ã«åŠçããªãã§ãã ãããäž»ãªããšã¯ãå
ã®ãªããžããªãšæ°ãããªããžããªã®ãã¡ã€ã«ã»ãããäžèŽããããšã確èªããããšã§ãã å¯äžã®ããšã¯ããã¡ã€ã«/ãã©ã«ããŒãSVNã«ç§»åããããšã¯ã移åããåã«ãªããžã§ã¯ãã®å±¥æŽã倱ããªãããã«æ£ç¢ºã«ç¹°ãè¿ãããšãæãŸãããšããããšã§ãã ãšããã§ããã®æ®µéã§ããã©ã³ã¯ã§ä»¥åã«äœæããä»®æ³ãã¡ã€ã«ãåé€ããããšãã§ããŸãã
ãã¹ãŠã®å€æŽãè¡ãããåŸã圱é¿ãåãããããžã§ã¯ãããŸã ã³ã³ãã€ã«ããããã¹ãã«åæ ŒããŠããããšã確èªãã䟡å€ããããŸãã ãã ããSubversionã¯ã©ã€ã¢ã³ããšããŠã®åäœã«å®å
šã«èªä¿¡ãããå Žåã¯ã確èªã§ããŸããã
次ã«ãå€æŽãã³ãããããŠãã£ããã·ã¥ã©ã€ã³ã«é²ã¿ãŸãã æåŸã®ãã³ãdemo8.dmpãããŒã«ããŸãã result_checkoutãšfull_checkoutã®äž¡æ¹ã®äœæ¥ã³ããŒãææ°ã®ãªããžã§ã³ã«æŽæ°ããããããæ¯èŒããŸãã ãã¹ãŠãæ£ããè¡ãããå Žåããã¡ã€ã«ã®ã»ããã§å®å
šã«åäžã§ããå¿
èŠããããŸãã
å€æŽããããªããžããªã®ãã³ããååŸããŸãã
CïŒ\ Subversion> svnadmin dump result_repo> without_externals.dmp
ãã®ãã³ãã«ã¯å€éšã®äŸåé¢ä¿ã¯ãŸã£ãããããŸããããäžéšã®å€æŽã¯åŒãç¶ãå¿
èŠã§ãã äºå®ãæåã§è¡ãããã³ãããã®å Žåãæ°ããã³ãããæéããã³ãã«æžã蟌ãŸãã誀ã£ããŠãŒã¶ãŒåïŒéåžžã¯Windowsã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ååãšåãïŒãæžã蟌ãŸããŸãã ä¿®æ£ããå¿
èŠããããŸãã
ããã¹ããšãã£ã¿ãŒã§å
ã®ãã³ããšæ°ãããã³ããéããå€æŽããããªããžã§ã³ïŒãã®äŸã§ã¯4ã5ã7ïŒãé çªã«ç¢ºèªããŸãã 次ã®ããã«ãªããŸãã
次ã«ãæ°ãããã³ãã®å¯Ÿå¿ããæ¥ä»ãå
ã®æ¥ä»ã«æ
éã«çœ®ãæããå¿
èŠããããŸãã ãããè¡ãã«ã¯ãåã³svnadminãŠãŒãã£ãªãã£ãšãã®ãsetrevpropããªãã·ã§ã³ã䜿çšã§ããŸãããç§ã®æèŠã§ã¯ãããã¹ããšãã£ã¿ãŒã§æã§ãããè¡ãæ¹ãé«éã§ãã
æ¥ä»ã®çœ®æã¯ç¡å®³ãªæäœã§ãããã³ãããã®äœæè
ã眮æããã«ã¯è¿œå ã®äœæ¥ãå¿
èŠã§ãã ã芧ã®ãšããããProp-content-lengthãããããã£ãšãContent-lengthãããããã£ã®å€ãããã³åæãã³ããšæŽæ°ããããã³ãã®äœæè
ã®ååã®äžã«ããæ°åã¯äžèŽããŸããã ããã¯ãèè
ã®ååã®é·ããå
ã®ååãšç°ãªãããã§ãã ãããã£ãŠããŸãã³ãããã®äœæè
ãå€æŽãã次ã«å¯Ÿå¿ããå€ãæŽæ°ããŸãã Notepad ++ã¯ããã¹ãŠãæ£ããè¡ãããããšã確èªãã䟿å©ãªæ¹æ³ãæäŸããŸãã
å€æŽããããã¹ãŠã®ã³ãããã®ããããã£ãä¿®æ£ãããåŸãsvnïŒexternals completeãåãé€ã段éãæ€èšã§ããŸãã ãã ãããã®åŸãçµæã®ãã³ããããŒã«ã«ãªããžããªã«å®å
šã«æ£ããããŒããããŠããããšã確èªããããšããå§ãããŸãã
CïŒ\ Subversion> svnadmin create test_repo
CïŒ\ Subversion> svnadmin load test_repo <without_externals.dmp
ãã®ãã§ãã¯äžã«ããªããžããªã®å€æŽäžã«çºçãããšã©ãŒãèªåçã«æ€åºãããå ŽåããããŸãã ãã®å Žåããã³ãã®ããŒãã¯ãšã©ãŒã®å Žæã§äžæããããã®çç±ãããããŸãã ããã¯éåžžããã¡ã€ã«ã®å
容ãå°ç¡ãã«ãããããã¡ã€ã«ãæŽæ°ããªãå Žåã«çºçããŸãã ãšã©ãŒã¡ãã»ãŒãžã¯ããã§ãã¯ãµã ãäžèŽããªãããšãéç¥ããŸãã
ãã¹ãŠã®ã³ãããããã©ã³ã¯ã«è»¢éãã
åã®æé ã§ç¿åŸããã¹ãã«ã䜿çšãããšããã¹ãŠã®ã³ãããããã©ã³ã¯ã«è»¢éããã®ã¯ç°¡åã§ãã ãããã£ãŠãæåã®2ã€ã®ã³ãããããªããžããªã®ã«ãŒãã«å¯ŸããŠè¡ããã3çªç®ã®ã³ãããã§ã¯ãã©ã³ã¯ãã¿ã°ããã©ã³ããã©ã«ããäœæããããã¹ãŠã®ãã¡ã€ã«ãããã«è»¢éããããªããžããªwithout_externals.dmpããããŸãã
è¡åèšç»ïŒ
- ã¯ãªãŒã³ãªãªããžããªãäœæãã空ã®ãã©ã³ããã¿ã°ããã©ã³ã¯ãã©ã«ããŒãã³ãããããŸã
- ãã³ãwithout_externals.dmpã2ã€ã«åå²ããŸãã0ãã2ãŸã§ã®ãªããžã§ã³ãš4ãã8ãŸã§ã®ãªããžã§ã³ã§ãã ã³ãããïŒ3ã¯ç Žæ£ãããŸãïŒ
- æåã®ãã³ãïŒ0ãã2ãªããžã§ã³ïŒã§ã¯ããã¡ã€ã«å
ã®ãã¹ãŠã®ãã¹ã«ãã¬ãã£ãã¯ã¹ãtrunk /ããè¿œå ããŸã
- äž¡æ¹ã®ãã³ããæ°ãããªããžããªã«é£ç¶çã«ããŒã«ããŸã
- ãšã©ãŒããªãããšã確èªããçµæã®ãªããžããªã®å®å
šãªãã³ããäœæããŸã
- æåã®ã³ãããã®æéãšäœæè
ãå€æŽããŸã
è¡ãã ã¯ãªãŒã³ãªãªããžããªïŒfinal_repoãã©ã«ããŒïŒãäœæãããã§ãã¯ã¢ãŠãããŸãïŒfinal_checkoutïŒã 3ã€ã®ãã©ã«ããŒãäœæãããªããžããªãŒã«è¿œå ããŠã³ãããããŸãã
CïŒ\ Subversion> svnadmin create final_repo
CïŒ\ Subversion> svn co fileïŒ/// CïŒ/ Subversion / final_repo final_checkout
CïŒ\ Subversion> mkdirãã©ã³ãã¿ã°trunk
CïŒ\ Subversion> svn add branch tags trunk
CïŒ\ Subversion> svn commit -m "æºåããããªããžããªæ§é "
äžèŠãªã³ããããæé€ããããã«ãå€éšäŸåé¢ä¿ã®ãªããªããžããªã®ãã³ãã2ã€ã«åå²ããŸããã
CïŒ\ Subversion> svnadmin create without_externals_repo
CïŒ\ Subversion> svnadmin load without_externals_repo <without_externals.dmp
CïŒ\ Subversion> svnadmin dump without_externals_repo -r 0ïŒ2 --incremental> final0_2.dmp
CïŒ\ Subversion> svnadmin dump without_externals_repo -r 4ïŒ8 --incremental> final4_8.dmp
ãã³ãfinal0_2.dmpãéãããã¹ãŠã®è¡ã-pathïŒããã-pathïŒtrunk /ãã«çœ®ãæããŸãã éèŠ-ãã¹ã¯ãNode-pathãããã³ãNode-copyfrom-pathãããããã£ã§äœ¿çšã§ããããããNode-pathïŒãã ãã§ãªãããŸãã«ããã眮ãæããŸãã
final0_2.dmpãšfinal4_8.dmpãæ°ãããªããžããªã«ããŒã«ããŸãã
CïŒ\ Subversion> svnadmin load final_repo <final0_2.dmp
CïŒ\ Subversion> svnadmin load final_repo <final4_8.dmp
final_checkoutã®SVNãã°ã確èªããŠãã ããããã¹ãŠã®ã³ãããã¯ããã©ã³ã¯å
ã®ãã¡ã€ã«ã«å¯ŸããŠã®ã¿åäœããŸãã æŽæ°ããããã³ããååŸããŸãã
CïŒ\ Subversion> svnadmin dump final_repo> final.dmp
æåã®ãªããžã§ã³ã®æå»ãšäœæè
ãããã³0çªç®ã®ãªããžã§ã³ã®æå»ãå€æŽããŸãã without_externals.dmpã®0çªç®ã®ãªããžã§ã³ã®æéãåºæºãšãããããæ°ãããã³ãã®0çªç®ã®ãªããžã§ã³ã«äœ¿çšããŠãããæ°ç§ãè¿œå ããŠ1çªç®ã®ãªããžã§ã³ã«èšå®ããŸãã
çµæã®ãã³ããæ£ããããšã確èªããŠããªããžããªã«ããŒãããŸãã
CïŒ\ Subversion> svnadmin create test_final_repo
CïŒ\ Subversion> svnadmin load test_final_repo <final.dmp
ããŠã³ããŒãäžã«ãã§ãã¯ãµã ã®äžäžèŽã«é¢ãããšã©ãŒãçºçããå Žåãã-pathïŒãè¡ããã¡ã€ã«å
ã®ã©ããã«ããå¯èœæ§ãé«ãã誀ã£ãŠçœ®æããŸããïŒå®éã®ãªããžããªã§ã¯ã眮æããå¿
èŠã®ãããã¹ãŠã®å Žæãç®ã§èŠãããšã¯ã§ããŸããããããïŒã ããã«ãæååã¯ãªããžã§ã³ããããã£ãšãŸã£ããåã圢åŒïŒããšãã°ããNode-pathïŒ...ãïŒã§çºçããããã眮æãã³ãã¬ãŒãã匷åããŠã圹ã«ç«ã¡ãŸããã
ãã®äŸã§ã¯ããšã©ãŒã¯çºçããŸãããã€ãŸããMercurialãžã®ç§»è¡ã«é©ããå®å
šãªãªããžããªãåŸãããŸããã
ãŸãšãããš
SVNãªããžããªãå€æŽããããã«äœ¿çšãããå€ãã®ææ³ãæ€èšããŸããã ãã€ã©ã€ãïŒ
- svnadminãŠãŒãã£ãªãã£ãã¡ã€ã³ããŒã«ã§ãã ãã³ãããªããžããªã«ã¢ããããŒãããç®çã®ãªããžã§ã³ã®ãã³ããååŸã§ããŸãã
- å€æŽããããªããžããªã®ãæåãã³ããããšæ¢åã®ãã³ãã®ããŒãã亀äºã«è¡ãããšãã§ããŸãã å
žåçãªããªãã¯ã¯ãäžèŠãªã³ãããããªããžããªããã¹ããŒããæ°ãããªããžããªã§ãããã眮ãæããïŒãŸãã¯åã«ã¹ãããããïŒããšã§ãã
- ã§ããã ãé »ç¹ã«äžéçµæã®ããã¯ã¢ãããäœæããŸãã
- ãã¹ãŠã®å
žåçãªæäœïŒãã³ãã®ããŒãããã³ãã®äœæããã§ãã¯ã¢ãŠããããã¯ã¢ããïŒã«ã¯ãbatãŸãã¯bashã¹ã¯ãªããã䜿çšãããšäŸ¿å©ã§ãã
- ããã¹ããšãã£ã¿ãŒã§SVNãã³ããå€æŽããå Žå-æ°å€ã®æŽæ°ãå¿ããªãã§ãã ãã-察å¿ããã³ã³ãã³ãã®ãµã€ãºïŒãã€ãåäœïŒã
- SVNãã³ãã倧ããïŒ> 700 MBïŒå ŽåãWindowsã®ã»ãšãã©ã®ããã¹ããšãã£ã¿ãŒã¯æ£åžžã«éãããšãã§ããªããããç·šéã«åé¡ããããŸãã ã¡ã¢åž³++ãäŸå€ã§ã¯ãããŸããã ç§ã¯å€ãã®ç°ãªããªãã·ã§ã³ãè©ŠããŸãããã EmEditorã®ã¿ã圹ã«ç«ã¡ãŸãããå°éã®RAMãæèŒãããã·ã³ã§ãããŸãåäœããŸãã
- å€æŽåŸãçµæã®ãã³ããããªããžããªãããŒãã§ããªãå Žåããªãã»ããã䜿çšããŠäœããå°ç¡ãã«ãããããã¡ã€ã«ã®æŽæ°ãå¿ãããããã¡ã€ã«ã®å
容ãå°ç¡ãã«ãããããŸãã
- ç¹å®ã®ã³ãããã§å€æŽãèªåã§ç¹°ãè¿ãå¿
èŠãããå Žåããã©ã«ããŒå
ã®ãã¹ãŠã®.svnãµããã©ã«ããŒãååž°çã«åé€ãããšäŸ¿å©ã§ãã ãããè¡ãã«ã¯ãçŸåšã®ãã£ã¬ã¯ããªå
ã®ãã¹ãŠã®ãµããã©ã«ããŒãååž°çã«åé€ããã¹ã¯ãªããïŒWindowsçšïŒã䜿çšã§ããŸãã
FOR / F "tokens = *" %% G INïŒ 'DIR / B / AD / S * .svn *'ïŒDO RMDIR / S / Q "%% G"
- ãã³ãã®ãªããžã§ã³ã®èª¬æã®ãã€ãæ°ã«åœ±é¿ããããã眲åãå€æŽããŠã³ãããããå¿
èŠã¯ãããŸããã ãã®ãããã³ãããã®çœ²åã®é·ãã®éããèæ
®ããå¿
èŠããããããã³ãããã®äœæè
ã®ååãæŽæ°ããã®ãå°ãé£ãããªããŸãã
ãããã«
ãªããžããªãå®çŸããŸããã ã³ãããããã°ãsvnadmin-ãã¹ãŠã圌ã®ãã€ãŠæããé ã§æ··åããŸããã 麻é
ã®ããŒã«ã¯ãŸã å®å
šã«æ¶æ£ããŠããŸãããããªããžããªã¯ãã§ã«ãã®å
éšã®äœããå€åãããšæããŠããŸãã
ç®ãéãããšããªããžããªã¯æåã«åšããèŠåããŸãã-éšå±ã¯åºã
ãšããŠããŸããããã€ã³ããªã¢ã¯ãŸã£ãã銎æã¿ããããŸããã§ããã ã³ãããä»ãã®ãªãŒã¯ã·ãã©ã³ã®ä»£ããã«ãå°ããªãã®ããããå£ã«ã¿ã°ã®ä»ããç®±ã®ä»£ããã«ãã6fc1d7a7ae346b0a09be5647e94c1561764b8619ãã®ãããªäžæçãªç·ã®ä»ããå°ããªã¹ããã«ãŒã貌ãããŠããŸããã ããããé©ãã¹ãããšã«ãFeng Shuiã«ãããšããªããžããªã¯éšå±ã®å
šäœçãªè£
食ã奜ãã§ããã¹ãŠãæ°æã¡ããè£
食ãããŠããŸããã
ãªããžããªã«ã¯ããã¢ãã«ã®é³Žãæ¹ã«æ¬åœã«æ
£ããæéããããŸããã§ããã ãããã«ã¡ã¯ïŒ ã³ãããã¡ã³ãã®é
ä¿¡â-ç¢æã®ã€ããåžœåã®èã®äœãç·â Mercurialãã°ãã°ãã«ãªã£ãã ãªããžããªã«ã¯å£ãéãæéããããŸããã§ãããèŠç¥ãã¬äººããè¡šçŽã«ãhg commitããšããç¢æãæžããã2åã®å°ååãææž¡ããšããã®ããã«ãªããŸããã
ãªããžããªã¯ã圌ããã§ã«ãããçµéšããããšãæãåºããŸããã ãããããããæåã«èŠç¥ãã¬äººãæåã®ãsvn commitããèªåã®ã¢ããŒãã«ãã©ãã°ããŸããã æŽå²ã¯ä»ç¹°ãè¿ãããŠããŸããïŒ ãªããžããªã¯åã³ã§æ¯ãã®ããããªãã®ã§ãã-èç©ãããçµéšãšç¥èããã¹ãŠæã£ãŠåäŸæ代ã«æ»ã幞éãªäººã¯ã»ãšãã©ããŸããã§ããããããŠããã¯ããã§èµ·ãã£ãããã§ãïŒ ãããŠã圌ã¯ç¡é§ã«ãµã³ã¿ã¯ããŒã¹ãä¿¡ããªããªããŸãã-ããã¯å¥è·¡ã§ããå¯èœæ§ããããŸã-ããã¯åœŒã®ä»äºã§ãã...
ãªããžããªã¯äœãå
ã«ããããç¥ããŸããã§ããã 圌ã¯äžã€ã®ããšãæ確ã«ç解ããŸãã-圌ã¯æ°ãã人çãå§ããŸãã-åéºã§ãé¢çœããŠãäºæž¬äžå¯èœã§ããã ææããŒãã¥ãªã¢ã«ã§ã®ç掻ã