1. svn 基本功能:

检出(Checkout):
  从版本库取出一个新版本。

提交(Commit):
   将对工作副本的修改发送给版本库。

更新(Update):
  下载最新版本库文件的记录。

锁定-修改-解锁:
  1. 一定时间段版本库的一个文件只允许一个人修改,直至解锁。
  2. 锁定(Get lock),解锁(Release lock)

还原(Revert):
  取消最近一次的操作(只针对客户端,服务端不做改动)。

更新到特定版本(Update to revision):
  本地文件副本,更新为服务器上的指定版本。

重命名(Rename):
  对已经纳入svn管理的文件进行重命名。

添加(Add):
  把文件添加到SVN,即将文件纳入SVN管理。

删除(Delete):
  对已近纳入SVN管理的文件进行删除。
清理(Clean up):
  SVN更新时,由于一些操作中断更新(磁盘空间不够等),可能会造成本地文件被锁定的情况,
  解决方法:
    1. 使用clean up来清除锁定。
    2. 若不是本目录,往上层目录寻找直至根目录。
    3. 有时,根目录都无法clean up,则另选目录重新Check out。
    4. 如果觉得第3种很麻烦,可以考虑这样的方法。
      其实SVN加锁会在.svn(隐藏文件)中生成一个名字叫lock的文件(无后缀),查找所有的,手工删除。
        然后再尝试更新,系统可能会提示某个.base文件无法访问。
      找到它,把相关的文件或其所在的目录删除,重新更新,工作量就小多了。

分支/基线(Branch/Tag):
  SVN的项目目录下,有3个子目录:trunk, branch, tag
    1. trunk: trunk目录是主目录,即工作目录。绝大部分提交、更新操作都发生在这个目录。
    2. branch: branch目录是分支目录,存放当前开发版本的分支版本。
    3. tag: tag目录是基线目录,存放已经发布的版本或者重要的基线目录。这个目录为只读。
           如果有bug需要修改,则需要创建基线目录的分支目录来修改。

重定位(Relocate):
  有时服务器的地址改变了,利用relocate来重新定位服务器的地址。

svn的版本号是如何迭代的?
  4个规则:
    1. 版本号从1开始迭代,每次提交使版本号增1.
    2. 每个受版本控制的文件有自己的版本历史,其第一个版本号为加入时版本库的版本号。
    3. 版本库的版本号 = 目前所有受版本控制的文件版本号的最大值。
    4. 版本库的版本号是连续的,文件版本号非连续。

Checkout和Export的差异?
  Checkout出的内容受版本控制,Export出的内容不受版本控制。

 

------------------------------------------------分隔符----------------------------------------------------

2.svn 环境搭建【http://blog.sina.com.cn/s/blog_a799b5d70101dw57.html】教程地址

开始:

第一步:下载SVN客户端程序TortoiseSVN并安装(不习惯英文操作界面的顺便在最底下下载一个语言包),下载地址tortoiseSVN下载<http://tortoisesvn.net/downloads.html>(由于系统是64位的,我下载的是TortoiseSVN-1.7.10.23359-x64-svn-1.7.7这个版本的,并安装在D:\Program Files\TortoiseSVN目录下。)

 

第二步:下载SVN服务器Subversion并安装,下载地址Subversion下载<http://sourceforge.net/projects/win32svn/files/>,这个后面要用来创建系统服务的(PS:别看地址上有个win32,不用管,64位照样安装。)

 

第三步:接下来创建一个系统服务,将SVN服务加入到系统服务中,由于win7的安全权限问题,安装系统服务时会出现“[sc] openSCManager 失败 5 拒绝 ”错误,建议使用命令行方法:打开cmd命令行窗口 输入sc create SvnService binPath= "D:/Program Files/Subversion/bin/svnserve.exe --service --root D:/svn"【特别注意:安装路径要与实际路径一致,Program Files&Program Files(X86)】其中SvnService表示将来的SVN服务的名字,而binpath表示的就是之前安装的Subversion,在其bin目录下有一个svnserve.exe文件的绝对路径。创建成功后可以到服务里去查看(win+R,输入services.msc回车,找到SvnService,将其属性设置为自动)。

  1. sc stop SvnService  --停止服务
  2. sc delete SvnService --删除服务
  3. 这是在cmd命令行下查看打开的端口:netstat -ano就看到3690端口是否打开<svn 默认端口为3690>


 

第四步:一切安装程序搞定之后就要创建版本控制库了,首先在D盘上建立了一个SVN的文件夹,跟进去,鼠标右击,选择TortoiseSVN-->在此创建版本库【create repository here】;然后点击确定即可,这样就创建好了一个版本控制库了。

 

第五步:现在就要开始修改一些配置文件了,打开刚刚创建的版本控制库进入到conf目录“D:\SVN\conf\”下,以记事本打开svnserve.conf文件,找到以下行#[general]以及#password-db = passwd,将其前面的#号都去掉,然后保存。

 

第六步:打开同一目录下的passwd文件,找到#[users],同样的去掉前面的#号,然后在其最下方增加自己需要的用户即可,可创建多个用户(以“用户名=密码”的结构,如“tom = m123”PS:不要引号)。

 

第七步: 最后就是来测试你的配置是否正确了,在一个空目录下点击鼠标右键,选择TortoiseSVN-->版本库浏览器,在URL输入框里输入 svn://127.0.0.1回车即可,如果能连接上,恭喜你,你已经能连上自己本地SVN服务器了,然而最重要的是看别人是否能连上你的SVN,即: 在另外一台机器上以同样的方法安装SVN,只是不用再创建版本控制库了,然后建一个空目录,跟进去,点击鼠标右键,选择SVN检出(SVN CheckOut),在最上面的URL栏里输入你想检索的SVN服务器所在机器的IP地址即可,若无误,恭喜……关于SVN的配置你已经全部完成了!

-------------------------分隔符--------------------------

【PS:搭建过程中遇到的问题】

1.无法打开本地svn,SVN提示:“由于目标机器积极拒绝,无法连接 的解决方法”

原因:由于binpath,create的时候安装路径填写错误,导致无法启动服务<Program Files&Program Files(X86)>

2.地址要输入:”svn://127.0.0.1“,用http会提示”由于目标机器积极拒绝,无法连接 的解决方法“