![]() |
#1
|
|||
|
|||
![]()
Victor Sudakov написал(а) к All в Jul 17 09:17:14 по местному времени:
Dear All, Чем отличается "merge file1 file2 file3" от "diff file2 file3 | patch file1" с точки зрения внутренней кухни? Ну кроме того, что конфликты будут отражены внутри file1 вместо ".rej". Victor Sudakov, VAS4-RIPE, VAS47-RIPN --- GoldED+/BSD 1.1.5-b20160322-b20160322 |
#2
|
|||
|
|||
![]()
Alex Korchmar написал(а) к Victor Sudakov в Jul 17 09:08:35 по местному времени:
From: Alex Korchmar <noreply@linux.e-moe.ru> Victor Sudakov <Victor.Sudakov@f49.n5005.z2.fidonet.org> wrote: VS> Чем отличается "merge file1 file2 file3" от "diff file2 file3 | patch file1" с VS> точки зрения внутренней кухни? именно тем, что merge знает о существовании file1, в отличие от diff, это 3-way diff. man diff3 - вот он ничем не отличается, да. VS> Ну кроме того, что конфликты будут отражены внутри file1 вместо ".rej". в rej вообще может ничего не попасть, а код работать не будет. Или наоборот - в file1 вообще может уже не быть нужного контекста. merge справится, потому что знает, куда он делся. > Alex --- ifmail v.2.15dev5.4 |
#3
|
|||
|
|||
![]()
Victor Sudakov написал(а) к Alex Korchmar в Jul 17 22:14:36 по местному времени:
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 - вот он ничем не отличается, да. Спасибо. У меня в этой области пробел знаний. Хотя использую системы контроля версий не первый десяток лет, еще с RCS, но для отслеживания истории изменений, а не для collaboration. VS>> Ну кроме того, что конфликты будут отражены внутри file1 вместо VS>> ".rej". AK> в rej вообще может ничего не попасть, а код работать не будет. AK> Или наоборот - в file1 вообще может уже не быть нужного контекста. AK> merge справится, потому что знает, куда он делся. А если допустим Вася работает одновременно со мной над файлом, и потом щедро делится своими наработками: hg diff -r300:400 file1 | mail sudakov А я тоже этот файлик тем временем менял, и хочу еще и Васины наработки смержить, как мне присланный патч приложить посредством diff3 или merge к моему измененному файлу? Вася ведь не знает про мой файл, он мне только патч между своими версиями прислать может. ЗЫ предполагается, что у меня и у Васи разные репозитории, или вообще нет репозиториев. Victor Sudakov, VAS4-RIPE, VAS47-RIPN --- GoldED+/BSD 1.1.5-b20160322-b20160322 |
#4
|
|||
|
|||
![]()
Nil Alexandrov написал(а) к Victor Sudakov в Jul 17 19:30:54 по местному времени:
Нello, Victor! Monday July 17 2017 22:14, from Victor Sudakov -> Alex Korchmar: VS> Спасибо. У меня в этой области пробел знаний. Хотя использую системы VS> контроля версий не первый десяток лет, еще с RCS, но для отслеживания VS> истории изменений, а не для collaboration. Запросто ты мог не сталкиваться с merge/diff3 если вся разработка была всегда в head (говоря языком CVS). Как только начинаешь делать ветки (branches), например, для багфикса старой стабильной версии, или наоборот, для разработки новой фичи в отдельной ветке, так начинаются merge туда-сюда сплошные, и тогда реально надо 3 файла видеть - общий предок, с чем мёржишь и твои изменения, и всё это от общего файла. Best Regards, Nil --- GoldED+/LNX 1.1.5 |
#5
|
|||
|
|||
![]()
Alex Korchmar написал(а) к Victor Sudakov в Jul 17 19:39:51 по местному времени:
From: Alex Korchmar <noreply@linux.e-moe.ru> Victor Sudakov <Victor.Sudakov@f49.n5005.z2.fidonet.org> wrote: VS> А если допустим Вася работает одновременно со мной над файлом, и потом щедро VS> делится своими наработками: научи его делиться правильно - не diff, а pull. Если pull нельзя - то patchset. VS> ЗЫ предполагается, что у меня и у Васи разные репозитории, или вообще нет hg умеет работать с разными репозиториями, git, полагаю, тоже > Alex --- ifmail v.2.15dev5.4 |
#6
|
|||
|
|||
![]()
Victor Sudakov написал(а) к Nil Alexandrov в Jul 17 23:58:02 по местному времени:
Dear Nil, 17 Jul 17 19:30, you wrote to me: VS>> Спасибо. У меня в этой области пробел знаний. Хотя использую VS>> системы контроля версий не первый десяток лет, еще с RCS, но для VS>> отслеживания истории изменений, а не для collaboration. NA> Запросто ты мог не сталкиваться с merge/diff3 если вся разработка была NA> всегда в head (говоря языком CVS). Как только начинаешь делать ветки NA> (branches), например, для багфикса старой стабильной версии, или NA> наоборот, для разработки новой фичи в отдельной ветке, так начинаются NA> merge туда-сюда сплошные, и тогда реально надо 3 файла видеть - общий NA> предок, с чем мёржишь и твои изменения, и всё это от общего файла. С merge в системах контроля версий (далее VCS) я конечно сталкивался, но никогда не думал о нем как о diff3. В VCS ведь известны родительские версии и т.п., т.е. я воспринимал merge как (магическую) команду соответствующей VCS. А вот когда Вася присылает мне свои изменения в виде патча, и мне надо интегрировать их со своими внесенными изменениями, тут мне непонятно, как действовать merge-ем. Хотя возможно у наших с Васей версий и был общий предок. Или не был. Никто не знает, никто не следил за непрерывностью changeset-ов. Victor Sudakov, VAS4-RIPE, VAS47-RIPN --- GoldED+/BSD 1.1.5-b20160322-b20160322 |
#7
|
|||
|
|||
![]()
Victor Sudakov написал(а) к Alex Korchmar в Jul 17 00:03:02 по местному времени:
Dear Alex, 17 Jul 17 19:39, you wrote to me: VS>> А если допустим Вася работает одновременно со мной над файлом, и VS>> потом щедро делится своими наработками: AK> научи его делиться правильно - не diff, а pull. Если pull нельзя - то AK> patchset. VS>> ЗЫ предполагается, что у меня и у Васи разные репозитории, или VS>> вообще нет AK> hg умеет работать с разными репозиториями, git, полагаю, тоже Ну то есть вне системы контроля версий diff3 и merge таки бессмысленны? Или? Victor Sudakov, VAS4-RIPE, VAS47-RIPN --- GoldED+/BSD 1.1.5-b20160322-b20160322 |
#8
|
|||
|
|||
![]()
Alex Korchmar написал(а) к Victor Sudakov в Jul 17 23:43:28 по местному времени:
From: Alex Korchmar <noreply@linux.e-moe.ru> Victor Sudakov <Victor.Sudakov@f49.n5005.z2.fidonet.org> wrote: AK>> научи его делиться правильно - не diff, а pull. Если pull нельзя - то AK>> patchset. VS>>> ЗЫ предполагается, что у меня и у Васи разные репозитории, или VS>>> вообще нет AK>> hg умеет работать с разными репозиториями, git, полагаю, тоже VS> Ну то есть вне системы контроля версий diff3 и merge таки бессмысленны? везде где они осмысленны, проще всего использовать систему контроля версий. Тебе в любом случае откуда-то нужно взять информацию о третьем файле. довольно странно при этом изобретать велосипед с квадратными колесами самому. > Alex --- ifmail v.2.15dev5.4 |
#9
|
|||
|
|||
![]()
Victor Sudakov написал(а) к Alex Korchmar в Jul 17 09:05:58 по местному времени:
Dear Alex, 17 Jul 17 23:43, you wrote to me: AK>>> научи его делиться правильно - не diff, а pull. Если pull нельзя AK>>> - то patchset. VS>>>> ЗЫ предполагается, что у меня и у Васи разные репозитории, или VS>>>> вообще нет AK>>> hg умеет работать с разными репозиториями, git, полагаю, тоже VS>> Ну то есть вне системы контроля версий diff3 и merge таки VS>> бессмысленны? AK> везде где они осмысленны, проще всего использовать систему контроля AK> версий. Тебе в любом случае откуда-то нужно взять информацию о третьем AK> файле. AK> довольно странно при этом изобретать велосипед с квадратными колесами AK> самому. Почему же велосипед, вполне жизненная ситуация. Сидит Петя, пишет код, коммитит в свой репозиторий. Вдруг звонит Вася и говорит: помнишь ты год назад давал мне исходники своей проги, я тут такие офигенные фичи добавил, хочешь патч пришлю? Фичи и правда офигенные, Петя их очень хочет смержить в свой код, только он уже тоже ушел вперед за этот год. Кроме обычного patch с последующим разгребанием конфликтов вручную, у Пети есть альтернативы? Victor Sudakov, VAS4-RIPE, VAS47-RIPN --- GoldED+/BSD 1.1.5-b20160322-b20160322 |
#10
|
|||
|
|||
![]()
Alex Korchmar написал(а) к Victor Sudakov в Jul 17 13:09:49 по местному времени:
From: Alex Korchmar <noreply@linux.e-moe.ru> Victor Sudakov <Victor.Sudakov@f49.n5005.z2.fidonet.org> wrote: VS> Почему же велосипед, вполне жизненная ситуация. Сидит Петя, пишет код, VS> коммитит в свой репозиторий. Вдруг звонит Вася и говорит: помнишь ты год VS> назад давал мне исходники своей проги, нормальные люди a) "дают" в виде clone b) принимают назад патчсет или pull request (патчсеты - это для параноиков и скудоумного Линуса, который двадцать лет не мог научиться пользоваться системами контроля версий, требуя патчей в почту. В результате пришлось написать целый git, по сути автоматизирующий именно патчи в почте.) VS> Фичи и правда офигенные, Петя их очень хочет смержить в свой код, только он уже VS> тоже ушел вперед за этот год. Кроме обычного patch с последующим VS> разгребанием конфликтов вручную, у Пети есть альтернативы? pull + merge С позиции Васи было бы еще и очень неплохо вести отдельную ветку именно для пачтей, которые он хочет вернуть Пете, и мержить ее себе периодически, чтобы не радовать Петю ненужными тому деталями, актуальными только на васином проде. > Alex --- ifmail v.2.15dev5.4 |