to post messages and comments.

← All posts tagged Git

hg Git ?

Я ведь правильно понял, что bookmarks в hg это ветки в git (причем, закладки в hg — локальные, их можно залить на удаленный репозиторий, но только в справочных целях, или хз) , теги — это теги, а ветки в hg — это вообще нёх. Каждый коммит типа помечается именем ветки, в результате ветка — это кусок графа коммитов, который может иметь несколько висячих голов, и есть специальные коммиты для "закрывания голов". Я представляю как это придумывалось, типа чтобы не терять код и не путаться в топологии веток, что от чего пошло, но вот у меня ветка с кучей голов, и что мне с ними делать? В гите эти головы будут просто именованными ветками, удалил ветку — "закрыл голову", а в hg и закладки не являются полноценными ветками, и ветки овердезайнутый кал.
Я всё верно понял?

У меня есть два рефакторинга
1. Было перемещено много файлов в разные каталоги, много из перемещённых файлов еще и редактировались.
2. Массивных перемещений не было, но было много правок в существующих файлах, некоторые файлы были удалены, некоторые созданы
Хочу эти два рефакторинга смержить. Если конкретно, то хочу сказать гиту, что путь A теперь соответстует пути B, путь C соответствует пути D и так далее. Т.е. рефакторинг 2 произвести над теми же файлами в новых путях рефакторинга 1. Нечто вроде git merge -s recursive -X subtree=path но расширенное.

Git ?

У меня есть два состояния репозитория, один до рефакторинга, другой после. При рефакторинге много файлов было перемещено (целыми каталогми). Хочу чтобы git diff показал мне инфу в максимально сокращенном виде: какой каталог куда был перемещён без деталей по каждому файлу., ибо файлов слишком много.

Git ?

А можно как нибудь нормально применить часть диффа между двумя коммитами к рабочему дереву (третий коммит)? Пробовал git diff и потом редактировать патч, но этот сраный формат патчей (нужно глазами подсчитать количество строк в ханке), сраный гнутый patch ... не может из однозначного контекста определить куда применить дифф, или ЯЧДНТ ...

Git ?

stackoverflow.com
А какой алгоритм диффов ты используешь? (В последнем ответе более наглядный пример разницы алгоритмов). С patience/histrogram дифы должны получаться читабельнее, но жирнее, что в теории приводит к ещё большим конфликтам при слиянии...

Вот, проблую этот ваш флоу, нашел интересную штуку
github.com
оказывается, он мержит фичи в develop даже если их можно влить фастфорвардом, и делает это намерено, чтобы в истории было видно, что фича была отдельной веткой. Любопытно

Однако, аргументы в пользу hg начинают подкупать, вот хочу я посмотреть коммиты сделанные в ветке, а не могу, ибо узнать, где началась ветка невозможно, особенно после того, как ее слили в мастер. А вот в hg коммиты помечаются именем ветки (или уникальным id ветки?), поэтому там это не проблема, в теории.