Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

​XML-Merge?

332  
Murr патриот24.07.17 15:34
Murr
24.07.17 15:34 

XML-Merge?


Может кто видел/делал/знает?


Задачка такая:


Есть некоторый источник ХМЛ файлов. Формат файла с источника - не фиксированный. Это - принципиально - формат будет меняться даже после окончания разработки.


Файл с источника можно получать многократно. Получаемый файл всегда будет отличатся от полученного ранее. В простейшем случае - будет содержать поле со временем генерации, в сложном - будет существенно поменяно содержимое. Ожидается, что структура файла будет той же, что и на момент первой генерации или может быть приведена к ней. Сама структура и метод приведения - не определена (ну кроме того что там ХМЛ).


Полученный файл может редактироваться. Точнее - будет редактироваться. Т.е. будут добавлятся новые элементы и новые атрибуты.


Задача состоит в том, чтобы привести в соответствие новополученную и отредактированную версии файла - что удалено в новополученной - удалить и текущей, что добавлено - добавить. Что не понимаю - будет ли применим термин "изменено" к отношению между новым и имеющимся.


Еще - информация не должна теряться. Даже та, которая была "удалена". Где-то должен хранится дифф соответствующей версии и должна быть возможность накатить и откатить несколько действий.


Очень близко к ХМЛДИФФ, который можно взять за основу.


Если есть желающие потренироваться летом в программинге - можем обсуждать условия.


#1 
  moose свой человек24.07.17 21:14
NEW 24.07.17 21:14 
в ответ Murr 24.07.17 15:34

Выглядит несложно. Понятно, что НУЖНО БУДЕТ ПОКОВЫРЯТЬСЯ, но просто так "аус шпас" никто не станет.

#2 
AlexNek патриот24.07.17 21:25
AlexNek
NEW 24.07.17 21:25 
в ответ Murr 24.07.17 15:34
Сама структура и метод приведения - не определена

Что то мне сильно напоминает предыдущую задачу, в которой оказалось, что на самом деле всё гораздо по другому.


чтобы привести в соответствие новополученную и отредактированную версии файла

File.Copy хаха

#3 
Murr патриот24.07.17 22:20
Murr
NEW 24.07.17 22:20 
в ответ moose 24.07.17 21:14

но просто так "аус шпас" никто не станет

-----

А на немцев и не рассчитано. смущ

Реально - для средней руки прогера где-нибудь в хохлостане, казахстане, молдовостане в качестве небольшого приработка.

#4 
pavel-hh коренной житель24.07.17 22:27
pavel-hh
NEW 24.07.17 22:27 
в ответ Murr 24.07.17 22:20
А на немцев и не рассчитано. смущ

ну тогда на другом форуме об этом писать нужноулыб

Linux is like a Wigwam. No Windows! No Gates! And Apache inside.
#5 
Murr патриот24.07.17 22:40
Murr
NEW 24.07.17 22:40 
в ответ AlexNek 24.07.17 21:25

на самом деле всё гораздо по другому.

-----

Так надо дискутировать.

Я сделал набросок того что мне примерно надо по функциональности и четно сказал об чем не думал.

Делается следующее:

- читается структура базы, пишется в ХМЛ,

- делается ДИФФ между текущей и предыдущей версиями,

- ДИФФ пересылается в другую систему, где лежит УЖЕ измененный (вручную) файл,

- на удаленной системе выполняется МЕРГЕ.

НО! Пересылки сейчас делать не надо - интересует только ДИФФ, МЕРГЕ и автоматом и возможность влезть в процесс.


File.Copy

-----

Хочется File.CopyDiff

Бо, в одном пакете может оказаться 600-700 файлов по 300-400К.

Плюс обратка 10-ти кратная... ее тоже потом надо как-то редуцировать.

А то nадоест ждать на медленной сетке.

#6 
AlexNek патриот24.07.17 23:06
AlexNek
NEW 24.07.17 23:06 
в ответ Murr 24.07.17 22:40
делается ДИФФ между текущей и предыдущей версиями,

C = A-B


ДИФФ пересылается в другую систему, где лежит УЖЕ измененный (вручную) файл,

D merged with C хаха

Опять чего то промолчали.


Плюс обратка 10-ти кратная

А это еще чего?

Синхронизация двух систем нужна что ли?

#7 
Murr патриот24.07.17 23:33
Murr
NEW 24.07.17 23:33 
в ответ AlexNek 24.07.17 23:06

Опять чего то промолчали.

-----

Не, промолчал - честно сказал, что мердже будет с отредактированным вручную файлом. Там думать надо...


Синхронизация двух систем нужна что ли?

-----

На сервер уходит дифф структуры базы и дифф конфига, обратно приходит код соответствующий конфигу и структуре.

Такая синхронизация.

#8 
Murr патриот24.07.17 23:35
Murr
NEW 24.07.17 23:35 
в ответ pavel-hh 24.07.17 22:27

Здесь таки случаются и не немцы. И есть немцы у которых есть друзья не-немцы.

То, что тебя такое не интересует не означает что не интересует никого.

#9 
AlexNek патриот24.07.17 23:44
AlexNek
NEW 24.07.17 23:44 
в ответ Murr 24.07.17 23:33
Там думать надо...

на подумай улыб

Дифф- "уя, ля, ка"

Отредактированный вручную файл: "Жила-была в одной деревне маленькая девочка, такая хорошенькая, что лучше ее и на свете не было. Мать любила ее без памяти, а бабушка еще больше."

Хочу увидеть мержебебе


На сервер уходит дифф структуры базы и дифф конфига, обратно приходит код соответствующий конфигу и структуре.

Зачем тогда вторая система нужна?

#10 
Murr патриот25.07.17 00:33
Murr
NEW 25.07.17 00:33 
в ответ AlexNek 24.07.17 23:44
Хочу увидеть мерже

-----

Вот твой мерге - "".

Бо, сказано изначально - ХМЛ.


Зачем тогда вторая система нужна?

-----

Чтобы создавать код.

#11 
AlexNek патриот25.07.17 01:00
AlexNek
NEW 25.07.17 01:00 
в ответ Murr 25.07.17 00:33
Бо, сказано изначально - ХМЛ

Да неважно что именно.

Если две системы не связаны между собой и не имеют одинаковых начальных состояний, то задача нерешаемая - именно это и пытаюсь уж какой час показать. А ты делаешь вид что не понимаешь. смущ


Чтобы создавать код.

А какого она тогда редактирует что то?

#12 
Murr патриот25.07.17 08:57
Murr
NEW 25.07.17 08:57 
в ответ AlexNek 25.07.17 01:00

то задача нерешаемая

-----

Эта - решаемая.


А какого она тогда редактирует что то?

-----

Хммм...

Прикинь в применении к базам у меня на работе: 350 + 400 таблиц, 3 завода.

Изменения - затрагивают две-три таблицы.

Зачем лепить и качать весь объем?

Но это - не сейчас. Сейчас дифф и мерге. управляемые.

#13 
AlexNek патриот25.07.17 20:54
AlexNek
NEW 25.07.17 20:54 
в ответ Murr 25.07.17 08:57, Последний раз изменено 25.07.17 20:54 (AlexNek)
Эта - решаемая.

Ну тогда зависимости "скрываешь"


Зачем лепить и качать весь объем?

Какого руками в ручном режиме несинхронно редактируют? Что нельзя систему управления версиями пользовать?

#14 
  moose свой человек25.07.17 23:26
NEW 25.07.17 23:26 
в ответ Murr 24.07.17 22:20

а Вы, извините, в каком "стане" находитесь?

#15