现在的位置: 首页产品技术>正文
文档版本控制最人性化方案VisualSVN Server+TortoiseSVN
2009年04月04日 产品技术 暂无评论

以前搞开发用过VSS,后来接触过CVS,可能是没有经过系统培训,一直没有用得好...

最近,由于网站开发需要,以及自己电脑上的文档管理需要,再次想起版本控制的问题,经过了解发现SVN是一个好的解决方案,但是配置与命令式界面感觉不太人性化,无意中发现服务端的有支持WIN32的VisualSVN Server,客户端有TortoiseSVN,我把这两个一起使用,发现是一个很不错的方案。

http://www.visualsvn.com/

http://tortoisesvn.net/

http://tortoisesvn.net/docs/nightly/TortoiseSVN_zh_CN/index.html

有了以上方案,再结合以下一些技巧,真是棒极了

1、版本库的建议

layout

  • 一个公司或者部门建立一个仓库,项目存放在目录里最好,这样可以实现多个项目之间进行复制,比较,合并。
  • 建议每个项目下面建立三个目录,分别是Trunk、Branches、Tags,其中Trunk存放开发主线,Branches存放分支,如:定制项目,特殊使用项目等,Tags里存放是各种发布版本。以下是我摘抄网上使用分享:
  • 需求一:有一个客户想对产品做定制,但是我们并不想修改原有的svn中trunk的代码。

    方法:
    svn copy svn://server/trunk svn://server/branches/ep -m "init ep"

    用svn建立一个新的branches,从这个branche做为一个新的起点来开发

    需求二:
    产品开发已经基本完成,并且通过很严格的测试,这时候我们就想发布给客户使用,发布我们的1.0版本

    方法:

    svn copy svn://server/trunk svn://server/tags/release-1.0 -m "1.0 released"

    用svn建立一个新的Tags,如:Release-1.0.0。

    咦,这个和branches有什么区别,好像啥区别也没有?
    是的,branches和tags是一样的,都是目录,只是我们不会对这个release-1.0的tag做修改了,不再提交了,如果提交那么就是branches

    需求三:
    有一天,突然在trunk下的core中发现一个致命的bug,那么所有的branches一定也一样了,该怎么办?

    方法:

    svn -r 148:149 merge svn://server/trunk branches/ep

其中148和149是两次修改的版本号。

需求四:

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

方法:

1、如果没有版本控制的文件,选中后,右键点击 “ Add to Ignore List(添加到忽略列表)”

2、如果已经是版本控制的文件,选中后,右键点击 “deleted and  Add to Ignore List(删除并添加到忽略列表)”

好了,今天就分享到这里,以后有新的体会再追加...

附录:svn命令行使用说明
====================

0、查看帮助

命令:   svn help

1、同步(checkout)服务器数据到本地

命令:   svn checkout <url> [directory]
svn co <url> [directory]

例:把 https://svn.test.cn/book/network/ 目录同步到本地的 /usr/local/svn/book/network 目录

# cd /usr/local/svn/book
# svn checkout https://svn.test.cn/book/network/
...
(R)eject, accept (t)emporarily or accept (p)ermanently? t
...
Password for 'wandering': <回车>   # wandering是我当前登录系统的帐号
Authentication realm: <https://svn.test.cn:443> book Subversion Repository
Username: jack
Password for 'jack': <password>
...

2、提交(commit)本地文档到服务器

命令:   svn commit -m "" [directory|file]
svn ci -m "" [directory|file]

例:把 /usr/local/svn/book/network/tcpip.txt 提交到服务器,前提是服务器上已经有此文件。

# cd /usr/local/svn/book/network/
# svn commit -m ""  # -m是记录的log信息,可以为空

一般情况下,只要在需要更新的数据文件所在的目录执行 svn ci -m "" 即可。

3、更新(update)服务器数据到本地

命令:   svn update [directory|file]
svn up [directory|file]

例:把 https://svn.test.cn/book/network/ 目录中的内容更新到本地

# cd /usr/local/svn/book/network
# cd update

以上是更新到最新版本,如果要更新到旧的指定版本,按以下命令,其中456就是版本号

svn up -r 456

4、查看日志

命令:   svn log [directory|file]

例:查看 /usr/local/svn/book/network 目录的修改日志

方法一:

# cd /usr/local/svn/book/network
# svn log

方法二:

# svn log /usr/local/svn/book/network

5、增加(add)本地数据到服务器

命令:   svn add <directory|file>
作者: 蔡文卫 Leo@yicike.com
版权所有:亿赐客比较购物搜索网(http://www.yicike.com/)

原创文章,转载请注明: 转载自读思客

本文链接地址: 文档版本控制最人性化方案VisualSVN Server+TortoiseSVN

给我留言

留言无头像?


×
腾讯微博