欢迎来到农夫的博客

半亩方塘一鉴开, 天光云影共徘徊。 问渠哪得清如许? 为有源头活水来!

SVN 部分常用命令

1. svn status

提交前显示出本地文本和版本库文本的区别

[url=] L abc.c # svn已经在.svn目录锁定了abc.c
M bar.c # bar.c的内容已经在本地修改过了
M baz.c # baz.c属性有修改,但没有内容修改
X 3rd_party # 这个目录是外部定义的一部分
? foo.o # svn并没有管理foo.o
! some_dir # svn管理这个,但它可能丢失或者不完整
~ qux # 作为file/dir/link进行了版本控制,但类型已经改变
I .screenrc # svn不管理这个,配置确定要忽略它
A + moved_dir # 包含历史的添加,历史记录了它的来历
M + moved_dir/README # 包含历史的添加,并有了本地修改
D stuff/fish.c # 这个文件预定要删除
A stuff/loot/bloo.h # 这个文件预定要添加
C stuff/loot/lump.c # 这个文件在更新时发生冲突
R xyz.c # 这个文件预定要被替换
S stuff/squawk # 这个文件已经跳转到了分支

svn status

?       .idea
?       overlays
!       src\main\java\com\purang\tencentcloud
!       src\main\java\com\purang\tencentcloud\pojo
!       src\main\java\com\purang\tencentcloud\pojo\OCRSign.java
!       src\main\java\com\purang\tencentcloud\util
?       src\main\webapp\temfile\fileocr
M       src\main\webapp\template\test.vm

2. svn add [--path]

svn add ***

3. Hookscripts

服务端的挂钩脚本(hook scripts)

Hookscripts(挂钩脚本)是在代码版本发生变化时所触发的程序,比如在创建一个新的代码版本或者修改版本控制的属性。每个挂钩(hook)都能拿到足够的信息标明触发挂钩(hook)的是什么事件,运行的目标平台,和触发挂钩的用户名称等。Svn的客户端可以根据挂钩程序的输出或者返回值决定下一步的该做什么(可以停止、继续、暂停用户的行为)。

挂钩脚本会被管理代码仓库的服务器执行,当然客户端(TortoiseSVN)也允许配置挂钩脚本,然后再特定的事件下触发脚本。

代码仓库的hooks目录下可以找到挂钩脚本的范例。这些范例脚本可以在Unix/Linux平台的服务器上执行,但是如果使用的使用windows 服务器的话需要做一些修改。Windows下的挂钩可以是一个批处理文件(.bat)或者可执行文件(.exe).下面给出一个可以在windows服务器上执行的挂钩脚本。

rem Only allow log messages to be changed.
if "%4" == "svn:log" exit 0
echo Property '%4' cannot be changed >&2
exit 1

4. svn commit

commit 提交文件到版本库

svn commit -m "" 文件相对路径

注意:如果 commit -m 信息附加 hooks 条件, 使用 ""。

svn commit -m "req #46016 aa" src\main\webapp\template\test.vm

Sending        src\main\webapp\template\test.vm
Transmitting file data .done
Committing transaction...
Committed revision 115758.

posted on 2019-01-17 10:13  allTime  阅读(308)  评论(0编辑  收藏  举报

导航