【问题标题】:Sticky tag for file is not a branch - CVS文件的粘性标签不是一个分支 - 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 中的副本更新到最新版本。合并您的更改,然后再次提交。

标签: java eclipse version-control cvs eclipse-kepler


【解决方案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(或您需要的分支)

        【讨论】:

        • 谢谢,只是“覆盖和更新”不起作用,你的方法是的。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多