/grit

Simple multiple git repository tool

Primary LanguageRubyMIT LicenseMIT

Grit is just a simple tool to align your multiple repositories. It's not overwhelmingly complex; it's just a proxy for git commands to your main repo and your other repos.

Get started:
Drop the grit.rb somewhere
chmod +x it
ln -s ~/path/to/grit.rb /usr/local/bin/grit

Go to your project
grit init

Will generate .grit/config.yml

Sample config.yml
--- 
:root: /Users/Bono/the_world
:repositories: 
  - :name: Sproutcore
    :path: frameworks/sproutcore
  - :name: SCUI
    :path: frameworks/scui

In your main proj directory
grit st

>>

[master][~/proj]$ grit st
Performing operation st on Root
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
Performing operation st on Sproutcore
# On branch master
nothing to commit (working directory clean)
Performing operation st on SCUI
# On branch master
nothing to commit (working directory clean)

grit on REPO_NAME_CASE GIT_OPERATION
will perform that operation on the repo you want

[master][~/orion]$ grit on sproutcore st
# sproutcore$ git st
# On branch master
nothing to commit (working directory clean)

grit on Root
is pwd repo... which is lame since you can just git COMMAND

grit add-repository new_name path/to/repo
grit remove-repository new_name

and to make git ignoring easier...

git config --global core.excludesfile ~/.gitignore
printf ".grit/" >> ~/.gitignore