【问题标题】:How to use mercurial (Hg) within a Python application?如何在 Python 应用程序中使用 mercurial (Hg)?
【发布时间】:2011-05-04 19:11:05
【问题描述】:

你好!

Hg 是一个很好的 DVCS,也是一个 python 模块。这允许我们执行“import mercurial”并将 hg 加载到我们自己的应用程序中。我的想法是在 Python 应用程序中使用 mercurial 为我的应用程序创建一个版本控制的存储。

但是我的 google-fu 似乎让我失望了。我找不到任何文档、教程或示例,说明如何在 Python 中将 hg 用作提供功能的模块。 help(mercurial) 列出了常规命令,dir() 提供了一些方法提示。

但是,例如,您是为后备存储创建文件,还是获得另一种可用作 Hg 存储库的数据结构?

具有此功能似乎有很大的整洁潜力。但是怎么做呢?

【问题讨论】:

  • 这样做不是一个好主意,因为 mercurial 项目并没有尝试在 API 中保持版本之间的向后兼容性,而且他们在这方面处于领先地位。
  • 请注意 Mercurial 是 GPL(不是 LGPL),因此如果您的应用程序以这种方式链接到 Mercurial 并且已分发,您也必须将您的应用程序置于 GPL 之下。出于这个原因,并且因为它是唯一保证稳定的 API,大多数集成仍然在命令行/进程级别完成,这是非常稳定且有据可查的。

标签: python mercurial


【解决方案1】:

API 大多未记录在案,使用它可能需要您将代码发布为 GPL — 请参阅https://www.mercurial-scm.org/wiki/MercurialApi。首选(并且更向后兼容)的方式是调用 hg CLI 前端。

【讨论】:

  • 感谢大家的回复。基本上,由于 Hg API 不稳定和许可,这个想法很糟糕。嗯,好的。通过 CLI 调用运行它是一种前进的方式,正如您所说,它可以巧妙地解决这些问题。不如直接修改控制你的数据结构那么简洁——它需要将它们转储(酸洗)到文件中进行存储。无论如何,您可能都必须这样做。回到绘图板,我猜。再次感谢!
猜你喜欢
  • 2011-04-08
  • 2011-01-15
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 2011-07-07
  • 2013-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多