`
sxysxy
  • 浏览: 216678 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

svn 基本命令(zt)

 
阅读更多
把本地项目testsvn整个目录里的内容往备份站点塞, 这是最初的结构, 建立最初的rev 0
以后checkout回来同样是按该路径,把目录下的(不包括最后的目录名)文件取回
svn import testsvn svn://path/to/repos -m "最后的这个注释不能少"

取回项目, 路径同上. 最后取出来的新目录名不给定就会用最后路径的最后一个目录名, 这里就是repos目录
svn checkout svn:///path/to/repos A_NewProjectName

更新本地项目. 千万记得,通过第一步import后的那个目录并没有默认建立svn与远程的关系,需要手动从服务器checkout回服务器的版本到本地, 才算正式建立与远程的关系(什么关系? 复杂关系!). checkout回来的项目就可以时不时地执行:
svn update

搅和取回来的项目一番后,察看动了什么(一下命令都要在项目目录下运行)
svn status

你对目录结构的修改或添加删除文件等类操作不能自动commit, 需要根据svn status显示的提示将文件/目录 明确 告诉svn是add, delete, copy 还是move
svn add new_dir
svn delete new_dir
svn status仅仅显示最根本的信息,更多的改动变化通过这个获得:
svn diff


查看项目当前状态。
svn status
查看你做的更改。
svn diff
svn commit -m “message” 提交你的改变到版本库中,后面参数为此次发动的注释.

svn list列出版本库中当前目录下的文件

svn delete file 在本地中删除file文件。svn commit 提交更新才会在版本库实际删除file文件。

svn add file增加file文件。同样只有在svn commit 提交后才会在版本库中实际增加。


svn move file file2 将file文件更名为file2
.
svn revert去除更改。后面可接操作过的文件。
svn log svn 日志。

svn各种状态关键字意义:
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 commit


温馨提示: 你可以本地建一个服务器来玩玩,
svnadmin create g:/repos
记得把g:/repos/conf目录下的passwd和svnserve.conf里的注释去掉, svnserve.conf里要改为
[general]
password-db = passwd # 这个表示我要用目录下的passwd文件当作访问密码设置
passwd里要加上用户名
[users]
thisis = userpwd
之后,你就可以通过file:///g:/repos来访问.
或者, 由svnserve -d -r g:/repos 建立本地svn协议服务器,然后通过svn://localhost/来访问
你总是可以通过svn list svn://localhost/来察看服务器该路径下的内容. 然后通过svn checkout 把路径目录下的内容(不包括最后路径目录) 取回到 "./最后路径名/"目录下.
http://javaite.javaeye.com/blog/156869
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics