Информация об изменениях

Сообщение Re[9]: Раз вы тут про гит - почему это убожище победило всех от 05.12.2019 16:07

Изменено 05.12.2019 16:19 B0FEE664

Re[9]: Раз вы тут про гит - почему это убожище победило всех
Здравствуйте, ·, Вы писали:

BFE>>Что значит — "заблуждение"? Мне нужно видеть историю класса и знать, когда он был един и когда его разделили на два и какой код в каком файле оказался.

·>Заблуждение в том, что история класса выражается в виде истории имени файла.
Я знаю текущее имя файла, значит я знаю, как посмотреть когда данный класс в нём появился.

·>В git тоже всё будет работать, т.к. он отследит что в этом коммите _содержимое_ класса Class.h очень похоже на ClassDerived.h и/или ClassBase.h. Имя файла не важно, главное _содержимое_.

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

·>

Git has a rename command git mv, but that is just a convenience. The effect is indistinguishable from removing the file and adding another with different name and the same content

·>По сути не нужно для истории, хотя вроде там есть ещё какие-то дополнительные safety checks и апдейтит индекс заодно.
Тем хуже для git.

BFE>>Мне ни разу на практике не приходилось сливать два файла в один,

·>"значит это никому не нужно"?
·>А кусок кода из одного файла в другой перемещать приходилось?
Возможно, но припомнить не могу.

·>svn/whatever тебе в этом хоть как-то помог?

Так мне и git в этом не помогает.

BFE>>но в принципе операция слияния может быть предусмотрена.

·>Нет уж, оккамом такое надо резать.
Ох уж мне эти теоретики...
В git уже есть операция слияние для файлов из разных веток.

BFE>>·>А вот git как раз и позволяет отслеживать контент. Скажем, в IDEA есть такая фича "Show History for Selection" — выделяешь кусок кода (метод, например) и смотришь его полную историю, в т.ч. перемещение между файлами.

BFE>>Я не знаю про IDEA, но как в git отследить историю для скопированного файла?
·>git log --follow <filename>
Проверил. Не работает.
Re[9]: Раз вы тут про гит - почему это убожище победило всех
Здравствуйте, ·, Вы писали:

BFE>>Что значит — "заблуждение"? Мне нужно видеть историю класса и знать, когда он был един и когда его разделили на два и какой код в каком файле оказался.

·>Заблуждение в том, что история класса выражается в виде истории имени файла.
Я знаю текущее имя файла, значит я знаю, как посмотреть когда данный класс в нём появился.

·>В git тоже всё будет работать, т.к. он отследит что в этом коммите _содержимое_ класса Class.h очень похоже на ClassDerived.h и/или ClassBase.h. Имя файла не важно, главное _содержимое_.

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

·>

Git has a rename command git mv, but that is just a convenience. The effect is indistinguishable from removing the file and adding another with different name and the same content

·>По сути не нужно для истории, хотя вроде там есть ещё какие-то дополнительные safety checks и апдейтит индекс заодно.
Тем хуже для git.

BFE>>Мне ни разу на практике не приходилось сливать два файла в один,

·>"значит это никому не нужно"?
·>А кусок кода из одного файла в другой перемещать приходилось?
Возможно, но припомнить не могу.

·>svn/whatever тебе в этом хоть как-то помог?

Так мне и git в этом не помогает.

BFE>>но в принципе операция слияния может быть предусмотрена.

·>Нет уж, оккамом такое надо резать.
Ох уж мне эти теоретики...
В git уже есть операция слияние для файлов из разных веток.

BFE>>·>А вот git как раз и позволяет отслеживать контент. Скажем, в IDEA есть такая фича "Show History for Selection" — выделяешь кусок кода (метод, например) и смотришь его полную историю, в т.ч. перемещение между файлами.

BFE>>Я не знаю про IDEA, но как в git отследить историю для скопированного файла?
·>git log --follow <filename>
Проверил. Не работает.
PS Хотя, может, я не правильно проводил проверку git log --follow, позже попробую проверить ещё раз.