Автор Тема: Инструменты сравнения/слияния текстов  (Прочитано 18415 раз)

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Инструменты сравнения/слияния текстов
« Ответ #45 : Март 17, 2012, 10:10:25 pm »
Надо еще Araxis посмотреть. Я его уже пробовал год назад. Но тогда он мне совсем не понравился (не помню почему).

Мне он тоже не понравился (в сравнении с beyond comapre).

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: Инструменты сравнения/слияния текстов
« Ответ #46 : Март 17, 2012, 10:27:01 pm »
А смысл сравнивать 3 файла? Откуда берётся третий файл?

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Инструменты сравнения/слияния текстов
« Ответ #47 : Март 18, 2012, 10:03:33 am »
Ну вот допустим есть некий модуль версии 1.0. В модуле две процедуры А() и В()
Два человека независимо друг от друга вносят изменения в свои копии этого модуля, т.е. появляются два потомка.

Сравнивая три файла (исходный и два потомка) мы обнаружим что каждая процедура:
1) Не изменялась ни у первого, ни у второго потомка
2) Изменялась только у первого
3) Изменялась только у второго
4) Изменялась у обоих

Понятно, что в первых трех случаях слияние можно сделать автоматически. А четвертый конфликтный вариант придется делать вручную.

Ну вот как то так. :)

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems

trurl

  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Инструменты сравнения/слияния текстов
« Ответ #49 : Март 18, 2012, 12:42:59 pm »
Понятно, что в первых трех случаях слияние можно сделать автоматически.
Со 2/3 не все однозначно. Допустим в версии 1.0 обнаружился баг. Алена правит его, изменяя процедуру А. Независимо Вася делает то же, но изменяет процедуру В.  Автоматически сливая два исправления, получаем баг на новом уровне.


ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Инструменты сравнения/слияния текстов
« Ответ #50 : Март 18, 2012, 01:38:14 pm »
На самом деле такой сценарий маловероятен. Ошибка о которой вы говорите - это скорее ошибка логики уровнем выше чем поведение внутри этих двух процедур.  Мне например трудно себе представить, что за ошибка, которую можно исправить, внося изменения либо в одну либо в другую процедуру...
В таких случаях обычно добавляются/удаляются процедуры. И соответственно правится код их вызывающий. А это уже 4 случай, и система предложит выполнить слияние вручную.

Бывают конечно исключительные ситуации. Но тут уж ничего не поделаешь. Такие косяки нужно выявлять тестированием после сборки проекта.

Все современные системы контроля версий базируются на 3-way merge. И вроде как успешно.

Тут еще дело в том, что если отказаться от автоматического слияния, то все будет делаться вручную и ошибок при этом будет больше.

Теория вероятности короче  ;D

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Инструменты сравнения/слияния текстов
« Ответ #51 : Март 04, 2013, 07:53:06 am »
Еще один няшный дифф: http://ru.wikipedia.org/wiki/Meld

Умеет 3-way merge на папках.

Красиво показывает отличия:


Правда работает не очень быстро.