是否有Bitbucket,Github,Kiln和类似DVCS浏览和管理工具的开源替代品?[关闭]


68

我知道提供DVCS浏览和管理的几种工具/服务,例如BitbucketGithubKilnSCM-ManagerRhodecode

但是,我正在考虑的用例是这样的:

  1. 任何源代码都必须位于雇主内部服务器上。
  2. 解决方案必须是开源的。
  3. 它应提供类似Bitbucket或Github的体验,包括项目Wiki,存储库浏览和管理以及社交编码方面(如代码审查)。
  4. 该解决方案应具有丰富的支持(如果不支持其他DVCS)。

其中只有SCM-Manager和RhodeCode可以接近,因为它们可以安装在您自己的服务器上并且是开源的。但是他们没有Bitbucket或Github经验。没有问题跟踪器或Wiki,并且用户界面虽然功能正常,但与Github或Bitbucket不相称。

我可以通过他们的存储库浏览器来接近Trac或Redmine,但不幸的是它们没有任何存储库管理功能。

是否有其他开源工具可以提供与Bitbucket,Github或Kiln类似的体验?


4
GitHub Enterprise在内部网络上运行。enterprise.github.com


4
@sylvanaar据我所知,redmine不提供存储库管理功能,仅提供存储库浏览功能。
瑞安·泰勒

3
gitlabhq.com是我所见到的与GitHub最接近的网站
Andrew T

8
我投票重启。这是一个非常受欢迎的问题。为什么要关闭它?我们至少可以将其迁移到其他地方吗?
William Leara 2013年

Answers:


31

来看看化石。 显然,这是sqlite的开发人员在内部使用的系统。它还使用 sqlite,这是一项很好的可靠技术……既美观又可移植-简单可靠。

它具有一个精巧的用户界面(如果我认为这应该符合您所描述的以生产力为导向的目标的本质,则该界面非常简洁)。((请务必检查出“灰色”主题。如果可以的话,它比默认的“主题”要少得多。基于系统,因为我是CGI的傻子。这种遗产的结果实际上非常有趣,因为该系统具有非常独特的JSON-ONLY模式,该模式具有各种有趣的实现可能性。

他们提到了它-但值得重复的是它有0个依赖项。没有php,没有mySQL,没有python。娜达 它是自己的二进制可执行文件-并且可以在许多平台上运行。我希望更多的项目以同样的方式“思考”。

我不与他们关联,所以就干脆引用他们打开页面extolations,通常,我..同意也看看问题和批评 ..

Bug跟踪和Wiki-除执行Git和Mercurial之类的分布式版本控制外,Fossil还在单个集成包中支持分布式Bug跟踪,分布式Wiki和分布式博客机制。

Web界面-Fossil具有内置且易于使用的Web界面,可简化项目跟踪并提高态势感知能力。只需在任何结帐中键入“ fossil ui”,Fossil就会在页面中自动打开您的Web浏览器,该页面提供有关该项目的详细图形历史记录和状态信息。

自动同步-Fossil支持“自动同步”模式,该模式通过减少与分布式项目相关的不必要的分叉和合并的数量来帮助使项目前进。

自包含-Fossil是一个独立的可执行文件,其中包含执行配置管理所需的一切。安装非常简单:只需下载适用于Linux,Mac或Windows的预编译二进制文件,然后将其放在$ PATH中即可。易于编译的源代码可供其他平台上的用户使用。化石源也大多是自包含的,仅需要“ zlib”库和标准C库即可构建。

简单网络-Fossil使用普通的旧HTTP(具有代理支持)进行所有网络通信,这意味着它可以在限制性防火墙后面正常工作。该协议具有高带宽效率,可以通过拨号Internet连接舒适地使用Fossil。

已启用CGI-不需要服务器即可使用化石。但是服务器确实使协作更容易。Fossil支持三种不同但简单的服务器配置。最受欢迎的是2行CGI脚本。这是自托管化石存储库使用的方法。

稳健而可靠-Fossil使用持久文件格式将内容存储在SQLite数据库中,这样,即使由于断电或系统崩溃而中断事务也是原子性的。此外,自动自我检查会在每次提交之前验证存储库的所有方面是否一致。在三年多的运作中,投入到Fossil资料库后再也没有丢失任何工作。

更新:这里不做任何暗示,而是简要介绍一下……正如您所看到的,它确实很简单。但这也意味着可以进行自定义的整洁方式。模板系统。写一个短篇小说比重写别人的书,IMO更好。

化石ui


3
化石+1。在这里,我在工作中广泛使用了它,而我所看到的唯一“缺点”是该龟(git / hg / svn)适合的区域。但是,有winfossil项目。如果要查看除化石本身之外的项目的Web界面,它是在化石中托管的。
Spencer Rathbun 2012年

1
化石绝对很棒。我很少使用它,但这是事实。
haylem 2012年

16

Gitorious是开源的,您可以使用Gitorious社区版提供的脚本将其安装在自己的服务器上(请参阅http://www.getgitorious.com/installer)。Gitorious现在支持Wiki和问题跟踪。还有一个Docker映像可用于快速运行它。

另一个选择是Gitlab,它基本上是GitHub的克隆版本,虽然不如出色的版本成熟,但是它正在按月发布,正在大量开发中。

您可能还想在这里查看更多选项


Gitorious的安装过程已得到简化。您可以使用安装脚本(getgitorious.com/installer)或去准备运行VirtualBox的图像(getgitorious.co/install-gitorious
彼得Butkovic


8

您的约束非常具体,但我认为您可以使用ChiliProject +插件获得所需的结果。

ChiliProject是Redmine的一个分支,它使用Ruby / Rails的更新版本。它很好地支持git和mercurial,并通过解析提交消息来复制您正在寻找的Github Issues功能(即,refs 291在提交中会将提交链接到Issue#291)。

也有Redmine / ChiliProject 插件提供了诸如代码审查,语法突出显示以及Github等提供的其他功能的功能,这些功能在开源竞争对手中可能并不明显或不容易获得。

还有其他选项,例如JIRA等,但它们(IMHO)不提供Redmine的ChiliProject分支+大量可用插件提供的可扩展性或丰富功能。Github和/或BitBucket对您来说ChiliProject(可能带有免费提供的插件)无法为您做很多事情;优点是,如果它还不存在,那么自己实现通常就不那么容易了。

如果这听起来像更多的比你需要的...我还没有尝试过,但GitLab也看起来有趣...它似乎并不具备管理平台/辣椒的扩展或插件架构,但如果你正在寻找对于具有大部分核心功能集的Github开源克隆(并且您不需要支持多个DVCS),它看起来不错。


另外,如果你需要基于网页的源代码控制管理工具......我已经成功地使用的gitosis与管理平台/ ChiliProject ...不知道该等效水银的,但它应该是相当琐碎的补充。
杰森·刘易斯

更新:Redmine从Redmine 2开始也使用最新的Rails版本(如果您是Rails 3)。–
替代

7

Allura http://sf.net/p/allura应该符合要求。它是SourceForge上所有新(或升级)项目的平台,并且是开源的。它支持Mercurial和Wiki,以及其他更多工具(Git,SVN,票务跟踪器,论坛等)。它没有“代码审查”功能,但支持分支和合并Mercurial和Git仓库的请求。

它是用Python编写的,并使用MongoDB和Solr进行数据存储。

目前,Allura也位于Apache孵化器中:http : //incubator.apache.org/projects/allura.html

我为SourceForge工作,并帮助开发Allura。


6

对于工作中完全相同的问题,我们使用的生态系统包括:

  • Redmine用于问题跟踪
  • 用于存储库管理的RhodeCode
  • Jenkins用于持续集成和部署(我们有用于部署和升级任务的工作,可以细化方式分配权限,您可以免费获得审计跟踪)
  • 用于身份验证的Active Directory(以上所有功能均可与其无缝集成)

Redmine中的DVCS集成在以后的版本中有了长足的进步,我在几周前进行了升级,我为大多数“陷阱”都消失了感到非常高兴。

我在同一主机上运行Redmine和RhodeCode服务器,因为Redmine尚不支持远程HG仓库。Jenkins在其他几台主机上运行。

我使用RhodeCode钩子触发Redmine中的汞拉。由于JENKINS-13717,我无法为Jenkins拉动使用钩子,但是我已经为此提交了补丁,我想它将很快被接受。同时,我每隔几分钟就轮询一次HG仓库。

一切都通过Nginx反向代理在Debian 6.0上运行以获得SSL终止(所有这些都仅在SSL上使用)。最近,整个软件包已移至ProxMox集群以对其进行虚拟化,到目前为止效果很好。如果您不知道该产品,则应该看看它。这是“ 我不敢相信它的存在,我也不知道,OMG它也是开源的! ”这类产品之一。我们在OpenVZ容器上运行这些服务,这些容器可以轻松地从一台主机迁移到另一台主机以进行硬件维修/升级。在同一群集上,我们还运行了一堆KVM虚拟机,以在Windows平台上进行自动化测试。

我对这个生态系统非常满意。它极大地提高了我们的开发/质量保证团队重现问题和跟踪更改的能力。只是一些警告:

  • 如果您使用Rhodecode,请不要在SQLite上进行设置。使用MySQL或其他真正的DBMS。实际上,它实际上不是可迁移的,并且SQLite一次仅需要1个连接,从而导致有趣的锁定和超时(请参阅RhodeCode的#439)。如果在您偶尔收到错误消息时,Jenkins连续轮询回购协议,这将很痛苦(请参阅上面有关Jenkins问题的评论)。
  • 您真的不能对开发人员施加太大压力,在Mercurial中,提交号“ 132”对网络上的其他任何人都没有任何意义,因为这些数字只是本地的。在谈论Redmine票证中的变更集时,请使用您可以从repo浏览器中获得的本地修订号(由于RhodeCode和Redmine在同一台计算机上运行,​​因此在修订版中是相同的)或使用commit:abcd1234

我毫不犹豫地推荐此设置,因为我对此感到非常满意。如果您在配置特定服务方面需要帮助,或者想要查看我的配置文件,请随时询问。


2

看看cydra:https : //github.com/mensi/cydra它支持

  • 颠覆(HTTP)
  • Git(HTTP和SSH在单独的端口上)
  • Mercurial(HTTP)
  • Trac

它基于一种基于项目的方法,该方法允许您创建一个项目并为其分配多个存储库(最多一个SVN存储库)。auth基于各个插件(我们将其集成到了ldap中)。

我们将其用于我们的https://code.vis.ethz.ch编码平台。目前尚不支持代码审查,但可以轻松将其添加为插件。

我没有足够的声誉,所以无法发布屏幕截图。


1
Cydra项目看起来几个月前才刚刚开始,并且似乎没有非常积极地开发。可能还不成熟。
R0MANARMY 2012年

是的,你是对的。但是如果您想设置类似代码托管平台的内容,则可能需要自己自定义很多内容,因此我认为值得一提。
Pascal

2

考虑使用GitLab https://about.gitlab.com/,因为它可以满足您的大多数要求:

  1. 您可以在本地安装它
  2. 它是MIT外派许可的
  3. 它具有一个Wiki(由git支持),存储库浏览,详细的访问管理(多个访问级别,受保护的分支,ldap集成等),并且具有合并请求以进行代码审查和讨论(包括行注释)。
  4. 它不支持Mercurial,仅支持git

它还具有良好的问题跟踪器,或者您可以链接到外部问题跟踪器。如果需要,您可以使用GitLab CI测试合并请求。manbetx客户端打不开一直在快速增长,并有超过25.000个组织使用。

披露:我是GitLab BV的首席执行官兼联合创始人

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.