`
zht1933
  • 浏览: 218331 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

svn版本控制器——使用的基本操作

阅读更多

svn使用的基本操作

SVN基本操作之svn checkout
作为svn的用户,拿到一个svn地址,我们首先做的一个事情就是svn checkout,将svn上的关联到本地的一个文件夹中。这个文件夹最好是空的文件夹,或者确保没有和svn上相同名称的路径,当然这也说明这个操作是个连线操作。我们一般在执行checkout的时候只要给出svn的URL和本地的路径两个内容就可以了。这样svn上最新的数据会被传送到这个文件夹,目录结构会自动建好,svn上的文件会自动出现在对应的文件夹中。当然如果你愿意也可以选择一个旧的版本,或者只包含一层目录或者只是这个文件夹中的文件。或许你发现了,每一个文件夹中比服务器上的内容多了个.svn文件夹,这个文件夹中存放着文件夹的属性,这个文件夹中的每个文件的属性、版本还有对应版本的一个副本。

SVN基本操作之svn update
这个操作就是将本地的的数据更新到svn上的某个版本,默认的操作是更新到最新版本,这个操作也是个连线操作。在这个过程中如果有人删除了文件,它会你机器上的文件删除,如果别人改了某个文件,会将这个文件更新。如果你修改了某个文件,别人删除了它,则这个文件不会被删除,只会和svn没关系了。如果你修改了某个文件,而这个文件别人也修改了,在更新的过程中就会试图自动将你的修改合并,如果成功,他的内容就是你修改的和别人修改的内容的并集,如果失败,svn就会将这个文件标记为冲突。冲突的问题我们放在下个说。

SVN基本操作之svn resolve
使用svn意味着你已经走在了工作在编辑和合并的道路上,那么冲突的时候svn做了什么,出现了冲突怎么解决?
在标记为冲突的过程中,如果是文本文件,如cpp和h文件,svn会修改它让他不能进行编译,并产生一个theirs和mime,分别包含svn服务器上的和我自己原来的版本。
如果是二进制文件,svn不会修改它,而会在目录中产生一个r??和r??这两个r??一个是你update之前的svn基础版本,就是你上次执行update的版本,一个是svn上的当前update下来的版本。
你可以选择直接使用theirs或者使用mime或者退回到上一个update版本,或者将两个文件放在一起手工合并作为解决的方法。
这个操作是离线操作。

SVN基本操作之svn commit
svn 的commit操作就是将修改从工作拷贝发送到版本库并将版本标记为新的版本,这个过程中如果有人已经对这个版本进行了操作,也就是你的本地基础版本和服务器不同,将会强制你执行一个update操作,这个操作是个连线操作。commit的过程仅仅是将你本地的一些修改提交到svn中让svn上的和你的一致,在提交之前必须已经解决了需要提交文件已有的冲突才行。

SVN基本操作之svn add
如果一个文件不受svn管理,你需要把它添加到svn中,这个操作是个离线操作,仅仅是把这个文件标记为需要添加,真正的添加到svn存储的操作将在下一次commit时执行。这个过程中需要注意不要把一些不必要的文件比如编译的临时文件添加到svn。

SVN基本操作之svn import
当然你可以将一些文件直接添加到svn而不想修改这些文件的svn管理状态,可以选择将它们导入到svn。注意如果将一个文件导入,则给出的url就是它添加到svn的最终文件名,如果将一个文件夹导入,则会将根据目录树所有的子文件和文件夹放到对应的url的对应目录树中,根文件夹不会被添加。
这个操作是连线操作。

SVN基本操作之svn cleanup
这个操作清理整个所选择的文件夹及其子文件夹,但是它不是清理垃圾文件什么的,这肯定不是svn的工作。它也不会把冲突自动解决,如果能自动解决,在更新的时候为什么不做。如果你在某个svn操作时强制中断了,比如svn的操作程序停止相应或者以外终止,就有可能导致文件夹处于锁定状态,这时需要清理。如果你的文件夹中的很多文件时间戳发生了变化,也最好执行以下cleanup这样可以加速svn操作的执行。
这个操作是离线操作。

SVN基本操作之svn delete
既然有方法添加文件,就一定有方法删除,虽然你看到的效果是文件直接被删除了,但是实际上和添加一样,这个操作是个离线操作,操作的结果将被标记,下次commit时服务器上的文件才会被删除。

SVN基本操作之svn revert
如果你的修改出现了问题,或者添加或者删除了错误的文件,等等想还原操作,在commit之前可以执行revert操作,退回某步操作,这样这些修改都会被还原到基础版本状态。这个操作不会和svn服务器有关系,不会连接服务器也不会更新文件,只是简简单单的回复到基础版本。
这个操作是个离线操作。

SVN基本操作之svn diff
这个操作就是比较你的工作版本和某个svn版本的区别,当然默认是你的基础版本,因为你的工作版本就是从基础版本修改过来的么。
在和基础版本比较时是个离线操作,和历史版本比较时是连线操作。

SVN基本操作之svn export
这个操作可以将一个已经在svn管理下的文件夹中的所有工作版本导出到一个文件夹中,或者直接从svn服务器上将一个版本导出到一个文件夹中。导出的文件夹不再在svn的管理控制下,也不会有.svn目录,当然也不会包含不在svn管理下的文件。
在导出工作版本时是个离线操作,从svn直接导出时是连线操作。

SVN基本操作之svn copy
操作的名字显而易见,就是复制操作,在svn上复制文件有什么好处呢,为什么不直接复制文件再添加到svn呢。这个问题我也考虑过,svn copy可以将文件在复制之前的历史保留下来,这应该是最大的好处了。
这个操作是离线操作,需要提交才起效。

SVN基本操作之svn move
和copy一样,历史的留存也是和复制后删除源文件这个方式最大的区别,并且它也是离线操作,需要提交才起效。

SVN基本操作之svn lock
如果你想独占修改这个文件,可以把文件锁定,这样就可以锁定这个文件,这样别人必须等待你提交了修改或者释放了锁才能提交他们的修改。这个操作不会对别人的 svn本地存储有什么影响,而只是无法进行数据提交。如果某个文件有svn:needs-lock这样的标志时,文件会被设置为只读,提示你需要获得锁来修改。当然你也可以把文件的属性修改直接修改,这个只是防君子不防小人的。
这个操作时连线操作。

SVN基本操作之svn unlock
虽然是unlock但是实际上这个我们平常不会将他用来和lock配对,因为commit操作时,svn默认自动将锁释放了。这个操作的用处是在你得到锁了之后,又不想锁定这个文件时执行的。还有就是如果别人锁定了这个文件,想强制把这个文件解锁,就可以强制将这个文件解锁。
这个操作时连线操作。

分享到:
评论

相关推荐

    SVN插件工具附教程

    SVN支持程序员将本地副本更新到服务器端的最新版本,也支持将本地副本的最新改变更新到服务器端,而且后面的更新不会覆盖前面的更新,而是作为一个新的版本被保存下来——SVN甚至支持将本地工作副本恢复为服务器端...

    软件操作培训教程.pptx

    6.TortoiseSVN的使用基本流程 软件操作培训教程全文共60页,当前为第10页。 7.SVN常见图标说明 一个新检出的工作副本使用绿色的对勾做重载。 表示Subversion状态正常. 当我们开始编辑一个文件后,图标将变成红色...

    SVN服务器VS2005客户端part2

    Elliotte Rusty Harold 介绍了 Subversion —— 一种开放源码、多用户版本控制系统,支持非 ASCII 文本和二进制数据。通过 Elliotte 的介绍,您可看到如何在 Eclipse 中配置 Subversion 支持(通过 Subclipse 插件)...

    SVN服务器与VS2005客户端par1

    Elliotte Rusty Harold 介绍了 Subversion —— 一种开放源码、多用户版本控制系统,支持非 ASCII 文本和二进制数据。通过 Elliotte 的介绍,您可看到如何在 Eclipse 中配置 Subversion 支持(通过 Subclipse 插件)...

    TortoiseSVN+Merge_v1.12.2 2019中文官方文档

    TortoiseSVN 是一个 Windows 下的版本控制系统 Apache™ Subversion® 的客户端工具。就是 说,TortoiseSVN 常年管理文件和目录。文件存储于一个中央版本库中。版本库就像一个常见的文件服 务器,除了它保存你对文件...

    基于JavaEE的快速开发框架

    提供轻量级、快速响应的控制器,允许设置最大并发峰值,以确保在突如其来的并发攻击后能继续正常提供服务;也允许设置单IP最大并发量,确保小量IP并发攻击时仍能正常提供服务。允许发布为HTTP(S)、WebSocket、Socket...

    低清版 大型门户网站是这样炼成的.pdf

    2.1.5 struts 2的业务控制器action实现 39 2.1.6 struts 2的处理结果result 45 2.1.7 功能强大的表达式语言ognl 47 2.1.8 struts 2的运行流程分析—helloworld 48 2.1.9 struts 2的异常处理 52 2.2 struts 2...

    JAVA程序开发大全---上半部分

    第4章 Java开发的版本控制及SVN 62 4.1 版本控制与SVN 62 4.2 SVN服务器的安装与配置 62 4.3 MyEclipse连接SVN服务器 63 4.3.1 配置MyEclipse连接SVN服务器 63 4.3.2 将SVN服务器中的项目导入到MyEclipse 64 4.3.3 ...

    学习opencv中文版

    积分图像 距离变换 直方图均衡化 练习 第7章 直方图与匹配 直方图的基本数据结构 访问直方图 直方图的基本操作 一些更复杂的策略 练习 第8章 轮廓 内存 序列 查找轮廓 Freeman链码 轮廓例子 另一个轮廓例子 深入分析...

    学习OPENCV(中文版)

    直方图的基本操作 一些更复杂的策略 练习 第8章 轮廓 内存 序列 查找轮廓 Freeman链码 轮廓例子 另一个轮廓例子 深入分析轮廓 轮廓的匹配 练习 第9章 图像局部与分割 局部与分割 背景减除 分水岭算法 用Inpainting...

    aurpb:从 Arch 的 AUR 构建包的脚本。 根据 AUR 版本检查本地版本。 将本地存储库与远程主机同步

    限制: PKGBUILD 的内置包版本控制可以为从 git 和 svn 检索的代码自动修改版本号。 这个脚本此时只检查 AUR 报告的版本。 目录设置 首先你需要一些目录。 默认情况下,脚本使用 /srv/repo。 /srv/repo 包含脚本 /...

    Spring Security-3.0.1中文官方文档(翻译版)

    7.4. 使用其他过滤器—— 基于框架 8. 核心安全过滤器 8.1. FilterSecurityInterceptor 8.2. ExceptionTranslationFilter 8.2.1. AuthenticationEntryPoint 8.2.2. AccessDeniedHandler 8.3. ...

    【白雪红叶】JAVA学习技术栈梳理思维导图.xmind

    版本控制 svn git 项目管理 maven Nexus Jenkins 工作软件 反编译软件 office系列 下载器 adobe系列 记录软件 思维导图 office--Note 邮件管理 性能优化 分层优化 系统级别 中间件级别 JVM级别...

    web路径探测工具 7kbscan-WebPathBrute 1.5.8 (集成三字典)

    使用与更新说明 1.5.8 Beta 2018-01-28 一、增加了几个变量 %DomainNoPoint%为当前扫描目标域名去掉. wwwbaiducom %DomainUnderLine%为当前扫描目标域名将.换成下划线www_baidu_com %...

Global site tag (gtag.js) - Google Analytics