独立于修订控制的依赖项和子存储库管理包。
dipr的Python项目详细描述
斗杆(斗杆)
dipr是一个存储库管理工具,旨在提供一种独立于修订控制的方式来管理依赖项和 子存储库。它强烈地模仿guestrepo,有许多 支持多版本控制系统和附加功能的改进。
依赖项
一个只读存储库,可以被拉取并设置为特定的修订版,但不应作为 根回购的代码库。
子存储库
根存储库的活动部分,可能会随根存储库的内容而更改。子存储库 可以使用下面的批量修订控制命令进行操作。
要求
支持的操作系统:
- 窗口
- Linux
- OSX
它没有在这些操作系统的多个版本中进行广泛的测试。
先决条件:
- python=3.7
- Gitpython=2.1
- ruamel yaml>;=0.15
- 吉特=2.0
- hg>;=4.0
dipr是在conda环境中开发、测试和构建的(pyinstaller)。有关详细信息,请参见DEVELOPER.md。
许可证
DIPR是麻省理工学院授权的。有关详细信息,请参见LICENSE.md。
凭证存储
dipr假设凭证是为将要使用的修订控制系统缓存的。迪普做的 没有提供任何方法来指定或存储依赖项和子存储库的凭据信息。设置 安全凭据缓存读取以下内容:
git:Git Tools Credential Storage
mercurial:Mercurial Keyring Extension
以上的实现可能因平台(Windows、Linux、OSX)而异。一定要了解 确保选择安全选项的选项。
安装
可通过PIP获得:
> pip install dipr
或使用附带的setup.py:
> python setup.py install
示例
一般
所有可用的命令都记录在内置的命令行帮助系统中:
> dipr -h
DIPR可以作用于当前目录以外的目录:
> dipr -p "/path/to/the repo" status
依赖关系和子存储库管理
用dipr yaml文件初始化当前文件夹或repo:
> dipr init
添加一些回购源:
> dipr sources add hg HGDEP1 http://example.com/hg/hgdep1
> dipr sources add git GITSUB1 http://example.com/git/gitsub1
> dipr depends add HGDEP1 Depends/HgDep1
> dipr subrepos add GITSUB1 SubRepos/GitSub1
将回购文件放入其文件夹:
> dipr pull
将回购协议更新为其指定版本:
> dipr update
检查收回回购的状态:
> dipr status
开始开发!
>导入现有依赖项或子存储库Git子模块:
> dipr init
> dipr import submodules --clean
> dipr pull
> dipr update
多功能客房:
> dipr init
> dipr import guestrepos --clean
> dipr pull
> dipr update
修订管理
批量修订管理可用于依赖项和子存储库。
冻结当前版本的回购:
> dipr depends freeze
将回购升级到其最新标签:
> dipr depends upgrade --check
<... list of available upgrades ...>
> dipr depends upgrade
> dipr update
将回购解冻为默认分行中的最新版本:
> dipr depends unfreeze
> dipr update
将回购设置为特定版本:
> dipr depends rev --path Depends/HgDep1 --branch DevBranch
> dipr update
修订控制命令
批量修订控制命令可以在根repo(其中.dipr文件夹位于)和所有 子存储库。
提交根repo和所有子存储库(根据需要添加或删除文件):
> dipr rcs commit -m "A commit message." --add-remove
仅标记子存储库:
> dipr rcs tag "Release_V1.1.1" -m "A release tag" --exclude-root
将根repo和所有子存储库推送到其上游:
> dipr rcs push
放弃根repo和所有子存储库中的更改:
> dipr rcs discard
依赖项中的更改也可能被丢弃:
> dipr rcs discard --only-depends
DIPR数据存储
dipr的所有数据都存储在通过dipr init
命令初始化的.dipr目录中。数据文件是yaml
格式化并记录如何手动添加或修改条目的示例。
sample diprsrc.yaml:
DIPSUB1:
PROTOCOL: GIT
URL: https://example.com/git/dipsub1.git
HGSUB1:
PROTOCOL: HG
URL: https://example.com/hg/hgsub1
DIPDEP1:
PROTOCOL: GIT
URL: https://example.com/git/dipdep1.git
sample diprdep.yaml:
将更新为指定标记的回购:
"Depends/DipDep1":
KEY: DIPDEP1
TAG: Release_V1.0.3
将更新到默认分支尖端的回购:
"Depends\DiprStuff":
KEY: DIPRSTUFF
将更新到develbranch提示的回购:
"Depends/SubFolder/ODiprStuff":
KEY: ODIPRTUFF
BRANCH: DevelBranch
将更新为特定修订哈希的回购:
"Depends/FinalDiprStuff":
KEY: FDIPRSTUFF
REVISION: 234d395