Геометрические вычисления для GIS или картографии, такие как нахождение края круга.
Он их не отслеживает. В этом вся прелесть.
Git записывает только снимки всего дерева проекта: вот как все файлы выглядели до фиксации, а вот как они выглядели после. Как мы перешли отсюда туда, Git не волнует.
Это позволяет писать интеллектуальные инструменты после фиксации, чтобы извлечь информацию из этой фиксации. Например, обнаружение переименования в Git выполняется путем сравнения всех удаленных файлов со всеми новыми файлами и сравнения показателей попарного сходства. Если показатель подобия больше, чем x
, они считаются переименованными, если он находится между y
и x
( y
y
, они считаются независимыми. Замечательно то, что вы, как «совершающий археолог», можете задолго до факта указать, какими должны быть x
и y
. Это не сработало бы, если бы фиксация просто записала «этот файл является переименованием этого файла».
Обнаружение перемещенного содержимого работает аналогично: вы разрезаете каждый файл на части, вычисляете метрики сходства между всеми фрагментами и затем можете сделать вывод, что этот фрагмент который был удален здесь, и этот очень похожий фрагмент, который был добавлен туда, на самом деле является тем же самым фрагментом, который был перемещен отсюда туда.
Однако, как сказал Тонфа в своем ответе, это очень дорого , поэтому обычно это не делается. Но это могло быть сделано, и в этом суть.
Кстати: это в значительной степени полная противоположность модели операционной трансформации, используемой Google Wave, EtherPad, Gobby, SubEthaEdit, ACE and Co.
вы разрезаете каждый файл на части, вычисляете показатели сходства между всеми фрагментами и затем можете сделать вывод, что этот фрагмент, который был удален здесь, и этот очень похожий фрагмент, который был добавлен туда, на самом деле являются тем же фрагментом, который был перемещен отсюда туда.Однако, как сказал Тонфа в своем ответе, это очень дорого, поэтому обычно этого не делают. Но это могло быть сделано, и в этом суть.
Кстати: это в значительной степени полная противоположность модели операционной трансформации, используемой Google Wave, EtherPad, Gobby, SubEthaEdit, ACE and Co.
вы разрезаете каждый файл на части, вычисляете показатели сходства между всеми фрагментами и затем можете сделать вывод, что этот фрагмент, который был удален здесь, и этот очень похожий фрагмент, который был добавлен туда, на самом деле являются тем же фрагментом, который был перемещен отсюда туда.Однако, как сказал Тонфа в своем ответе, это очень дорого, поэтому обычно этого не делают. Но это могло быть сделано, и в этом суть.
Кстати: это в значительной степени полная противоположность модели операционной трансформации, используемой Google Wave, EtherPad, Gobby, SubEthaEdit, ACE and Co.
вычислить показатели сходства между всеми фрагментами и затем сделать вывод, что этот фрагмент, который был удален здесь, и этот очень похожий фрагмент, который был добавлен, на самом деле являются тем же фрагментом, который был перемещен отсюда туда.Однако, как сказал Тонфа в его ответе это очень дорого, поэтому обычно этого не делают. Но это могло быть сделано, и в этом суть.
Кстати: это в значительной степени полная противоположность модели операционной трансформации, используемой Google Wave, EtherPad, Gobby, SubEthaEdit, ACE and Co.
вычислить показатели сходства между всеми фрагментами и затем сделать вывод, что этот фрагмент, который был удален здесь, и этот очень похожий фрагмент, который был добавлен, на самом деле являются тем же фрагментом, который был перемещен отсюда туда.Однако, как сказал Тонфа в его ответе это очень дорого, поэтому обычно этого не делают. Но это могло быть сделано, и в этом суть.
Кстати: это в значительной степени полная противоположность модели операционной трансформации, используемой Google Wave, EtherPad, Gobby, SubEthaEdit, ACE and Co.
Это чисто эвристический анализ. Он сравнивает расстояние между файлами и пытается найти совпадающие блоки. Но эта эвристика реализуется только тогда, когда код копируется или перемещается в новый файл (в противном случае проверка каждой пары файлов была бы слишком дорогостоящей).