CVS在从主干到分支的两个修订之间合并差异导致文件删除而不是合并

时间:2014-01-21 17:58:43

标签: merge cvs

我正在尝试将最近的主干更改合并到分支。从分支工作目录我正在执行合并更新命令(将树干修订之间的差异合并到分支):

cvs update -j 1.207 -j 1.208 file.cpp

但是不是合并CVS而是删除更新的文件:

cvs update: scheduling `file.cpp' for removal

我确定该文件未被删除或移动到另一个目录。 本地文件修订版为1.203.8.1

为什么它不合并?我怎么能以另一种方式做到?

1 个答案:

答案 0 :(得分:1)

问题是我忘记了CVS服务器复制。我们从中央办公室复制了几个本地办公室存储库。我在中央CVS服务器上检查了trunk,但是从本地服务器执行了更新。尚未复制更改,并且请求文件修订在本地存储库中尚不存在。经过一段时间的复制完成并且merge命令成功完成。

但真正令我生气的是,CVS不会返回有关不存在的修订版本的错误,只是将其视为文件已从存储库中删除!

幸运的是,CVS为不存在的标记返回错误,因此为了确保您的签入存在于存储库中,您可以使用下一个命令(WinCVS,Windows平台):

cvs update -p -rYourCheckinTag file.cpp>nul

如果失败,CVS将返回描述性错误消息:

cvs [update aborted]: no such tag `YourCheckinTag'

如果成功,CVS将返回文件存储库路径和请求的修订号:

===================================================================
Checking out file.cpp
RCS:  /projects/file.cpp,v
VERS: 1.208
***************