aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.gitmodules8
-rwxr-xr-xsubmodules.sh181
2 files changed, 3 insertions, 186 deletions
diff --git a/.gitmodules b/.gitmodules
index 51dd1ef..1daea94 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,5 +1,3 @@
-# This file maps a submodule path to an url from where the submodule
-# can be obtained. The script "submodules.sh" finds the url in this file
-# when invoked with -i to clone the submodules.
-
-git git://git.kernel.org/pub/scm/git/git.git
+[submodule "git"]
+ url = git://git.kernel.org/pub/scm/git/git.git
+ path = git
diff --git a/submodules.sh b/submodules.sh
deleted file mode 100755
index 1d7b13f..0000000
--- a/submodules.sh
+++ /dev/null
@@ -1,181 +0,0 @@
-#!/bin/sh
-#
-# submodules.sh: init, update or list git submodules
-#
-# Copyright (C) 2006 Lars Hjemli
-#
-# Licensed under GNU General Public License v2
-# (see COPYING for full license text)
-#
-
-
-usage="submodules.sh [-i | -u] [-q] [--cached] [path...]"
-init=
-update=
-quiet=
-cached=
-
-
-say()
-{
- if test -z "$quiet"
- then
- echo -e "$@"
- fi
-}
-
-
-die()
-{
- echo >&2 -e "$@"
- exit 1
-}
-
-
-
-#
-# Silently checkout specified submodule revision, return exit status of git-checkout
-#
-# $1 = local path
-# $2 = requested sha1
-#
-module_checkout()
-{
- $(cd "$1" && git checkout "$2" 1>/dev/null 2>/dev/null)
-}
-
-
-#
-# Find all (requested) submodules, run clone + checkout on missing paths
-#
-# $@ = requested paths (default to all)
-#
-modules_init()
-{
- git ls-files --stage -- $@ | grep -e '^160000 ' |
- while read mode sha1 stage path
- do
- test -d "$path/.git" && continue
-
- if test -d "$path"
- then
- rmdir "$path" 2>/dev/null ||
- die "Directory '$path' exist, but not as a submodule"
- fi
-
- test -e "$path" && die "A file already exist at path '$path'"
-
- url=$(sed -nre "s/^$path[ \t]+//p" .gitmodules)
- test -z "$url" && die "No url found for $path in .gitmodules"
-
- git clone "$url" "$path" || die "Clone of submodule '$path' failed"
- module_checkout "$path" "$sha1" || die "Checkout of submodule '$path' failed"
- say "Submodule '$path' initialized"
- done
-}
-
-#
-# Checkout correct revision of each initialized submodule
-#
-# $@ = requested paths (default to all)
-#
-modules_update()
-{
- git ls-files --stage -- $@ | grep -e '^160000 ' |
- while read mode sha1 stage path
- do
- if ! test -d "$path/.git"
- then
- say "Submodule '$path' not initialized"
- continue;
- fi
- subsha1=$(cd "$path" && git rev-parse --verify HEAD) ||
- die "Unable to find current revision of submodule '$path'"
- if test "$subsha1" != "$sha1"
- then
- module_checkout "$path" "$sha1" ||
- die "Unable to checkout revision $sha1 of submodule '$path'"
- say "Submodule '$path' reset to revision $sha1"
- fi
- done
-}
-
-#
-# List all registered submodules, prefixed with:
-# - submodule not initialized
-# + different version checked out
-#
-# If --cached was specified the revision in the index will be printed
-# instead of the currently checked out revision.
-#
-# $@ = requested paths (default to all)
-#
-modules_list()
-{
- git ls-files --stage -- $@ | grep -e '^160000 ' |
- while read mode sha1 stage path
- do
- if ! test -d "$path/.git"
- then
- say "-$sha1 $path"
- continue;
- fi
- revname=$(cd "$path" && git describe $sha1)
- if git diff-files --quiet -- "$path"
- then
- say " $sha1 $path\t($revname)"
- else
- if test -z "$cached"
- then
- sha1=$(cd "$path" && git rev-parse HEAD)
- revname=$(cd "$path" && git describe HEAD)
- fi
- say "+$sha1 $path\t($revname)"
- fi
- done
-}
-
-
-while case "$#" in 0) break ;; esac
-do
- case "$1" in
- -i)
- init=1
- ;;
- -u)
- update=1
- ;;
- -q)
- quiet=1
- ;;
- --cached)
- cached=1
- ;;
- --)
- break
- ;;
- -*)
- echo "Usage: $usage"
- exit 1
- ;;
- --*)
- echo "Usage: $usage"
- exit 1
- ;;
- *)
- break
- ;;
- esac
- shift
-done
-
-
-if test "$init" = "1"
-then
- modules_init $@
-elif test "$update" = "1"
-then
- modules_update $@
-else
- modules_list $@
-fi