Add Git submodule moving and removing

main
Sorin Ionescu 12 years ago
parent 9785454938
commit deeb115ae2

@ -136,9 +136,11 @@ alias gSa='git submodule add'
alias gSf='git submodule foreach'
alias gSi='git submodule init'
alias gSl='git submodule status'
alias gSm='git-submodule-move'
alias gSs='git submodule sync'
alias gSu='git submodule update --init --recursive'
alias gSU='git submodule foreach git pull origin master'
alias gSx='git-submodule-remove'
# Working Copy (w)
alias gws='git status --short'

@ -0,0 +1,30 @@
#
# Moves a Git submodule.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
local src="$1"
local dst="$2"
local url
if [[ "$PWD" != "$(git-root)" ]]; then
print "$0: must be run from the root of the working tree" >&2
return 1
fi
url="$(git config --file "$(git-root)/.gitmodules" --get "submodule.${src}.url")"
if [[ -z "$url" ]]; then
print "$0: submodule not found: $src" >&2
return 1
fi
mkdir -p "${dst:h}"
git-submodule-remove "$src"
git submodule add "$url" "$dst"
return 0

@ -0,0 +1,27 @@
#
# Removes a Git submodule.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
if [[ "$PWD" != "$(git-root)" ]]; then
print "$0: must be run from the root of the working tree" >&2
return 1
fi
if ! git config --file .gitmodules --get "submodule.${1}.path" &>/dev/null; then
print "$0: submodule not found: $1" >&2
return 1
fi
git config --file "$(git-dir)/config" --remove-section "submodule.${1}" &>/dev/null
git config --file "$(git-root)/.gitmodules" --remove-section "submodule.${1}" &>/dev/null
git add .gitmodules
git rm --cached -rf "${1}"
rm -rf "${1}"
rm -rf "$(git-dir)/modules/${1}"
return 0
Loading…
Cancel
Save