测试人生的道路是曲折的,前途是光明的!我将一如即往

发布新日志

  • Subversion客户端安装及使用指南

    2007-05-31 15:42:43

    1.1.浏览器作为客户端工具浏览源码仓库

    Subversion有两种运行方式,基于Apache Http Server的运行方式的好处就是可以使用浏览器作为客户端工具浏览源码仓库

    打开浏览器,在地址栏内输入服务器仓库地址,系统会提示输入用户名密码(如图1),输入正确的用户名密码后,即可浏览项目相关的工作产品了(如图2)

    这个功能对于不参与实际开发工作又需要及时了解项目进展情况的相关人员(如部门经理,技术总监,总经理等相关人员)来说特别方便.

     

     

     

    (图1                           (图2

    1.2.安装客户端配置工具TortoiseSVN

    安装客户端工具TortoiseSVN\\devnotesvr\共享软件\配置管理工具\SVN\Client\ TortoiseSVN-1.3.1.5521-svn-1.3.0),安装完成后,你会发现在任何目录下,鼠标右键菜单增加了SVN Checkout…… TortoiseSVN两个菜单项

    (图1                                  (图2

    1:在任何目录的空白处点击鼠标右键,定位到TortoiseSVN出现的菜单

    2:在SVN工作拷贝的目录或文件下,点击鼠标右键,定位到TortoiseSVN出现的菜单

    1.3.TortoiseSVN功能简介

    1、 SVN Checkout(SVN取出)
    点击SVN Checkout,弹出检出提示框,在URL of repository输入框中输入服务器仓库地址,在Checkout directory输入框中输入本地工作拷贝的路径,点击确定,即可检出服务器上的配置库。

    2、 SVN Update(SVN更新)
    如果配置库在本地已有工作拷贝,则取得最新版本只是执行SVN Update即可,点击SVN Update,系统弹出更新提示框,点击确定,则把服务器是最新版本更新下来

     

    3、 Import(导入)
    选择要提交到服务器的目录,右键选择TortoiseSVN----Import,系统弹出导入提示框,在URL of repository输入框中输入服务器仓库地址,在Import Message输入框中输入导入日志信息,点击确定,则文件导入到服务器仓库中。

     

    4、 Add(加入)
    如果有多个文件及文件夹要提交到服务器,我们可以先把这些要提交的文件加入到提交列表中,要执行提交操作,一次性把所有文件提交,如图,可以选择要提交的文件,然后点击执行提交(SVN Commit,即可把所有文件一次性提交到服务器上

     

    5、     Resolving Conflicts(解决冲突)
       
    有时你从档案库更新文件会有冲突。冲突产生于两人都修改文件的某一部分。解决冲突只能靠人而不是机器。当产生冲突时,你应该打开冲突的文件,查找以
    <<<<<<<开始的行。冲突部分被标记:
    <<<<<<< filename
    your changes
    =======
    code merged from repository
    >>>>>>> revision
    Subversion
    为每个冲突文件产生三个附加文件:
    filename.ext.mine
    更新前的本地文件。
    filename.ext.rOLDREV
    你作改动的基础版本。
    filename.ext.rNEWREV
    更新时从档案库得到的最新版本。
    使用快捷菜单的
    编辑冲突Edit Conflict 命令来解决冲突。然后从快捷菜单中执行已解决Resolved 命令,将改动送交到档案库。请注意,解决命令并不解决冲突,而仅仅是删除filename.ext.mine and filename.ext.r* 文件并允许你送交。

    6、 Show-Log(显示日志)
       
    点击Show-Log,系统弹出日志信息,包括版本号,作者,更新日期,日志信息(如图),点击日志信息框的Statistics按钮,系统显示统计信息,subversion有三种统计选择:Statistics(如图),Commits by week(如图),Commits by author(如图)。

      

     

    7、 Repo-Browser(文件库浏览器)
    点击Repo-Browser,系统弹出仓库的树状目录,可以很清楚地浏览整个仓库目录结构,如图:

     

     

    8、 Check for Modifications(检查更新)
    点击Check for Modifications,系统列表所以待更新的文件及文件夹的状态,如图

    9、 Revision Graph(版本分支图)
    查看文件的分支,版本结构,可以点击Revision Graph,系统以图形化形式显示版本分支,如图

      

    10、             Update To Revision(更新至版本)
       
    如果想查找某一个版本的内容,可以选择Update To Revision,在提示框内输入指定的版本号,即可更新到指定的版本,如图

      

    11、             Rename(改名)
        SVN
    支持文件改名,点击Rename,弹出文件名称输入框,输入新的文件名称,点击确定,再把修改提交,即可完成文件改名

    12、             Delete(删除)
        SVN
    支持文件删除,而且操作简单,方便,选择要删除的文件,点击Delete,再把删除操作提交到服务器,

    13、             Moving(移动)
       
    选择待移动的文件和文件夹;按住右键拖动
    right-drag 文件(夹)到跟踪拷贝内的新地方;松开左键在弹出菜单中选择move files in Subversion to here

    14、             Revert(还原)
       
    还原操作,如刚才对文件做了删除操作,现在把它还原回来,点击删除后,再点击提交,会出现如上的提示框,点击删除后,再点击Revert,即已撤销删除操作,如果这时候点击提交,则系统弹出提示框:没有文件被修改或增加,不能提交,如图

           

    15、             Branch/Tag(分支/标记)
       
    当需要创建分支,点击Branch/Tag,在弹出的提示框中,输入分支文件名,输入日志信息,点击确定,分支创建成功,然后可查看文件的版本分支情况,如图,

      

    16、             Switch(切换)
       
    文件创建分支后,你可以选择在主干工作,还是在分支工作,这时候你可以通过Switch来切换。

    17、             Merge(合并)
       
    主干和分支的版本进行合并,在源和目的各输入文件的路径,版本号,点击确定。系统即对文件进行合并,如果存在冲突,请参考冲突解决。

    18、             Export(导出)
       
    把整个工作拷贝导出到本地目录下,导出的文件将不带svn文件标志,文件及文件夹没有绿色的
    符号标志。

    19、             Relocate(重新定位)
       
    当服务器上的文件库目录已经改变,我们可以把工作拷贝重新定位,在 To URL输入框中输入新的地址,如图:

           

    20、             Add to Ignore List(添加到忽略列表)
       
    大多数项目会有一些文件不需要版本控制如编译产生的
    *.obj, *.lst,等。每次送交,TortoiseSVN提示那些文件不需要控制,挺烦的。 这时候可以把这些文件加入忽略列表。

    21、             SVN其它相关功能
       
    客户端修改用户密码:
       
    打开浏览器,在地址栏内输入http://192.168.1.225/cgi-bin/ChangePasswd,启动客户端修改用户密码的界面(如图1),输入正确的用户名,旧密码,新密码(注意密码的位数应该不小于6,尽量使用安全的密码),点击修改即可.

  • Subversion安装及配置

    2007-05-31 15:39:15

    1.   Subversion简介

    Subversion是一个自由、开放源码的版本控制系统。它是一个通用系统,可用来管理任何类型的文件, 其中包括程序源码。

    它实现绝大部分CVS的已有功能;充分考虑现有的CVS用户,在使用方式上模仿CVS,同时开发了一系列工具,使得基于CVS的项目能够顺利迁移到Subversion上。和CVS相比,它有很多优点,例如目录版本控制、不可分割的提交、一致的数据处理方式和更有效率的分支与标记等。


    2.   Subversion服务端配置

    2.1.安装

    安装apache http server和安装Subversion(先安装apache http server再安装subversion,则可以省去一些配置步骤)。

    2.2.配置

    1.    检查$\apache group\apache2\modules下是不是已经有了mod_dav_svn.somod_authz_svn.so,检查$\apache group\apache2\modules下是不是已经有了libdb42.dll如果先安装apache http server再安装subversion,则可以省去这一步

    2.    搜索$\apache group\apache2\conf\httpd.conf配置文件中的#LoadModule dav_fs_module modules/mod_dav_fs.so,把前面的注释#去掉;并检查LoadModule配置节的末尾是不是有了LoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.so如果先安装apache http server再安装subversion,则这一步只需检查注释#是否去掉)

    3.    建立源码库及Subversion数据库
        
    在服务器硬盘上建立源码库的根目录,例如:E:\SVN
    , E:\SVN之下建立一个新的目录,例如TestRepository作为我们的测试源码库
        
    建立Subversion数据库,当前版本Subversion支持两种格式数据库,一种是FSFS,另外一种是BDB Berkeley Database)。在命令行下输入svnadmin create --fs-type bdb TestRepository建立BDB格式的数据库(确保当前目录已经切换到E:\SVN\),在命令行下输入svnadmin create --fs-type fsfs TestRepository建立FSFS格式的数据库(确保当前目录已经切换到E:\SVN\)。建好数据库以后,到E:\SVN\TestRepository下看看是不是多了很多目录和文件,可以研究一下这些文件,对理解Subversion有帮助,但是不要试图直接修改这些文件。

    4.    修改相关的配置文件及建立用户帐号:
       
    打开$\apache group\apache2\conf\httpd.conf配置文件,在文件的末尾加入以下语句:
    <Location /svn>
       DAV svn
         SVNParentPath E:\SVN
         AuthType Basic
         AuthName "Subversion repositories"
         AuthUserFile passwd
         #AuthzSVNAccessFile svnaccessfile
         Require valid-user
    </Location>
       
    这里建立了一个虚拟目录http://yourServer/svn/,所有的Subversion源码仓库都在这个虚拟目录中,并且使用
    passwd文件中username/password(用户名/密码)列表访问http://yourServer/svn/
       
    在命令行下切换到$\apache group\apache2,执行bin\htpasswd -c passwd <username>,这里<username>是你想要加入的用户名,比如doudou。执行这个命令成功以后就会在bin目录下建立一个passwd文件,之后如果再加入新的用户和更改已有用户的密码,执行bin\htpasswd passwd <username>即可

    5.    重启Apache服务,在浏览器地址栏中输入 http://YourServer/svn/TestRepository,输入用户名密码,okSubversion现在已经可以正常工作了。

    2.3.Subversion用户及权限管理

    首先解释一下Apachehttpd.conf文件里加入的配置信息用途:

    <Location /svn>

    说明我们所有的代码仓库在/svn这个虚拟目录下

    DAV svn

    说明Apache会使用svn这个module来解析这个虚拟目录

    SVNParentPath e:\SVN

    说明所有的代码仓库都在本地硬盘的e:\SVN

    AuthType Basic

    使用最基本的认证校验,用户名/密码

    AuthName "Subversion repositories"

    说明在认证对话框弹出的时候,对话框的标题显示,你可以把它修改成你想要的任何提示信息,比如:AuthName "Warning"等等

    AuthUserFile passwd

    说明我们使用的access list文件的名字,在上一讲中我们建立的文件名字是passwd,所以这里是passwd。如果你建立的文件名字是其他的,这里要作相应的改动

    AuthzSVNAccessFile

    说明svn自己控制的access list文件,这个文件很重要,可以丰富svn的安全配置

    Require valid-user

    说明只有输入正确的用户名/密码才能访问

    上述的配置只能是最简单的安全配置,如果要拥有更强大的安全配置,就需要加入一些东西了。比如:对于代码仓库里面某些目录还有更细致的访问控制,就需要AuthzSVNAccessFile文件了,去掉#AuthzSVNAccessFile svnaccessfile这一行前面的注释。Apache首先会使用passwd校验用户名和密码,然后会认证信息传给SubversionAuthzSVNAccessFile模块,由这个模块作更进一步的权限控制。

    假设服务器文件库结构如下:

    首先我们来新建一个文件svnaccessfile,内容如下:

    [groups]

    HomeInfo = hlb,zrr

    Tender = shy,hjx

    TZGW2004 = ylm,zhh

    [/]

    admin = rw

    [/share]

    * = r

    [/HomeInfo]

    @HomeInfo = rw

    [/Tender]

    @Tender = rw

    [/TZGW2004]

    @TZGW2004 = rw

    我们定义了四个组,每个组代表项目组,每个组里面的帐号为项目组成员帐号,然后把每个项目配置库的权限分配给每个项目组成员。

    [/]

    admin = rw

    注意这里的[/],表示是对根目录下的所有代码仓库赋予权限。接着是

    [/share]

    * = r

    意思是对于公共目录所有的用户开放可读的权限;

    [/HomeInfo]

    @HomeInfo = rw

    [/Tender]

    @Tender = rw

    [/TZGW2004]

    @TZGW2004 = rw

    注意这里对于每个组,我们指定了目录路径,而不是对于整个代码仓库

Open Toolbar