Page MenuHomeSoftware Heritage
Paste P140

Monolithic repository
ActivePublic

Authored by seirl on Mar 1 2017, 12:30 PM.
#!/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