mirror of
				https://github.com/balkian/gists.git
				synced 2025-10-31 15:48:26 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
		
			875 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			875 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/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 |