svn命令大全
Windows下SVN使用指南

10.查看日情。使用以下命令:
svn log
svn merge 仓库URL/分支名
8.解决冲突
当多个开发者对同一个文件进行了更改并提交后,可能会出现冲突。SVN会自动检测到冲突,并将冲突的文件标记出来。你需要手动解决这些冲突。使用以下命令来查看冲突的文件:
svn status
9.版本回退
如果你不满意一些版本的更改,你可以回退到之前的版本。使用以下命令:
svn update
6.提交更改
当你对项目进行了更改,并且希望将这些更改提交到仓库中时,使用以下命令:
7.分支和合并
SVN允许你创建分支来独立开发一些功能或解决一些问题。要创建分支,使用以下命令:
svn copy 仓库URL 仓库URL/分支名 -m "创建分支"
当分支开发完成后,你可以将其合并回主干。使用以下命令:
svnadmin create 仓库路径
3.导入项目到仓库
将你的项目文件导入到仓库中,使用以下命令:
svn import 本地项目路径 仓库URL -m "导入项目"
4.检出项目
要开始使用SVN,你需要从仓库中检出项目。使用以下命令:
svn checkout 仓库URL 本地目录
5.更新项目
当其他人对项目进行了更改,并提交到仓库中时,你需要将这些更改更新到你的本地项目中。使用以下命令:
Windows下SVN使用指南
SVN是一个开源的版本控制系统,它可以帮助开发团队管理和控制项目的版本。它是以集中化的方式工作,意味着所有的文件和版本都存储在一个中央仓库中。在Windows操作系统下,使用SVN非常方便,以下是一个SVN的使用指南。
svnsync sync用法

svnsync sync用法
svnsync sync命令是Subversion版本控制工具中的一个用于将一个本地Subversion仓库中的变更同步到另一个远程Subversion仓库中的命令。
具体的使用方法如下:
1. 首先,需要通过以下命令创建一个本地仓库的只读副本:
```
svn co --username=USERNAME --password=PASSWORD
svn://REMOTE_REPO local_copy
```
其中,USERNAME和PASSWORD是远程仓库的用户名和密码,REMOTE_REPO是远程仓库的地址。
local_copy是本地仓库的目录。
2. 接着,需要在本地仓库中执行以下命令,将其设置为只读状态:
```
svn propset svn:sync-read-only true local_copy
```
3. 然后,需要将本地仓库设置为只读的svnsync仓库:
```
svn propset svn:sync-from-url svn://REMOTE_REPO local_copy ```
4. 最后,执行以下命令,将本地仓库中的变更同步到远程仓库中:
```
svnsync sync file:///PATH/TO/REPO
```
其中,PATH/TO/REPO是远程仓库在本地的路径。
需要注意的是,此命令的使用前提是具备读写权限,如果权限不够请先申请。
SVN 查看历史信息命令及用法

SVN 查看历史信息通过svn命令可以根据时间或修订号去查看过去的版本,或者某一版本所做的具体的修改。
以下四个命令可以用来查看svn 的历史:svn log 用来展示svn 的版本作者、日期、路径等等;svn diff 用来显示特定修改的行级详细信息;svn cat 取得在特定版本的某文件显示在当前屏幕;svn list 显示一个目录或某一版本存在。
(一)svn loglog: 显示一组版本与/或文件的提交日志信息。
用法: 1、log [PA TH]2、log URL[@REV] [PA TH...]1、显示本地PA TH (默认: “.”) 的日志信息。
默认的版本范围是BASE:1。
2、显示URL 中PA TH (默认: “.”) 的日志信息。
如果指定了REV,就从REV开始查找URL,版本范围是REV:1。
否则就从HEAD 开始查找URL,版本范围是HEAD:1。
可以指定多个“-c”或“-r”选项(但是不允许同时使用“-c”和“-r”选项),以及混合使用前向和后向范围。
使用-v 时,在日志信息中显示受影响的路径名。
使用-q 时,不显示日志信息主体(请注意,它可与-v 并存)。
每条日志信息只会显示一次,即使指定了此版本涉及到的多个路径。
默认日志信息会追溯复制历史;使用--stop-on-copy 可以关闭这种行为,这可以用来找出分支点。
有效选项:-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)版本参数可以是如下之一:NUMBER 版本号'{' DA TE '}' 在指定时间以后的版本'HEAD' 版本库中的最新版本'BASE' 工作副本的基线版本'COMMITTED' 最后提交或基线之前'PREV' COMMITTED的前一版本-q [--quiet] : 不打印信息,或只打印概要信息-v [--verbose] : 打印附加信息-g [--use-merge-history] : 从合并历史使用/显示额外信息-c [--change] ARG : 版本ARG 引起的改变--targets ARG : 传递文件ARG 内容为附件参数--stop-on-copy : 查看历史不要跨越不同的副本--incremental : 给予适合串联的输出--xml : 输出为XML-l [--limit] ARG : 日值项最大值--with-all-revprops : 获取所有版本属性--with-no-revprops : 没有找回版本属性--with-revprop ARG : 获取版本属性ARG全局选项:--username ARG : 指定用户名称ARG--password ARG : 指定密码ARG--no-auth-cache : 不要缓存用户认证令牌--non-interactive : 不要交互提示--trust-server-cert : 不提示的接受未知的SSL 服务器证书(只用于选项“--non-interactive”)--config-dir ARG : 从目录ARG 读取用户配置文件--config-option ARG : 以下属格式设置用户配置选项:FILE:SECTION:OPTION=[V ALUE]例如:servers:global:http-library=serf实例1:获取版本号14的版本信息svn log -r r14 或者svn log -r 14实例2:获取版本号14至17的版本信息svn log -r r14:r17 或者svn log -r 14:17实例3:获取全部版本信息svn log实例4:获取制定单个文件的版本信息svn log foo.csvn log /repo/project/foo.csvn log /repo/project foo.c bar.c实例5:查看版本信息及提交的文件路径并导入以XML形式导出svn log -v -r 14:17 > svn.xml --xmlsvn log -v -r 14:17 >> svn.xml --xml(二)svn diff用法: 1. diff [-c M | -r N[:M]] [TARGET[@REV]...]2. diff [-r N[:M]] --old=OLD-TGT[@OLDREV] [--new=NEW-TGT[@NEWREV]] \[PA TH...]3. diff OLD-URL[@OLDREV] NEW-URL[@NEWREV]1、显示版本REV 中TARGET 在两个不同的版本之间的差异。
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命令⼤全1.svn checkout将⽂件checkout到本地⽬录svn checkout <path> //path是服务器上的⽬录⽰例:svn checkout svn://192.168.1.1/pro/domain简写:svn co2.svn add往版本库中添加新的⽂件svn add <file> //file是⽂件的路径⽰例:svn add test.php //添加test.phpsvn add *.php // 添加当前⽬录下所有的php⽂件3.svn commit -m将改动的⽂件提交到版本库//如果选择了保持锁,就使⽤–no-unlock开关svn commit -m “LogMessage“ [-N] [--no-unlock] <path> //LogMessage是需要提交的log,path是需要提交⽂件的路径⽰例:svn commit -m “add test file for my test“ test.php简写:svn ci4.svn lock -m加锁/解锁svn lock -m “LockMessage“ [--force] <path> //加锁svn unlock <path> //解锁⽰例:svn lock -m “lock test file“ test.php //加锁svn unlock test.php //解锁5.svn update更新到某个版本svn update -r m <path> //-r是全部执⾏ m指的是版本号,path是更新的路径⽰例:svn update //如果后⾯没有⽬录,默认将当前⽬录以及⼦⽬录下的所有⽂件都更新到最新版本。
svn update -r 200 test.php //将版本库中的⽂件test.php还原到版本200svn update test.php //更新,于版本库同步。
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 merge命令用法

svn merge命令用法
svn merge命令是Subversion版本控制系统中用于将一个分支的更改合并到另一个分支的命令。
它允许开发人员在不同的分支上进行并行开发,并将一个分支上的更改合并到另一个分支,从而保持代码的同步和一致性。
在使用svn merge命令时,需要指定源URL和目标URL,以及要合并的版本范围。
具体的用法如下:
svn merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [TARGET]
其中,-c选项表示要合并的指定版本,M[,N...]表示要合并的连续版本范围,-r选项表示要合并的版本范围,N:M表示起始版本和结束版本,SOURCE表示要从哪个URL进行合并,@REV表示要从源URL的哪个版本进行合并,TARGET表示要合并到的目标路径。
例如,如果要将分支A的某个版本的更改合并到主干上,可以使用如下命令:
svn merge -c 12345 ^/branches/A.
这个命令表示将版本号为12345的更改合并到当前目录(主干)中。
另外,svn merge命令还支持一些其他选项,比如--accept选
项用于指定合并冲突时的处理方式,--dry-run选项用于模拟合并
操作而不实际执行,--record-only选项用于记录合并信息而不实
际进行合并操作等。
总之,svn merge命令是用于将一个分支的更改合并到另一个
分支的重要命令,通过合理使用该命令可以有效管理代码的变更和
版本控制。
希望以上回答能够满足你的要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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$ 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。
比如:$ ls -lsandwich.txtsandwich.txt.minesandwich.txt.r1sandwich.txt.r2解决修改冲突方式之一:修改冲突的文件sandwich.txt,然后运行命令:$ svn resolved sandwich.txt方式之二:用库里的新版本覆盖你的修改:$ cp sandwich.txt.r2 sandwich.txt$ svn resolved sandwich.txt方式之三:撤销你的修改,这种方式不需要运行resolved子命令:$ svn revert sandwich.txtReverted 'sandwich.txt'$ ls sandwich.*sandwich.txt确保没问题后,就可以提交了。
$ svn commit --message "Correct some fatal problems"$ svn commit --file logmsg$ svn commit(4) 检验版本历史$ svn log$ svn log --revision 5:19$ svn log foo.c$ svn log -r 8 -v$ svn diff$ svn diff --revision 3 rules.txt$ svn diff --revision 2:3 rules.txt$ svn diff --revision 4:5/repos/example/trunk/text/rules.txt$ svn cat --revision 2 rules.txt$ svn cat --revision 2 rules.txt > rules.txt.v2$ svn list /repos/svn$ svn list --verbose /repos/svn$ svn checkout --revision 1729 # Checks out a new working copy at r1729 …$ svn update --revision 1729 # Updates an existing working copy to r1729 …(5) 其他有用的命令svn cleanup为失败的事务清场。
(6) 分支和合并建立分支方法一:先checkout然后做拷贝,最后提交拷贝。
$ svn checkout /repos/calc bigwcA bigwc/trunk/A bigwc/trunk/MakefileA bigwc/trunk/integer.cA bigwc/trunk/button.cA bigwc/branches/Checked out revision 340.$ cd bigwc$ svn copy trunk branches/my-calc-branch$ svn statusA + branches/my-calc-branch$ svn commit -m "Creating a private branch of /calc/trunk."Adding branches/my-calc-branchCommitted revision 341.建立分支方法二:直接远程拷贝。
$ svn copy /repos/calc/trunk \/repos/calc/branches/my-calc-branch \-m "Creating a private branch of /calc/trunk."Committed revision 341.建立分支后,你可以把分支checkout并继续你的开发。
$ svn checkout/repos/calc/branches/my-calc-branch假设你已经checkout了主干,现在想切换到某个分支开发,可做如下的操作:$ cd calc$ svn info | grep URLURL: /repos/calc/trunk$ svn switch /repos/calc/branches/my-calc-branch U integer.cU button.cU MakefileUpdated to revision 341.$ svn info | grep URLURL: /repos/calc/branches/my-calc-branch合并文件的命令参考:$ svn diff -r 343:344 /repos/calc/trunk$ svn merge -r 343:344 /repos/calc/trunk$ svn commit -m "integer.c: ported r344 (spelling fixes) from trunk." $ svn merge -r 343:344 /repos/calc/trunkmy-calc-branch$ svn merge /repos/branch1@150 \/repos/branch2@212 \my-working-copy$ svn merge -r 100:200 /repos/trunkmy-working-copy$ svn merge -r 100:200 /repos/trunk$ svn merge --dry-run -r 343:344 /repos/calc/trunk 最后一条命令仅仅做合并测试,并不执行合并操作。
建立标签和建立分支没什么区别,不过是拷贝到不同的目录而已。
$ svn copy /repos/calc/trunk \/repos/calc/tags/release-1.0 \-m "Tagging the 1.0 release of the 'calc' project."$ lsmy-working-copy/$ svn copy my-working-copy /repos/calc/tags/mytag Committed revision 352.后一种方式直接把本地的工作拷贝复制为标签。