2010-07-02 3 views
3

Мой коллега проверил наше исходное дерево из cvs и внес некоторые локальные изменения, а затем дал мне копию всего измененного каталога. Когда я пытаюсь выполнить cvs-операции, cvs запрашивает пароль. Есть ли способ изменить сохраненное имя пользователя в файлах cvs в этом каталоге, чтобы я мог продолжить работу над ним, как если бы я проверил его и внесли изменения?Как переключить пользователя cvs в извлеченный каталог

Мы не хотим проверять этот модифицированный код или создавать любые дополнительные ветви.

Спасибо.

ответ

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/;" 
0

Спасибо за ваше решение, Ступаков; Это мне очень помогло!. Это может быть немного проще (и более универсальным, я не имел perl) с этой командой. Обратите внимание, что он обрабатывает как корень и Root.orig:

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

Альтернативой с TortoiseCVS/CVSNT является использование команды переключения: щелкните правой кнопкой мыши на CVS-гусеничный каталога в File Explorer и выберите переключатель ... от Подменю CVS. Вы получите приглашение для нового 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.

Смежные вопросы