hgcp є інструментом, який забезпечує Mercurial крос-reposititory копіювати і переміщати функції.
Коментарі розробника
Коли рефакторинг пакети, я іноді приходять до необхідності скопіювати деякі файли з одного Mercurial сховища в інше, зберігаючи свою історію. Хоча це не важко зробити, коли ви знаєте, як це не тривіально операція. Отже, я створив hgcp. Копіювання файлів з вихідним кодом-репо в ПРИЗНАЧЕННЯ-репо стає дуже легко. Ось кілька прикладів:
- Hgcp джерела репо / Властивості / дивак-feature.txt приймач-РЕПО / (Цей копії вихідного РЕПО / можливості / дивак-feature.txt в ПРИЗНАЧЕННЯ-репо / Властивості / дивак-feature.txt)
- Hgcp -х має джерела репо / Властивості / дивак-feature.txt приймач-репо / (Він видаляє особливості подпуть, копіювання вихідного репо / Властивості / дивак-feature.txt в ПРИЗНАЧЕННЯ-репо / дивак-feature.txt )
- Hgcp -х має джерела репо / Властивості / дивак-feature.txt Dest-репо / плагіни (копії вихідного репо / Властивості / дивак-feature.txt в ПРИЗНАЧЕННЯ-РЕПО / плагіни / дивак-feature.txt)
Існує також команда hgmv, що переміщує файли, а не просто копіювати їх. Це іншому випадку працює точно так само, як команди hgcp.
Установка
hgcp можна встановити за допомогою easy_install: easy_install hgcp
Примітка для тих, хто не любить цю функцію
Коротше кажучи: це нормально зі мною. Не використовуйте його.
Вам не потрібно шукати важко знайти багато запитів про те, як зробити історію, що зберігають крос-репозиторію копію. На жаль, більшість відповідей я бачив досить марним. Ось деякі відповіді, які я бачив:
- Це не підтримується робочий процес.
- Якщо вам це потрібно, ви не плануєте ваш репозиторій макет дуже добре.
- Ви не повинні робити це дуже часто
- Крос-сховище копіювання файлів не чітко визначені операції.
- Просто скопіюйте файл без історії, і поставити відмітку в журналі змін.
- До нудоти
Основна проблема з усіма цими відповідями полягає в наступному: Люди повинні копіювати або переміщати файли між сховищами. Subversion закликав нас, щоб покласти всі наші проекти в тому ж сховищі, так міжпроектної копії файлів були марними. DVCS як Mercurial спонукають нас поставити кожен проект в окремому сховищі, але не забезпечує простий спосіб, щоб реорганізувати проекти. Якщо ви опинитеся цікаво, чому хтось буде потрібно зробити це, ви перебуваєте в одному човні з злісної користувачів CVS, що цікаво, чому хтось скаржився, що перейменування або переміщення файлів був клопоту, і що перейменування каталогів ... ну , смішно. Переміщення речі навколо є частиною рефакторінга. Проекти розділені і об'єднані весь час. Наскільки я можу судити, копіювання крос-сховище і крок Суттєвою особливістю.
hgcp нічого, що ви не можете вручну робити, якщо ви хочете не робити. В основному, він використовує Mercurial розширення конвертувати. hgcp просто пише filemap для вас, і виконує відповідну послідовність HG команд. Вона також дозволяє вказати шляхи в більш природним чином.
Патчі та виправлення
Я щасливий прийняти патчі, які підвищують hgcp або виправити помилки. . Моя мета зберегти hgcp якомога простішим, і зосередився на крос-сховище робочих процесів
Вимоги
- Python
Обмеження
- hgcp працює тільки на сховищах, які зберігаються в локальній файловій системі. Будемо сподіватися, що це не велике навантаження, як ви можете легко перевірити віддалені РЕПО, використання hgcp, а потім синхронізувати. Крім того, сховища джерела і призначення повинні бути перевірені, і не мають непідтверджені зміни.
- Я сказав, що цей метод не зберігає всю історію файлу, якщо він був перейменований, особливо коли скопіювати / переїхали файл має довгу і розгалужену історію. Тим не менш, це ніколи не викликало проблеми для мене в реальних умовах експлуатації. Тільки знайте, що при копіюванні або переміщенні файлу, ви можете не копіювати це вся історія.
Коментар не знайдено