В редактирование-буфер слияния при изменении файла - PullRequest
3 голосов
/ 20 января 2009

Многие редакторы заметят, когда файл изменится из-под них. Есть ли редактор, который предложит вам выполнить трехстороннее слияние, если у вас есть несохраненные изменения в файле?

Обычный сценарий для этого - забыть сохранить файл перед обновлением SVN, и когда я переключаюсь обратно в редактор, осознаю, что теперь у меня есть выбор: нажать на обновление, которое я только что сделал, отменить свои изменения или исполняем песню / танец с копией / вставкой / external-diff-tool

Да, я знаю, что правильное решение - это ctrl + s, прежде чем я обновлюсь, но я человек и хочу действительно простое решение, чтобы исправить проблему после того, как я ее исправлю.

Ответы [ 6 ]

2 голосов
/ 30 января 2009

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

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

В качестве меры предосторожности может быть, чтобы ваш редактор блокировал открытые вами файлы. Тогда обновление SVN не удастся для всех файлов, которые вы открыли в вашем редакторе. В EditPad Pro для этого есть опция «Параметры», «Настройки», «Файлы».

1 голос
/ 30 января 2009

Итак, у вас есть несохраненные изменения в файле, а затем вы выполняете SVN-обновление этого файла, верно?

В этом случае вы должны просто сохранить изменения после обновления и снова запустить обновление SVN. Второй запуск обновления SVN попытается объединить изменения из репозитория и сообщить, есть ли конфликты.

Более / наиболее важными изменениями являются несохраненные изменения в вашем редакторе, изменения из обновления SVN всегда можно извлечь из хранилища.

1 голос
/ 20 января 2009

Я очень редко сталкиваюсь с этим, вероятно, потому что я экономлю, как только мои пальцы ничего не делают, без необходимости думать об этом.

В противном случае, я бы посоветовал вам найти SVN-клиента, интегрированного в ваш редактор. Большинство таких клиентов автоматически (или запрашивают) сохранить перед выполнением фиксации или обновления.

1 голос
/ 20 января 2009

Звучит как плохой способ решить проблему с файлами, изменяемыми у вас под ногами. Как я обычно отвечаю: какую проблему вы действительно пытаетесь решить?

1 голос
/ 20 января 2009

С помощью vim вы можете войти в режим diff, используя : DiffOrig .
Проверить модификацию можно принудительно с помощью : checkt

Чтобы автоматизировать это, вы можете поместить в ваш .vimrc следующее:

au FileChangedShell * DiffOrig

Затем Vim перейдет в разделение различий, как только обнаружит, что файл (mtime) изменился.

0 голосов
/ 20 января 2009

Это похоже на проблему с контролем версий, а не с редактором.

Конечно, Emacs может быть запрограммирован на это, но по умолчанию он просто спрашивает, хотите ли вы сохранить поверх измененного файла или нет. Попытка отредактировать файл, который был изменен, даст вам возможность вернуть буфер в содержимое файла.

Vi (по крайней мере, версия, которую я использую) даже не проверяет, изменился ли файл. (Также он не проверяет, доступен ли файл только для чтения, прежде чем я его отредактирую, что сводит меня с ума. Возможно, мне нужно найти лучший vi.)

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