Git Diff - Укажите движение линии - PullRequest
4 голосов
/ 24 ноября 2010

Я разрабатываю скрипт для использования с git diff, чтобы иметь возможность «отфильтровывать» строки, которые просто перемещаются в файл. Visual Studio 2008 стал проблемой при работе с файлами Designer. Иногда кажется, что нужно переписать весь файл в другом порядке. Это затрудняет просмотр реальных изменений в файле. Я добавляю git diff в скрипт, чтобы настроить вывод git diff. Я мог бы либо удалить строки из выходных данных, либо заменить +/- другими символами, чтобы обозначить движение, но я не уверен, какие символы использовать.

1 Ответ

0 голосов
/ 01 марта 2011

Это не ответ на вопрос, а возможное альтернативное решение описанной проблемы.

Я не знаком с файлами Visual Studio 2008 или Designer, но натолкнулся на решение, в котором я хотел сохранить в git файлы, сгенерированные другой программой. Порядок строк в некоторых файлах не имеет значения вообще. В других файлах порядок не был важен, но простая сортировка была неадекватной, потому что она содержала вложенные структуры данных.

Мое решение состояло в том, чтобы использовать фильтры в git для изменения содержимого файла до его фиксации. Это настроено в двух частях. Сначала необходимо назначить фильтр файлам, используя файл .gitattributes.

*.list      filter=sort

Далее поведение фильтра необходимо определить в файле конфигурации. Это можно сделать либо в вашей пользовательской конфигурации ~/.gitconfig, либо в конфигурации репозитория .git/config. Это только локально и не передается другим автоматически в рамках репо, поэтому, если вы хотите, чтобы другие тоже это делали, вам нужно сообщить им.

[filter "sort"]
    clean = sort
    smudge = cat

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

Теперь я упомянул, что у меня есть два разных типа файлов, с которыми работают два: простой и сложный. Для сложного, который содержал вложенные типы данных (точнее, таблицы Lua), я создал (с большой помощью кого-то другого) сценарий для чтения содержимого файла, сортировки каждого вложенного раздела и вывода отсортированного результата без изменения поведения когда данные были позже использованы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...