zoukankan      html  css  js  c++  java
  • 用GIT弥补早期版本管理工具的不足

    关键词: GIT,SVN,VSS,VCS,版本控制,版本管理,软件工程,项目管理,配置管理,TortoiseMerge

        早期的版本管理工具功能有限,但是由于迁移成本、风险和管理层意识等导致目前很多项目还在使用它。对于这种情况我们除过抱怨还可以去做一些力所能及的改变,这种改变可以提升自己的效率并且减少失误。

        下面我就使用目前自己最喜欢的版本管理工具GIT来弥补项目的版本管理工具VSSVSS是一个比较早的版本管理工具,虽然MS更新过好多年,但是现在已经放弃更新。且vss从版本控制的思想上来说属于早期的那种。版本控制系统(VCS)从设计原理上来说有两种

    l  锁定——修改——解锁  (独占式)

    l  获取——修改——合并  (共享式)

        VSS早期是根据独占式这种原理设计出来的,尽管现在升级已经支持共享式,但是其支持程序也非常有限,使用起来也不给力,几乎没有使用者。SVN是共享式VCS的代表,非常好用的一个版本控制软件。不过他是集中式的,暂且不用讨论。这里我要使用的git是一个分布式的VCS,这种可以说是在共享式原理之后更优秀的一种设计理念。

        下面我就使用GIT的分布式管理和VSS的集中独占式管理一起来管理项目。这样我本地的git就弥补了服务器端VSS的一些不足。此时对我来说版本管理是git,代码托管是vss。因为本地使用了git来做版本管理,所以在提交服务的时候只会占用看不出的时间(很短的一瞬间)来锁定文件。这样二者的结合可以以假乱真的达到svn这种集中共享式的管理效果。

        首先从vss库中取得代码到本地目录,本地目录作为工作区。然后在本地的vss工作区建立git的版本库,同时作为git的工作区。Git的版本库是在工作区根目录下,而vss的管理是散落在文件列表中。这样可以利用git管理,只是在提交服务器的时候利用vss即可,只需要注意在提交的时候工作区文件和服务器文件比较一下看是不是有变化。

        并且为这种琐碎的事情开发了一个工具来解决。

        下图是一个工具箱。用来解决繁琐的操作

     用GIT弥补早期版本管理工具的不足


        下面这张图是本地和VSS交互的工具。这个工具是如何运作的呢。使用git之后,在本地开发的时候不用锁定代码文件,也不用专门去记录修改了那些代码文件。只需要自行修改即可,当修改结束需要提交代码到服务器的时候,使用gitdiff或者commit都能查看到本地修改过的文件,得到这个文件列表然后放置在下面工具的【文件列表】中(git得到的文件列表正好是工作区根目录开始的文件路),然后点击“checkout”就会将所有的文件从vss的库中检出(保留本地修改)。

    用GIT弥补早期版本管理工具的不足

         Undo checkoutcheckin都是调用VSS接口实现同VSS相同的功能。不过这里的Diff工具集成了TortoiseMerge工具,这个diff工具是目前非常好使且交互挺好的一个工具,这个工具比VSS带有的Diff工具更好用。

        这样就实现了本地GIT管理,远程VSS的开发模式。可以使用所有GIT分布式的优秀功能,包括本地DiffMergebranchtaglog等所有强大的工具都可以使用。增加个人开发能力,不过更应该要做的是建议完全取代VSS而转到GIT

        PS;一个对现存情况不满并且能够实施改进措施的工程师才是合格的工程师,这也是工程师的灵魂和可爱之处。共享GNU社区的一句话“shut up and show Them the code”。

        本文首发及归档地址:http://blog.sina.com.cn/s/blog_4a2100f801016w0q.html
  • 相关阅读:
    CSS选择器实现搜索功能 驱动过滤搜索技术
    js实现倒计时 类似团购网站
    SQL Server系统表sysobjects介绍与使用
    四种开机的奇葩方法 设置定时开机
    sass 使用小记
    flex 弹性布局
    margin padding width height left top right bottom 百分比
    vue中canvas 实现手势密码
    babel-polyfill(解决浏览器不支持es6的问题)和es6-promise(解决不支持promise的问题)
    Ajax fetch axios的区别与优缺点
  • 原文地址:https://www.cnblogs.com/chengn/p/2919192.html
Copyright © 2011-2022 走看看