Chinaunix首页 | 论坛 | 博客
  • 博客访问: 717912
  • 博文数量: 33
  • 博客积分: 10012
  • 博客等级: 上将
  • 技术积分: 1365
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-15 09:11
文章分类
文章存档

2009年(10)

2008年(23)

我的朋友

分类: 项目管理

2008-06-18 21:52:58

      今天公司同事讨论到版本控制器vss,有感而发。
      提到版本控制器,很多人会想到vss(个人认为很垃圾,安全性很差),cvs,subversion等等。这些版本控制器都是集中式版本控制系统,我以subversion为例说说集中式版本控制器的不便。

     Subversion第一点很不爽,如果我想把某个已有的项目使用Subversion来进行管理,首先要建立一个仓库,然后把文件import到仓库,最后再check out,然后在check out的工作目录中进行修改。为什么要那么麻烦?我只是自己一个人进行开发而已,为什么非要有一个仓库?此其一,只是不爽而已。

    第二点使我没有办法使用Subversion、不得不寻找其他的工具的原因是,我需要在几台电脑上同时进行开发,我希望在每一台电脑上都能使用版本控制工具。所以,我需要有一个放在优盘上的仓库,这个时候使用Subversion就有问题了。一来当你提交时你必须得把优盘插上电脑,每次提交都得插上;二来仓库在优盘上的位置不能改变,否则路径改变的话使用file协议拷贝出来的工作目录就废了。我查过svn propset的帮助,似乎可以改变仓库地址,但我不会,网上也没有搜到。当然了,公司的话都会配一个专门的代码服务器来存储这些代码,上面的问题在公司内部可能不会产生。

    第三就是前面的补充,如果你出去出差,或者把代码带回家或者其它什么原因,没办法连到公司提供的代码管理器上,那么也就意味着你没办法使用代码管理器来管理你的代码,也就意味着你每天要保存代码。但几经修改的代码其实从来没有作版本控制。

看了分布式版本管理器的介绍,上面的问题都可以解决。感觉分布式版本管理器:可以在本地提供版本控制功能。在原有工具的基础上增加了一种方便的仓库合并功能。本地的版本合并到代码服务器中。

当然了,集中式代码管理器也不是一无是处,适合有专门代码仓库管理人员,并且对代码管理比较严格,不允许把代码带出去的公司使用。而分布式的代码管理器比较适合松散的协作性开发,譬如开源项目,linux的内核就是使用的git(一个分布式代码管理器)管理的。
目前比较有名的几个分布式代码管理器。
  Git 中文教程

Mercurial



它在 svn 的基础上增加了一些分布式管理的东西。


个人比较了下,觉得Mercurial和Bazaar客户端工具多点
  1. Mercurial 的乌龟版:

  2. Bazaar 的乌龟版:



另为什么我说vss比较垃圾的原因,就是它的安全性太差。目录都共享了,等于代码也共享了。

VSS里的用户权限设置跟本只是好看而已,一无是处!
(方法一)
所有的用户信息(包括密码)存在“vss数据库所在的文件夹\data\um.dat”.只要用一个已知um.dat账号信息替换它就能登入了。
(方法二)
还有一个更为简单的方法,也是VSS最大的BUG,都不用修改用户信息文件!
想用哪个用户登入都可以,不用密码!(包括管理员(Admin)账号)。
以Admin登入为例,具体方法如下:
1,新建Windows用户,名称为Admin。
2,以Admin登陆Windows。
结果打开vss,默认就以Admin为账号登陆进去了,不用输入密码!(注:VSS的Admin当然是设置了密码了)
(方法三)

the secret is to hack the um.dat file to remove the Admin password

from offset 80 the bytes are (all numbers are hex)

0:80  55 55 bc 7f 41 64 6d 69 6e 00 00 00 00 00 00 00
0:90  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0:a0  00 00 00 00 90 6e 00 00 a8 01 00 00 00 00 00 00

Just load the um.dat file into a hex editor and change the bytes from =
offset 80 to exactly what is shown above. When the SourceSafe admin tool =
starts it believes that the admin password has never been set.

the hex values above are taken from a 'virgin' um.dat file

of course, you didn't get this from me....and ALWAYS backup first (just =
in case I'm wrong)
用中文解释一下:

如果忘记了密码,打开你vss数据库所在的文件夹,打开data目录,找到um.dat文件,用hex编辑器打开编辑它,从offset 80的55 55 开始将值改为如上文所述的样子,然后保存,这样um.dat文件就回到了初始状态(virgin ?  :)),然后打开vss admin,用admin用户登录,不需要密码了!



阅读(1881) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~