csvn使用入门
在前面我们已经配置好了csvn服务器,直达链接http://blog.csdn.net/qq_34829953/article/details/78285647
现在我们在win10环境下使用我们搭建好了的svn
随便在一个路径下新建一个文件夹,用到存放svn文件,右键选中svn checkout,url那里填版本库检出命令,注意localhost.localdomain那里需要改为csvn服务器的ip,回车后输入用户名admin密码admin(这是默认的)
然后随便在workspace里面新建一个文件,然后选中workspace右键选中svn commit,然后这个文件就会更新到svn版本库了
现在我们尝试新建一个用户,我就懒得截图了,我们随便创建一个用户,并且给这个用户所有项目的读权限,点击导航栏的版本库,选中访问跪着,添加username=r(增加这条语句,其实这个用户还是拥有所有项目的读写权限,原因是上面的那句*=rw,也就是说所有用户都具有读写权限,我们再把这句改为admin=rw就可以了)
现在我们再尝试新建文件,并svn commit,发现权限不足,提交失败。改为username=rw,再次提交,提交成功
刚搭建好的csvn服务器可以说是空白的,需要我们自己创建版本库
问题是,现在我们有另一个旧的svn版本库需要导进来,实现在访问这个新csvn服务器上能同时访问到旧的svn版本库
实现方法很简单:
将旧csvn服务器的csvn\data\repositories目录下文件拷贝到新服务器的repositories下
具体如何简单快速地实现呢,毫无疑问使用scp命令(这个命令貌似系统自带,不用进行多余的配置)
scp -r /application/csvn/data/repositories/* root@10.0.3.103:/application/csvn/data/repositories/
为什么要加个-r(递归)选项呢?因为不只是复制一个文件,而是多个,不加会提示not a regular file
需要重启csvn,如果重启后再版本库里还是没看到新增旧的版本库,可以点击discover刷新,一般就可以出现了
导入之后还会报一个警告,那就是权限不足,将新导入的版本库修改其拥有者为csvn,然后进入web页面的版本库,点击新导入的版本库后面的可能需要修改权限,点击验证权限,恢复正常
csvn版本库的迁移
首先复制旧csvn服务器上repositories下的版本库文件夹到新csvn服务器repositories文件夹下面
然后复制旧csvn的svn_auth_file到新csvn上(这个应该是复制旧服务器上的密码,但是却没有生效,不知道为什么)
接着就是复制旧服务器上的用户账号
csvn-production-hsqldb.script 在这个文件里搜索INSERT INTO USER 然后复制这几行,追加到新服务器上的对应文件中(这里我遇到一个问题,就是我在csvn的web管理界面可以看到我新建的用户,但是我在这个文件中却找不到对应的插入信息,最后发现是没有重启csvn的问题)
接着用旧csvn服务器上svn_access_file文件覆盖新csvn服务器上的对应文件(为了安全起见,最好将被替换的文件先做好一个备份,防止出现异常情况无法恢复)
最后重启csvn,迁移就完成了。但是有一个问题,就是旧服务器上的账号无法正常登陆新的csvn,会提示没有权限读取页面,这个我还不知道怎么解决
使用svnadmin dump 快速复制版本库
svnadmin dump /application/csvn/data/repositories/test > repos-dumpfile
上面这条命令用来备份test版本库,导出为文件repos-dumpfile
csvn使用入门的更多相关文章
- CSVN(SVN)命令入门及使用过程中遇到的错误问题汇总
首先进入web管理界面新建一个版本库 新建一个文件text svn add text #如果提示错误,在后面增加–force svn ci -m 'add text' #如果提示错误,将csvn下的目 ...
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- Oracle分析函数入门
一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...
- Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数
上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...
- Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数
上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...
- Angular2入门系列教程4-服务
上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...
- wepack+sass+vue 入门教程(三)
十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...
- wepack+sass+vue 入门教程(二)
六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...
随机推荐
- python if elif else判断语句
username = 'jack' password = ' _username = input('username') _password = input('password') if userna ...
- ng-table
需要的文件: angular.js ng-table.js ng-table.css bootrasp.css 注入依赖: var app = angular.module('app', [ 'ngT ...
- list的四种遍历方式
1.手先增强for循环和iterator遍历的效果是一样的,也就说 增强for循环的内部也就是调用iteratoer实现的,但是增强for循环 有些缺点,例如不能在增强循环里动态的删除集合内容.不能获 ...
- :观察者模式--Weather
#ifndef __WEATHER_H__ #define __WEATHER_H__ #include <list> #include <iostream> using na ...
- TBody scrollbar 设置
由于scrollbar自身有宽度 对于tbody来说可能会挤压与thead不对齐下面办法能够解决大致问题 1.设置tbody display:block : overflow-y:auto:(并且修 ...
- Java实验2
1.给定一组字符,编程输出里面数值最大者. package experiment; import java.util.Arrays; public class ShenYue { public sta ...
- JSONP解决跨域问题,什么是JSONP(转)
原文链接:https://www.cnblogs.com/xinxingyu/p/6075881.html 说到AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交换数据?第二个是跨域的 ...
- GD2模块-图像处理
GD2模块-图像处理 1.图像处理模块的主要功能: a) 验证码 b) 加盖水印 c) 缩略图 d) 帖子图片签名 e) 在线LOGO制作 2确认PHP是否支持图像处理 检测PHPINFO文件中是否存 ...
- cookie的参数
def set_cookie(self, key, value='', max_age=None, expires=None, path='/', domain=None, secure=False, ...
- Oracle function和procedure
1.返回值的区别 函数有1个返回值,而存储过程是通过参数返回的,可以有多个或者没有 2. 调用的区别,函数可以在查询语句中直接调用,而存储过程必须单独调用. 函数:一般情况下是用来计算并返回一个计算结 ...