Questions tagged «version-control»

跟踪,存储和检索源代码修订的编程学科。

5
使用分支作为单独开发人员有什么优势?
首先,我知道已经问过许多关于VCS作为单独开发人员的问题,但是它们通常过于广泛。这仅涉及分支,并且仍然被标记为重复...假定的重复再次被标记为另一个问题的另一个重复,该问题过于广泛且与分支无关。这就是我的问题的独特之处。 使用分支作为单独开发人员有什么优势(如果有)?即使在单独开发环境中,我也经常看到它的建议,但是据我所见,除了使用“主”主干进行开发,并分支工作以准备发布版本的代码外,我还看不到我可以利用分支的力量(例如,划分新功能),而不会使整个开发过程过于复杂。

17
我应该告诉某人他们的提交导致了回归吗?
当您跟踪并修复回归时(即导致以前工作的代码停止工作的错误),版本控制使您完全可以查找谁提交了破坏它的更改。 值得这样做吗?向做出承诺的人指出这一点是否具有建设性?错误的性质(在对更改的代码的基本误解上没有引起注意),这是否是一个好主意? 如果告诉他们一个好主意,那么有什么好的方法可以做到而又不会引起进攻或引起他们的防守呢? 出于争论的考虑,假设该错误非常微妙,CI服务器的自动测试无法对其进行识别。


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

12
是否应该使用提交历史记录将关键信息传达给开发人员?
在有关从最新版本回滚第三方SDK的会议中,我们注意到开发人员已经在提交历史记录中标记了不应使用最新版本。 一些开发人员认为这是一种不好的做法,应该在源文件(即// Don't upgrade SDK Version x.y.z, see ticket 1234)或项目级别的README文件中进行注明。其他人则认为,由于提交历史记录是项目文档的一部分,因此对于此类信息而言,它是可接受的位置,因为无论如何我们都应该阅读它。 应该使用提交历史记录将关键信息传达给其他开发人员,还是应该将这些信息复制到其他位置(例如项目README或相关源文件中的注释)?

11
个人(一个人)项目的git。过度杀伤力?
我知道并使用两个版本控制系统:Subversion和git。到目前为止,Subversion被用于我是唯一开发人员的个人项目,而git被用于开源项目和我相信其他人也可以在该项目上工作的项目。这主要是因为git惊人的分叉和合并功能,每个人都可以在自己的分支上工作。非常便利。 现在,我将Subversion用于个人项目,因为我认为git在这里毫无意义。这似乎有点过大。如果我是唯一的开发人员,则将其集中(通常在我的家庭服务器上)对我来说是可以的;我还是要定期备份。我不需要建立自己的分支的能力,主要分支是我的分支。是的,SVN对分支有简单的支持,但是我认为对它的更强大的支持是没有意义的。合并可能会很痛苦,或者至少从我的小经验来看。 我是否有充分的理由在个人项目上使用git?


22
我该如何说服我的开发人员加入WANT,以在源代码提交中添加注释?
我知道可以将Subversion(我们在工作中使用的东西)配置为要求对提交进行注释,但是我无法简单地将其打开。我知道我对提交进行评论的原因是因为它(即使只是作为慢跑者)对于快速了解提交背后的原因很有用。但是,这似乎还不足以与我经常得到的两个回答作斗争: 它花费的时间太长,我只想将我的更改放入存储库中。 只需看一下差异就很容易了。 我什至向他们展示了简单地输入JIRA问题ID以及它如何自动与问题联系在一起的价值,但仍然与他们无关。 最糟糕的是,可以拨打电话的人在同一个阵营中:不想打扰,并且可以看差异。 我知道这是正确的做法,但是如何让他们看到光线呢?即使我无法说服我的开发人员,我又如何说服管理层这对企业是正确的呢?

12
使用版本控制时,是否有必要在每个代码文件中包含“更改日志”?
我的印象是,版本控制系统消除了将“更改日志”粘贴到代码各处的需要。我经常看到更改日志的继续使用,包括存储过程开始时的长块大块,其中很大一部分被挡住以更改文件,并用诸如此类的代码乱码: // 2011-06-14 (John Smith) Change XYZ to ABC to fix Bug #999 和: // 2009-95-12 (Bob Jones) Extracted this code to Class Foo // <commented-out code here> 正如我向我解释的,这样做的原因是,花很长时间浏览我们的VCS日志,试图找出谁更改了内容和原因,同时将其保存在代码文件本身的顶部或附近。更改,可以轻松查看谁更改了内容和时间。尽管我明白了这一点,但似乎有些多余,只是有些“语:“嗯,我们不太了解如何正确使用VCS,因此我们根本不会理会这些东西。” 你怎么看?您是否同时使用注释和日志?只是日志?您是否发现,在代码块上方看到约翰·史密斯一周前更改了检查XYZ的方法,而不必在Diff工具中搜索日志并比较代码文件时,是否更容易编写代码? 编辑:使用SVN,但基本上只是作为存储库。没有分支,没有合并,除了日志和存储之外什么也没有。

28
一个好的程序员有可能从未使用过版本控制吗?[关闭]
我正在寻找专业的程序员来帮助解决困难的情况。 到目前为止,采访令人惊讶地令人失望。到目前为止,最好的候选人是从未使用过版本控制软件的,经验丰富的程序员。 问题本身可能并不太严重,因为可以在短时间内了解到这一点。 但是还有一个更深层次的方面,这让我担心: 如何在不需要版本控制的情况下主动开发10-15年的软件? 本身不寻找解决跟踪问题的解决方案的事实本身是否表明对编程态度不正确?

10
我被迫编写错误的代码。如何保存我的脸?[关闭]
我只是一个初级开发人员,但是我的工作迫使我使用非常糟糕的PHP代码(想想您所见过的最糟糕的PHP代码;然后再考虑糟糕两倍的代码)。我通常会尝试修复错误并与代码库抗衡以添加新功能。有时,我被勒令让事情尽快运行,而这往往涉及肮脏的骇客。 该产品以前是开源的,我担心它将来可能会开源。如果有人(尤其是潜在的雇主)能在某些变更集旁边找到我的名字,我会感到ham愧。我该怎么做才能保护自己的好名声? 我不确定这是否有意义,但我要补充一点,我的老板和同事都不想承认代码不好,但是我不确定我是否可以为此责怪他们-对于许多人来说,这就是他们的第一份工作。

8
我应该记录我发现并修补的错误吗?
我认为这是一种常见情况:我测试一些代码,发现错误,对其进行修复,然后将错误修复提交到存储库。假设有很多人从事该项目,我应该首先创建一个错误报告,将其分配给我自己,然后在提交消息中引用它(例如“修复错误#XYZ。该错误是由于X和Y引起的。 Q和R“)?或者,我可以跳过错误报告并提交一条消息,例如“修复了在B时导致A的错误。该错误是由于X和Y引起的。由Q和R修复了该错误”。 什么是更好的做法?


9
Git应该用于文档和项目管理吗?代码应该放在单独的存储库中吗?
我正在为一个小组项目启动一个Git存储库。将文档与代码存储在同一Git存储库中是否有意义-似乎这与git修订流程的本质冲突。 这是我的问题的摘要: 如果将代码和文档都检入同一个存储库,Git修订样式会不会引起混淆?有经验吗? Git非常适合文档版本控制吗? 我不是在问总体上是否应该将修订控制系统用于文档编制,而是应该使用。 感谢您到目前为止的反馈!

7
为什么有这么多项目更喜欢“ git rebase”而不是“ git merge”?
使用DVCS的优点之一是编辑提交合并工作流(通常由CVCS强制执行的编辑合并提交工作)。允许将每个唯一更改记录在与合并无关的存储库中,可确保DAG准确反映项目的真实血统书。 为什么这么多网站谈论要“避免合并提交”?合并合并前合并或合并后合并是否会使隔离回归,还原过去的更改等变得更加困难? 澄清点: DVCS的默认行为是创建合并提交。为什么有那么多地方谈论看到隐藏这些合并提交的线性开发历史的愿望?

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.