从CVS仓库中移除旧文件检出

3
在检查我们的CVS仓库中的某些文件时,我注意到有人已经将文件签出,但他已经离开公司了。他似乎在离开之前没有撤销签出操作,导致这些文件现在被卡在了仓库里。由于他的用户帐户和文件已经被删除,所以我无法登录到他的机器上撤销签出。
请问是否有一种在服务器上删除这些签出的方法?
谢谢。

我一直认为CVS是基于“复制-修改-合并”方式的,因此在服务器上没有“检出”的概念。 - Anton Gogolev
它确实在服务器上进行了检出。执行检出不是必需的,但当有多个人共同开展项目时,了解其他修改相同文件的人是很有用的。 - ted214
请检查您的术语。在CVS中,“Checkout”始终是非独占性的。您所谈论的可能是通常在CVS术语中称为“Lock”的内容,即cvs admin -l(在大多数版本的CVS(NT)中标记为已弃用)。或者您是在谈论CVSNT的“保留编辑”? - Oliver Giesen
或者换句话说:请澄清文件被“锁定”的具体工作流程,然后我们可以告诉您如何撤销它。 - Oliver Giesen
我不太确定那个问题的答案是什么。我们正在使用一个第三方的Visual Studio CVS插件来处理CVS仓库,它使用的术语是“Checkout”。我认为它所做的是保留编辑。我想我可能已经解决了这个问题,但它涉及手动从仓库机器上的fileattr.xml文件中删除编辑器和监视器标签。 - ted214
1个回答

2
根据您在评论中提到的fileattr.xml,看起来您正在使用CVSNT。在这种情况下,从存储库中删除这些文件确实是可行的,但相当粗暴。如果您的VS插件确实使用CVSNT的保留编辑命令来实现独占式检出,则以下命令也应该已经删除了编辑锁定:
cvs unedit -u <username> <files...>

(其中<username>是当前持有“锁定”的用户的名称)

这需要您的用户帐户被CVS服务器视为管理员。有多种方法可以实现此目的,最简单的方法是在 CVSROOT / admin 文件中列出您的用户名。如果我记得正确,CVSNT还通过特殊的Windows用户组支持仓库管理员。您需要检查文档以了解具体信息。


@ted214:感谢您接受我的答案!也可以自由投票。 ;) - Oliver Giesen
我还差7个声望才能达到15个所需的投票要求,很抱歉,我不能为它投票。 - ted214
@ted214:别担心,我也不知道有这个限制(再次)。随便找点什么来回答以弥补这一点。;) 无论如何,所以 unedit -u 确实解决了问题,是吗? - Oliver Giesen
是的,在我将自己添加到管理员文件“unedit -u”之后,问题得到了解决。看起来CVS存在一些安全问题,即使前任员工的Windows用户帐户被删除,我仍然可以使用他的信息进行身份验证(因为他的名字仍然在passwd文件中)。我很高兴在尝试解决这个问题时发现了这一点。 - ted214
@ted214:听起来你正在使用:pserver:协议,这个协议完全独立于Windows用户账户。该协议本质上是不安全的(如果我没记错的话,它甚至会以明文形式传输密码),通常只用于匿名只读访问。如果你想要安全性和与Windows用户账户的集成,你应该使用:sspi:协议。希望这可以帮到你。 - Oliver Giesen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接