2009-05-20 4 views
23

Как я могу перечислить файлы CVS без первоначальной проверки?Как я могу перечислить файлы в CVS без первоначальной проверки?

В подрывной деятельности я могу просто сделать «svn ls http://svn.svn.com» в CVS, как я могу это сделать?

Например, я получил это CVS соединение:

pserver:[email protected]:/cvsroot/evocms 

Как я могу перечислить все файлы в нем?

UPDATE:

Я делаю это:

c:\>set CVSROOT=pserver:[email protected]:/cvsroot/evocms 
c:\>cvs -list ---> doesn't work, prints out the help screen 
+0

Эй, вы попробовали ответ Франака? http://stackoverflow.com/questions/889378/how-can-i-list-files-in-cvs-without-an-initial-checkout/2070969#2070969 Он работает безупречно здесь! –

ответ

33

Если это операция разового вам не нужно, чтобы установить переменные окружения CVSROOT. Просто используйте аргумент -d для спецификации ad-hoc-репозитория.

Если ваша версия CVS/CVSNT не слишком стар (чтобы быть точным вы должны были бы либо CVS 1.12.8 или выше или CVSNT), то, как уже говорили другие, после того, как вошли в

cvs ls 

должен работать нормально.

Если ваша версия CVS/CVSNT не поддерживает команду ls, то вы можете попробовать

cvs checkout -c 

, который будет только сбросить список предопределенных modules.

Если ваша версия CVS/CVSNT достаточно стар, вы можете получить повезло со следующим хака (не работает с более поздними версиями CVSNT, если режим совместимости не был включен на сервере):

сначала проверить корень хранилища в какое-то временном месте, поэтому у нас есть необходимые метаданные:

cvs -d[your CVSROOT string] co -l -dTemp . 

Затем симулировать обновление (с каталогами) из этой папки:

cd Temp 
cvs -n up -d 

Это будет выдавать (почти) тот же результат, что и фактическая проверка, фактически не получая файлы с сервера.

Если вы находитесь в Windows и используете в качестве клиента довольно недавнюю версию CVSNT, то cvs ls фактически автоматически вернется к этому механизму, когда обнаружит сервер, который не поддерживает ls.


Ах да, и AFAICT нет такого понятия, как cvs -list. Это даже не действительный синтаксис командной строки CVS: -list должен быть глобальным аргументом, а не командой, как следует непосредственно после cvs, и никакой конкретной команды не указана. Но опять же, все многобуквенные аргументы (например, --help) должны были бы начинаться с двойной тире, например. cvs --version. Вы все, возможно, думали о cvs list, который был бы простым псевдонимом для cvs ls?

+0

Я использую этот: http://ftp.gnu.org/non -gnu/cvs/binary/stable/x86-woe/cvs-1-11-14.zip - это неправильно? Возможно, поэтому он не работает. –

+0

От: http://www.nongnu.org/cvs/ –

+0

Судя по номеру версии, я думаю, что все должно быть хорошо. Я сам использую CVSNT 2.5.04 (который, к сожалению, больше не доступен из исходного источника, к настоящему времени он был заменен каким-то полупромышленным продуктом). Кроме того, я предполагаю, что это то, что вы используете на клиенте, а не на сервере? Вы еще ничего не писали о том, что происходит, когда вы делаете cvs ls (после установки CVSROOT и входа в систему). –

0

see cvs commands

, например;

cvs list 

будет список всех модулей в сервере CVS

+2

Люди, почему вы продолжаете публиковать это? Этот параметр не существует! Это даже не действительный синтаксис команды CVS для начала! –

+1

Он существует как команда вместо аргумента, используя; «cvs list» WILL перечисляет модули на сервере. – simon622

+1

Да, хорошо, я уже догадался, что к настоящему времени. Это будет работать, потому что «список» - это просто синоним «ls». См. «Cvs --help-synonyms» –

2

есть команда в похожую CVS

Использование: резюме Ls
резюме -list в список модулей, сберегательным список содержимого модулей.

EDIT: они правы, список команд и ls одинаковы, я извиняюсь за это.

ну, я действительно не вижу, как перечислить каталог cvs, не проверяя его вообще. Репо, к которому вы пытаетесь получить доступ, имеет доступ cvsweb?

+0

Hum, попробуйте установить параметр CVSROOT в качестве переменной окружения, вот что я использую, поэтому вам не нужно передавать всю строку с каждой командой. Однако я никогда не пробовал. –

+0

Я тоже пробовал, что тоже не работает, см. Мое обновление в вопросе. Может быть, я что-то упустил. –

+0

Какую версию CVS вы используете? Параметр -list не существует ни в одной из версий, о которых я знаю. –

3

Вы должны сделать login первый, как это:

резюме -d: PServer: [email protected]:/CVSROOT/evocms войти в

Тогда, как говорили другие, используйте ls command.

Для фона, см discussion of remote repositories

+0

Теперь я вижу, что проблема в моем компьютере, где -d не задает переменную окружения, не знаю почему. –

+0

Я делаю это: "c: \> set cvsroot =: pserver: anonymous: @ evocms.cvs.sourceforge.net:/cvsroot/evocms" "c: \> cvs -list" - >> doesn ' т работы. –

+0

Вы пробовали cvs -list pserver: [email protected]:/cvsroot/evocms – JeffH

0

Все,

Вот полный способ сделать это:

  1. запустим командную строку
  2. Скопируйте этот резюме -d CVSROOT Логин (или, независимо от вашего соответствующего CVSROOT есть)
  3. Введите свой пароль и нажмите клавишу ввода при появлении соответствующего запроса. Это может занять некоторое время, но после этого будет доступно новое приглашение.
  4. Тип в cvs -d cvs -d CVSROOT ls
  5. BAM! Там есть ваше объявление

Имейте в виду, что если у вас нет CVSROOT, вы можете просто скопировать и вставить свой CVSROOT здесь.

+0

Я не могу заставить это работать с CVSROOT, содержащим протокол ': ext:'. CVS жалуется, что принят только «pserver», у меня нет доступа к pserver здесь :-( –

14
cvs -d $CVSROOT rls 

надеюсь, что это помогает (CVS вер. 1.12.13)

+0

Эй, это работает! Спасибо! –

0

cvs -d [CVS_ROOT] rlog {module_name}

+0

'rlog', как' log', перечисляет ревизии, а не файлы. –

3

Это то, что я использую. msolorzano мой Логин и пароль, и «Deployer» является модуль:

cvs -d :pserver:msolorzano:[email protected]:/cvsdata/data1 rlog -R Deployer 

... на самом деле, вы можете проверять список резюме файлов в «чистом виде», если вы выполняете команды в среде UNIX/Linux, например:

cvs -d :pserver:msolorzano:[email protected]:/cvsdata/data1 rlog Deployer | grep ',v' | sed 's/RCS file: //g' | sed s/,v//g