#!/bin/bash set -e rm -rf swh-merge git clone https://forge.softwareheritage.org/source/swh-environment swh-merge cd swh-merge ../swh-environment/bin/ls-all-repos | while read i; do url=$( grep -A1 "\[$i\]" .mrconfig \ | tail -n1 \ | grep -o "'[^']\+'" \ | head -n 1 \ | sed "s/'//g" ) git remote add ${i}_remote "$url" git fetch ${i}_remote git branch ${i}_branch ${i}_remote/master git checkout ${i}_branch mkdir ${i}/ git ls-tree -z --name-only HEAD | xargs -0 -I {} git mv {} ${i}/ git commit -m "Move root files into subdirectory '${i}'" git checkout master #git read-tree --prefix=${i}/ -u ${i}_branch #git commit -m "Merge repository subtree '${i}' into master" git merge --allow-unrelated-histories ${i}_branch done