Synchronize several git repositories automatically.
Per repository, allow any of the these actions:
fetch
fromorigin
(always done implicitely)pull --rebase
fromorigin
commit
all changes from dirty tree, with timestamp in messagepush
toorigin
The program fetches from origin
and analyzes the current state. If
allowed, it brings repos up-to-date. Otherwise, the user is informed
about differences.
Using the option --remote
, the origin
repository may be overridden
temporarily with a path for the fetch
, pull
and push
actions. In case
no repository is found at that path, a bare repository is cloned
there. This feature is useful for offline synchronization using an USB
key.
Configuration with simple text file:
- one line per repo
- first item is path to repo
- rest of line are comma-separated values from
pull
commit
push
gitthemall
is developed in Python 2 and uses the sh
package.