Чтобы добавлять сообщения и комментарии, .

@Ta2i4:
Ta2i4

Релиз WinMerge 2.12.4, бесплатного аналога Beyond Compare, состоялся ещё более трёх лет назад. Далее разработчики пошли по пути кроссплатформенности, начав разрабатывать WinMerge 3 на Qt. Вот только с тех пор всё как-то совсем умерло... Последний коммит сделан полтора года назад.

@gelin:
gelin

Двести лет не мержил в SVN. Это ж ад!

@amrok:
amrok

Подскажите, чем хорошо мержить сишные файлы, при условии, что надо отслеживать перемещение (разделение) функций по двум файлам и изменение их порядка в тексте относительно исходного?

@wwarlock:
wwarlock

Замечательную сравнивалку текстов #WinMerge собираются портировать на #QT.
Как говорится на странице проекта, WinMerge 3 станет кроссплатформным. И это будет не просто WinMerge 2 с новой мордой.
Проект ждут радикальные перемены в поведении, а множество старых фишек потеряется в угоду новым возможностям.

@wwarlock:
wwarlock

Надо же, какой #brainfuck... Оказывается, при #git rebase понятия "ours" и "theirs" действуют наоборот.
То есть, если я хочу при перебазировании сохранить СВОИ изменения, то я должен написать THEIRS, например:
git rebase -s recursive -X theirs master

При обычном мёрже, эти понятия действуют as-is.

@easy:
easy

juick, какой утилитой для 3-way merge сейчас пользуются люди, при работе с (D)VCS?
платные и бесплатные, открытые и проприетарные...

@i-do:
i-do

*visual Meld — GUI-инструмент для diff и merge. Работает на пайтоне. Можно использовать с CVS, Subversion, Bazaar-ng and Mercurial. meld.sourceforge.net

@denver14:
denver14

Устроился как-то Молодой Программист работать в команде вместе со Старым Программистом. Сидит, в проект вникает, код изучает, доки почитывает, в схеме разбирается. Всё спокойно, Старый Программист клепает код, закрывает тикеты, коммиттит ревизии. Но иногда приходит чёрт с молотком и забивает Старому Программисту в жопу гвоздик. Аккуратный такой, обойный гвоздик. И так почти каждый день.

Старый Программист всё это мужественно переносит, иногда только шипит сквозь зубы. А Молодой удивляется. Наконец не выдержал, спросил, в чём, мол, дело.

— Да это заказчик любит иногда сам код писать, — объясняет Старый. — А нашей системой контроля версий не пользуется. Приходится постоянно забирать от него весь проект проверять, что он там поменял.
— А чёрт зачем приходит?
— О, это Мерж. Да ты его не бойся, он не страшный. Мы привыкли уже.

Долго ли коротко ли, дают Молодому Программисту задачу. Вот он вытянул себе последнюю версию исходников, сидит себе работает, доки гуглит, на форумах расспрашивает, фичи реализует, либы прикручивает. Да не смотрит на чужие изменения, не обновляет исходники. А там чудеса происходят, звери дикие гуляют, птицы дивные по веткам прыгают, таблицы рождяются и исчезают, как будто и не бывали.

Рубился Молодой Программист тридцать дней и три ночи, но доделал наконец фичу. Тесты готовы, xUnit зелёненьким моргает, запросы летают аж со свистом. Решил закоммиттить — а не выходит. «Исходники надо подтянуть», — думает.

Только на кнопку pull надавил — дым, грохот, откуда ни возмись Чёрт появляется. С молотком огромным и ведром гвоздей-стопятидесяток:

— НУ ЧТО, ЧУВАК, МЕРЖИТЬ БУДЕМ?

@pc:
pc

*video
conver.mylivepage.ru

@alsmirn:
alsmirn

Внезапно столкнулся с логичностью :). Есть проект, одна папка записана в .gitignore. Т.е. ничего в репу из неё не складывается. В другой копии проекта один файл из папки был добавлен форсом в репозиторий, закоммичен и запушен. Когда начал обновлять более раннюю копию (git pull), получил по мордасам: """error: Untracked working tree file '/folder/file' would be overwritten by merge. Aborting.""" Увы, но решил проблему временным изменением .gitignore, прочие форсы не помогли. Такие дела. Теперь буду помнить и готовиться.