当前位置:文档之家› Linux下SVN命令使用大全

Linux下SVN命令使用大全

Linux下SVN命令使用大全
Linux下SVN命令使用大全

Linux下SVN命令使用大全

版本号V0.1 修订内容

详细修订日期文件性质

备注正在继续添加和完善...

1、将文件checkout到本地目录

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

例如:svn checkout svn://192.168.1.1/pro/domain

简写:svn co

2、往版本库中添加新的文件、目录或符号链

svn add PATH...

例如:svn add test.php(添加test.php)

svn add *.php(添加当前目录下所有的php文件)

●文件、目录或符号链到你的工作拷贝并且预定添加到版本库。它们会在下次提交上传并添加到版本库,如

果你在提交之前改变了主意,你可以使用svn revert取消预定。

●是否访问版本库否

●选项

--targets FILENAME

--non-recursive (-N)

--quiet (-q)

--config-dir DIR

--no-ignore

--auto-props

--no-auto-props

--force

●例子

添加一个文件到工作拷贝:

$ 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

3、将改动的文件提交到版本库

svn commit -m ―LogMessage― [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock 开关)

例如:svn commit -m ―add test file for my test― test.php

简写:svn ci

4、加锁/解锁

svn lock -m ―LockMessage― [--force] PATH

例如:svn lock -m ―lock test file― test.php

svn unlock PATH

5、更新到某个版本

svn update -r m path

例如:

svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。

svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)

svn update test.php (更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)

简写:svn up

6、查看文件或者目录状态

1)svn status path(目录下的文件和子目录的状态,正常状态不显示)

【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】

2)svn status -v path(显示文件和子目录状态)

第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。

注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn 在本地的.svn中保留了本地版本的原始拷贝。

简写:svn st

7、删除文件

svn delete path -m ―delete test fle―

例如:svn delete svn://192.168.1.1/pro/domain/test.php -m ―delete test file‖

或者直接svn delete test.php 然后再svn ci -m ?delete test file?,推荐使用这种

简写:svn (del, remove, rm)

8、查看日志

svn log path

例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化

9、查看文件详细信息

svn info path

例如:svn info test.php

10、比较差异

svn diff path(将修改的文件与基础版本比较)

例如:svn diff test.php

svn diff -r m:n path(对版本m和版本n比较差异)

例如:svn diff -r 200:201 test.php

简写:svn di

11、将两个版本之间的差异合并到当前文件

svn merge -r m:n path

例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)

12、SVN 帮助

●svn help [SUBCOMMAND...]

当手边没有这本书时,这是你使用Subversion最好的朋友!

●别名

?, h

●使用-?、-h和--help选项与使用help子命令效果相同。

●是否访问版本库否

●选项 --config-dir DIR

名称

svn merge —应用两组源文件的差别到工作拷贝路径。

概要

svn merge [-c M | -r N:M] SOURCE[@REV] [WCPATH]

svn merge sourceURL1[@N] sourceURL2[@M] [WCPATH]

svn merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH]

描述

第一种和第二种形式里,源路径(第一种是URL,第二种是工作拷贝路径)用修订版本号N和M指定,这是要比较的两组源文件,如果省略修订版本号,缺省是HEAD。

-c M选项与-r N:M等价,其中N = M-1,使用-c -M则相反:-r M:N,其中N = M-1。

第三种形式,SOURCE可以是URL或者工作拷贝项目,与之对应的URL会被使用。在修订版本号N和M的URL 定义了要比较的两组源。

WCPATH是接收变化的工作拷贝路径,如果省略WCPATH,会假定缺省值“.”,除非源有相同基本名称与“.”中的某一文件名字匹配:在这种情况下,区别会应用到那个文件。

不像svn diff,合并操作在执行时会考虑文件的祖先,当你从一个分支合并到另一个分支,而这两个分支有各自重命名的文件时,这一点会非常重要。

别名

改变

工作拷贝2

是否访问版本库

只有在对URL操作时会

选项

--revision (-r) REV

--change (-c) REV

--non-recursive (-N)

--quiet (-q)

--force

--dry-run

--diff3-cmd CMD

--extensions (-x) ARG

--ignore-ancestry

--username USER

--password PASS

--no-auth-cache

--non-interactive

--config-dir DIR

例子

将一个分支合并回主干(假定你有一份主干的工作拷贝,分支在修订版本250创建):

$ svn merge -r 250:HEAD https://www.doczj.com/doc/4310142187.html,/repos/branches/my-branch U myproj/tiny.txt

U myproj/thhgttg.txt

U myproj/win.txt

U myproj/flo.txt

如果你的分支在修订版本23,你希望将主干的修改合并到分支,你可以在你的工作拷贝的分支上这样做:

$ svn merge -r 23:30 file:///tmp/repos/trunk/vendors

U myproj/thhgttg.txt

合并一个单独文件的修改:

$ cd myproj

$ svn merge -r 30:31 thhgttg.txt

U thhgttg.txt

在同一个版本库进行回滚

韩捷对SystemUI的修改分别在46和47版本,现在要将其回滚到未修改之前的状态,则可以这样来做。

进入到SystemUI目录,然后运行:

svn merge -r 46:45 svn://localhost/MG701/alps/frameworks/base/packages/SystemUI svn merge -r 47:45 svn://localhost/MG701/alps/frameworks/base/packages/SystemUI

13、版本库下的文件和目录列表

svn list path

显示path目录下的所有属于版本库的文件和目录

简写:svn ls

14、创建纳入版本控制下的新目录

svn mkdir: 创建纳入版本控制下的新目录。

用法:

1)mkdir PATH…

2)mkdir URL…

创建版本控制的目录。

1)每一个以工作副本 PATH 指定的目录,都会创建在本地端,并且加入新增调度,以待下一次的提交。

2)每个以URL指定的目录,都会透过立即提交于仓库中创建。

在这两个情况下,所有的中间目录都必须事先存在。

15、恢复本地修改

svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。

revert:

用法: revert PATH…

注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复

被删除的目录

16、代码库URL变更

svn switch (sw): 更新工作副本至不同的URL。

用法:

1)switch URL [PATH]

2)switch -–relocate FROM TO [PATH...]

1)更新你的工作副本,映射到一个新的URL,其行为跟―svn update‖很像,也会将服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的

方法。

2)改写工作副本的URL元数据,以反映单纯的URL上的改变。当仓库的根URL变动(比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用这个命

令更新工作副本与仓库的对应关系。

17、解决冲突

svn resolved: 移除工作副本的目录或文件的―冲突‖状态。

用法: resolved PATH…

注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的

相关文件,然后让 PATH 可以再次提交。

svn resolved

上一页 svn子命令下一页

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

名称

svn resolved —删除工作拷贝文件或目录的“冲突”状态。

概要

svn resolved PATH...

描述

删除工作拷贝文件或目录的“conflicted”状态。这个程序不是语义上的改变冲突标志,它只是删除冲突相关的人造文件,从而重新允许PATH提交;也就是说,它告诉Subversion冲突已经“解决了”。关于解决冲突更深入的考虑可以查看“解决冲突(合并别人的修改)”一节。

别名

改变

工作拷贝2

是否访问版本库

选项

--targets FILENAME

--recursive (-R)

--quiet (-q)

--config-dir DIR

例子

如果你在更新时得到冲突,你的工作拷贝会产生三个新的文件:

$ svn update

C foo.c

Updated to revision 31.

$ ls

foo.c

foo.c.mine

foo.c.r30

foo.c.r31

当你解决了foo.c的冲突,并且准备提交,运行svn resolved让你的工作拷贝知道你已经完成了所有事情。

警告

你可以仅仅删除冲突的文件并且提交,但是svn resolved除了删除冲突文件,还修正了一些记录在工作拷贝管理区域的记录数据,所以我们推荐你使用这个命令。

18、输出指定文件或URL的内容。

svn cat 目标[@版本]…如果指定了版本,将从指定的版本开始查找。

svn cat -r PREV filename > filename (PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)

19、创建版本库

svnadmin create /mnt/MG701_NEW_DRIVE1/MG701

注意:各个子版本库的上层目录需要自己手动创建。比如:

建立/mnt/MG701_NEW_DRIVE1/的一个子版本库MG701可以这样操作:

先建立/mnt/MG701_NEW_DRIVE1/MG701目录(注意修改权限,让其读写可执行)

svnadmin create /mnt/MG701_NEW_DRIVE1/MG701

要建立另外一个子版本库得先在/mnt/MG701_NEW_DRIVE1/目录下建立一个目录,比如/MG702(注意修改权限,让其读写可执行)。然后svnadmin create /mnt/MG701_NEW_DRIVE1/MG702

20、开启版本库

svnserve -d -r /mnt/MG701_NEW_DRIVE1

注意:开启的时候有个技巧,如果要多个子版本库都开启,那么必须这样做:

svnserve -d -r /mnt/MG701_NEW_DRIVE1

这样一来,MG701和MG702都开启了。

21、svn import —递归提交一个路径的拷贝到版本库。

Import整个目录 svn import files PATH -m ―LogMessage―

例如:svn import alps svn://192.168.4.210/MG701/alps-m ―add test file for my

test― test.php

主意:这里红色标记的alps目录最好写出来(因为写出来之后,alps将会成为上传所有文件的顶层目录),否则上传到svn服务器上的将会是散的文件,而没有顶层目录。

●递归提交一个路径PATH的拷贝到URL。如果省略PATH,默认是―.‖。版本库中对应的父目录必须已经

创建。

●是否访问版本库:是

●选项

--message (-m) TEXT

--file (-F) FILE

--quiet (-q)

--non-recursive (-N)

--username USER

--password PASS

--no-auth-cache

--non-interactive

--force-log

--editor-cmd EDITOR

--encoding ENC

--config-dir DIR

--auto-props

--no-auto-props

--ignore-externals

●例子

这将本地目录myproj导入到版本库的trunk/misc。trunk/misc目录在导入之前不需要存在—svn import 会递归的为你创建目录。

$ svn import -m "New import" myproj https://www.doczj.com/doc/4310142187.html,/repos/trunk/misc Adding myproj/sample.txt

Transmitting file data .........

Committed revision 16.

需要知道这样不会在版本库创建目录myproj,如果你希望这样,请在URL后添加myproj:

$ svn import -m "New import" myproj https://www.doczj.com/doc/4310142187.html,/repos/trunk/misc/myproj Adding myproj/sample.txt

Transmitting file data .........

Committed revision 16.

在导入数据之后,你会发现原先的目录树并没有纳入版本控制,为了开始工作,你还是要运行svn checkout 得到一个干净的目录树工作拷贝(为了避免这么麻烦,可以选择自己搜集和总结出来的方法)。

附加说明:

●svn import [PATH] URL——将未版本化文件导入版本库的最快方法,会根据需要创建中介目录

eg: svn import -m 'note' mytree file:///var/svn/newrepos/some/project/mytree

●svn客户端是可以配置忽略哪些些文件,比如说我们不想提交*.o之类的文件。那么可以通过设置

svn:ignore或者global-ignore来进行过滤相关的文件。

有时基于某种需要,或者是导入一个别人之前维护的工程,里面有些*.so,*.a文件必须保留,那么如果在第一次import的时候全部导入呢?

单个的可以使用svn add后再提交这个文件,对于这样的文件较多且分散,可以使用--no-ignore选项。

eg: svn import [source] [repository] --no-ignore或svn add [source] --no-ignore 会自动将source目录下所有的内容全部import或者add。

22、svn export —导出一个干净的目录树

●svn export [-r REV] URL[@PEGREV] [PATH]

从版本库导出干净工作目录树:指定URL,如果指定了修订版本REV,会导出相应的版本,如果没有指定修订版本,则会导出HEAD,导出到PATH。如果省略PATH,URL的最后一部分会作为本地目录的名字。

●svn export [-r REV] PATH1[@PEGREV] [PATH2]

从工作拷贝导出干净目录树:是指定PATH1到PATH2,所有的本地修改将会保留,但是不再版本控制下的文件不会拷贝。

●是否访问版本库:只有当从URL导出时会访问

●选项

--revision (-r) REV

--quiet (-q)

--force

--username USER

--password PASS

--no-auth-cache

--non-interactive

--non-recursive (-N)

--config-dir DIR

--native-eol EOL

--ignore-externals

●例子

从你的工作拷贝导出(不会打印每一个文件和目录):

$ svn export a-wc my-export

Export complete.

●从版本库导出目录(打印所有的文件和目录):

$ svn export file:///tmp/repos my-export

A my-export/test

A my-export/quiz

...

Exported revision 15.

当使用操作系统特定的分发版本,使用特定的EOL字符作为行结束符号导出一棵树会非常有用。--native-eol选项会这样做,但是如果影响的文件拥有svn:eol-style = native属性,举个例子,导出一棵使用CRLF作为行结束的树(可能是为了做一个Windows的.zip文件分发版本):

$ svn export file:///tmp/repos my-export --native-eol CRLF

A my-export/test

A my-export/quiz

...

Exported revision 15.

你可以为--native-eol选项指定LR、CR或CRLF作为行结束符。

23、svn move —移动一个文件或目录。

svn move SRC DST

描述

这个命令移动文件或目录到你的工作拷贝或者是版本库。

提示

这个命令同svn copy加一个svn delete等同。

注意

Subversion不支持在工作拷贝和URL之间拷贝,此外,你只可以一个版本库内移动文件—Subversion不支持跨版本库的移动。

WC -> WC

移动和预订一个文件或目录将要添加(包含历史)。

URL -> URL

完全服务器端的重命名。

别名

mv, rename, ren

改变

如果是对URL操作则会影响版本库,否则是工作拷贝

是否访问版本库

只有在对URl操作时会

选项

--message (-m) TEXT

--file (-F) FILE

--revision (-r) REV (废弃的)

--quiet (-q)

--force

--username USER

--password PASS

--no-auth-cache

--non-interactive

--editor-cmd EDITOR

--encoding ENC

--force-log

--config-dir DIR

例子

移动工作拷bede一个文件:

$ svn move foo.c bar.c

A bar.c

D foo.c

移动版本库中的一个文件(一个立即提交,所以需要提交信息):

$ svn move -m "Move a file" https://www.doczj.com/doc/4310142187.html,/repos/foo.c \

https://www.doczj.com/doc/4310142187.html,/repos/bar.c

Committed revision 27.

因为你可以使用版本库的URL作为唯一参数取出一个工作拷贝,你也可以在版本库URL之后指定一个目录,这样会将你的工作目录放到你的新目录,举个例子:

$ svn checkout https://www.doczj.com/doc/4310142187.html,/repos/svn/trunk subv

A subv/Makefile.in

A subv/ac-helpers

A subv/ac-helpers/install.sh

A subv/ac-helpers/install-sh

A subv/build.conf

Checked out revision 8810.

这样将把你的工作拷贝放到subv而不是和前面那样放到trunk,如果subv不存在,将会自动创建。

附录一 svn选项

Subversion 命令行客户端:svn

为了使用命令行客户端,只需要输入svn和它的子命令以及相关的选项或操作的对象——输入的子命令和选项没有特定的顺序,下面使用svn status的方式都是合法的:

$ svn -v status

$ svn status -v

$ svn status -v myfile

虽然Subversion的子命令有一些不同的选项,但有的选项是全局的—也就是说,每个选项保证是表示同样的事情,而不管是哪个子命令使用的。举个例子,--verbose(-v)一直意味着“冗长输出”,而不管使用它的命令是什么。

--auto-props

开启auto-props,覆盖config文件中的enable-auto-props指示。

--change (-c) ARG

作为引用特定“修改”(也叫做修订版本)的方法,这个选项是“-r ARG-1:ARG”语法上的甜头。

--config-dir DIR

指导Subversion从指定目录而不是默认位置(用户主目录的.subversion)读取配置信息。

--diff-cmd CMD

指定用来表示文件区别的外部程序,当svn diff调用时,会使用Subversion的内置区别引擎,默认会提供统一区别输出,如果你希望使用一个外置区别程序,使用--diff-cmd。你可以通过--extensions(本小节后面有更多介绍)把选项传递到区别程序。

--diff3-cmd CMD

指定一个外置程序用来合并文件。

--dry-run

检验运行一个命令的效果,但没有实际的修改—可以用在磁盘和版本库。

--editor-cmd CMD

指定一个外部程序来编辑日志信息或是属性值。如何设定缺省编辑器见“配置”一节的editor-cmd小节。

--encoding ENC

告诉Subversion你的提交日志信息是通过提供的字符集编码的,缺省时是你的操作系统的本地编码,如果你的提交信息使用其它编码,你一定要指定这个值。

--extensions (-x) ARGS

指定一个或多个Subversion传递给提供文件区别的外部区别程序的参数,如果你要传递多个参数,你一定能够要用引号(例如,svn diff --diff-cmd /usr/bin/diff -x "-b -E")括起所有的参数。这个选项只有在使用--diff-cmd选项时使用。

--file (-F) FILENAME

为特定子命令使用命名文件的的内容,尽管不同的子命令对这些内容做不同的事情。例如,svn commit使用内容作为提交日志,而svn propset使用它作为属性值。

--force

强制一个特定的命令或操作运行。Subversion有一些操作防止你做普通的使用,但是你可以传递force选项告诉Subversion“我知道我做的事情,也知道这样的结果,所以让我做吧”。这个选项在程序上等同于在打开电源的情况下做你自己的电子工作—如果你不知道你在做什么,你很有可能会得到一个威胁的警告。

--force-log

将传递给--message(-m)或者--file(-F)的可疑参数指定为有效可接受。缺省情况下,如果选项的参数看起来会成为子命令的目标,Subversion会提出一个错误,例如,你传递一个版本化的文件路径给--file(-F)选项,Subversion会认为出了点错误,认为你将目标对象当成了参数,而你并没有提供其它的—未版本化的文件作为日志信息的文件。为了确认你的意图并且不考虑这类错误,传递--force-log选项给命令来接受它作为日志信息。

--help (-h或-?)

如果同一个或多个子命令一起使用,会显示每个子命令内置的帮助文本,如果单独使用,它会显示常规的客户端帮助文本。

--ignore-ancestry

告诉Subversion在计算区别(只依赖于路径内容)时忽略祖先。

--ignore-externals

告诉Subversion忽略外部定义和外部定义管理的工作拷贝。

--incremental

打印适合串联的输出格式。

--limit NUM

只显示第一个NUM日志信息。

--message (-m) MESSAGE

表示你会在命令行中指定日志信息,紧跟这个开关,例如:

$ svn commit -m "They don't make Sunday."

--new ARG

使用ARG作为新的目标(结合svn diff使用)。

--no-auth-cache

阻止在Subversion管理区缓存认证信息(如用户名密码)。

--no-auto-props

关闭auto-props,覆盖config文件中的enable-auto-props指示。

--no-diff-added

防止Subversion打印添加文件的区别。缺省的行为方式是,当添加一个文件时,svn diff打印的信息和比较一个空白文件相同。

--no-diff-deleted

防止Subversion打印删除文件的区别信息,缺省的行为方式是当你删除了一个文件后运行svn diff打印的区别与删除文件所有的内容得到的结果一样。

--no-ignore

在状态列表中显示global-ignores配置选项或者是svn:ignore属性忽略的文件。见“配置”一节和“忽略未版本控制的条目”一节查看详情。

--no-unlock

不自动解锁文件(缺省的提交行为是解锁提交列出的所有文件),更多信息见“锁定”一节。

--non-interactive

如果认证失败,或者是不充分的凭证时,防止出现要求凭证的提示(例如用户名和密码)。这在运行自动脚本时非常有用,只是让Subversion失败而不是提示更多的信息。

--non-recursive (-N)

防止子命令迭代到子目录,大多数子命令缺省是迭代的,但是一些子命令—通常是那些潜在的删除或者是取消本地修改的命令—不是。

--notice-ancestry

在计算区别时关注祖先。

--old ARG

使用ARG作为旧的目标(结合svn diff使用)。

--password PASS

指出在命令行中提供你的密码—另外,如果它是需要的,Subversion会提示你输入。

--quiet (-q)

请求客户端在执行操作时只显示重要信息。

--recursive (-R)

让子命令迭代到子目录,大多数子命令缺省是迭代的。

--relocate 目的路径[PATH...]

svn switch子命令中使用,用来修改你的工作拷贝所引用的版本库位置。当版本库的位置修改了,而你有一个工作拷贝,希望继续使用时非常有用。见svn switch的例子。

--revision (-r) REV

指出你将为特定操作提供一个修订版本(或修订版本的范围),你可以提供修订版本号,修订版本关键字或日期(在华括号中)作为修订版本开关的参数。如果你希望提供一个修订版本范围,你可以提供用冒号隔开的两个修订版本,举个例子:

$ svn log -r 1729

$ svn log -r 1729:HEAD

$ svn log -r 1729:1744

$ svn log -r {2001-12-04}:{2002-02-17}

$ svn log -r 1729:{2002-02-17}

见“修订版本关键字”一节查看更多信息。

--revprop

LINUX下SVN安装

环境 1. 安装Apache 2.2.14 2. 安装Subversion 1.6.6 3. 安装后的系统设置 4. Apache设置 5. svn库的配置 6. 运行SVN服务器 Created by okala at 2009-12-25 环境: Red Hat Enterprise Linux Server release 5.3 (Tikanga) httpd-2.2.14.tar.gz subversion-1.6.6.tar.gz 到官网https://www.doczj.com/doc/4310142187.html,/ 下载当前最新的稳定版本subversion-1.6.6.tar.gz 到官网https://www.doczj.com/doc/4310142187.html,/ 下载当前最新的稳定版本httpd-2.2.14.tar.gz 1. 安装Apache 2.2.14 用root账号执行以下命令: 引用 tar zxf httpd-2.2.14.tar.gz #解压到当前目录 引用 cd httpd-2.2.14 #进入解压后的目录 引用

./configure --prefix=/local/svnroot/apache2 --enable-so --enable-mods-shared=all --enable-dav=share --enable-dav-fs --with-ldap --enable-ldap --enable-authnz-ldap --enable-authn-alias #定义安装的目标路径(可据自己需要修改),使能LDAP 引用 make #编译 引用 make install #安装 引用 /local/svnroot/apache2/bin/apachectl start #启动Apache 用IE访问以下网址,http://hostIP/,如果提示It works!,则Apache安装成功。 然后就可以先停止Apache了: 引用 /local/svnroot/apache2/bin/apachectl stop #停止Apache 2. 安装Subversion 1.6.6 用root账号执行以下命令: 引用 tar zxf subversion-1.6.6.tar.gz #解压到当前目录 引用 cd subversion-1.6.6

svn命令大全

svn命令通常都有帮助,可通过如下方式查询: $ svn help 知道了子命令,但是不知道子命令的用法,还可以查询: $ svn help add 开发人员常用命令 (1) 导入项目 $ cd ~/project $ mkdir -p svntest/{trunk,branches,tags} $ svn import svntest https://localhost/test/svntest --message "Start project" ... $ rm -rf svntest 我们新建一个项目svntest,在该项目下新建三个子目录:trunk,开发主干;branches,开发分支;tags,开发阶段性标签。然后导入到版本库test下,然后把svntest拿掉。 (2) 导出项目 $ svn checkout https://localhost/test/svntest/trunk 修订版本号的指定方式是每个开发人员必须了解的,以下是几个参考例子,说明可参考svn推荐书。 $ svn diff --revision PREV:COMMITTED foo.c # shows the last change committed to foo.c $ svn log --revision HEAD # shows log message for the latest repository commit $ svn diff --revision HEAD # compares your working file (with local changes) to the latest version # in the repository $ svn diff --revision BASE:HEAD foo.c # compares your “pristine” foo.c (no local changes) with the # latest version in the repository

linux下搭建svn服务器(doc 8页)

linux下搭建svn服务器(doc 8页)

Linux下搭建SVN服务器环境(svnserve方式) 环境:redhat5(apr.apr-util.zlib.subversion的压缩文件都是放在/usr/linuxsvn目录下,下面的解压命令tar zvxf解压出来的文件就直接是放在这个目录下,文件名跟压缩文件的名字是一样的) 一、安装apr、apr-util跟zlib 1、下载apr、apr-util与zlib apr-1.3.3.tar.gz apr-util-1.3.4.tar.gz zlib-1.2.3.tar.gz openssl-0.9.8k.tar.gz httpd-2.2.9.tar.bz2 libxml2-2.7.3.tar.gz 2、解压 tar zvxf apr-1.3.3.tar.gz

打开浏览器输入http://服务器ip 如果出现 It Works! Apache安装成功 如果出现这个错误Invalid command 'AuthDigestProvider', perhaps misspelled or defined by a module not included in the server configuration /usr/local/apache2/conf/extra/httpd-dav.conf 提示这个文件31行有问题,那么你就 Vi /usr/local/apache2/conf/extra/httpd-dav.conf 找到31行,把这个注释掉# AuthDigestProvider file 这样就ok了! cd openssl-0.9.8k ./config --prefix=/usr/local/ssl/ make make install cd libxml2-2.7.3 vi INSTALL ./configure --help ./configure make make install cd openssl-0.9.8k ./config ./config -t

使用SVN命令行工具

使用SVN命令行工具 如果你不知道命令怎么用svn命令,可通过如下方式查询:svn help知道了子命令,但是不知道子命令的用法,还可以查询:svn help ci 开发人员常用命令导入项目svn import https://www.doczj.com/doc/4310142187.html,:82/pthread --message "Start project"导出项目svn checkout https://www.doczj.com/doc/4310142187.html,:82/pthread采用export 的方式来导出一份“干净”的项目svn export https://www.doczj.com/doc/4310142187.html,:82/pthread pthread为失败的事务清场svn cleanup在本地进行代码修改,检查修改状态svn status -vsvn diff更新(update)服务器数据到本地svn update directorysvn update file增加(add)本地数据到服务器svn add file.csvn add dir对文件进行改名和删除svn mv b.c bb.csvn rm d.c提交(commit)本地文档到服务器svn commitsvn cisvn ci -m "commit"查看日志svn log directorysvn log file相关的一些东西:1、在本地文件中,每个目录下都有一个.svn文件夹(属性为隐藏),保存了相关的信息。2、注册环境变量SVN_EDITOR为"E:\Program Files\Vim\vim71\gvim.exe",结果在svn ci的时候,出现错误:'E:\Program' 不是内部或外部命令,也不是可运行的程序或批处理文件。svn: 提交失败(细节如下):svn:

SVN命令使用手册

SVN命令使用手册修改版本记录 M:修改A:添加D:删除

SVN命令使用 一、常用命令 1.Svnadmin create创建库 svnadmin create path 在windows版本上: D:\>svnadmin create test2 D:\> 通过dir来列出目录中文件,已经包含test2,如图1所示: 图1 说明此时已经成功建立 2.Svn import导入项目 svn import project_path svn_lib_path -m “comment” 举例: 假设有一个工程名称unismg,代码的文件目录是unicom; A、我们在D盘新建目录unismg,在此目录下新建三个文件目录,如图2所示: 图2

trunk中存放的是项目主线;branches中存放源码分支;tags存放在开发过程中做的标签。 B、我们将代码unicom放到d:\unismg\trunk\中 C、执行命令D:\>svn import d:\unismg file:///d:/test2/unismg -m "initial import unismg" 结果如图3所示: 图3 这样我们就将工程代码导入svn库中管理。此时删除D:\>unismg目录也没有关系,因为你的源代码已经在SVN库中管理了。 有人会有疑问,为什么我到test2目录中去找*.c文件怎么一个没有找到啊,是的SVN 管理代码,并不是简单的保存文件,而是利用bdb管理的,所以你看不到源码存在。 之后你可以使用后续的命令来工作了。 多说一句,关于svn_lib_path的几种形式: file:///直接版本访问(本地磁盘) http://通过配置subversion的Apache服务器的WebDAV协议 https://与http://相似,只不过增加了ssh协议 Svn://通过svnserver服务自定义的协议 Svn+ssh://与svn://相似,但是通过SSH协议封装 比如,联通在信网关在30.251linux服务器上,使用的是svnserver服务自定义的协议,那么,导入工程代码时应采用的命令是: svn import $path/proj/unismg svn://192.168.30.251:3482-m "initial import unismg" 3.Svn co: 将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 举例: svn co svn://192.168.30.251:3482/trunk/unicom 下面信息就是从库中下载的代码信息。

UNIX LINUX开发环境使用SVN方法探讨

Unix&Linux开发环境使用SVN方法探讨一、 DAS现有的工作模式: 二、使用SVN的工作方式

三、DAS开发环境 DAS系统的开发环境种类多,常用到有Solaris、AIX、HP-UX、Redhat等,SVN命令行支持所有的开发平台,可以通过SVN命令快速执行操作。也可以通过JAVA的方式,运行在Eclipse或者第三方图形工具。 SVN支持平台列表 四、SVN客户端常用命令简介: 1、检出 svn co http://路径(目录或文件的全路径)[本地目录全路径] --username用户名--password密码svn co svn://路径(目录或文件的全路径)[本地目录全路径] --username用户名--password密码 svn checkout http://路径(目录或文件的全路径)[本地目录全路径] --username用户名 svn checkout svn://路径(目录或文件的全路径)[本地目录全路径] --username用户名 注:如果不带--password参数传输密码的话,会提示输入密码,建议不要用明文的--password 选项。 其中username与password前是两个短线,不是一个。 不指定本地目录全路径,则检出到当前目录下。 例子: svn co svn://192.168.0.3/测试工具/home/testtools--username wzhnsc svn co http://192.168.0.3/test/testapp --username wzhnsc svn checkout svn://192.168.0.3/测试工具/home/testtools--username wzhnsc svn checkouthttp://192.168.0.3/test/testapp --username wzhnsc 2、导出(导出一个干净的不带.svn文件夹的目录树) svn export[-r版本号] http://路径(目录或文件的全路径) [本地目录全路径] --username用户名 svn export[-r版本号] svn://路径(目录或文件的全路径) [本地目录全路径] --username用户名 svn export本地检出的(即带有.svn文件夹的)目录全路径要导出的本地目录全路径注:第一种从版本库导出干净工作目录树的形式是指定URL, 如果指定了修订版本号,会导出相应的版本, 如果没有指定修订版本,则会导出最新的,导出到指定位置。 如果省略本地目录全路径,URL的最后一部分会作为本地目录的名字。

SVN使用手册大全(史上最全)

目录 1.修改SVN访问密码 (1) 2.SVN客户端使用说明 (2) 2.1.安装SVN客户端 (2) 2.2.迁出配置库内容 (3) 2.3.维护工作文件 (4) 2.3.1.增加文件 (4) 2.3.2.更新文件 (8) 2.3.3.删除文件 (9) 2.3.4.修改文件 (10) 2.3.5.比较版本差异 (10) 2.3.6.撤销更改 (13) 2.3.7.锁定和解锁 (13) 2.3.8.重命名文件 (14) 2.3.9.获取历史文件 (14) 2.3.10.检查冲突 (15) 2.3.11.解决冲突 (16) 2.3.12.忽略无需版本控制的文件 (16) 2.3.13.去除SVN标志 (17) 2.3.14.查看文件每行的修改信息 (17) 2.3.15.重置访问路径 (18) 2.3.16.本地路径转换 (18) 2.4.浏览版本库 (18) 2.5.建立标签 (19) 2.6.建立分支 (19) 2.7.清除用户名等信息 (20) 2.8.统计信息 (21) 3.MYECLIPSE集成SVN (23) 3.1.安装SVN插件 (23) 3.2.配置M Y E CLIPSE提交目录 (28)

1. 修改SVN访问密码 打开IE,在地址栏中输入地址:http:// /svnmanager/index.php,进入SVNManager的欢迎界面,如下图所示: 点击“登陆”按钮进入登陆界面,如下图所示: 输入已知的用户名和密码,点击“登陆”按钮进入用户管理界面,点击“用户管理”按钮显示“编辑用户”菜单,如下图所示: 点击“编辑用户”按钮,进入用户信息修改界面,如下图所示:

linux-SVN的介绍及使用方法

一、Linux-SVN的介绍及使用方法 1. SVN简介 SVN 是subversion简称,是一个开源的版本控制系统。我们在解bug过程中主要用于对解决某个bug而引起代码变动的情况(俗称patch)的提交,系统集成组在某一时间会取出SVN中一定阶段内提交的patch进行集成,从而更新系统的版本。 linux系统中安装svn,主要使用命令apt-get install subversion 2. SVN使用 2.1 从SVN服务器拷贝svn目录 命令:$ svn co http://255.255.255.255(IP地址)/svn/ 可先登录http://255.255.255.255/svn,输入用户名和密码(需在管理员处开通相应上传下载权限) ①svn add命令 用于将patch提交至本地版本库(加入版本控制),还未提交至远程服务器,不会更改远程(http://255.255.255.255/svn/)上的内容。另外,svn revert是撤销此次添加(这里不常用)。 $ svn add 007_fix_name_issue_000000.patch 该命令执行后,终端显示情况如下: ②svn commit命令 将本地版本中添加的文件上传到远程服务器上,更新服务器上的内容。 $ svn commit 007_fix_name_issue_000000.patch -m "fix name issue (as an example)" 其中-m 表示-message,“”中的内容表示该patch具体修改问题的描述信息,描述信息必不可少!有助于后续patch提交与否的验证。 该命令执行后,终端显示情况如下:

linux下svn管理员手册

1.安装apr tar xvfz apr-0.9.17.tar.gz ./configure 2.安装apr-util tar xvfz apr-util-0.9.15.tar.gz ./configure --with-apr=/usr/local/apr/ 3.安装subversion-1.5.3 ./configure --prefix=/usr/local/svn --with-apr=/usr/local/apr/ --with-apr-util=/us r/local/apr-util/ 4.创建库文件所在的目录 mkdir /export/svncheck/ 创建版本库 mkdir /export/svncheck/版本库名 /usr/local/svn/bin/svnadmin create /export/svncheck/版本库名 5.启动SVN /usr/local/svn/bin/svnserve -d -r /export/svncheck/ 配置用户和权限 创建项目库同时也会建立自己的权限配置文件,权限配置目录: /export/svncheck/版本库名/conf/ 1. 修改svnserve.conf: # auth-access = write # password-db = passwd 改为:(将#和空格去掉) auth-access = write //通过验证的用户才能有读写的权限 password-db = passwd //验证用户所使用的文件passwd 2. 添加用户 修改同目录的passwd文件 [users] admin = 123456 //以名值的方式存储用户名和密码“用户名 = 密码” 3. 设置访问权限 修改同目录下的authz文件来设置访问权限 在[groups]下创建用户组例如这里是: [groups] Admin=admin Developer=developer1,developer2 以上便创建了两个用户组,分别是admin和developer和其相应的组的成员。 设置访问路径 [/] *=r @admin=rw

svn常用命令详解

一.SVN导出(check out 和export的区别) 1.check out跟check in对应,export跟import对应; 2.check out导出获得文件后,导出的文件仍处于SVN版本控制中,与版本库保持关 联,比如你可以进行Svn Update或者Svn Commit操作。同时导出文件夹下有一个.svn的隐藏文件夹,存储着一些版本的元数据信息。 3.export 简单导出一个版本的数据,导出的文件脱离SVN版本控制,修改后无进行 Update和Commit操作。导出文件夹下没有.svn目录。 二.linux下svn命令大全 1、将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add*.php(添加当前目录下所有的php文件) 3、将改动的文件提交到版本库 svn commit -m “LogMessage“[-N][--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)

例如:svn commit -m “add test file for my test“test.php 简写:svn ci 4、加锁/解锁 svn lock -m “LockMessage“[--force] PATH 例如:svn lock -m “lock test file“test.php svn unlock PATH 5、更新到某个版本 svn update -r m path 例如: svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。 svn update -r 200 test.php(将版本库中的文件test.php还原到版本200) svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit) 简写:svn up 6、查看文件或者目录状态 1)svn status path(目录下的文件和子目录的状态,正常状态不显示) 【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】 2)svn status -v path(显示文件和子目录状态) 第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改

linux下svn的配置及svn常用命令

SVN是Subversion的简称,是一个开放源代码的版本控制系统,svn服务器有两种运行方式:独立服务器和借助apache运行。右图是一个svn的工作流程,它可以很方便用户的代码编写。 1.首先安装SVN:”sudo apt-get install subversion”. 查看svn的版本和确定是否安装成功:”svnserve –version”. 2.创建svn仓库:“svnadmin create msm”,其中msm是版本仓库的名字,仓库建立好了以后会有出现一个仓库名字的文件夹,文件夹下面有conf等几个目录和文件.接下来就需要设置版本仓库的权限了。这里说明一下:版本库之间是独立的。(下图为msm的目录) 3.增加用户 修改conf文件夹下的authz文件,该配置文件采用”基于路径授权”的策略,中括号里指定路径,以下列出对各用户的授权。包括只读r,读写rw。没有列出的用户,则不允许访问。还可以对用户分组,列子如下 用户组格式: [groups]<用户组名>=<用户1>,<用户2>其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。版本库目录格式: [<版本库>:/项目/目录]@<用户组名>=<权限><用户名>=<权限>, 其中,方框号内部分可以有多种写法: /,表示根目录(仓储目录)及以下。根目录是svnserve启动时指定的,我们指定/opt/svndata。这样,/就是表示对全部版本库设置权限。权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。 下图是我增加的用户组:(注意:等号后留有空格) 增加后:

常用linux svn命令

linux下svn客户端常用命令: 1.svnadmin create path创建一个新的版本库,(path为你想创建版本库的目录路径,如创建版本库目录为cellsms:svnadmin create /home/c7mon/svn/cellsms)。 2.svn mkdir URL 创建目录,向版本库新添加一个目录,(立即提交,所以需要日志信息):如新增trunk目录:svn mkdir file:///home/c7mon/svn/cellsms/trunk -m "此目录的说明信息"。 svn mkdir newdir在工作拷贝下新建一个目录,如新增hello目录,即在工作拷贝(svn checkout数据的目录下):svn mkdir hello。 3.svn import URL向版本库导入数据,需要日志信息。如导入当前目录下wwm目录到版本库trunk目录中:svn import file:///home/c7mon/svn/cellsms/trunk/wwm -m "日志说明信息" 4.svn checkout URL导出一个工作拷贝,cd到你要存放导出数据的目录,如导出wwm 目录:svn checkout file:///home/c7mon/svn/cellsms/trunk/wwm,或svn checkout svn://192.168.3.33/home/c7mon/svn/cellsms/trunk/wwm。svn://方式需要用户名和密码,(svn co为svn checkout简写)。 5.svn commit 提交工作拷贝的修改到版本库中,如对wwm下的文件进行修改后提交:svn commit -m "",""可以为空,最好加上日志说明。svn ci 为其简写。 6.svn add file/dir新添加的文件或目录,此处dir为linux命令mkdir在工作拷贝下创建的目录,不是svn mkdir命令创建的目录,所以需要svn add预订添加。svn add需要在工作拷贝下执行,如在4中svn co出的工作拷贝目录wwm下新添加了hehe.c:svn add hehe.c。然后执行svn commit提交到版本库。 7.svn copy URL URL完全的服务器端拷贝,通常用在分支和标签。如wwm项目完成后发布版本wwm_1.0: svn copy file:///home/c7mon/svn/cellsms/trunk/wwm file:///home/c7mon/svn/cellsms/trunk/tags/wwm_1.0 -m "it's the wwm_1.0 for anhui" 。或svn copy svn://192.168.3.33/home/c7mon/svn/cellsms/trunk/wwm svn://192.168.3.33/home/c7mon/svn/cellsms/trunk/tags/wwm_1.0 -m "it's the wwm_1.0 for anhui"。(tags目录需提前在版本库中建好。) 如果wwm_1.0版本出现BUG,可以拷贝tags目录下的wwm_1.0到建好的branches目录下,然后svn co 出branches下的wwm_1.0进行修改。这样trunk目录下的wwm可以继续进行开发,而不会与branches下1.0版本的修改产生冲突。当branches下的wwm_1.0版本修复bug后,可以使用svn merge命令,将修改的部分合并到trunk下的wwm工程中。 8.svn list URL 显示path目录下的所有属于版本库的文件和目录(简写svn ls) 如列出cellsms下目录信息:svn list svn://192.168.3.33/home/c7mon/svn/cellsms

SVN-高级应用使用指南

文档规则 [本地工作区] :work copy,本地工作副本; [主项目]:引用共用模块的新项目(工程) 最新版本(HEAD revision):版本库里文件或目录的最新版本 SA :SVN服务器的管理员 PRA :单个项目库的管理员,或者是项目负责人 User :普通工作人员 WC :work copy ,本地工作副本 一、模块化开发中svn的使用 主要介绍模块化开发中公用模块/组件的版本控制,介绍两种方法。其中,公用模块一般指那些已经完成的、不可修改的、无法编译成dll的、功能较为完整的代码群。 1.1手工维护公用模块/组件的[本地工作区] 将公用模块(的所需版本)直接取出ckeckout 到本地,公用模块的[本地工作区] 可以作为被引用的[主项目] [本地工作区] 的子目录也可以放在其他独立目录中。[主项目]的提交commit 对公用模块的[本地工作区] 不会发生任何影响,而且公用模块的[本地工作区] 需要项目团队中的每个成员与[主项目] [本地工作区] 相对独立的维护(取出ckeckout ),可能会出现不同项目成员之间的公用模块[本地工作区] 不一致的错误。 1.2 Svn自动维护公用模块/组件的[本地工作区] 需要使用svn:externals属性,具体操作步骤如下:察看[主项目] [本地工作区] 的目录属性

添加svn:externals 属性,格式:子目录名称-r版本号公用模块的URL。公用模块取出ckeckout出来的[本地工作区] 必须作为[主项目][本地工作区] 的子目录,格式中的“子目录名称”就是指公用模块的[本地工作区] 目录名称,注意不要与[主项目]自身的目录同名。如果需要使用公用模块的特殊版本,需要设置格式中的“版本号”,注意加上“-r”。设定好svn:externals属性后需要进行提交commit操作。项目团队的其他成员直接更新update即可,能够自动得到公用模块的[本地工作区]。[主项目]的提交commit对公用模块的[本地工作区] 不会发生任何影响。如果引用多个模块,只需要在设置该属性值的时候将多个模块的路径都填写上去即可。 注意:公用模块的[本地工作区] 一般不建议进行修改,即不要直接对公用模块的[本地工作区] 进行修改、提交commit 操作,建议管理员将公用模块的svn库的权限设置设定为只读权限。如果公用模块确实需要针对[主项目]进行个性化修改,这种情况的处理方法在此次讲座的后面将会谈到。

linux下svn升级

linux下svn升级 环境: 操作系统:RHEL 5.4 x86_64 SVN版本:1.4.2->1.8.8 一、检查安装包 我采用的是目前当前网站发布的版本:subversion-1.8.8 首先,需要安装预先安装六个组件,你的subversion才能正常工作。 apr-util、 apr、pcre、scons 、serf、sqlite-amalgamation -本文假定apahce已经安装! -系统在默认情况下,是已经有apr-util及apr这两个包的,只不过他们的版本较低,只支持subversion 1.4 因此,具体可以看看: # rpm -qa | grep apr apr-util-1.2.7-7.el5_3.2 apr-util-1.2.7-7.el5_3.2 apr-1.2.7-11.el5_3.1 xorg-x11-drv-dynapro-1.1.0-2 apr-1.2.7-11.el5_3.1 而subversion要求较高的版本,为此,我们需要删除系统自带的apr,apr-util 这两个包,强行删掉! # rpm -e --allmatches apr-util error: Failed dependencies: libaprutil-1.so.0()(64bit) is needed by (installed) subversion-1.4.2-4.el5_3.1.x86_64 libaprutil-1.so.0()(64bit) is needed by (installed) httpd-2.2.3-31.el5.centos.x86_64 libaprutil-1.so.0 is needed by (installed) subversion-1.4.2-4.el5_3.1.i386 # rpm -e --allmatches apr-util --nodeps # rpm -e --allmatches apr --nodeps .

svn 常见报错

常见错误提示: 1:?.? is not a working copy. Can?t open file ….svn/entries?:系统找不到指定的路径。 原因是输入的访问路径不正确,如svn://192.168.6.200/如果最后少写了“/”,就会出现这种错误提示。 2:将文件checkout之后,没有出现SVN的图标,是怎么回事? 有些时候在客户端Checkout文件后,SVN的系统图标也会不显示,可以执行一下“Clean up”,就会出现SVN的系统图标。 3:为什么添加的文件,别人看不到,版本库里也没有? 最可能的原因是,你只是执行了“Add”而没有“Commit”,这样只是在本地注明某个文件是预定要增加的,而没有实际添加到版本库中,要添加到版本库必须执行“Commit”。删除文件也是一样。 4 :“Commit failed。……You have to update your working copy first”提交失败,需要首先执行更新操作。多人同时修改同一文件,在提交前其他人已经抢先提交到SVN服务器中,导致该错误;解决方法:对工作复本中的文件进行更新即可。 5. 更新时提示文件发生冲突:“One or more files are not a conflicted state。” 多人同时修改同一文件的同一部分,SVN无法自动进行合并,会导致该错误;解决方法:对工作复本中的文件和服务器的文件进行比较,手工合并即可。 6.“Commit failed;File already exists”提交失败,文件**已存在。 版本管理系统在改变你的计算机上的工作副本时,是非常的小心的。在做任何事情之前,它都尽可能把您的意图写到你的计算机上的日志文件中去。但如果偶然地操作中断了(例如:突然停电了,您的计算机死机了),那么日志文件记录就可能同您最后的工作状态不一致。一种建议解决途径:先把要提交的东西拷出来放到其它目录,再更新本地文件,然后把拷出来的文件重新放回去提交。 7:执行clean up时,出现错误“Subversion reported an error while doing a cleanup!” '**' is not a working copy directory ” 遇到这种情况,先删除隐藏文件夹.svn中的tmp下面的临时文件,再执行clean up。 8:因为仓库与目录很多,使用TSVN每次选择目录URL of repository有很多地址,如何才清除呢?像清除浏览器中的历史那样,用什么方法呢? 右键->TortoiseSVN->Settings->Saved Data,就可以清除你想要的东西了,包括URL、log、窗口大小、密码缓存等。 9:在SVN中选中一个目录show log时,出现了某些版本只显示版本号和(no date),没有其他信息,什么原因引起的? 出现了(no date)的revision,为其他人修改了你所没有权限访问的某个目录下的文件。

Linux下SVN命令使用大全

Linux下SVN命令使用大全 版本号V0.1 修订内容 详细修订日期文件性质 备注正在继续添加和完善... 1、将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、往版本库中添加新的文件、目录或符号链 svn add PATH... 例如:svn add test.php(添加test.php) svn add *.php(添加当前目录下所有的php文件) ●文件、目录或符号链到你的工作拷贝并且预定添加到版本库。它们会在下次提交上传并添加到版本库,如 果你在提交之前改变了主意,你可以使用svn revert取消预定。 ●是否访问版本库否 ●选项 --targets FILENAME --non-recursive (-N) --quiet (-q) --config-dir DIR --no-ignore --auto-props --no-auto-props --force ●例子 添加一个文件到工作拷贝: $ 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 … 3、将改动的文件提交到版本库 svn commit -m ―LogMessage― [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock 开关) 例如:svn commit -m ―add test file for my test― test.php 简写:svn ci 4、加锁/解锁 svn lock -m ―LockMessage― [--force] PATH 例如:svn lock -m ―lock test file― test.php svn unlock PATH 5、更新到某个版本 svn update -r m path 例如: svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。 svn update -r 200 test.php(将版本库中的文件test.php还原到版本200) svn update test.php (更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)

SVN常用命令(WINDOWS)

SVN常用命令(windows) 1、将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、往版本库中添加新的文件 svn add file 例如:svn addtest.php(添加test.php) svn add*.php(添加当前目录下所有的php文件) 3、将改动的文件提交到版本库 svn commit-m“LogMessage“[-N][--no-unlock]PATH(如果选择了保持锁,就使 用–no-unlock开关) 例如:svn commit-m“add test file for my test“test.php 简写:svn ci 4、加锁/解锁 svn lock-m“LockMessage“[--force]PATH 例如:svn lock-m“lock test file“test.php svn unlock PATH 5、更新到某个版本 svn update-r m path 例如: svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版 本。 svn update-r200test.php(将版本库中的文件test.php还原到版本200) svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit) 简写:svn up 6、查看文件或者目录状态 1)svn status path(目录下的文件和子目录的状态,正常状态不显示) 【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被 锁定】 2)svn status-v path(显示文件和子目录状态) 第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改 人。 注:svn status、svn diff和svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。 简写:svn st 7、删除文件 svn delete path-m“delete test fle“ 例如:svn delete svn://192.168.1.1/pro/domain/test.php-m“delete test file” 或者直接svn delete test.php然后再svn ci-m‘delete test file‘,推荐使用这种 简写:svn(del,remove,rm)

LINUX SVN客户端使用方法介绍

svnaddvalues/strings.xml//--添加 svnst//--查看状态 svnci//--提交svnci-msvnci,permission 1、将文件checkout到本地目录 svncheckoutpath(path是服务器上的目录) 例如:svncheckoutsvn://192.168.1.1/pro/domain 简写:svnco 2、往版本库中添加新的文件 svnaddfile 例如:svnaddtest.php(添加test.php) svnadd*.php(添加当前目录下所有的php文件) 3、将改动的文件提交到版本库 svncommit-mLogMessage[-N][--no-unlock]PATH(如果选择了保持锁,就使用--no-unlock开关) 例如:svncommit-maddtestfileformytesttest.php 简写:svnci 4、加锁/解锁 svnlock-mLockMessage[--force]PATH 例如:svnlock-mlocktestfiletest.php svnunlockPATH 5、更新到某个版本 svnupdate-rmpath

例如: svnupdate如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。 svnupdate-r200test.php(将版本库中的文件test.php还原到版本200) svnupdatetest.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svnresolved,最后再提交commit) 简写:svnup 6、查看文件或者目录状态 1)svnstatuspath(目录下的文件和子目录的状态,正常状态不显示) 【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】 2)svnstatus-vpath(显示文件和子目录状态) 第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。 注:svnstatus、svndiff和svnrevert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。 简写:svnst 7、删除文件 svndeletepath-mdeletetestfle 例如:svndeletesvn://192.168.1.1/pro/domain/test.php-mdeletetestfile 或者直接svndeletetest.php然后再svnci-m'deletetestfile‘,推荐使用这种 简写:svn(del,remove,rm) 8、查看日志 svnlogpath 例如:svnlogtest.php显示这个文件的所有修改记录,及其版本号的变化

相关主题
文本预览
相关文档 最新文档