The metagit project can be used to manage a huge amount of git (or any similar distributed scm) repositories at once. For example clone all your github repositories to a folder on your new shinny machine. The Project is inspired by a article in the german LinuxMagazin 08/10 by mschilli.
The configuration is located in the main python skript `metagit’. Edit it so make it fit your needs. For more information on commands try `pydoc gmp’ to the python module documentation.
pip3 install https://github.com/stettberger/metagit.git
- List all repositories which match the regex `metagit’ and jump there.
See metagit help cd for using an shell function to streamline this.
$ metagit list metagit (git:hub) [email protected]:stettberger/metagit.git --> /home/cip/2009/qy03fugy/github/metagit $ `metagit cd metagit` $ echo $PWD /home/cip/2009/qy03fugy/github/metagit
- Execute a command on all repositories which matches the regex
`metagit’ (here just one repo)
$ metagit foreach metagit commit -a cd /home/stettberger/github/metagit; git commit -a [master d6cb963] removed metagit on peer 1 files changed, 0 insertions(+), 1 deletions(-)
- Shortcuts for the foreach command for common tasks.
$ metagit push metagit [... push ...]
- Uploading new repositories to remote sites with only one command Hint: Set the github.token config in git for uploading to github
$ metagit upload github brand-new-project
[.. creating and pushing brand-new-project ..]
- SSHDir Listing - find repos on a remote machine
- With support for uploading Repos to this remote dir
- Github Listing - find all your github repos
- With support for uploading Repos to this remote dir
- Gitorious Listing - find all youy Gitorius repos
- SVNList - clone all your svn repositories with git svn
- Use different scm system at once The default is git, but hg does also work