`

SVN里的lock

 
阅读更多

刚才试验了一下,终于搞明白了TortoiseSVN里锁lock 的使用方法。

简单的说,如果压根没有锁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 自动 lock 自动锁

    "svn 自动 lock 自动锁"的主题涉及到如何在svn操作中实现文件的自动锁定,以优化多用户同时编辑同一文件时的效率。在多人共享代码库的环境中,文件锁定机制可以避免冲突,确保只有一个用户能够修改特定文件,其他...

    svn在linux下的使用(svn命令)

    语法为:svn lock -m "LockMessage" [--force] PATH。例如:svn lock -m "lock test file" test.php。这将锁定 test.php 文件。svn unlock 命令用于解锁文件。语法为:svn unlock PATH。例如:svn unlock test.php。...

    svn无法cleanup的处理方法

    ### SVN无法Cleanup的处理方法详解 #### 背景与问题描述 在使用Subversion(SVN)进行版本控制的过程中,可能会遇到一个令人头疼的问题——无法执行`cleanup`操作。通常,这一问题的发生与上一次执行`cleanup`时...

    SVN演示 SVN演示 SVN演示 SVN演示 SVN演示 SVN演示

    2. **锁模式(Lock-Modify-Unlock)**:适用于二进制文件和特定的文本文件,需要获取文件锁后再进行修改,以避免并发修改导致的冲突。适合工程设计等领域。 【安装与使用】 安装TortoiseSVN后,用户可以通过右键...

    svn命令大全.docx

    语法:svn lock -m “LockMessage“ [--force] PATH 例如:svn lock -m “lock test file“ test.php svn unlock PATH 五、update 命令 update 命令用于更新到某个版本。语法:svn update -r m path 例如:svn ...

    SVN冲突深度解析完整版

    SVN冲突深度解析完整版 在本篇文章中,我们将深入探讨SVN冲突的原因、...我们可以直接进入到文件夹下的.svn目录,然后删除lock文件。 SVN冲突的解决方法有多种,但是理解SVN的锁定机制和工作机制,是解决问题的关键。

    svn linux下命令详解

    该命令的基本语法为:svn lock -m “<锁定信息>” <文件名>。例如:svn lock -m “lock test file“ test.php。 svn unlock 命令用于解锁文件。该命令的基本语法为:svn unlock <文件名>。 5. 更新到某个版本 svn...

    linix fedora svn命令大全

    `svn lock` 用于锁定文件防止他人编辑,而 `svn unlock` 用于解锁: ``` svn lock -m "lock test file" test.php svn unlock test.php ``` 5. **Update(更新)** `svn update` 或 `svn up` 用于将远程仓库的...

    SVN使用手册大全

    SVN 使用手册大全 SVN(Subversion)是一款开源的版本控制系统,广泛应用于软件开发、文档管理和项目协作等领域。本手册将详细介绍 SVN 的使用方法和技巧,帮助读者快速掌握 SVN 的使用。 修改 SVN 访问密码 在...

    linux下svn简明教程

    `svn lock`用于锁定文件,防止他人修改,而`svn unlock`则是解锁: ``` svn lock -m "lock test file" test.php svn unlock test.php ``` 5. **Update(更新)**: `svn update`或`svn up`将远程仓库的最新...

    linux下的 svn命令

    4. **加锁/解锁(Lock/Unlock)**: `svn lock` 和 `svn unlock` 分别用于锁定和解锁文件。`-m` 参数用于添加锁消息。例如:`svn lock -m "lock test file" test.php`。 5. **更新(Update)**: `svn update` 或 `svn up...

    eclipse中svn插件的使用

    在SVN视图中,右键点击文件,选择Team-Lock,文件将被锁定,图标变为灰色勾,锁定期间无法修改。若要恢复到特定历史版本,可以通过Local History功能选择历史版本进行替换,实现代码回滚。 #### 导出无.SVN的项目 ...

    ubuntu SVN命令大全

    - `svn lock` 命令用于锁定文件,防止其他用户编辑此文件。 - `svn unlock` 命令用于解锁文件,允许其他用户编辑此文件。 #### 五、Update (更新) **命令格式**: ``` svn update [本地路径] [-r [版本号]] ``` *...

    linux下使用svn客户端

    svn lock -m "Lock Message" [--force] svn unlock ``` **示例**: ``` svn lock -m "lock test file" test.php svn unlock test.php ``` **说明**: `svn lock` 和 `svn unlock` 分别用于对文件进行加锁和解锁操作...

    svn 出错误清理工具sqlite3.exe

    1.把sqlite3.exe放到.svn文件夹下 2.在.svn目录下打开命令行输入以下语句: sqlite3 wc.db "delete from work_queue" sqlite3 wc.db "delete from wc_lock" 3. svn 执行clean up

    SVN常用命令集合及简单用法

    4. 加锁/解锁:svn lock -m "LockMessage" [--force] PATH 例如:svn lock -m "lock test file" test.php svn unlock PATH 这条命令用于加锁或解锁文件,以防止其他人同时修改文件。 5. 更新到某个版本:svn ...

    svn修复 sqlite3

    在SVN的工作副本数据库中,可能包含如`nodes`, `lock`, `work_queue`等表,这些表存储了关于文件状态、锁定信息以及待处理任务等数据。 `delete from work_queue`是一个SQL删除语句,意味着尝试从`work_queue`表中...

    SVN使用说明.doc

    这与 VSS 的锁定-修改-解锁模式不同,因为 SVN 的新文件需要手动设置 `svn:needs-lock` 属性来启用此模式。 在协作开发环境中,SVN 和 TortoiseSVN 提供了一套有效的工具,帮助团队成员协同工作,确保代码的同步和...

    svn操作完全手册

    #### 十、SVN解锁(Release Lock) 完成编辑后应及时解锁,释放对文件的独占访问权,允许其他团队成员进行修改。解锁操作确保了文件的流通性,促进团队协作效率。 #### 十一、SVN重命名(Rename) SVN支持对文件...

Global site tag (gtag.js) - Google Analytics