4. 配置用户
  1 vi /opt/svndata/repos/conf/pwd.conf
  输入以下内容:
  [users]
  username1 = password1
  username2 = password2
  可以添加多个,此为用户名密码对。
  5. 配置权限
  vi /opt/svndata/repos/conf/authz.conf
  指令简介:此配置文件采用“基于路径的授权”策略,中括号里指定路径,以下列出对各用户的授权。包括只读r,读写rw。没有列出的用户,则不允许访问。还可以对用户分组,具体请参考svn手册,以下是简单例子:
  [/opt/svndata/repos]
  user1 = rw
  user2 = r
  6. 使用import导入文件
  新建好的版本库是空的,需要导入工作目录。
  1 $ svnadmin create /usr/local/svn/newrepos
  2 $ svnimport mytree file:///usr/local/svn/newrepos/some/project
  但是在导入后,用来的目录树并没有转换成工作拷贝,为了开始工作,还是需要运行svn checkout导出一个工作拷贝。因为导入后,文件在版本库中是以特殊的形式存在db文件夹中的,不能以明文的方式查看。必须使用svn checkout导出工作副本(workcopy)才能以正常方式查看。
  1 svn checkout file:///usr/local/svn/newrepos/some/project workcopy
  7. 启动服务
  执行svnserve –d –r /opt/svndata/repos/ 启动服务, 以deamon方式运行。
  本系统采用svnserve方式, 这是小团队项目的推荐方法. 这种方法维护少, 配置简单.
  指令简介:此指令用于启动svn服务,-d指明以守护模式运行,svn自动在3690端口监听。3690是默认端口,可以使用“–listen-port=”或者“–listen-host=”来指定其它端口。-r选项用来指定svn服务的根目录,这样用户可以使用相对路径访问,而不用提供完整路径。
  使用以下命令检出:(svnserver方式)
  1 svn checkout svn://127.0.0.1/dir
  以上为示例。IP需要根据具体情况调整,dir为版本库路径,若在启动时已指定则可省略。
  版本库信息在版本库文件夹里,所以要删除版本库只需要删除版本库所在的文件夹即可。
  另外工作副本只是自己维护的文件夹,可以用Windows直接删掉,对别人没有影响。千万不要使用版本库的删除命令,否则版本库里的内容也会被删除。
  svn命令操作
  假设svn服务端上有如下库目录:
  不显示了。。。
  Steven在他的用户目录中有workplace目录,他想把DemoProject签出到他的workplace目录中,并进行操作:
  0、 进入workplace目录,使用checkout命令签出:
  cd workplace
  checkout DemoProject
  此时注意: 如果你的登陆的linux终端登陆用户和你的svn操作用户名同名(比如都是steven),则会提示你输入svn操作用户的密码,否则会先提示你输入linux终端用户密码,然后提示你输入svn操作用户名和密码
  进行完上面操作后, 在workplace目录中会出现DemoProject目录。
  1、 单个文件的操作(hello.cpp) 进入到目录DemoProject/src/demo
  A) 更新到本地
  svn up
  B) 修改后提交到库
  commit hello.cpp
  svn up
  C) 新增一个文件到库(进入src/include目录)
  svn up                  #更新本地工作目录
  svn add hello.h         #添加到库
  commit hello.h          #提交hello.h到库
  svn up                  #更新本地工作目录
  D)删除库上一个文件(进入src/demo目录)
  # svn del hello.cpp          删除库中的hello.cpp文件
  # commit hello.cpp          提交到库
  # svn up                   更新本地工作目录
  2、 文件夹的操作(这里需要考虑文件夹中还有子文件夹的情况)(src目录)
  A) 更新指定文件夹到本地(进入DemoProject目录)
  # svn up src //则src目录及目录下的所有子文件夹更新到DemoProject目录下
  B) 提交修改过的整个文件夹到库(修改了文件夹include
  # svn up
  # commit include
  # svn up
  C) 新增一个文件夹到库(DemoProject/lib)
  进入DemoProject目录:
  # svn mkdir lib             创建lib包
  # commit lib               提交到库
  # svn up                   更新本地工作目录
  D)删除库上一个文件夹(demo) 进入DemoProject/src/目录
  # svn up 更新本地工作目录
  # svn del demo 删除demo文件夹
  # commit demo 将删除提交到库
  3、 本地与库之间的操作
  A) 查看库上目录结构(查看DemoProject目录结构)
  # list DemoProject
  B) 对比本地与库上某个文件或者整个文件夹(进入src/demo目录):
  # svn diff hello.cpp
  C) 查看库上某个文件提交记录(什么时间、什么人提交过)
  # svn log –v hello.cpp
  4、 其他操作
  A) 查看src/demo目录下的文件的状态(是否修改后没有提交等)
  # svn st
  如果你的 hello.cpp修改后还没有提交,则使用svn st会在第一列显示hello.cpp的状态为M,表示项目已经修改但没有提交到库。
  B) 查看svn命令的帮助
  # svn help update 查看update命令的帮助.
  C) 提交时冲突(没有更新本地工作目录而修改文件导致冲突)处理:
  (1) 想使用项目仓库中的版本,而放弃本地拷贝的修改:
  # svn revert hello.cpp
  # svn up
  (2) 想保留本地工作拷贝的修改,而放弃项目仓库中版本的修改:
  # 当你解决了冲突的文件,可以使用resolved
  # svn resolved
  # svn commit hello.cpp
  D)checkout下来库的老版本
  首先查看你需要checkout下来的DemoProject老版本,然后再checkout下来:
  # svn log DemoProject 查看老版本,比如是4330版本
  # checkout DemoProject –r 4330