четверг, 18 октября 2012 г.

Особенности использования git subtree

В Git есть замечательная возможность по внедрению в проект внешних проектов, называемая Subtree Merging. Её плюсы в том, что можно править код этого внешнего проекта и при необходимости/возможности вносить эти изменения в его хранилище. так же легко и прозрачно сливать новые изменения из этого внешнего проекта к себе.
Но не все так просто. В приведенной выше ссылке на главу книги, посвященной под-деревьям, не говорится о том, при сливании в свой проект свежих изменений из внешнего проекта вы теряете свои локальные изменения данного проекта.  Единственное упоминание об этом я нашел только в документации по модулю git-subtree, который является альтернативным способом использования под-деревьев.
merge::
 Merge recent changes up to <commit> into the <prefix> subtree. As with normal 'git merge', this doesn't remove your own local changes; it just merges those changes into the latest <commit>. With '--squash', creates only one commit that contains all the changes, rather than merging in the entire history.
Правильной стратегией использования под-деревьев является следующее:
  1. влить в свой проект внешний проект, как это описано в инструкции
  2. если требуются изменения в локальной копии внешнего проекта - делаем их и коммитим.
  3. если требуется слить к себе изменения внешнего проекта, то в начале нужно слить локальные изменения этого проекта в бранч (созданный на шаге 1). Cливать той же командой, что и из бранча к себе
     git merge --squash -s subtree --no-commit your_branch
    Ну а затем делаем pull из внешнего проекта, в результате которого локальные изменения сливаются с внешними. Далее сливаем бранч к себе.
Жаль, что данное поведение не описано было. Начал проект, опираясь на под-деревья. И пройдя много коммитов напоролся на такую проблему. Ушло много времени, чтобы разобраться.

понедельник, 8 октября 2012 г.

Colorer 1.0.3.12 и обновления схем


Colorer 1.0.3.12 для Far 3

Изменения
  1. Плагин адаптирован под Far3 build 2876 API
  2. исправлена ошибка чтения настроек
Изменения схем
New:
- powershell (Roman Kuzmin)
- R (Roman Kuzmin)
- Lemon Parser Generator (Aleksey Dobrunov)
- json (Aliaksei Chapyzhenka)
- LLVM IR (Aliaksei Chapyzhenka)
Fixed:
- sql - 'end' for case block; fixed qualified host variables
- csharp - add struct in outlined; keyword 'var'; simple parse verbatim string
- php - php 5.4 support: traits, binary numbers, some functions deprecation (lazyeugene)
- less - some fixes (lazyeugene)
- SilverStripe - some fixes (lazyeugene)
- css - new keywords (lazyeugene)
- cobol - many fixes (Pavel Pleva)
- cobolfr - many fixes (Pavel Pleva)
- jcl - many fixes (Pavel Pleva)
- makefile- fixed comment after var definition (Pavel Pleva)
- pl1 - many fixes (Pavel Pleva)
- sh - fixed --eq (Pavel Pleva)
- graphviz - updated for Graphviz 2.28 (Roman Kuzmin)

Измененные схемы так же можно скачать отдельно по ссылке hrc-update.2012-10-08.zip