Поведение Mercurial + MQ EOL

Я работаю с Mercurial+ MQ, на Win+OSX, и проблемы с EOL убивают меня. Я активировал расширение EOL, добавил.hgeol, как показано ниже:

[patterns]
**.sln = CRLF
**.vcproj = CRLF
**.vcxproj = CRLF
**.vcproj.filters = CRLF
**.vcxproj.filters = CRLF
**autoexp.dat = CRLF
**Makefile = LF
** = native

и все вроде нормально работало.. в Windows (ну, у меня было несколько файлов с ошибками в конце строки, я исправил их в первом патче, который также включает в себя.hgeol).

Затем я перешел на Mac, предполагая, что он тоже будет работать, верно? Ну, неправильно. Когда я qpush первый патч (тот, который с файлом ".hgeol" + конец строки меняется), он работает, но я вижу набор "измененных" файлов (это те же самые файлы, которые я "исправил" в Windows, чтобы они больше не показывались как измененные!). Как бы то ни было, я пытаюсь "hg qrefresh", чтобы получить изменения строки (думая, что я выясню это позже)... но не повезло: как, если я продолжу qpush мои другие патчи, я начну получать отклонения:(

Любая идея, как это исправить / что это вызывает? Это сводит меня с ума....

1 ответ

Давайте договоримся, что компиляторы знают, как работать с любым новым форматом строки и даже миксом. Итак, мое предложение будет:

  1. Оставьте окна конкретных файлов (.sln, .vcprojи т. д.), как вы уже сделали
  2. Убедитесь, что ВСЕ текстовые редакторы (всех ОС) согласны с тем же соглашением о новой линии.
  3. Преобразуйте все файлы, к которым вы прикасаетесь, с помощью текстовых редакторов в это новое соглашение о строке (с помощью инструмента, похожего на dos2unix)
  4. Зафиксируйте это изменение
  5. Все ваши существующие патчи также должны придерживаться того, что

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

После этого вы должны быть хорошими, пока вы:

  1. не редактируйте одно и то же хранилище с разными несоответствующими редакторами
  2. не получают доступ к одному и тому же репо через общий доступ из разных ОС и почему-то используют плохой редактор...

Надеюсь это поможет;)

С уважением.

Другие вопросы по тегам