我的同事从cvs检查了我们的源代码树并做了一些本地更改,然后给了我一份整个修改过的目录。当我尝试对它进行cvs操作时,cvs正在询问他的密码。有没有办法在这个目录下的cvs文件中更改保存的用户名,这样我就可以继续处理它,好像我已经检查出来并进行了更改?
我们不希望签入此修改后的代码或创建任何其他分支。
感谢。
答案 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。