CVS только для чтения проверить - PullRequest
2 голосов
/ 18 июля 2009

Я должен использовать CVS в проекте. До сих пор за всю свою трудовую жизнь я использовал только перформанс и ничего не знаю о CVS, я прочитал руководство по CVS, но не смог найти, как это сделать:

В перформансе, когда вы извлекаете файл, вы сначала должны выполнить p4 edit filename.C (сообщая системе перформанса, что вы намеренно собираетесь отредактировать этот файл с намерением в конечном итоге передать его)

В CVS, когда я извлек файл, выполнив команду cvs co fileName.C, файл уже находится в состоянии готовности к редактированию.

Что является эквивалентом в CVS того, что является обычной практикой в ​​исполнении?

[Мне нравится дополнительная безопасность, связанная с тем, что вы должны сначала явно указать системе контроля версий о своем намерении редактировать файл, прежде чем начать это делать. Это позволяет вам легко просматривать отредактированные файлы, отменять изменения и т. Д. Кроме того, вы также можете вносить временные изменения, явно редактируя файлы, не выполняя сначала p4 edit fileName.C и позже вы знаете, что вы имели в виду только временные изменения. изменения]

Большое спасибо!

Ответы [ 2 ]

3 голосов
/ 18 июля 2009

Вы можете сделать что-то вроде этого:

cvs -r checkout ....

тогда, когда вы хотите отредактировать файл, вы должны

cvs edit filename

Кроме того, если вы хотите, чтобы commit возвращал файлы только для чтения, вы должны

cvs -r commit ...

Или забудьте про -r и просто установите переменную среды CVSREAD. Намного проще!

На странице справки CVS в разделе глобальных опций:

-r

Сделать новые рабочие файлы доступными только для чтения. Тот же эффект, как если бы $ CVSREAD установлена ​​переменная окружения (см. узел Переменные среды в CVS руководство). По умолчанию это сделать рабочие файлы для записи, если только часы включены (см. узел "Наблюдения" в CVS по эксплуатации).

Пример:

$ cvs -r checkout baz
cvs checkout: Updating baz
U baz/file
$ ls -l baz/file
-r--r--r-- 1 rfeany None 13 Jul 17 21:08 baz/file
$ cvs edit baz/file
$ ls -l baz/file
-rw-r--r-- 1 rfeany None 13 Jul 17 21:08 baz/file
1 голос
/ 18 июля 2009

CVS имеет команду «edit», которая сообщает серверу, что вы редактируете файл. Это честно редко используется. При редактировании файла нет необходимости сообщать системе, это можно легко определить, проверив, отличается ли содержимое.

Subversion имеет возможность заблокировать файл, что может быть больше, чем вы пытаетесь сделать.

Распределенные системы не имеют такого понятия, так как им не нужно реализовывать это (и никак иначе).

Кстати, выбор CVS вызывает недоумение. В настоящее время доступны гораздо лучшие технологии для контроля версий.

...