SVN使用和SVN常用命令
SVN使用手册
SVN使用手册目录0 SVN简介 (1)1 SVN服务器篇 (1)1.2 创建一个svn版本仓库名为svnrepos (1)1.2 设置登陆用户的用户名和密码 (2)1.3 设置用户权限 (2)1.4 修改svn服务文件 (3)1.5 启动svn版本库 (3)2 SVN客户端篇 (4)2.1 安装svn客户端 (4)2.1.1 svn的语言设置 (5)2.2 下载版本库 (6)2.3 推送版本库到服务器 (7)2.4 获取更新 (9)2.5 版本还原 (9)2.6 版本回退 (12)3 SVN分支管理篇 (13)3.1 svn分支简述 (13)3.2 svn分支管理 (14)3.2.1 建立主干分支目录结构 (14)3.2.2 创建分支 (15)3.2.3 合并分支到主干 (15)3.3 svn分支应用 (17)3.3.1 测试分支 (18)3.3.2 多分支并行 (18)3.3.3 分支合并的时机 (18)4 版本冲突篇 (18)4.1 版本冲突原因 (18)4.2 版本冲突现象 (19)4.3 版本冲突解决 (19)4.4 解决冲突的三种选择 (20)4.5 解决冲突 (21)4.6 如何降低冲突解决的复杂度 (22)附录 (23)常见SVN图标的含义 (23)0 SVN简介SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。
互联网上很多版本控制服务已从CVS迁移到Subversion。
说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。
SVN是一个集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。
中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。
SVN-man
SVN常用命令 常用命令 list (ls)
list (ls): 列出版本库中的目录内容。 用法: list [TARGET[@REV]...]
update (up)
update (up): 将版本库的修改合并到工作副本中。 用法: update [PATH...] 如果没有指定版本,则将工作副本更新到 HEAD 版本。否则同步到 -r 选项所 指定的版本。 每更新一项就输出一行信息,使用首字符来报告执行的动作。这些字符的含义是: A 已添加 D 已删除 U 已更新 C 合并冲突 G 合并成功 E 已存在
SVN常用命令 常用命令 revert
revert: 将工作副本文件恢复到原始版本(恢复大部份的本地修改)。 用法: revert PATH... 注:本子命令不会访问网络,是本地操作,它能解除任何冲突的状态,但是,它不恢 复被删除的目录。恢复被删除的目录,需要使用up命令。
copy (cp)
copy (cp): 在工作副本或版本库中复制数据,主要用来创建分支和tag。 用法: copy SRC[@REV]... DST 注:SRC和DST可以是WC或URL
SVN命令行使用手册 命令行使用度 服务器与 库结构 SVN服务器地址 服务器地址
https:///产品库路径 如:https://SVN常用命令 常用命令 info
info: 显示本地或远程条目的信息。 用法: info [TARGET[@REV]...] 主要参数: -r ARG:指定从哪个版本开始显示目标 -R:向下递归 注:默认目录为“.”,即当前目录
log
log: 显示一组版本与/或文件的提交日志信息。 用法: 1、log [PATH] 2、log URL[@REV] [PATH...] 主要参数: -r ARG:指定从哪个版本开始向前显示所有log信息 -q [--quiet]:只打印概要信息 -v [--verbose]:打印附加信息 --stop-on-copy :查看历史不要跨越不同的副本
SVN常用命令(WINDOWS)
SVN常用命令(windows)1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co2、往版本库中添加新的文件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 ci4、加锁/解锁svn lock-m“LockMessage“[--force]PATH例如:svn lock-m“lock test file“test.phpsvn unlock PATH5、更新到某个版本svn update-r m path例如:svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update-r200test.php(将版本库中的文件test.php还原到版本200)svn update test.php(更新,于版本库同步。
如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)简写:svn up6、查看文件或者目录状态1)svn status path(目录下的文件和子目录的状态,正常状态不显示)【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】2)svn status-v path(显示文件和子目录状态)第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
svn 命令行
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我们新建一(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$ svn log --revision BASE:HEAD# shows all commit logs since you last updated$ svn update --revision PREV foo.c# rewinds the last change on foo.c# (foo.c's working revision is decreased)$ svn checkout --revision 3# specified with revision number$ svn checkout --revision {2002-02-17}$ svn checkout --revision {15:30}$ svn checkout --revision {15:30:00.200000}$ svn checkout --revision {"2002-02-17 15:30"}$ svn checkout --revision {"2002-02-17 15:30 +0230"}$ svn checkout --revision {2002-02-17T15:30}$ svn checkout --revision {2002-02-17T15:30Z}$ svn checkout --revision {2002-02-17T15:30-04:00}$ svn checkout --revision {20020217T1530}$ svn checkout --revision {20020217T1530Z}$ svn checkout --revision {20020217T1530-0500}(3) 日常指令$ svn update$ svn add foo.file$ svn add foo1.dir$ svn add foo2.dir --non-recursive$ svn delete README$ svn copy foo bar$ svn move foo1 bar1$ svn status$ svn status --verbose$ svn status --verbose --show-updates$ svn status stuff/fox.c$ svn diff$ svn diff > patchfile$ svn revert README$ svn revert修改冲突发生时,会生成三个文件:.mine, .rOLDREV, .rNEWREV。
SVN常用命令详解
SVN常用命令详解SVN常用命令详解版本:1.0发布日期:2011-1-27实施日期:2011-1-27修订记录目录修订记录 (2)1.Svnadmin概述 (16)2.svnadmin 选项 (16)2.1.svnadmin list (17)2.1.1.摘要 (17)2.1.2.描述 (17)2.1.3.范例 (17)2.2.svnadmin create (18)2.2.1.摘要 (18)2.2.2.描述 (18)2.2.3.范例 (18)2.3.svnadmin dump (18)2.3.1.摘要 (18)2.3.2.描述 (19)2.3.3.范例 (19)2.4.svnadmin help (20)2.4.1.摘要 (20)2.4.2.描述 (20)2.5.svnadmin load (20)2.5.1.摘要 (20)2.5.2.描述 (20)2.5.3.范例 (20)2.6.svnadmin lstxns (20)2.6.1.摘要 (21)2.6.2.描述 (21)2.6.3.范例 (21)2.7.svnadmin recover (21)2.7.1.摘要 (21)2.7.2.描述 (21)2.7.3.Warning(注意:) (21)2.7.4.范例 (21)2.8.svnadmin rmtxns (22)2.8.1.摘要 (22)2.8.2.描述 (22)2.8.3.范例 (22)2.9.svnadmin setlog (22)2.9.1.摘要 (22)2.9.2.描述 (23)2.9.3.Warning(注意:) (23)2.9.4.范例 (23)3.svnlook (23)4.svnlook 选项 (23)4.1.svnlook author (24)4.1.1.摘要 (24)4.1.2.描述 (24)4.1.3.范例 (24)4.2.svnlook cat (25)4.2.1.摘要 (25)4.2.2.描述 (25)4.2.3.范例 (25)4.3.svnlook changed (25)4.3.1.摘要 (26)4.3.2.描述 (26)4.3.3.范例 (26)4.4.svnlook date (26)4.4.1.摘要 (26)4.4.2.描述 (26)4.4.3.范例 (27)4.5.svnlook diff (27)4.5.2.描述 (27)4.5.3.范例 (27)4.6.svnlook dirs-changed (28)4.6.1.摘要 (28)4.6.2.描述 (28)4.6.3.范例 (28)4.7.svnlook help (29)4.7.1.摘要 (29)4.7.2.描述 (29)4.8.svnlook history (29)4.8.1.摘要 (29)4.8.2.描述 (29)4.8.3.范例 (29)4.9.svnlook info (30)4.9.1.摘要 (30)4.9.2.描述 (30)4.9.3.范例 (31)4.10.svnlook log (31)4.10.1.摘要 (31)4.10.2.描述 (31)4.10.3.范例 (31)4.11.svnlook proplist (31)4.11.1.摘要 (32)4.11.2.描述 (32)4.11.3.范例 (32)4.12.svnlook tree (32)4.12.1.摘要 (32)4.12.2.范例 (33)4.13.svnlook youngest (33)4.13.2.描述 (33)4.13.3.范例 (33)5.Subversion 命令行客户端: svn (34)6.svn 选项 (34)6.1.--diff-cmd CMD (34)6.2.--diff3-cmd CMD (34)6.3.--dry-run (34)6.4.--editor-cmd CMD (35)6.5.--encoding ENC (35)6.6.--extensions (-x) "ARGS" (35)6.7.--file (-F) FILENAME (35)6.8.--force (35)6.9.--force-log (35)6.10.--help (-h 或 -?) (36)6.11.--notice-ancestry (36)6.12.--incremental (36)6.13.--message (-m) MESSAGE (36)6.14.--new ARG (36)6.15.--no-auth-cache (36)6.16.--no-diff-deleted (36)6.17.--no-ignore (37)6.18.--non-interactive (37)6.19.--non-recursive (-N) (37)6.20.--old ARG (37)6.21.--password PASS (37)6.22.--quiet (-q) (37)6.23.--recursive (-R) (37)6.24.--relocate FROM TO [PATH...] (38)6.25.--revision (-r) REV (38)6.26.--revprop (38)6.27.--show-updates (-u) (38)6.28.--stop-on-copy (38)6.29.--strict (39)6.30.--targets FILENAME (39)6.31.--usernameNAME (39)6.32.--verbose (39)6.33.--version (39)6.34.--xml (39)7.svn 子命令 (40)7.1.svn add (40)7.1.1.摘要 (40)7.1.2.描述 (40)7.1.3.替代名称 (40)7.1.4.更动 (40)7.1.5.选项 (40)7.1.6.范例 (40)7.2.svn cat (41)7.2.1.摘要 (41)7.2.2.描述 (41)7.2.3.替代名称 (41)7.2.4.更动 (41)7.2.5.存取档案库 (41)7.2.6.选项 (42)7.2.7.范例 (42)7.2.8.Tip (42)7.3.svn checkout (42)7.3.1.摘要 (42)7.3.2.描述 (43)7.3.3.替代名称 (43)7.3.5.存取档案库 (43)7.3.6.选项 (43)7.3.7.范例 (43)7.4.svn cleanup (45)7.4.1.摘要 (45)7.4.2.描述 (45)7.4.3.替代名称 (46)7.4.4.更动Changes (46)7.4.5.存取档案库 (46)7.4.6.选项: (46)7.4.7.范例 (46)7.5.svn commit (46)7.5.1.摘要 (46)7.5.2.描述 (46)7.5.3.Tip (47)7.5.4.替代名称 (47)7.5.5.更动 (47)7.5.6.存取档案库 (47)7.5.7.选项 (47)7.5.8.范例 (48)7.6.svn copy (49)7.6.1.摘要 (49)7.6.2.描述 (49)7.6.3.Warning (49)7.6.4.替代名称 (49)7.6.5.更动 (49)7.6.6.存取档案库 (50)7.6.7.选项 (50)7.6.8.范例 (50)7.7.svn delete (51)7.7.1.摘要 (51)7.7.2.描述 (52)7.7.3.替代名称 (52)7.7.4.更动 (52)7.7.5.存取档案库 (52)7.7.6.选项 (52)7.7.7.范例 (53)7.8.svn diff (53)7.8.1.摘要 (53)7.8.2.描述 (54)7.8.3.替代名称 (54)7.8.4.更动 (54)7.8.5.存取档案库 (54)7.8.6.选项 (54)7.8.7.范例 (55)7.9.svn export (56)7.9.1.摘要 (56)7.9.2.描述 (56)7.9.3.替代名称 (57)7.9.4.修改 (57)7.9.5.存取档案库 (57)7.9.6.选项 (57)7.9.7.范例 (57)7.10.svn help (58)7.10.1.摘要 (58)7.10.2.描述 (58)7.10.3.替代名称 (58)7.10.4.更动 (58)7.10.6.选项 (58)7.11.svn import (58)7.11.1.摘要 (59)7.11.2.描述 (59)7.11.3.替代名称 (59)7.11.4.更动 (59)7.11.5.存取档案库 (59)7.11.6.选项 (59)7.11.7.范例 (60)7.12.svn info (60)7.12.1.摘要 (60)7.12.2.描述 (60)7.12.3.替代名称 (61)7.12.4.更动 (61)7.12.5.存取档案库 (61)7.12.6.选项 (61)7.12.7.范例 (61)7.13.svn list (62)7.13.1.摘要 (62)7.13.2.描述 (62)7.13.3.替代名称 (63)7.13.4.更动 (63)7.13.5.存取档案库 (63)7.13.6.选项 (63)7.13.7.范例 (63)7.14.svn log (64)7.14.1.摘要 (64)7.14.2.描述 (64)7.14.3.替代名称 (65)7.14.4.更动 (65)7.14.5.存取档案库 (65)7.14.6.选项 (65)7.14.7.范例 (65)7.15.svn merge (69)7.15.1.摘要 (69)7.15.2.描述 (70)7.15.3.替代名称 (70)7.15.4.更动 (70)7.15.5.存取档案库 (70)7.15.6.选项 (70)7.15.7.范例 (71)7.16.svn mkdir (71)7.16.1.摘要 (71)7.16.2.描述 (71)7.16.3.替代名称 (72)7.16.4.更动 (72)7.16.5.存取档案库 (72)7.16.6.选项 (72)7.16.7.范例 (72)7.17.svn move (73)7.17.1.摘要 (73)7.17.2.描述 (73)7.17.3.Tip (73)7.17.4.Warning (73)7.17.5.替代名称 (73)7.17.6.更动 (73)7.17.7.存取档案库 (74)7.17.8.选项 (74)7.17.9.范例 (74)7.18.svn propdel (74)7.18.1.摘要 (75)7.18.2.描述 (75)7.18.3.替代名称 (75)7.18.4.更动 (75)7.18.5.存取档案库 (75)7.18.6.选项 (75)7.18.7.范例 (75)7.19.svn propedit (76)7.19.1.摘要 (76)7.19.2.描述 (76)7.19.3.替代名称 (76)7.19.4.更动 (76)7.19.5.存取档案库 (76)7.19.6.选项 (76)7.19.7.范例 (77)7.20.svn propget (77)7.20.1.摘要 (77)7.20.2.描述 (77)7.20.3.替代名称 (77)7.20.4.更动 (77)7.20.5.存取档案库 (78)7.20.6.选项 (78)7.20.7.范例 (78)7.21.svn proplist (78)7.21.1.摘要 (78)7.21.2.描述 (78)7.21.3.替代名称 (79)7.21.4.更动 (79)7.21.5.存取档案库 (79)7.21.6.选项 (79)7.21.7.范例 (79)7.22.svn propset (80)7.22.1.摘要 (80)7.22.2.描述 (80)7.22.3.Tip (80)7.22.4.替代名称 (80)7.22.5.更动 (80)7.22.6.存取档案库 (80)7.22.7.选项 (80)7.22.8.范例 (81)7.22.9.Warning (82)7.23.svn resolved (82)7.23.1.摘要 (82)7.23.2.描述 (82)7.23.3.替代名称 (82)7.23.4.更动 (82)7.23.5.存取档案库 (82)7.23.6.选项 (82)7.23.7.范例 (83)7.23.8.Warning (83)7.24.svn revert (83)7.24.1.摘要 (83)7.24.2.描述 (83)7.24.3.替代名称 (84)7.24.4.更动 (84)7.24.5.存取档案库 (84)7.24.6.选项 (84)7.24.7.范例 (84)7.24.8.Warning (85)7.25.svn status (85)7.25.1.摘要 (85)7.25.2.描述 (85)7.25.3.替代名称 (87)7.25.4.更动 (87)7.25.5.存取档案库 (87)7.25.6.选项 (88)7.25.7.范例 (88)7.25.8.Warning (88)7.26.svn switch (89)7.26.1.摘要 (89)7.26.2.描述 (89)7.26.3.替代名称 (89)7.26.4.更动 (89)7.26.5.存取档案库 (90)7.26.6.选项 (90)7.26.7.范例 (90)7.26.8.Tip (91)7.27.svn update (91)7.27.1.摘要 (91)7.27.2.描述 (92)7.27.3.替代名称 (92)7.27.4.更动 (92)7.27.5.存取档案库 (92)7.27.6.选项 (92)7.27.7.范例 (93)7.27.8.Tip (93)1.Svnadmin概述svnadmin 是用来监控与修复 Subversion 档案库的管理工具。
SVN命令行模式的操作命令教程(各种SVN命令)
2、mkdir URL…
创建版本控制的目录。
1、每一个以工作副本 PATH 指定的目录,都会创建在本地端,并且加入新增
调度,以待下一次的提交。
2、每个以URL指定的目录,都会透过立即提交于仓库中创建。
在这两个情况下,所有的中间目录都必须事先存在。
15、恢复本地修改
svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。revert:
svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
简写:svn up
1、更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将
服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的
方法。
2、改写工作副本的URL元数据,以反映单纯的URL上的改变。当仓库的根URL变动
(比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用
注: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日常使用说明
1.版本控制原则SVN(或者其他版本控制软件)只是一个版本控制的辅助工具,不可能把所有的问题都自动解决掉。
尤其,对于冲突这个麻烦事儿,项目成员在项目进程中要尽量通过优化流程来解决,而不是将希望寄托于软件工具来自动解决一切问题。
2.各阶段中svn的使用方法介绍2.1.初始化版本库初始化版本库有两种常用的方式:2.1.1.直接“导入Import…”(目前,OSSP版本已经导入到版本库,项目组成员无需做此操作)对要执行导入操作得项目文件夹进行如下清理:1. 把项目中不需要的文件删除。
(临时文件、编译器创建的文件,比如*.obj、二进制文件等。
)2. 把文件夹和子文件夹中的所有文件整理一遍。
虽然你可以在导入之后再来进行重命名或删除等操作,但是还是推荐你在导入之前把你的项目整理好。
在资源管理器(windows explorer)中选择项目(本地硬盘上)的根文件夹,单击鼠标右键,选择导入Import…命令,跳出一个对话框:在这个对话框中你需要填写你要将项目导入仓库的URL地址(svn必须小写)。
导入信息(Important Message)是用来记录日志信息的。
注意:与“忽略样式exclude pattern”匹配的文件或文件夹不会被导入,除非选择了“包含忽略的文件”选项。
按下“确定”按钮后,TortoiseSVN就开始把整个文件夹树(包括所有文件)导入到仓库。
用来做“导入Import”操作的这个文件夹的名字不会出现在仓库中,只有文件夹中的内容会出现。
注意:刚才用来做“导入Import”操作的这个文件夹并没有处于版本控制下!要获取一份处于版本控制之下的[本地工作区]副本,你需要对刚导入的版本做一次“检出Checkout”操作。
2.1.2.“检出Checkout”—>“提交Commit”新建一个空文件夹作为[本地工作区]的存放文件夹(建议与项目同名),在文件夹上(或者文件夹里)单击鼠标右键后在命令菜单中选择“检出Checkout…”,出现操作窗口。
svn常用命令总结
SVN命令总结1.检出svn co http://路径(目录或文件的全路径) [本地目录全路径]2.导出(导出一个干净的不带.svn文件夹的目录树)svn export http://路径(目录或文件的全路径) [本地目录全路径] 也可指定要导出的版本号:svn export [-r 版本号]3.添加新文件svn add 文件名注:告诉SVN服务器要添加文件了,还要用svn commit -m真实的上传上去!4.提交svn commit -m “提交备注信息文本”文件名svn ci -m “提交备注信息文本”文件名必须带上-m参数,参数可以为空,但是必须写上-m5.更新文件svn updatesvn update -r 修正版本文件名svn update 文件名6.删除文件svn delete 文件名svn ci -m “删除备注信息文本”7.加锁/解锁svn lock -m “加锁备注信息文本”[--force] 文件名svn unlock 文件名8.比较差异svn diff 文件名svn diff -r 修正版本号m:修正版本号n 文件名9.将两个版本之间的差异合并到当前文件svn merge -r m:n path10.查看文件或者目录状态svn st 目录路径/名svn status 目录路径/名目录下的文件和子目录的状态,正常状态不显示:【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】11.查看日志svn log 文件名svn log ./ | more 查看多条记录 -->按空格键即可显示12.查看文件详细信息svn info 文件名13.svn 帮助svn help <-全部功能选项svn help ci <-具体功能的说明14.递归提交一个路径的拷贝到版本库svn import [PATH] URL15.清除锁定svn cleanup16.查看版本库下的文件和目录列表svn list svn://路径(目录或文件的全路径)svn ls svn://路径(目录或文件的全路径)17.创建纳入版本控制下的新目录mkdir newsubdir 创建新目录svn add --non-recursive newsubdirsvn ci -m “提交备注信息文本”目录名18.恢复本地修改svn revert [--recursive] 文件名注意: 本子命令不会存取网络,并且会解除冲突的状况。
linux下常用的svn操作
1:checkout命令:从svn版本库中取代码时可以先查看具体代码的路径,windows下右键单击Tortoise->repo_browser 可直接查看,linux下可以输入命令:svn list 版本库地址如图:Checkout时命令是:Svn checkout 版本库地址如图:注意在目前的svn版本中必须checkout一个文件夹下来,只checkout单个文件会提示失败。
如图:若想查看svn上某个具体文件,从而决定是否要checkout当前版本下来,可以执行命令:svn cat 文件在版本库上的地址。
下载好代码后可以通过执行ll –a 命令查看文件信息,可以看到在下载好的文件夹下有一个.svn 文件夹,该文件夹是用来维护工作拷贝信息的,保证拥有该文件夹的读写权限,就可以对下载的代码进行commit等一系列操作。
如图:2:commit命令:将本地的修改工作拷贝上传到svn 服务器中,保证版本库的一致具体命令是:svn commit 要上传的文件路径–m “日志信息”如图:日志信息可以为空。
注意提交时需将该文件更新,在上传,否则出错。
若当前上传的文件不是从svn上checkout下来的文件,会提示不是工作副本,无法上传。
3:import 命令:将本地代码上传到版本库中进入到需要上传代码的目录,执行命令:Svn import 想要上传到svn的路径-m “上传的日志信息”–no-ignore如图:注意上传时需添加日志选项-m ,可以为空,并且需要添加选项—no-ignore因为svn上传时会默认屏蔽掉so .o 等文件,导致上传上去的代码不完整,若上传一半出错提示某些文件无法识别,最好将该文件的父文件夹打包上传,就可以成功传上去了。
4:log 命令查看svn版本库的日志信息,具体命令是:Svn log 查看日志信息的文件名如图:5:update命令:将当前文件更新到版本库上某个具体版本文件具体命令是:Svn update –r 要更新的版本号文件路径如图:6:add 命令:往版本库中添加新的文件add 功能:向文件拷贝所在的文件夹中添加新的文件,并作出标识,是新添加的,下一步提交时将一并提交到Subversion版本库中去。
TortoiseSVN客户端常用命令详解
TortoiseSVN客户端常用命令详解1、Checkout首先要Checkout服务器端的Repository,所谓的Checkout就是指获得服务器端指定的Repository存储的所有文件。
Checkout的具体方式是:在客户端新建一个空目录,比如:F:\Project1 (确保是空的)在该目录上单击右键,在弹出式菜单中选中SVN Checkout...,之后按要求录入内容:然后点OK,会弹出一个认证对话框,输入用户名和密码。
点OK后就完成了对Repository的Checkout。
检出后,所有检出文件上都打着绿色对勾:命令方式检出1:在DOS命令中输入需要检出的目录:http://192.168.1.210:8081/svn/svnproject/Knowledge2:其中,意思是,检出文档是放在D盘的根目录下,是检出文档的存放位置,如下图:2、update获取版本库中最新版本,具体的方法是:在WC目录上单击右键,SVN Update。
这时WC中的文件就是最新的版本了。
3、commitcommit功能就是将你本地的文件修改记录上传到服务器上面,可以理解为上传。
只会上传原先checkout然后又被修改了的文件,假如你新加入了某些文件,需要右键点击文件选择Add,然后文件上面会出现一个加号,在下次commit的时候才能选到该文件。
commit页面:注意:commit的时候,最好填写Log信息,Log内容包括:修改了哪些东西及为什么做这些修改(what+why)强制必须录入log: property 中设置录入log最小长度,此时commit必须录入log,否则不允许提交.设置录入log最小长度页面:4、add将要添加的文件或者目录拷贝到WC下,然后在该文件或目录上单击右键,TortoiseSVN->Add,点OK。
如果添加了不止一个文件或目录,则鼠标不要在WC中点中任何文件,然后单击右键,TortoiseSVN->Add,就可以添加多个文件或目录。
svn常用命令
svn常⽤命令命令的使⽤1、检出3、添加新⽂件svn add ⽂件名注:告诉SVN服务器要添加⽂件了,还要⽤svn commint -m真实的上传上去!例⼦:svn add test.php <-添加test.phpsvn commit -m “添加我的测试⽤test.php“test.phpsvn add *.php <-添加当前⽬录下所有的php⽂件svn commit -m “添加我的测试⽤全部php⽂件“*.php4、提交svn commit -m “提交备注信息⽂本“ [-N] [--no-unlock] ⽂件名svn ci -m “提交备注信息⽂本“ [-N] [--no-unlock] ⽂件名必须带上-m参数,参数可以为空,但是必须写上-m例⼦:svn commit -m “提交当前⽬录下的全部在版本控制下的⽂件“ *<-注意这个*表⽰全部⽂件svn commit -m “提交我的测试⽤test.php“test.phpsvn commit -m “提交我的测试⽤test.php“-N --no-unlock test.php<-保持锁就⽤–no-unlock开关svn ci -m “提交当前⽬录下的全部在版本控制下的⽂件“ *<-注意这个*表⽰全部⽂件svn ci -m “提交我的测试⽤test.php“test.phpsvn ci -m “提交我的测试⽤test.php“-N --no-unlock test.php<-保持锁就⽤–no-unlock开关5、更新⽂件svn updatesvn update -r 修正版本 ⽂件名svn update ⽂件名例⼦:svn update <-后⾯没有⽬录,默认将当前⽬录以及⼦⽬录下的所有⽂件都更新到最新版本svn update -r 200test.cpp <-将版本库中的⽂件 test.cpp还原到修正版本(revision)200 svnupdate test.php<-更新与版本库同步。
SVN使用教程
SVN使用教程概要概述SAE自2011-7-10日起,将全面支持SVN代码部署,用户不仅可以通过任何SVN客户端部署代码,而且SAE现有的代码部署方式也已经对接应用的SVN仓库,即使不使用SVN客户端部署代码,也保证了代码版本。
如:通过桌面SDK或在线SDK代码编辑器()等方式对代码的修改、部署等操作也会像svn commit一样,产生一个新版本。
通过SVN客户端svn update可以获取最近的更新,也可以通过svn客户端回滚代码。
SVN仓库地址: http s:///your_app_name(您可以通过此地址直接访问)如:应用域名是,那么SVN仓库地址是:https:///testSVN用户名: SAE安全邮箱SVN密码: SAE安全密码注:SVN用户名和密码为安全邮箱和安全密码,不是微博账号和微博密码!与标准SVN的区别为了保持与SAE兼容,使用svn方式部署代码到SAE有如下限制:1. 文件名或目录名不允许含有以下字符:",*,?,<,>,|,另外文件或文件名的开始与结束也不允许有空格。
2. 上传单个文件大小不超过20M3. 单个目录下的文件个数不能超过2000个4. 每个应用代码总大小不超过100M5. 单个版本代码总大小不超过50M6. appname目录下只允许存在10个以内的版本,并且版本号必须为正整数。
(也就是说appname下面只允许出现10个以内的正整数目录名,不允许有非目录的存在)代码部署原理SAE代码部署分为三步:创建应用登陆SAE在线管理平台,“创建新应用”(/?m=myapp&a=create)时,如果创建成功,系统会自动为该应用创建一个SVN仓库。
假设新创建的应用名为newapp,那么仓库地址为:https:///newapp/此时,可以通过本地SVN客户端检出(checkout)该应用的本地工作目录。
部署代码SAE提供了不同的代码部署方式,可以分为两类:一是通过SVN客户端部署,这是SAE推荐的代码部署方法。
svn的用法
svn的用法
SVN是一种版本控制系统,它可以管理和跟踪软件开发过程中的变化和修改。
以下是SVN的常用用法:
1. 检出代码:使用svn checkout命令从远程仓库中下载代码到本地。
2. 添加文件:使用svn add命令将新文件或目录添加到版本控制系统中。
3. 更新代码:使用svn update命令从远程仓库中获取最新版本的代码。
4. 查看修改:使用svn diff命令查看本地修改的代码与最新版本的区别。
5. 提交代码:使用svn commit命令将本地修改的代码提交到远程仓库中。
6. 撤销修改:使用svn revert命令撤销本地修改的代码。
7. 分支和合并:使用svn branch和svn merge命令进行代码分支和合并操作。
8. 查看日志:使用svn log命令查看代码提交历史和版本信息。
以上就是svn的常用用法,通过它可以更好地管理和控制软件开发过程中的变化和修改。
- 1 -。
svn的常用命令
svn的常用命令
SVN(Subversion)是一个开源的版本控制工具,它可以帮助开发者管理代码的历史版本,协同开发,协调多人开发时的代码变更,防止代码冲突等问题。
下面是SVN的常用命令:
1. svn checkout:从SVN服务器上下载一个版本库到本地电脑。
2. svn update:更新本地版本库到最新版本。
3. svn commit:将本地修改推送到远程服务器。
4. svn add:将新文件添加到版本库中。
5. svn delete:删除文件或文件夹。
6. svn status:查看当前目录下所有文件和子目录的状态。
7. svn log:查看版本库的历史记录。
8. svn diff:比较本地文件和服务器上的文件的差异。
9. svn merge:将不同分支上的代码进行合并。
10. svn revert:撤销本地修改,恢复到之前的版本。
以上是SVN的常用命令,掌握这些命令可以帮助开发者更好地使用SVN进行版本控制,提高代码管理的效率。
- 1 -。
linux下svn的配置及svn常用命令
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和空,空表示没有任何权限。
下图是我增加的用户组:(注意:等号后留有空格)增加后:4.修改用户密码添加用户后就要为用户设置密码了,打开conf/passwd文件:输入格式为,[users]<用户1> = <密码1> 如: admin = admin<用户2> = <密码2> 如: username2 = password2…...左边是我的添加:5.启动svn对用户权限、密码的控制需要启动SVN对用户权限、密码的控制,不然的话你就只能读而不能写了。
SVN的使用
20
打上勾,选择要撤销的 文件
撤销操作,文件图标的变化状态如下:
编辑过的状态
执行撤销(revert)后的状态
21
五、怎样 show log
要查看该文件从被建立到目前最新版本,都被谁做过什么样的操作,就会用到 showlog命令。操作步骤如下: 右击该文件TortoiseSVNshowlog 如下图:
1.选择这里
Confidential & Proprietary © 2009
10
2.在URL of repository栏里输入新 库URL地址,如 http://10.70.5.15/svn/ 3.在Checkout directory栏里输 入你新建文件夹的路径如 D:\workingcopy
Confidential & Proprietary © 2009
14
在做添加过程中,文件的图标变化状态如下:
拷贝或新建时的状 态
执行过添加(add)命令 后的状态
执行commit后 的状态
15
三、删除(delete)操作
1、删除一个文件夹
操作步骤如下:右击要删除的文件夹Tortoise SVN Delete 右击该文 件SVN Commit OK 如下图ename更名区别: 使用windows重命名对本地副本里的文件更名后,对svn服务器上的文件名称没 有任何影响,在自己的本地副本里会增加一个假象的正常状态的更名后的文件,它不 存在与svn数据库里。
16
删除文件夹操作的文件图标变化状态:
经commit后该文件会消失,此时该 文件正真的从SVN库里删除了
最初的状态
执行delete操作后 的状态
2、删除一个文件操作
svn常用控制台命令解析
svn常⽤控制台命令解析参数说明:serverPath:表⽰服务器的⽂件路径 , localPath:表⽰本地的⽂件路径 , num 表⽰数字, edition1:表⽰⼯程已经跟新的版本1 , edition2:表⽰⼯程已经跟新的版本2 , 1.从服务端导出相应的⼯程与⽂件夹:步骤:先在本地进⼊想要导出到的⽬录下,然后执⾏命令:svn checkout serverPath说明:使⽤此⽅式导出的⼯程⽂件受到svn版本控制与版本库保持关联,⼯程中存在隐藏⽂件.svn,可以进⾏svn的其他操作。
2.从服务器导出相应的单个⽂件,或者⼯程⽂件:步骤:先在本地进⼊想要导出到的⽬录下,然后执⾏命令:svn export serverPath说明:使⽤此⽅式导出的⼯程⼯程⽂件或者单个⽂件夹脱离SVN版本控制,⽆法进⾏其他svn操作。
3.从服务端跟新最新的版本:步骤:先命令进⼊到想要跟新的⼯程,执⾏命令:svn update说明:将本地的⼯程⽂件版本跟新到服务器的最新版本,与服务器保持⼀致,存在冲突风险,因此在进⾏修改前记住update4.显⽰⼯程的跟新⽇志:步骤:先命令进⼊到想要跟新的⼯程,执⾏命令:svn log 或者 svn log | head -n num说明:在终端中打印出⼯程的跟新⽇志,前者命令显⽰所有的⽇志,后者表⽰显⽰⽇志的前 num ⾏,可写10,建议使⽤后者。
实例:------------------------------------------------------------------------r1975 | 账号 | 2016-05-26 10:38:46 +0800 (四, 26 5 2016) | 2 lines //r1975 表⽰版本号,账号表⽰版本提交⼈的账号名称 ,表⽰提交时间,表⽰提交时注释的⾏数,默认1 1.红外超时处理2。
⼈脸识别拍照的照⽚传递给业务程序5.在终端显⽰⼯程已经跟新的两个版本之间的不同步骤:先命令进⼊到想要跟新的⼯程,执⾏命令:svn diff -r edition1:edition2说明:先通过log命令获取跟新⽇志以及版本号,终端中显⽰两个版本的不同,⽤于查看详细的更改内容,显⽰列表前带+的表⽰后⼀个版本所更新的内容,-表⽰前⼀版本减少的6.将新添加⼊⼯程的⽂件或者⽂件夹添加到svn的版本控制步骤:先命令进⼊到你所要添加⼊svn版本的⽂件所在的⽬录(注意),执⾏命令:svn add ⽂件夹名称说明:⾸先注意⽬录,所有你新增⼊⼯程的⽂件都需要add进⼊版本控制才能再提交,否则影响他⼈,⽂件夹名称表⽰⽂件的全名(包括后缀)或者⽂件夹的全名,添加⽂件夹时只要添加最外层⼀个就好7.将本地更改的⼯程提交到服务器步骤:先命令进⼊到想要跟新的⼯程,执⾏命令:svn commit - m "说明"说明:请先注意有没有将新⽂件add进⼊版本控制,再提交,提交时可能也会产⽣冲突,这需要⽤户在更改前先update确保是服务器最新版本,"说明"表⽰你对与本次跟新相⽐于前⼀个版本的修改内容总结,其中双引号使⽤英⽂的.8.查看服务器端的⽂件内容步骤:执⾏命令:svn list serverPath说明:终端显⽰服务器端 serverPath 路径下的所有⽂件列表信息,⽤于查看别⼈提交时是否提交了完整的内容9.显⽰svn所有操作命令步骤:执⾏命令:svn help说明:终端显⽰svn所有⽀持的命名,然后分别去百度喽。
python的svn用法
python的svn用法一、概述SVN(Subversion)是一种版本控制系统,用于管理代码、文档等资源的版本。
Python提供了多种库和工具,方便开发者使用SVN进行版本管理。
本篇文档将介绍如何使用Python进行SVN操作,包括安装SVN库、创建和管理版本库、检出和提交代码等。
二、安装SVN库在开始使用Python进行SVN操作之前,需要先安装SVN库。
常用的SVN库有Subversion和svnpy等。
可以使用pip命令来安装这些库,例如:```shellpip install subversion```或者```shellpip install svnpy```三、创建和管理版本库使用Python创建和管理版本库需要使用Subversion库中的`check_call()`和`run()`函数。
这些函数可以调用系统的命令行工具来执行SVN命令。
以下是一个简单的示例代码,用于创建版本库和提交一个简单的文件:```pythonimport subversion# 创建版本库run(['svnadmin', 'create', 'my_repository'])# 检出代码到本地开发环境run(['svn', 'checkout', 'file:///path/to/my_repository/trunk','local_folder'])# 修改文件并提交到版本库with open('local_folder/my_file.py', 'a') as f:f.write('new content')run(['svn', 'commit', '-m', 'Added new content'])```四、检出和提交代码使用Python检出和提交代码需要使用svnpy库中的`checkout()`和`commit()`函数。
SVN命令大全
目录1、将文件CHECKOUT到本地目录 (2)2、往版本库中添加新的文件 (2)3、将改动的文件提交到版本库 (2)4、加锁/解锁 (2)5、更新到某个版本 (2)6、查看文件或者目录状态 (2)7、删除文件 (3)8、查看日志 (3)9、查看文件详细信息 (3)10、比较差异 (3)11、将两个版本之间的差异合并到当前文件 (3)12、SVN帮助 (3)13、版本库下的文件和目录列表 (4)14、创建纳入版本控制下的新目录 (4)15、恢复本地修改 (4)16、代码库URL变更 (4)17、解决冲突 (4)18、输出指定文件或URL的内容。
(5)1、将文件CHECKOUT到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co2、往版本库中添加新的文件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 ci4、加锁/解锁svn lock -m “LockMessage” [--force] PATH例如:svn lock -m “lock test file” test.phpsvn unlock PATH5、更新到某个版本svn update -r m path例如:svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)svn update test.php(更新,于版本库同步。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Svnserve –d –r 路径名+文件名Svn://IPSVN使用和SVN常用命令之前比较少接触linux,今天参考网上的资料实践了一下如何建立svn仓库,包括简单的授权设置。
假设要建立一个svn项目:new_project一、创建svn仓库去到svn服务的根目录,(这个目录是在启动svn服务的时候指定的,启动的命令如:svnserve -d -r /usr/local/svnrepos)执行创建仓库命令:svnadmin create new_project这样在/usr/local/svnrepos/ 里面就多了一个new_project目录出来,进入new_project/conf/ 目录vi svnserve.conf将下面几行的注释去掉[general]anon-access = read #匿名的用户可读auth_access = write #有授权的用户可写password-db = passwd #表示svn用户的授权资料保存在passwd文件里面在conf/目录里面vi passwd,添加授权资料。
格式如下:[user]your_name = your_password二、导入源码(导入源码的过程不一定要按照下面说的来做,关于svn目录管理其实可以很灵活,适合自己就行)现在先准备一个临时文件夹,用来构建仓库中的基本目录结构:mkdir tempmkdir temp/trunkmkdir temp/tagsmkdir temp/branches这时可以将temp目录导入的仓库中:svn import temp svn://localhost/new_project -m 'initial'如果new_project已经开发到一定程度,我们只需要将源码导入到仓库中的trunk就行了。
假设源码的根目录是~/new_project进入~目录,把源码导入到trunk中:svn import new_project svn://localhost/new_project/trunk -m 'initial again'====================================================================== =========1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co2、往版本库中添加新的文件svn add file例如:svn add test.php(添加test.php)svn add *.php(添加当前目录下所有的php文件)3、将改动的文件提交到版本库svn commit -m “LogMessage“[-N] [–no-unlock] PA TH(如果选择了保持锁,就使用–no-unlock开关)例如:svn commit -m “add test file for my test“test.php简写:svn ci4、加锁/解锁svn lock -m “LockMessage“ [–force] PATH例如:svn lock -m “lock test file“test.phpsvn unlock PATH5、更新到某个版本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 up6、查看文件或者目录状态1)svn status path(目录下的文件和子目录的状态,正常状态不显示)【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】2)svn status -v path(显示文件和子目录状态)第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
注:svn status、svn diff和svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
简写:svn st7、删除文件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.php10、比较差异svn diff path(将修改的文件与基础版本比较)例如:svn diff test.phpsvn diff -r m:n path(对版本m和版本n比较差异)例如:svn diff -r 200:201 test.php简写:svn di11、将两个版本之间的差异合并到当前文件svn merge -r m:n path例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)12、SVN 帮助svn helpsvn help ci——————————————————————————以上是常用命令,下面写几个不经常用的——————————————————————————13、版本库下的文件和目录列表svn list path显示path目录下的所有属于版本库的文件和目录简写:svn ls14、创建纳入版本控制下的新目录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 可以再次提交。
18、输出指定文件或URL的内容。
svn cat 目标[@版本]…如果指定了版本,将从指定的版本开始查找。
svn cat -r PREV filename > filename (PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)本文来自CSDN博客,转载请标明出处:/wssxy/archive/2009/05/27/4221153.aspx本文来自CSDN博客,转载请标明出处:/angelflying928/archive/2010/01/15/5194776.aspxsvn常用命令整理2009-06-12 作者:狂风来源:狂风的blogsvn命令通常都有帮助,可通过如下方式查询:$ 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$ svn log --revision BASE:HEAD# shows all commit logs since you last updated$ svn update --revision PREV foo.c# rewinds the last change on foo.c# (foo.c's working revision is decreased)$ svn checkout --revision 3# specified with revision number$ svn checkout --revision {2002-02-17}$ svn checkout --revision {15:30}$ svn checkout --revision {15:30:00.200000}$ svn checkout --revision {"2002-02-17 15:30"}$ svn checkout --revision {"2002-02-17 15:30 +0230"}$ svn checkout --revision {2002-02-17T15:30}$ svn checkout --revision {2002-02-17T15:30Z}$ svn checkout --revision {2002-02-17T15:30-04:00}$ svn checkout --revision {20020217T1530}$ svn checkout --revision {20020217T1530Z}$ svn checkout --revision {20020217T1530-0500} (3) 日常指令$ svn update$ svn add foo.file$ svn add foo1.dir$ svn add foo2.dir --non-recursive$ svn delete README$ svn copy foo bar$ svn move foo1 bar1$ svn status$ svn status --verbose$ svn status --verbose --show-updates$ svn status stuff/fox.c$ svn diff$ svn diff > patchfile$ svn revert README$ svn revert修改冲突发生时,会生成三个文件:.mine, .rOLDREV, .rNEWREV。