Simple multi-repository management command-line tool.
This is handy when you're working on multiple SCM repositories and/or on multiple computers.
E.g. rather than updating each repository one by one, it's easier to just run repoman get
and update all of them in one go. Rather than checking for uncommitted local changes one by one, it's easier to just run repoman changes
and check all in one go.
And if you often switch between multiple computers, simply use the same .repoman.json file on those computers and easily manage the same set of repositories.
npm install -g repoman
Create sample .repoman.json configuration file:
repoman config
Initialise local repositories:
repoman init
Update local repositories with changes from remote repositories:
repoman get
Display the changes in local repositories:
repoman changes
Update remote repositories with changes from local repositories:
repoman save
Delete local repositories:
repoman delete
Repoman uses the following SCM command mapping, it currently only supports Git and Subversion:
Repoman | Git | Subversion |
---|---|---|
repoman init | git clone {url} | svn checkout {url} |
repoman get | git pull | svn up |
repoman changes | git status | svn stat |
repoman save | git push origin master | svn commit -m "Commited by Repoman" |
Repositories can be configured in .repoman.json file:
{
"couchdb": {
"type": "git",
"url": "http://git-wip-us.apache.org/repos/asf/couchdb.git"
},
"httpd": {
"type": "svn",
"url": "http://svn.apache.org/repos/asf/httpd/httpd/trunk/"
},
"node": {
"type": "git",
"url": "http://github.com/joyent/node"
}
}
It's better to place this file in your home directory (process.env.USERPROFILE on Windows, process.env.HOME on *nix), so you can use Repoman from any directory. If this file is placed in another directory, then Repoman can only be used from that same directory.
If configuration file exists in both current and home directories, then the one in current directory takes precedence over the one in the home directory.
It's recommended to authenticate using keys over SSH:
If keys are not set up, then username/password will be prompted interactively.