Python封装以访问Hg、Git和可能的Bazaar存储库?

8 投票
2 回答
1732 浏览
提问于 2025-04-16 17:19

我在找一个Python库,可以用来简单操作代码仓库,而且不依赖于具体的版本控制系统。

这里说的简单操作包括:初始化一个仓库、添加文件、提交更改、拉取更新、推送更改,以及获取当前的版本号。

使用这个库的人可以这样做:

import dvcs_wrapper as dvcs
dvcs.set_backend('hg')  # could choose 'git', 'bzr'

repo = dvcs.init('/home/me/my_repo')
repo.add('/home/me/my_repo/*.py')
repo.commit('Initial commit')
repo.push('http://bitbucket.org/....')
print('At revision %d' % repo.revision_num)

有没有类似的推荐?我在谷歌上搜索了很多,但没找到...

更新:顺便说一下,我已经开始做类似的东西了:代码在这里,还有单元测试,是针对Hg仓库的。我可能会继续做Git和Bazaar的支持;欢迎大家贡献代码。

2 个回答

5

还有一个叫做 VCS 的模块,它的介绍是:

vcs 是一个在不同版本控制系统之上的抽象层。它被设计成一个功能丰富的 Python 库,拥有简洁的接口。

4

我觉得你可能运气不太好。

虽然有一些Python可以用来操作git的工具,但根据这个链接,它们的质量还是不太理想。Hg和bzr是Python项目,但它们的结构和工作方式差别很大,所以想要把它们整合到一起就不那么简单了。而且,不同的版本控制系统(SCM)有不同的设计理念,这也让统一的工具变得更难实现。

不过,如果你确实需要一个简单的工具,可以使用subprocess模块,把命令行封装起来,这样就能得到你想要的结果。

撰写回答