Интеграция Fogbugz с TortoiseSVN без бэкенда URL/подрывной деятельности

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

import { pipe } from 'rxjs';
import { tap } from 'rxjs/operators';


export const tapTimeout = (onTimeout:(()=>any), delay:number) => {
    let timeout = window.setTimeout(onTimeout, delay);
    return pipe(tap(x=> {
        window.clearTimeout(timeout);
        timeout = window.setTimeout(onTimeout,delay);
    }));
}
.
16
задан cmcculloh 8 August 2008 в 12:01
поделиться

5 ответов

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

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

  1. часть TortoiseSVN - то, чтобы заставлять TortoiseSVN ввести Bugid и гиперссылку в журнале svn

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

  3. часть WebSVN - обеспечение ссылок от FogBugz на самом деле работает

, Инструкции для части 1 находятся в другом ответе, хотя это на самом деле делает более, чем необходимый. Материал о рычагах на самом деле для части 2, и как указан - это не работает "из поля"

Только для подтверждения, мы смотрим на использование TortoiseSVN БЕЗ [1 113] сервер SVN (т.е. основанные на файле репозитории)

, я получаю доступ к репозиториям с помощью путей UNC, но это также работает на локальные диски или сетевые диски.

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

Часть 1 - TortoiseSVN

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

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

Настраивают Свойства

  1. Щелчок правой кнопкой по корневому каталогу проверенного проекта, с которым Вы хотите работать.

  2. Избранный "TortoiseSVN-> Свойства"

  3. Добавляют пять пар значения свойства путем нажатия на "New..." и вставки следующего в "Имя Свойства" и "Значение свойства" соответственно: (удостоверьтесь, что Вы отмечаете "Свойство Apply рекурсивно" для каждого)

    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"

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

Вот именно. 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-> файл Configure Source Control Integration

  2. Download the VBScript для Подрывной деятельности (не беспокойтесь пакетным файлом)

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

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

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

  6. Щелчок правой кнопкой по любому каталогу.

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

  8. Выбор "Сцепляется, Сценарии"

  9. Нажимают "Add" и устанавливают свойства следующим образом:

    • Тип Рычага: Рычаг постфиксации

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

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

    • Галочка "Ожидает сценария для окончания"

  10. , Нажимают "OK" дважды.

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

ПРИМЕЧАНИЕ: Вы заметите, что корневой каталог хранилища трудно кодируется в пакетный файл. В результате, если Вы проверяете из репозиториев, которые не имеют того же корня (например, один на локальном диске, и один в сети) тогда необходимо будет использовать 2 пакетных файла и 2 соответствующих записи в соответствии со Сценариями Рычага в настройках TSVN. Способ сделать это должно было бы иметь 2 отдельных Рабочих дерева Копии - один для каждого корневого каталога хранилища.

Часть 3 - WebSVN

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

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

18
ответ дан 30 November 2019 в 17:28
поделиться

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

<час>

Полезные URL

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

http://tortoisesvn.net/issuetracker_integration

<час>

Набор "Рычаги"

  1. Входят в Вашу учетную запись fogbugz и нажимают Extras>, Configure Source Control Integration

  2. Download "post-commit.bat" и файл VBScript для Подрывной деятельности

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

  4. Место, копия файлов в каталогах рычагов

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

  6. Щелчок правой кнопкой по любому каталогу.

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

  8. Выбор "Сцепляется, Сценарии"

  1. Нажимают "Add"

  2. Набор свойства таким образом:

    • Тип Рычага: Рычаг постфиксации

    • Рабочий Путь Копии: C:\\Projects (or whatever your root directory for all of your projects is. Если у Вас будут несколько, то необходимо будет сделать этот шаг для каждого.)

    • Командная строка Для Выполнения: C:\\subversion\\hooks\\post-commit.bat (это должно указать на то, везде, куда Вы помещаете свой каталог рычагов от шага 3)

    • я также установил флажок для Ожидания сценария для окончания...

ПРЕДУПРЕЖДЕНИЕ: не забывайте двойную обратную косую черту! "\\"

Нажимают "OK"...

Adding a Hook Script

Примечание: снимок экрана отличается, следуйте тексту для путей к файлам, НЕ снимку экрана...

В этой точке казалось бы, что Вы могли нажать "Issue Tracker Integration" и выбрать Fogbugz. нет. Это просто возвращается "Нет никаких доступных поставщиков системы отслеживания ошибок".

  1. Нажимают "OK" для закрытия, целое диалоговое окно настроек

Настраивают Свойства

  1. Еще раз, Щелчок правой кнопкой по корневому каталогу проверенного проекта, с которым Вы хотите работать (необходимо сделать, это "настраивает свойства" шаг для каждого проекта - Видят "Мигрирующие Свойства Между Проектами" ниже)

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

  3. Добавляют пять пар значения свойства путем нажатия на "New..." и вставки следующего в "Имя Свойства" и "Значение свойства" соответственно:

bugtraq:label BugzID:
bugtraq:message BugzID: %% BUGID %%

bugtraq:number верный

bugtraq:url http:// [Ваш fogbugz URL здесь]/default.asp? % %BUGID

bugtraq:warnifnoissue ложь

properties window adding new property

  1. Нажимает "OK"

Фиксирующие Изменения и Просмотр Журналов

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

specifying bug addressed when commiting

при просмотре журнала (Щелкают правой кнопкой по корню проекта, TortoiseSVN> выставочный журнал) Вы видите идентификатор ошибки, которому каждая проверка соответствует (1), и можно нажать идентификационный номер ошибки, который будет взят к fogbugz для просмотра той ошибки автоматически, при рассмотрении фактического сообщения журнала. Довольно изящный!

<час>

Мигрирующие Свойства Между Проектами

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

  2. Избранный "TortoiseSVN> Свойства" (из контекстного меню от шага 1)

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

  4. , Нажимает "Export"

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

save properties dialogue

  1. Щелчок правой кнопкой по корневому каталогу проверенного набора свойств необходимости проекта для.

  2. Нажимают "Import"

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

  4. , Нажимают Open

11
ответ дан 30 November 2019 в 17:28
поделиться

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

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

2
ответ дан 30 November 2019 в 17:28
поделиться

Проблема состоит в том, что FogBugz свяжется с веб-страницей, и file:///etc не является веб-страницей. Для получения интеграции два пути Вам нужен веб-сервер для Вашего репозитория подрывной деятельности. Или настроенный Apache или что-то еще, что может разместить те вещи надлежащий путь.

1
ответ дан 30 November 2019 в 17:28
поделиться

Я не уверен, что следую за Вами. У Вас есть репозитории в сети или в Вашем диске C:\? Согласно двум из Ваших сообщений, у Вас есть оба, или ни один или один из них или...

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

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

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

0
ответ дан 30 November 2019 в 17:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: