= 2012-03-09 = == svndumpfilter == * 由於 trac 的 svn 裡有 hadoop4win-setup 目錄,而 sourceforge 的 svn 紀錄是新的,所以想試試看能否合併。 * [參考] [http://sourceforge.net/apps/trac/sourceforge/wiki/SVN%20adminrepo#Filteringthedumpfileoptional SourceForge 的 SVN 匯入文件有提到 Filtering the dump file (optional)] * [參考] [http://svnbook.red-bean.com/en/1.5/svn.reposadmin.maint.html#svn.reposadmin.maint.filtering SVNBOOK 也有提到 Filtering Repository History] * 採用 SVNBOOK 的步驟,首先把 hadoop4win 的部份獨立成一個 Repository {{{ jazz@Wdebian:~/trac_pool/trac_pool/grid$ svnadmin dump svnroot/ > grid_svn_dumpfile ....... * Dumped revision 248. jazz@Wdebian:~/trac_pool/trac_pool/grid$ svndumpfilter include --drop-empty-revs --renumber-revs hadoop4win-setup < grid_svn_dumpfile > hadoop4win_dumpfile jazz@Wdebian:~/trac_pool/trac_pool/grid$ svnadmin create hadoop4win jazz@Wdebian:~/trac_pool/trac_pool/grid$ svnadmin load --ignore-uuid hadoop4win < hadoop4win_dumpfile ........ ------- Committed revision 30 >>> jazz@Wdebian:~/trac_pool/trac_pool/grid$ rm grid_svn_dumpfile hadoop4win_dumpfile jazz@Wdebian:~/trac_pool/trac_pool/grid$ mv hadoop4win ~/hadoop4win_trac }}} * 做到這一步,我們可以拿到一個只有 hadoop4win-setup 這個目錄的 svnroot。(這裡我多用了 --drop-empty-revs 跟 --renumber-revs 兩個參數,如此可以讓原本 248 個 changeset 的 grid repository 過濾成只有 30 個 changeset 的 hadoop4win repository. * 根據 sourceforge 的[http://sourceforge.net/apps/trac/sourceforge/wiki/SVN%20adminrepo 說明],可以用 rsync 方式取回 {{{ jazz@Wdebian:~$ mkdir -p hadoop4win_sf jazz@Wdebian:~$ cd hadoop4win_sf/ jazz@Wdebian:~/hadoop4win_sf$ rsync -av hadoop4win.svn.sf.net::svn/hadoop4win/* . jazz@Wdebian:~/hadoop4win_sf$ cd jazz@Wdebian:~$ svnadmin dump hadoop4win_sf/ > hadoop4win_sf_dumpfile .......... * Dumped revision 15. jazz@Wdebian:~$ svnadmin load --ignore-uuid hadoop4win_trac/ < hadoop4win_sf_dumpfile .......... ------- Committed new rev 45 (loaded from original rev 15) >>> }}} * 做到這一步,算是完整地將整個專案 SVN 合併成一個。好在時間點兩個是相互錯開的,不然還真不知道怎麼根據時間點順序做合併呢! * 接著把這個 SVN repository 用 svnadmin dump 指令先產生一個 hadoop4win_dumpfile 的檔案。然後 scp 到 shell.sf.net {{{ jazz@Wdebian:~$ svnadmin dump hadoop4win_trac/ > hadoop4win_dumpfile .... * Dumped revision 45. jazz@Wdebian:~$ scp hadoop4win_dumpfile jazzwang,hadoop4win@shell.sf.net:. }}} * 登入 shell.sf.net {{{ jazz@Wdebian:~$ ssh -t jazzwang,hadoop4win@shell.sf.net create [jazzwang@shell-24009 ~]$ adminrepo --checkout svn [jazzwang@shell-24009 ~]$ rm -rf /svnroot/hadoop4win/* [jazzwang@shell-24009 ~]$ svnadmin create /svnroot/hadoop4win [jazzwang@shell-24009 ~]$ svnadmin load --ignore-uuid /svnroot/hadoop4win/ < hadoop4win_dumpfile [jazzwang@shell-24009 ~]$ adminrepo --save svn **** Ignoring the contents of the hooks directory (hooks are managed via the web) **** Save and unlock the svn repository for hadoop4win? [ny] y }}} * 這樣就算是完整把整個開發過程移植到 sourceforge 去啦!!!!大功告成!!! * 同步上去以後,ViewCV 的結果是正確的,不過 trac 不正確。出現底下的錯誤訊息,只好請 sourceforge 管理員幫忙了~[https://sourceforge.net/apps/trac/sourceforge/ticket/24763 開單] {{{ Warning: Can't synchronize with the repository (The 'repository_dir' has changed, a 'trac-admin resync' operation is needed.). Look in the Trac log for more information. }}}