У меня есть CVS-сервер, который имеет около 50 версий файла. Я хочу получить md5sum из всех версий. конечно, одним из способов было бы вернуться ко всей версии и получить их md5sum, но я ищу менее болезненный метод.получить md5sum всей версии файла в CVS
0
A
ответ
3
Предполагая, что GNU/Linux или аналогичная среда, следующий дамп сеанса оболочки иллюстрирует потенциальное решение. Поскольку CVS хранит файлы внутри diffs
, которые должны быть обработаны для восстановления версий, действительно нет никакого «менее болезненного» метода, но, конечно, некоторые из этих проблем могут быть устранены с помощью сценария:
Сначала убедитесь, что файл не имеет локальных изменений:
$ FILE=FileToSum
$ cvs -nq update ${FILE}
Далее, создать список всех изменений файла, перебирать их, проверка каждой ревизии, собирать контрольные суммы MD5, затем снимите липкую версию из рабочего пространства, чтобы очистить.
$ cvs log -NS "${FILE}" \
> | awk '/^revision:/ { print $2 }' - \
> | while read revision; \
> do \
> echo -en "revision: ${revision}\n "; \
> cvs update -r ${revision} "${FILE}" >/dev/null 2>&1; \
> md5sum "${FILE}"; \
> done >md5sums; \
> cvs update -A ${FILE}
Результат выглядит следующим образом:
$ cat md5sums
revision: 1.17
4e70589a177f688a3bf29a3843b840dd FileToSum
revision: 1.16
e9663f204cbc440235db7918e0be0a6a FileToSum
revision: 1.15
.
.
.
Спасибо, это сработало, однако, я должен был заменить '/^ревизии: /' с '/^пересмотр /'. В cvs log в моей настройке нет ':'. –