您的位置:首页 > 其它

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

2014-05-26 18:55 323 查看
首先,以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的话,其中svnrepos为SVN仓称。

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命令详解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐