您的位置:首页 > 其它

svn - 基础知识和创建仓库

2013-11-05 14:38 387 查看
一、基础知识

1、版本号(svn此是以仓库号为标识的,修改一个文件就会提升一个版本)

2 、标签(一组文件或目录的好听的别名,可以通过这个别名checkout)

3、主干和分支(trunk和branch)
分支:就是主干的一个拷贝,只是分支在subversion中拷贝得更有效率。

“延迟拷贝“,指的是首先拷贝的是原主干的链接,当文件修改时才会记录为相对原文件的修改。

4、合并

在分支上的修改可以合并到其他分支或者主干上去。

5、加锁策略

1) 严格锁 : 只能读。如果想改,需要版本管理系统的支持
2) 乐观锁 : 都能读写。但是它不会接收自从上次checkout后被更新的文件。它会叫你首先更新本地的文件,当然svn不会覆盖你的代码,而是尝试合并,如果发现没有冲突,就会先将你的代码更新(把非你修改的部分导入你的本地代码),然后只提交你改动的部分。反之,更新后的源码会出现警告,需要手工解决冲突。

二、命令行创建仓库

1、遇到的问题
     -   直接在硬盘上新建一个目录 E:/repositories/sesame/trunk

     -   使用 svn import -m "message" . file:///E:/repositories/sesame/trunk将当前目录下的所有文件和目录导入仓库

报错:

svn: E180001: Unable to connect to a repository at URL 'file:///E:/repositories/sesame/trunk'

svn: E180001: Unable to open an ra_local session to URL

svn: E180001: Unable to open repository 'file:///E:/repositories/sesame/trunk'

            

解决方法:

      -  不能直接用这样的方式新建目录。而是要用

           
svnadmin create E:/repositories


 创建一个仓库。然后将导入的文件或者目录通过上述命令导入版本库中。理由很简单,如果仓库不交由svn管理,不可能完成svn的功能。

 将A目录下面的文件和子目录导入仓库sesame的trunk目录

E:\A>svn import -m "helloworld text" . file:///e:/svn-repos/sesame/trunk
Adding         B
Adding         helloworld.txt
Committed revision 1.

其中A目录结构如下

A -
    |- B
    |- helloworld.txt

sesame是虚拟目录,在e:/svn-repos中是没有的。

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  subversion