Позволяет ли CVS фиксировать файл в ветке, отличной от той, из которой он был извлечен? Страница man и некоторые сайты предполагают, что мы можем сделать cvs ci -r branch-1 file.c
, но выдает следующую ошибку:
cvs commit: актуальная проверка не удалась для `file.c '
cvs [commit aborted]: сначала исправьте вышеуказанные ошибки!
Я сделал cvs diff -r branch-1 file.c
, чтобы убедиться, что содержимое файла file.c в моих BASE
и branch-1
действительно одинаково.
Я знаю, что мы можем вручную проверить с помощью cvs co -r branch-1
, объединить с ним основную ветвь (и исправить любые проблемы слияния), а затем выполнить проверку. Проблема в том, что существует несколько ветвей, и я хотел автоматизировать вещи с помощью сценария. Эта тема , кажется, предполагает, что -r
был удален. Кто-нибудь может это подтвердить?
Если ci -r
не поддерживается, я думаю сделать что-то вроде:
- Убедитесь, что версии филиала и базовая версия совпадают с
cvs diff
- Регистрация в текущей ветке
- Хранить копию файла во временном файле
- Для каждой ветви:
- Выезд из филиала с
-r
- заменить файл временным файлом
- Регистрация (будет идти ветка, так как
-r
липкая)
- Удалить временный файл
Заменяющая часть звучит как мошенничество. Можете ли вы вспомнить какие-либо потенциальные проблемы, которые могут возникнуть? Я должен быть осторожен с чем-нибудь? Есть ли другой способ автоматизировать этот процесс?