多版本控制系统的抽象层。

anyvcs的Python项目详细描述


多版本控制系统的python抽象层。

Build StatusPyPI Package

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或更高版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
添加组件后,java JTable为空   java将json发送到php并插入mysql,但返回null   java Spring引导JNDI CommonJ资源   从不同PC创建和合并后的Java servlet问题   java如何在使用findelements时从xpath获取文本   java使用spring boot使用gmail smtp发送电子邮件   java在不使用pojo、bean或getter和setter的情况下获取Json标题的Json数组   Java中的OpenFile对话框将null作为响应   JavaBuilder模式。扩展接口   java中无需替换的数据结构选取   java如何评价Encog中的预测神经网络   java如何在安卓中使用实际的HttpURLConnection进行单元测试?   java使用XML配置禁用WebSocket中的CSRF保护   java如何通过hibernate从多表查询中获取数据?   mysql如何在java中获取更新的行Id   java AEM/CQ组件单一组件/有限组件   java FFmpeg Javacv延迟问题   显示整数数组的java不起作用