我正在考虑尝试使用subversion之类的VCS来管理我的下一个项目,但我不确定是否会为我作为Web开发人员带来任何实际好处。据我了解,VCS的一个主要好处是一群人可以同时处理一个项目。
关于这个主题的Reading material似乎pretty one sided:
“使用版本控制系统是一个 绝对必须为开发者 项目超过几百行 代码“
......我感觉它可能成为一件苦差事,没有多少好处。
我在本地网络上的开发服务器上工作,因此任何数量的人都可以处理这些文件。如果有人需要远程访问,他们使用FTP。现代版本控制系统会给我什么呢?
答案 0 :(得分:17)
在您的情况下,它可以为您提供至少四项额外的好处:
1)它将作为额外的备份存储空间
2)如果您不小心添加了错误,可以轻松返回上一个稳定版本。
3)如果您不小心添加了错误或破坏了某些内容 - 您可以看到当前源代码与上次提交的源代码之间的差异 - VCS将以非常合适和示范的方式向您展示差异 - 以及您将轻松找到导致错误的更改或问题。这个非常有用。
4)您可以在提交前轻松查看修改。相信我,你可能会感到惊讶:)有时你只是自动做某事,不是很想,或者你可能会感到疲倦。在这种情况下,如果您稍后查看修改 - 您可以找到错误或错误的代码。
答案 1 :(得分:2)
我认为,VCS系统在网络环境中更有用,因为“任何人”都可以轻松编辑网站。
我曾经做过的每一个网络项目都遭受了“太多厨房厨师”综合症的困扰,最终有人去添加一个小功能,然后你回头看看并发现他们最终改写了网站的一大块,打破了别的东西。在VCS中拥有一堆版本可以对这些类型的错误进行故障排除,因为这些错误很接近。
此外,VCS使Web应用程序的部署变得轻而易举。标记VCS中所有页面的生产版本,然后只检查Web服务器。比一个拥有已更改文件列表和FTP客户端的人的“传统”方法要好得多。
答案 2 :(得分:2)
我发现源代码控制的另一个好处是它可以帮助您更有条理。在使用SCM之前,我会跳转进行小的更改。随着SCM和合理签入的需要,我在写作中变得更加考虑和结构化。
答案 3 :(得分:2)
我迟到了这一点,但只是想在列表编码器中添加一些子弹:这些是SVN让我受益的方式。
Nightcoder写道:
1)...备份存储。
2)...返回上一个稳定版本。
3)...查看当前源代码与上次提交的源代码之间的差异....
<强> 此外: 强>
4)通过SVN日志中的单个简短评论,您可以看到谁提交了更改,时间和原因。
5)将'$ id $'添加(根据您的选择)到文件本身是一个很棒的参考点。
6)不再筛选带有日期戳的备份来查找工作副本(另见,2)。
7)将您的代码轻松添加到Google代码中,与全世界分享或获取其他人的帮助。
8)正如其他人所说,组织,组织,组织。
9)在多用户环境中,当前版本的同步非常简单。
<强> 缺点: 强>
总的来说,本周非常值得您积极参与设置和学习系统。
答案 4 :(得分:1)
即使您单独工作,也必须使用版本控制系统,因为它可以让您保留更改的历史记录 - 这反过来又让您可以自由地进行实验,因为您知道您可以随时返回以前的工作版本。
我现在甚至对小于100行的“测试”项目使用subversion。你永远不会知道:)
答案 5 :(得分:0)
另一个原因:在工作环境之间共享。
我使用svn不仅用于我的重要项目,还用于丢弃沙盒脚本(我是唯一的编码器)。对于项目我有不同的存储库,然后是“沙箱”存储库。所有的一次性代码都在那里。
原因是,我编辑来自不同地方的代码 - 工作和家庭 - 这使得共享变得容易。没有通过档案发送电子邮件或在某处加载它们。在工作中,我只是承诺,回家,更新并继续。你不应该为重要的项目做这件事(只提交工作脚本)。如果我忘了在一天结束时提交,我至少可以处理代码,然后在第二天将编辑合并在一起。
我这样做不仅是为了代码,也是为了对我很重要的各种(小)文件。如果我在某个地方写评论我很自豪,但我知道会在一周内被遗忘,我会将副本保存到沙盒中(这是一种共享的“我的文档”) - 出于怀旧的原因。同样的故事,头脑风暴,想法,待办事项列表等。
vcs还有很多其他优点:
答案 6 :(得分:0)
您可以在新分支上尝试新功能,如果它不能按预期工作,您可以放弃测试分支并恢复原来的工作分支,对于编码人员非常方便。