Questions tagged «scm»

14
没有SCM的情况下如何保持代码质量?
我在政府机构工作。这里使用的技术和开发软件的方法已经过时了。 它们具有大量的存储空间,但没有合适的空间来保留和维护用于自动化此处大部分工作的应用程序。 该机构不允许我使用SCM软件(例如GIT或SVN)。 保持代码质量并稍后能够在应用程序中添加新功能的最佳方法是什么? 如何记起对代码所做的更改而又不破坏代码? 编辑:我忘了提及,它们为每台计算机都有网络驱动器,并且这些网络驱动器会以某种方式定期进行备份或保存备份。但是,如果我不创建自己的计划以保存工作并能够在不破坏现有代码的情况下添加新功能,那么与SCM解决方案相比就没有太大的优势。 编辑:由于许多人建议使用便携式Git,所以我必须添加更多信息。我尝试安装Visual SVN服务器,但失败了,因为我没有安装管理员权限。我也尝试下载常规的Git Shell,但是防火墙或网络设置不允许我访问Git下载页面。我什至尝试过,将便携式Git发送到我的Gmail电子邮件中。Google检测到了软件包中的exe文件,也不允许我在工作计算机上下载可移植的Git版本。我还要提到的另一件事是,应用于机构内部计算机的网络策略不允许使用USB存储设备。您可以使用USB端口为智能手机充电或为小扬声器等小工具供电。也有人说过,有些计算机甚至不允许上网。
110 git  code-quality  svn  scm 

10
如果两次提交之间的等待时间过长,该怎么办?
我很调皮……太多的“牛仔编码”,还不够提交。现在,我在这里做出了巨大的贡献。是的,我应该一直坚持下去,但是现在为时已晚。 什么是更好的? 做一个非常大的提交,列出我所做的所有更改 尝试将其分解为可能无法编译的较小提交,因为文件具有多种修复,更改,其他方法名称等。 尝试仅针对适当的提交对文件进行部分还原,然后放回新的更改。 注意:到目前为止,我是唯一从事此项目的程序员。至少在我们雇用更多程序员之前,唯一会查看所有提交评论的人就是我。 顺便说一句:我正在使用SVN和Subclipse。在进行任何这些更改之前,我确实创建了一个新分支。 更多信息:我首先问了一个与我如何进入这种情况有关的单独问题:如何为重写应用程序的粘合做准备

13
要分支还是不分支?
直到最近,我的开发工作流程如下: 从产品所有者那里获得功能 进行分支(如果功能超过1天) 在分支中实施 合并从主分支到我的分支的更改(以减少向后合并期间的冲突) 合并我的分支回到主分支 有时合并存在问题,但总的来说,我喜欢它。 但是最近,我看到越来越多的想法的追随者不要建立分支机构,因为这使得实践连续集成,连续交付等变得更加困难。对于具有分布式VCS背景的人们,他们在谈论如此大的合并实现时尤其有趣。 Git,Mercurial等 所以问题是我们现在应该使用分支吗?

7
我的公司合并分支机构错了吗?
最近,我碰到了一篇有关分支和合并以及SCM的MSDN文章:分支和合并入门-Chris Birmele。 他们在文章中说“大爆炸合并”是一种合并的反模式: 大爆炸合并-将分支合并推迟到开发工作的尽头,并尝试同时合并所有分支。 我意识到这与我公司对所有开发分支的工作非常相似。 我在一家非常小的公司里工作,只有一个人担任最终审查+干线合并授权。我们有5个开发人员(包括我在内),我们每个人都会被分配一个单独的任务/错误/项目,我们每个人都将离开当前主干(subversion),然后在我们的分支中执行开发工作,测试结果,编写文档如有必要,请与其他开发人员进行同行评审和反馈循环,然后将分支提交给我们的项目管理软件进行评审+合并。 我的老板是主干存储库的唯一授权,实际上将把分支的所有审核推迟到一个时间点,在该时间点他将尽其所能进行审核,一些​​分支将被退回以进行增强/修复,有些则被丢弃。分支将直接合并到主干中,由于冲突等原因,一些分支将被退回。 对于我们来说,在最终审阅队列中有10-20个活动分支合并到主干中并不少见。 在最后的审阅和合并阶段,我们经常还必须解决冲突,因为两个分支是在同一主干上创建的,但修改了同一段代码。通常,我们可以通过重新分支,重新应用更改并解决冲突,然后提交新分支进行审核(可怜的人变基)来避免这种情况。 我有一些直接的问题是: 我们是否展示了被称为“大爆炸合并”的非常反模式? 我们看到的某些问题是此合并过程的结果吗? 我们如何在不增加我老板的瓶颈的情况下改善这一合并过程? 编辑:我怀疑我的老板会放松对中继存储库的控制,还是允许其他开发人员合并到中继。不知道他这样做的原因是什么,但是我真的不打算提出这个话题,因为这个话题以前被提出过并且很快就被否决了。我认为他们只是不信任我们,这是没有意义的,因为无论如何都跟踪了一切。 任何其他见解这种情况将不胜感激。


5
DevOps和软件配置管理之间的区别
开发运营和软件配置管理有什么区别? 对我来说,只要DevOps和软件配置管理都专注于: 建立开发基础架构 -负责版本控制,构建管理,部署管理,依赖项管理,持续集成和交付等。 使用最佳实践来组织开发人员环境。 开发过程的质量保证 -收集开发有效性的度量标准,消除开发过程的瓶颈(运行单元测试,评估单元测试覆盖率,运行检查等) 基础架构管理 -目标平台及其详细信息。 发布管理 -确保发布已及时交付给客户。 也许我想念什么?此链接显示以“软件配置管理”一词为准。但是,您仍然希望使用什么单词组合来描述所列的活动范围:开发操作或软件配置管理?

6
在git中,如何对十二个库进行版本控制
我们正在做项目,但是我们在项目之间重用了很多代码,并且有很多包含我们共同代码的库。在实施新项目时,我们发现了更多方法来分解通用代码并将其放入库中。这些库相互依赖,而项目则取决于这些库。每个项目以及该项目中使用的所有库都需要使用它们所引用的所有库的相同版本。如果我们发布某个软件,则我们将不得不修复错误,并可能添加许多年甚至数十年的新功能。我们有大约十二个库,更改通常跨越两个以上,并且几个团队并行处理多个项目,并同时对所有这些库进行更改。 我们最近已切换到git并为每个库和每个项目设置存储库。我们使用存储作为公共存储库,在功能分支上进行新工作,然后发出拉取请求并仅在审阅后合并它们。 我们必须在项目中处理的许多问题都要求我们在多个库和项目的特定代码之间进行更改。这些通常包括库接口的更改,其中一些不兼容。(如果您认为这听起来有些可疑:我们与硬件进行交互,并将特定的硬件隐藏在通用接口之后。几乎每次我们集成其他供应商的硬件时,都会遇到我们当前的接口无法预期的情况,因此必须对其进行完善。)例如,假设一个项目P1使用的库L1,L2和L3。L1还采用了L2和L3,并L2使用L3为好。依赖关系图如下所示: <-------L1<--+ P1 <----+ ^ | <-+ | | | | +--L2 | | ^ | | | | +-----L3---+ 现在,想象一下此项目的功能需要更改,P1并L3更改的界面L3。现在添加项目P2并添加P3到组合中,它们也引用这些库。我们不能将它们全部切换到新界面,运行所有测试并部署新软件。那有什么选择呢? 在中实现新接口 L3 提出请求L3并等待审查 合并变更 创建一个新版本 L3 P1通过参考L3的新版本开始使用该功能,然后在其P1功能分支上实现该功能 提出拉取请求,对此进行审核并合并 (我只注意到我忘了切换L1,并L2到新版本,而我甚至不知道在哪里要坚持这一点,因为这将需要同时做同P1...) 这是一个繁琐,容易出错的过程,并且实施此功能的过程非常漫长,它需要进行独立审核(这使得审核变得更加困难),根本无法扩展,并且有可能使我们停业在过程中陷入困境,我们永远都做不完。 但是,如何使用分支和标记来创建一个流程,使我们能够在新项目中实现新功能而又没有太多开销?
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.