LINUX.ORG.RU

mercurial и изменения файлов

 


0

2

У меня бывает такое, что копирую себе целиком репозиторий с изменениями от виндузятника. И тогда меркуриал (и идея) отображают кучу файлов как изменённые, хотя они таковыми не являются. hg diff показывает, будто изменена каждая строчка файла, но при сравнении они одинаковые. Кодировка вроде бы не менялась, пробелов и пустых строк новых нет. При этом hg diff -b показывает пустоту.

Как убрать эти фантомные изменения и что собственно изменено?

★★★★★

Ответ на: комментарий от Slackware-ch

Я пробовал одному из таких файлов менять концы строк по всем 3 значениям — он всё равно отображается как изменённый.

vurdalak ★★★★★ ()

Они могут быть исполняемыми - правда, это видно в hg diff --git.

tailgunner ★★★★★ ()
Ответ на: комментарий от aedeph_

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

vurdalak ★★★★★ ()
Ответ на: комментарий от tailgunner

--git показывает то же самое — что все строчки удалены, и все те же строчки добавлены.

vurdalak ★★★★★ ()

Как убрать эти фантомные изменения и что собственно изменено?

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

вместо прямого копирования, делай hg serve, и clone/pull.

waker ★★★★★ ()
Ответ на: комментарий от vurdalak

посмотри отличия через hexdump, если твой diff не может увидеть разницу.

waker ★★★★★ ()
Ответ на: комментарий от waker

На одном файле оно увидело разницу, таки переносы строк. Поправил их, теперь другая беда — hg diff показывает что изменений нет, а hg status что файл изменён.

vurdalak ★★★★★ ()
Ответ на: комментарий от vurdalak

hg status что файл изменён.

как именно он показывает, что файл изменен? должна быть буква, или !, или ? и т.п.

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

waker ★★★★★ ()
Ответ на: комментарий от waker

как именно он показывает, что файл изменен?

M

У меня завтра будет простое решение, просто мне хочется узнать причину. На что он смотрит, когда показывает различие?

vurdalak ★★★★★ ()
Ответ на: комментарий от vurdalak

На что он смотрит, когда показывает различие?

я не знаю. посмотри в дебаггере.

waker ★★★★★ ()
Ответ на: комментарий от vurdalak

и кстати, не забудь включить расширение eol. без этого между вендой и линухом вообще работать невозможно.

waker ★★★★★ ()
Ответ на: комментарий от vurdalak

то же самое — что все строчки удалены, и все те же строчки добавлены

Это 99% изменение формата перевода строк.

1% на всякие глюки, типа «было в конце каждой строки по пробелу, автоформатер вычистил, при просмотре разницы пробелы игнорировались».

Учитывая, что «с изменениями от виндузятника», то даже не 99/1, а 99.9/0.1 :)

KRoN73 ★★★★★ ()
Ответ на: комментарий от vurdalak

У меня завтра будет простое решение, просто мне хочется узнать причину. На что он смотрит, когда показывает различие?

Виндузятник изменил концы строк, закоммитил файл в репозиторий. Ты взял этот файл, поменял концы строк, теперь у тебя файл не такой же, как в репозитории, поэтому он изменённый.

Либо EOL Extension, либо, как советуют в справке по EOL Extension, настучать виндузятнику по башке, чтобы он взял нормальный редактор, а не Блокнот, который сохраняет файлы с нужными концами строк.

proud_anon ★★★★★ ()
Ответ на: комментарий от proud_anon

Так, стоп. У меня сейчас концы строк ровно такие же как в репозитории. Дифф и diff -g показывает что отличий нет. Ругается только статус.

vurdalak ★★★★★ ()
Ответ на: комментарий от vurdalak

Так, стоп. У меня сейчас концы строк ровно такие же как в репозитории. Дифф и diff -g показывает что отличий нет. Ругается только статус.

Хорошо, тогда сделай hg revert file и сравни побайтово file и file.orig (с помощью cmp или HEX-редактора). И нам расскажи, что обнаружишь, а то мне, например, тоже очень интересно стало.

proud_anon ★★★★★ ()
Ответ на: комментарий от vurdalak

Может mercurial смотрит на дату изменения файла?

staseg ★★★★★ ()
Ответ на: комментарий от staseg

Я сделал touch тому файлу который заревертил, всё равно считается неизменённым.

vurdalak ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.