用于访问 Hg、Git 和可能的 Bazaar 存储库的 Python 包装器?

发布于 2024-11-06 13:36:23 字数 799 浏览 1 评论 0原文

我正在寻找一个可以对存储库进行基本操作但独立于后端版本控制系统的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)

有任何指向类似上述内容的指针吗?我的 Google 搜索没有任何结果...

更新:无论其价值如何,我已经开始研究如下内容:代码在这里单元测试 对于汞储存库。我可能会抽出时间去使用 Git 和 Bazaar;欢迎贡献。

I'm looking for a Python library that can do basic manipulation of repositories, but is independent of the backend version control system.

By basic manipulation, I'm referring to: initialize a repo, add files, commit, pull, push, get current revision number.

Users of the library could do something this:

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)

Any pointers to something like the above? My Google searches turn up nothing...

Update: for what it's worth, I've started working on something like this: code is here with unit tests
for Hg repositories. I might get around to Git and Bazaar; contributions welcome.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

飘逸的'云 2024-11-13 13:36:23

还有 VCS 模块,它宣传:

vcs 是各种版本控制系统的抽象层。这是
设计为功能丰富的 Python 库,具有干净的 API。

There's also the VCS module, which advertises:

vcs is abstraction layer over various version control systems. It is
designed as feature-rich Python library with clean API.

-小熊_ 2024-11-13 13:36:23

我认为你不走运。

有 git 的 Python 包装器,但根据this,质量仍然达不到最佳水平。 Hg和bzr是Python项目,但它们的基础设施有很大不同,因此API级别的集成并不容易。此外,不同的 SCM 具有不同的设计理念,这使得统一的包装器不太可信。

话虽这么说,如果您确实需要一个简单的包装器,您可以使用 subprocess 模块并包装命令行以获得您想要的结果。

I think you are out of luck.

There are Python wrappers for git but according to this the quality is still less than optimal. Hg and bzr are Python projects but their infrastructure is quite different, so API level integration is not easy. Also different SCMs have different design philosophies, which makes a unified wrapper less plausible.

That being said, if you do need a simple wrapper, you can use the subprocess module and wrap the command lines to get the result you want.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文