多版本控制系统的抽象层。
anyvcs的Python项目详细描述
多版本控制系统的python抽象层。
python anyvcs提供了一个python接口来处理版本控制 通过一致接口存储库,而不考虑底层 存储库类型。它目前支持:
- Git存储库(裸存储库或非裸存储库)
- Mercurial存储库
- Subversion主存储库(使用svnadmin create创建的存储库)
重点是只读操作,但支持一些写操作 (例如创建新存储库或加载Subversion转储文件)。
如果您正在寻找一个接口来处理版本的工作副本 控件存储库,要么参与此项目,要么查找其他位置。
支持的操作
- ls()-列出文件
- cat()-读取文件内容
- readlink()-读取符号链接目标
- branches()-列出分支
- bookmarks()-列出书签(仅限Mercurial)
- tags()-列出标记
- heads()-列出所有分支、书签、标记等。
- tip()-查找命名头部的尖端
- empty()-确定存储库是否包含任何提交
- __len__()-计算存储库中提交的次数
- __contains__()-确定存储库是否包含给定的修订版
- log()-获取提交日志
- changed()-列出在给定修订版中更改的文件
- pdiff()-获取给定版本引入的差异
- diff()-获取任意两个修订之间的差异
- ancestor()-查找任意两个修订版的最新共同祖先
- blame()-文件的非责任(也称为注释)行
- canonical_rev()-获取规范修订标识符
- compose_rev()-组成一个修订标识符,对分支和修订进行编码
- ^ TT21}$-克隆现有的存储库
- private_path-存储库中可以存储未跟踪数据的路径
- dump()-创建subversion转储文件(仅限subversion)
- load()-加载subversion转储文件(仅限subversion)
底层版本控制本机不支持的操作 系统在这个库中实现。
示例
>>> from pprint import pprint >>> import anyvcs >>> repo = anyvcs.open('/path/to/repo') >>> repo.branches() ['1.0_develop', '1.0_master', 'develop', 'master'] >>> >>> log = repo.log(limit=3) >>> pprint([commit.message for commit in log]) ["Merge branch 'release/1.2.0' into develop\n", "Merge branch 'release/1.2.0'\n", 'add README symlink to keep python happy\n', 'add copyright information\n'] >>> >>> ls = repo.ls('master', '/') >>> pprint(ls) [{'name': '.gitignore', 'path': '.gitignore', 'type': 'f'}, {'name': 'AUTHORS', 'path': 'AUTHORS', 'type': 'f'}, {'name': 'COPYING', 'path': 'COPYING', 'type': 'f'}, {'name': 'COPYING.LESSER', 'path': 'COPYING.LESSER', 'type': 'f'}, {'name': 'LICENSE', 'path': 'LICENSE', 'type': 'f'}, {'name': 'MANIFEST.in', 'path': 'MANIFEST.in', 'type': 'f'}, {'name': 'README', 'path': 'README', 'type': 'l'}, {'name': 'README.md', 'path': 'README.md', 'type': 'f'}, {'name': 'RELEASE-NOTES.txt', 'path': 'RELEASE-NOTES.txt', 'type': 'f'}, {'name': 'anyvcs', 'path': 'anyvcs', 'type': 'd'}, {'name': 'setup.py', 'path': 'setup.py', 'type': 'f'}, {'name': 'tests.py', 'path': 'tests.py', 'type': 'f'}]
兼容性
python anyvcs应使用以下软件版本:
- python:2.6或更高版本(包括3.0或更高版本)
- Git:1.7.0或更高版本
- 水银:1.6.1或更高版本
- Subversion:1.5或更高版本