summaryrefslogblamecommitdiffstats
path: root/README.org
blob: 0e430715ae0eb2459bb2f6027fabc641e9844cf1 (plain) (tree)
1
2
3
4
5
6
7
8
9

           



                                                  


                                                                     
                                                        
 
        
                                                         


           

                       
                        
                   


                                                            


                                                                      
         

                                                        
                                                                 
         

                  



                                              
                                        

         

                                                                      



                                                                      
                                                           
 
             














                                                               

         










                   







                                                                
          
                                               
* git difme

#+BEGIN_SRC bash
git clone git://git.ricketyspace.net/git-difme.git
#+END_SRC

stages files and makes commits on a list of git repositories based on
some rules.

it always does a =git push= on each repo that it visits.

** rules
the rules specify what type of files to stage and commit.

file types:

   - modified file (M).
   - deleted file (D).
   - untracked file (?).
   - all files (.).

the rules are defined per git repository in the config file.

if git-difme finds finds already staged files, it'll commit them first
before doing anything.

** config
the config file must be at =~/.config/git-difme/config=.

the config is simply a scheme file that defines the =difme-repos=
function:

#+BEGIN_SRC scheme
(define (difme-repos)
  (list '("/path/to/git/repo/foo" "M" "D" "?")
        '("/path/to/git/repo/bar" "M")
        '("/path/to/git/repo/baz" "M" "?")
        '("/path/to/git/repo/frb" ".")))
#+END_SRC

- for repo ~foo~, git difm will stage and commit modified (M), deleted
  (D) and untracked (?) files.
- for repo ~bar~, git difm will only stage and commit modified (M)
  files.
- for repo ~baz~, git difm will only stage and commit modified (M) and
  untracked (?) files.
- for repo ~frb~, git difm will stage and commit all files.

** installing
*** the script

#+BEGIN_SRC bash
make git-difme
#+END_SRC

that will install the =git-difme= script at =~/.bin/git-difme=.

add =~/.bin/= to =PATH=.

On bash, add this:

#+BEGIN_SRC bash
PATH=~/.bin:$PATH
export PATH
#+END_SRC

to =.bashrc=:

On zsh, add this:

#+BEGIN_SRC zsh
typeset -U path
path=(~/.bin $path)
#+END_SRC

to =.zshenv=.

*** the config file

#+BEGIN_SRC bash
make config
#+END_SRC

that will install a sample config file at =~/.config/git-difme=.

** license
gnu general public license version 3 or higher.