Sunday, January 30, 2011

svn学习笔记

From: http://hi.baidu.com/zengjianyuan/blog/item/21d9eec4b6572ca28226acba.html

2010-01-20 21:56

svnadmin create /usr/local/svn/repos
svn import mytree file:///usr/local/svn/repos/project -m "Initial import"
svn checkout file:///usr/local/svn/repos/project(简 写 co)
svn commit -m ""/svn commit -F logmsg(简写 ci)
svn revert test.c    #撤销所做的修改,恢复到上一版本。
svn switch URL    #改变工作拷贝到URL指定的分支。
svn update/svn update file
svn resolved file   #update后可能产生冲突,冲突解决了运行此命令。
#文件操作命令
svn delete file    #不是马上在本地删除,commit以后才真正删除。
svn add file     #下次提交后,file会成为其父母录的一个子目录。
svn mkdir file    #同上。
svn copy file1 file2    #下次提交时会添加到版本库,这种拷贝历史会记录下来。
svn copy -r n url/file file #恢复一个已经删除的文件(该文件是url上的第n个版本)到file。
svn move file1 file2
#查看命令
svn info file     #查看版本库下面文件或者目录的最新版本。
svn status/svn status file #检测对文件或目录所做的修改。(简写 st)
svn log     #查看谁在什么时候干了啥事。
svn list file:///usr/local/svn/repos/project
svn cat -r 3 test.c   #查看第3版本的test.c的文件。
##########
文件标识:
U 本地文件没有修改,文件已经根据版本库更新。
G 本地文件已经修改,与版本库没有重迭的地方,已经合并。
C 表示冲突,说明服务器上的改动与本地文件冲突了,需要手工解决。
##########
svn log命令常用选项:
-r revision 修订版本
-v verbose 详细的清单
--stop-on-copy 查找分支产生的版本,它会在svn log检测到目标拷贝或者改名时中止日志输出。
svn diff命令常用选项:
-r 同上,
1)svn diff -r n (file) 本地工作拷贝与指定的版本比较。
2)svn diff -r n1:n2 (file) 指定两个版本比较。
-c change 与前一个修订版本比较。
svn merge命令常用选项:
--dry-run 合并之前预测一下,不修改本地拷贝,显示实际合并时的状态信息。
--ignore-ancestry 忽略文件的不相关性,以路径为基础比较两棵树。
##########
分支方法:
1.本地拷贝,commit。
2.服务器端拷贝,checkout。 比较简单。
合并方法:
1.合并分支到主干:把分支变化应用到主干上
cd ***/trunk
svn checkout
svn merge -r n1:n2 ***/branches
svn commit
2.合并主干到分支。

No comments:

Post a Comment