Написать скрипт
Это заняло бы некоторую работу, но вы могли бы написать скрипт для внешнего интерфейса как ваш SVN_EDITOR.
Когда svn
вызывает ваш SVN_EDITOR, он передает имя сгенерированного svn временного комментария, содержащего сводный список уязвимых файлов, которые должны быть зафиксированы.
http://svnbook.red -bean.com / ен / 1.5 / СВН-book.html # svn.advanced.externaleditors * ** 1 010 * 1011
Значением любой из этих опций или переменных является начало командной строки, которая должна быть выполнена оболочкой. Subversion добавляет к этой командной строке пробел и путь к временному файлу для редактирования. Таким образом, для использования с Subversion настроенный или указанный редактор должен поддерживать вызов, в котором его последний параметр командной строки представляет собой файл для редактирования, и он должен иметь возможность сохранить файл на месте и вернуть нулевой код выхода указать на успех.
Возможно, вы могли бы написать сценарий оболочки, который принимает параметр имени файла, который:
- открывает файл, указанный последним аргументом (файл временных комментариев svn)
- анализирует файлы для фиксации
- запускает
svn diff
для каждого измененного (недвоичного) файла и добавляет вывод diff обратно в конец файла временных комментариев svn
- вызывает ваш настоящий редактор для измененного файла временных комментариев svn
Убедитесь, что ваш скрипт возвращает код возврата, возвращенный вашим реальным редактором, или 0, чтобы указать успешность. Затем установите в вашем SVN_EDITOR env var указатель на ваш скрипт.
Возможно, кто-то уже написал такой скрипт, но я не смог его найти (тем более что вы не указали ОС). Также есть хороший шанс, что этот скрипт может сгенерировать очень большой файл.
Альтернатива - написать макрос
Я думаю, что лучшей альтернативой было бы использование программируемого редактора и программирование макроса, который считывает имя файла (ов) из выбранной строки (строк), а затем запускает SVN diff для файла (ов) - помещая результаты в буфер или добавление его в текущий буфер. Затем вы можете выборочно выделить файлы из временного комментария svn и запустить SVN diff только для тех ключевых файлов, которые вам нужны. Звучит как работа для elisp!
Извините, у меня нет готового кода для вас. Если вы выполните одно из этих действий, было бы интересно увидеть, как вы вернулись и разместили свой скрипт / макрос здесь в качестве ответа.