我正在尝试使用 python-hglib 实现一个基本的 scm。
到目前为止,我已经设法连接到一个 repo(本地),我想在许多文件中提交一个文件。我不知道该怎么做。考虑以下:
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('简单提交消息', 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')
当我这样做时,错误消失了,第一次提交被执行。如果我在打开的同一个文件上再次执行代码,我仍然会收到错误消息。所以也许我想做的是
- 打开一个文件(我没问题)
- 在文件中添加一些文本(我可以接受)
- 提交文件
- 在同一个文件中添加更多文本(我可以接受)
- 提交文件
我现在正在努力为单个文件执行 commit-->edit-->commit 循环。
问候