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命令详解
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命令详解
相关文章推荐
- git 基本使用,初始化本地仓库,创建文件,add文件,commit文件,git版本穿梭
- 程序集版本最后一位使用SVN版本号的自动生成方法
- svn创建patch时,生成的文件乱码
- 使用命令去掉SVN项目中隐藏的版本控制文件
- fatal error C1047: 对象或库文件“EDLib.lib”是使用比创建其他对象所用编译器旧的编译器创建的;请重新生成旧的对象和库
- 包含别人的dll,然后我们用类库再次封装成dll的时候的注意事项;源文件与模块生成时的文件不同;创建调试信息文件 ··PDB时发生意外的错误,进程无法访问文件,因为另一个程序正在使用此文件
- Archlinux中使用下载到本地的源代码文件生成package
- SVN使用log,list,cat,diff查看所有及特定文件版本信息
- SVN服务器创建及使用--以文档文件的管理示例
- fatal error C1047 对象或库文件“....Win32Release xxx.obj”是使用比创建其他对象所用编译器旧的编译器创建的;请重新生成旧的对象和库
- linux使用svn版本管理之创建仓储权和限管理
- 在VS2010Winform项目中使用RDLC报表定义文件、ReportViewer控件生成本地报表
- 本地使用xcode4创建svn代码管理的方法
- 程序集版本最后一位使用SVN版本号的自动生成方法
- 利用SVN实现计算机本地文件文件夹的管理,轻松实现版本控制
- SVN使用log,list,cat,diff查看所有及特定文件版本信息
- 在使用SVN,下载文件到本地时,一定要把全目录下载下来!
- fatal error C1047 对象或库文件“....Win32Release xxx.obj”是使用比创建其他对象所用编译器旧的编译器创建的;请重新生成旧的对象和库[转]
- 版本控制:svn的本地使用