Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python包装器可以访问Hg、Git和Bazaar存储库吗?_Python_Git_Mercurial_Wrapper_Dvcs - Fatal编程技术网

Python包装器可以访问Hg、Git和Bazaar存储库吗?

Python包装器可以访问Hg、Git和Bazaar存储库吗?,python,git,mercurial,wrapper,dvcs,Python,Git,Mercurial,Wrapper,Dvcs,我正在寻找一个Python库,它可以对存储库进行基本操作,但独立于后端版本控制系统 通过基本操作,我指的是:初始化repo、添加文件、提交、拉、推、获取当前修订号 图书馆的用户可以这样做: 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') rep

我正在寻找一个Python库,它可以对存储库进行基本操作,但独立于后端版本控制系统

通过基本操作,我指的是:初始化repo、添加文件、提交、拉、推、获取当前修订号

图书馆的用户可以这样做:

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;欢迎捐款。

我想你运气不好

git有Python包装器,但从质量上看,仍然不是最优的。Hg和bzr是Python项目,但它们的基础设施非常不同,因此API级集成并不容易。不同的SCM也有不同的设计理念,这使得统一的包装不太合理

也就是说,如果您确实需要一个简单的包装器,那么可以使用
子流程
模块包装命令行以获得所需的结果

还有一个模块,它宣传:

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


这个用例是什么?假设我有用于访问SVN、Mercurial和Bazaar的Python库(我就是这么做的),这个库对我有什么作用?上面的脚本看起来不像是你要重用的东西。对于我来说,基于结构安装各种子回购(可能是不同的DVC)是有意义的。我现在把所有东西都转换成hg,但是一个通用的包装器会很有用。@Mike-用例是Django代码为代码片段网站提供动力。片段由web用户修改并存储在VCS中以跟踪历史。使用此代码的网站运营商可能更喜欢一个DVC而不是另一个。我去年遇到的另一个用例是用于文档管理的软件(用StructuredText编写书籍)。有些作者更喜欢Git而不是Hg而不是Bazaar,等等。我更喜欢编写一次代码,他们可以在软件设置中选择自己的DVC。这是我不希望听到的答案!我使用
子流程
完成了项目()的Mercurial包装,我想我必须使用类似的命令行为Git和Bazaar编写包装approach@Kevin当包装完成后(例如在github上),您是否打算让包装可用?@Judge:当然!带有一些单元测试的Hg基本包装器已经可用了——请参见上面原始问题中的链接(更新部分下)。但我刚刚看到了@RyanWilcox下面关于的帖子,这似乎是我想要的。我现在就要自己测试了…谢谢你的指点。他们的文档表明他们已经有Git和Mercurial后端了——这正是我需要的两个!