Валерий Крылов (justy_tylor) wrote,
Валерий Крылов
justy_tylor

Информация во времени

Основная проблема современных VCS (DVCS) - что они помесь ежа с ужом. Принципиально разные задачи, version control и changes tracking, смешиваются в неделимый процесс.

Первая задача - умный бэкап из 3D-пространств (файловых систем) в 4D-пространства (VCS-репозитории) с дополнительными модальностями (branches). Каждая версия и каждая транзакция может сопровождаться информацией об источниках, предшественниках, инициаторе изменения, а также другими полезными данными.

Вторая задача - попытка отследить логику изменений между версиями. Специальные алгоритмы переводят изменения на уровне обычных 3D-файлов в diff на уровне строк. Но даже если бы у нас были 4D-файлы, с редактором, записывающим в репозиторий историю "строки 134..144@time2 это копипаст из 28..38@time1", автоматически восстановить логику изменений из этого нельзя. Строки могут быть идентичными, но намерения совершенно иными. А копипаст с близкого места - просто для скорости.

Вообще говоря, вторая задача интересует разработчиков когда что-то идёт не так. Занятия археологией в репозитории сходны с применением отладчика. А остальным участникам проекта нужны не комментарии к коммиту "фича есть, баг повержен", а мнение отдела тестирования.

По уму, начинать надо с приличной идентификации вместо magic numbers гадюшников типа Git.

Оптимально - ((repository+branch) or (host+directory))+local_path+timestamp, ибо это даёт максимальное совпадение с естественным восприятием пространства и времени.

На этом строить 4D-репозитории с разными логиками (храним всё, храним две последние версии видео, ...) и свободными метаданными. А задачу changes tracking решать поверх более подходящим софтом - тасктрекерами, которые предназначены именно для работы с историями и намерениями.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 1 comment