У меня курсовая работа по теме: "Реализация системы контроля версий"
Буду писать на с++ билдере
Программа должна иметь следующие особенности:
Работа в сети. Основные операции
add/delete files
get latest version
check out
chek in
Из словаря:
check-in, commit, submit
Создание новой версии, публикация изменений. Распространение изменений, сделанных в рабочей копии, на хранилище документов. При этом в хранилище создаётся новая версия изменённых документов.
check-out, clone
Извлечение документа из хранилища и создание рабочей копии.
Примерно с теорией принципов работы таких программ ознакомилась, сами программы ещё не смотрела, на АГМК никто такое не использует, придётся качать и тестировать самой.
Посоветовали использовать базу данных для реализации такой программы, собственно, поэтому в этом разделе и пишу.
Вопрос: что можете посоветовать? Как реализовать? Какие идеи? Как организовать работу в сети? Как избежать конфликтов обращения клиентов? Что записать в базу? Какие могут быть ньюансы?
Я тут узнаю много чего нового, пока общаюсь с людьми
Может и у Вас чего нового почерпну...
Работа в сети - для меня совершенно белое пятно в программировании.
Работа с базой из с++ билдера тоже для меня незнакома.
Работа с файлами сопровождалась несовершенным кодом и глюками в работе.
О логике:Надо так:
Централизованная модель - имеется единое хранилище документов, управляемое специальным сервером, который и выполняет бо́льшую часть функций по управлению версиями.
Пользователь, работающий с документами, должен сначала получить нужную ему версию документа из хранилища; обычно создаётся локальная копия документа, т. н. «рабочая копия».
Может быть получена последняя версия или любая из предыдущих, которая может быть выбрана по номеру версии или дате создания, иногда и по другим признакам.
После того, как в документ внесены нужные изменения, новая версия помещается в хранилище. В отличие от простого сохранения файла, предыдущая версия не стирается, а тоже остаётся в хранилище и может быть оттуда получена в любое время.
Пользователь просто работает с файлом, как обычно, и при сохранении файла автоматически создаётся новая версия.
Если два человека хотят изменить один и тот же файл, система управления версиями блокирует файл в хранилище, пока с ним работает один человек. Блокировка не позволяет другим пользователям получить рабочую копию или препятствует изменению рабочей копии файла (например, средствами файловой системы) и обеспечивает, таким образом, исключительный доступ только тому пользователю, который работает с документом.
Контролируются права доступа пользователей, разрешая или запрещая чтение или изменение данных, в зависимости от того, кто запрашивает это действие.
В голове сумбур по поводу того, что означает "линейная" версионность (РХЛ).
В словаре:
trunk, mainline
Ствол — основная ветвь разработки проекта. Политика работы со стволом может отличаться от проекта к проекту, но в целом она такова: большинство изменений вносится в ствол; если требуется серьёзное изменение, способное привести к нестабильности, создаётся ветвь, которое сливается со стволом, когда нововведение будет в достаточной мере испытано; перед выпуском очередной версии создаётся «релизная» ветвь, в которую вносятся только исправления.
Для себя сюда скину ссылки, которые надо будет прочитать
http://ru.wikipedia.org/wiki/Система_управления_версиями
http://ru.wikipedia.org/wiki/Subversionhttps://forum.shelek.ru/index.php/topic,970.0.htmlhttps://forum.shelek.ru/index.php/topic,6966.0.html