So your common files can swim upstream.
Trout allows you to maintain a base version of special files (like Gemfile) in
one repository, and then syncronize just that file with several other
repositories. This means that you can update your Gemfile in the master
repository, and then get the latest of all the common gems that you use in each
project just by running “trout update Gemfile”.
gem install trout
Once you have a master repository set up containing the file you want to
syncronize, you can check out that file anywhere using trout:
trout checkout Gemfile git://github.com/someurl
If you update the file in your master repository and want to get the changes,
you can use the update command:
trout update Gemfile
If there are any conflicts, trout will help you resolve them by merging the two
trees using diff3.
I wrote this primarily to manage Gemfiles between projects, hoping to avoid
using an “ancestor” git repository that gets dumped into the git history of
every new project. This also solves the “multiple inheritance” problem of git
repositories if you want to manage different files from different sources.
Copyright 2010 Joe Ferris