gpt4 book ai didi

python - 使用 python-hglib 提交单个文件

转载 作者:太空宇宙 更新时间:2023-11-03 18:05:38 24 4
gpt4 key购买 nike

我正在尝试使用 python-hglib 实现一个基本的 scm。
到目前为止,我已经成功连接到一个存储库(本地),并且我想在多个文件中提交一个文件。我不知道该怎么做。考虑以下因素:

client = hglib.open(my_mercurial_repo)
root_repo=hglib.client.hgclient.root(client)
print "%s root" % root_repo
rev, node =client.commit('Simple commit message', addremove=False, user='user1')

这成功连接到my_mercurial_repo,但是当我到达提交行时,我收到此错误:

'hglib.error.CommandError'>, CommandError('commit', '-m', 'Checkpoint', '-u', 'myself', '--debug')

但是如果我将其更改为:

rev, node =client.commit('Simple commit message', addremove=True, user='user1')

效果很好。查看文档,addremove=True 会在提交之前将新的/丢失的文件标记为已添加/已删除。

所以我想我的问题是:如何使用 python-hglib 在 n 个文件的存储库中提交单个文件?

只是一个快速更新,感谢 @kAlmAcetA 的回复,我按照建议更新了我的代码以包含

client.add('/tmp/repo/somefile')
rev, node =client.commit('Simple commit message', addremove=False, user='user1')

当我这样做时,错误消失,第一次提交被执行。如果我在打开的同一个文件上再次执行代码,我仍然会收到错误。所以也许我想做的是

  • 打开文件(我同意)
  • 向文件添加一些文本(我对此没问题)
  • 提交文件
  • 向同一个文件添加更多文本(我对此没意见)
  • 提交文件

我现在正在努力为单个文件执行提交-->编辑-->提交循环。

问候

最佳答案

不支持使用 hglib.commit 提交单个文件,但您可以使用 hglib.rawcommand,它在命令行上使用与 hg 相同的语法:

repo = hglib.open(path_to_your_repository)
repo.rawcommand(args=['commit', 'filename'])

args 中的第一个元素必须是 hg 命令名称。其余元素是您与该命令一起使用的任何选项。在我的实际代码中,我有:

repo.rawcommand(['commit','-m '+commit_msg, file_name)])

关于python - 使用 python-hglib 提交单个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26962378/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com