Проверка CVS без всех дополнительных папок

Я хочу извлечь определенную папку из глубины модуля CVS в мое рабочее пространство Hudson/Jenkins. Отбрасывая другие параметры (такие как обрезка, ветвление и т. д.), команда CVS...

cvs checkout -d workspace module\a\b\c\d\e\f

Это приводит к тому, что моя папка содержит дочернюю папку 'a', которая содержит 'b' и которая содержит ... ну, вы поняли идею. Все они пусты, пока вы не дойдете до папки 'f'.

Мне бы очень хотелось, чтобы myfolder содержал содержимое f. Поддерживает ли CVS эту функциональность (без определения f как модуля)?

И для бонусной кармы ... Могу ли я заставить Дженкинса использовать эту опцию с .cvsrc или каким-либо другим механизмом?


person RichH    schedule 04.02.2011    source источник
comment
$ CVS_RSH=ssh cvs -d [email protected]:/cvs/src/usr.bin/ssh checkout -P . Это то, что я использовал, чтобы получить только содержимое src/usr.bin/ssh в текущий каталог. Я не знаю, как устроен ваш CSV-репозиторий, но, возможно, вы могли бы попробовать cvs checkout -d workspace/module/a/b/c/d/e/f .. Вы можете просмотреть репозиторий, использованный в моем примере, по адресу cvsweb.openbsd. .org/cgi-bin/cvsweb/src/usr.bin/ssh.   -  person Daniel Le    schedule 14.04.2018


Ответы (3)


Я не понимаю поведения, которое вы описываете. Когда я перехожу в пустой каталог и делаю

cvs checkout -d fox modules/a/quick/brown/fox

Я просто получаю новый каталог с именем fox, содержащий содержимое запрошенного каталога. (Обратите внимание на косую черту.)

Однако, если я сделаю

cvs checkout modules/a/quick/brown/fox

тогда я понимаю то, что вы описываете.

Я использую последнюю сборку CVS FSF для Windows, http://ftp.gnu.org/non-gnu/cvs/binary/feature/x86-woe/cvs-1-12-13a.zip .

person user610184    schedule 09.02.2011
comment
Я попытался переключиться на этот cvs.exe (я использовал CVSNT) и перейти на косую черту. Я по-прежнему получаю такое же поведение с полной иерархией a/b/c/de/f. - person RichH; 09.02.2011

В вашей папке CVSROOT есть файл с именем «modules». Вы можете отредактировать его и строку, подобную следующей:

###shortcut name                            actual path########     
f                                         /a/b/c/d/e/f

Верните этот файл обратно. Как только он установится, вы можете просто использовать

cvs checkout -d workspace f

Кроме того, в Hudson вы можете (в поле Modules(s) ) просто поставить f, и он должен напрямую загружать только f, а не всю структуру. Как только это не работает, вы можете переименовать его с помощью оболочки/команды.

person Sagar    schedule 04.02.2011
comment
К сожалению, я не могу контролировать определение новых модулей. Мне их тоже понадобится много (поскольку многие папки нуждаются в сопоставлении таким образом). Я надеялся найти альтернативное решение, но это все еще хороший ответ. - person RichH; 04.02.2011
comment
Хм... к сожалению, я не уверен, почему Хадсон это делает. Если вы попробуете ту же команду из командной строки (я только что сделал), вы должны получить все файлы и папки из f непосредственно под рабочей областью... - person Sagar; 08.02.2011
comment
Похоже, что в вашей конфигурации может быть что-то другое, потому что ванильный CVS не должен вести себя так. Можете ли вы попробовать это на другом компьютере? - person Sagar; 10.02.2011

Еще в целом:

Поднимитесь на 1 уровень выше, где вы проверили

cvs co -r "TAG"

person liegebeest    schedule 22.11.2011