reposync帮助您管理许多git存储库。
reposync的Python项目详细描述
重新同步
reposync帮助您管理许多git存储库。通过在yaml文件中声明存储库,reposync可以以适当的方式对存储库应用各种git命令(目前仅限于clone
和pull
)。
安装
$ pip install reposync
用法
在repositories.yaml
中声明存储库,如下所示:
Projects:
Past:
alpha: github.com/yourusername/alpha
Current:
beta: github.com/yourusername/beta
omega: github.com/yourusername/omega
Dotfiles: github.com/yourusername/dotfiles
Others:
TensorFlow: github.com/tensorflow/tensorflow
Helm: [go, github.com/helm/helm]
然后运行$ reposync clone
来克隆存储库,得到如下目录结构:
.
├── Projects
│ ├── Past
│ │ └── alpha
│ └── Current
│ └── beta
│ └── omega
├── Dotfiles
└── Others
├── TensorFlow
└── Helm
要更新这些存储库,请使用$ reposync pull
。
可以使用--file <filename>.yaml
指定yaml文件。有关完整选项,请参见$ reposync -- --help
。
go支持
在go中,最好将存储库放在gopath。reposync通过将go存储库克隆到go path中的正确路径(模拟go get
)来支持这一点,然后在指定的路径上创建指向存储库的符号链接。
要指定go存储库,需要放置一个特殊列表。在上面的示例中,Helm
是go存储库,其值为[go, github.com/helm/helm]
。第一个元素表示go repository,第二个元素表示导入路径,最后一个元素表示二进制位置(可选,默认为导入路径)。
在内部,reposync将首先运行git clone https://github.com/helm/helm $GOPATH/src/github.com/helm/helm
,然后运行ln -s $GOPATH/src/github.com/helm/helm Others/Helm
。
ssh支持
reposync支持使用ssh克隆存储库,只需传递--method=ssh
(默认为--method=https
)。此参数将使reposync自动使用与ssh url相对应的存储库url(可在repositories.yaml
中找到)。
并发支持
reposync通过传递--concurrent
,支持通过多线程并发执行命令。