注意:我们 code.onedev.io 开发OneDev是为了狗粮。所有问题和拉取请求都应在那里提交
当然,IDE擅长于这样做,但通常我们需要在旧提交中搜索(调查发布版本中的问题等),并且在IDE中切换提交可能会很麻烦而且很慢。
它的工作原理是使用ANTLR分析源代码,以增量方式提取符号以进行存储,快速且节省空间。现在支持Java,JavaScript,C,C++,CSharp,Go,PHP,Python,CSS,SCSS,LESS和R.GitHub几年前增加了这个功能,但似乎它仅适用于主分支,GitLab必须配置CI作业来生成和上传LSIF,这很麻烦,如果你每次提交这样做,可能会占用相当大的空间。
你还可以在查看提交或拉取请求时跳转到 diff 中的符号定义。
你可以切换到任何提交,并使用正则表达式搜索代码。引擎盖下的OneDev以增量方式与Lucene一起索引代码。在搜索时,将提取正则表达式中的文字三元组以进行粗略搜索,然后在结果中进行完全匹配。这使得正则表达式搜索速度非常快,即使对于像Linux这样的大型存储库也是如此。
当然,这可以由GitHub上的许多第三方应用程序完成,但是它们在自己的应用程序上显示结果,这使得审查活动(例如在分析结果上添加注释)变得困难。更不用说你需要为这些服务付费。
GitHub/GitLab 问题的简单打开/关闭状态不适用于许多工作流。考虑客户提交的问题:
对于可自定义的问题状态,我们可以通过四种状态来解决问题:打开、已提交、测试就绪和已发布:
服务台允许你的用户通过电子邮件提交票证,而无需拥有OneDev帐户。然后,可以在所需的项目中创建这些票证,并将其分配给团队中的相应成员。所有关于工单的进一步讨论都可以完全通过电子邮件进行,讨论内容作为评论发布到工单。当有任何工单活动时,用户还将收到通知,例如,创建或部署相关版本时
再次感谢ANTLR,OneDev为项目,提交,问题,构建和拉取请求提供了复杂的查询语言,并具有直观的自动完成和提示。例如,它使我们的客户能够找到其运行版本和最新版本之间的固定问题,并使我们能够找到接触指定模块的人提交的所有提交,等等。
查询可以保存和订阅,这样你就不会错过任何感兴趣的东西。
OneDev 附带 GUI 以生成 CI/CD Yaml。无需谷歌搜索Yaml语法。用于启动 OneDev 服务器的单行 docker 命令,并且你具有自动的本地 CI/CD 运行程序。担心服务器运行大量作业的能力?另一个单行线用于从任何计算机连接自我更新代理。需要自动缩放 CI/CD 场?一个掌舵单行,用于将OneDev部署到k8s集群中。
构建管道,矩阵作业,类型化参数,参数链接,步骤模板,构建促销...太多整洁的功能来详细说明...
根据作者、分支和已更改的文件指定拉取请求审阅策略。OneDev 可以利用 git 更改历史记录为涉及某些文件的拉取请求建议最合适的审阅者。
对代码或差异的任何部分进行注释,以在不打开拉取请求的情况下启动轻量级审阅。通过代码修改甚至文件重命名来实时查看注释以用作文档。
每个讨论都是线程化的,以便你可以轻松地了解具有新评论/更新的讨论。
按 cmd/ctrl-k 从任意位置调出命令调色板。搜索项目、文件、问题、拉取请求、构建和各种设置,并在不离开键盘的情况下跳转到它们
在 GitHub/GitLab 的 Markdown 文件中嵌入图像时,你需要将图像上传到单独的页面中,然后找出引用该图像的相对路径。使用OneDev,你只需将图像上传到同一编辑器中的所需文件夹,链接将自动生成。
OneDev 在编辑窗口中跟踪光标,并根据需要滚动预览窗口,以便你始终可以预览正在键入的内容。
OneDev检查主分支的git历史,以有效地按语言计算代码源代码行的趋势。
组织是公共服务的理想选择。但是,对于自托管内部使用,我们认为分层结构对于组织项目更实用。子项目可以从父项目继承设置,并且可以根据需要有选择地覆盖其中一些设置。这减少了管理公司中许多项目的大量开销。
OneDev 经过精心设计,充分考虑了性能。使用2核2GB盒子,你将获得中型项目的所有功能。它已经被密集使用超过5年,具有经过实战验证的可靠性。修复错误是我们的首要任务,通常很少有已知的错误。
YourKit通过提供其出色的Java分析器的免费开源许可证来支持此项目