使用VCS会帮助我成为网络开发者吗?

时间:2009-05-21 22:22:03

标签: svn version-control

我正在考虑尝试使用subversion之类的VCS来管理我的下一个项目,但我不确定是否会为我作为Web开发人员带来任何实际好处。据我了解,VCS的一个主要好处是一群人可以同时处理一个项目。

关于这个主题的

Reading material似乎pretty one sided

  

“使用版本控制系统是一个   绝对必须为开发者   项目超过几百行   代码“

......我感觉它可能成为一件苦差事,没有多少好处。

我在本地网络上的开发服务器上工作,因此任何数量的人都可以处理这些文件。如果有人需要远程访问,他们使用FTP。现代版本控制系统会给我什么呢?

7 个答案:

答案 0 :(得分:17)

在您的情况下,它可以为您提供至少四项额外的好处:

1)它将作为额外的备份存储空间 2)如果您不小心添加了错误,可以轻松返回上一个稳定版本
3)如果您不小心添加了错误或破坏了某些内容 - 您可以看到当前源代码与上次提交的源代码之间的差异 - VCS将以非常合适和示范的方式向您展示差异 - 以及您将轻松找到导致错误的更改或问题。这个非常有用。
4)您可以在提交前轻松查看修改。相信我,你可能会感到惊讶:)有时你只是自动做某事,不是很想,或者你可能会感到疲倦。在这种情况下,如果您稍后查看修改 - 您可以找到错误或错误的代码

祝你好运!

答案 1 :(得分:2)

我迟到了这一点,但只是想在列表编码器中添加一些子弹:这些是SVN让我受益的方式。

Nightcoder写道:

1)...备份存储。

2)...返回上一个稳定版本。

3)...查看当前源代码与上次提交的源代码之间的差异....

<强> 此外:

4)通过SVN日志中的单个简短评论,您可以看到谁提交了更改,时间和原因。

  • 不对代码中的评论进行筛选(除非您愿意)。
  • 为什么?因为每次提交时,都会要求您对更改进行评论。记录下沉默的评论。

5)将'$ id $'添加(根据您的选择)到文件本身是一个很棒的参考点。

  • 它是否与桌面版本的ID相匹配?
    • 不再需要对两个(或3个或4个!)同名文件进行差异检查。
  • 它是否与您在其他服务器/不同域上运行的同名文件的ID匹配?
    • 否?然后一个服务器/域没有使用最新版本 - 修复它。
  • $ id $在x / html文档元标记中生成一个方便的“版本”引用。

6)不再筛选带有日期戳的备份来查找工作副本(另见,2)。

7)将您的代码轻松添加到Google代码中,与全世界分享或获取其他人的帮助。

  • Google代码目前使用的是SVN。

8)正如其他人所说,组织,组织,组织。

  • 在使用SVN之前,我觉得我组织得很好。我错了。

9)在多用户环境中,当前版本的同步非常简单。

  • 这种内置同步系统可能是组织的主要原因 在多开发人员环境中发誓这样的系统。

<强> 缺点:

  • 除非您以终端语言为导向,否则学习曲线可能相当陡峭。该术语与Perl / Java / PHP /等不同。
  • 初始设置可能令人困惑。阅读和遵循指示是必不可少的。

总的来说,本周非常值得您积极参与设置和学习系统。

答案 2 :(得分:2)

我认为,VCS系统在网络环境中更有用,因为“任何人”都可以轻松编辑网站。

我曾经做过的每一个网络项目都遭受了“太多厨房厨师”综合症的困扰,最终有人去添加一个小功能,然后你回头看看并发现他们最终改写了网站的一大块,打破了别的东西。在VCS中拥有一堆版本可以对这些类型的错误进行故障排除,因为这些错误很接近。

此外,VCS使Web应用程序的部署变得轻而易举。标记VCS中所有页面的生产版本,然后只检查Web服务器。比一个拥有已更改文件列表和FTP客户端的人的“传统”方法要好得多。

答案 3 :(得分:2)

我发现源代码控制的另一个好处是它可以帮助您更有条理。在使用SCM之前,我会跳转进行小的更改。随着SCM和合理签入的需要,我在写作中变得更加考虑和结构化。

答案 4 :(得分:1)

即使您单独工作,也必须使用版本控制系统,因为它可以让您保留更改的历史记录 - 这反过来又让您可以自由地进行实验,因为您知道您可以随时返回以前的工作版本。

我现在甚至对小于100行的“测试”项目使用subversion。你永远不会知道:)

答案 5 :(得分:0)

您可以在新分支上尝试新功能,如果它不能按预期工作,您可以放弃测试分支并恢复原来的工作分支,对于编码人员非常方便。

答案 6 :(得分:0)

另一个原因:在工作环境之间共享。

我使用svn不仅用于我的重要项目,还用于丢弃沙盒脚本(我是唯一的编码器)。对于项目我有不同的存储库,然后是“沙箱”存储库。所有的一次性代码都在那里。

原因是,我编辑来自不同地方的代码 - 工作和家庭 - 这使得共享变得容易。没有通过档案发送电子邮件或在某处加载它们。在工作中,我只是承诺,回家,更新并继续。你不应该为重要的项目做这件事(只提交工作脚本)。如果我忘了在一天结束时提交,我至少可以处理代码,然后在第二天将编辑合并在一起。

我这样做不仅是为了代码,也是为了对我很重要的各种(小)文件。如果我在某个地方写评论我很自豪,但我知道会在一周内被遗忘,我会将副本保存到沙盒中(这是一种共享的“我的文档”) - 出于怀旧的原因。同样的故事,头脑风暴,想法,待办事项列表等。

vcs还有很多其他优点:

  • 从任何地方快速访问到你的东西(如果它是公共服务器)。如果你只需要阅读代码,浏览器就足够了(如果服务器支持它)。
  • 在服务器上托管。我个人计算机中的所有磁盘迟早都会死掉,通常需要多年的脚本。是的,我敢肯定,在地窖里的某个地方是cds或zip磁盘上的备份,而且我也确定我再也找不到它们了(也是,我不再拥有一个zip驱动器,而你知道cds的寿命...... )。 cvs-servers都有raid,专业管理员,备份......如果公司破产你至少在本地有一份代码。
  • 您可以在提交时运行自动脚本。我从未使用过这种强硬的东西。
  • 保持代码库正常工作。您的应用程序有3个副本:本地,存储库和Web服务器。如果您在轮班结束时没有完成工作,请不要提交,因此存储库不包含损坏的代码。如果您进行了所有更改和测试,请将它们导出到Web服务器。这样,(在一个完美的世界中)网络服务器永远不会托管破碎的代码。
  • 授予/撤消对他人的访问权限。您也可以使用ftp执行此操作,但这样可以更轻松地跟踪他们所做的更改。