文件的粘性标签不是一个分支 - CVS
Posted
技术标签:
【中文标题】文件的粘性标签不是一个分支 - CVS【英文标题】:Sticky tag for file is not a branch - CVS 【发布时间】:2015-12-18 06:19:01 【问题描述】:我正在尝试将我的更改提交到 Eclipse Kepler 中的存储库服务器(使用 CVS),但是当我这样做时,我收到了以下我从未见过的错误:
服务器在执行“cvs commit”时报错 命令。 ProsperityMobile:cvsntsrv 服务器:粘性标签
1.6' for file
src/com/prosperity/mobile/controller/UserController.java' 不是 分支 ProsperityMobile:cvsntsrv 服务器:粘性标签1.14' for file
src/com/prosperity/mobile/service/UserService.java' 不是分支 ProsperityMobile:cvsntsrv [服务器中止]:更正上述错误 第一!
老实说,我什至不知道从哪里开始解决这个问题或它甚至意味着什么。任何朝着正确方向的观点都将不胜感激!
【问题讨论】:
您在 Eclipse 工作区中的源代码可能不是最新版本 (HEAD)。首先将您的更改保存在其他地方,然后将 Eclipse 中的副本更新到最新版本。合并您的更改,然后再次提交。 【参考方案1】:我也是刚发现的。当您签出文件的特定版本或在某个特定日期签出时,可能会发生这种情况,请参阅Sticky tags 了解更多信息。
在我的例子中,文件有一个粘性标签,但也在 HEAD 处。所以我可以用
删除粘性标签cvs update -A file.h file.cpp
然后继续cvs commit
再一次,当你在一个分支上时,它的工作方式或多或少是一样的。只需使用选项 -r
更新到相关分支
cvs update -r <branch-name> file.h file.cpp
【讨论】:
【参考方案2】:要从 CVS 中的文件中删除粘性标签,请轻松使用:
cvs update -A filename
【讨论】:
【参考方案3】:标签适用于文件或文件树的特定修订。尝试对此进行更改是没有意义的,实际上服务器不支持。这就是为什么您要从分支中签出,进行更改,然后将它们签回分支。分支会随着时间而改变,而标签总是会指向特定的版本。
http://commons.oreilly.com/wiki/index.php/Essential_CVS/Using_CVS/Tagging_and_Branching
【讨论】:
【参考方案4】:我在 Eclipse 中遇到了同样的问题,并且更新不起作用。 有效的是:
右键单击文件 替换为 > 另一个分支或版本 确认(这将覆盖本地更改,因此您应该备份它们) 选择 HEAD(或您需要的分支)【讨论】:
谢谢,只是“覆盖和更新”不起作用,你的方法是的。以上是关于文件的粘性标签不是一个分支 - CVS的主要内容,如果未能解决你的问题,请参考以下文章