blob: 5395516c7bd57a8d77ee7744bd0fa01476d123a5 (
plain) (
tree)
|
|
* git-difme
#+BEGIN_QUOTE
git, do it for me
#+END_QUOTE
[[[https://git.ricketyspace.net/git-difme][repo]]]
#+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-difme will stage and commit modified (M), deleted
(D) and untracked (?) files.
- for repo ~bar~, git-difme will only stage and commit modified (M)
files.
- for repo ~baz~, git-difme will only stage and commit modified (M) and
untracked (?) files.
- for repo ~frb~, git-difme will stage and commit all files.
** installing
*** the script
=git-difme= is written in [[https://gnu.org/s/guile][guile]]. first [[https://ricketyspace.net/git-difme/install-guile][install guile]], then do:
#+BEGIN_SRC bash
make git-difme
#+END_SRC
that will install the =git-difme= script at =~/.bin/git-difme=.
add =~/.bin/= to =PATH=.
*** the config file
#+BEGIN_SRC bash
make config
#+END_SRC
that will install a sample config file at =~/.config/git-difme=.
** running
#+BEGIN_SRC bash
git-difme
#+END_SRC
will do it.
** license
gnu general public license version 3 or higher.
|