![]() |
merge vs patch
Victor Sudakov написал(а) к Alex Korchmar в Jul 17 21:37:16 по местному времени:
Dear Alex, 18 Jul 17 13:09, you wrote to me: VS>> Почему же велосипед, вполне жизненная ситуация. Сидит Петя, пишет VS>> код, коммитит в свой репозиторий. Вдруг звонит Вася и говорит: VS>> помнишь ты год назад давал мне исходники своей проги, AK> нормальные люди a) "дают" в виде clone AK> b) принимают назад патчсет или pull request (патчсеты - это для Да ладно, сколько лет жили без distributed VCS. Патчами именно что по почте обменивались, vendor branches импортировали и мержили. AK> параноиков и скудоумного Линуса, который двадцать лет не мог научиться AK> пользоваться системами контроля версий, требуя патчей в почту. В AK> результате пришлось написать целый git, по сути автоматизирующий AK> именно патчи в почте.) Victor Sudakov, VAS4-RIPE, VAS47-RIPN --- GoldED+/BSD 1.1.5-b20160322-b20160322 |
Re: merge vs patch
Alex Korchmar написал(а) к Victor Sudakov в Jul 17 00:28:35 по местному времени:
From: Alex Korchmar <noreply@linux.e-moe.ru> Victor Sudakov <Victor.Sudakov@f49.n5005.z2.fidonet.org> wrote: AK>> нормальные люди a) "дают" в виде clone AK>> b) принимают назад патчсет или pull request (патчсеты - это для VS> Да ладно, сколько лет жили без distributed VCS. без компьютеров вовсе - жили еще больше. bitkeeper появился 17 лет назад. (если бы его владелец не оказался феерически тупым и жадным м-ком, возможно, никакого svn и прочих безумных клонов cvs в помине бы не было) git'у пятнадцать лет, гитлабу десяток будет. (а codeplex - труп, ага) > Alex --- ifmail v.2.15dev5.4 |
merge vs patch
Victor Sudakov написал(а) к Alex Korchmar в Jul 17 12:06:08 по местному времени:
Dear Alex, 17 Jul 17 09:08, you wrote to me: VS>> Чем отличается "merge file1 file2 file3" от "diff file2 file3 | VS>> patch file1" с точки зрения внутренней кухни? AK> именно тем, что merge знает о существовании file1, в отличие от diff, AK> это 3-way diff. AK> man diff3 - вот он ничем не отличается, да. VS>> Ну кроме того, что конфликты будут отражены внутри file1 вместо VS>> ".rej". AK> в rej вообще может ничего не попасть, а код работать не будет. AK> Или наоборот - в file1 вообще может уже не быть нужного контекста. AK> merge справится, потому что знает, куда он делся. Откуда merge/diff3 может знать, куда он делся? Я готов поверить, что в случае VCS операция merge заглядывает в историю изменений. Хотя тоже вряд ли. Если ты знаешь систему контроля версий, в которой merge происходит с учетом истории - назови ее, пожалуйста, чтобы я почитал, как это устроено внутри. В случае же отдельно стоящей утилиты merge или diff3 она никак не может знать, что куда делось из MYFILE. Разве что если не делось, а сдвинулось, можно рискнуть магию с fuzz и т.п. Victor Sudakov, VAS4-RIPE, VAS47-RIPN --- GoldED+/BSD 1.1.5-b20160322-b20160322 |
Re: merge vs patch
Alex Korchmar написал(а) к Victor Sudakov в Jul 17 17:34:23 по местному времени:
From: Alex Korchmar <noreply@linux.e-moe.ru> Victor Sudakov <Victor.Sudakov@f49.n5005.z2.fidonet.org> wrote: AK>> man diff3 - вот он ничем не отличается, да. VS> Откуда merge/diff3 может знать, куда он делся? он знает разницу между твоей и чужой версиями. Обычному patch она неведома. VS> Я готов поверить, что в случае VCS операция merge заглядывает в историю нет, только в три файла - старый, новый и рабочую копию. > Alex --- ifmail v.2.15dev5.4 |
Re: merge vs patch
Valentin Nechayev написал(а) к Victor Sudakov в Aug 17 16:42:44 по местному времени:
From: Valentin Nechayev <netch@segfault.kiev.ua> >>> Victor Sudakov wrote: VS> А если допустим Вася работает одновременно со мной над файлом, и потом щедро VS> делится своими наработками: VS> hg diff -r300:400 file1 | mail sudakov VS> А я тоже этот файлик тем временем менял, и хочу еще и Васины наработки VS> смержить, как мне присланный патч приложить посредством diff3 или merge к моему VS> измененному файлу? Вася ведь не знает про мой файл, он мне только патч между VS> своими версиями прислать может. Потребовать точного указания исходной версии. Открыть новую ветку. Наложить патч руками. Если не сходится - взять порцию вдохновения на решение конфликта (если нету - послать нафиг). Закоммитить полученное. А вот теперь можно мержить по всем правилам. VS> ЗЫ предполагается, что у меня и у Васи разные репозитории, или вообще нет VS> репозиториев. А неважно, пока патч на что-то аккуратно накладывается. --netch-- --- ifmail v.2.15dev5.4 |
merge vs patch
Victor Sudakov написал(а) к Valentin Nechayev в Aug 17 09:20:34 по местному времени:
Dear Valentin, 03 Aug 17 16:42, you wrote to me: VS>> А если допустим Вася работает одновременно со мной над файлом, и VS>> потом щедро делится своими наработками: VS>> hg diff -r300:400 file1 | mail sudakov VS>> А я тоже этот файлик тем временем менял, и хочу еще и Васины VS>> наработки смержить, как мне присланный патч приложить посредством VS>> diff3 или merge к моему измененному файлу? Вася ведь не знает про VS>> мой файл, он мне только патч между своими версиями прислать может. VN> Потребовать точного указания исходной версии. Открыть новую ветку. О! VN> Наложить патч руками. Если не сходится - взять порцию вдохновения на VN> решение конфликта (если нету - послать нафиг). А чего бы не сойтись, если Васин файл - это форк моего годичной давности, по условиям задачи. VN> Закоммитить полученное. А вот теперь можно мержить по всем правилам. VS>> ЗЫ предполагается, что у меня и у Васи разные репозитории, или VS>> вообще нет репозиториев. VN> А неважно, пока патч на что-то аккуратно накладывается. Ага, алгоритм понятен, спасибо. А не знаешь, что можно прикрутить к hg и svn для интерактивного merge в текстовом режиме, типа sdiff? Чтобы не руками ">>>>>>>" и "<<<<<<<<<" разгребать. Victor Sudakov, VAS4-RIPE, VAS47-RIPN --- GoldED+/BSD 1.1.5-b20160322-b20160322 |
merge vs patch
Valentin Nechayev написал(а) к Victor Sudakov в Aug 17 12:44:00 по местному времени:
Нi, >>>> Victor Sudakov wrote: VS> Ага, алгоритм понятен, спасибо. VS> А не знаешь, что можно прикрутить к hg и svn для интерактивного merge VS> в текстовом режиме, типа sdiff? Чтобы не руками ">>>>>>>" и VS> "<<<<<<<<<" разгребать. С этими не работал, работал с Git. Но, вероятно, можно то же подключить. Во-первых, ставится опция conflictstyle = diff3 - тогда она начинает, кроме двух выходных версий, рисовать и их базовую. Во-вторых, если стандартная мержилка не справляется - вызываю git mergetool, которой настроено звать kdiff3 - она некоторые конфликты может решить сама, а на остальные рисует в графике три версии с возможностью выбрать мышкой и доредактировать. Но таких тулзей только штатно она знает штук 5, а есть ещё и другие совместимые с ними. -netch- ... Если вы не нашли ошибку в программе, ищите ошибку в компиляторе. --- |
merge vs patch
Victor Sudakov написал(а) к Valentin Nechayev в Aug 17 10:01:42 по местному времени:
Dear Valentin, 05 Aug 17 12:44, you wrote to me: VS>> Ага, алгоритм понятен, спасибо. VS>> А не знаешь, что можно прикрутить к hg и svn для интерактивного VS>> merge в текстовом режиме, типа sdiff? Чтобы не руками ">>>>>>>" и VS>> "<<<<<<<<<" разгребать. VN> С этими не работал, работал с Git. Но, вероятно, можно то же VN> подключить. Во-первых, ставится опция conflictstyle = diff3 - тогда VN> она начинает, кроме двух выходных версий, рисовать и их VN> базовую. Во-вторых, если стандартная мержилка не справляется - вызываю VN> git mergetool, которой настроено звать kdiff3 - она некоторые VN> конфликты может решить сама, а на остальные рисует в графике три VN> версии с возможностью выбрать мышкой и доредактировать. Но таких VN> тулзей только штатно она знает штук 5, а есть ещё и другие совместимые VN> с ними. kdiff3 это опять же GUI, а я спрашивал про text mode программку для интерактивного слияния. Victor Sudakov, VAS4-RIPE, VAS47-RIPN --- GoldED+/BSD 1.1.5-b20160322-b20160322 |
merge vs patch
Victor Sudakov написал(а) к Alex Korchmar в Aug 17 10:17:08 по местному времени:
Dear Alex, 22 Jul 17 17:34, you wrote to me: AK>>> man diff3 - вот он ничем не отличается, да. VS>> Откуда merge/diff3 может знать, куда он делся? AK> он знает разницу между твоей и чужой версиями. Обычному patch она AK> неведома. VS>> Я готов поверить, что в случае VCS операция merge заглядывает в VS>> историю AK> нет, только в три файла - старый, новый и рабочую копию. А вот кто знает - реализации patch и merge бывают разного качества (типа один merge/patch tool может с каким-то сложным случаем справиться лучше, чем другой tool) или математика за diff/patch/merge всегда одна и та же? Victor Sudakov, VAS4-RIPE, VAS47-RIPN --- GoldED+/BSD 1.1.5-b20160322-b20160322 |
Re: merge vs patch
Alex Korchmar написал(а) к Victor Sudakov в Aug 17 22:47:05 по местному времени:
From: Alex Korchmar <noreply@linux.e-moe.ru> Victor Sudakov <Victor.Sudakov@f49.n5005.z2.fidonet.org> wrote: VS> А вот кто знает - реализации patch и merge бывают разного качества нет, потому что это порождение проекта gnu, где уже давно нет ни одного программиста, одни п-сы и лоеры. Все последние улучшизмы в этой области идут из гита (откуда копипастятся в gnu) > Alex --- ifmail v.2.15dev5.4 |
Текущее время: 16:42. Часовой пояс GMT +4. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot