svn学习笔记,个人整理的,比较乱。


一.主要步骤:
1.创建版本库,import导入原始版本。
2.checkout,创建工作拷贝。
3.开始工作。
4.svn status:浏览所作的修改,svn diff 检查修改的详细信息。
5.commit:提交工作拷贝到服务器。
6.update:从服务器更新工作拷贝,如果工作拷贝的状态是“本地已修改且不是最新版本”时,svn update会合并公共和本地修改。


二.锁定-修改-解锁:
1.缺点
a.等待解锁造成时间浪费,易忘记解锁。
b.无法并行化开发。
c.如果有两个文件相互依赖,而同时被两个人修改,容易产生安全假象。
2.但如果是二进制文件(非文本文件),则推荐锁定方式。
3.锁定:lock;解除:unlock(如果不是拥有者,必须带 --force);偷窃锁定:lock --force
4.commit时,svn遍历工作拷贝将发现的所有锁定令牌作为提交的一部分发送到服务器。如果提交成功,会释放这些锁定。
5.管理员可以使用钩子,严格控制锁定-解锁策略。

三.工作拷贝:
1.工作拷贝每个文件夹都有一个以 ".svn"为名的文件夹,也被叫做工作副本的管理目录。
svn根据该目录中文件识别哪些文件做过修改,哪些文件相对于别人的工作已过期。
2.“.svn”目录记录的信息:
a.工作文件的基准版本(check out出来的版本),text-base目录。
b.本地拷贝最后更新的时间戳。
3.使用 check out获得工作拷贝。
4.在工作拷贝中操作时,必须使用 svn copy/svn move,而不能使用操作系统的命令,否则svn无法记录变更日志。


四.版本库:
1.commit/check in,作为一个原子事务操作发布文件和目录的修改。
2.原子事务:要么所有的事件都发生,要么都不发生。
3.全局版本号:svn的版本号N是针对整个目录树的,代表版本库经过了N次提交。
4.版本库布局:
trunk- 主线,branches- 分支拷贝,tags- 标签拷贝。


五.其它常用命令:
1.svn status:浏览所作的修改,svn diff 检查修改的详细信息。
2.撤销本地修改:revert
3.解决冲突:resolved,该命令删除3个临时文件,svn认为冲突已解决,可以提交,即使文件中还存在冲突标记。

六.服务配置
配置文件:
1.禁用密码缓存: store-passwords = no。
2.禁用凭证缓存:
 [auth]
 store-auth-creds = no

七.命令参数:
1. -m: --message,注释
2. -f: --file
3. -u: --show-updates
4. -r: --revision,修订版本