我想仅在特定范围内的变更集上使用 Mercurial Python API,并且通过阅读文档,我无法弄清楚如何去做。
我的代码如下所示:
from mercurial import ui, hg
import datetime
repo = hg.repository(ui.ui(), 'path_to_repo' )
start_date = datetime.datetime( 1997, 01, 01 )
end_date = datetime.datetime( 2000, 12, 31 )
# Print every changesetid in required range
for changesetid in repo:
#print repo[changesetid]
changeset = repo.changectx( changesetid )
date = changeset.date()[0]
if ( date > start_date and date < end_date):
# Do stuff...
pass
我得到的输出是:
Traceback (most recent call last):
File "test.py", line 14, in <module>
if ( date > start_date and date < end_date):
TypeError: can't compare datetime.datetime to float
示例输出日期为:
- 645630248.0
- 887802818.0
我也见过'hg help dates',但无法从中看出如何将日/月/年日期转换为 Mercurial 的内部表示。
请问如何将截止日期转换为适合比较 changectx.date() 返回的日期值的数字格式?
PS我知道,对于这个微不足道的示例,有更好的方法可以直接使用 hg 命令执行此操作...我的示例代码中没有包含的是我希望在“做事”点添加的复杂步骤!