svn版本库创建,本地文件副本生成使用

来源:互联网 发布:java 类加载是什么意思 编辑:程序博客网 时间:2024/05/09 09:17

首先,root用户创建版本库,并导入数据
1. 创建库文件所在的目录:mkdir svn工作文件夹
mkdir svnrepos
2. 创建svn版本库:svnadmin create svn的工作文件夹绝对路径
snvadmin create /data/user/svnrepos
3. 设置环境变量,并运行配置文件(可先查看环境变量SVN_EDITOR,若已设置过,此步骤忽略...)
export SVN_EDITOR=vim; source /bin/bashrc
4. 为版本库导入数据:svn import 代码路径  file://svn工作文件夹绝对路径
svn import /data/user/sourceCode file:///data/user/svnrepos/
5. sudo chown -R daemon /data/user/svnrepos
   sudo chmod 777 /data/user/svnrepos


 


:
1> 步骤5解释(权限问题:根据用户所参与的项目,SVN管理员对其开放相应目录的读、写权限):
因版本库是以root身份创建并导入数据的,此时若以其他用户身份获取代码,并做更新进行提交时,会提示svn: Can't create directory '/data/user/svnrepos/db/transactions/1-1.txn': Permission denied        (原因在于,其他用户对版本库没有write权限,无法将新的内容提交给版本库)

为验证以上说法可在执行第5步前后依次执行ls -ll svnrepos查看版本库内文件权限

2> svn import子命令在导入数据之后,你会发现原先的目录树并没有纳入版本控制,为了开始工作,就需要运行svncheckout得到一个干净的目录树工作拷贝。

其次,从版本库通过网络"检出"代码到本地工作副本
svn checkout  file:///svn工作文件夹绝对路径  要保存的路径名
svn checkout file:///data/user/svnrepos/ ./



最后,将在本地工作副本中进行增加,修改,删除后的代码"提交到版本库(如果本地工作副本中版本较系统版本过时,用户使用“更新”功能与系统上版本保持一致).



 1.第一次在file服务器checkout的时候,使用root超级用户(即服务器管理员的身份)进行checkout的话,其中svnreposSVN仓称。

 2.若本地某用户svn up的时候报下面的错误,提示没有权限打开该文件.svn/lock
svn: Can't open file 'data/user/sourceCode/.svn/lock': Permission denied 

 3.ll查看当前文件夹下的.svn文件时发现其所属组所有者为root

[root@.....]# ll sourceCode/.svn
total 28
-r--r--r--  1 root root  143 Oct 28 12:27 all-wcprops 
-r--r--r--  1 root root 313 Oct 28 12:27 entries 
-r--r--r--  1 root root 2 Oct 28 12:25 format 
drwxr-xr-x  2 root root 4096 Oct 28 12:25 prop-base 
drwxr-xr-x  2 root root 4096 Oct 28 12:25 props 
drwxr-xr-x  2 root root 4096 Oct 28 12:27 text-base 

drwxr-xr-x  5 root root 4096 Oct 28 12:27 tmp 

解决方法:给目录加权限,这边userName是组(:用户名)
chmod  o+w  .svn -R 
su - userName
svn up 


 总结:SVN 出现“Can't open file '.svn/lock': Permission denied”问题原因是因为第一次checkout的时候是用root,使得其他用户没有权限,通过以上方法可以解决。


总结svn使用过程中可能会碰到的问题
Linux chmod命令详解

0 0
原创粉丝点击