我已经更新了 cvs 几次,想获得一个旧版本,是否可以获得同一文件的不同版本?还是应该只是最新的签入版本?
2 回答
切换到某个版本号:cvs update -r 1.42 myfile
切换到某个标签:cvs update -r mytag
切换到某个日期:cvs update -D 'last friday 12:00 PST'
如果您还没有签出某个版本,您可以通过-r
或-D
直接到cvs checkout
.
这些都将您的工作副本切换到您指定的修订版或日期(这称为“粘性标签”)。要返回 head 修订版,请发出cvs update -A
.
您还可以使用以下选项将特定修订版检索到不同的文件中-p
:cvs update -p -r 1.42 myfile >myfile-1.42
. 这不会触及您的myfile
.
是的 - 用 CVS 的术语来说,听起来您已经提交了多个版本(到存储库),现在您想要恢复以前的版本之一......所以您将更新您的沙箱。如果它是一个特别有趣的版本,您可能想要标记它,这样您就可以再次找到它,而无需使用版本号。
无论哪种情况,您都可以像这样运行 cvs 命令:
cvs update -r 1.14 foo.java
cvs update -r spiffy_tag foo.java
但是要知道,如果您运行其中任何一个,您的本地副本中都会有一个“粘性标签”,并且无法从那里提交回来。(运行“cvs status foo.java”来查看粘性)......所以如果你想处理那个rev并调整它,你可能想先创建一个分支......然后如果你运行:
cvs update -r my-branch foo.java
您将能够将更改提交回 repo。