Файлы backup-конфигураций (backup-файлы)
Общее описание
При выполнении учебных заданий бывает желательно сохранять резервные
копии программ, выполняющих учебные задания. При использовании одной из
систем контроля версий (например, CVS или SVN) можно сохранять в специальном
хранилище (репозитории) различные варианты одной и той же программы.
Начиная с версии 4.6, в задачник Programming Taskbook встроена система PTBackup, позволяющая
автоматически выполнять сохранение различных версий программ, выполняющих
задание, в требуемом репозитории системы CVS, а также в дальнейшем
просматривать тексты сохраненных версий.
Для активизации данной системы в каталоге учащегося должен находиться файл
backup.dat с backup-конфигурацией, т. е. с настройками системы PTBackup.
Для создания backup-файлов предназначена программа PTBackupMaker
«Конструктор backup-конфигураций».
После создания файла backup.dat его достаточно скопировать в рабочий
каталог учащегося. При работе с группой учащихся действия с backup-файлами
удобно выполнять с помощью команд меню «Backup-файлы» контрольного центра
преподавателя. Скопировать backup-файл в рабочий каталог позволяет и сама
программа PTBackupMaker; при этом можно также сразу протестировать созданную
backup-конфигурацию. Для отключения системы PTBackup достаточно удалить файл
backup.dat из рабочего каталога.
Перед созданием и использованием backup-конфигураций необходимо
инсталлировать систему CVS (например, ее вариант CVSNT) и создать репозиторий,
предназначенный для хранения вариантов программ. Локальный репозиторий
создается средствами самой системы CVS; можно также использовать сетевой
репозиторий; для доступа к сетевому репозиторию, как правило, требуется получить
пароль у системного администратора.
Резервное сохранение файлов
при выполнении учебных заданий
Особенности механизма резервного сохранения
Для того чтобы при выполнении учебных заданий проводилось
автоматическое резервное сохранение файлов, необходимо наличие файла
backup.dat в рабочем каталоге учащегося.
Перед пересылкой резервных копий файлов в репозиторий они размещаются
во вспомогательном подкаталоге рабочего каталога (подкаталоге с резервными
данными). Этот подкаталог размещается в скрытом подкаталоге PTBackup и имеет
имя, совпадающее с именем соответствующего каталога в репозитории. Если
данная система подкаталогов в рабочем каталоге отсутствует, то она создается
автоматически при первом резервном сохранении файлов. Успешное резервное
сохранение не сопровождается никакими сообщениями; если при выполнении
резервного сохранения возникают проблемы, то на экран выводится
информационное окно с описанием этих проблем. Все сообщения об ошибках,
связанных с пересылкой данных в репозиторий, снабжаются текстом «СООБЩИТЕ
О ДАННОЙ ОШИБКЕ ПРЕПОДАВАТЕЛЮ». Кроме сообщений об ошибках могут
выдаваться предупреждения двух видов: о возможном отключении режима
автосохранения и о том, что в рабочем каталоге не найден файл с
текстом исходной программы.
Для уменьшения количества резервных копий, не связанных с какими-либо
этапами выполнения задания, перед резервным сохранением выполняется ряд
проверок, и если хотя бы одна проверка дает положительный результат, то
резервное копирование не выполняется. Перечислим ситуации, в которых
резервное копирование не проводится:
- запуск программы привел к сообщению «Ознакомительный запуск»;
- запуск программы привел к сообщению «Верное решение. Тест номер ...»;
- содержимое файла с решением не отличается от предыдущей версии этого
файла, хранящейся в подкаталоге с резервными данными (при сравнении
не учитываются пустые строки, а также начальные и завершающие
пробелы в каждой строке).
При пересылке файла с программой в репозиторий в его начало добавляется
однострочный комментарий, содержащий текст «PTBackup», имя и расширение
файла, дату и время его пересылки и текст сообщения задачника, выведенного при
запуске данной программы (этот текст совпадает с текстом, сохраняемым в файле
results.dat). Данная информация может оказаться полезной при просмотре
сохраненных вариантов программ с использованием модуля PT4Results.
Для уменьшения числа обращений к репозиторию проверка успешности
пересылки данных выполняется только при первой пересылке файла с решением
данного задания в репозиторий. Данная проверка состоит в том, что в подкаталог с
резервными данными пересылается из репозитория только что сохраненный
вариант файла. Если пересылка оказывается неудачной, то выводится сообщение
об ошибке; если же файл удалось прочесть из репозитория, то он сохраняется в
подкаталоге с резервными данными, и в дальнейшем для данного файла подобная
проверка не выполняется.
Проверка установки режима автосохранения
При выполнении резервного копирования проводится дополнительная
проверка с целью установить, включен ли в используемой среде программирования
режим автосохранения. Для этого сравниваются даты исходного текста и exe-файла,
соответствующие предыдущему тестовому запуску (эти даты хранятся в
подкаталоге с резервными данными в файлах с расширением .ex) и даты этих же
файлов при текущем запуске (предполагается, что exe-файл при запуске
обновляется автоматически). Признаком отключенного режима автосохранения
считается ситуация, при которой даты исходных текстов совпадают, а даты exe-
файлов отличаются (однако не более чем на 2 часа). Последнее условие введено
для того, чтобы предупреждение об отключенном автосохранении не выдавалось в
следующей ситуации: учащийся на очередном занятии (например, на следующий
день) запускает программу, не внося в нее никаких изменений, а за это время exe-
файл из его каталога был удален.
Если проверка выявила, что, возможно, режим автосохранения отключен, то
на экран выводится окно с соответствующим предупреждением.
Окно с предупреждением о возможном отключении режима автосохранения.
Проверка наличия файла с текстом программы
Резервное сохранение данных будет успешным только при условии, что текст
программы с решением задания хранится в файле, имя которого совпадает с
именем задания (например, при выполнении заданий в Delphi текст решения
задания Begin3 должен храниться в файле Begin3.dpr). Это условие выполняется
автоматически, если заготовка для программы создается с помощью модуля
PT4Load. Если же текст решения нового задания набирается в файле, созданном
для какого-либо другого задания, для правильной работы системы PTBackup
необходимо сохранить этот файл под именем, совпадающим с именем
нового задания.
Если при запуске программы с решением задания система резервного
сохранения не находит в рабочем каталоге исходный файл с именем, совпадающим
с именем задания, то она выводит предупреждение, в котором предлагает
сохранить решение в файле с соответствующим именем.
Окно с предупреждением об отсутствии файла с текстом программы.
Просмотр вариантов программ,
сохраненных в репозитории
Для просмотра сохраненных в репозитории резервных копий программ версия 2.1
модуля PT4Results была дополнена новой возможностью. А именно, если в рабочем
каталоге имеется файл backup.dat, то в верхней части окна модуля PT4Results
появляется дополнительная кнопка , нажатие на которую приводит к
отображению дополнительного окна «Просмотр вариантов исходных текстов
программ» (вызвать данное окно можно также с помощью клавиши [F2]).
Окно «Просмотр вариантов исходных текстов программ».
В верхней части появившегося окна указывается имя учащегося и полное имя
его рабочего каталога.
В левой части окна выводится список всех файлов, обнаруженных в
репозитории данного учащегося, причем рядом с именем файла указывается
количество имеющихся версий этого файла. Порядок файлов соответствует дате их
последнего сохранения в репозитории; вначале указываются файлы с более
ранними датами сохранения.
При выборе какого-либо файла текст его последней версии отображается в
редакторе, расположенном в правой части окна; для перехода к другим версиям
предусмотрено поле ввода с кнопками увеличения/уменьшения значений,
находящееся в левом нижнем углу окна.
Файлы, извлеченные из репозитория, сохраняются в подкаталоге PTBackup
рабочего каталога учащегося, поэтому каждая версия файла считывается из
репозитория только один раз. Удаление данных файлов из каталога PTBackup
производится при закрытии окна «Просмотр вариантов исходных текстов
программ».
Для быстрого перемещения по файлам и их версиям удобно использовать
клавиши со стрелками: [Up] и [Down] позволяют перебирать файлы в
списке, а [Left] и [Right] версии для выбранного файла.
Тексты программ доступны только для чтения, однако их можно помечать (в
частности, комбинацией [Ctrl]+[A]) и копировать в буфер обмена Windows
(комбинацией [Ctrl]+[C]). Команды для выделения всего текста и копирования его в
буфер Windows доступны также через контекстное меню редактора.
Закрыть окно можно с помощью кнопки «Выход» или клавиши [Esc].
Если при попытке получить информацию из репозитория возникла ошибка, то
информация об ошибке выводится в нижней части окна.
|