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