Интеграция FogBUGZ с TortoiseSVN, без URL / Subversion бэкэндом

голоса
15

У меня установлено TotroiseSVN и есть большинство моих репозиториев проверка и выходить из C: \ подрывной \ и пару проверки и выходить из сетевого ресурса (я забыл об этом , когда я первоначально отправил этот вопрос) .

Это означает, что у меня нет «подрывной» сервер в-себе.

Как интегрировать TortoiseSVN и FogBUGZ?

Редактирование: вставить курсив

Задан 06/08/2008 в 17:10
источник пользователем
На других языках...                            


5 ответов

голоса
18

Я исследовал этот вопрос и удалось заставить его работать. Есть несколько незначительных проблем, но они могут быть разработаны вокруг.

Есть 3 различных частей этой проблемы, а именно:

  1. TortoiseSVN часть - получение TortoiseSVN для вставки BUGID и гиперссылку в журнале Svn

  2. FogBugz часть - получение FogBugz для вставки информации SVN и соответствующие ссылки

  3. WebSVN часть - обеспечение связей с FogBugz действительно работают

Инструкция по части 1, в другой ответ, хотя он на самом деле делает больше, чем требуется. Материал о крючках на самом деле для части 2, и, как указано, - она ​​не работает «из коробки»

Просто чтобы подтвердить, мы смотрим на использование TortoiseSVN без сервера SVN (то есть. Хранилища файлов на основе)

Я доступ к хранилищам с помощью пути UNC, но он также работает на локальных дисках или сетевых дисках.

Все это работает с TortoiseSVN v1.5.3 и v1.5.2 SVN сервера (Вы должны установить SVN сервер , поскольку часть 2 потребность , svnlook.exeкоторая находится в пакете сервера. Вы на самом деле не настроить его для работы в качестве сервера SVN) Это может даже можно просто скопировать svnlook.exeс другого компьютера и поставить его где - то на своем пути.

Часть 1 - TortoiseSVN

Создание свойств TortoiseSVN это все, что требуется для того, чтобы получить ссылки в журнале SVN.

Предыдущие инструкции работают нормально, я вышлю их здесь для удобства:

Настройка свойств

  1. Щелкните правой кнопкой мыши на корневом каталоге извлечённой проекта вы хотите работать.

  2. Выберите "TortoiseSVN -> Свойства"

  3. Добавьте пять пар значений свойств, нажав кнопку «New ...» и вставить следующее в «Имя свойства» и «Property Value» соответственно: (убедитесь, что флажок «Применить свойство рекурсивно» для каждого из них)

    bugtraq:label    BugzID:
    bugtraq:message  BugzID: %BUGID%
    bugtraq:number   true
    bugtraq:url      http://[your fogbugz URL here]/default.asp?%BUGID%
    bugtraq:warnifnoissue   false
    
  4. Нажмите кнопку «OK»

Как говорит Джефф, вы должны сделать это для каждой рабочей копии, поэтому следуйте его инструкциям по переносу свойств.

Вот и все. TortoiseSVN будет теперь добавить ссылку на соответствующий FogBugz BUGID, когда вы совершаете. Если это все, что вы хотите, вы можете остановиться здесь.

Часть 2 - FogBugz

Для этой работы нам нужно настроить скрипты ловушек. В основном пакетный файл вызывается после каждого коммита, и это, в свою очередь, вызывает скрипт VBS, который делает представление в FogBugz. Скрипт VBS на самом деле хорошо работает в этой ситуации, поэтому мы не должны изменять его.

Проблема заключается в том, что пакетный файл записывается на работу в качестве сервера крючком, но нам нужен клиент крючок.

сервер SVN называет пост фиксации крюка с этими параметрами:

<repository-path> <revision>

TortoiseSVN называет пост фиксации крюка с этими параметрами:

<affected-files> <depth> <messagefile> <revision> <error> <working-copy-path>

Так вот почему он не работает - параметры неверны. Нам нужно изменить пакетный файл, поэтому она передает правильные параметры в скрипт VBS.

Вы заметите, что TSVN не проходит путь репозитория, который является проблемой, но она работает в следующих случаях:

  • Имя хранилища и рабочее название копии одинаково
  • Вы коммит в корне рабочей копии, а не подпапка.

Я буду видеть, если я могу исправить эту проблему и разместим назад здесь, если я делаю.

Вот мой изменен пакетный файл, который делает работу (пожалуйста, простите излишние комментарии ...)

Вам нужно установить крюк и каталоги хранилища, чтобы соответствовать вашей настройке.

rem @echo off
rem   SubVersion -> FogBugz post-commit hook file
rem   Put this into the Hooks directory in your subversion repository
rem   along with the logBugDataSVN.vbs file

rem   TSVN calls this with args <PATH> <DEPTH> <MESSAGEFILE> <REVISION> <ERROR> <CWD>
rem   The ones we're interested in are <REVISION> and <CWD> which are %4 and %6

rem   YOU NEED TO EDIT THE LINE WHICH SETS RepoRoot TO POINT AT THE DIRECTORY 
rem   THAT CONTAINS YOUR REPOSITORIES AND ALSO YOU MUST SET THE HOOKS DIRECTORY

setlocal

rem   debugging
rem echo %1 %2 %3 %4 %5 %6 > c:\temp\test.txt

rem   Set Hooks directory location (no trailing slash)
set HooksDir=\\myserver\svn\hooks

rem   Set Repo Root location (ie. the directory containing all the repos)
rem   (no trailing slash)
set RepoRoot=\\myserver\svn

rem   Build full repo location
set Repo=%RepoRoot%\%~n6

rem   debugging
rem echo %Repo% >> c:\temp\test.txt

rem   Grab the last two digits of the revision number
rem   and append them to the log of svn changes
rem   to avoid simultaneous commit scenarios causing overwrites
set ChangeFileSuffix=%~4
set LogSvnChangeFile=svn%ChangeFileSuffix:~-2,2%.txt

set LogBugDataScript=logBugDataSVN.vbs
set ScriptCommand=cscript

rem   Could remove the need for svnlook on the client since TSVN 
rem   provides as parameters the info we need to call the script.
rem   However, it's in a slightly different format than the script is expecting
rem   for parsing, therefore we would have to amend the script too, so I won't bother.
rem @echo on
svnlook changed -r %4 %Repo% > %temp%\%LogSvnChangeFile%
svnlook log -r %4 %Repo% | %ScriptCommand% %HooksDir%\%LogBugDataScript% %4 %temp%\%LogSvnChangeFile% %~n6

del %temp%\%LogSvnChangeFile%
endlocal

Я буду считать , что репозитории в \\myserver\svn\и рабочие копии все в `C: \ Projects \

  1. Перейти на ваш счет FogBugz и нажмите Extras -> Интеграция Настройка источника управления

  2. Скачать файл VBScript для Subversion (не заморачиваться с командным файлом)

  3. Создайте папку для хранения сценариев крючков. Я положил его в той же папке, что и мои репозиториев. например.\\myserver\svn\hooks\

  4. Переименование VBscript для удаления .safeв конце файла.

  5. Спасите мою версию пакетного файла в каталоге крючков, а post-commit-tsvn.bat

  6. Щелкните правой кнопкой мыши на любой каталог.

  7. Выберите «TortoiseSVN> Настройки» (в меню правой кнопкой мыши из последнего шага)

  8. Выберите "Hook Scripts"

  9. Нажмите кнопку «Добавить» и установите свойства следующим образом:

    • Крюк Тип: Post-Commit крюк

    • Рабочая копия Путь: C:\Projects(или любой другой корневой каталог для всех ваших проектов.)

    • Командная строка Чтобы Execute: \\myserver\svn\hooks\post-commit-tsvn.bat(это нужно указать , где вы положили ваш каталог крючки на шаге 3)

    • Tick ​​«Подождите, скрипт, чтобы закончить»

  10. Дважды нажмите кнопку ОК.

В следующий раз вы фиксируете и ввести BUGID, он будет представлен на FogBugz. Ссылки не будет работать, но по крайней мере, информация пересмотра там, и вы можете вручную посмотреть журнал в TortoiseSVN.

Примечание: Вы заметите, что корень хранилища жестко закодированы в пакетном файле. В результате, если вы проверяете из хранилищ, которые не имеют один и тот же корень (например, один на локальном диске и один на сети), то вам необходимо использовать 2 пакетных файлов и 2 соответствующие записи под Hook Scripts в TSVN настройки. Способ сделать это будет иметь 2 отдельных рабочей копии деревьев - по одному для каждого корня хранилища.

Часть 3 - WebSVN

Errr, я не сделал этого :-)

От чтения документации WebSVN, кажется, что WebSVN фактически не интегрируется с сервером SVN, он просто ведет себя как любой другой клиент SVN, но представляет собой веб-интерфейс. В теории, то он должен работать нормально с хранилищем на основе файлов. Я не пробовал, хотя.

Ответил 16/12/2008 d 01:03
источник пользователем

голоса
11

Этот ответ является неполным и недостатками! Он работает только с TortoisSVN до FogBUGZ, но не наоборот. Мне еще нужно знать, как заставить его работать в обратном направлении от FogBUGZ (как это разработано, чтобы), так что я могу видеть номер ревизии ошибка, адресованное в от FogBUGZ, глядя на ошибку.


Полезные URLS

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-propertypage.html

http://tortoisesvn.net/issuetracker_integration


Установите «Крючки»

  1. Перейти на ваш счет FogBugz и нажмите Интеграция Дополнительно> Настройка управления источником

  2. Скачать «пост-commit.bat» и файл VBScript для Subversion

  3. Создание «крюки» каталог в общем легко доступном месте (желательно без пробелов в пути к файлу)

  4. Поместите копию файлов в каталогах крючков

  5. Переименовать файлы без «.safe» расширение

  6. Щелкните правой кнопкой мыши на любой каталог.

  7. Выберите «TortoiseSVN> Настройки» (в меню правой кнопкой мыши из последнего шага)

  8. Выберите "Hook Scripts"

http://www.chomperstomp.com/img/tortoiseSVNSettings.png

  1. Нажмите кнопку «Добавить»

  2. Установите свойства следующим образом:

    • Крюк Тип: Post-Commit крюк

    • Рабочая копия Путь: C: (. Или любой другой корневой каталог для всех ваших проектов Если у вас есть несколько вам нужно будет сделать этот шаг для каждого из них.) \\ Проекты

    • Командная строка Чтобы Execute: C: \\ диверсионных \\ крючков \\ поста-commit.bat (это необходимо, чтобы указать, где вы положили ваш каталог крючков с шага 3)

    • Я также выбрал флажок Ждать сценарий до конца ...

ВНИМАНИЕ: Не забудьте двойной обратный слэш! "\\"

Нажмите кнопку ОК, ...

Добавление Крючок Script

Примечание: скриншот отличается, следовать тексту для пути к файлам, а не скриншот ...

В этот момент, казалось бы, можно нажать кнопку «Issue Tracker Integration» и выберите FogBUGZ. Неа. Он просто возвращает «Там нет провайдеров проблемно-трекеров, доступных».

  1. Нажмите кнопку «OK», чтобы закрыть все настройки окна диалога

Настройка свойств

  1. Еще раз щелкните правой кнопкой мыши на корневом каталоге извлечённой проекта вы хотите работать (вы должны сделать это «настроить свойства» шаг для каждого проекта - в разделе «Миграция свойств между проектами» ниже)

  2. Выберите «TortoiseSVN> Свойства» (в меню правой кнопкой мыши из последнего шага)

  3. Добавьте пять пар значений свойств, нажав кнопку «New ...» и вставить следующее в «Имя свойства» и «Property Value» соответственно:

Bugtraq: этикетки BugzID:
Bugtraq: сообщение BugzID: %% BUGID %%

Bugtraq: число верно

Bugtraq: URL HTTP: // [ваш FogBugz URL здесь] /default.asp?%BUGID%

Bugtraq: warnifnoissue ложь

окно свойств добавив новое свойство

  1. Нажмите кнопку «OK»

Изменения и совершали Просмотр журналов

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

указав ошибку на имя при фиксации

При просмотре журнала (правая кнопка мыши корень проекта, TortoiseSVN> показать журнал) вы можете увидеть черепашку идентификатор, что каждая проверка соответствует (1), и вы можете нажать номер ошибки ID, которые необходимо предпринять, чтобы FogBugz для просмотра, что ошибка автоматически если вы смотрите на фактическое сообщение журнала. Довольно изящная!

http://www.chomperstomp.com/img/viewLog.png


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

  1. Щелкните правой кнопкой мыши на проект, который уже имеет правильную конфигурацию свойств

  2. Выберите «TortoiseSVN> Свойства» (в меню правой кнопкой мыши, начиная с шага 1)

  3. Выделить все желаемые свойства

  4. Нажмите кнопку «Экспорт»

  5. Имя файла после собственности, а также места в легко доступном каталоге (я поставил мину с файлами крючки)

сохранить свойства диалога

  1. Щелкните правой кнопкой мыши на корневом каталоге извлечённой проекта нуждающейся набор свойств для.

  2. Нажмите кнопку «Импорт»

  3. Выберите файл, экспортированный в шаге 4

  4. Нажмите кнопку Открыть

Ответил 06/08/2008 d 17:12
источник пользователем

голоса
2

Почему вы не можете просто установить сервер подрывной? Если вы загружаете VisualSVN сервер , который является бесплатным, вы получите сервер HTTP для исходного кода и может , таким образом , использовать скрипты FogBUGZ для интеграции двух.

Причина, почему я спрашиваю, потому что все скрипты и документацию до сих пор принимают у вас есть сервер, клиентские сценарии на стороне слишком новые для FogBugz иметь шаблоны для них, так что вы довольно много остались собственным устройства на что.

Ответил 08/08/2008 d 12:02
источник пользователем

голоса
1

Проблема заключается в том, что FogBugz будет ссылка на веб-страницу, и файл: /// и т.д. не веб-страница. Для интеграции двух способов, вам нужен веб-сервер для хранилища Subversion. Либо настроить Apache или что-то другое, что может принять те вещи надлежащим образом.

Ответил 13/08/2008 d 14:08
источник пользователем

голоса
0

Я не уверен, что я следую за вами. Есть ли у вас хранилищами в сети или на диске С: \ диск? По двум из ваших сообщений, вы оба, или ни тем, ни один из них, или ...

Вы не можете получить VisualSVN или Apache безопасно служить хранилищами из сетевой папки. Так как вы изначально сказали, что вы были хранилищами на диске С: \ диск, это то, что вы получите совет для. Если у вас есть другая установка, вы должны сообщить нам об этом.

Если у вас есть хранилища на локальном жестком диске, я бы установить VisualSVN или интегрировать его в Apache. VisualSVN может прекрасно работать вместе с Apache, так что если вы идете по этому пути вы только установить его. Существующие хранилища могут быть просто скопированы в хранилище корневой директории VisualSVN и вы и работает.

Я не уверен , почему это большой пост здесь помечен как неполные, так как она детализирует шаги , необходимые для создания сценария крюка , чтобы сообщить FogBugz о новых изменениях , связанных со случаями, которые должны быть тем, что неполное говорится в сообщении это не делает , Это не работает?

Ответил 08/08/2008 d 12:34
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more