Migrate from SVN to Git - Vaa3D/Vaa3D_Wiki GitHub Wiki

For the record, it takes 9 mins to checkout v3d_external, and 26 mins to check out vaa3d_tools from svn repos, on a decent linux box with wired internet.

Time to migrate to Git ! Ongoing....

#Steps Taken:

author list mapping

svn log https://my-repo.url/svn/ | grep -E '^r[0-9]+' | cut -d '|' -f2 | sort | uniq | xargs -I {} echo '{} = name <email>'

svn2git

(ref: https://github.com/nirvdrum/svn2git#readme)

v3d_external:

`svn2git https://svn.janelia.org/penglab/projects/vaa3d  --trunk trunk --nobranches --notags --authors authors.txt`

vaa3d_tools:

`svn2git https://svn.janelia.org/penglab/projects/vaa3d_tools  --trunk .  --nobranches --notags --authors authors.txt --verbose`

Identified large files (github does not like big filles that are >50MB)

(ref: http://naleid.com/blog/2012/01/17/finding-and-purging-big-files-from-git-history)

git rev-list --objects --all | sort -k 2 > allfileshas.txt

git gc && git verify-pack -v .git/objects/pack/pack-*.idx | egrep "^\w+ blob\W+[0-9]+ [0-9]+ [0-9]+$" | sort -k 3 -n -r > bigobjects.txt

for SHA in cut -f 1 -d\ < bigobjects.txt; do echo $(grep $SHA bigobjects.txt) $(grep $SHA allfileshas.txt) | awk '{print $1,$3,$7}' >> bigtosmall.txt; done;

#v3d_external big files (1G total before purging): 247df80a278db0cdc7cabc6b885b0e2f30587bac 186494271 v3d_main/common_lib/src_packages/InsightToolkit-4.0.0.tar.gz af4789782604eb68b81d556718062542bfa47f68 81884985 v3d_main/common_lib/src_packages/opencv-2.4.5.tar.gz 628d8bce22160146777e61e35464cab01cc837a5 73472080 v3d_main/common_lib/src_packages/boost_1_57_0.tar.gz 90acfbfbf0cbb8914329c5970c32b5f90a939a74 50928274 v3d_main/common_lib/src_packages/boost_1_46_0.tar.gz e8a573bd6d2b3fa3d84195196723cea34158a30e 36383930 v3d_main/common_lib/src_packages/InsightToolkit-3.20.0.tar.gz 557cdad23111eff1dccece403bb3b55e89d02830 35850512 v3d_main/common_lib/src_packages/boost_1_38_0.tar.gz d9e3f9313546725cf452116c03b87a00144b2436 35360958 v3d_main/common_lib/src_packages/ITK_src_100515.zip bb5b6363b9b023d9b449e4fb3bb85527b7e366cb 15601822 v3d_main/common_lib/ffmpeg-2.5.2-win64.tgz f1df0b2410d39ea61144d9adb73239eb83c42319 15592427 v3d_main/common_lib/ffmpeg-2.5.2-win64.tgz 05f745e5a0c4a1fb15177ae5a1c3a0ff8baa5998 14602445 v3d_main/common_lib/ffmpeg-2.5.2-win32.tgz

Remove them from history:

git filter-branch --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch v3d_main/common_lib/src_packages/InsightToolkit-4.0.0.tar.gz' --tag-name-filter cat -- --all

git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch v3d_main/common_lib/src_packages/opencv-2.4.5.tar.gz' --tag-name-filter cat -- --all

git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch v3d_main/common_lib/src_packages/InsightToolkit-3.20.0.tar.gz' --tag-name-filter cat -- --all

git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch v3d_main/common_lib/src_packages/ITK_src_100515.zip' --tag-name-filter cat -- --all

git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch v3d_main/common_lib/ffmpeg-2.5.2-win32.tgz' --tag-name-filter cat -- --all

Alternative (ref: http://blog.jessitron.com/2013/08/finding-and-removing-large-files-in-git.html )

vaa3d_tools bigfiles (3.4G before purging):

59ba2953f1ec71429bc731cf79af50573d8baeb8 203491002 hackathon/ITK-V3D-Plugins/InsightToolkit-4.1.0.tar.gz 584b812b6ed1d0c9415b61839f3a9b5f234b1e82 159328604 hackathon/zhi/snake_tracing/VXL.zip 795fb8c7c36057294200631854e2a207f57f0654 118458923 hackathon/zhi/snake_tracing/ITK4.3.2.zip 7df14d6c34bafb9e1e94985f3dd58d67631f8737 107766557 hackathon/ting_neutube/NeuTu.zip 962480cc3e51eed7db7aa65392e7a01c20554577 71026337 bigneuron_ported/siqi/stalker_matlab/scripts/modelcache.mat 5b5408fbbd74eeff4e59d6e4c8e83527f65f1866 62462576 bigneuron_ported/AmosSironi_PrzemyslawGlowacki/sep_conv/filters/cropped_N2_scaled_radial_gt.nrrd 6ef82e00dc1c15a96068cd6fdbcd1a6cdefd3432 53673984 bigneuron_ported/pengyu_zhihao/3DTrace_Binary/Windows/VSproject/VaaPortTest.sdf

remove:

git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch hackathon/ITK-V3D-Plugins/InsightToolkit-4.1.0.tar.gz' --tag-name-filter cat -- --all

git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch hackathon/zhi/snake_tracing/VXL.zip' --tag-name-filter cat -- --all

git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch hackathon/zhi/snake_tracing/ITK4.3.2.zip' --tag-name-filter cat -- --all

git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch hackathon/ting_neutube/NeuTu.zip' --tag-name-filter cat -- --all

git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch bigneuron_ported/siqi/stalker_matlab/scripts/modelcache.mat' --tag-name-filter cat -- --all

git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch bigneuron_ported/AmosSironi_PrzemyslawGlowacki/sep_conv/filters/cropped_N2_scaled_radial_gt.nrrd' --tag-name-filter cat -- --all

git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch bigneuron_ported/pengyu_zhihao/3DTrace_Binary/Windows/VSproject/VaaPortTest.sdf' --tag-name-filter cat -- --all

git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch bigneuron_ported/zhihao/VaaPortTest.sdf' --tag-name-filter cat -- --all

git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch hackathon/ting_neutube/neutube.zip ' --tag-name-filter cat -- --all

git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch bigneuron_ported/AmosSironi_PrzemyslawGlowacki/sep_conv2/filters/cropped_N2_scaled_radial_gt.nrrd' --tag-name-filter cat -- --all

⚠️ **GitHub.com Fallback** ⚠️