From 58d7c44affff801a412a5b1ac5f3240fb59be68b Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Thu, 23 Mar 2017 18:48:49 -0300 Subject: Adds git-submodule-move-git-dir --- git-submodule-move-git-dir | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100755 git-submodule-move-git-dir diff --git a/git-submodule-move-git-dir b/git-submodule-move-git-dir new file mode 100755 index 0000000..cd89517 --- /dev/null +++ b/git-submodule-move-git-dir @@ -0,0 +1,43 @@ +#!/bin/bash +# +# Put the .git submodule folder back to the right place. +# +# When initializing a git submodule, git usually puts the +# submodules' .git folder inside the .git/modules folder +# in the parent repository. +# +# While this keeps all submodule metadata in a single place, +# it may not be confortable when you also want to develop +# the submodule. +# +# This plugin simply moves the submodules' git folder back +# to the standard place. + +# Parameters +BASENAME="`basename $0`" +MODULE="$1" + +# Checks +if [ -z "$MODULE" ]; then + echo "usage: $BASENAME " + exit 1 +elif [ ! -d "$MODULE" ]; then + echo "module not found: $MODULE" + exit 1 +elif [ -d "$MODULE/.git" ]; then + echo "module $MODULE already converted" + exit 1 +elif [ ! -d ".git" ]; then + echo "please run this command in the top-level repository folder" + exit 1 +fi + +# Additional parameters +REPO_DIR="`pwd`" +MODULE_DIR="`cd $MODULE &> /dev/null && pwd`" +RELATIVE_REPO_DIR="$(echo $MODULE_DIR | sed -e "s|^$REPO_DIR/||")" + +# Convert +rm $MODULE/.git +mv ".git/modules/$RELATIVE_REPO_DIR" "$MODULE/.git" +sed -i -e '/worktree =/d' "$MODULE/.git/config" -- cgit v1.2.3