mirror of
https://github.com/balkian/gists.git
synced 2024-11-22 09:42:28 +00:00
This commit is contained in:
commit
50b94353e4
42
submodules2subtrees.sh
Normal file
42
submodules2subtrees.sh
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
#!/bin/bash -x
|
||||||
|
# extract the list of submodules from .gitmodule
|
||||||
|
cat .gitmodules |while read i
|
||||||
|
do
|
||||||
|
if [[ $i == \[submodule* ]]; then
|
||||||
|
echo converting $i
|
||||||
|
|
||||||
|
# extract the module's prefix
|
||||||
|
mpath=$(echo $i | cut -d\" -f2)
|
||||||
|
|
||||||
|
# skip two lines
|
||||||
|
read i; read i;
|
||||||
|
|
||||||
|
# extract the url of the submodule
|
||||||
|
murl=$(echo $i|cut -d\= -f2|xargs)
|
||||||
|
|
||||||
|
# extract the module name
|
||||||
|
mname=$(basename $mpath)
|
||||||
|
|
||||||
|
# deinit the module
|
||||||
|
git submodule deinit $mpath
|
||||||
|
|
||||||
|
# remove the module from git
|
||||||
|
git rm -r --cached $mpath
|
||||||
|
|
||||||
|
# remove the module from the filesystem
|
||||||
|
rm -rf $mpath
|
||||||
|
|
||||||
|
# commit the change
|
||||||
|
git commit -m "Removed $mpath submodule"
|
||||||
|
|
||||||
|
# add the remote
|
||||||
|
git remote add -f $mname $murl
|
||||||
|
|
||||||
|
# add the subtree
|
||||||
|
git subtree add --prefix $mpath $mname master --squash
|
||||||
|
|
||||||
|
# fetch the files
|
||||||
|
git fetch $murl master
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
git rm .gitmodules
|
Loading…
Reference in New Issue
Block a user