Поведение 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 ответ
Давайте договоримся, что компиляторы знают, как работать с любым новым форматом строки и даже миксом. Итак, мое предложение будет:
- Оставьте окна конкретных файлов (
.sln
,.vcproj
и т. д.), как вы уже сделали - Убедитесь, что ВСЕ текстовые редакторы (всех ОС) согласны с тем же соглашением о новой линии.
- Преобразуйте все файлы, к которым вы прикасаетесь, с помощью текстовых редакторов в это новое соглашение о строке (с помощью инструмента, похожего на dos2unix)
- Зафиксируйте это изменение
Все ваши существующие патчи также должны придерживаться того, что
а. вам может понадобиться применить их один за другим, снова очистить файлы и обновить эти патчи, чтобы исправлены также новые строки
После этого вы должны быть хорошими, пока вы:
- не редактируйте одно и то же хранилище с разными несоответствующими редакторами
- не получают доступ к одному и тому же репо через общий доступ из разных ОС и почему-то используют плохой редактор...
Надеюсь это поможет;)
С уважением.