老板对将版本控制系统用于新项目表示怀疑,我还是应该吗?


9

参见/software/109817/superior-refusing-to-use-subversion

我的问题是相似的,但是这是我的情况下的主要区别:

  • 我们正在使用PHP和网络技术从头开始一个新项目。如果我愿意的话,在开发中不会出现停机时间,因为从一开始我们就会采用它。

  • 我的开发团队包括我和我的老板。我们是一家相对较小的公司的“ IT”部门。

该Web应用程序将完全不使用源代码控制来替换旧版应用程序。由于地域法律要求的差异,决定(在我被雇用之前)决定将应用程序分入每个版本的7个完全独立的目录中。之后,不同的开发人员在不同的时间在不同的地方做不同的事情。好吧,我认为可以在它们之间修补更改,我想这就是我要发布的原因。

我老板的建议,直接从电子邮件中粘贴:

  • 更新应作为软件包提交到​​SUBMISSIONS文件夹中。程序包应包含所有相关文件以及包含更新说明的“ UPDATE.NFO”文件,包含的所有新文件的列表(带有描述)以及所有包含修改详细信息的已修改文件的列表。

  • 更新包应专注于单个元素,而不应偏离其预期目的。代码应设计为模块化的,并尽可能重用。

  • 所有提交的软件包都应在提交后立即安装在每个开发人员的测试环境中。每个开发人员都要审查新添加的内容,并对在生产环境中对其安装的任何疑问发表意见。在将此标准流程更新加载到生产环境之前,至少应保留3个工作日,以进行此审核过程。高优先级更新/修复可以跳过此要求。

发明源代码控制的原因是使所有这些自动化,对吗?我建议颠覆,因为那是我在大学中使用的。老板不喜欢颠覆,因为“它使代码一团糟”(即使用二进制魔术并且不易理解)。我们曾经尝试过一次,但是我认为尝试在Windows上使用它会产生奇怪的小写/大写错误,并且我们无法检出文件。我不知道这仅仅是颠覆还是所有令人反感的源代码控制产品。

那么,我应该对老板提出什么样的论点呢?还是他是对的,有可能会因为一个奇怪的错误而失去我们所有的工作吗?

还是我完全错了?在我的情况下,真的需要源代码控制吗?这是我们正在谈论的主要的关键业务软件,因此毫无疑问,它最终将是巨大的。但是只有2个开发人员(现在)。

另外,如果我不能说服他,我是否有为我自己使用它的任何意义?我说的是实际使用svn的经验非常有限的人;我只知道结帐和提交。源代码控制(可能包括svn以外的其他产品)有哪些功能可以帮助我进行个人开发?

请没有“找另一份工作”的评论。那对辩论没有帮助。


25
“而且请不要发表“找另一份工作”的评论。” 为什么不?你的老板注定了。
S.Lott

9
即使您无法说服他,也可以私下使用它。因此,您可以自由编辑文件而不必担心。您要处理的文件有一堆“保存点”。即使您必须在本地机器上安装SVN,也总比没有好。
Tydus勋爵,11年

10
@ S.Lott,我认为OP有权指定问题的范围。例如,如果OP居住在一个小国家并且其父亲/婆婆是该工作的老板,而OP的报酬是其两倍或三倍,那么“找另一份工作”是不可行的。在公开市场上的价值。简而言之,这不是问题的一部分。
Dan Rosenstark 2011年

8
@ S.Lott I, on the other hand, think that the OP is being silly in trying to specify the bounds on the answer....好吧,具体界限一点也不傻。职业建议是没有主题的,尽管我可以很好地回答这个问题并提供职业建议,但我认为OP指定他不在乎职业建议并不
yannis 2011年

9
@ S.Lott另一方面,我确实发现愚蠢的是职业建议,特别是当它是“寻找另一份工作”时。有很多未知变量,以至于我无法认真对待任何此类建议。
yannis 2011年

Answers:


35

不要问他 不要告诉他 让他看。

在其他计算机上安装svn或git或任何您喜欢的东西。练习自己使用它,直到您不但可以使用它,还可以对其进行解释为止。如果您要使他对新系统感到满意,那么您需要自己对新系统更加满意。当他搞砸合并或将某些内容放入错误的位置时,您将需要能够帮助他轻松恢复。

当您准备好时,请告诉他您正在谈论的内容。告诉他,这不会“弄乱”任何东西。要指出的是,它不仅使您可以轻松地检索代码的任何先前版本,而且还可以准确知道任意两个版本之间的更改。

请指出,如果服务器发生任何事情(严重的错误,病毒,黑客,磁盘崩溃等)如果您可以立即重建必要的版本,它们都将像英雄一样。还要指出的是,如果您能够按需生产任何版本,则外观将翻倍。搜索您的旧电子邮件,并列出过去一年使用版本控制可以避免的问题列表。

给他一个备忘单,这将使他可以轻松使用您的版本控制系统。

最后,提出一些选择,由他决定。您应该设置自己的服务器,还是使用众多托管服务之一?您应该使用svn,git还是其他工具?您应该将所有七个项目都迁移到系统上,还是首先尝试一个或两个?


9
为“不讲,表演(练习后)” + 1
哈维尔(Javier

2
但是就像有人说的那样,请使用它作自己的副本
0fnt 2015年

3
+1代表search your old e-mail and compile a list of problems you've had over the past year that you could have avoided with version control.
Daenyth 2015年

此外,如果要显示某些内容,显示可能会更容易。我建议在GUI上使用某些东西,例如git的SourceTree。这样一来,它看起来就不那么令人恐惧了,它更容易学习,没有人担心用一点错字弄乱整个系统,它几乎已经是您提到的备忘单的图形版本。
R. Schmitz

28

源代码控制的好处远远超出了允许多个开发人员处理单个代码的范围。SourceGear的创始人Eric Sink 列举了一些令人信服的理由来将源代码管理用作唯一的开发人员

- It's an undo mechanism.
- It's a historical archive.
- It's a reference point for diff.
- It's a backup.
- It's a journal of my progress. 
- It's a server. 

埃里克(Eric)碰巧也有一个非常不错的初学者的“ 源代码控制方法”。Joel Spolsky提供了免费的在线Mercurial教程,Mercurial是一种流行的分布式版本控制系统。

下一步,我建议您作为唯一开发人员开始在计算机上本地使用源代码管理。很快,您的老板会注意到您具备强大的魔力,例如在几分钟(甚至几秒钟)之内告诉您一个超严重错误的发生时间,然后您可以准确地告诉他哪些客户帐户受到影响,并且需要先修复地狱破了。或能够撤消CEO不赞成的任何更改。

最后,在试图说服老板之前,您可能需要深入研究异议处理主题。这是101的销售。

如果不成功-尽可能快地继续前进,这不会浪费您在风车上倾斜的时间。


1
+1为Eric Sink文章。+1表示汞。git非常流行,但是这个问题清楚地表明op是源代码控制的初学者,而hg比git容易一点。+1汞教程。+1用于提供面向销售的参考,这就是您如何最好地应对尖尖的上司(对于Google搜索链接,则为-0.5)。+1为唐吉x德参考。这种答案使我想创建重复的帐户,因此我可以多次投票。
yannis 2011年

1
这个答案基本上说明了一切。您应该自己使用源代码管理的另一个原因是:如果继续进行下去,那么,拥有一些源代码管理方面的经验将对您的简历产生帮助。没有任何这样的经验不会看起来很好。
Mike Nakis 2011年

10

是的,即使只为您使用源代码控制也是完全值得的。例如,Git对于独立开发人员而言确实非常有效,并且允许您执行诸如分支和合并(以尽可能低的成本)之类的事情,并且可以随时更改更改版本。

SVN-或实际上是任何版本控制系统-都允许您执行此操作,但是合并会出现更多问题。


我同意使用Git。我将其用于项目,即使我是唯一的开发人员。
DanO '12

我也开始了。我不会使用SVN ...但是使用Git,即使不与服务器打交道,创建和管理存储库也是如此容易,以致于越来越难辩称git init第二次开始处理某件事。
cHao 2013年

没有正确.gitignore的git repo基本上是没有用的。那是您唯一必须拥有的东西git init
Dan Rosenstark

但是合并有点麻烦 ”-如果OP仅自己使用它,就不会有太多的合并,是吗?也许可以将自己的功能分支合并回自己的母版中,但是他从老板那里收到的任何代码都希望进行新的提交,不是吗?我没有SVN的经验,只有git。
R. Schmitz,

1
直到有“合并不会很多”的时候。任何项目,即使它是一个业余项目,最终都将需要开发团队(可能是一个人)同时处理两件事。然后,您必须进行合并,并且在某些时候您将遇到合并冲突。
Dan Rosenstark

5

如果我不能说服他,我会为我自己使用它有什么意义吗?

是。只为自己使用它会有好处。您会获得更改历史记录,以便了解不同之处。

不,没有好处,因为您的老板将您的项目注定要进行无意义的返工,因为他们搞砸了事情。


不仅可以看到不同之处,还可以在两秒钟之内在新版本和任何旧版本之间切换。
gnasher729

3

我强烈建议使用git之前提到,原因1是因为任何VCS在发生灾难时都是安全网。查找“万一发生火灾:git commit,git push,离开建筑物”标签。代码可能存储在其他地方,但不能存储在笔记本电脑中,因为笔记本电脑可能会发生故障,被盗等……对于像代码这样有价值的东西,即使是本地网络服务器也不是最安全的地方。

数字2。变更的可追溯性,谁做了什么,什么时候等等。合并,撤消。数字3。将神奇的工具与#2和更多案例进行比较。编号4.分支编号5.标记版本,发行版等。

您可以在此处找到有关最常见的git工作流程之一的更多信息:https : //nvie.com/posts/a-successful-git-branching-model/

我知道使用git最初可能会令人生畏,但这对于一项技能来说是一笔不错的投资,对于任何开发团队来说都是必须的。

关于您的文本案例问题,请避免使用Tortoise,我知道大多数人都将它用作git的GUI,因为它在SVN中非常常见,因此它可能是首选,而不是使用命令行或其他GUI(例如github桌面)或Atlasian的SourceTree。

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.