2011-12-06 20 views
2

我试图评估产品想法(除了主要的,非公开的功能)将提供的内容/更改“版本控制”式的二次视图。我期望很多用户,并且我不会创建真正的存储库,我想按我认为合适的方式存储我的内部数据 - 我只想模拟Subversion或Mercurial服务器。Subversion或Mercurial SPI - 服务器应该执行哪些API?

我迅速搜索的API,虽然Subversion和Mercurial是丰富的客户端API文档,我找不到像样的服务器端API/SPI文档/规范。

我要使用Java,但在任何语言的任何格式,可帮助不同的复杂性和所需的工作量决定。 Git的可能是一种选择,但我与它没有任何经验。

更新#1:我不求给定工具的普及。我需要二进制/ REST /任何需要实现的服务器类型的协议描述来“成为”那种服务器。

+3

什么你问?什么是最容易实现?最有可能流行的是什么?我的“从臀部拍摄”的答案是,你不应该这样做。专注于让你的产品理念变得有趣的东西,并留下“花里胡哨的”,直到你的产品工作和(付费)客户要求他们。 –

+0

我不是在寻求一种给定工具的普及。我需要二进制/ REST /任何需要实现的服务器类型的协议描述来“成为”那种服务器。 – Steve

+0

颠覆可以提供WebDAV访问,这听起来像你实际上想要实现的,不是?分布式版本控制类访问的开放标准? – BRFennPocock

回答

1

您可以找到有关水银 “API” 在以下链接的一些信息:

  1. https://www.mercurial-scm.org/wiki/WireProtocol
  2. https://www.mercurial-scm.org/wiki/HttpCommandProtocol
  3. https://www.mercurial-scm.org/wiki/SshCommandProtocol

CategoryInternals page也或许值得一读。

如果您想了解更多信息,恐怕你将不得不读取的代码。

+0

感谢您的链接!不幸的是,如果这是Mercurial发布的所有内部API文档,那么我需要深入研究他们的python代码 - 或者忘记/删除Mercurial支持。太糟糕了,无论哪种方式... – Steve

+0

@Steve一旦你深入Python代码,你可以改进wiki上的文档;)顺便说一句,我不认为模拟Mercurial服务器或任何其他VCS服务器在这方面真的是一个好主意,在我看来,这将是一个真正的负担...与你的项目祝你好运! – krtek

相关问题