Кратко о новом инструменте, позволяющем в Git разделить один файл на несколько, сохранив при этом историю.
Сегодня выпустил gitfilesplit.

Этот небольшой скрипт позволяет автоматизировать набор действий, которые необходимо предпринять, если в Git вы желаете разбить один большой файл на несколько, при этом сохранив для новых файлов историю изменений из старого.

Приложение можно использовать как утилиту командной строки:

    $ gitfilesplit myhugefile.py smaller.py another.py some.py

Помимо этого, можно вызывать её из кода на Питоне:

    from gitfilesplit.toolbox import split

split(
source='myhugefile.py',
targets=['smaller.py', 'sub1/another.py', 'sub2/some.py']
)

По сути эффект разбиения получаемся таким, будто исходный файл был раскопирован в несколько других. После отработки утилиты останется убрать из каждой копии лишний код.

Обката утилиты на коде этого сайта для разделения разросшегося за годы модуля с моделями прошла успешно.

Проект разрабатывает открыто, желающие могут внести лепту — gitfilesplit на GitHub.

Разделяй, властвуй.

Категории

Проект

На заметку
Зарегистрированные пользователи могут публиковать свои мнения относительно Книг, Видео, Статей других авторов и прочего в разделе Обсуждений.