Created
January 24, 2010 18:48
-
-
Save rustyio/285365 to your computer and use it in GitHub Desktop.
subgit
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env sh | |
# subgit | |
# | |
# A tiny wrapper around git to help you manage | |
# Git sub-projects easily, safely, and simply. | |
# | |
# Created by Rusty Klophaus (@rklophaus) | |
# | |
# See http://rklophaus.com/subgit for usage. | |
if [ "$1" == "setup" ]; then | |
if [ -d ".git" ]; then | |
mv .git .subgit | |
echo "Converted to a subgit repository." | |
exit 0 | |
else | |
echo "Could not find .git directory." | |
exit -1 | |
fi | |
fi | |
DIR=`pwd` | |
while [ ! -d "$DIR/.subgit" ] && [ ! "$DIR" == "/" ]; do | |
DIR=`dirname $DIR` | |
done | |
if [ $DIR == "/" ]; then | |
echo "Not in a subgit repository!" | |
exit -1 | |
fi | |
git --git-dir=$DIR/.subgit "$@" |
If you remove the "==" bashism, it'll work in any POSIX shell (like Dash).
Does anyone know a way to get bash tab completion to work with this? I've been trying to get it to work for a while now with no success.
For anyone who wants to use this script, I'd recommend changing line 33 to
git --git-dir="$DIR/.subgit" --work-tree="$DIR" "$@"
otherwise it doesn't work properly if you're in a subdirectory within the subgit repo.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for the script, really needed it :)
Just one thing, it does not work for me on Ubuntu 10.04 unless I change the shebang line to use bash instead of sh. Thought you might want to know :)