Если у вас есть какие-то проблемы при использовании CVS, то вам поможет это приложение. Если вы видите конкретное сообщение об ошибке, то можете найти его здесь по алфавиту. В противном случае обратитесь к главе о прочих проблемах и попробуйте найти там свою.
Вот частичный список сообщений об ошибке, которые может выдавать CVS. Это неполный список -- CVS может выдавать множество разнообразных сообщений об ошибке, часть которых выдается операционной системой. Назначение этого раздела --- перечислить обычные и/или потенциально непонятные сообщения.
Сообщения перечислены в алфавитном порядке, но вводный текст, такой как `cvs update: ' не учитывается.
В некоторых случаях в этом списке находятся сообщения, которые выдаются старыми версиями CVS (частично из-за того, что пользователи могут быть не уверены, какую версию CVS они используют в настоящий момент).
cvs command: authorization failed: server host rejected access
$CVSROOT
разрешен с помощью ключа `--allow-root' в
`/etc/inetd.conf'. См. section Прямое соединение с парольной аутентификацией.
file:line: Assertion 'text' failed
cvs command: conflict: removed file was modified by second party
cannot change permissions on temporary directory
Operation not permittedЭто сообщение иногда появлялось при выполнении набора тестов под RedHat Linux 3.0.3 и 4.1, причем повторить его, а также выяснить его причину, мы не смогли. Неизвестно, проявляется ли эта ошибка только под Linux (или вообще только на этой конкретной машине!). Если проблема не случается на других UNIXах, то, скорее всего, сообщением об ошибке будет `Not owner' или другое сообщение, возникающее при ошибке
EPERM
, вместо `Operation not
permitted'. Если вы можете что-то добавить, сообщите нам, как
описано в section Что делать с ошибками в CVS и этом руководстве?. Если вы сталкиваетесь с этой
ошибкой при использовании CVS, следует повторить операцию, и
она пройдет успешно.
cannot open CVS/Entries for reading: No such file or directory
cvs [init aborted]: cannot open CVS/Root: No such file or directory
cvs [checkout aborted]: cannot rename file file to CVS/,,file: Invalid argument
cvs [command aborted]: cannot start server via rcmd
:local:
, как описано в section Репозиторий.
ci: file,v: bad diff output line: Binary files - and /tmp/T2a22651 differ
cvs checkout: could not check out file
co
(из комплекта RCS) завершилась с
ошибкой. Перед этим сообщением должно быть другое, с объяснением
причины, однако, наблюдались и ситуации с отсутствием оного,
которые так и не объяснены. При работе с текущей версией
CVS, которая не использует co
, появление этого
сообщения без сопровождающего объяснения определенно означает
ошибку в CVS (see section Что делать с ошибками в CVS и этом руководстве?).
cvs [login aborted]: could not find out home directory
cvs update: could not merge revision rev of file: No such file or directory
rcsmerge
. Убедитесь, что она находится в вашем
PATH
, или поставьте свежую версию CVS, которая не
требует внешней программы rcsmerge
.
cvs [update aborted]: could not patch file: No such file or directory
patch
.
Убедитесь, что она находится в вашем PATH
. Заметьте, что,
несмотря на формулировку сообщения, оно не относится к
файлу `file'. Если клиент и сервер оба используют текущую
версию CVS, то внешняя программа patch
не требуется и
вы не должны получать такое сообщение. Если же клиент либо
сервер используют @cvsver{1.9}, то программа patch
требуется.
cvs update: could not patch file; will refetch
dying gasps from server unexpected
end of file from server (consult above messages if any)
rsh
и она завершилась с кодом ошибки. В
этом случае она должна была напечатать сообщение, которое
появится перед обсуждаемым сообщением. Дальнейшая информация о
настройке клиента и сервера CVS находится в section Сетевые репозитории.
cvs commit: Executing 'mkmodules'
cvs commit: Rebuilding administrative file databaseЕсли вы видите оба сообщения, то база данных перестраивается дважды, что необязательно, но нестрашно. Если вы хотите избежать ненужной работы, и не используете версию @cvsver{1.7} или раньше, удалить
-i mkmodules
везде, где эта строка появляется в
файле `modules'. Дальнейшая информация об этом файле
находится в section Файл `modules'.
missing author
*PANIC* administration files missing
rcs error: Unknown option: -x,v/
cvs [server aborted]: received broken pipe signal
Too many arguments!
cvs [login aborted]: unrecognized auth response from server
cvs commit: Up-to-date check failed for `file'
cvs update
. Сделайте
cvs update
и повторите cvs commit
. CVS
объединит изменения, которые сделали вы, с изменениями,
сделанными остальными. Если не случится конфликтов, то CVS
выдаст сообщение `M cacErrCodes.h', и можно сразу выполнять
cvs commit
. Если обнаружены конфликты, то CVS
сообщит об этом, сказав, что `C cacErrCodes.h', и вам
потребуется вручную устранить конфликт. Дальнейшие детали этого
процесса обсуждаются в section Пример конфликта.
Usage: diff3 [-exEX3 [-i | -m] [-L label1 -L label3]] file1 file2 file3
Only one of [exEX3] allowedЭто указывает на проблему с установленными программами
diff3
и rcsmerge
. Точнее говоря, rcsmerge
скомпилирован так, что должен использовать GNU-версию
diff3
, а вместо этого находит UNIX-версию. Точный
текст сообщения разный на разных системах. Самым простым
решением будет обновить версию CVS, которая не использует
внешних программ rcsmerge
и diff3
.
warning: unrecognized response `text' from cvs server
rsh
, которая, как большинство не-UNIX версий, не
обеспечивает прозрачного потока данных. В этом случае попробуйте
`:server:' вместо `:ext:'. Если в text
содержится что-то ещё, это может означать проблемы с вашим
CVS-сервером. Ещё раз проверьте, как вы установили
CVS-сервер.
cvs commit: [time] waiting for user's lock in directory
cvs commit: warning: editor session failed
vi
делают это
даже в том случае, если при редактировании файла не было ни одной
ошибки. Если это так, то пусть ваша переменная окружения
`CVSEDITOR' указывает на маленький скрипт, например
#!/bin/sh vi $* exit 0
В этой главе обсуждается, что делать, если у вас проблемы с установкой соединения с CVS-сервером. Если вы использует клиент командной строки CVS под Windows, сначала обновите его до версии 1.9.12 или более поздней. Сообщения об ошибках в старой версии предоставляли значительно меньше информации о местонахождении проблемы. Если клиент работает под другой операционной системой, то @cvsver{1.9} вполне достаточно.
Если сообщений об ошибках недостаточно, чтобы отследить проблему, то следующие шаги сильно зависят от используемого метода доступа.
:ext:
rsh
из командной строки.
Например,
$ rsh servername cvs -vдолжно выдать информацию о версии CVS. Если это не срабатывает, то ваш сервер нужно исправить, прежде чем беспокоиться о проблемах с CVS.
:server:
rsh
не требуется, но она может быть полезна в качестве
средства отладки. Следуйте инструкциям, приведенным для метода
`:ext:'.
:pserver:
$ telnet servername 2401После соединения напечатайте любой текст, например, `foo', нажмите RET. Если CVS работает, то ответом будет
cvs [pserver aborted]: bad auth protocol start: fooВ противном случае убедитесь, что
inetd
работает
правильно. Замените вызов CVS в файле
`/etc/inetd.conf' на программу `echo'. Например:
2401 stream tcp nowait root /bin/echo echo helloТеперь сделайте так, чтобы `inetd' перечитал свой файл конфигурации, попробуйте `telnet' ещё раз, и вы должны увидеть слово `hello', а затем сервер должен закрыть соединение. Если это не так, то нужно исправить ваш `inetd', перед тем, как беспокоиться о CVS. На системах под AIX зачастую порт 2401 уже используется системой. Это проблема AIX в том смысле, что порт 2401 зарегистрирован для CVS. Я слышал, что есть исправление этой проблемы под AIX.
Вот список проблем, не попадающих ни в одну из вышеперечисленных категорий.
Go to the first, previous, next, last section, table of contents.