一:进入linux,命令下载svn
1.下载(centos环境)
yum -y install subversion
2.查看下载后的信息
rpm -ql subversion
3.创建版本库目录,一个版本库目录可放多个项目,不必为多项目创建多个版本库
//创建文件夹
mkdir /home/huqin/svn/program/
//创建版本库 program
svnadmin create /home/huqin/svn/program/
二:进入conf配置修改,设置自己的账号密码,权限,也可加多人
cd /home/huqin/svn/program/
conf :存放版本库所使用的配置文件的目录
db :存放存储版本数据的数据库文件的目录
hooks :存放版本库钩子程序的目录
locks :存放库锁目录,用来跟踪库的访问者
format:存储一个整数的文件,此整数代表库层次结构版本
README.txt:版本库自述文件
1.进入conf
cd conf
authz:负责账号权限的管理,控制账号是否读写权限
passwd:负责账号和密码的用户名单管理
svnserve.conf:svn服务器配置文件
2.编辑authz文件
vim authz
:wq
3.添加账号,修改密码 进入passwd文件
4. 修改svnserve.conf
anon-access:控制非鉴权用户访问版本库的权限,取值范围为"write"、"read"和"none"。 即"write"为可读可写,"read"为只读,"none"表示无访问权限。 默认值:read
auth-access:控制鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。 即"write"为可读可写,"read"为只读,"none"表示无访问权限。 默认值:write
password-db:指定账户密码配置文件名,通过该文件可以实现鉴权访问控制。 除非指定绝对路径,否则文件位置为相对conf目录的相对路径。 默认值:passwd
authz-db:指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。 除非指定绝对路径,否则文件位置为相对conf目录的相对路径。 默认值:authz
realm:指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的 认证域相同,建议使用相同的用户名口令数据文件。 默认值:一个UUID(Universal Unique IDentifier,全局唯一标示)
三:启动svn
svnserve -d -r /home/huqin/svn/
//判断是否启动
ps -ef | grep svnserve
若无法连接主机可能是端口未开放 可以使用下面命令开放端口未设置默认为3690
netstat -anlp | grep :3690 //检测端口是否开放
/sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
四:本地输入svn地址,将项目拉入就可以了(url为ip+项目)
windows ---> svn://192.168.**.*/program/
Linux ---> svn checkout svn://192.168.**.*/program/
若使用root用户创建svn有可能或导致在创建的可以读写用户权限写入数据到db,可以修改文件操作权限。
chmod -R 777 /home/huqin/svn/program/db
五:防火墙关闭( 无法连接可以尝试关闭)
1、检查防火墙状态
systemctl list-unit-files|grep firewalld.service
2、检查防火墙状态
systemctl status firewalld.service
3、停止firewall
systemctl stop firewalld.service
4、禁止firewall开机启动
systemctl disable firewalld.service
Linux SVN 命令详解
1、将文件checkout到本地目录
svn checkout path(path是服务器上的目录)
例如:svn checkout svn://192.168.1.1/pro/domain
简写:svn co
2、往版本库中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加当前目录下所有的php文件)
3、将改动的文件提交到版本库
svn commit -m "LogMessage" [-N] [--no-unlock] PATH
(如果选择了保持锁,就使用--no-unlock开关)
例如:svn commit -m "add test file for my test" test.php
简写:svn ci
4、加锁/解锁
svn lock -m "LockMessage" [--force] PATH
例如:svn lock -m "lock test file" test.php
svn unlock PATH
5、更新到某个版本
svn update -r m path
例如:
svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
简写:svn up
6、查看文件或者目录状态
1)svn status path
(目录下的文件和子目录的状态,正常状态不显示)
【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】
2)svn status -v path
(显示文件和子目录状态)
第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
简写:svn st
7、删除文件
svn delete path -m "delete test fle"
例如:svn delete svn://192.168.1.1/pro/domain/test.php -m "delete test file"
或者直接svn delete test.php 然后再svn ci -m 'delete test file‘,推荐使用这种
简写:svn (del, remove, rm)
8、查看日志
svn log path
例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化
9、查看文件详细信息
svn info path
例如:svn info test.php
10、比较差异
svn diff path(将修改的文件与基础版本比较)
例如:svn diff test.php
svn diff -r m:n path(对版本m和版本n比较差异)
例如:svn diff -r 200:201 test.php
简写:svn di
11、将两个版本之间的差异合并到当前文件
svn merge -r m:n path
例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理)
12、SVN 帮助
svn help
svn help ci
------------------------------------------------------------------------------
以上是常用命令,下面写几个不经常用的
------------------------------------------------------------------------------
13、版本库下的文件和目录列表
svn list path
显示path目录下的所有属于版本库的文件和目录
简写:svn ls
14、创建纳入版本控制下的新目录
svn mkdir: 创建纳入版本控制下的新目录。
用法: 1、mkdir PATH...
2、mkdir URL...
创建版本控制的目录。
1、每一个以工作副本 PATH 指定的目录,都会创建在本地端,并且加入新增调度,以待下一次的提交。
2、每个以URL指定的目录,都会透过立即提交于仓库中创建。
在这两个情况下,所有的中间目录都必须事先存在。
15、恢复本地修改
svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。revert:
用法: revert PATH...
注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复被删除的目录
16、代码库URL变更
svn switch (sw): 更新工作副本至不同的URL。
用法: 1、switch URL [PATH]
2、switch --relocate FROM TO [PATH...]
1、更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的方法。
2、改写工作副本的URL元数据,以反映单纯的URL上的改变。当仓库的根URL变动 (比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用这个命令更新工作副本与仓库的对应关系。
17、解决冲突
svn resolved: 移除工作副本的目录或文件的“冲突”状态。
用法: resolved PATH...
注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的相关文件,然后让 PATH 可以再次提交。
18、输出指定文件或URL的内容。
svn cat 目标[@版本]...如果指定了版本,将从指定的版本开始查找。
svn cat -r PREV filename > filename (PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)
19、 查找工作拷贝中的所有遗留的日志文件,删除进程中的锁 。
当Subversion改变你的工作拷贝(或是.svn 中 的任何信息),它会尽可能的小心,在修改任何事情之前,它把意图写到日志文件中去,然后执行log文件中的命令,然后删掉日志文件,这与分类帐的文件系统 架构类似。如果Subversion的操作中断了(举个例子:进程被杀死了,机器死掉了),日志文件会保存在硬盘上,通过重新执行日志文 件,Subversion可以完成上一次开始的操作,你的工作拷贝可以回到一致的状态。
这就是svn cleanup 所作的:它查找工作拷贝中的所有遗留的日志文件,删除进程中的锁。如果Subversion告诉你工作拷贝中的一部分已经“锁定 ”了,你就需要运行这个命令了。同样,svn status 将会使用L 显示锁定的项目:
$ svn status
L somedir
M somedir/foo.c
$ svn cleanup
$ svn status
M somedir/foo.c
20、 拷贝用户的一个未被版本化的目录树到版本库。
svn import 命令是拷贝用户的一个未被版本化的目录树到版本库最快的方法,如果需要,它也要建立一些中介文件。
$ svnadmin create /usr/local/svn/newrepos $ svn import mytree file:///usr/local/svn/newrepos/some/project Adding mytree/foo.c Adding mytree/bar.c Adding mytree/subdir Adding mytree/subdir/quux.h Committed revision 1.
在上一个例子里,将会拷贝目录mytree 到版本库的some/project 下:
$ svn list file:///usr/local/svn/newrepos/some/project bar.c foo.c subdir/
请务必到https://edu.csdn.net/bundled/detail/49?utm_source=banner 下单购买课,方可添加图书寄送地址。 本页面,仅为观看视频页面,如需邮寄图书,请务必到https://edu.csdn.net/bundled/detail/49?utm_source=banner 下单购买课 疯...
Redis、nginx常用命令_nginx/redis远程命令
实验内容:要求:设计一个动物识别专家系统,规则库至少包含15条规则,可以识别至少7种动物,规则可增加;界面显示要求:1)有若干选择动物特征的选择列表;2)表现判断动物时,使用了哪些规则;3)表现数据库的变化;4)显示规则的调用次序;5)显示最后的结果,包含动物能识别出来和动物不能识别出来两种情况;6)至少检查两个例子实现正向推理和反向推理的区别 实验思路:(1)、建立知识库利用二维数组features[][11]储存,其中存放的是定义的动物特征, ..._建立一个动物识别系统的规则库
题目https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/题解使用二分法,不断地删掉 数组左边的增序列 和 数组右边的增序列,直到数组长度为 2 为止,此时剩余的数组是 减序列。class Solution { public int findMin(int[] nums) { int L = 0; int R = nums.length - 1; if (num
Httpclient.setHttpRequestRetryHandler(requestRetryHandler);/** * 设置重连机制和异常自动恢复处理 */private static HttpRequestRetryHandler requestRetryHandler = new HttpRequestRetryHandler() {// 自定义的恢复策略_httprequestretryhandler
使用系统自带的NSAttributedString来处理,对于一般的图文混排已经足够了,但是,有一个缺点就是NSAttributedString并不支持gif动画。实际上,使用gif动画还是挺卡的。思路:1.通过RegexKitLite 正则,匹配出所有需要特殊处理的字符2.由于表情图片占用一个字符,使用直接替换范围的方式,会导致后面的表情范围不对。有两种处理方案方案一: ...
MFC文件和注册表的操作日志、操作配置文件、ini文件、注册表、音视频的文件存储。Linux下一切皆文件。C/C++文件操作常量指针和指针常量const char* p == char const *p 常量指针,表示指向的内容为常量,指针的指向可以修改,指针指向的内容不能修改。char* const p 指针常量,表示地址是常量,指向不能改变,指向的内容可以改变。C语言文件操作文件打开的模式示例://写文件void CMFCFileView::OnFileWrite(){ _win32 api regcreatekeyw
文件处理开发项目的时候,会使用许多文件资源,比如各种格式的图片,Svg,字体图标等等,这些都是需要配置相应的Loader转换之后,Webpack才能够正确解析它们。在本章节,我们将介绍如何在Webpack中处理各种文件资源。处理图片资源针对各种类型的图片处理最常用的就是File-loader和Url-loader。File-loader的使用File-loader的使用很简单,如其他Loader使用一样,需要在module.rules中进行配置:module.exports = { mo_webpack 如何处理模型文件
更多内容可以访问我的个人博客。论文阅读:DualGAN: Unsupervised Dual Learning for Image-to-Image Translation作者将原本应用于自然语言处理领域的对偶学习应用到了图像转换领域,提出了一种通用的图像到图像转换的无监督学习框架,该框架仅依赖于未标注的图像数据。读完这篇文章,收获是了解了对偶学习这个概念。1. 问题定义用于跨域图像转...
一.GSM的涵义 GSM全名为:Global System for Mobile Communications,中文为全球移动通讯系统,俗称"全球通",是一种起源于欧洲的移动通信技术标准,是第二代移动通信技术,其开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。我国于20世纪90年代初引进采用此项技术标准,此前一直是采用蜂窝模拟移动技术,即第一代GSM技术
1286:怪盗基德的滑翔翼时间限制: 1000 ms 内存限制: 65536 KB提交数: 4757 通过数: 2294【题目描述】怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯。而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼。有一天,怪盗基德像往常一样偷走了一颗珍贵的钻石,不料却被柯..._怪盗基德的滑翔翼c++
File->Settings->keymap可以进行按功能搜索例如搜索撤销功能快捷键也可按快捷键搜索,在光标移到下图搜索框里,按下键盘的Ctrl + Z ,