Dv
Size: a a a
Dv
Dv
PB
root.Dv
root.PB
PB
JSON файлах. Хранятся в MongoDB. Сейчас, когда пользователь грузит новую версию сущности, я вычисляю JSON Patch который надо применить к новой версии, что бы получить старую и сохраняю в базу новую версию файла, как основную сущность и ссылку на патч в виде предыдущей ревизии. Таким образом, над сущностью можно работать и откатиться в любой момент к нужной версии. Сейчас назрел вопрос, о создании чего-то вроде веток в гите, для одновременной работы нескольких людей над одной и той же сущностью. По факту, это легко делается путём введения указателей друг на друга. Дальше планируется введение чего-то похожего на merge. Но проблема в том, что сущности должны быть изменены семантически. То есть, взять условный libgit2 и втулить его у себя не получится. Соответственно я разбираюсь как гит устроен в надежде что это наведёт меня на мысли о том, как всё это реализовать. Возможно тоже придётся строить граф по внутренним сущностям и считать хэши для них. То есть, такой себе квази-гит, где вместо файлов и папок есть внутрянка JSON. Соответственно вопрос, может общая канва сумасшествия описываемого мной кому-то из присутствующих тут знакома? Что-то уже готовое или хотя бы в виде теоретических наработок.PB
root.
object;object;object в непонятной кодировке;object в непонятной кодировке;object бинарный.PB
root, то он же как tree в графе должен быть, так ведь? Почему он не в странной кодировке, а в бинарном виде, как остальные blob?PB

Dv
Dv
Dv
git cat-file -p <object_id>Dv
Dv
JSON файлах. Хранятся в MongoDB. Сейчас, когда пользователь грузит новую версию сущности, я вычисляю JSON Patch который надо применить к новой версии, что бы получить старую и сохраняю в базу новую версию файла, как основную сущность и ссылку на патч в виде предыдущей ревизии. Таким образом, над сущностью можно работать и откатиться в любой момент к нужной версии. Сейчас назрел вопрос, о создании чего-то вроде веток в гите, для одновременной работы нескольких людей над одной и той же сущностью. По факту, это легко делается путём введения указателей друг на друга. Дальше планируется введение чего-то похожего на merge. Но проблема в том, что сущности должны быть изменены семантически. То есть, взять условный libgit2 и втулить его у себя не получится. Соответственно я разбираюсь как гит устроен в надежде что это наведёт меня на мысли о том, как всё это реализовать. Возможно тоже придётся строить граф по внутренним сущностям и считать хэши для них. То есть, такой себе квази-гит, где вместо файлов и папок есть внутрянка JSON. Соответственно вопрос, может общая канва сумасшествия описываемого мной кому-то из присутствующих тут знакома? Что-то уже готовое или хотя бы в виде теоретических наработок.PB
OJ
Dv
Dv
svn merge и до того, как я смогу дальше работать (резолвить конфликты, к примеру) проходило полчаса.Dv