************************************************************
svn 检出 旧版本文件.
************************************************************
不能直接用checkout, 而需要先建对应svn目录, 再调用svn update.
核心只是这一句话, 下面给个例子,详细说明操作过程.
命令: svn update -r <版本号> <文件名>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
例如: 查看README 的提交历史
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ svn log README
------------------------------------------------------------------------
r1586 | hejinjing | 2020-08-24 11:45:43 +0800 (Mon, 2020-08-24) | 1 行
修订README
------------------------------------------------------------------------
r1510 | hejinjing | 2020-06-02 15:17:07 +0800 (Tue, 2020-06-02) | 1 行
修改根文件系统使初始化server 与 ip 对应
------------------------------------------------------------------------
r311 | hejinjing | 2018-02-27 14:53:42 +0800 (Tue, 2018-02-27) | 1 行
add hostClient code
------------------------------------------------------------------------
r35 | hejinjing | 2017-08-25 11:51:11 +0800 (Fri, 2017-08-25) | 1 行
add IMX6 system file
------------------------------------------------------------------------
想拿到r35 版本的README
你只需要用:
svn update -r r35 README 就可以了.
如果你不想在你的工作目录下做变更,想用一个临时目录呢?
首先说, 直接去checkout 一个文件是不行的.
hjj@hjj-Inspiron:~$ svn checkout svn://192.168.0.2/TECHWIN/Software/HOST/IMX6/README
svn: E200007: URL “svn://192.168.0.2/TECHWIN/Software/HOST/IMX6/README” 指向一个文件,不是目录
还是要分两步走:
------------------------------------------------------------
1. 需要先建立一个空的svn检出 目录. 为了不要真正checkout 大量东西,你可以制定--depth=empty
------------------------------------------------------------
把svn的一个目录checkout 到test 目录下, 但先不要checkout 任何文件.
例子:不要照抄,要明白其意思.
hjj@hjj-Inspiron:~$ svn checkout --depth=empty svn://192.168.0.2/TECHWIN/Software/HOST/IMX6 test
U test
取出版本 1586。
hjj@hjj-Inspiron:~$ cd test
hjj@hjj-Inspiron:~/test$ ls .* -d
. .. .svn
hjj@hjj-Inspiron:~/test$ svn st
查阅信息
hjj@hjj-Inspiron:~/test$ svn info
路径: .
工作副本根目录: /home/hjj/test
URL: svn://192.168.0.2/TECHWIN/Software/HOST/IMX6
Relative URL: ^/Software/HOST/IMX6
版本库根: svn://192.168.0.2/TECHWIN
版本库 UUID: bb293511-e4eb-40db-a587-96b450cb634e
版本: 1586
节点种类: 目录
调度: 正常
深度: 空
就是说,你还是要建立一个svn目录. svn log 可以看到整个的提交列表
------------------------------------------------------------
2. 然后可以update 指定的文件, 早期版本需要指定版本号
------------------------------------------------------------
获取旧版本的命令
$ svn update -r 35 README
正在升级 'README':
U README
更新到版本 35。
hjj@hjj-Inspiron:~/test$ ls
README
$ svn log README
此时你只能看到早期的提交列表,看不到最新的.
------------------------------------------------------------------------
r35 | hejinjing | 2017-08-25 11:51:11 +0800 (Fri, 2017-08-25) | 1 行
add IMX6 system file
------------------------------------------------------------------------
更新到最新版的命令:
hjj@hjj-Inspiron:~/test$ svn update README
正在升级 'README':
U README
更新到版本 1586。
hjj@hjj-Inspiron:~/test$ svn log README
你就能看到整个的提交列表了.