SVN 的锁定与解锁

简单的说,如果压根没有锁lock,那么每个人都拥有一个本地copy,每个人都能自由地对本地copy编辑edit并提交commit,这样可能会导致冲突conflict,最后不得不合并Merge。这就是传统的 “拷贝-修改-合并”模型。

如果使用锁,每个用户编辑前先get-lock, 然后编辑,提交。这个过程中,其他人打开的时候开到的是read-only的文件,无法保持,这样就保证了单一性。这就是“锁定-编辑-解锁”模型,对不容易合并的非二进制文件很有好处。

更进一步,TortoiseSVN有个 needs-lock属性,设置这一属性后,文件将默认成为只读文件,要编辑,必须get-lock, 之后,本地copy变成了可写,编辑完提交后再次成为只读。 这过程中,其他人的副本还是只读,他也想编辑,也必须get-lock, 但是此时已经被lock了,他就知道已经有人编辑了,就不会再有编辑冲突了。

needs-lock 有专门的图标,所以,needs-lock 可以看成是一种提醒,提醒你编辑之前必须lock。如果没有该属性,则可能会忘记加lock,导致提交冲突。

还有几个问题

1: 如何设置 get-lock, unlock, needs-lock

get-lock, unlock, 右键菜单即可,get-lock 还可添加注释

needs-lock 可以由右键 TortoiseSVN -> Properties -> New -> needs-lock 即可。

另外,可以设置全局的新添加文件自动加上needs-lock属性,或者文件夹下所有文件

2: 如何查看lock 状态

TortoiseSVN -> Check for modifications, 默认显示本地修改文件,要查看所有的修改文件,再点

Check Repository 这样显示详细的修改信息,包括owner,lock info等。

3:如何偷锁

查看完lock,选择文件,右键可以 break lock, 另外还可以 steal lock. 不过除非lock的人联系不上,不要随意break 或者steal,不然文件冲突事小,破坏团结,丢掉工作事大,简单的交流更有效。

详情参考官方教程:

http://tortoisesvn.net/docs/release/TortoiseSVN_zh_CN/tsvn-dug-locking.html  lock 页面

http://tortoisesvn.net/docs/release/TortoiseSVN_zh_CN/tsvn-dug-propertypage.html#tsvn-dug-propertypage-auto-props  自动设置页面

http://tortoisesvn.net/docs/release/TortoiseSVN_zh_CN/index.html  1.7 中文教程首页

SVN中如何为文件夹中的所有文件加锁

选择文件夹,右键property,-》点击New,Needs lock,在所在文件夹上右键提交修改。

svn加锁设置的更多相关文章

  1. eclipse svn插件 设置自动加锁相关

    eclipse svn插件 设置自动加锁相关 Subclipse 1.10.9 发布,改进说明:SVNKit 1.8.8Exception proof repository sorter. (1616 ...

  2. Linux系统中svn服务器设置开机启动

    安装完svn服务器后虽然好用但是因为经常重启Linux服务器,每次重启完就要去手动启动svn服务器,很是麻烦,于是在网上找了一些方法后,自己把svn服务器设置成开机启动 步骤一:安装svn服务器: h ...

  3. [转载]SVN权限设置具体实例

    原文地址:SVN权限设置具体实例作者:白菜豆腐 1   背景假设 厦门央瞬公司是一家电子元器件设备供应商,其中有个ARM部门,专门负责ARM芯片的方案设计.销售,并在北京.上海各设立了一个办事处.对于 ...

  4. SVN代理设置

    [SVN代理设置] ~/.subversion/servers文件下可以配置svn的代理. 打开上面那3行,替换为自定义的域名即可.

  5. Eclipse SVN插件设置

    项目开发中,开发人员用SVN来管理代码,在和服务器同步时,需要避免上传不必要的一些编译文件,如.class,.log,target等文件,这里需要设置同步选项. 打开Eclipse ---> W ...

  6. VSS SVN GIT SVN 加锁签出

    VSS TFS SVN GIT VSS 两大功能: 1.签出后加锁,别人不能签出,独占签出. 2.在服务端可以查看哪些用户签出了哪些文件. 3.查看所有签出未签入的文件列表,SVN未发现此功能. 缺点 ...

  7. svn小设置

    由于每次提交代码或者更新代码都需要输入密码,太不方便,今天请教了高手设置一下svn,问题解决... 流程如下  TortoiseSVN --> Settings -->  Network ...

  8. linux安装配置SVN并设置钩子

    安装说明 系统环境:CentOS-6.3安装方式:yum install (源码安装容易产生版本兼容的问题)安装软件:系统自动下载SVN软件 检查已安装版本 #检查是否安装了低版本的SVN 1 rpm ...

  9. SVN Git 设置忽略目录 大全

    eclipse中SVN设置 用svn控制版本,svn本身是不会识别哪些该传,哪些不该传,这就导致有些关于路径的东西(比如拓展jar的路径)也被上传了,而当别人下载后,那个路径对于这个人可能完全不存在, ...

随机推荐

  1. Docker容器集群管理之Swarm

    Docker容器集群管理主流方案 Swarm Docker公司自研发的集群管理系统. Kubernetes Google开源的一个容器集群管理系统,用于自动化部署.扩展和管理容器应用.也称为K8S ...

  2. 壁虎书2 End-to-End Machine Learning Project

    the main steps: 1. look at the big picture 2. get the data 3. discover and visualize the data to gai ...

  3. js callback 和 js 混淆

    function test(a,callback){ a+=100; callback(a) } function abc(a){ a+=100; alert(a); } test(5,abc) js ...

  4. [No0000B0]ReSharper操作指南1/16-入门与简介

    安装指南 在安装之前,您可能需要检查系统要求. ReSharper是一个VisualStudio扩展.它支持VisualStudio2010,2012,2013,2015和2017.安装完成后,您将在 ...

  5. shell脚本之tr命令使用

    tr命令用来进行对标准输入的内容做替换.例如 # echo 'HELLO WORLD!!!' | tr "A-Z" "a-z" hello world!!! 这 ...

  6. day0315 迭代器

    一. 迭代器 1.什么是可迭代器? 除了数字和布尔值之外,其他数据类型都是可迭代对象.(字符串,列表,元组,字典,集合) 2.可迭代协议 2.1 可以被迭代要满足的要求就叫可迭代协议,可迭代的定义非常 ...

  7. 读书笔记-iOS核心动画高级技巧

    如果不使用+imageNamed:,那么把整张图片绘制到CGContext可能是最佳的方式了. 这里我们利用了CALayer的KVC来存储和检索任意的值,将图层和索引打标签. 使用KVC打标签

  8. VPS常用操作(自用)

    1.screen  用来开启进程,关闭ssh或命令行后扔可以继续运行 screen screen -list screen -r xx screen -S PID -X quit 2.mono asf ...

  9. 洛谷P4562 [JXOI2018]游戏 数论

    正解:数论 解题报告: 传送门! 首先考虑怎么样的数可能出现在t(i)那个位置上?显然是[l,r]中所有无法被表示出来的数(就约数不在[l,r]内的数嘛QwQ 所以可以先把这些数筛出来 具体怎么筛的话 ...

  10. 用composer安装laravel-bjyblog

    前面讲了两行命令composer的安装,现在我们来操作一下composer安装基于laravel的博客laravel-bjyblog.测试环境是linux,bt面板,php7.2安装扩展fileinf ...