是否可以使用 stcmd 检出特定版本的文件?
我想检查特定文件的所有(或部分)历史记录。
Is it possible to checkout file of a specific revision using stcmd?
您可以使用标签签出特定修订版,如下所示
"C:\Program Files\Borland\StarTeam Cross-Platform Client 2005 R2\stcmd" co -p "user:pwd@host:port/MyProject/view_r1/" -is -eol on -o -rp "D:\LocalDir" -cfgl "LABELNAME"
该标签中特定文件的历史记录由
stcmd hist -p "user:pwd@host:port/MyProject/view_r1/" -cfgl "labelName" -is -rp "D:\LocalDir" FILENAME
stcmd.exe co 有一个 -vn 标志,允许您指定版本号。这是版本号,而不是 DotNotation,所以 1.15 将是版本 16。这个命令:
stcmd.exe co -vn 1 -fp . -p "user:password@server:port/ProjectName/ViewName/FolderPath" file.ext
将在当前目录中为您提供 file.ext 的 1.0。如果您想获得完整的历史记录,您可以解析 stcmd hist 的输出并找出当前的修订号,或者您可以运行上述 stcmd co 命令,将版本号从 1 递增,直到结果显示“file.ext:跳过”而不是“file.ext:已签出”(如果版本号太大而无效,则当前版本的 stcmd 不会出错)。请记住在调用之间删除本地文件或添加 -o 标志以覆盖它。我建议删除它 - stcmd co 和覆盖存在问题。
请注意,这只会让您将当前分支上的文件版本恢复到 1.0 - 您不会从其他分支获得文件的任何版本。因此,如果当前版本是 1.5.2.1,您将能够获得 1.5.2.1、1.5.2.0、1.5、1.4、1.3、1.2、1.1、1.0,但不能获得 1.5.1.0。