关于版本控制:Perforce-Helix-Core摄像机内视觉特效ICVFX行业首选的版本控制工具

在当今数字娱乐时代,摄像机内视觉特效(ICVFX)和LED墙虚构制片办法(有时也称为现场虚构制片),正在被用于发明一些最前沿的媒体作品。然而,实现令人惊叹的虚构画面不仅须要先进的技术,还须要弱小的版本控制工具来治理宏大的创作文件。在这一背景下,Perforce Helix Core凭借其全面且杰出的版本控制治理,成为泛滥虚构制片团队的首选。 Perforce Helix Core不仅具备治理宏大文件的高效能力,并且可能与空幻引擎等工具完满配合,为摄像机内视觉特效创作提供稳固牢靠的反对。作为Perforce受权合作伙伴,龙智将为您提供业余的征询与服务,助您充沛理解并利用Perforce Helix Core的弱小性能,开启虚构制片之旅 自2020年以来,寰球创意工作室Final Pixel始终在应用摄像机内视觉特效和LED墙。本文将介绍该工作室的首席执行官兼联结创始人Michael McKenna对这些虚构制片办法的施行状况。 首先,让咱们介绍一些基础知识。 什么是摄像机内视觉特效?摄像机内视觉特效(ICVFX)是指在拍摄时捕捉的成果,而不是在后期制作中增加的成果。 在古代电影制作中,摄像机内视觉特效通常是指在大型LED墙上渲染3D环境,并在理论布景中拍摄演员和道具的过程。这种办法能够发明一个真切的场景,并间接在机内观看和拍摄,无需前期更换绿幕。应用镜子、彩绘玻璃、强制透视和其余技术的摄像机内成果曾经存在了很长时间。当初,LED墙正在彻底改变虚构制片。 带有LED墙的摄像机内视觉特效如何工作?在较高层面上,虚拟世界是由美术人员和设计师在拍摄前创立的。这些场景能够基于实在地点,也能够齐全虚构。而后,它们实时渲染在一个大型LED显示屏上,作为场景的背景。场景自身能够蕴含任意数量的物理和实时元素。 一些驰名的节目和电影应用了这种制作形式,包含《西部世界》、《势力的游戏》、《1899》、《小丑》、《蝙蝠侠》和《子弹列车》等。 为什么要在虚构制片中应用带有LED墙的摄像机内视觉特效?应用摄像机内视觉特效和LED墙进行虚构制片的次要劣势在于,在摄像机上拍摄的场景十分靠近最终成果。传统的虚构制片则须要在绿幕前拍摄演员,而后在后期制作中为场景增加背景和视觉效果。 通过LED墙,背景能够间接显示在演员和物理布景的前面。这使得导演和布景人员能够实时看到最终场景,而不用依附他们的想象力。该办法提供的实时性能更受内容制作者的青眼是有起因的: 更具创意灵活性借助游戏引擎和摄像机内视觉特效,美术团队能够实时编辑LED墙上显示的场景。背景和地点能够依据导演的确切要求进行调整。不喜爱建筑物的地位?在几秒内挪动它;天气不太适宜气氛?扭转它!虚拟世界为导演所齐全掌控。 地位抉择无限性设置的地位将不再受工夫、估算、许可或事实的限度。以虚拟世界为背景进行拍摄意味着地点抉择只会受到创作者想象力的限度。 对于一场拍摄,您能够在任意数量的地位生成场景。这有助于您最大限度地利用屏幕上演员的工夫,确保管制估算。它还有助于缩小您的行程估算!此外,每个小时都是“黄金时间”——您能够从任何角度、任何工夫取得完满的照明。 加强真实感在现场应用实时渲染联合了绿幕和理论拍摄的长处。您能够在任何环境中(甚至是虚构的环境),依然能够在前景上投射出真切的照明和反射。如果LED墙上的灯光发生变化,它就会出现在演员的脸上。这在拍摄汽车、盔甲或任何有玻璃反光的场景时至关重要。在后期制作中创立这些反射成果可能会十分艰难、耗时且低廉。 从演员方面节俭资金几十年来,视觉效果和虚拟世界在电影和电视中曾经司空见惯。然而,首先捕获现场表演,而后再增加虚构元素导致了一个次要问题:演员无奈看到他们正在互动的事物。 应用LED墙简直打消了这个问题。它们让演员更加天然地与环境互动,从而产生更真切、更高质量的场景。这意味着演员能够在更少的拍摄次数中实现场景,从而为团队节俭资金。 采访Final Pixel首席执行官兼联结创始人Michael McKenna在电视行业工作超过 15 年后,前BBC Studios高管Michael McKenna在疫情期间创建了寰球创意工作室Final Pixel。他的团队与制片人单干,应用摄像机内视觉特效和LED墙等虚构制片技术创作了革命性的作品。让咱们深刻理解他对这项技术以后和将来情况的认识、为内容创作者带来的可能性,以及如何开始利用这项技术。 问:您是什么时候开始接触虚构制片的?《曼达洛人》在Disney+上公布了许多幕后花絮,我看了这些视频,对John Favreau和工业光魔团队(Industrial Light & Magic)所构建的技术感到惊叹。他们发明了一种拍摄办法,能够将演员置于任何能够设想失去的环境中,他们应用微小的LED屏幕被环境自身照亮,投射出一个在空幻引擎中通过3D建模构建的真切世界。当挪动摄像机时,世界也在同步挪动,你能够看到虚拟世界里的各处角落。这让我大开眼界。 这也让我在洛杉矶的哥哥(Chris McKenna,Final Pixel的创意总监)大吃一惊。咱们在一次周常的家庭Zoom电话中谈到了这个,咱们俩都被迷住了。 问:您第一次应用摄像机内视觉特效(ICVFX)的经验是什么?Chris和我与Monica Hinden(Final Pixel执行制片人)单干,在2020年秋季赞助了两次演示,一次在英国,一次在洛杉矶。咱们会集了来自各地的团队,并与一些本地公司单干,首次涉足虚构制片。 咱们试图发明真切的布景,能够作为内景拍摄的替代品。后果令人震惊。咱们立即看到了这种电影制作方法的微小后劲。因而,咱们在不久之后正式推出了Final Pixel。 在这些拍摄中,咱们学到了很多货色,特地是对严密的文件治理和版本控制的需要。在此之后,咱们开始应用Perforce Helix Core,这极大改善了咱们在空幻我的项目上的工作流程和效率。 问:你们的工作室在哪里?通常,咱们在专门为客户设置的私人场地中进行拍摄,不对公众凋谢。这些场地能够在世界任何中央。 咱们能够在客户须要的任何中央建设这些,通常由所波及的演员决定。咱们的外围基地位于纽约、洛杉矶和伦敦。在我的项目须要时,咱们偶然也会与其余新兴的虚构制作场地单干。 问:你们应用什么工具进行摄像机内视觉特效制作?虚构制片的工作原理是跟踪演播室中的“真实世界”摄像机。这些跟踪信息与空幻引擎中的“虚构”摄像机工具实时相结合。 这个虚构摄像机能够被编程为与真实世界的摄像机同步挪动,简直没有显著的提早。后果是,咱们能够将虚构摄像机所看到的内容投射到一个微小的LED墙上,根本就像是一个微小的电视机。 3D模型的实时渲染使这所有成为可能。典型的视觉特效流水线须要大量的工夫用于渲染图像。有了空幻引擎,这所有就间接产生在你眼前。 这并不意味着物理场景建设的完结。在Final Pixel的拍摄中,美术部门是摄制组的重要组成部分。为了发明一个可信的摄像机内视觉特效成果,前景道具须要与虚拟世界无缝交融。 问:您应用过摄像机内视觉特效最酷的我的项目是什么?应用摄像机内视觉特效和虚构制片是一个十分酷和令人兴奋的过程。最近,咱们为ABC制作了一个宣传片,在空幻引擎中为《与星共舞》从新制作了一个物理布景,并装备了可控的DMX照明,这样咱们就能够将舞台灯光与虚构布景无缝联合。 问:对于心愿尝试摄像机内视觉特效的内容创作者,您有什么倡议?不要胆怯寻求帮忙,无论是通过像Perforce这样的工具链供应商,还是那些从事虚构制片的业余人员。咱们常常在晚期阶段与创作者进行征询沟通,帮忙领导他们理解虚构制片是否是正确的抉择。这项技术还存在一些限度,并且依然处于起步阶段,因而还有一些缺点须要克服。不过,它正在飞速提高中。 随着在线流媒体和公布服务的激增,将来必定有更多的抉择,也会为各种背景的观众提供更多的相关性。 带有LED墙的摄像机内视觉特效:您须要的工具要开始应用摄像机内视觉特效和LED墙,虚构制片团队须要以下一些根本的硬件和软件。 LED面板大型LED墙或LED面板是您展现虚构场景的显示器。在抉择LED墙时,您须要思考以下因素: 提早、刷新率和色调准确度;像素间距(面板上每个LED之间的间隔)——这影响摄像机能够凑近屏幕的间隔;电源和散热;您须要立体墙、两面90度的墙、弧形墙、天花板还是便携式面板?摄像机跟踪零碎您须要一个摄像机跟踪零碎来协调物理摄像机与虚拟环境的挪动。这是为了确保LED屏幕上显示的场景可能随着摄像机视角的变动而真切地挪动。 您须要一个可能提供极低提早和高度精确的摄像机地位/旋转数据的零碎。有外部跟踪器和内部跟踪器,它们各自具备优缺点。除了地位之外,您还须要一个零碎来传输摄像机和镜头数据,例如焦距、变焦和曝光。 同步锁定零碎同步锁定(发电机锁定)零碎将摄像机、渲染机和LED面板同步到完全相同的频率。其目标是防止扫描线呈现在背景中。 渲染机为了实时渲染LED墙上的数百万像素,渲染必须拆分到几台齐全同步的计算机上。Epic的nDisplay插件和Switchboard实用程序使这种共享工作流程成为可能。它利用Perforce Helix Core来确保集群中的每台计算机都具备完全相同的我的项目版本。通过Perforce Helix Core,它还能实现只需单击一下按钮,就能够将所有节点同时更新到最新版本。 ...

March 1, 2024 · 1 min · jiezi

关于版本控制:ACT汽车电子与软件技术周回顾-龙智技术专家分享汽车行业中版本控制与静态扫描的最佳实践

在2023 ACT汽车电子与软件技术周期间,咱们对话了龙智资深参谋、技术支持部门负责人李培,他聚焦联合行业趋势、本身教训与过往胜利案例,分享了版本控制与动态代码扫描在汽车行业中的利用与实际。此外,还比照剖析了包含Git、SVN等的多款工具,为大家提供帮忙与参考。https://www.bilibili.com/video/BV1eu411c7bX/?aid=533572668&ci... 采访文字实录Q:您如何对待汽车行业的开发治理?龙智在这个畛域能够为大家提供哪些帮忙? 在这么多年中,汽车行业仍旧属于传统的制造业。但当初,很多车企面临着新能源企业的竞争,急需转型以缩减老本。他们须要采纳全新的设计办法,在这个古老的行业开展全新模式的摸索。 其中有一个方面咱们可能提供帮忙。当初,因为硬件根底相差不大,汽车行业的翻新集中在了软件层面的利用。组织如何发明出有价值的软件应用成为重点。 说到软件,龙智在软件开发行业工具方面颇具教训,包含合规性工具、分布式开发工具、上游需要管理工具等,都是咱们的强项。通过应用龙智精选的工具,客户可能升高引入软件开发思维的门槛,更快地取得成功。 Q:对于龙智汽车行业解决方案中的版本控制、动态剖析工具,是否介绍一下它们在汽车软件开发中的利用场景? 出名汽车企业大多是百年老店,特点是规模大、重资产。他们有很多研发核心,(并且比拟扩散),甚至有些中国造车新权势的设计团队、重大研发团队散布在海内。这就须要一个能很好的反对分布式开发的版本零碎,来为这些不同办公室之间的合作需提供反对。 当初,咱们曾经有客户采取这种实际。比方他们在英国和重庆都有研发核心,而这些研发核心之间的合作,包含各种研发材料的合作,都得益于Perforce Helix Core,让他们实现了更好的管控与共享。 Perforce的另一个劣势是能够作为繁多可信数据源。为什么反复强调繁多可信数据源?"繁多"意味着繁多零碎就有足够的能力来治理整个公司的数字资产,只有这样能力称之为繁多可信数据源,这个词的含意正是如此。 无论团队规模是几人还是几万人,都能够对立应用一套零碎来治理数据。这意味着在同一平台上进行资源共享和拜访,绝对于将数据分布在各处,这种形式显然更为便捷,这是另一个重要劣势。 在动态扫描方面,思考到汽车波及人身安全,除了传统的ISO 26262公共安全协定和规范外,还要思考较新的汽车网络化规范,例如ISO 21434。这些平安规范都须要一款权威的动态扫描工具来实现,Helix QAC是当仁不让的抉择。 此外,还有一款名为Klocwork的工具,可用于剖析车机系统。因为车机系统往往采纳安卓开发,代码量十分大。Klocwork可能对这些我的项目进行深度剖析。这些工具对汽车行业十分有帮忙。 Q:与SVN、Git相比,Perforce Helix Core对于汽车行业的开发来说有哪些独特劣势? Git和SVN都是宽泛应用的版本管理工具,但与Perforce Helix Core相比,它们在治理的数据量和用户数方面存在显著差别,当这些数据产生重大变动时,就会由质变产生量变。 尽管它们都是版本治理,但在不同数量级上,面临的问题却截然不同。如果要用Git来管200T的数据,几乎是不可能的,世界上最大的Git仓库可能一组也只有几十个G,这是根本性的区别。另外,在审计、分布式部署、分支治理等方面,Git和SVN都与Perforce Helix Core存在显著差异。 对于小团队来说,Git和SVN可能足够应用,这点我是置信的。但在整个公司范畴内,如果每个团队都应用不同的版本治理服务器,那就必然会面临整个组织的数据管制和共享问题。如果想在整个公司对立数据管理起源,Perforce Helix Core是最佳抉择。在前端,能够思考应用其余版本管理工具(如Git),以保留应用习惯,但在公司整体层面,能够布局对立的灾备打算、规定集和降级策略,来确保公司层面的数据安全。 Q:同样都是动态代码扫描工具,Helix QAC和Klocwork的区别在于? 在合规方面,特地是在公共安全规范,如Misra或AUTOSAR的规范笼罩方面,Helix QAC的覆盖率更高,Klocwork的覆盖率绝对较低一点。这种区别次要源于产品定位的不同,只管它们来自同一家公司,但依然存在一些区别。Klocwork反对更多的编程语言,易用性更好,次要就是这些轻微的差异。 Q:Helix QAC和Klocwork是如何帮忙满足ISO 21434、ISO 26262等代码合规性规范的? ISO 26262、ISO 21434这些规范绝对形象且业余,我只能简略地介绍一下。 比方想要低复杂度、代码稳固或强壮,为实现这一要求,须要采取具体的做法。例如,禁止应用语言个性中容易引发谬误的局部,只容许应用一个子集。这样可能产生一套查看规定集,比方Misra、Misra C、AUTOSAR等。通过容许应用一个语言的子集,把容易出错的用法隔离在外,变成一个可执行的查看。只有代码在肯定水平上通过这些规定的查看,就能够表明满足了该规范的要求。 然而,这两头依然存在一个问题。即便应用合规的工具和合规的查看规定,然而依然须要 一套文档来自证清白。在这方面,Perforce原厂提供合规认证,帮忙进步申报成功率。 Q:Helix QAC和Klocwork与竞品相比有哪些劣势? Helix QAC有超过30年的历史,在合规认证方面被视为是必选项,而不是可选项。 Klocwork具备永恒许可,并反对多种编程语言,这是其独特的劣势。 Q:Digital Twin(数字孪生)作为汽车行业的一个新兴概念,请问Perforce产品在其中有什么利用示例? Digital Twin技术不仅在汽车行业失去利用,游戏行业早已应用并逐步成熟。其本质与具体行业关系不大,而是与技术自身严密相干。无论是汽车行业还是游戏行业,只有采纳了Digital Twin,Perforce为您提供卓越的治理反对,包含大数据量、大文件和分布式合作,并且可能很好地与Git等工具进行集成。 Q:整体介绍下龙智汽车行业解决方案? (龙智集成了Atlassian和Perforce等寰球出名厂商的工具,并且是久经市场验证的工具。)在上游需要治理方面,咱们提供Perforce的Helix ALM,能够进行需要、变更、bug、测试等的治理。还有Atlassian公司的Jira,它能够用于我的项目需要治理,包含bug治理也能够实现,尽管可能须要通过插件。并且,它反对不同的开发模式。 从上游需要的保护往下延长到版本控制系统,各种文档、代码、图纸甚至是芯片设计,都可能在Perforce Helix Core或Methodics IPLM上进行治理。 这些材料一旦存储在Perforce Helix Core或Methodics IPLM中,就能够进行定期的审查和查看。在软件层面,通过方才提到的Helix QAC和Klocwork,能进行开源组件、动态扫描和合规性的查看。如果要公布制品,还有其余的一些出名的软件,咱们的产品个别也会自带软件开发生命周期治理。 龙智在服务国内客户以及反对他们应用国际化产品方面积攒了丰盛的教训。咱们领有业余的团队,致力于提供对这些产品的高质量反对。当客户遇到问题或艰难时,咱们会迅速与原厂公司协调,独特解决客户的问题,并且咱们有许多胜利的案例作为参考。 咱们以外乡为根底,为客户提供最优质的国际化产品和最出色的本地化服务,这是咱们的独特劣势 ...

September 22, 2023 · 1 min · jiezi

关于版本控制:数学计算软件开发巨头MathWorks助力嵌入式开发创新将MATLABSimulink与Helix-Core集成

MathWorks是当先的数学计算软件开发商,次要面向工程师和科学家。他们的旗舰产品包含MATLAB和Simulink,反对建模、算法开发、数据分析、数值计算和仿真。 次要挑战:如何实现继续翻新嵌入式软件开发是一项简单的工作,这在很大水平上是因为物联网和人工智能的倒退演变。MathWorks的高级产品经理Dr. Marco Dragic示意:“随着咱们将更多智能和先进算法融入嵌入式零碎中,软件越来越简单,代码规模一直增长,参加开发的团队也变得更加壮大。” Dr. Dragic解释说:“在更快地交付优质产品的比赛中,外围的挑战在于如何确保设计办法的有效性和开发过程的效率。” MathWorks通过MATLAB和Simulink帮忙嵌入式软件和硬件工程师应答这些挑战。这些用于技术计算和基于模型设计的工具,曾经实现了与Perforce Helix Core的无缝集成。应用它们,可能在整个开发过程中促成并行开发、提高效率。这个简略的插件让开发人员能够间接从MATLAB和Simulink中拜访Perforce Helix Core的性能,包含资产的版本控制、协同开发、变更跟踪和过程自动化。 解决方案:继续集成(CI)+源代码治理(Perforce Helix Core)MathWorks不仅是Perforce Helix Core的集成策略合作伙伴,也是客户之一。MathWorks开发人员应用Perforce Helix Core来治理公司的次要产品。 Perforce Helix Core反对多种策略,帮忙MathWorks放弃代码库的完整性。为了无效治理源代码,MathWorks工程师利用预提交签入的CI流程,促成了继续验证。他们利用Perforce Helix Core专有的流(Streams)性能和稠密分支技术来区隔开发人员的工作,同时防止了不必要的批改和返工。 除了帮忙MathWorks取得繁多可信数据源之外,Perforce Helix Core 还为公司提供了可扩展性和灵活性,这是嵌入式设计所必须的版本控制性能之一。 “考量一个版本控制解决方案,应该看它是否能实现连贯的开发生命周期、可扩大的工作流程,并考量它的互操作性。这些意味着该工具的能力能够随着数据、流程、团队和设计的规模增长而扩大。” ——Marco Dragic博士,MathWorks高级产品经理

May 24, 2023 · 1 min · jiezi

关于版本控制:领先芯片供应商ublox通过Perforce-Helix-Core加强协作实现基于组件的开发

u-blox是寰球无线及定位模块和芯片当先供应商,为汽车、工业和其余物联网消费市场提供解决方案。u-blox的解决方案帮忙人员、车辆和机器精确定位,并通过蜂窝网络和短程网络进行无线通信。 次要挑战:攀登马特洪峰——执行一项狼子野心的策略该公司的长期工程策略是在一个名为马特洪峰(Matterhorn)的我的项目中制订的,该我的项目以瑞士阿尔卑斯山脉最高峰之一命名。u-blox的挑战是基于外部开发的低功耗广域调制解调器创立模块。因为他们的研发工程师散布在七个国家,u-blox团队首先通过标准化流程、开发方法和工具开启了他们的征程。 解决方案:基于Perforce Helix Core的新开发流程作为马特洪峰我的项目的根底,u-blox采纳了一个全新的开发流程:基于组件的开发(Component-Based Development,简称为CBD)。Perforce Helix Core是实现这个新开发流程的要害。 “在过渡到基于组件的开发时,u-blox让他们的开发人员逐渐适应新的工具,”u-blox的首席软件工程师Stephan Uyttebroeck示意:“有一个团队心愿持续应用他们现有的版本控制引擎,但当他们看到应用Perforce Helix Core的团队工作速度更快时,他们扭转了主见,转而应用Perforce Helix Core,因为它稳固且性能杰出。而且,它还能与Git共存。” “基于组件的开发对于u-blox来说十分重要,因为它容许散布在不同国家的开发人员进行分工合作,”Uyttebroeck说。因为他们能够将所有的数字资产(无论文件类型或大小)存储在Perforce Helix Core中,开发人员能够快速访问组件并组装变体。除了促成重复使用之外,Perforce Helix Core还让开发人员在u-blox的各个开发地点共享资源。 最初,Perforce Helix Core的弱小集成能力(如反对Jira和Jenkins,以及风行脚本语言的SDK)使u-blox可能将他们的版本控制与外部开发的工具集成在一起,以促成必要的操作,这些操作是为了创立和测试该公司生产的定制化OEM设施而设计的。

May 17, 2023 · 1 min · jiezi

关于版本控制:解析单存储库定义优势与挑战

本篇文章将为您介绍什么是单储存库(monorepo),它与单体(Monolith)有何不同,单储存库有什么劣势,以及为什么像谷歌这样的公司会抉择应用单储存库。 什么是单存储库?单储存库是一个在90年代末或2000年代初被发明进去的术语,用于形容一种将多个我的项目存储在一个版本控制存储库中的配置。这些我的项目能够是毫无关联且截然不同的。 应用单存储库有很多重要的起因: 它发明了一个繁多的事实起源;更容易共享代码;更容易重构代码。单储存库与单体的区别单存储库是一个蕴含独立我的项目的宏大代码库,而单体是一个服务或一组服务,专用于繁多的数据集(或我的项目),这个数据集能够有许多子项目。然而,通常状况下,咱们认为单体是一个蕴含相干数据的繁多实体。 在这里提到的“单体”(monolith)指的是单体应用程序,它是作为单个服务设计的单层应用程序。您能够在一个单储存库中治理一个单体,但也能够将一个单体分成多份,在多储存库中治理。相同的是,一个单存储库不能存储在单体应用程序中,而是通常将单存储库与微服务一起应用。 本篇文章将专一于探讨单存储库。 单存储库vs.多存储库单存储库将所有须要的代码放在一个储存库中,而多代码库通常为每个我的项目创立一个代码库。我的项目越多,代码库越多。 单储存库通常实用于以下状况: 透明度 在单存储库中,因为许多我的项目对许多人可见,因而带来了更多的可追溯性和平安个性。 合作 单存储库让合作变得更容易。这是因为每个人都能够拜访代码、文件和资产,开发人员能够共享和复用资产。 速度 应用单存储库能够帮忙您减速开发。例如,您能够进行最小单位的更改(一个操作即可跨多个我的项目进行更改)。 多存储库通常实用于以下状况: 如果须要来自多个储存库的数据,多储存库的配置会使问题复杂化。从许多不同的服务器中收集精确数据的协调工作将是十分具备挑战性的。应用多储存库解决方案,为了取得正确的数据,须要连贯多个代码库,就像在顶峰时段合并到10车道高速公路上一样,确保安全合并的要害是协调。 Git我的项目 在Git中治理大规模的单存储库是行不通的。随着存储库变得越来越大,Git中的单存储库会变成一个微小的问题。因而,如果团队应用的是Git,那么最好应用多储存库。 开源或第三方我的项目 在某些版本控制系统中,如果要应用开源我的项目或与第三方团队单干,您可能须要应用多储存库。这样您就能够确保第三方开发人员只能拜访他们正在解决的我的项目。 (当然,在Perforce的版本控制系统Helix Core中,您在单存储库/多存储库中都能实现这一点。您甚至能够在单储存库中将权限限度到文件级别。同时,你还能够通过Helix4Git将Git我的项目集成到流水线中。) 单存储库是一个理智的抉择吗?对于许多公司来说,应用单储存库是个不错的抉择。您能够将每个团队的所有源代码(一级其余文件/数字资产)保留在一个存储库中。这样能够更轻松地与所有人共享,并放弃着繁多的事实起源。在每次提交后,所有开发人员都能查看并应用新代码,这样的话,当许多开发人员在繁多代码行上工作时,就能防止繁琐的合并操作了。以下是一些您应该思考应用单存储库的起因: 您须要繁多的事实起源;您心愿轻松共享和复用代码;您心愿可见性来治理依赖项(例如,如果您进行更改,还会影响哪些内容?);您心愿进行最小级别的更改(例如,一个操作跨多个我的项目进行更改);您心愿团队进行更多合作;您心愿进行大规模更改(例如代码重构)。如果决定应用单储存库,那么您和一些当先公司做出了同样的抉择,比方谷歌。应用单存储库会面临什么挑战?单储存库的理念是在一个代码库中进行协同工作,对于代码库中的任何数据简直没有限度。这听起来很好,但随着单储存库变得越来越大,客户可能须要期待更长的工夫能力失去响应。尽管将所有数据放在一个中央的想法很迷人,但如果须要期待几分钟甚至几小时能力失去响应,这样的单数据库又有什么用呢? 单储存库对DevOps工具链来说是最具挑战性的。长时间的期待会导致队列拥挤,而任何的谬误都会加剧问题。 如果长时间的期待和队列梗塞还不够具备挑战性,那么一个蕴含了数十年历史记录和文件的单储存库呢?它的微小规模可能会超过单个磁盘驱动器的容量。您可能会领有多个TB级别的数据,并且许多工具会创立超大的文件。 因而,长期应用单存储库的话,存储方面可能会很低廉,特地是如果您须要长时间保留数据。解决此问题的办法之一是创立可散布在许多服务器上的单个数据集。这样,您依然能够在繁多的数据源下管制繁多的事实,但数据能够通过复制策略放在离用户更近的中央。 通过以这种形式散布数据,用户不须要获取整个代码库树。Perforce Helix Core的技术可能在繁多的事实起源中提供数据的子储存库视图。 示范案例:谷歌为什么应用单存储库?谷歌是泛滥应用单存储库的公司中,比拟驰名的一家。 谷歌很早就决定应用单存储库,并随着公司的倒退不断扩大规模。到了2015年,谷歌的单存储库曾经蕴含了: 86TB数据;2亿行代码;9万个非凡源文件。那么,为什么谷歌抉择并保持应用单存储库呢?因为应用单存储库是凋谢和合作文化的要害。Salesforce、Facebook和Twitter等公司也以应用单存储库而闻名。 当然,如果您抉择了应用单存储库,就须要应用反对单存储库的版本控制软件,例如Perforce Helix Core。 应用Perforce Helix Core作为单存储库的版本控制应用Perforce Helix Core作为单存储库的版本控制系统有许多劣势,以下是四个次要的劣势: 弱小的性能 Perforce Helix Core是一个弱小的版本控制系统,特地适宜大规模高性能的需要。 应用Perforce Helix Core作为单存储库的版本控制时,它能够解决: 从10个用户到1000个用户,都不在话下(甚至是身处不同地理位置的团队); 有限数量的文件;PB级别的数据。精密的管制Perforce Helix Core提供对大型数据集的细粒度管制,包含用户,我的项目,文件,地理位置,网络和实用程序(服务)等多个方面。通过在DevOps工具链中部署Perforce Helix Core的边缘(edge)服务器、Helix Core代理、Helix Core代理服务器和工具集成,用户能够在分支级别对行为进行隔离,并取得对共享责任的可见性。 此外,您能够应用Perforce Streams在分支级别上隔离用户行为,但您仍旧能够理解到跨分支开发时的每个人该分担哪些责任。 高度的安全性 Perforce Helix Core是很平安的,并且它还具备可定制的安全性管制。您能够应用多因素认证(MFA)等身份验证措施,并能够在文件级别设置访问控制。 这些平安权限可能帮忙您在单储存库上与第三方开发人员单干。 灵活性 Perforce Helix Core具备高度的灵活性, 您能够应用Perforce Streams来定制和自动化团队的工作流程。 ...

April 17, 2023 · 1 min · jiezi

关于版本控制:告别繁琐P4VJS带来全新的Diff体验

你好,我是向华。 之前在文章用了P4这一招,九成问题能自救提到过P4VJS的能力,明天咱们持续聊聊P4VJS。 原生Diff引发的思考开发一段时间后,终于要把写了一天的代码提交到P4仓库了。 通常状况下,我的项目标准都会揭示各位开发者,在提交前多查看Diff,免得错误代码被提交到仓库。 如果我的项目应用P4V,在提交前,会看到待提交的Changelist中可能有很多个文件被批改了。 那么,你会采纳何种形式查看这些文件批改的Diff后果呢? 张三说,我会筛选几个重要的文件,一个个右键抉择Diff Against进行查看。 王五说,我会右键整个Changelist,而后查看所有文件的Diff。 理论工作中,这两种办法都存在毛病。 如果你像张三那样,挨个找到本人想要的文件再查看Diff,尽管能够精准地找到须要的代码变动,然而会节约很多工夫。 如果你像王五那样,一次性查看所有文件的Diff,会弹出多个Helix Merge窗口,看完还得一个个关掉,非常麻烦。 那么,有没有相似Github提交记录中的Diff成果呢? P4VJS助力全新Diff体验为了解决这个问题,在工作之余,我应用P4VJS和Vue制作了一款P4V工具。 https://www.bilibili.com/video/BV1Fh411G7p5/?aid=226972433&ci... 这个工具根本实现了我想要的成果,能够将一个Changelist中所有文件的 Diff 显示在P4V外部的窗口中,与P4V完满响应。 目前,这个工具只反对文本类型文件的Diff查看,然而我将会抽时间退出其余文件类型的Diff查看性能。 这款工具之所以可能与P4V完满联动,得益于P4VJS利用的利用。界面上相似于Github的比照界面,得益于VueJS和ElementUI框架的性能加持。 能够这么说,P4VJS具备让用户低成本定制P4V工具的能力。 说在最初这些技术的交融,让用户能够开发出更加乏味和实用的工具,对P4V进行性能优化和补充。

April 3, 2023 · 1 min · jiezi

关于版本控制:龙智荣获Perforce公司颁发的2022年度销售与技术两项大奖

近日(中国上海),龙智荣获Perforce公司颁发的Helix Core 2022年度销售奖。同时,龙智大规模平安研发技术专家李培凭借其对Perforce产品深刻的理解和杰出的专业技能荣获“2022年Perforce技术英雄”名称。 自2012年成为Perforce中国受权合作伙伴以来,龙智始终与Perforce协力深耕中国市场,先后引入Perforce的版本控制工具Helix Core、动态代码剖析工具Klocwork和Helix QAC、数字资产管理工具Helix DAM、麻利布局工具Hansoft以及生命周期管理工具Helix ALM等。 其中,Helix Core版本控制工具是Perforce公司旗下的外围产品,二十大游戏开发工作室中有19家,十大半导体公司中有9家都应用Helix Core,并给予了高度评价,如“游戏开发必备”、“Perforce Helix Core扭转了开发团队”、“没有Helix Core就无奈实现”。龙智是Perforce Helix Core产品在中国地区的惟一受权合作伙伴,屡次被评为“Helix Core寰球最佳合作伙伴”。 龙智不仅针对Perforce的产品提供售前征询、销售服务,还组建了业余的技术团队,提供本地化的技术服务,包含施行部署、培训、实际领导、问题诊断与解决等。此次取得“2022年Perforce技术英雄”名称的李培就是龙智Perforce技术团队的骨干人员。 通过十年深耕,被寰球游戏、芯片等企业研发团队宽泛应用的Perforce Helix Core也取得了中国企业的信赖,国内顶尖的游戏公司、芯片公司均应用Helix Core进行版本治理和数字资产治理。Klocwork和Helix QAC也已被嵌入式、汽车、航空航天畛域的用户宽泛应用。 对于龙智 龙智是一家DevSecOps解决方案提供商,专一于软件开发经营一体化畛域十多年,集成DevSecOps、ITSM、Agile治理思路及该畛域的优良工具,提供从产品布局与需要治理、开发,到测试、部署以及运维全生命周期的解决方案,通过业余征询、计划定制、施行部署、专业培训、定制开发等一站式服务,帮忙企业实现软件开发经营一体化,并确保安全防护融入软件研发的整个生命周期中。 龙智与寰球DevSecOps畛域的许多出名厂商放弃合作伙伴关系。咱们是Perforce受权合作伙伴,Atlassian寰球白金合作伙伴、云业余搭档,也是CloudBees、Mend(原WhiteSource)、SmartBear受权合作伙伴。 除了上海之外,龙智还在中国香港、日本东京、加拿大滑铁卢设有分支机构,服务寰球客户。凭借继续深耕、不断创新的精力,龙智的解决方案先后取得了金融、汽车、通信、游戏、互联网、芯片等行业1000多家企业的认可与信赖,被评为“高新技术企业”、“上海市‘专精特新’中小企业”。 对于Perforce Perforce Software成立于1995年,是一家当先的高度可扩大的开发和DevOps解决方案提供商,旨在提供动静开发、智能测试、风险管理和无边界合作。Perforce与那些必须放慢上市工夫,失败老本高且须要升高危险的企业单干。 Helix Core是Perforce旗下集源代码治理和内容合作为一体的版本配置管理工具,可跟踪和治理所有数字资产(代码、视频、大型二进制文件、IP等)的更改。通过应用Helix Core,寰球团队能够在任何类型或者大小的文件上进行单干,反对集中和分布式的工作流,帮忙企业更高效、更平安地打造复合型产品。

April 3, 2023 · 1 min · jiezi

关于版本控制:研讨会回顾-Perforce发布数字资产管理工具Helix-DAM帮助您按时按预算交付虚拟产品

2023年2月28日,龙智联结寰球当先的数字资产治理和DevSecOps工具厂商Perforce独特举办Perforce on Tour网络研讨会——“赋能‘大’研发,助力‘快’交付”。 研讨会上,Perforce解决方案工程师Kory Luo分享了Perforce版本控制软件Helix Core的产品介绍,并为大家公布Perforce基于Helix Core打造的数字资产管理工具Helix DAM。Helix DAM专为创意团队构建,将这两款产品联合应用可能无效促成虚构开发工作流,帮忙IT与美术团队更好地合作。Kory还为大家现场演示了这款产品。 Kory是Perforce解决方案工程师,在反对Helix Core和Swarm案例方面领有五年的教训。为许多中国客户提供中文技术支持,及时精确得诊断、排除故障和解决问题,领有极高客户满意度。 以下是Kory演讲内容的节选,回顾视频请于文章开端获取。 在线研讨会“赋能‘大’研发,助力‘快’交付”内容回顾《数据资产管理工具HelixDAM公布及演示》演讲嘉宾:Kory Luo,Perforce解决方案工程师大家好,我是Perforce software技术支持团队的Kory。很荣幸明天能够为各位简要介绍Helix Core和Helix DAM产品,心愿能够帮忙大家更理解这两款软件的性能,以及其如何在虚构生产中起着至关重要的作用。 Perforce是一个能够更好地保障虚构生产工夫及估算的数据管理抉择。当提到数据管理的时候,您首先须要理解什么叫做版本控制,为什么它如此重要。 简略来说,版本控制是一种能在开发或虚构生产过程中追踪虚构资产、治理文档、文件内容变更的软件。它将什么工夫人因为什么起因对什么文件更改了什么内容等相干信息,一一如实的记录下来。每一次文件变更都会减少文件的版本号,版本零碎能够显示出以后版本与历史版本的改变细节比照。 版本控制的人性化体现在用户能够持续应用他们喜爱的工具工作,比方用户能够持续应用Photoshop、Maya,不用破费大量工夫来学习一个全新的软件,或在不同的软件之间来回切换。 总而言之,版本控制在开发中起着至关重要的作用。它能够无效的解决版本同步,放弃版本历史记录以及进步用户之间的协同开发效率。 如果没有版本控制会产生什么? 用户不在同一个版本操作,生成很多的从属文件都无奈追踪,更是无奈追回之前版本的变更。大家要花费大量的工夫精力来协调、敲定最终版本。 文件没有对立的贮存空间,散落在各个角落。用户之间以各种不同的形式分享、传阅文件,这将产生很大的信息安全隐患。文件被重复的复制、更名,不同的用户批改雷同的文件将产生很多不同的版本,就会导致信息非常复杂,很难整合。 对于图片文件,各种用户所做的改变很难同时保留。会存在舍弃一方改变内容的状况,导致大家付出的工夫和精力白白浪费,让工作效率变低,进而影响团队进度。 在有Helix Core版本控制的状况下,开发会变成什么样? 所有都变得恍然大悟,东倒西歪。最新的版本、所有的文件对用户都是可见的,用户也能够查阅下载历史版本。能够通过简略的点击操作回到之前任意一个版本,大大放慢了单干速度,使工作有序进行,用户也不须要保留多个版本在本机。咱们能够更专一于本人的工作,不必为版本的协调问题发愁。 那么Helix Core版本控制软件实用于什么状况?它如何帮忙咱们?Helix Core实用于任何创立或应用三维资产时,无论是后期开发、片场制作还是后期制作,Helix Core版本控制软件都能帮忙您很好地治理我的项目中所需的数字资产,加强团队单干、进步工作效率,发明平安顺畅的工作流程。 版本控制技术曾经在软件开发人员中流传了几十年,但还未被艺术家和设计师宽泛采纳。针对这个问题,咱们心愿可能帮忙大家更好地治理我的项目资产,克服创意工作流程上的各种问题,并提供一个简单明了,且能够与设计开发构图软件一体化,针对创意设计群体的数字资产管理软件。因而,咱们创立了Helix DAM。https://www.bilibili.com/video/BV1hv4y187Qq/?aid=568231779&ci... Helix DAM是基于有着高度扩展性和安全性的版本控制平台——Helix Core创立的数字资产管理软件。Helix DAM的外围主旨是为艺术家和设计师们提供与他们工作形式相交融的数字资产治理办法,进而加强团队互动。它能够保障数字资产在零碎中的相对统一性,确保创意开发人员总是能够拜访到开发资产的最新版本,并与组内共事平安疾速分享文件、交换反馈。Helix DAM简化了虚构开发的工作流,最终实现无论开发什么样的我的项目和产品(不论是游戏、虚拟环境还是3D建模等),都能为其保驾护航。 上面我将疾速浏览一下它的次要性能,并在后续的视频中带来Helix DAM的产品演示。 观看次要性能及演示视频

March 10, 2023 · 1 min · jiezi

关于版本控制:研讨会回顾-Perforce版本控制工具Helix-Core入华十年携手龙智赋能企业大规模研发

在线研讨会“赋能‘大’研发,助力‘快’交付”内容回顾 《Perforce在中国:携手龙智,十年耕耘》演讲嘉宾:何明,龙智董事长 大家下午好,我是龙智的何明。非常感谢大家明天抽出贵重的工夫来加入这次网络研讨会,也非常感谢Perforce公司对这次研讨会的大力支持。 理解龙智龙智是一家提供DevSecOps解决方案的公司。咱们会依据用户的不同行业、不同倒退阶段以及具体需要,为用户提供可能体现最佳实际的安全软件研发经营一体化计划。咱们心愿用户的软件研发与经营可能更好、更快、更简略,让用户将贵重的工夫用在更有价值的本身业务以及产品翻新上。 龙智还和国内前沿、支流的DevSecOps工具厂商单干,确保咱们DevSecOps平台工具的先进性,从而帮忙咱们用户进步产品竞争力。除了Perforce以外,咱们还是Atlassian寰球白金合作伙伴、云业余搭档。目前龙智也是大中华区惟一一家Atlassian云业余合作伙伴。 此外,龙智还是Atlassian插件厂商。咱们自主研发了加强Atlassian工具安全性以及挪动端利用的插件,让用户更便捷、更平安地应用Atlassian工具。龙智基于Jira研发的工时治理产品TimeWise,能够让用户实时理解我的项目理论破费的工时,帮忙更好地管制我的项目老本。此外,咱们还是Mend、CloudBees、SmartBear等驰名工具厂商在中国的惟一受权合作伙伴。 龙智领有一支经验丰富业余的团队,深耕于DevSecOps畛域近十年。目前为止,咱们曾经为1,000多家的企业提供服务,取得了宽广企业的信赖。 Perforce在中国Perforce于2012年联结龙智进入中国,迄今曾经10年了。Perforce初入中国带来的是Helix Core这款配置管理工具。Helix Core的个性是可能跟踪和治理所有数字资产,比方源代码、二进制文件、音频音效等。Helix Core在解决大文件时的高效性、精细化的权限治理,以及为数字资产带来的安全性是其余同类工具无可比拟的。 初入中国,Helix Core的用户次要是高科技外企在中国的分支机构,以及一些前沿的须要与国内单干的国内企业。随着明天中国高科技行业以及企业的快速增长,Helix Core也取得了更宽泛的使用。 目前,Helix Core领有100多家企业用户,次要散布在数字娱乐、芯片研发、汽车和汽车配件研发,以及嵌入式开发中。游戏公司Top10企业、芯片研发Top5企业,以及汽车行业的一些驰名厂商都是Perforce Helix Core的用户。Helix Core也成为了这些企业根底研发设施中不可或缺的一款工具。 Perforce非常重视国内客户的应用体验,提供了客户端的中文界面和中文技术支持文档,并且联结龙智组成了寰球四地的技术常识团队,能够实时解决中国用户的问题。 另外,Perforce倒退至今,也实现了产品的多样化。Helix Core已有了一系列的衍生产品,如Helix DAM、Helix Swarm、Helix4Git等。尤其是Helix DAM,它是一款专门为美术和设计人员打造的游戏资产版本管理软件,它基于Helix Core之上,简化了一系列简单的操作,让游戏美术和设计人员能够更专一于游戏的创意。 近几年Perforce通过并购等形式领有了十几款反对研发的刚需产品,比方可能反对麻利和瀑布式开发的项目管理工具、动态代码扫描工具、IP生命周期管理工具等。这些工具在中国也领有了肯定的客户群体。 龙智Perforce产品本地服务咱们可能依据Perforce工具的最佳应用场景以及客户的理论状况,为客户量身定制Perforce的DevSecOps解决方案。 比方,游戏行业能够用Hansoft作为工作和需要治理。Hansoft是一款简略易用,可能帮忙开发团队疾速实现麻利开发的工具;能够用Helix Core、Helix DAM作为资产治理的工具。Helix Core曾经与游戏开发中一些常用工具比方Maya、3DSMax、Unity和Unreal engine集成,让游戏开发人员便捷应用Helix Core,轻松实现版本治理。另外,Helix Core疾速解决大规模文件的能力也可能减速游戏开发,还有其精细化的权限治理可能确保游戏资产的安全性。Jenkins和CloudBees能够用于实现CI/CD,Jfrog能够用于制品库治理等,龙智这一计划也取得了多家游戏公司的利用。 此外,龙智也提供工具的施行、部署等服务。比方零碎的降级、数据迁徙、性能优化等。咱们可依据客户的需要提供集成开发,比方帮忙客户买通零碎之间的数据,让数据实现互通,让研发流程更加自动化等。咱们还提供各种工具的实战课程培训,让用户能够依据理论业务状况用好工具,最大限度开释工具的力量。咱们也提供零碎的综合运维服务,让龙智业余的人员和业余的服务帮忙客户尽早发现零碎中潜在的问题,及时帮忙用户解决问题。 如需获取研讨会残缺视频,请点击此处

March 3, 2023 · 1 min · jiezi

关于版本控制:线上研讨会报名-与龙智Perforce共探大规模研发中的数字资产管理与版本控制赢取千元大奖

2023年2月28日下午2:00,退出寰球当先的数字资产管理工具厂商Perforce联结中国受权合作伙伴龙智举办的Perforce on Tour网络研讨会,除了与游戏、芯片、虚构制作行业专家探讨并分享最佳实际外,还能够赢取惊喜大奖,包含千元华为手环、Yeelight智能Led屏幕挂灯、ENKOR骨传导蓝牙无线耳机……在全速前进的后疫情时代,公司业务飞速发展,您,筹备好了吗—— 您的开发、设计、美术等团队可能散布在寰球各地,您如何帮忙他们实现跨部门、跨区域的合作——让他们便捷共享、审查各种大文件(包含二进制文件)的同时,确保IP等知识产权的平安无虞? 当数字资产飞速收缩,我的项目变得盘根错节,您又如何确保所有颠三倒四,让团队迅速找到想要的文件,并充分利用已有的数字资产,进步研发效益? 2023年2月28日下午2:00,退出寰球当先的数字资产管理工具厂商Perforce联结中国受权合作伙伴龙智举办的Perforce on Tour网络研讨会,以“赋能‘大’研发,助力‘快’交付”为主题,聚焦版本控制与数据管理这一研发外围话题,与游戏、芯片、虚构制作行业专家开展深入探讨并分享最佳实际。 会议具体议程: 龙智为全程聆听研讨会的各位筹备了惊喜抽奖流动,包含特等奖价值千元的华为手环B6,一等奖Yeelight智能Led屏幕挂灯,三等奖ENKOR骨传导蓝牙无线耳机!不仅如此,中场劳动环节龙智也为大家筹备了精美礼品,包含龙智定制彪马帽子、魔兽世界笔记本以及日式保温杯,现场抽取侥幸观众赠送! *奖品以实物为准,流动解释权归龙智所有 席位无限,扫描/长按辨认下方二维码立刻收费报名:

February 20, 2023 · 1 min · jiezi

关于版本控制:设计师和美术人员的理想版本控制软件是

版本控制对于开发人员来说是必不可少的工具。但明天,开发曾经不仅仅包含代码。让美术人员和设计师应用版本控制可能集中合作,并爱护贵重的数字资产。 本篇文章将剖析为什么版本控制对设计师也如此重要,并且答复一个重要的问题——对于设计师和美术人员来说现实的版本控制是什么? 为什么设计师须要版本控制有多少次,设计团队发现到处都是数字资产,却无奈通晓谁编辑了文件、何时编辑或为什么编辑? 您晓得这个问题的答案——太频繁了。 开发人员、设计师和美术人员之间的跨团队合作是当今开发过程中不可或缺的一部分。但很多设计工具不足弱小的、面向团队并能增进合作的性能。随着近程办公在寰球的衰亡,各个团队须要一种既可能发展合作、共享资产,同时还能反对不同工具的办法。 简略文件(Simple File )和文件夹共享面临的挑战 一些文件共享解决方案,例如Google Drive、Dropbox和电子邮件是一种抉择。问题是这些解决方案没有与团队应用的工具严密集成。团队最初只得在文件名前面加上相似“_V3”或“_LH_edits”的字样来回传文件。这些办法给贵重的数字资产带来了安全隐患,并且容易受到黑客攻击。 在虚构制作和游戏开发过程中,美术人员和设计师应用Photoshop、3ds Max、Maya等风行工具。在设计和制作环节的诸多阶段,他们常常会生成多个版本的超大文件。随着我的项目规模的扩充,他们须要的曾经不仅仅是共享文件夹,因为共享文件夹只解决了拜访问题。 版本控制系统是一种更好的管制、治理和合作的形式。它容许集中断言并增强团队中每个人(包含设计师和开发人员)的合作。 版本控制如何帮忙美术人员和设计师应用版本控制能够赋能团队。它能让文件存档颠三倒四,并继续追踪每一次更改和每一个版本。您甚至能够比拟文件的不同版本来查看变更。所有资产(设计和代码)都有惟一事实起源,可能简化您的构建过程,为团队提供更迅速、更精准的反馈。借助版本控制,团队成员始终晓得他们正在解决文件版本无误,并且是最新版本。 从企业的角度来看,版本控制的次要目标是爱护知识产权。通过提供安全性、拜访权限、备份和劫难复原,您时刻分明您贵重的数字资产受到了爱护。它还能够避免意外删除或歹意更改。 版本控制系统会跟踪变更,包含文件的创立、删除以及编辑。变更历史是一个重要的性能,其中包含作者、日期和每次变更目标的正文。有些零碎具备弱小的吊销性能,能够还原变更。这些性能对于图像、设计文件和源代码来说都很有价值。总之,无论是什么团队角色,这些性能都显著晋升了工作效率。 为什么有些设计师不喜爱版本控制 设计师们晓得,应用根本的文件共享解决方案并不现实。然而许多版本控制系统要求他们学习简单的新工具,而不能持续应用他们喜爱的产品。这样的解决方案不足直观的界面,往往依赖艰涩难懂的指令和终端窗口来管理文件。更蹩脚的是,大多数反馈的音讯还须要人工翻译,这几乎是用户体验的噩梦。 但还有一个更大的起因让设计师不违心退出版本控制的营垒:大多数版本控制系统无奈保留超大的图形文件。例如,由Adobe和Autodesk等公司出品的风行设计工具生成的二进制文件须要高性能零碎来治理。 对设计师来说最好的版本控制是什么?为了增强合作、集中资产并确保安全性(没有非必须的复杂性),您须要Perforce Helix Core——游戏和媒体行业版本控制的规范。Perforce Helix Core多年来始终为开发人员和设计团队提供服务。它是19家二十大AAA游戏开发工作室信赖的版本控制系统,因为它可能以团队所需的速度治理大型简单的二进制文件。 面向设计师的数字资产管理工具 Helix DAM是基于Perforce Helix Core构建的面向设计师的数字资产管理工具。Helix DAM不仅仅是一个存储资产的中央,它还是美术人员和设计师的版本控制工具。能够进行Photoshop版本控制以及: 存储、轻松查找和共享所有创意资产;提供无关资产的上下文反馈;简化创意工作流程;爱护创意IP;节省时间和金钱。所有这些都具备Perforce Helix Core的速度和安全性。 文章起源:https://bit.ly/3kbPzvT

January 13, 2023 · 1 min · jiezi

关于版本控制:SVNGit与Helix-Core谁的数据管理基础设施更安全

2022年2月底,寰球出名的半导体芯片公司英伟达被爆受到勒索软件攻打,不久后,英伟达公司官网证实受到入侵,攻击者已开始在线泄露员工凭据和私密信息。勒索软件组织示意,如果英伟达回绝领取高达100万美元的赎金,他们将在线泄露所有数据。随着半导体行业的疾速倒退,相似的数据和生产过程的信息安全泄露事件不足为奇,如何防止因为数据泄露而引发的损失和潜在危险,也成了企业关注焦点。为了更好地防止这些危险,您须要抉择更具安全性且高性能的版本控制软件。龙智作为DevSecOps研发平安经营一体化解决方案供应商、Perforce受权合作伙伴,继续关注半导体IP与数据管理畛域动静与倒退,为您提供最新洞察与最佳实际参考,帮忙半导体团队更好地进行资产治理,增强合作,晋升效率。立刻分割咱们,理解半导体开发的最佳实际与案例。网络安全问题包含试图毁坏公司和政府的基础设施,窃取高价值技术公司的知识产权,以及接管车辆和公共设施服务控制权的恐怖行为。对于半导体行业的从业者来说,爱护基础设施和资产平安至关重要。 其中一个特地重要的方面是在设计和公布过程中确保IP数据的平安。这些设计蓝图有多种形式,包含软件代码、硬件设计形容、规格和打算,以及成品或里程碑施行数据的公布,并且通常保留在版本控制工具中,来放弃可追溯性和起源。 一个单薄的平安层可能意味着内部实体可能从这些版本控制系统中窃取IP,或者更蹩脚的是,在设计进入生产阶段(集成到客户零碎中)后,被歹意的实体利用,来对设计进行未被发现的批改。 浏览本篇文章,您将理解到当今最风行的版本控制和数据管理软件,以及他们各自的安全性。 数据管理基础设施的抉择分布式版本控制系统:Git、Mercurial Git和Mercurial是风行的分布式版本控制系统(DVCS),由开源社区保护,容许用户在本地保护本人的文件储存库正本,并独立工作,直到筹备好将他们的批改合并到主分支。 分布式系统在设计上不足一个集中的管制模型——这会导致各种平安问题,包含: 将整个存储库复制到用户的本地磁盘;用户谬误地签入私人身份认证密钥;没有真正的身份认证或验证措施;系统管理只能通过物理登录托管服务器来实现。另一个问题是,Git和Mercurial让人很容易重写变更历史,这使零碎的起源变得难以追溯。一般来说,这类开源零碎都是基于一张"坏蛋卡",意思是冀望用户是一个不做毁坏行为的坏蛋;可怜的是,在明天的网络环境中,这一点很难保障。 商业分布式版本控制系统:GitHub/GitLab GitHub/GitLab是商业产品,它们在开源的Git上减少了一个专有层,来改良应用模型并解决后面提到的一些限度。可怜的是,企业依然会遇到平安问题,这些问题来源于须要减速修补且频繁呈现的安全漏洞,以及在同一实例中保护集体和企业代码库的首要问题。因为这些问题的呈现,最佳实际往往被忘记和/或被疏忽,从而导致企业裸露在威逼中。 一般来说,任何与Git相干的解决方案(包含GitHub和GitLab)都会被单薄的平安模式所影响。当存储库被克隆后,所有用户都能看到外面的全部内容。存储库中的所有内容都是可读的,包含所有历史版本,这意味着读取权限的粒度是在储存库级别。 为了爱护敏感内容,管理员须要依据拜访级别来拆散存储库。鉴于平安拜访的泛滥变动,让授予适当的拜访权限变得简直不太可能,并最终导致谬误和透露。写入权限无奈超过分支级别,所以无法控制谁不能够扭转单个文件。 除非管理员施行 "每个存储库一个文件"的配置,否则很难达到所需的平安程度,企业最终会为了能更容易拜访而就义适当的安全性。这就导致了一个零碎裸露在威逼中。 另外,因为克隆的存储库蕴含了残缺的订正历史,如果用户的桌面被入侵,危险分子不仅能够拜访源的以后状态,还能够拜访所有的历史版本。这使得危险分子能够在旧版本的代码/硬件中找到破绽,即便最新版本曾经打了补丁。一旦确定了旧的破绽,危险分子就能够针对该畛域中已知领有这个破绽的特定版本发动攻打。 GitHub/GitLab试图在Git后面增加根本的身份认证,但从根本上来说,Git基本上没有访问控制或足够的内置安全性。 集中式版本控制系统:Subversion(SVN), CVS Subversion和CVS是另外两个由开源社区保护的版本控制管理工具。这些都是集中式零碎,应用繁多的地方存储库来存储版本文件和客户/服务器模型,容许用户从地方存储库签出文件到一个工作区。 这种模式的集中性质让用户失去了在本地克隆整个版本库的能力,这是一个重大的平安改良。然而,这些工具在客户端元数据方面依然存在问题。包含明文明码和保留到用户工作区中的URL。 另外,其举荐的Apache/SSH传输协定的性能较差,用户可能会应用更快但十分不平安的本地SVN协定。最初,和后面探讨的DVCS工具一样,SVN的权限是在SVN服务器上的一个物理文件中配置的,须要登录能力拜访机器。 总的来说,CVS和SVN的开发曾经不再踊跃了,它们与安全漏洞放弃同步更新的能力正在迅速衰减。CVS没有内置的平安或拜访机制。它是通过文件/NFS级别的拜访来实现的,简直不可能以正确的粒度程度进行治理。 Perforce Helix Core Perforce作为一个商业解决方案曾经存在了20多年,因为其可扩展性和平安设计的个性,它曾经被部署在许多大型企业软件组织中。 Perforce Helix Core默认是一个集中式的版本控制系统,具备高度优化的架构,专为要害的部署而设计。Perforce Helix Core内置的一些安全措施包含: 在其p4d数据库中保护的元数据只能通过TCP/IP客户端拜访;工作区不蕴含本地元数据,因而不容易像本篇探讨的其余工具那样产生IP透露;能够依据指标环境部署多个安全级别,从最小的明码要求(例如:在评估或开源我的项目期间)到严格的每个用户认证,可配置的令牌和会话超时、代理/代理身份认证和多因素认证(MFA);能够将传输机制设置为对所有用户交互、代理和代理配置应用基于SSL的加密。拜访权限能够在repo、分支、目录或始终到单个文件级别进行管理控制,所有这些都在同一个储存库内进行读写操作。进步数据管理基础设施的安全性综上所述,咱们能够看到,当初应用的许多风行的版本控制系统都可能产生重大的平安问题。当初风行的开源DVCS工具简直没有提供安全控制,而老的CVCS工具,如Subversion和CVS的安全漏洞也没有失去及时修补。Perforce Helix Core的设计初衷是为了解决其中的许多问题,再当今顽劣的平安环境中,它正成为平安数据管理的行业标准。 用Perforce爱护您的IP Perforce半导体解决方案包含作为当先数据管理工具之一的Perforce Helix Core,用于IP生命周期治理的Methodics IPLM以及用于可扩大布局的Hansoft。 作者简介: 西蒙·巴特勒(Simon Butler),Perforce公司Methodics总经理 西蒙·巴特勒是Methodics公司的创始人兼首席执行官,该公司于2020年被Perforce收买,目前西蒙单负责Perforce Methodics业务部门的总经理一职。Methodics将IPLM创立为企业软件畛域的一个新业务部门,为基于IP和组件的设计需要提供服务。西蒙领有30年的IC设计教训和EDA工具开发教训,善于产品策略及设计。 文章起源:https://bit.ly/3VpmhXF

January 3, 2023 · 1 min · jiezi

关于版本控制:技术指南-如何集成Perforce版本控制系统Helix-Core-P4V-与敏捷规划工具Hansoft

Helix Core是Perforce公司旗下一款集源代码治理和内容合作为一体的版本配置与管理工具,能够帮忙您治理随时间推移而产生的数字资产(代码,文件等)变更,解决每天数以千万计的传输,上千TB的数据,以及一万多个并发提交。Hansoft是一个企业麻利布局工具,它为我的项目、我的项目群和我的项目组合级别的决策提供了一个繁多平台,让您可能轻松打算、跟踪和治理产品。通过集成Perforce Helix Core和Hansoft,布局和开发产品变得简略、疾速、轻松。您的团队成员能够通过他们喜爱的版本控制系统来疾速更新Hansoft,而高层能够随时理解到我的项目的最新进展。龙智技术专家团队成员陈红华以简明扼要的形式出现了Perforce Helix Core (P4V) 和Hansoft的集成办法,不便中国用户参考应用。如需理解更多对于Perforce Helix Core和Hansoft的相干信息,请分割Perforce受权合作伙伴——龙智。 筹备环境原厂文档:https://help.perforce.com/han...getting-started-helix-core.htm环境:Hansoft Client:192.168.80.58:50256 Hansoft Web Service:https://hansoft.example.com/ P4D:192.168.72.103:1666 Swarm: 192.168.72.103 依赖服务提前装置筹备以下服务:Hansoft Web ServiceHansoft ServerHelix Visual Client (P4V) 2021.1 or later在客户端机器设置Hansoft Web Service的服务IP的主机名:C:\Windows\System32\drivers\etc\hosts 减少以下行:192.168.80.58 hansoft.example.com 装置证书在应用P4V的客户端装置证书。在Hansoft Web Service的服务器中的以下门路:/opt/HPMWeb/nginx/certificates 下载web_ca.pem证书文件到客户端,并批改文件后缀为:web_ca.cer导入该证书到计算机:控制面板->治理计算机证书->受信赖的根证书颁发机构->证书->所有工作->导入,导入胜利,如下图所示: P4V里增加集成Hansoft快捷按钮有以下两种办法设置快捷键: 管理员为所有的用户在P4V里增加快捷按钮(1)增加 # p4 property -a -n P4VJS.HTMLWindows -v "https://192.168.80.58:50256/htmlwindows.xml"(2)查看 # p4 property -n P4VJS.HTMLWindows -l(3)重启P4V重启后,对Changelist右键查看,有了快捷按钮。 手动到P4V里增加快捷按钮(1)在P4V里,Tools > Manage Tools > HTML Windows (2)点击New下拉抉择Window增加HTML Window对话框关上了。(3)输出或者抉择以下信息 Name—输出快捷按钮名称, Add changelist to Hansoft itemPlacement—勾选 Add to applicable P4V context menusURL—输出要集成的URL, https:// hansoft.example.com:443/web_integrations/helix_coreArgument Type—倡议下拉抉择%C: Selected changelistsWidth—倡议起码800Height—倡议起码600(4)点击OK保留更改(5)点击OK敞开Manage HTML Windows对话框(6)重启P4V(7)右键一个Changelist能够看到集成的快捷按钮 ...

November 28, 2022 · 1 min · jiezi

关于版本控制:版本控制-游戏开发企业如何高效远程协作

随着许多公司都启动近程办公,团队扩散在不同的空间,为合作游戏开发带来了挑战。浏览本文,您将理解到如何为近程办公的员工实现合作游戏开发。龙智作为DevSecOps研发平安经营一体化解决方案供应商、Perforce受权合作伙伴,继续关注版本控制畛域动静与倒退,为您进步最新洞察与最佳实际参考,帮忙大型开发团队更好地进行数字资产治理与合作,晋升研发效率。立刻分割咱们,理解虚构制作、游戏开发、芯片、嵌入式等畛域的数字资产治理最佳实际与案例。 游戏开发的需要越来越多,团队规模越来越大,开发团队散布在不同的中央,甚至不同的国家。与此同时,因为疫情影响,近程游戏开发还从一整个团队变成一个个独立的个体。这就带来了一个独特的挑战——如何让近程办公的员工顺利地合作,持续放弃游戏开发的速度和效率? 为什么合作游戏开发如此重要合作游戏开发是发明一款胜利游戏的重要因素。当初团队中的员工曾经在近程工作,那么就须要确保他们在开发游戏的过程中合作得更好。 举一个例子,您的开发人员和设计人员都居家办公,但他们须要拜访大型的储存库来实现工作,所以他们须要下载并解决这些内容: 数字资产(例如,视觉效果或图形)设计源代码制作游戏的所有其余组件然而,近程工作中存在的以下非凡挑战,让实现以上的指标变得艰难。首先,家里的网络可能不如办公室的本地网络好,而后,员工们更须要通过工具进行交换。 为了更好地合作,您须要理解谁在做什么,例如: 大家正在解决哪些文件?您须要切换到不同的版本吗?您如何帮忙团队无效地管理工作负载?如何为近程团队启用合作游戏开发以下几点是如何为日益边远的团队提供合作式的游戏开发。 扩大基础架构当初的状况是,团队中的许多人员都在近程办公。为了满足行业一直增长的需要,您须要实现更多的工作,这也意味着须要更多的构建和测试来取得更多的公布版本。您须要扩大您的基础架构来反对这一点。要扩大基础架构,您应该思考建设联结架构。 设置联结架构 您能够抉择在寰球范畴内设置服务器,容许近程用户像在本地一样工作。 在Helix Core中,您能够应用Perforce联结架构来实现这一点。大型的网站中通常有边缘服务器,个人用户能够领有集体代理,构建场(Build Farm)能够散布在各地,以便更快地提供反馈。 例如,您正在查看在本地PC上运行一个代理过程。代理会缓存本地同步文件的内容。当您须要解决较大的文件时,它是现实的抉择。当您进行同步时,代理会从本地缓存中开掘文件。这比上传到服务器并通过网络传输要快得多。 此外,您能够安顿工作,应用最新的构建去预填充代理缓存。您还能够设置运行工夫,例如让它在您开始工作之前的凌晨运行。 2. 设置监控 如果您负责确保团队的顺利运行,那么就须要踊跃地监控基础架构中正在产生的事。在监控中,您须要: 查看趋势和峰值审查绩效并积极响应问题限度任何停机工夫将资源分配到最须要的中央您应该常常持有这种疑难: “事件体现得如何?我怎样才能调整事件让它变得更好?”可能在某个团队运作良好的同时,另一个团队却须要额定反对。设置了更多的服务器,就会减少监控整个基础架构的需要。 您还应该自动化警报,并应用行业标准进行构建。 加强构建如果您想公布更多的版本,实现更多的工作,那么就须要思考这对构建流水线意味着什么——可能须要更多的构建资源。您须要思考这些资源应该放在世界上的什么中央,以及如何优化您的流水线。 疾速地提供反馈至关重要。您须要确保每个人的更改都被主动组合、集成和测试。如果构建不是全天继续进行的话,那也须要每晚都进行。 减速构建 Perforce Helix Core还能够帮忙您放慢构建速度。它与内部工具集成,包含像Jenkins、Cloudbees这样的CI工具。 地方服务器使DevOps团队可能随时理解更改。应用“构建边缘(bulid edge)”服务器使其更易于治理。另外,它不须要高可用性正本。Perforce Helix Core的“后盾提交选项”性能加强了对大型数字资产的响应能力,有助于您疾速向团队提供反馈。 应用Perforce Streams优化工作流程 应用Perforce Streams(Helix Core 中的分支)可能帮忙您优化和自动化工作流程。 Streams可能让你轻松理解须要进行哪些更改。您能够应用它来领导团队成员在正确的地位进行更改。另外,不同的团队能够灵便高效地实现不同方面的工作。 基于Perforce Helix Core,发明您的游戏当初,合作对于近程游戏开发团队来说至关重要。想要真正地进行合作,您须要无论团队在任何中央都可能传递反馈。为达到这一点,您须要扩大基础架构、监控性能并且加强构建。 Perforce Helix Core能够帮忙您满足近程游戏开发团队的需要,并可能反对合作式的游戏开发。 这是因为Perforce Helix Core能够轻易扩大来解决任何事件: 从10个用户到1,000用户,都不在话下每天数以千万计的事100TB的数据10,000多个并发提交Perforce Helix Core能够疾速向近程用户发送文件,无需广域网期待,并能够在本地或云端运行。您能够将它与合乎行业标准的监控工具联合应用,查看正在产生的所有事件并实现合作。您还能够应用Perforce Helix Core减速构建,从而更快地公布。 作者简介:  罗伯特·考厄姆(Robert Cowham)首席参谋,Perforce 罗伯特是Perforce的首席参谋。他长期专一于配置管理和改良整个企业的软件开发实际。他是DevOps方面的专家,也是英国计算机协会变更、配置和公布治理专家组的委员会成员(曾任主席)。在业余时间,他经营着一个日本武术合气道的道场。 文章起源:https://bit.ly/3eMiiFi

October 24, 2022 · 1 min · jiezi

关于版本控制:版本控制-一文了解VR内容创作的步骤与关键技术

自2014年Facebook以20亿美元收买Oculus开启寰球VR时代,Oculus、索尼、HTC已成为虚拟现实 (简称VR) 三大巨头厂商,中国市场也紧随其后,在泛滥产业资本的踊跃涌入的状况下,国内VR产业热度越来越高,然而,在技术和产品内容上都还存在很大的提高空间。浏览本文,您将理解到VR内容的创作过程,以及在创作VR内容须要的工具。 作为DevSecOps研发平安经营一体化解决方案供应商、Perforce受权合作伙伴,【龙智】继续关注版本控制畛域动静与倒退,为您进步最新洞察与最佳实际参考,帮忙大型开发团队更好地进行数字资产治理与合作,晋升研发效率。立刻分割咱们,理解虚构制作、游戏开发等畛域的数字资产治理最佳实际与案例。 创作虚拟现实 (VR) 内容,与创作电子游戏和其余媒体3D资产的过程有很多相似之处。 什么是VR内容?虚拟现实 (VR) 内容是任何为虚拟现实环境制作的对象或体验。VR内容的一个例子是虚构高尔夫游戏,或者只是游戏中应用的高尔夫球杆(物体)。 VR内容可能是像游戏这样交互式的,也可能是像视频这样被动式的。 越来越多的游戏开发者、内容创作者,甚至是批发等行业的团队都开始寻找新的形式来与他们的受众互动。这意味着VR内容正在衍生出许多开创性的新模式。 如何创立VR内容VR内容的创立形式与它的类型无关,视频内容和3D VR内容的创立有着不同的流程。 VR视频创作 在VR眼镜中观看的规范视频能够被视为VR内容。但要想发明一个更身临其境的体验,步骤则略有不同: 应用可能拍摄360度全景视频的相机(即全向相机)拍摄场景。应用缝合软件(可能由相机制造商提供)缝合和解决视频。此过程将把多个角度拍摄的影片合并到一个文件中。每个场景都无缝拼接,因而画面在VR中将是连贯的。应用视频剪辑软件剪辑视频,就像剪辑规范视频一样。在这个步骤,您能够在调整灯光和色彩、剪切场景、增加过渡画面等等。同时,为了取得更加沉迷式体验,这个步骤中您也能够而做出专门的更改。例如,您能够增加批示,让观众晓得何时应该看他们的背地。VR资产创立的根本步骤创立VR资产的根本步骤与创立3D游戏资产相似: 另外,VR资产能够通过对事实世界的物体和空间进行3D扫描来制作。您能够应用Canvas或Matterport等挪动应用程序进行扫描。 创立VR资产时须要思考的事项创立规范3D资产和创立VR资产之间的一些区别: 比例:确保VR对象的比例实在且舒服很重要,尤其是当它们间接和用户进行交互时。多边形数(Polycount):VR资产须要比PC/主机游戏中的物体领有更低的多边形数。这是因为所有的货色在VR上都必须以更高的帧速率运行(为了避免晕动症,也就是俗称的晕3D),而且因为它们须要渲染两次(为左右眼各渲染一次)。贴图(又称纹理):防止过多的贴图。个别须要将多个贴图合并成一个大的贴图——对于游戏引擎来说,加载一个大贴图比加载许多小贴图更容易。VR创作软件 VR内容创作软件和游戏开发软件有很多是一样的。创立VR内容用到的软件包含: 游戏引擎,如Unreal或Unity等美术软件,如Photoshop3D建模程序,如Maya数字资产管理工具,如Helix DAM或Shotgrid创作VR内容应该如何进行版本控制如果您的团队在创作波及游戏引擎和多个数字资产的内容,那么您就须要版本控制。版本控制可能跟踪数字资产的更改,这很难手动实现。它能够帮忙您在合并多个起源的代码时解决抵触,也能使多人更轻松地协同创作同一个我的项目。 Perforce Helix Core + Helix DAM,帮忙您掌控VR内容Perforce Helix Core能成为电子游戏行业专业人士信赖的版本控制软件是有起因的——它是惟一能够解决应用游戏引擎时波及的大量二进制文件的零碎。Helix DAM是基于Perforce Helix Core构建的、面向美术人员和创意人员的游戏资产管理器。它为团队提供了一个可视化的资产库,帮忙他们轻松查找、跟踪和查看这些资产。Perforce Helix Core和Helix Dam这对组合帮忙您进步VR内容创作的速度以及可靠性。

October 8, 2022 · 1 min · jiezi

关于版本控制:版本控制-如何有效管理SVN服务器上的多个储存库

Subversion是一种集中式的版本控制系统,个别被简称为SVN。作为目前可用的泛滥版本控制选项之一,SVN仍旧存在着分支性能弱、集中式导致服务器压力大等问题。如果您的需要曾经超过SVN所提供的性能范畴应该怎么办?龙智将在系列文章中为您提供其余版本控制软件的实际参考。咱们将从为什么应用SVN、SVN命令、托管储存库、如何应用客户端等角度比照Perforce Helix Core、SVN与Git,让您可能深刻理解各个版本控制软件的优缺点。作为DevSecOps研发平安经营一体化解决方案供应商,龙智继续关注版本控制畛域动静与倒退,为您进步最新洞察与最佳实际参考,帮忙大型开发团队更好地进行数字资产治理与合作,晋升研发效率。 SVN储存库是文件和目录的汇合,不仅如此,它还记录着变更的残缺历史记录。 当初的我的项目越来越简单,一个我的项目通常有2个以上的SVN储存库。如何无效地对其进行治理呢? 一个SVN服务器上的多个SVN储存库应用多个SVN储存库是组织和多样化数字资产的一种简略办法。例如,您可能同时领有前端储存库和后端储存库。或者,您在一个储存库中有源代码,在另一个储存库中有二进制依赖项。 SVN服务器上能够设置多个储存库: 装置SVN服务器。设置我的项目。创立储存库。应用根目录创立其余储存库。您是否应该应用多个储存库? 多个SVN储存库的一个典型用例是基于组件的开发。当数字内容须要一直复用和共享时,SVN开发人员通常会创立多个储存库。这种策略有助于辨别数字资产之间的依赖关系,但很难无效地治理储存库之间的开发。 事实是,在SVN中分支和合并多个代码线并不是一个简略的事件。而且,在混合中增加多个储存库会更加简单。当须要公布时,很难确保分支和储存库之间的更改被正确地集成到构建中。 多个SVN储存库面临的三个挑战分支与合并 小型分支是公认的最佳实际。但在大型项目中,长期分支依然是有用的,尤其是在开发将来版本时。这就须要将代码从一个储存库中的分支挪动到另一个储存库中。然而SVN的分支性能无奈很好的应答这个挑战。 在SVN中,通过命名常规来标识分支,分支和主代码线之间没有关系。这就很难辨认须要在不同储存库的分支中传导的更改。 公布治理 当您应用两个或更多储存库时,品质管制和版本治理就会很艰难。 假如您有一个专门用于开发的储存库,另一个蕴含主代码。要验证开发分支的批改是否进入了公布分支,是一个很麻烦的过程。 如果没有适当的管制和可追溯性,谬误的构建和意外的代码解冻就会时常产生。 繁琐的变通方法 有一些解决办法能够简化多个SVN储存库的开发。您能够应用打补丁的形式,将更改从长期存在的分支复制到骨干。然而,这须要波及到一些深奥难懂的命令,也须要更多的监管。 开发团队也能够应用第三方多个储存库管理工具,如mr(mr是multiple repo的缩写,代表多个版本库)。应用mr命令,SVN开发人员就能够在一组储存库上执行签出、更新和其余操作,就像它们是一个综合储存库一样。然而,从在线社区来看,目前还不分明这个工具是否被宽泛应用,以及是否带来了真正的价值,或是否在其余方面让事件变得更加简单。 尽管,一些解决办法能够加重治理多个资源库的累赘,但它们会造成复杂性和治理上的开销。 Perforce Helix Core:一个解决多个储存库的更佳解决方案您不须要应用各种变通方法来解决一个我的项目的多个SVN储存库,您的版本控制软件应该提供原生的办法来治理它们。 Perforce Helix Core是SVN的完满代替。它为用户提供了本人的工作区,让用户能够治理来自多个储存库的代码。它的客户端工作区让您能够拜访和共享Perforce Helix Core服务器中的文件,而且您还能够无缝解决来自多个储存库的文件。 Perforce Helix Core应用标签,而不是储存库来治理多样化的数字资产。在Perforce Helix Core中,您能够为代码和制品库增加标签、名称和形容。当须要部署的时候,所有都颠三倒四。 无需应用额定工具 对于一个特定的我的项目来说,SVN用户通常领有两个及以上的储存库。然而,SVN并没有使跨仓库的合作和分支变得简略,而是迫使你想出本人的解决办法。 如果应用Perforce Helix Core,您就不用依赖其余工具进行多个储存库开发,因为Perforce Helix Core就能够让储存库开发变得简单易行。通过应用Perforce Helix Core,您的合作能力将失去改良,同时它还能帮忙您建设繁多可信起源,并让公布治理更无效。 文章起源:https://bit.ly/3cVRqSv 如需从SVN迁徙至Perforce Helix Core,或理解更多对于Perforce Helix Core的信息,请分割Perforce受权合作伙伴——龙智:官网:www.shdsd.com电话:400-666-7732邮箱:marketing@shdsd.com

September 19, 2022 · 1 min · jiezi

关于版本控制:版本管理-如何解决SVN的合并冲突与分支问题

Subversion是一种集中式的版本控制系统,个别被简称为SVN。作为目前可用的泛滥版本控制选项之一,SVN仍旧存在着分支性能弱、集中式导致服务器压力大等问题。 如果您的需要曾经超过SVN所提供的性能范畴应该怎么办?龙智将在系列文章中为您提供其余版本控制软件的实际参考。咱们将从为什么应用SVN、命令备忘录清单、托管储存库、如何应用客户端等角度比照Perforce Helix Core、SVN与Git,让您可能深刻理解各个版本控制软件的优缺点。(已公布文章可在文末【往期举荐】中浏览。) 作为DevSecOps研发平安经营一体化解决方案供应商,龙智继续关注版本控制畛域动静与倒退,为您进步最新洞察与最佳实际参考,帮忙大型开发团队更好地进行数字资产治理与合作。 分支和合并是开发的次要内容。然而,SVN繁琐的分支和简单的合并模型始终备受用户诟病。本文将从SVN的分支与合并工作原理来剖析,并给出解决问题的方法。 首先,咱们将介绍Subversion的分支工作形式,以及如何应用SVN合并。 Subversion分支策略Subversion分支(SVN分支)容许您的团队同时解决多个版本的代码,开发人员能够测试新性能,不会因谬误和bug影响其余开发工作。 SVN的“分支(branch)”目录与“骨干(trunk)”目录并行运行。SVN分支能够复制骨干,并容许您对其进行更改。当新性能稳固时,分支会从新合并。 以下是SVN分支和合并的根本分步概述: 应用svn copy命令创立分支。应用svn checkout签出新的工作正本。应用同步合并可使分支在工作时放弃最新。应用svn merge将更改发送回骨干。SVN分支和SVN合并的毛病用户对SVN诟病最多的是其繁琐的分支和简单的合并模型。SVN分支作为储存库中的目录创立,这种目录构造是SVN分支的外围难点。它占用了开发人员大量的精力。 Subversion分支之间的关系 分支之间的关系以及分支与骨干的关系都不易存储在SVN中。开发人员必须提出命名计划或创立内部文档。 并行开发中的SVN合并 在您在解决分支时,偶然会从骨干合并到分支,以放弃目录最新。每次产生这种状况时,都会将更改复制到分支目录中。这可能会也可能不会反映其余开发人员正在进行的更改。 当分支准备就绪后,应用SVN合并提交回骨干。当然,您不是惟一一个进行合并更改的人。您的骨干版本可能不会反映开发人员的分支。这意味着抵触、失落的文件和凌乱的更改困扰着您的分支。 让咱们认真看一下这个例子: 1.0骨干有两个开发人员在不同的版本上工作。随着1.4和2.0开发分支的开发,它们将从骨干合并到开发分支以收集更新。 并行SVN开发对其余分支造成了无限的可见性。当1.4开发分支与骨干合并时,它被推送到开发中。这可能是把抵触降到最低的状况,但对于2.0开发分支就不一样了。 SVN树抵触长期存在的分支呈现问题的危险会更大。SVN不会告诉您分支在骨干上的地位。您必须对代码进行梳理,找出它所在的地位以及短少哪些更改。 当更改目录构造时,通常会产生SVN树抵触,重命名或删除文件时可能会产生这种状况。因为这些更改很常见,您须要花点工夫来搜寻。 因为在产生树抵触时无奈提交更改,您必须手动解决每个谬误。即便应用“合并跟踪”,您也可能无奈找出分支中短少了哪些更改。这可能会重大提早部署。此外,随着团队规模的扩充,骨干可能会变得不够稳固,导致其更加难以保护。 如何解决SVN合并抵触和分支问题很显著,SVN分支和合并是个问题。Perforce Helix Core提供了一种弱小而简略的分支办法:Perforce Stream。 开发人员能够应用工作流来解决我的项目的一小部分,而不会影响生产或其余开发人员。工作流定义了每个分支的目标:主线、开发、工作或公布。它们遵循主线模型,所有更改都流向主线,相似于SVN骨干。它让开发人员专一于本人的代码,而不是分支和合并。 分支层次结构的图形示意由工作流程图创立,这意味着您的团队始终晓得每个人在做什么。 此外,Streams的独占签出和颗粒度的权限设置让所有都清晰可见。这种流式传输策略解决了SVN分支的许多问题。在Perforce Helix Core中,没有固定的命名计划。Perforce Helix Core应用一个独自的数据库表来跟踪每次合并。还有许多办法能够跨分支跟踪更改:订正历史记录、延时视图和订正图。 文章起源:https://bit.ly/3AGWwtP

September 5, 2022 · 1 min · jiezi

关于版本控制:一文了解如何托管SVN储存库以及版本控制的更佳选择

Subversion是一种集中式的版本控制系统,个别被简称为SVN。作为目前可用的泛滥版本控制选项之一,SVN仍旧存在着分支性能弱、集中式导致服务器压力大等问题。 如果您的需要曾经超过SVN所提供的性能范畴应该怎么办?龙智将在系列文章中为您提供其余版本控制软件的实际参考。咱们将从为什么应用SVN、命令备忘录清单、托管储存库、如何应用客户端等角度比照Perforce Helix Core、SVN与Git,让您可能深刻理解各个版本控制软件的优缺点。 作为DevSecOps研发平安经营一体化解决方案供应商,龙智继续关注DevSecOps畛域的动静与倒退,集成世界支流工具,帮忙企业实现研发平安经营一体化。 正确治理SVN储存库十分重要。让咱们先介绍一下它的基本知识。 什么是Subversion储存库Subversion储存库(通常缩写为SVN储存库)是一个填充了代码、文件和其余我的项目资产的数据库。SVN储存库保留了以前所有变更的残缺历史记录。 SVN储存库概述SVN储存库用于存储您的代码及其历史记录。依据托管的服务器,您能够通过多种形式拜访储存库: 来自组织的外部服务器(本地)。来自内部web客户端(SaaS云服务器)。开发团队具备用于一个或多个本地签出申请的地方SVN储存库。一旦所有变更准备就绪,能够将任何变更代码立刻返还至地方储存库。 您是否应该托管SVN储存库?对于心愿托管服务解决SVN储存库的团队来说,SVN托管可能是一个很好的抉择。SVN托管服务容许您: 在云中创立储存库治理其拜访权限从外部服务器管制所有防止保护和治理老本随着团队优先思考开发而不是减少IT基础设施和老本,云托管服务正变得越来越受欢迎。 Subversion托管选项**您最好的Subversion托管工具是Helix TeamHub。 对于致力于优良SVN web客户端托管的团队,Helix TeamHub是一个直观的托管解决方案。大多数团队能够在几分钟内建设Helix TeamHub企业帐户。此外,对于领有SVN和Git储存库的团队,Helix TeamHub容许您将它们与工件一起存储在一个我的项目中。 只管Helix TeamHub是一个直观的SVN托管解决方案,但它并不能解决很多团队在应用SVN时所面临的问题。咱们从很多以前曾应用过SVN的客户失去的反馈信息是,SVN曾经跟不上了。 优良SVN储存库托管工具:Helix TeamHub 如果您正在思考可能帮忙治理和托管SVN储存库的解决方案,Helix TeamHub是不错的抉择。无论企业规模如何,都有适宜企业的定价选项和许可级别。 何时应用SVN提交提交是特定工夫点代码变更的保留状态。提交实际上是保留您的开发进度;每一次提交都相当于产品路线图上的里程标记。 SVN中的提交在本地签出和地方储存库之间实现。变更将提交给地方储存库。每次提交都包含变更和一条提交音讯,该音讯提供了您正在引入的变更详细信息。 $ svn commit –m “removed old file ‘feature x’ .”Deleting feature xCommitted revision 2.提交音讯的解释性越强,您从代码变更中取得的可见性和洞察力就越强。此外,提交音讯能够清晰地显示过来或存档的变更,如果没有上下文,这些更改可能会令人困惑。 如何治理SVN储存库当您应用SVN时,简直所有事件都遵循一个开发模式或生命周期。上面是应用SVN时路线图的简要阐明。 **1、签出储存库 如果您已筹备好发明优良的产品,同时您的开发人员也筹备好了,那就一起开始吧。 在进行任何代码变更之前,必须先从托管的SVN工作区签出储存库。SVN签出将为您提供想要应用的储存库的新版本。如果您刚刚创立了储存库,还尚未提交,也找不到订正储存库,此时您将应用该储存库的第一个版本。 2、执行变更 签出SVN储存库后,您就能够开始进行代码变更了。从您喜爱的开发人员工具和编辑器中进行抉择,来执行对储存库的更改,这也反映了您的产品开发指标。 将变更后的文件提交到储存库,并应用托管SVN的客户端UI跟踪这些提交。 3、查看变更 提交各种文件后,查看所做的变更很重要。SVN主机将承受提交给单个储存库的文件更新,并将其列为订正版本库。如果您已将同一文件的五个版本增加到储存库中,则能够从版本1、2、3、4或5浏览残缺的历史记录。SVN托管工具使审查过程变得的简略易于执行。 开发人员是否提交了须要回滚到先前版本的错误代码?那么… 4、还原变更 SVN提供了一个命令,能够将文件变更复原到先前的失常版本。只需在命令行中应用“svn revert”,即可将文件复原到编辑之前的状态。而且该命令不局限于单个文件。您能够在单个命令中还原整个目录或储存库。 5、解决抵触 当两个相邻的开发人员对同一个文件进行变更时,就会发生冲突。这在大型企业中尤为常见,因为储存库协定和文件在企业中十分广泛。 抵触是失常开发工作流的一部分,并且十分间接。基本上,你有三个抉择。1、“我共事的变更文件更好。别管我的,咱们用他的。”2、“伙计,我很聪慧。我的变更文件更好。对不起,咱们不必你的变更文件。”3、“咱们的变更文件在一起才高效。咱们是一个如许平凡的团队,是时候合并和提交了。”应用简略的合并工作流,用户能够将合并变更标记为已解决,并将新的和改良的文件提交回我的项目环境。 6、反复再反复 您将应用这种办法的一些变体来一次又一次地推动您的开发过程,逾越1000和 1000多个文件,逾越您的SVN我的项目存储库。然而,开发方法的有效性将取决于您的SVN托管平台是否实用于您所在的企业。 更好的SVN替代品:Perforce Helix Core既然能够通过降级失去可能满足您所在团队需要的版本控制系统,为什么还要投入资金来托管一个受损的版本控制系统? 许多团队须要一个可扩展性、速度更快、反对寰球团队并满足其平安和监管需要的版本控制系统。您能够通过转移到Perforce Helix Core,从而无效面对SVN的倒退挑战。 Perforce Helix Core是寰球七大洲上速度最快的版本控制软件。您能够在单个存储库中平安治理所有数据内容。应用Perforce Helix Core,您将取得: ...

August 12, 2022 · 1 min · jiezi

关于版本控制:版本控制篇-龙智邀您共赴GOPS全球运维大会探索大规模敏捷高质量开放式的软件研发与运营之路

2022年8月19日-20日,第十八届GOPS寰球运维大会将于深圳湾万丽酒店拉开帷幕。此次大会,龙智将为您出现DevSecOps最新干货、重磅报告和惊喜好礼,期待与您在#309展位相逢!欢送至文末扫码预约,与咱们的专家面对面交换。 近期,咱们也将陆续为您“剧透”,让你抢先一步理解寰球DevSecOps畛域的优良解决方案。 本篇文章,龙智聚焦版本控制与动态代码剖析实际,为您带来版本控制工具相干的最新资讯,进步开发团队生产力、让数据管理更加平安高效、工作流程更便捷。 2022GOPS寰球运维大会——XOps风向标GOPS寰球运维大会由高效运维社区(GreatOPS)和凋谢运维联盟(OOPSA)、RPA时代社区联结主办,领导单位为工信部信通院数据中心联盟(DCA)、RPA产业推动方阵。寰球运维大会是国内第一个运维行业大会,面向互联网及传统行业、宽广运维技术人员,流传先进技术思维和理念,分享业内最佳实际。 大会为期2天,偏重方向DevOps、AIOps、DevSecOps、云原生、效力度量等技术畛域方向。此外,还特设了如互联网研运一体化、金融名企数字化转型案例、测试与品质、自动化运维、云原生及DevOps实际等特色专场。 龙智一站式服务,助力高效软件研发与经营龙智在DevSecOps相干畛域深耕近十年,领有软件研发治理畛域的专业知识与丰盛教训,集成DevOps、Agile治理思路及该畛域的当先工具,为软件研发团队提供软件研发生命周期治理(ALM(SDLM)/DevOps)解决方案,以及施行、培训、降级、数据迁徙、定制开发、运维等服务。龙智作为DevSecOps畛域的先行者,十多年来先后为1000多家企业提供DevSecOps相干征询和解决方案,积攒了大量教训和案例,能够为企业提供最佳实际参考;另一方面,龙智造成了从征询,培训,部署,运维到定制开发的一站式服务,陪同企业从0起步,逐渐搭建、造成DevSecOps体系与文化,实现开发平安经营一体化。 龙智Perforce解决方案,帮忙您克服开发挑战Perforce是一家来自美国的DevOps解决方案的提供商,其产品包含版本控制工具Helix Core、动态测试工具Helix QAC、动态代码剖析工具Klocwork与麻利布局工具Hansoft等。 龙智是Perforce公司中国受权搭档、Helix Core寰球最佳合作伙伴( 2020年,2021年),咱们联合DevSecOps理念与您的理论业务流程,利用Perforce公司系列工具,为您解决开发中遇到的各种问题,减速开发。 Helix Core是Perforce旗下集源代码治理和内容合作为一体的版本配置管理工具。它可能在一个存储库中平安治理所有数字内容,提供繁多可信起源,对立、灵便、颗粒度访问控制,具备全面可跟踪性。寰球团队能够在任何类型或者大小的文件上进行单干,反对集中和分布式的工作流,帮忙企业更高效、更平安地打造复合型产品。 龙智提供Helix Core、Helix QAC、Klocwork、Hansoft等Perforce公司产品的征询、销售、施行部署、培训、日常运维及技术支持服务,咱们的客户从热门游戏厂商、半导体公司到驰名互联网公司、汽车行业、银行及金融公司,笼罩各行各业。龙智曾经胜利为许多世界范畴内出名的等企业提供基于Perforce工具的解决方案。 主题演讲、重磅报告、惊喜好礼...龙智为您一一出现8月20日上午11:30-12:00,DevOps解决方案专场,龙智技术支持负责人李培将在GOPS寰球运维大会中带来主题为“大规模、麻利、高质量、开放式的软件研发有经营之路”的演讲,届时欢迎您到场凝听。 李培目前负责龙智技术支持主管一职,负责CloudBees、Perforce、WhiteSource等产品线的技术支持,在嵌入式软件开发方面领有丰盛教训。 除了凝听演讲外,龙智也欢迎您驻足GOPS寰球运维大会#309龙智展位,与龙智资深专家面对面沟通,播种版本控制软件的参考倡议,交换DevSecOps最佳实际,分享经营思路及办法。同时,龙智筹备了《Forrester Wave:企业服务治理,2021年第4季度》等重磅报告,光临展位即可获取,更有惊喜抽奖等你来! 2022年8月19日-20日,龙智与您相约深圳湾万丽酒店,满满干货、重磅报告、丰盛好礼尽在#309龙智展位,静待您的光临!

August 5, 2022 · 1 min · jiezi

关于版本控制:Helix-Swarm中文包发布Perforce进一步提升中国用户体验

近日,Perforce公布Helix Swarm 2021.2中文版,容许在PPN服务器上应用。中文的界面让中国用户感觉更加敌对,应用更加便捷。Helix Swarm是一款实用于Helix Core版本管理系统、基于Web的代码评审工具,它可能简化代码审查流程,帮忙团队进行更无效的代码审查,自动化工作流并放慢开发速度,监控我的项目进度并进步可见性。Helix Swarm与版本管理软件Helix Core无缝集成,将Helix Swarm和Helix Core一起应用,能够无效治理在代码和内容评审期产生的版本控制的资产。早在2021年2月,Perforce公司就针对中国客户公布了Helix Core最新版本的中文包。此次更新实现了P4V、P4Merge、P4Admin的Windows OS界面中文化,P4V上的操作提醒也实现了中文化。近年来,Perforce公司对中国市场的器重水平日益进步,不仅继续与中国受权合作伙伴龙智携手为中国用户提供中文的征询、培训、施行运维、技术支持服务,在产品方面,也重视本地用户的体验,先后公布了多个中文版,为中国开发人员提供更大程度的便当。上海疫情重启后,Perforce公司与龙智一起庆贺停工,心愿中国用户可能早日走出疫情影响,携手共创美好未来。 如需理解更多Perforce公司的Helix Core、Helix Swarm、Helix QAC、Klocwork等软件及相干插件,请分割Perforce受权合作伙伴——龙智: 电话:400-775-5506 邮箱:marketing@shdsd.com

July 4, 2022 · 1 min · jiezi

关于版本控制:二进制文件版本控制工具选择难看完这篇你会找到答案

很多团队都开始寻找用于二进制文件的版本控制。随着越来越多的团队采纳游戏引擎技术,他们产生了更多的艺术资产、构建和其余须要存储和跟踪的文件。 很多版本控制工具在版本控制或存储大型二进制文件方面基本做不好,比方游戏引擎文件。一个团队和他们的我的项目越多,无效治理这些文件就成为一个重大的问题。 对于大型二进制文件,您须要正确的版本控制。那么,哪个工具是最好的? 什么是二进制文件?二进制文件是指任何非文本的文件,如图像、视频、3D 模型、游戏资产和许多其余类型。数据以二进制模式存储(以 “1”和 “0”的模式),该文件只能由理解正确读取信息形式的程序来关上。如果您试图在文本编辑器中关上一个二进制文件,它看起来会显示为随机的字符和符号。 来自 Adobe 和其余艺术程序的艺术资产通常以二进制文件(也简略地称为 "二进制文件 "或 "二进制资产")模式存储,因为它们不能很好地转化为文本。 二进制文件治理的挑战家喻户晓,版本治理二进制文件版本很艰难,但并非不可能,这取决于您应用什么版本控制工具。大多数风行的版本控制系统都不能很好地解决二进制文件,甚至基本不能解决(除了 Perforce Helix Core —— 前面会具体介绍)。 治理和版本化二进制文件的一些次要挑战包含: 您无奈合并它们,从而使资产上的单干变得艰难。很少有版本控制系统弱小到能够存储它们。它们占用了很多空间,特地是对于从事电子游戏等大我的项目的团队。许多我的项目都在应用它们,而且它们在各个角色和行业中越来越广泛。一些版本控制系统比其余零碎更容易治理二进制资产。让咱们深刻理解人们用哪些风行的版本控制系统来治理二进制文件,以及哪些零碎适宜这一目标。 风行的版本控制系统首先,风行的版本控制系统是什么?您可能据说过: Git Perforce Helix Core Subversion (SVN) Plastic SCM 哪些版本控制系统可用于治理大型二进制文件?简短的答复:Perforce Helix Core 和 Subversion 是 TOP 版本控制系统,能够扩大到治理大型二进制文件。 更具体的答案: Git 不适宜二进制文件 —— 在 Git 中存储大型二进制文件是不可能的。每当一个大文件被批改和提交,Git 仓库就会呈指数级增长。有些团队用 Git LFS 来治理大文件。然而,应用 Git LFS 会使仓库变得复杂,因为二进制文件与文本文件存储在不同的零碎中。Git 仓库只存储这些文件的链接。 Plastic 对二进制文件来说不是很好 —— 它能够存储二进制文件。然而,一旦一个我的项目增长超过几 G,性能就会迅速降落。游戏和视觉特效我的项目能够迅速增长到这个大小,导致速度减慢和其余性能问题。 对于二进制文件来说,Subversion 是能够的,但并不现实 —— 在技术上, 它能够对二进制文件进行版本治理。如果您要治理宏大的二进制文件,您的性能会受到影响,因为 SVN 很慢,而且有一个简单的分支零碎。它不能随着团队和我的项目的增长而很好地扩大。 Perforce Helix Core 是治理大型二进制文件的现实抉择 —— Perforce Helix Core 存储和版本所有的数字资产,包含大型二进制文件。它的设计是为了疾速解决 PB 级的数据,所以二进制文件用它很容易治理。 ...

April 26, 2022 · 1 min · jiezi

关于版本控制:听是版本在说话

简介不晓得大家都是怎么定义软件的版本号的?是老老实实的从1.0版本开始,还是像埃里森那样间接从2.0开始,还是从beta版本0.x开始呢? 尽管一眼看过来,咱们必定会心愿应用版本号最高的那款软件,因为版本号越高,代表着其迭代越多,性能越稳固。 这里不探讨版本高下的好坏,这里要探讨的是如何让版本谈话。 让版本谈话为什么要让版本谈话?版本会怎么谈话呢? 让版本谈话的意思是,版本自身就代表肯定的含意,通过版本号就能够根本理解这个版本的大抵状况。 为什么须要管控版本那么为什么要管控版本呢?那是因为在古代的利用中,一个我的项目须要大量依赖第三方我的项目,而第三方我的项目又会依赖其余的我的项目,从而生成一个宏大的依赖汇合。 在这种宏大的版本依赖状况下,咱们须要大抵上晓得现有的我的项目能够依赖第三方我的项目的大抵版本范畴,从而在依赖我的项目版本升级的状况下,不至于导致本我的项目呈现问题。 所以咱们须要一个版本制订规定。 这就是咱们明天要讲的语义化版本. 语义化版本标准在语义化版本中,版本号是由三局部组成的,它的格局是:X.Y.Z(主版本号.次版本号.订正号)。 如果只是bug的修复,而不影响 API 时,递增订正号,如果API 放弃向下兼容的新增及批改时,递增次版本号;如果进行不向下兼容的批改时,递增主版本号。 这样要用什么样的版本是不是很清晰了? 具体而言,X、Y 和 Z 为非负的整数,其中X 是主版本号、Y 是次版本号、而 Z 为订正号。并且须要遵循上面的一些准则,以保障语义化版本标准的正确性。 咱们看下有哪些规定: 在一个版本公布后,禁止对改版本再进行批改。如果须要批改,则递增版本号。主版本号为0的版本,如0.1.3,示意软件还在初始的开发阶段,软件并不稳固。1.0.0 之后的版本才被视为稳固的版本。如果是对API进行外部的bug修复,则递增Z的值。如果是新增了向下兼容的新性能,则递增Y的值。如果有API被标记为废除的话,也须要递增Y的值。也能够在蕴含大量的新性能的时候递增Y值。每当Y值递增的时候,Z值须要归零。Y会在增加任何不向下兼容的API的时候进行递增。每当主版本号递增时,次版本号和订正号必须归零.除了主版本之外,还能够在主版本前面增加上后行版本号. 后行版本号是由数字和字母组合而成,以一个连接号接在主版本前面。比方1.0.0-alpha、1.0.0-alpha.1、1.0.0-0.3.7、1.0.0-x.7.z.92。后行版本号示意这个版本并非稳固而且可能无奈满足预期的兼容性需要。在后行版本号或者主版本号前面还能够加上编译版本号。编译版本号也是由数字和字母组合而成,以一个加号接在主版本或者后行版本号的前面。如:1.0.0-alpha+001、1.0.0+20130313144700、1.0.0-beta+exp.sha.5114f85。总结以上就是语义化版本的根本阐明,如果大家都依照下面提到的语义化标准来进行版本的编写话,那么咱们的软件世界将会变得有限美妙。 本文已收录于 http://www.flydean.com/03-semantic-version/ 最艰深的解读,最粗浅的干货,最简洁的教程,泛滥你不晓得的小技巧等你来发现! 欢送关注我的公众号:「程序那些事」,懂技术,更懂你!

November 29, 2021 · 1 min · jiezi

关于版本控制:Git系列教材-五-修改别人的代码

步骤1:批改他人的代码 步骤2:Fork 步骤3:在github上进行Fork操作 步骤4:轻易做点批改 步骤5:发动New Pull Request 步骤6:比拟扭转的中央 步骤7:填写批改起因 步骤8:批改提交实现 步骤 1 : 批改他人的代码 上个知识点解说了如何批改本人的代码,那么如何批改他人的代码呢? 严格得讲,是不可能间接批改他人的代码的,只能基于他人的我的项目,克隆一个我的项目进去到本人的账号上,到了本人的账号上之后,就能够批改了。 批改了之后,再发动一次合并申请,假使原我的项目作者承受了你的合并申请,那么你就为原我的项目做了奉献,也就批改了原我的项目了。 步骤 2 : Fork 基于他人的我的项目,做一次克隆,克隆出一个一样的我的项目到你的账号下,这个行为叫做Fork。 Fork英文是叉子的意思,示意在原我的项目的根底上,呈现了分支。 步骤 3 : 在github上进行Fork操作 1. 首先用本人的账号密码登陆 2. 拜访我的hellogit我的项目: https:`//github.com/how2j/hellogit` 3. 点击下载区(点击进入)的 Fork 按钮 步骤 4 : 轻易做点批改 Fork之后,hellogit就会被克隆一份到你的账号上,接着对HelloGit轻易做点什么批改 package hellogit;public class HelloGit { public static void main(String[] args) { System.out.println("Hello Git yyy"); }}步骤 5 : 发动New Pull Request 回到github的hellogit我的项目下,而后点击New Pull Request,即发动一次合并申请。 ...

August 23, 2020 · 1 min · jiezi

关于版本控制:Git系列教材-四-修改自己的代码

步骤1:基于本人的我的项目进行批改 步骤2:对HelloWorld轻易做点批改 步骤3:提交批改 步骤4:输出提交信息 步骤5:提交胜利 步骤 1 : 基于本人的我的项目进行批改 通过 创立我的项目 就创立了本人的我的项目 helloword,接下来解说如何提交对本人我的项目中代码的批改 步骤 2 : 对HelloWorld轻易做点批改 步骤 3 : 提交批改 右键HelloWorld.java->Team->Commit 步骤 4 : 输出提交信息 步骤 5 : 提交胜利 提交胜利的画面 更多内容,点击理解: https://how2j.cn/k/git/git-update/1342.html

August 22, 2020 · 1 min · jiezi

关于版本控制:Git系列教材-三-创建项目

步骤1:把本人的我的项目共享到Git上 步骤2:在Git上新建仓库 步骤3:输出仓库名称 步骤4:创立胜利,失去git地址 步骤5:在Eclipse中创立一个java我的项目 步骤6:Share Project 步骤7:配置仓库 步骤8:创立仓库 步骤9:提交我的项目 步骤10:设置提交信息 步骤11:设置git参数 步骤12:指定分支 步骤13:提交胜利 步骤14:图标变动 步骤15:察看github上的我的项目 步骤 1 : 把本人的我的项目共享到Git上 前一个pull我的项目 教程,是把我的我的项目拉下来,接下来演示,如何把本人的我的项目分享到Git下来。 步骤 2 : 在Git上新建仓库 首先登陆github.com 而后点击下载区(点击进入)账号右边的加号,点击New repository创立仓库。 Git上仓库就相当于我的项目的意思 步骤 3 : 输出仓库名称 这里输出仓库名称helloworld 注: 不要选 Initialize this repository with a README, 否则会进去奇奇怪怪的问题 步骤 4 : 创立胜利,失去git地址 步骤 5 : 在Eclipse中创立一个java我的项目 在Eclipse中创立一个java我的项目:helloword, 同时建设一个HelloWorld类 package helloworld;public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); }}步骤 6 : Share Project ...

August 22, 2020 · 1 min · jiezi

对API进行版本控制的重要性和实现方式

我在API设计中收到的最常见问题之一就是如何对API进行版本控制。虽然并非所有API都完全相同,但我发现在API版本控制方面,某些模式和实践适用于大多数团队。我已经将这些内容收集起来,下面将提供一些关于版本控制策略的建议,该策略将帮助大多数API提供商,无论他们是向内部署API,还是对外的API。 API版本真的那么重要吗?API是你与API使用者之间建立的纽带。正常情况下,你们之间的纽带不会轻易的断开。纽带包括URI模式,有效负载结构,字段和参数名称,预期行为以及其他内容。这种方法的最大好处是显而易见的:API使用者的理解不会变更,应用程序可以保证持续有效。 但是,永久不变是不现实的。有时因为业务变化,你可能需要对API进行重大改变。发生这种情况时,最好的方式是,你确保不会做任何会导致API使用者修复代码的事情。 打破与不间断的变化非破坏性变更往往就像是“添加剂”,一般是添加新字段或嵌套资源到资源陈述,又或是增加新的端点,如PUT或PATCH。API使用者从一开始应该构建能够适应这些非破坏性更改的客户端代码。 突破性变化包括:1.名字段或资源路径,通常在API发布后为了统一命名规范。 2.更改有效负载结构,一般是适应以下内容: a.重命名或删除字段b.将字段从单个值更改为一对多关系(比如从一个帐户的一个电子邮件地址移动到这个帐户的电子邮件地址列表)c.修改了API的URL,导致返回结果不一致的情况。简而言之,一旦你将API对外公开发布,你就必须保持它是可用的并且不会影响到使用者的。如果您遇到多个项目,则需要对API进行版本控制,以防止破坏现有的API使用者。 定义API版本策略任何不断发展变化的API都需要API版本控制策略。你的API版本可以适应根据API使用者的期望而切换不同版本变得有所不同。我通常建议将以下API版本控制策略作为整体API管理系统的一部分。 1.如果你的API处于早期测试版本中,为了获得消费者的反馈,请建立您的API可能会发生变化的正确期望。在此阶段内,你会保留这个版本一段时间,因为你的API设计可能还会更改。作为消费者,API是不稳定的,因此他们应该预期到可能会发生的变化。 2.一旦发布,你的API应被视为契约,如果没有新版本,则不能被替换。 3.不间断的更改会导致次要版本出现问题,客户端会自动迁移到最新版本,不会出现任何负面副作用。 4.突破性的变化意味着客户必须迁移到此新版本,因为它包含一个或多个重大更改。你必须与API使用者建立适当的时间表并定期沟通,以确保他们能方便地迁移到新版本。但在某些情况下,这可能无法马上实现,所以你的团队将会被要求暂时性支持以前的API版本。 何时必须实现API版本控制一旦确定需要新版本的API,就需要知道如何处理它。实现API版本控制有三种常用方法。 1.资源版本控制 该版本是HTTP请求中Accept标头的一部分,例如,Accept:application/vnd.github.v3+json 发送到GET /customers。这考虑了许多版本控制的首选形式,因为资源在版本化的同时需要保持URI相同。如果未在Accept标头中提供,某些API会选择提供最新版本作为默认版本。 2.URI版本控制 该版本是URI的一部分,作为前缀或后缀,例如,/v1/customers 或/customers/v1。虽然URI版本控制不如基于内容的版本控制那么精确,但它往往是最常见的,因为它适用于不支持自定义标头的各种工具。缺点是资源URI随每个新版本而变化,有些人认为这与拥有永不改变的URI的意图背道而驰。 3.主机名版本控制 该版本是主机名的一部分而不是URI,例如,https://v2.api.myapp.com/cust...。当技术限制阻止基于URI或Accept标头到API的正确后端版本时,将使用此方法。 备注:无论您选择哪个选项,API版本都只应包含主要编号。不需要小数字(即  /v1/customers,不是/v1.1/customers)。 实现版本控制的工具使用工具和技术可以从根本上实现API版本控制过程。用市场上优秀的API编辑器将使技术开发团队能够在更短的时间内生成并切换更多的API版本,从而不断改进设计决策。 结合工具进行版本控制是大多数开发过程的重要组成部分。API设计领域中也有这种能版本控制的工具,实际上,全球范围内API服务领域中已经存在一些优秀的Web API设计工具。 现在,如EOLINKER、RAML、Swagger,都提供了出色的编辑工具来支持他们的语言。EOLINKER采用的是版本对比和重点标注提示,可以清晰的切换、对比。RAML、Swagger采用的是版本切换,方便程度可能略逊一点。而且只有前者是支持中文的,后两种只支持英文语言。这些API编辑器都能轻松地实现API版本的控制,使得更容易在更短的时间内切换运行版本。 附上EOLINKER的官方网址:https://www.eolinker.com 附上Swagger的官方网址:https://swagger.io/ 附上RAML的官方网址:https://raml.org/ 最后的想法请记住,API是与你的消费者链接的枢纽。打破旧的连接,就需要新版本。选择策略,制定计划,并与API使用者沟通该计划,这才是版本控制的最终目的。 参考资料:James Higginbotham,When and How Do You Version Your API? 原文地址:https://dzone.com/articles/wh...

August 7, 2019 · 1 min · jiezi

从0到1了解CICD初学者入门必备

本文先介绍了系统构建的先决技术与实践,自动化构建、版本控制,并给出了Java环境下一些构建工具,然后分别介绍了持续集成(CI)、持续交付和持续部署(CD)的概念及其优势,并在最后给出了一些最佳实践,如确保部署一致、保证良好的测试覆盖率等。 现代软件开发的需求加上部署到不同基础设施的复杂性使得创建应用程序成为一个繁琐的过程。当应用程序出现规模性增长,开发团队人员变得更分散时,快速且不断地生产和发布软件的流程将会变得更加困难。 为了解决这些问题,开发团队开始探索新的策略来使他们的构建、测试和发布流程自动化,以帮助其更快地部署新的生产。这就是持续交付和持续集成发展的由来。 本文将介绍什么是CI/CD并且它是如何帮助团队迅速开发部署经过充分测试、可靠的软件。在了解CI/CD及其优势之前,我们应该讨论这些系统构建的一些先决技术和实践。 自动构建流程 在软件开发过程中,构建流程会将开发人员生成的代码转换为可执行的可用软件。对于Go或者C语言等编译语言,此阶段需要通过编译器运行源代码以生成独立的二进制文件。对于Python或PHP等解释性语言,没有编译的步骤,但是代码依旧需要在特定的时间内冻结、绑定依赖项、打包以便于分发。这些过程通常称为“构建”或“发布”的工件。 虽然开发人员可以手动构建,但这样操作有诸多不利。首先,从主动开发到创建构建的转变中引入了上下文转换,使得开发人员不得不停止生产效率更高的工作来专注于构建过程。其次,每个开发人员都在制作自己的工件,这可能导致构建过程不一致。 为了解决这些顾虑,许多开发团队配置了自动构建流水线。这些系统监视源代码存储库,并在检测到更改时自动启动预配置的构建过程。这一配置无需牵涉过多的人力在其中并且确保了每个构建过程一致。 市场上有许多帮助用户自动化这些步骤的构建工具,以下列出了在Java生态下比较受欢迎的构建工具: Ant:Apache Ant是一个开源Java库,创建于2000年。它是Java领域的原始构建工具,至今仍然被频繁使用。Maven:Apache Maven是一个自动化构建工具,主要是为Java项目编写的。不同于Apache Ant,Maven遵循约定优于配置的原则,仅需要针对偏离合理默认值的构建过程的方面进行配置。Gradle:在2012年推出的1.0版本中,Gradle尝试通过结合Maven的现代功能来融合Ant和Maven的优势,同时又不失Ant提供的灵活性。构建指令是用一种名为Groovy的动态语言编写的。尽管在这个领域,这是一个相对比较新的工具,但它已被广泛采用。版本控制 大部分现代软件开发需要在共享的代码库中进行频繁协作。版本控制系统(VCS)用于帮助维护项目历史记录,并行处理离散特征,以及解决存在冲突的更改。VCS允许项目轻松采用更改并在出现问题时回滚。开发人员可以在本地计算机上处理项目,并使用VCS来管理不同的开发分支。 记录在VCS中的每个更改都称为提交。每个提交都对代码库的更改进行编目分类,元数据也包含在其中,例如关于查看提交历史记录或合并更新的描述。 图1 分布式版本控制 虽然版本控制是一个十分有价值的工具,它能帮助管理在单一代码库中许多不同的更改。但分布式开发通常会为其带来挑战。在没有定期合并到共享集成分支的情况下在代码库的独立分支中进行开发可能会使以后合并更改变得困难。为了避免这一情况,开发人员开始采纳持续集成实践。 持续集成(CI) 持续集成(CI)是一个让开发人员将工作集成到共享分支中的过程,从而增强了协作开发。频繁的集成有助于解决隔离,减少每次提交的大小,以降低合并冲突的可能性。 为了鼓励CI实践,一个强大的工具生态已经构建起来。这些系统集成了VCS库,当检测到更改时,可以自动运行构建脚本并且测试套件。集成测试确保不同组件功能可以在一个组内兼容,使得团队可以尽早发现兼容性的bug。因此,持续集成所生产的构建是经过充分测试的,并且是完全可靠的。 图2 持续集成的过程 持续交付和持续部署(CD) 持续交付和持续部署是在构建持续集成的基础之上的两种策略。持续交付是持续集成的扩展,它将构建从集成测试套件部署到预生产环境。这使得它可以直接在类生产环境中评估每个构建,因此开发人员可以在无需增加任何工作量的情况下,验证bug修复或者测试新特性。一旦部署到staging环境中,就可能需要进行额外的手动和自动测试。 持续部署则更进一步。一旦构建在staging环境中通过了自动测试,持续部署系统将会自动将它部署到生产服务器上。换言之,每个通过测试的构建都是实时的,可供用户及早反馈。这使得团队可以不断发布新特性和修复bug,并以其测试流程提供的保证为后盾。 图3 CI / CD流程路线图 CI/CD的优势 持续集成、交付和部署对软件开发过程有显著的改进。下文将简单介绍一些CI/CD的主要优势: 快速反馈回路 对于一个快速的开发周期,快速反馈回路显得尤为重要。为了能够实时接收反馈,软件必须迅速触达终端用户。而CI / CD可以通过简化更新生产部署来提供实现此目标的平台。通过要求每个更改都经过严格的测试,CI可以帮助降低每个构建的相关风险并因此使得团队可以便捷地向用户发布有价值的特性。 增加可见度 CI/CD通常是指将IT流程的各个步骤按序列组成一条流水线,且该流水线对整个IT团队(包括开发、测试、运维等团队)均可见。因此,每个团队成员可以跟踪系统中的构建状态并且可以确定任何导致测试失败的构建。团队成员通过深入了解代码库的当前状态,可以更轻松地规划最佳行动方案。这样的可见度为这一问题提供了一个明确的答案——“我提交的更改是否破坏了构建?” 简化故障排除 尽管CI的目标是集成并测试每个发生在代码库中的更改,但是更安全的方式是每次提交都是小型的并尽早将它们合并到共享代码存储库中。如此,当找到bug时,确定和问题相关的更改会更加容易。毕竟,根据问题的严重程度,团队可以选择回滚或编写并提交修复,从而减少生产中解决问题的时间。 软件质量更高 自动化构建和部署流程不仅缩短了开发周期,而且帮助团队开发出品质更好的软件。因为每个更改都会经过充分的测试并且至少会部署在一个预生产环境中,因此团队可以毫无顾虑地将更改部署到生产中。不过,只有当代码库的所有级别,从单元测试到更复杂的系统测试,都有良好的测试覆盖率时,才能实现这一点。 集成问题更少 因为自动化测试套件在每次提交时自动生成的构建上运行,所以可以尽早检测并修复集成问题。这使开发人员能够及早了解当前正在进行的工作是否可能影响其代码。它会在一开始就测试由不同贡献者编写的代码是否兼容,而不是在之后可能出现其他问题的时候才开始测试。 有更多的时间专注于开发 CI/CD系统依赖自动化来生产构建并且通过流水线来迁移新的更改。由于不需要手动干预,因此构建和测试不再占用开发团队大块的时间。进而开发人员可以心无旁骛地对代码库进行有效的更改,因为如果构建过程中出现任何问题,自动化系统会通知他们。 持续集成和交付的最佳实践 既然我们已经了解了使用CI/CD的一些优势,那么接下来,我们将讨论一些指导原则来帮助您成功实现这些流程。 对CI / CD流水线负责 开发者直到更改被部署到预生产环境中,才无需对其提交的代码负责。这意味着开发者必须确保他们的代码集成正确并且随时可以部署。如果提交的更改违反了这些要求,则开发人员有责任快速提交修复以避免影响其他人的工作。构建失败应该暂停流水线并阻止不参与修复故障的提交,这使得快速解决构建问题变得至关重要。 确保部署一致 部署过程不需要手动操作,反而流水线需要自动部署流程以确保一致性和可重复性。这减少了将破坏性构建推向生产的可能性,并有助于避免出现一些难以重现的、未经测试的配置。 将代码库提交到版本控制 将每次更改提交到版本控制是十分重要的。这会帮助团队审核所有提交的变更并且让团队可以简单地还原出现问题的提交。同时,也可以保持配置、脚本、数据库和文档的完整性。如果没有版本控制,特别是当多人使用同一个代码库时,会非常容易丢失配置和代码更改或对其处理不当。 提交小的、渐进的更改 开发人员一定要牢记:更改必须是小的。因为等待引入更大批量的更改会延迟测试反馈,会更难以确定问题的根本原因。 良好的测试覆盖率 由于CI / CD的目的是减少手动测试,因此整个代码库应该有一个良好的自动化测试覆盖率,以确保软件按预期运行。此外,还应该定期清理冗余或过时的测试以避免影响流水线。 ...

August 7, 2019 · 1 min · jiezi

DevOps-工程师成长日记系列三版本

原文地址:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-part-3-version-76034885a7ab原文作者:Igor Kantor翻译君:CODING 戴维奥普斯“Close-up of a backlit laptop keyboard” by Markus Petritz on Unsplash 快速回顾让我们快速回顾一下前文:简而言之,这个系列文章讲述的是现代 DevOps 的精髓——如何将一个想法尽可能快速地转化上线实现盈利。 具体来说,在第一部分的文章中,我们了解了 DevOps 文化和目标;在第二部分的文章中,我们讲述了如何使用 Terraform 为之后的代码部署奠定基础。因此在本文中,我们将会讨论如何防止这些代码在运行中失去控制(we will discuss how to keep all these pieces of code from completely going haywire all over the place. ),同时还将讨论如何使用 git 来构建和推广你自己的个人品牌。 如图所示,我们现在在 DevOps 旅程的这个位置: DevOps Journey 为什么要进行版本控制当我们谈论"版本控制"时我们在谈论什么? 假设你正在开发一款软件,并且在不断的根据需求修改代码,添加或移除某些功能,那么最近的一次更新通常会是一次“突破性的”更新。换言之,不管你上次更新了什么内容,都打破了之前所做的工作。 现在要怎么做? 如果你真的比较老派,那么你可能更倾向于这样命名你的第一个文件: awesome_code.pl接着你开始做一些修改,同时需要保留有效的内容以防可能需要回退。因此,您将文件重命名为: awesome_code.12.25.2018.pl这样看起来运行得不错,直到你开始在一天内进行多次更改,最终可能会得到这样的文件名: awesome_code.GOOD.12.25.2018.pl当然,在专业的开发环境中,你有多个团队在同一代码库上协作,这将进一步打破这个模型。 毋庸置疑,这条疯狂的火车将快速脱轨。 源代码控制源代码控制:一种将文件保存在集中位置的方法,多个团队可以在一个公共代码库上协同工作。 这并不是个新方法,我能找到的最早提到源代码控制的内容可以追溯到 1972 年,因此将代码集中在一个地方管理的想法肯定是陈旧的。相对较新的方法是所有构建产物都必须版本化,这意味着所有与生产环境相关的内容都必须进行版本控制,能被追踪、审查并且保留历史记录。 此外,强制“所有产品必须版本化”实际上也是迫使你以“自动化优先”的思维方式处理问题。例如,当你决定在你的 Dev AWS 开发环境中通过单击解决复杂问题时,你可以暂停并思考一下,“所有这些都是能以单击实现版本化构建吗?” 答案当然是否定的。虽然可以通过 UI 的快速原型查看是否有效,但这些尝试一定不是长久之计。从长远来看,请确保你使用 Terraform 或其他基础架构作为代码工具来执行所有操作。 ...

June 19, 2019 · 1 min · jiezi

工作、开源两不误:Git多账号管理

由于 Git 所具有的巨大优越性,越来越多的公司以及个人开始由 Svn 转向 Git 。一般来讲,每位员工都会被分配给一个公司内部的邮箱。比如一个 996 公司的员工 “张三”,获得的可能就是一个 “zhangsan@996icu.com” 的邮箱。比较规范的公司,就会要求我们使用自己的名字和公司所分配给自己的这个邮箱来配置 Git(姓名和邮箱可以不用引号括起来):git config –global user.name “张三"git config –global user.email “zhangsan@996icu.com"但是这种配置是全局的,如果我们之前刚好有在 GitHub 上维护项目,那这样势必就会将之前所做的 Git 账户配置给覆盖了。那怎么解决呢?我们总不能来回覆盖,来回添加密钥吧。我们能不能同时配置多个 Git 账户呢?当然能。这里以 Mac 为例,如果我们之前配置过全局的用户名和邮箱,那么在用户目录下的.gitconfig文件中(如/Users/zhangsan/.gitconfig),会有类似如下的配置:[user] name = 张三 email = zhangsan@gmail.com当然,我们也可以直接使用命令来查看:git config –global user.namegit config –global user.email如果设置了这两个全局属性,就会输出对应的值。若任何输出的话,则表示未设置。如果设置过,我们就需要将用户名和邮箱这两个全局变量进行重置。使用如下命令:git config –global –unset user.name git config –global –unset user.email 我们知道,一般 Git 服务器为了安全,都会要求我们添加一个安全的 SSH 密钥。但是默认情况下,生成的密钥的文件名都是一样的。因而,不同的用户,必须设置不同文件名的密钥文件,否则会发生覆盖。所以,接下来千万别觉得太熟悉不过了,就一路回车,千万要悠着点手速。以 “张三” 为例,首先,我们需要根据公司邮箱来生成密钥对:ssh-keygen -t rsa -C “zhangsan@996icu.com"回车后会出现下面这句话:Generating public/private rsa key pair.Enter file in which to save the key (/Users/zhangsan/.ssh/id_rsa):这时候可千万别一路回车,注意看提示,这里要我们输入要保存的私钥的路径和文件名,为了以后易找,我们就仍然放在该路径下,只不过更改个跟平台相关的文件名,输入:Users/zhangsan/.ssh/996icu_id_rsa接着就可以一路回车了,默认密码为空即可。生成完密钥之后,我们还需要使用ssh-add命令是把专用密钥添加到ssh-agent的高速缓存中。该命令位置在/usr/bin/ssh-add,用法如下:ssh-add -K ~/.ssh/996icu_id_rsa之后我们需要将生成的密钥对中的公钥里的内容用文本编辑器打开,复制下来,添加到对应的平台上面,比如公司的 GitLab 或者 GitHub 等。Mac 下面可以直接使用如下命令来把公钥复制到剪切板:pbcopy < ~/.ssh/996icu_id_rsa.pub同样地,我们使用 “zhangsan@gmail.com” 这个邮箱,来生成供 GitHub 使用的账户的私钥github_id_rsa和公钥github_id_rsa.pub,并把公钥添加到 GitHub 平台上。接下来我们还需要修改 Git 的本地配置,来将远程的服务器地址和本地的私钥文件进行关联。这样通过比较私钥和之前填在该平台上的公钥,就能进行权限验证。在Users/用户名/.ssh/目录下面新建一个名为config的配置文件,添加如下内容:# github email addressHost githubHostName github.com User gitPreferredAuthentications publickeyIdentityFile ~/.ssh/github_id_rsa# gitlab email address# 公司内网地址HostName 192.168.6.106 User gitPreferredAuthentications publickeyIdentityFile /.ssh/996icu_id_rsa这里就将远程地址和本地的私钥文件对应了起来。配置文件中的 HostName 是远程仓库的访问地址,这里可以是 IP,也可以是域名。Host 是用来拉取的仓库的别名,配不配置都行。如果 HostName 没配置的话,那就必须把 Host 配置为仓库 IP 地址或者域名,而非别名。配置了这些之后,我们就能够成功的从远程拉取仓库了,拉取之后,cd到仓库目录下,配置该仓库使用的用户名和邮箱:git config –local user.name 张三git config –local user.email zhangsan@996icu.com当然,你也可以直接不用 –local参数注意,这里的账户可以和我们开始时生成秘钥的邮箱不同。那个邮箱其实配置的是我们电脑针对某个 IP 的 “全局” 账户(注意,不是global参数指定的那个全局),这里配置的是某个仓库下的 “局部” 用户,当然,你把这个仓库再 copy 一份的话,就可以设置个其他的用户名和邮箱了,毕竟是局部的嘛,相当于多个用户在同一台电脑上进行工作。还有,如果你未指用户名和邮箱的话,Git 会自动使用电脑登录的用户名,比如“zhangsan”,邮箱默认就是 “zhangsan@zhangsan.local”,这当然不是我们想要的,所以最好配置下吧。到这里,还没完。如果你使用的是 IDEA,比如 AS,还需要设置 SSH 使用本地(native)的客户端,而非 AS 内嵌(build in)的 SSH 客户端 :在AS 3.5 Canary 10 版本上,发现没有这个选项,应该是默认使用了本地的 SSH 客户端。到这里仍然没有完,对于 Mac,可能会遇到升级系统或者重启系统之后,SSH私钥失效的问题,这时候我们可以通过在/.ssh/config文件中添加如下内容来解决:Host * AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/github_id_rsa IdentityFile ~/.ssh/996icu_id_rsa如果还不生效,那就可以通过自己编写 shell 脚本(这里我使用的是 zsh,所以配置的是#! /bin/zsh,若使用的是系统自带的终端,可以修改为#! /bin/bash):vim .ssh/ssh_add_private_keys.sh#! /bin/zsh# 添加 github 公钥ssh-add ~/.ssh/github_id_rsa# 添加 公司 gitlab 公钥ssh-add ~/.ssh/996icu_id_rsa// 赋予sh文件可运行权限chmod +x .ssh/ssh_add_private_keys.sh然后把它添加到开机启动项中:系统偏好设置>用户与群组>登录项。当然,我们也可以创建一个Automator任务,并将其添加到系统开机启动项中。然后创建一个 App 应用程序:添加 shell 脚本代码:然后按Command+S保存,文件名另存为ssh_add_private_keys.app:然后把刚才添加的这个APP添加到开机启动项中:当然,上面这两种添加方式本质上都是一样的,只不过一个是创建的.sh的 shell 脚本文件,而一个是运行 shell 脚本的 App 文件形式。欢迎关注公众号来获取其他最新消息,有趣的灵魂在等你。 ...

April 14, 2019 · 1 min · jiezi

【学习中】git 使用 : git 是如此的好用

Git 使用官方文档: https://git-scm.com/docGit与Github关联教程: https://www.cnblogs.com/flora...Git 远程操作详解: http://www.ruanyifeng.com/blo…推荐看看这本介绍 Git 的电子书,看完什么都知道了,介绍的很详细Git电子书下载 【PDF】 【EPUB】 【MOBI】我理解的 Git 是个什么东西Git是现在流行的VCS(“Centralized Version Control Systems” 版本控制系统)之一。版本控制系统主要目的是,控制项目不同版本,可随时回溯到任何需要的版本。如软件开发行业,版本控制系统扮演着不可或缺的重要角色。VCS可以把软件开发的各个岗位连接起来,各自完成自己的工作,且井井有条,前端和后台的工作同时进行。VCS可以把所有管理的文件都进行版本标记,如果任何文件修改出错,都可以随时恢复到前面的任何版本。说白了,VCS可以把开发人员紧密联合起来,大家同时进行开发,不会出现前后端融合错误。使用 git 每个用户都会在本地拥有 git 仓库的所有信息,过往记录,所以可以随时随地的提交代码。git 对文件版本的记录区别于其它 vcs, 其它vcs是对每个版本的文件进行标记,而 git 是对每个版本的所有文件进行快照,并根据项目内的所有文件计算出 hash 值来记录版本号。保证完整性。三种状态你的文件可能处于尺寸三种状态之一:已提交(committed)、已修改(modified)和已暂存(staged)由此引入 Git 项目的三个工作区域的概念:Git 仓库、工作目录以、暂存区域。基本的 Git 工作流程如下:在工作目录中修改文件。暂存文件,将文件的快照放入暂存区域。提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。安装windows 的我就不说了,需要的请自行百度。Mac 系统在安装 Xcode 的时候就会自动安装查看当前版本git –version# git version 2.17.2 (Apple Git-113)初次配置git 自带 git config 工具来修改 git 的配置文件/etc/gitconfig 系统上每一个用户及他们仓库的通用配置,带 –system 参数使用 git config 时,会读写这个文件 ~/.gitconfig 是只针对当前用户。 带 –global 参数可读写此文件当前目录是正在使用的仓库时,配置文件路径是 .git/config每一个级别覆盖上一级别的配置,所以 .git/config 的配置变量会覆盖 /etc/gitconfig 中的配置变量。用户信息安装完git,第一件事就是设置用户名和邮件地址,这些信息会在每次提交时使用$ git config –global user.name “John Doe”$ git config –global user.email johndoe@example.com指定git默认的文本编辑器默认的编辑器是 vim,如果你想自定义编辑器,可以通过这个指令指定:$ git config –global core.editor 编辑器名称查看配置信息git config –list 可以查看你的 git 配置信息$ git config –listuser.name=John Doeuser.email=johndoe@example.com…初始化 Git 仓库在当前目录下初始化仓库git init这个命令会将本目录初始化为一个代码仓库,并在目录中增加 .git 目录,里面是关于本仓库的所有信息。初始化之后,目录中的文件并没有加入到 git 的版本控制中,需要手动将文件添加到 git 的控制列表中,操作见下一步。$ git add .c$ git add LICENSE$ git commit -m ‘initial project versionGit 本地库的常规操作忽略特定文件在 git 管理的目录下 新建文件 .gitignore如:.[oa]~上面的文件意思是忽略所有以 .o .a 的文件,忽略以 ~ 结尾的文件.gitignore 的格式规范:空行 或 # 开头的行会被忽略可以使用标准的 glob 模式匹配以 / 开头防止递归以 / 结尾指定目录用 ! 反向选择glob shell 所使用的简化了的正则表达式 0个或任意个字符[abc] 任意其中一个字符? 匹配一个字符[0-9] 表示匹配任意中间的字符** 两个星表示任意中间目录 a/**/c a/b/c a/d/c查看当前状态git status查看当前目录下的文件状态,如果有文件未加入到跟踪中,会提示你。git status -s可以查看简短的报告git status -s M READMEMM RakefileA lib/git.rbM lib/simplegit.rb?? LICENSE.txt?? 表示未跟踪的文件A 表示新添加的文件MM 右边的M表示修改后未保存到暂存区,左边表示修改并放入了暂存区添加文件如果我们新建了一个名为 README 的文件,git status 会显示文件没有被跟踪,通过以下指令把文件添加到 git 的文件跟踪中。加入到跟踪中后,没有 commit 之前,文件处于暂存区。git add README如果这时候修改了 README 文件,再用 git status 查看状态的时候,会看到提示 changes not staged for commit,此时如果想在下次 commit 的时候提交这次修改,需要再次 git add 这个文件。git add 可以理解为标记文件到下次提交,而非只是添加文件到跟踪状态查看区别在修改了文件之后,没有添加到暂存区之前,可以用 git diff 查看前后版本的区别这是在文件没有添加到暂存区的时候的查看方式,在存入后,需要用 git diff –cached 来查看不同提交文件git commit这会打开默认的文本编辑器,让你输入此次提交的信息。就像平时用 vi 编辑文本那样,按 i 进入输入模式,然后输入你要写的话,再 esc wq 保存退出就会提交了。或者用简短的方式,直接在命令中输入此次提交的信息,多个 -m 参数会作为多个分段。git commit -m ‘初次提交’如果闲每次添加文件麻烦,可以用 -a 参数跳过添加到暂存区的操作,直接在提交的时候把所有已经跟踪的文件上传。git commit -a移除文件移除文件并取消该文件的跟踪,需要用 git rm 指令,并删除本地文件。如果只是在目录中删除了文件,在 git status 的时候会提示文件没有添加到跟踪中。如果文件已经添加到暂存区,且修改了文件还没有提交,此时删除文件就需要用 -f 参数了。只移除文件跟踪,不删除文件git rm -cached READMEgit rm 后面还可以跟 glob 模式的匹配字符串移动文件git mv 给文件重命名用这个指令其实它是三个指令的集合mv README.mb READMEgit rm README.mbgit add README所以用 git mv 会更方便一些。查看历史git log -p -2-p 显示不同版本的区别-2 显示最近的再次更新–stat 可以查看每次更新的简略信息–graph 以字符图的样子显示分支情况撤消操作有时候,在提交了之后发现有几个文件没有提交,可以用 git commit –amend。git commit -m “initial commit"git add forgotten_filegit commit –amend如果在你提交之后,在没有修改文件之前马上添加未提交的文件,再 –amend 就会打开上次提交的注释,接着编辑信息,然后再提交。Github 远程代码仓库的使用查看当前目录下的远程仓库 URLgit remotegit remote -v$ git remote -vdiary git@github.com:KyleBing/Diary.git (fetch)diary git@github.com:KyleBing/Diary.git (push)在URL前面如果显示 origin 那是 git 给 URL 仓库的默认名字,添加远程仓库git remote add tb git@github.com:KyleBing/TouchbarBBT.git这样就添加了 git@github.com:KyleBing/TouchbarBBT.git 的仓库,别名为 tb这时候拉取远程仓库内容的时候,直接用 tb 代替 git@github.com:KyleBing/TouchbarBBT.git从远程仓库拉取内容git fetch [仓库别名]这个指令会拉取远程仓库的所有内容,包括所有分支。git pull会拉取远程分支到当前分支,并自动合并。推送到远程仓库git push [仓库别名] [分支名]会将你的项目推送到远程查看远程仓库git remote show [仓库别名]在没有设置仓库别名的时候,git 会默认把这个仓库命名为 origin$ git remote show tb* remote tb Fetch URL: git@github.com:KyleBing/TouchbarBBT.git Push URL: git@github.com:KyleBing/TouchbarBBT.git HEAD branch: master Remote branch: master tracked Local ref configured for ‘git push’: master pushes to master (local out of date)给远程仓库重命名git remote rename origin tb重命名 origin 为 tbgit remote rm tb移除远程仓库 tb定义发布版本 tag查看标签git tag列出已有标签git tag -l ‘v1.8.5’只查看 v1.8.5 的相关版本v1.8.5v1.8.5-rc…创建 annotated 标签添加 annotated 标签,用 -a 参数git tag -a v1.4 -m “tag version info"git show v1.4可以查看标签和对应的提交信息创建 light-weight 标签git tag -v1.4 -lw不需要填写提交信息后期打标签查看过往提交记录,然后取一个记录的校验和的部分字符串,把该提交打成标签git log –pretty=online# 显示为86bc9a426f04817fe47c07685ac60e0fcdd33af9 (HEAD -> master, tb/master) 添加外部链接4200265a6990c78fb5d0667eb0bbb99ab2760fc0 Merge branch ‘master’ of github.com:KyleBing/TouchbarBBT6df11cb1ee1726291d8ef20da1a93773a8e40fff Last6529785f35f5f2fd6333d95430d46e6dc75c590f Update README.mdaa6a05ba99933e5505969d36f66191a499e7c2b8 文章发布前的版本7eaa5924d0b5e7675d90d9b31b8daedaacaca0ea 定稿4f2320c2dcbe5ccd9dac551817cbc90653fd377b 调整按钮尺寸大小,正在播放背景色改为黑色18dce9bf2c84183e9030d5f7e8431ca2c0504a57 Update README.mdaf58e9c024ecbe2994d0c3bb21ab112dbed008fa 更新说明文档04da2e77f336f87827e2cf5801305f075c45d7dd 添加默认 touchbar 文件,添加 最新 Touchbar 文件d797ff57fd5ff74c233c804fb627c7df04456595 Update README.mdd8a1f7ea817a0aa51ff5b2c1f075e064a9a323f7 Merge branch ‘master’ of github.com:KyleBing/TouchbarBBTf9075467294865fe1a31b0879aa2d11071fe1110 修改目录名字,添加实际照片51fde532cb2d1ef7197d14e66cdaaed46dc8be3a Create README.mdd0611a4e511641e772e56ec7c923291e254a54ad 初始化该仓库,添加基础的配置文件和基础的图标git tag -a v1.2 51fde共享标签git push 并不会把标签传送到远程仓库,显式的推送才会显示。git push origin v1.3用 –tags 会把所有不在远程服务器的标签都推送到服务器上git push origin –tags删除标签删除本地标签git tag -d v1.3检出标签git checkout 2.0Git 别名git 可以像系统那样设置别名git config –global alias.co checkoutgit config –global alias.br branchgit config –global alias.ci commitgit ci -m “infos”# 跟下面作用一样git commit -m “infos"分支如果项目中新建了三个文件,在提交的时候,Git 仓库中有五个对象:三个 blob 对象(保存着文件快照一个树对象(记录着目录结构和 blob对象索引)一个提交对象(包含着指向前述树对象的指针和所有提交信息)HEAD、 分支 master 是什么东西git 的分支,其实是指向不同提交版本的指针。在 git init 初始化的时候,默认生成了一个名为 master 的分支,其实它跟其它分支的等级是一样的,都只是一个分支,默认名为 master,只是我们都懒得给它改名罢了。git 还有一个名为 HEAD 的指针,作用是指向当前本地库正在的修改的分支,如上图,本地库正在 master 分支上做修改。创建分支git branch testing上面的指令的结果如上图,在当前版本上新建了一个名为 testing 的分支。git branch 只是创建一个分支,并不会切换到该分支。分支切换git checkout testing上述操作会把 HEAD 指针指向 testing 分支,作用如下图:当前在 testing 分支上,现在新建并提交一个文件,只会保存在 testing 分支上,而 master 分支还停留在前一个提交状态上,也就是说该文件只存在于 testing 分支上。效果如下图;master 没有动,testing 已经向前移动到了最新的节点。切换分支的时候会改变本地的目录结构切换分支的时候,本地文件会变到当前分支的目录结构上,如果由于特殊原因没法切换分支的时候,会提示切换分支失败。此时我们再切换回 master 分支并做修改后提交,master 指针就会指向新的提交节点。此时,master testing 分别处于不同的提交节点上,如下图: ...

February 27, 2019 · 3 min · jiezi

【git】前端使用git分支的开发流程

一、先讲背景目前的就职的公司,虽不是BAT之类,但是直接领导和后端业务团队的领导基本来自阿里和华为,git分支主要有以下:主分支:master,保证所有已发布到生产环境的分支都已merge到master,并且,新分支比如从master创建日常分支:daily,本地开发和测试环境使用,保证所有的已上生产和发布测试的分支都已merge到daily其他分支:版本分支或bug分支,从master拉取,并在merge到master后删除前端团队采用如下开发流程:(接到版本需求后,假设不需要后端接口配合,或后端接口已开发完毕)二、开发阶段第一阶段(本地开发+测试环境阶段)step1:master创建一个新分支featrue-2019-2,此为版本分支,并拉取到本地,使用SwicthHosts将本地开发环境映射到日常环境,也称测试环境,在本地开发调试step2:本地开发后,使用sourcetree保存并提交到远程featrue-2019-2分支,你使用git命令也是一样step3:拉取日常环境分支daily,并将featrue-2019-2 merge到 dailystep4:使用JenKins(日常环境账号)登录后构建daily分支,表示对daily的代码执行npm run build+push,构建成功后通知测试人员step5:若测试有问题,修改后,重复step2、step3、step4,直到测试通过第二阶段(预发阶段)step1:merge master 到 featrue-2019-2,保证featrue-2019-2已包含所有的生产代码step2:使用JenKins(预发环境账号)登录后构建featrue-2019-2分支,构建成功后通知测试step3:若测试有问题,检查测试环境是否也有此问题,若有,则要返回第一阶段的step2第三阶段(生产阶段)step1:此分支发预发后,若有别的分支发了生产,则需要执行merge master 到 featrue-2019-2,保证featrue-2019-2已包含所有的生产代码step2:使用JenKins(生产环境账号)登录后构建featrue-2019-2分支,构建成功后通知测试step3:featrue-2019-2 merge 到 master,并删除featrue-2019-2,step4:若测试有问题,汇总问题,从master拉取bug分支,例如可命名为featrue-2019-2-bug,从第一阶段开始,开启一个新的版本开发三、分支原则1、保证master分支是唯一主分支2、所有版本分支,所有需求,所有代码,必须按“照构建日常——>构建预发——>构建生产”的顺序执行3、所有版本分支只开发此版本相关内容,不可混合其他版本需求开发4、分支发布生产后,必须尽快merge到master5、分支的生命周期,从master上拉取开始,到merge到master以后结束,一个分支尽量只使用一次,即merge到master以后就删除6、不要频繁发布生产,日常和预发不受限制四、预发环境的必要性以前的公司,只有测试/预发环境和正式/生产环境,来到这家公司后,才了解到预发环境的必要性。测试环境,用来测试代码没有问题,但是测试环境里都是测试数据,和真实数据差别很大,大家都知道,对于前端来说这些数据的不同会造成特殊情况存在,例如测试环境的数据不合法。而预发环境则是真实数据,基本上用户在预发环境的所见,99%等同于在生产环境的所见,所以,必要性可想而知。

February 18, 2019 · 1 min · jiezi

版本控制之目录

Git命令详解使用Git玩转GitHub

January 10, 2019 · 1 min · jiezi

Yii2.0 RESTful API 之版本控制

Yii2.0 RESTful API 之版本控制之前我写过两篇关于 Yii2.0 RESTful API 如何搭建,以及 认证 等处理,但是没有涉及到版本管理,今天就来谈谈版本管理如何实现。索性就从头开始一步一步搭建吧,但是关于一些概念以及使用本篇就不一一解释了,可以参考 第一篇 Yii2.0 RESTful API 基础配置教程 进行配置安装Yii2.0通过 Composer 安装这是安装Yii2.0的首选方法。如果你还没有安装 Composer,你可以按照这里的说明进行安装。安装完 Composer,运行下面的命令来安装 Composer Asset 插件:composer global require “fxp/composer-asset-plugin:^1.2.0"安装高级的应用程序模板,运行下面的命令:composer create-project yiisoft/yii2-app-advanced yii-api 2.0.14拷贝backend目录,命名为api打开api\config\main.php 修改id,controllerNamespace:return [ ‘id’ => ‘app-api’, ‘basePath’ => dirname(DIR), ‘controllerNamespace’ => ‘api\controllers’,]初始化高级模板在初始化之前不妨先看下这篇文章cd advancedphp init打开common\config\main.php开启url路由美化规则’urlManager’ => [ ’enablePrettyUrl’ => true, ‘showScriptName’ => false, ‘rules’ => [ ],],打开common\config\bootstrap.php添加以下别名Yii::setAlias(’@api’, dirname(dirname(DIR)) . ‘/api’);ok,以上工作准备完毕,接下来进入正题,关于版本更多介绍可以参考 权威指南 ,这里不过多解释(PS:主要我也不会……)我的理解:Yii2 的版本你可以理解为不同的模块,每一个版本就是一个新的模块,比如常见的v1,v2等。模块的搭建关于如何生成模块,我们可以使用GII来进行生成.配置 GII打开 api/config/main-local.php 文件 修改如下:if (!YII_ENV_TEST) { // configuration adjustments for ‘dev’ environment $config[‘bootstrap’][] = ‘debug’; $config[‘modules’][‘debug’] = [ ‘class’ => ‘yii\debug\Module’, ]; $config[‘bootstrap’][] = ‘gii’; $config[‘modules’][‘gii’] = [ ‘class’ => ‘yii\gii\Module’, ‘allowedIPs’ => [‘127.0.0.1’, ‘’] ];}我这里因为使用的是 Homestead ,默认是不允许访问 GII 的,所以得加上 ‘allowedIPs’ => [‘127.0.0.1’, ‘’] ,否则会出现 Forbidden (#403), 你可以根据自己的需要来进行配置,或者不配置生成Modules浏览器中输入 http://your host/gii ,可以看到 Module Generator ,点击 StartModules Class 中输入:api\modules\v1\ModuleModule ID 中输入v1,(一般会自动输入)点击 Preview最后点击 Generate 进行生成配置模块打开 api/config/main.php 文件,修改 modules’modules’ => [ ‘v1’=>[ ‘class’=>‘api\modules\v1\Module’, ],],接着修改 urlManager’urlManager’ => [ ’enablePrettyUrl’ => true, ’enableStrictParsing’ => true, ‘showScriptName’ => false, ‘rules’ => [ [‘class’ => ‘yii\rest\UrlRule’, ‘controller’ => ‘v1/default’, ’extraPatterns’=>[ ‘GET index’=>‘index’, ], ], ],],基于以上,Yii2.0 RESTFul API 就实现了版本管理,我们可以通过如下地址进行访问:http://localhost/v1/defaults多说一点,我上方的地址是已经映射到api/web目录,请根据自己的实际情况进行配置打开刚生成的 modules 文件目录,可以看到里面存在一个 v1 的目录,可以看到该目录还有一个controllers,以及一个 views 目录,我们刚才访问的 defaults 其实就是这两个文件,和传统的web项目一样控制器渲染视图好了,你可能知道了,我们以后的控制器代码就放到 modules/v1/controllers 里了刚才仅仅是默认GII为我们生成的代码,因为我们是API,所以 views 目录,我们一般情况下用不到。新建一个 rest 的控制器在 modules\v1\controllers 下新建 UserController<?phpnamespace api\modules\v1\controllers;use yii\rest\Controller;/** * User controller for the v1 module /class UserController extends Controller{ /* * @return string */ public function actionIndex() { return ’this is v1/user’; }}修改 api/config/main.php 中的urlManager’urlManager’ => [ ’enablePrettyUrl’ => true, ’enableStrictParsing’ => true, ‘showScriptName’ => false, ‘rules’ => [ [‘class’ => ‘yii\rest\UrlRule’, ‘controller’ => ‘v1/default’, ’extraPatterns’=>[ ‘GET index’=>‘index’, ], ], [‘class’ => ‘yii\rest\UrlRule’, ‘controller’ => ‘v1/user’, ’extraPatterns’=>[ ‘GET index’=>‘index’, ], ], ],],试着访问下http://localhost/v1/users/indexok,以上就是 Yii2.0 版本管理的实现方式格式化响应修改 api/config/main.php 在components 数组中添加 response’response’ => [ ‘class’ => ‘yii\web\Response’, ‘on beforeSend’ => function ($event) { $response = $event->sender; $response->data = [ ‘success’ => $response->isSuccessful, ‘code’ => $response->getStatusCode(), ‘message’ => $response->statusText, ‘data’ => $response->data, ]; $response->statusCode = 200; },],至此关于 Yii2.0 RESTFul API 我一共完成了 3 篇文章,分别为:Yii2.0 RESTful API 基础配置教程Yii2.0 RESTful API 认证教程Yii2.0 RESTful API 之版本控制写得实在不怎么样,您如果看了有收获,不妨留言给个评论,或者您觉得写得有问题,或者不明白,也可以留言,我们可以一块探讨研究。 ...

January 9, 2019 · 2 min · jiezi

gitlab 搭建

参考文档官方安装教程-ubuntugitlab 的组成nginx,内置 nginx web 服务器corns,版本控制的核心程序nginx 默认会监听 127.0.0.1:80 端口!corns 默认会监听 127.0.0.1:8081 端口!安装参考官网的下载教程,gitlab-ee 这个东西下载速度会很慢,请手动下载:百度/google搜索 gitlab-ee,或者请点击:gitlab-ee如果采用 gitlab-ee.deb 包,安装方法如下:dpkg -i gitlab-ee.deb外部访问地址external_url 这个应该是系统内使用的一个变量。如果不设置的话,可能会出现莫名其妙的错误。修改端口nginx 端口vim /etc/gitlab/gitlab.rb—-nginx[’listen_port’]=8081corns 端口vim /etc/gitlab/gitlab.rb—corns[‘port’] = 8081vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb—listen “127.0.0.1:8081” // 修改成其他的即可修改完成后,为了使配置文件生效,需要重新编译:gitlab-ctl reconfiguregitlab-ctl restart就可以查看效果了(编译较耗时,大概 3min)。扩展gitlab-ctl stop 停止gitlab-ctl restart 重启gitlab-ctl reconfigure 重新编译配置文件

December 26, 2018 · 1 min · jiezi