SVN基本操作

分类: LINUX

原文地址:SVN基本操作 作者:tuyer

文章摘要:SVN 基本操作:SVN是什么 Svn是一个离线的代码管理,可以多个人一起修改,然后再将修改的内容提交到Svn中。 每一个svn服务器中的数据存储单位叫做存储,但是你不仅仅可以把整个存储当作你维护的内容,也可以将其中的某个分支目录像根存储一样的使用。 Svn是严格区分大小写的,存储中路径的名字只有大小写不同,也会当作不同的 SVN基本操作:SVN是什么
Svn是一个离线的代码管理,可以多个人一起修改,然后再将修改的内容提交到Svn中。
每一个svn服务器中的数据存储单位叫做存储,但是你不仅仅可以把整个存储当作你维护的内容,也可以将其中的某个分支目录像根存储一样的使用。
Svn
是严格区分大小写的,存储中路径的名字只有大小写不同,也会当作不同的路径处理。注意这里会在windows平台下导致一些非常严重的问题。在
windows下如果svn服务器上同一文件夹有两个只有大小写不同的文件时会出现则会出现总是提示某个文件丢失,而更新到哪个文件也是未知的。如果同一
文件夹有只有大小写不同的文件夹会导致总是无法将一个文件夹同步下来。最严重的要数如果存储名称错误,则你没有办法提交数据,因为帐户认证是基于存储的。

SVN的版本概念
先说明一下几个版本概念。
一个是服务器版本,每一次提交svn都会将版本号加1,无论你是修改了文件,还是添加删除了,甚至修改一下文件夹的svn属性,只要你提交都会更新版本;

二个是本地基础版本,也就是你上次进行update之后的和svn服务器上的版本,比如你update时服务器上是reverion11你的本地基础版本
就是reverion11,无论别人改了什么,服务器上更新了多少版,只要你不执行update则你的基础版本永远是reverion11;
第三个是工作版本,就是你当前改着的版本,工作版本是基于基础版本的,如果没改,工作版本就和基础版本一致,如果你改了,你的工作版本就是从基础版本修改过来的。

SVN的操作

是有人问已经在本地删除了某个文件,可是一更新又从svn还原出来了,或者我已经把一个文件移动到另外的地方,可是怎么修改svn让他同步等等。在受
svn管理的文件中,所有的文件操作不能想当然的进行,添加删除和移动改名都是有对应的svn操作的,这样才能自动的反映到svn上来,尤其是移动文件这
样的操作,如果操作不慎,就会无法将文件的修改历史联系起来。不过,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 log -v
            svn help
            svn help COMMAND

SVN基本操作 (zz)的更多相关文章

  1. Svn基本操作

    日常开发中使用到的Svn基本操作 svn      https://tortoisesvn.net/ https://www.visualsvn.com/server/download/   1. 检 ...

  2. SVN 基本操作

    SVN基础 一 简介 tortoiseSVN是windows下其中一个非常优秀的SVN客户端工具.通过使用它,我们可以可视化的管理我们的版本库.不过由于它只是一个客户端,所以它不能对版本库进行权限管理 ...

  3. Mac下SVN基本操作和常见错误

    一.基本操作 1  从服务器上下载代码 svn checkout http://xxx.xxx.xxx/xxx 2  获取最新的代码 svn update 3  提交代码 svn commit -m ...

  4. svn基本操作和图标介绍

    注意事项:    .svn这个隐藏目录记录着两项关键信息:工作文件的基准版本和一个本地副本最后更新的时间戳,千万不要手动修改或者删除这个.svn隐藏目录和里面的文件!!,否则将会导致你本地的工作拷贝( ...

  5. java对redis的基本操作,ZZ

    java对redis的基本操作 http://www.cnblogs.com/edisonfeng/p/3571870.html

  6. 版本管理工具SVN

    此文件根据慕课网 源生活老师的教学视频总结 视频地址 http://www.imooc.com/learn/109 一.SVN下载和安装配置 服务端下载地址 https://www.visualsvn ...

  7. SVN是什么,svn的目录结构

    Svn是一个离线的代码管理,可以多个人一起修改,然后再将修改的内容提交到Svn中.每一个svn服务器中的数据存储单位叫做存储,但是你不仅仅可以把整个存储当作你维护的内容,也可以将其中的某个分支目录像根 ...

  8. 删除一个目录和其各级子目录下的.svn文件

    两种方法[1]用find命令和其action来实现[2]用rm直接实现$ cd /tmp/xxx$ rm -rf  `find . -name .svn`就可以实现了. 删除SVN目录及从服务器端删除 ...

  9. 版本控制器:SVN

    版本控制器:SVN 开发中的实际问题 小明负责的模块就要完成了,就在即将Release之前的一瞬间,电脑突然蓝屏,硬盘光荣牺牲!几个月来的努力付之东流--需求之一:备份! 这个项目中需要一个很复杂的功 ...

随机推荐

  1. EF CodeFirst学习笔记002--更新数据库表

    BlogEntities这个类从DbContext继承,负责数据库的更新. Database.SetInitializer(new DropCreateDatabaseIfModelChanges&l ...

  2. Excel表格如何保护单元格不被修改

    Excel如何保护单元格不被修改  有时使用Excel时希望保护单元格不被修改,这可以叫做单元格的“写保护”即把光标定位在一个不允许输入数据的区域内时,是无论如何也无法在里面输入数据的.下面咱们就一起 ...

  3. JMeter学习(十三)目录介绍(转载)

    转载自 http://www.cnblogs.com/yangxia-test JMeter也学了一阵子了,对于基本的操作已了解,再回过头来看看Jmeter的目录,本篇是对于它的目录进行一些简单的介绍 ...

  4. windows 下 wamp php单元测试工具PHPUnit的安装

    phpunit下载网站 http://www.phpunit.cn/ 一.安装PHPUnit 1.选择版本 我用的是php版本是5.6.25 所以我选择的是PHPUnit 5.7 2.安装过程 为 P ...

  5. HTML图片热区map area的用法(转)

    <area>标记主要用于图像地图,通过该标记可以在图像地图中设定作用区域(又称为热点),这样当用户的鼠标移到指定的作用区域点击时,会自动链接到预先设定好的页面.其基本语法结构如下: 1 & ...

  6. 使用html中的<input>标签上传多个文件(转)

    如何使用html上传多个文件呢?我搜索中文怎么也找不到合适的,都是用js动态添加input,然后提交,不能满足我想要的——打开选择文件的窗口后可以一次性选择多个文件. 然后我尝试搜索英文"h ...

  7. poj2492(带权并查集)

    题目链接:http://poj.org/problem?id=2492 题意:给出n个人,m条关系,每条关系表示的两个人异性,判断这m条关系是否有误. 思路:带权并查集,类似poj1182,并查集的向 ...

  8. Jenkins安装部署(二)

    Jenkins配置 一.修改jenkins家目录 由于jenkins在启动个之后会默认将所有的构建应用在家目录中创建一遍,为了合理化服务器资源,重新定义jenkins家目录. 在tomcat的cata ...

  9. 对于装office 365时,visio不兼容的解决

    先将office 365装好,之后从这个网址下载visio安装即可,但是没有 激活码,需要自己激活: 网址:链接: https://pan.baidu.com/s/1OqONPuJ0eumrpts-X ...

  10. [CodeForces_618C]Constellation

    题目链接 http://codeforces.com/problemset/problem/618/C 题意 给二维平面一些点的坐标,保证不是所有点都在一条直线上,各点不重合,输出三个点的id,满足其 ...