一、什么是SVN

概念:

svn(subversion)是一个跨平台的版本管理系统,类似一个文件服务器,但是可以记录每个文件的每一次修改更新记录,这样就可以回退到到任意时刻的旧的版本,可以用来管理程序源码、其他文件类型(文本、视频、图片等等);

1)有一个简单但不十分精确比喻: SVN = 版本控制 + 备份服务器

2)你可以把SVN当成你的备份服务器,更好的是,他可以帮你记住每次上传到这个服务器的档案内容。并且自动的赋予每次的变更一个版本。

二、安装SVN服务

yum install -y subversion

创建版本库

mkdir -p /data/svnroot/myproject (自定义的目录)

svnadmin create /data/svnroot/myproject //初始化一些文件

cd !$/conf #authz为权限配置文件,passwd为密码文件

[[email protected] conf]# ls

authz passwd svnserve.conf

三、配置

vim authz//配置文件改为如下

[groups]

admins = admin

user = test1,test2

[/]

@admins = rw

* = r

[myproject:/]

@admin = rw

@user = rw

配置详解:

[groups] //组名

admins = admin

@user = test1,test2 //定义组名是 admins

[/] //文件的目录/data/svnroot/myproject

@admins = rw //admins 这个组的权限是 读写

* = r //其它用户是只读

[myproject:/] // /data/svnroot/目录下的其他项目 myproject只是一个项目

@user = rw //定义myproject这个项目的user1用户是读写权限

编辑密码配置文件:

vim passwd //加入如下内容

[users]

admin = abc-123

test1 = abc-123

test2 = abc-123

编辑配置文件:

vim svnserver.conf //更改或增加如下内容

[general]

anon-access = none //匿名用户没有任何的权限

auth-access = write //被授权的用户可写权限

password-db = passwd //用户密码存放文件

authz-db = authz //权限控制存放的文件

realm = /data/svnroot/myproject //对哪个项目生效

四、启动svn server

svnserve -d -r /data/svnroot

netstat -nultp | grep svnserv

五、客户端上使用svn(linux)

yum install -y subversion

mkdir /home/svntest

cd !$

svn checkout svn://192.168.96.129/myproject --username=test1 //一旦成功连接 本地客户端就会保存一份曾经连接过的server的账号和密码

cd myproject

ls -la

cp /etc/fstab .

svn add . //添加到版本控制中心

svn commit -m "add fstab" //把文件上传到服务器

正在增加 fstab

传输文件数据.

提交后的版本为 1。

svn up //推送,,,服务端去查看就会发现有个fstab的文件

svn delete fstab //在本地删除

svn commit -m “delete fstab” //在服务器上删除

svn update //把当前目录下的文件都更新到最新版

svn log //查看变更日志

六、客户端上使用svn(windows)

下载安装之后(部分电脑可能需要重启)然后再某个盘内新建一个文件夹,右击就会出现 “SVN CHECKOUT” 输入用户名和密码,就会出现刚刚咱们编辑的fstab文件!

和Linux客户端差不多,当我们新建一个文件完成之后,右击点击“add” 然后我们再次点击 “add commit”

这样就大功告成了!

再次去服务端刷新即可

svn up

然后我们只要在linux 服务器内创建文件,只要在windows客户端 右击“myproject” 更新即可!

七、扩展命令

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 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)

add svn 多个文件_深圳信狮SVN技术文档相关推荐

  1. python 合并word文件_使用python docx合并word文档

    合并包含所有样式的两个文档的另一种方法是使用python库docxcompose(https://pypi.org/project/docxcompose/).我们不需要明确定义样式,也不必逐段阅读文 ...

  2. java打开pdf文件_[原创]java在线打开PDF文档

    步骤一:(涉及到的工具) 访问:http://www.zhuozhengsoft.com/dowm/,从官网下载PageOffice for Java. 步骤二:(配置工程) 1. 解压PageOff ...

  3. python 打印文件_在Python中打印word文档

    我这里有一个简单的批处理文件,它将从命令行打印word文档. "C:\Program Files\Microsoft Office\Office12\winword.exe" &q ...

  4. svn回退后如何再还原_设计师如何管理自己的文档

    随着项目的积累,我们的文件目录会变得十分的盘大,如果不好好管理,将会变得一团糟,有时会影响到我们工作的效率与心情,好的文档管理方式会在一定程度上让我们的工作更加有序,即时文件目录再多,按照已经制定好的 ...

  5. Markdown *.MD 文件 技术文档 在SDL Trados Studio中翻译

    Markdown *.MD 文件 技术文档 在SDL Trados Studio中翻译 Markdown 是一种最新主流的技术文档写作格式,广泛用于API编写,在技术领域十分流行,本篇文档也是在CSD ...

  6. 打开PDF文件弹出阅读未加标签文档的解决方法

    打开PDF文件弹出阅读未加标签文档的解决方法 参考文章: (1)打开PDF文件弹出阅读未加标签文档的解决方法 (2)https://www.cnblogs.com/Tty725/p/3308065.h ...

  7. virtualbox中文技术文档_随笔--西门子STEP7中如何寻找技术文档

    西门子STEP7软件支持的编程语言除了常用的LAD/FBD/STL,还有SCL/GRAPH等,应该说除了LAD/STL之外,SCL和GRAPH也是比较常用的,至少对我个人来说是这样,但是每种指令在不同 ...

  8. 基于sklearn的朴素贝叶斯_朴素贝叶斯分类实战:对文档进行分类

    朴素贝叶斯分类最适合的场景就是文本分类.情感分析和垃圾邮件识别.其中情感分析和垃圾邮件识别都是通过文本来进行判断.所以朴素贝叶斯也常用于自然语言处理 NLP 的工具. sklearn 机器学习包 sk ...

  9. 技术文档的撰写_如何撰写出色的技术博客文章

    技术文档的撰写 从创意到完美结果的五个步骤 (Five steps to get from idea to polished result) I've been working in the open ...

最新文章

  1. 算法之组合数学及其算法篇(二) ----- 鸽巢原理
  2. 关于mybatis的@Param注解和参数
  3. Webclient UI view里Javascript的注释问题
  4. 浅谈GSM/GPRS模块软硬件设计(基于有方M660+模块和单片机)
  5. Netty之有效规避内存泄漏
  6. 上下文管理、redis发布订阅、RabbitMQ发布订阅、SQLAlchemy
  7. thymeleaf模板引擎基础使用(转)
  8. Viewport 不权威指南
  9. 计算机浏览器应用程序,基于浏览器的应用程序
  10. 小程序表单提交,服务端推送模板消息通知
  11. Mac笔记本安装Webstrom
  12. css就近原则_CSS 三大特性
  13. 微软有“病”,推出bing,看上去算象个站内搜索,心寒!
  14. 拓端tecdat|R语言和Python用泊松过程扩展:霍克斯过程Hawkes Processes分析比特币交易数据订单到达自激过程时间序列
  15. K8S学习之helm
  16. Web表单设计:表单结构
  17. R语言svm支持向量机多元回归预测
  18. Clang与GCC的区别
  19. SitePoint播客#70:青年,企业和播客
  20. 2021年中式烹调师(初级)最新解析及中式烹调师(初级)免费试题

热门文章

  1. dubbo web工程示例_dubbo实战之二:与SpringBoot集成
  2. php new redis错误,解决PHP Redis扩展无法加载的问题(zend_new_interned_string in Unknown on line 0)...
  3. 什么样的编程语言,竟然能融资 1.6 亿?
  4. 你真会IDEA的调试功能吗?这4个技巧带你起飞!
  5. 除了 k8s,留给 k 和 s 中间的数字不多了!
  6. Spring Boot 2.x基础教程:实现文件上传
  7. 每日一皮:当我在处理别人的代码时...
  8. 自律到极致-人生才精致「第4期」:领奖通知
  9. 复仇者联盟与IntelliJ IDEA也很配哦
  10. mysql 编码 windows_修改mysql默认编码的方法(windows环境)