java - Mercurial v Git v 颠覆

标签 java svn git version-control mercurial

我需要选择一个 VCS 嵌入到我正在开发的 Java 应用程序中。 Java 应用程序将通过 API 与 VCS 交互,但用户也将通过 Eclipse 插件直接与其交互。

已确定 3 个候选 VCS:Mercurial、Git 和 Subversion。我需要根据以下标准(排名不分先后)选择一个:

  • Java API。这不是 100% 必要的,因为如果没有可用的 Java API,应用程序可以通过命令行发出 VCS 命令。但是,API 显然更可取
  • Eclipse 插件
  • 简单。使用 VCS(间接通过应用程序或直接通过 Eclipse)的人将是软件开发人员,但可能不是最成熟的。
  • 许可。许可证必须允许在商业应用中使用 VCS(以上述方式)

可能还有其他我忽略的注意事项,如果还有什么想起来的,我会更新这个问题。

谢谢!

最佳答案

  • Java API:Subversion 具有针对 Java 的绑定(bind),并且正在对 Java 中的 Mercurial 进行某种重新实现(请参阅开发邮件列表)。
  • Eclipse 插件:Eclipse 有支持这三种插件的插件。
  • 简单:Subversion 可以说有一个更简单的集中式模型。 Mercurial 往往比 Git 更易于学习和使用,同时在其他方面也非常接近。
  • 许可:Git 和 Mercurial 遵循 GPL,但您可以通过命令行调用它们而无需许可。 Subversion 使用非 copyleft 的 Apache 许可证。

现在 - 为什么不编写一个抽象化差异的接口(interface),以便您可以支持所有这三个? Mercurial 和 Git 非常相似,所以至少支持这两者应该是相对简单的。

关于java - Mercurial v Git v 颠覆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4312721/

相关文章:

java - 如何使用 native Java 创建证书签名请求

java - Android Studio 有时无法启动首次尝试

git - 手动重新添加文件或使用 git revert 之间有区别吗?

git - 从 commit-id 检索 gerrit 链接

java - 从 subversion repo 中排除哪些 eclipse 文件

git - 将多个旧提交 merge 为一个

java - Ant 将类路径 jar 复制到目录

java - 代理背后的 Google Drive API Java 客户端

java - 在SVN 1.7中寻找Java类来检索SVN版本信息

java - 如何忽略svn中的所有eclipse项目文件