如何在签出目录中切换cvs用户

时间:2010-07-02 17:02:32

标签: cvs

我的同事从cvs检查了我们的源代码树并做了一些本地更改,然后给了我一份整个修改过的目录。当我尝试对它进行cvs操作时,cvs正在询问他的密码。有没有办法在这个目录下的cvs文件中更改保存的用户名,这样我就可以继续处理它,好像我已经检查出来并进行了更改?

我们不希望签入此修改后的代码或创建任何其他分支。

感谢。

3 个答案:

答案 0 :(得分:7)

找到解决方案:

部分说明如下: http://worldforge.org/doc/faq/cvs/#unix2

这就是我的所作所为:

> find module_dir_name -regex .*CVS/Root -print0 | xargs -0 perl -p -i.orig -e "s/olduser/newuser/;"
> find module_dir_name -regex .*CVS/Root.orig -print0 | xargs -0 perl -p -i.orig -e "s/olduser/newuser/;"

答案 1 :(得分:0)

感谢您的解决方案,stupakov;这对我帮助很大!。使用此命令可以稍微简单(并且更通用;我没有安装perl)。请注意,它处理Root和Root.orig:

find module_dir_name -regex ".*CVS/Root\(.orig\)?" -print0 \
    | xargs -0 sed -i s/olduser/newuser/ 

答案 2 :(得分:0)

使用TortoiseCVS / CVSNT的替代方法是使用switch命令:右键单击文件资源管理器中的CVS跟踪目录,然后从CVS子菜单中选择Switch ....你会得到一个新CVSROOT的提示。例如,如果旧的CVSROOT是“:pserver:alice @ cvs:/ vol / cvsroot”,请输入“:pserver:bob @ cvs:/ vol / cvsroot”将用户从alice切换到bob。该更改以递归方式影响整个子目录。

也可以从命令行执行:

PS> cvs switch -h
switch: invalid option -- h
Usage: cvs switch [-f] newroot
        -f      Change all roots, not just those matching the current directory.
(Specify the --help global option for a list of other help options)

但请注意,此功能特定于CVSNT。