Browse Source

Add Git submodule moving and removing

master
Sorin Ionescu 12 years ago
parent
commit
deeb115ae2
  1. 2
      modules/git/alias.zsh
  2. 30
      modules/git/functions/git-submodule-move
  3. 27
      modules/git/functions/git-submodule-remove

2
modules/git/alias.zsh

@ -136,9 +136,11 @@ alias gSa='git submodule add' @@ -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'

30
modules/git/functions/git-submodule-move

@ -0,0 +1,30 @@ @@ -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

27
modules/git/functions/git-submodule-remove

@ -0,0 +1,27 @@ @@ -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