forum.wfido.ru  

Вернуться   forum.wfido.ru > Прочие эхи > RU.UNIX.BSD

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 17.07.2017, 06:40
Victor Sudakov
Guest
 
Сообщений: n/a
По умолчанию merge vs patch

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  
Старый 17.07.2017, 10:31
Alex Korchmar
Guest
 
Сообщений: n/a
По умолчанию Re: merge vs patch

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  
Старый 17.07.2017, 19:40
Victor Sudakov
Guest
 
Сообщений: n/a
По умолчанию merge vs patch

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  
Старый 17.07.2017, 20:40
Nil Alexandrov
Guest
 
Сообщений: n/a
По умолчанию merge vs patch

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  
Старый 17.07.2017, 21:00
Alex Korchmar
Guest
 
Сообщений: n/a
По умолчанию Re: merge vs patch

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  
Старый 17.07.2017, 21:20
Victor Sudakov
Guest
 
Сообщений: n/a
По умолчанию merge vs patch

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  
Старый 17.07.2017, 21:20
Victor Sudakov
Guest
 
Сообщений: n/a
По умолчанию merge vs patch

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  
Старый 18.07.2017, 01:00
Alex Korchmar
Guest
 
Сообщений: n/a
По умолчанию Re: merge vs patch

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  
Старый 18.07.2017, 08:11
Victor Sudakov
Guest
 
Сообщений: n/a
По умолчанию merge vs patch

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  
Старый 18.07.2017, 14:51
Alex Korchmar
Guest
 
Сообщений: n/a
По умолчанию Re: merge vs patch

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
Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 05:15. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot