您的位置:首页 > 其它

svn常用命令的用法

2013-12-12 16:43 169 查看

原文

svn 命令的使用(在linux下)

链接:/article/2020483.html

如果你是在linux 下作开发工作的,并且使用svn 工具的话,那么你必须会碰到下面这些问题:

1,如何用svn 将工程checkout 到本地目录

svn checkout path(path是服务器上的目录)

例:svn co http://smartphone/repositories/MT6577/trunk/
2,如何用svn 提交单个文件的修改?

进入到根目录下

svn ci filename.java

在下一个界面中会要求你填写日志信息。填写就好了 。再按 ctrl + x ,敲 Y 。就提交成功了。

例:svn ci VideoCamera.java

3,如何用svn 提交多个文件的修改?

要提交多个文件,可以在根目录下进行。

svncommit -m
"LogMessage" PATH

PATH 是指多个文件全路径信息。中间以空格隔开

例:svn ci -m "PD1208:修改摄像不能手动对焦" res/layout-mdpi/preview_frame_video.xml res/layout-sw600dp/preview_frame_video.xml src/com/android/camera/VideoCamera.java src/com/android/camera/FocusManager.java

Sending res/layout-sw600dp/preview_frame_video.xml

Sending src/com/android/camera/FocusManager.java

Sending src/com/android/camera/VideoCamera.java

Transmitting file data ...

Committed revision 14967.

这个命令同样适用于单个文件

4,如何用svn 命令对比当前文件与base 版本的区别?

svn diff filename.java

例:svn diff VideoCamera.java

在接下来的画面中,行前-号表示你删除的代码,行前+号表示本行是你增加的代码。

5,如何用svn 命令回退该工程上所有的修改?

svn revert -R path

注:此处的 path 为工程目录路径。

掌握这几个命令基本上就可以完成日常的工作了,如需要了解更多的内容,请参考:http://hi.baidu.com/freemandomrerr/item/0a6e1b63360b2190c4d249fc

原文:

SVN子命令add用法浅析

链接:http://developer.51cto.com/art/201005/201633.htm

本节和大家一起学习一下SVN子命令add的一些内容,经过长时间学习SVN子命令,有些心得在这里和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西。

名称

svn add
— 添加文件、目录或符号链。

概要

SVN
子命令add PATH...描述

文件、目录或符号链到你的工作拷贝并且预定添加到版本库。它们会在下次提交上传并添加到版本库,如果你在提交之前改变了主意,你可以使用svn revert取消预定。

选项

--targets FILENAME

--non-recursive (-N)

--quiet (-q)

--config-dir DIR

--no-ignore

--auto-props

--no-auto-props

--force

例子:

我们通过一个例子来看一下SVN子命令add,添加一个文件到工作拷贝:

$ svn add foo.c

A foo.c

当添加一个目录,svn add缺省的行为方式是递归的:

$ svn add testdir

A testdir

A testdir/a

A testdir/b

A testdir/c

A testdir/d

你可以只添加一个目录而不包括其内容:

$ svn add --non-recursive otherdir

A otherdir

通常情况下,命令svn add *会忽略所有已经在版本控制之下的目录,有时候,你会希望添加所有工作拷贝的未版本化文件,包括那些隐藏在深处的文件,可以使用svn add的--force递归到版本化的目录下:

$ svn add * --force

A foo.c

A somedir/bar.c

A otherdir/docs/baz.doc。SVN子命令add的用法介绍讲解完毕。

【编辑推荐】

Linux下不常用的SVN 命令大揭秘
SVN客户端常用命令使用方法专家指导
SVN子命令SVN Update详解
SVN使用教程简单配置篇详解
SVN客户端常用命令在线课堂

读后感:

因为工作中需要一个svn命令提交多个文件,所以上网查阅到这篇文章。这篇文章讲解了svn如何提交多个不在同一个目录的文件,就是

svn commit -m "提交日志说明" path1/file1 path2/file2 ... ;

如何提交单个文件呢?命令是:svn commit -m "提交日志说明" path1/file1,或cd进入path1,再svn commit -m "提交日志说明" file1;

如何提交一个文件夹的所有有改动的文件呢:svn commit -m "提交日志说明" path1,或cd进入path1,再svn commit -m "提交日志说明";

另外,如何查看一个目录path1的所有提交版本和log信息呢? cd进入path1,再svn log

------------------------------------------------------------------------

r1 | lt | 2013-xx-xx 22:54:13 -0700 (日, 2013-xx-xx) | 1 行

The first import project about xxx

------------------------------------------------------------------------

得到形如上述的日志,表示path1目录下的代码在1版本有改动,及改动日志。

然后,可以用svn diff -r n,比较当前目录下的本地版本与指定版本n的差异;用svn diff -r n:m,比较当前目录下的第n个版本与第m个版本的差异;

用svn update -r n,更新当前目录下的指定版本n的代码;更新指定目录path1的代码用svn update path1;用svn revert -r n,恢复当前目录下的指定版本n的代码。

做Update操作时,SVN会打印出受影响文件的状态,有以下几种:

A Added

D Deleted

U Updated

C Conflict

G Merged

注意:若提示C,表示冲突,冲突可以用status命令加-u参数来预测

删除文件文件夹,并将修改提交到SVN服务器最简单就是,你直接删除文件文件夹,然后使用SVN
Commit
提交更新到SVN服务器。

关于checkout和export的区别,当你要发布或编译的时候,最好采用export,它不会引入svn的附加文件,这样文件结构显得比较干净。而当你需要修改和提交的时候,用checkout,它会在你本地建立一个工作区,Checkout到某处的代码,将会被
TortoiseSVN监视,里面的文件可以享受各种SVN的服务。(上述几段文字摘自
SVN
客户端的使用方法 链接:/article/10757494.html

版本库访问URL 模式访问方法 file:/// 直接版本库访问(本地磁盘)(注意是三个/) http:// 通过配置Subversion的Apache服务器的 WebDAV协议 https:// 与http://相似但是包括SSL加密。svn:// 通过svnserve服务自定义的协议svn+ssh://
svn://相似但通过SSH封装。svn import 本地目录 远程URL 把本地目录导入到远程 版本库中,
但是本地目录不进行版本化. 如果想版本化, 还需要svn checkout ?svn checkout 远程url 本地目录 本地目录可以不写,
如果不写, 则会把远程的代码库目录名, 当成本地目录.(这段文字摘自百度文库 链接:http://wenku.baidu.com/view/ed3997e0998fcc22bcd10d20.html

我的实际工作环境中是采用svnserve服务器的模式,从svn服务器192.168.xxx.xxx下载指定文件夹path1内的代码 svn checkout svn://192.168.xxx.xxx/path1;

登录svn服务器,ssh ubunt@192.168.xxx.xxx;输入用户名,密码;

20131212

20131221修订

提交AndroidManifest.xml,和res目录下,以及src目录下的所有改动的命令:

svn commit -m "注释" AndroidManifest.xml res/* src/*

一次性编译MTK的lk和kernel,以及bootimage的命令(lk改动后必须编kernel,并需要重新生成bootimage,用一个命令完成这一串编译过程):

./mk -o=TARGET_BUILD_VARIANT=user kenxinda72_wet_jb3_530_4_3 n lk && ./mk -o=TARGET_BUILD_VARIANT=user kenxinda72_wet_jb3_530_4_3 n k && ./mk -o=TARGET_BUILD_VARIANT=user kenxinda72_wet_jb3_530_4_3 bootimage

20131221结束
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: