svn常用命令的用法

来源:互联网 发布:咨询公司 数据分析 编辑:程序博客网 时间:2024/05/07 08:43

原文

svn 命令的使用(在linux下)

链接:http://blog.csdn.net/fulinwsuafcie/article/details/7824251


如果你是在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的用法介绍讲解完毕。

【编辑推荐】

  1. Linux下不常用的SVN 命令大揭秘
  2. SVN客户端常用命令使用方法专家指导
  3. SVN子命令SVN Update详解
  4. SVN使用教程简单配置篇详解
  5. 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客户端的使用方法 链接:http://blog.csdn.net/liyaobinryan/article/details/5542285)


版本库访问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结束

0 0
原创粉丝点击