Trout

So your common files can swim upstream.

Synopsis

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”.

Installation


gem install trout

Usage

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.

Why

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.

Author

Copyright 2010 Joe Ferris


                                                ;t                                                  
                                              jfLLf                                                 
                                             tLfGfGL                                                
                                           tLjjEffGDt                                               
                                          fjfjfffLfGL;                                              
                                         GffffLLLLLGLGGGGLDL;                                       
                                        .GfffLLGGGLDLfffffGLGEGGLGf                                 
                                         :GGGDGLLLLGfLfffGLELEfLfLGLLG                              
                                     ffDLLLDGLffDDjjjjjLGffEfLLfELGGLLGL,                           
                                tLfffGfjjLfffjjjjjjjjjjjjjLjDffLELffLLLfLDG                         
                    jj:      ffLjjGtiittfitGifttfftttDtjtjGtDjjGjjjLfLjffffLG                       
                    jDGj  GDjtjGi;;;t;tt,,it;;Liij;iiGtttttiftLtjjtjjjffffLfffL.                    
                     ,fLfftjti,;:..:.:.:,G;,G,i;,;t;tijtititLtitjftjGttjjLDffLLLD                   
                    tjfjL;,:..i.,. .: t::i,,j:,;;;;ii;;tii;fiiDitttGtitttfjjjfDfLG                  
                  Lfffij....    .i .;:..;;j,;i,,i;;;;t;iGiiiDititiLijttftijttLjfGLGt                
  ;Gf;          fLfjj,,:tt...::,:,::,G,,,fti;iiiti;iiititftjttttjtitiftjiftititfLGLDD               
 fEKDGELt     LLDt;;;;,,,,t,i;ii;;;;i;,iittttttjtjjjtttttttjjttjjjjLjtttitiGtGtffiLGDD,             
  DDGGGffL,ijLLii;jji;titifijjtiti;ifi;i;ij;ttt;tttijtttDtttjjttjjjfjjfjDjttitjGjGGGDEDD.           
  KGDLffLLfLjiijiiijtttjjjjjttiti;ttt;;ttit,i;i;titittjttfttGitDttjjjjjttjjjtffjffjGLDDDDE:         
  EGDLLEGLftLtLtiLjtLjjjjttittiiiiititittiiiittijititttjtitftttittjtttjffjfffjjfLLjLLLGGGEDD        
  iDGLDDDGjjtEjjjtffjfjjjttjjittitttit;tiii;tttttitiijtiittjtttttttGttGjtjffjffLfifLffGGGDGEEKj     
   DGGGGGLfLfjfjjfjjjtttjjjtjttjttjjttitiittiiittitttiiitttttjtjjtititjttjfLLffGtffLffLLLGGDGGGE    
   GGEGLLffjjjfDjfjfjjjjfffffjjtttjttitititttttjttttitttttjjjtitjtfttttjfftGLLGffLLLGGLLtjfffGLLL.  
    LDDGGLfLfffjjtjfLD. ;LLffLLfjjtjtttitittitttttittti;tttiitttttttttjjfffLLLLfjLGLLGLDLffjffLjtL: 
    KDLEGGjfjfjjffG    ttjtLttjfLffjjtttttjttttjttttttjtttttiittttttttjjjLLLGLtLfLLLLLGEGGftLjjt;t  
    jELDEfffjjffj      tttjjtjfitjfffjjjjjjjjjjjtjtttjtttttttttttjjtjjjfftfGLL;GLGLLLLGLf;tLj,G.    
     GDDDLfffjfj       ,ittfjfit   GLfLLLLLLLLLffjttttttttttttttttttjjfjfjjfLGiGLGLLffj;,LjiiG      
     KGKGDLffff         ;iitjff          .fGLGGGijjjjjjttttttttttttttjjfLff,LGjLGDGLLi,;fftDG       
     DELLfjLLL          ,;ijff                DiftjjLffjjjjtttttttjjjjfffjD,itGfGLLfj:tLjtfG        
     ;EfEELfLj          ,;itj                Ljitt EDfLGLffjjjjjjjjjjffLjjtD:fLGijftifjtt;j;t.t.:;t 
      LfKfGDG           :;ij                .,tttfi      :fLLLLLfffffffLfftGGjfffEGGftfi;i;:iLjjit  
      tfDffDf            :i                 ,;;itft           ,LLLLLGLfLLGfGGLi.,tKKDffLLGDDGLLL    
       GLEfDf                                ;;itjj                  jGGGGDfLLGL.:tjGLLLG,          
       DDGDGL                                ;;iijj                 tjLGGDDKKKKDLGt,: .             
       jfGEj                                  ,;it:                 tjffLGDLKKKWKK                  
        GEfL                                  .:;;                  tjjffLGjEKEEKKK                 
        GLf,                                    .                   ;jjjjfLfEEEEEKW                 
        .Lf                                                         .tjjjjfiDDEEEEK                 
         L                                                           ttjjjf  LEEEE:                 
                                                                      tjjjf    ;ED                  
                                                                       ittj                         
                                                                         :