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 ...
随机推荐
- angular4-事件绑定
事件绑定语法(可以通过 (事件名) 的语法,实现事件绑定) <date-picker (dateChanged)="statement()"></date-pic ...
- C++ STL string对象操作汇总
string对象 C语言只提供了一个char类型用来处理字符,而对于字符串,只能通过字符串数组来处理,显得十分不便.C++STL提供了string基本字符系列容器来处理字符串,可以把string理解为 ...
- HashMap和Hashtable有什么区别?
HashMap和Hashtable都是实现Map接口的,但是: 1.HashMap允许键和值都是null的,而Hashtable不允许键和值为null 2.Hashtable是同步的,而HashMap ...
- 实力封装:Unity打包AssetBundle(一)
说明:这是一系列循序渐进的教程,今天先介绍最简单的AssetBundle打包方式. 这是一个由在Unity中需要加载模型而引发出来的一系列坑,为了填坑花了不少时间,如果有需要在Unity中自定义菜单, ...
- SDK Manager的使用
前言:SDK Manager就是一个Android软件开发工具包管理器,就像一个桥梁,连通本地和服务器,从服务器下载安卓开发所需工具到本地. 1.在android sdk 安装目录下,有一个SDK M ...
- 性能测试-6.VUG脚本参数化
前言:(原文地址)版面调整 什么是VUGEN action以及作用 参数化 参数化取值(9种组合,在不同场景中如何运用) 一.VUGEN是 LoadRunner 用于开发 Vuser 脚本的主要工具. ...
- linux c 检测ip变化
#include <string.h> #include <sys/socket.h> #include <sys/ioctl.h> #include <ne ...
- 队列 c实现
循环队列的数组实现 queue.h #ifndef _QUEUE_H_ #define _QUEUE_H_ #define SIZE 10 typedef int data_t; typedef st ...
- 20165228 学习基础和C语言基础调查
========== 做中学读后感 我依然认为兴趣与自觉性是推动一个人进步的两大因素,他们之间的区别是"兴趣"带来的影响更多是主动性的学习,而"自觉"则是略显被 ...
- 非原创。使用ajax加载控件
非原创.来自博客园老赵. public class ViewManager<T> where T : System.Web.UI.UserControl { private System. ...