RUDE

Интеграция Bazaar (bzr) с Visual Studio

Как лучше всего использовать Bazaar (bzr) в качестве системы контроля версий в Visual Studio 2008?


12
5 009
9

Ответы:

Решено

Лучшее, что я нашел, - это ЧерепахаBZR и командная строка - ничего интегрированного с VS.


Я бы даже не стал беспокоиться о TortoiseBZR; bzr очень прост в использовании из командной строки.

BTW: в последний раз, когда я пробовал это, TortoiseBZR блокировал проводник Windows, пока он уходил в удаленный репозиторий, чтобы определить статус файлов, не уверен, что он все еще делает это ...? См. Также этот вопрос SO.


В Launchpad есть проект, но похоже, что он заброшен, и когда я его загрузил, мне не удалось его собрать.

Это то, что меня интересует. Отслеживание добавления, удаления и автоматического переименования в среде IDE - лучший способ. Видеть статус тоже приятно.


Встроенной интеграции с Visual Studio нет, но есть хорошее приложение с графическим интерфейсом под названием Bazaar Explorer. Это часть официального автономного установщика, а также может быть установлена ​​отдельно как плагин bzr.


Unified SCC поддерживает bzr. Он коммерческий, но претендует на то, чтобы быть бесплатным для проектов OSS.

UnifiedSCC


Старый, я знаю, но поскольку он отображается в верхней части поиска Google, лучший способ интеграции - это комбинация внешних инструментов Visual Studio, а также tbzrcommand.exe и bzr.exe. Вы можете настроить такие вещи, как Status, чтобы перейти в окно вывода, и такие вещи, как Diff, чтобы перейти в окно графического интерфейса tbzrcommand.

(Я предполагаю, что вы установили здесь TortoiseBzr.) Используя их в качестве примеров, в VS откройте Инструменты-> Внешние инструменты, затем Добавить. Для программы перейдите в каталог Bazaar и выберите bzr.exe. Назовите команду Статус. В качестве аргументов введите «статус» (без кавычек). Выберите, что вывод должен быть направлен в окно вывода vs, что команда должна завершаться после завершения. Откройте простой файл под управлением кода, добавьте где-нибудь пробел и сохраните, затем во внешних инструментах выберите статус, чтобы убедиться, что он отображается как ожидающее действие фиксации. (Вы можете добавить их в собственное меню позже, когда они заработают.)

Затем добавьте еще одну внешнюю команду и назовите эту Diff. Для программы перейдите в каталог Bazaar и выберите tbzrcommand.exe. В качестве аргументов введите «--command = diff --file = $ (TargetPath)» (без кавычек). Не устанавливайте флажки для всех параметров. Затем для файла выше, в который вы добавили пробел, выберите его в окне обозревателя решений и выберите Инструменты-> Различия. Должно появиться окно TortoiseBzr (вместе с раздражающим окном DOS) и показать различия между рабочей версией и последней версией фиксации файла.

Для чего-то вроде фиксации, которая требует комментария, вам нужно будет ввести аргументы типа «commit -m» (без кавычек) и установить флажок, чтобы запрашивать аргументы (чтобы разрешить ввод сообщения для фиксации).


Если вам не нужна интеграция с SCC, а просто возможность использовать инструмент, попробуйте выполнить настройку в этой статье:

Http://www.codeproject.com/KB/macros/Bazaar4VS.aspx


Я портировал VisualHG для работы с Bazaar: https://launchpad.net/visualbzr

В настоящее время это альфа-версия, она была создана и протестирована только для Visual Studio 2010, но общие операции должны работать нормально.

Редактировать: Этот плагин не сильно продвинулся, но теперь он поддерживает Visual Studio 2012.


Я тоже пытался использовать это и обнаружил, что в Visual Studio есть опция «Внешние инструменты», которую можно найти на панели инструментов инструментов. После пробного использования я обнаружил, что можно создать ссылку на bzr.exe (или любые другие инструменты exe, которые вы, возможно, захотите использовать). Затем он просит аргументов. Именно здесь вы можете начать использовать магию.

Для меня, чтобы напрямую зафиксировать изменения, я создал аргумент commit -m "", который фиксирует без сообщения ветку bzr, если она существует в рабочем каталоге (для этого вам также нужно изменить начальный каталог на решение каталог).

Я также создал команду push на свою панель запуска, используя аналогичную идеологию