= 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 合併成一個。好在時間點兩個是相互錯開的,不然還真不知道怎麼根據時間點順序做合併呢!