Разделение файлов в Mercurial и сохранение истории с обеих сторон

Мне нужно разбить несколько файлов, и я ищу варианты сохранения полной истории файлов в разделенных файлах.

Фон...

Я унаследовал проект, содержащий множество пакетов Oracle PL/SQL с спецификацией пакета и всем телом пакета, который хранится в одном файле .sql. Я бы предпочел иметь спецификацию пакета и тело пакета в отдельных файлах.

то есть.

Начиная с: myfile.sql

Я хотел бы разбить этот файл так, чтобы первый бит (спецификация пакета) включался:

myfile.pks

и последний бит (тело пакета):

myfile.pkb

У меня нет проблем, связанных с разделом, но мне было интересно, есть ли у кого-нибудь идеи, как я могу сохранить историю файлов myfile.sql как в myfile.pks, так и myfile.pkb.

Ответы

Ответ 1

Разделительные файлы могут быть смоделированы с помощью hg rename и hg copy, чтобы сохранить историю:

hg copy  myfile.sql myfile.pks
hg rename myfile.sql  myfile.pkb

Измените файл *.pks и *.pkb, чтобы удалить половину, которая там не принадлежит.

После завершения редактирования все.

Для просмотра копий и переименований вам необходимо использовать формат git для diffs:

hg diff -g

Так как это очень полезно, его часто устанавливают по умолчанию в файле .hgrc, добавляя:

[diff]
    git=1

Ответ 2

IDE делают его еще проще. Например. в IntelliJ выберите файл и сделайте Refactor > Copy.