LINUX.ORG.RU

инструменты для облагораживания репы в меркуриале

 , ,


0

2

есть приватная репа в меркуриале (в том смысле что никто снаружи не клонировал, а если клонировал — то пофиг на это), внутри в основном скрипты и данные для них

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

работа разовая (то есть не требуется регулярно (и значит полуавтоматически) ее производить в результате каких-то будущих изменений в репе, с которой моя репа была склонирована, но возможность делать эту работу полуавтоматически — полезный бонус)

итак, задачи:

1. затирание паролей (я понимаю это как задачи 2,3,4)

2. вообще замены по регекспу в файле и всех его потомках

3. правка описания коммита

4. удаление коммита (где фактически был затерт пароль — в будущем этот коммит не нужен)

5. добавление коммита, где файл перенесен в другую директорию, и изменение всех последующих коммитов под это

6. разбиение 1 коммита на 2 коммита произвольным образом (это видимо сводится к задачам 7,8,9)

7. разбиение коммита на несколько коммитов, каждый из которых затрагивает только 1 файл

8. разбиение коммита на несколько коммитов, каждый из которых затрагивает только 1 строчку (ну или около того)

9. слияние нескольких коммитов в 1 коммит

тут можно было бы придумать задачи

10. раскидывание репы в набор директорий с номерами коммитов, описаниями и графом зависимостей

11. обратная сборка репы из директорий

чтобы все задачи 1...9 делать над файловой системой, но это видимо неверный подход?

теперь попробую провести систематичность:

А. есть операции, которые не меняют графа коммитов, а меняют только содержимое файлов, директорий, или описания коммита

В. есть операции, которые меняют граф коммитов, и не меняют содержимое файлов/директорий/описаний там, где граф коммитов неизменен

для А полезны командно-строчные тулзы (может даже в меркуриале есть такие команды, я просто их не знаю), хотя полезна была бы графическая тулза, позволяющая выбрать список коммитов (чтобы потом скормить его командно-строчным тулзам)

для В желательны графические (мышекликательные) тулзы, хотя можно и командно-строчные

дополнительный бонус — возможность этими тулзами работать и с гит-ом

в целом, желательно такое же удобство работы с этим хозяйством, как с файловой системой (хотя у нас тут граф, и все сложнее)

ну и сам вопрос: правильный список задач и тулзы для работы со всем этим; ссылки на конкретные главы книг/документации/вопросы so приветствуются

UPDATE: если какая-то тулза делает не все задачи, а только часть, то ее вполне можно предложить

Ответ на: комментарий от www_linux_org_ru

В остальном - been there, done that. Никакого профита.

путеводитель по подводным граблям — это, по-моему, самое интересное чтиво; я слушаю

Речь не о подводных граблях - просто нет никакого профита от исправления глубокой истории. История за пределом некоторого временного промежутка (размер которого прямо пропорционален размеру проекта) вообще малоинтересна, и время на ее редактирование - потерянное время.

ты же понимаешь, что каждый отредактированный коммит нужно проверять так же, как новый? И, возможно, последующие за ним коммиты?

что в нем надо проверять?

Например, при впиливании коммита с распределением файлов по каталогам, нужно проверять все последующие коммиты на то, что они правильно ссылаются на файл.

или в более сложном случае пропали коммиты A,B,C,D,E но появились F,G,H так что A+Е+C+В+D=F+H+G, тоже проверять не особо много надо

Что такое «особо много»? Нужно будет проверить F и H.

tailgunner ★★★★★ ()
$ rm -rf .hg
$ hg init
anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.