tag create svn tortoisesvn integration fogbugz

create - Integrando Fogbugz con TortoiseSVN sin URL/Subversion backend



svn trunk (5)

Tengo TotroiseSVN instalado y tengo la mayoría de mis repositorios ingresando y saliendo de C: / subversion / y un par de check-in y out de una red compartida (me olvidé de esto cuando originalmente publiqué esta pregunta) .

Esto significa que no tengo un servidor de "subversión" per se.

¿Cómo integro TortoiseSVN y Fogbugz?

Editar: cursiva insertada


¿Por qué no puedes simplemente instalar un servidor de subversión? Si descargas el Servidor VisualSVN , que es gratuito, obtienes un servidor http para tu código fuente y puedes usar los scripts FogBugz para integrar los dos.

La razón por la que estoy preguntando es porque todos los scripts y la documentación asumen que usted tiene el servidor, los scripts del lado del cliente son demasiado nuevos para que FogBugz tenga plantillas para ellos, por lo que queda prácticamente abandonado en sus propios dispositivos.


No estoy seguro de seguirte. ¿Tiene los repositorios en la red o en su unidad C: /? Según dos de tus publicaciones, tienes ambas, o ninguna, o una de ellas, o ...

No puede obtener VisualSVN o Apache para servir repositorios de forma segura desde un recurso compartido de red. Como originalmente dijiste que tenías los repositorios en tu disco C: /, para eso obtienes consejo. Si tiene una configuración diferente, debe informarnos sobre eso.

Si tiene los repositorios en su disco duro local, instalaría VisualSVN o lo integraría en Apache. VisualSVN puede funcionar bien junto con Apache, por lo que si va por esa ruta solo tiene que instalarlo. Sus repositorios existentes también pueden simplemente copiarse en el directorio raíz del repositorio de VisualSVN y estará en funcionamiento.

No estoy seguro de por qué esa gran publicación aquí está etiquetada como incompleta, ya que detalla los pasos necesarios para configurar una secuencia de comandos gancho para informar a FogBugz sobre las nuevas revisiones vinculadas a los casos, que debería ser lo que el mensaje incompleto dice que no funciona . ¿Eso no está funcionando?


El problema es que FogBugz se vinculará a una página web, y file: /// etc. no es una página web. Para obtener la integración de dos maneras, necesita un servidor web para su repositorio de subversión. Configura Apache u otra cosa que pueda albergar esas cosas de la manera correcta.


He estado investigando este problema y he logrado que funcione. Hay un par de problemas menores pero se pueden solucionar.

Hay 3 partes distintas de este problema, de la siguiente manera:

  1. La parte de TortoiseSVN : obtener TortoiseSVN para insertar el Bugid y el hipervínculo en el registro de svn

  2. La parte FogBugz - obtener FogBugz para insertar la información SVN y enlaces correspondientes

  3. La parte WebSVN - asegurando que los enlaces de FogBugz realmente funcionen

Las instrucciones para la parte 1 están en otra respuesta, aunque realmente hace más de lo requerido. Lo de los ganchos es en realidad para la parte 2, y como se señala, no funciona "de fábrica"

Solo para confirmar, estamos viendo el uso de TortoiseSVN SIN un servidor SVN (es decir, repositorios basados ​​en archivos)

Estoy accediendo a los repositorios usando rutas UNC, pero también funciona para unidades locales o unidades mapeadas.

Todo esto funciona con TortoiseSVN v1.5.3 y SVN Server v1.5.2 (Necesita instalar el servidor SVN porque la parte 2 necesita svnlook.exe que está en el paquete del servidor. En realidad, no lo configura para que funcione como servidor SVN) Incluso es posible simplemente copiar svnlook.exe desde otra computadora y ponerlo en algún lugar en su camino.

Parte 1 - TortoiseSVN

La creación de las propiedades de TortoiseSVN es todo lo que se necesita para obtener los enlaces en el registro de SVN.

Las instrucciones anteriores funcionan bien, las citaré aquí por conveniencia:

Configure las propiedades

  1. Haga clic derecho en el directorio raíz del proyecto desprotegido con el que desea trabajar.

  2. Seleccione "TortoiseSVN -> Propiedades"

  3. Agregue cinco pares de valores de propiedad haciendo clic en "Nuevo ..." e inserte lo siguiente en "Nombre de propiedad" y "Valor de propiedad" respectivamente: (asegúrese de marcar "Aplicar propiedad recursivamente" para cada uno)

    bugtraq:label BugzID: bugtraq:message BugzID: %BUGID% bugtraq:number true bugtraq:url http://[your fogbugz URL here]/default.asp?%BUGID% bugtraq:warnifnoissue false

  4. Haga clic en Aceptar"

Como dice Jeff, tendrá que hacer eso para cada copia de trabajo, así que siga sus instrucciones para migrar las propiedades.

Eso es. TortoiseSVN ahora agregará un enlace al ID de bug FogBugz correspondiente cuando confirme. Si eso es todo lo que quieres, puedes parar aquí.

Parte 2 - FogBugz

Para que esto funcione, debemos configurar los scripts hook. Básicamente, se llama al archivo por lotes después de cada confirmación, y esto a su vez llama al script VBS que hace el envío a FogBugz. El script VBS funciona bien en esta situación, por lo que no es necesario modificarlo.

El problema es que el archivo por lotes se escribe para funcionar como un enlace de servidor , pero necesitamos un enlace de cliente .

El servidor SVN llama al enganche post-commit con estos parámetros:

<repository-path> <revision>

TortoiseSVN llama al enganche post-commit con estos parámetros:

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

Entonces es por eso que no funciona, los parámetros son incorrectos. Necesitamos enmendar el archivo por lotes para que pase los parámetros correctos al script VBS.

Notará que TSVN no pasa la ruta del repositorio, que es un problema, pero funciona en las siguientes circunstancias:

  • El nombre del repositorio y el nombre de la copia de trabajo son los mismos
  • Usted realiza la confirmación en la raíz de la copia de trabajo, no en una subcarpeta.

Voy a ver si puedo solucionar este problema y volveré a publicar aquí si lo hago.

Aquí está mi archivo por lotes modificado que funciona (por favor disculpe los comentarios excesivos ...)

Deberá configurar los directorios de gancho y repositorio para que coincidan con su configuración.

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

Voy a suponer que los repositorios están en //myserver/svn/ y las copias de trabajo están todas bajo `C: / Projects /

  1. Vaya a su cuenta de FogBugz y haga clic en Extras -> Configurar integración de control de código fuente

  2. Descargue el archivo VBScript para Subversion (no se moleste con el archivo por lotes)

  3. Crea una carpeta para almacenar los scripts de gancho. Lo puse en la misma carpeta que mis repositorios. p.ej. //myserver/svn/hooks/

  4. Cambie el nombre de VBscript para eliminar .safe al final del nombre de archivo.

  5. Guarde mi versión del archivo por lotes en su directorio hooks, como post-commit-tsvn.bat

  6. Haga clic derecho en cualquier directorio.

  7. Seleccione "TortoiseSVN> Configuración" (en el menú contextual del último paso)

  8. Seleccione "Scripts de gancho"

  9. Haga clic en "Agregar" y configure las propiedades de la siguiente manera:

    • Tipo de gancho: Gancho Post-Commit

    • Ruta de copia de trabajo: C:/Projects (o cualquiera que sea su directorio raíz para todos sus proyectos).

    • Línea de comando para ejecutar: //myserver/svn/hooks/post-commit-tsvn.bat (esto necesita apuntar a cualquier lugar donde coloque su directorio de ganchos en el paso 3)

    • Marque "Esperar a que el script termine"

  10. Haga clic en Aceptar dos veces.

La próxima vez que ingrese e ingrese un Bugid, se enviará a FogBugz. Los enlaces no funcionarán, pero al menos la información de revisión está allí y usted puede buscar manualmente el registro en TortoiseSVN.

NOTA: Notará que la raíz del repositorio está codificada de forma rígida en el archivo por lotes. Como resultado, si visita los repositorios que no tienen la misma raíz (por ejemplo, uno en la unidad local y uno en la red), necesitará usar 2 archivos por lotes y 2 entradas correspondientes en Scripts de enganche en TSVN. configuraciones. La forma de hacerlo sería tener 2 árboles separados de Copia de Trabajo, uno para cada raíz del repositorio.

Parte 3 - WebSVN

Errr, no he hecho esto :-)

Al leer los documentos de WebSVN, parece que WebSVN en realidad no se integra con el servidor SVN, simplemente se comporta como cualquier otro cliente SVN pero presenta una interfaz web. En teoría, debería funcionar bien con un repositorio basado en archivos. No lo he intentado sin embargo.


¡Esta respuesta es incompleta y defectuosa! Solo funciona desde TortoisSVN a Fogbugz, pero no al revés. Todavía necesito saber cómo hacer que funcione desde Fogbugz hacia atrás (como está diseñado) para que pueda ver el número de Revisión al que se dirige un error desde Fogbugz mientras miro un error.

URLs útiles

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

http://tortoisesvn.net/issuetracker_integration

Establecer los "ganchos"

  1. Vaya a su cuenta fogbugz y haga clic en Extras> Configurar integración de control de código fuente

  2. Descargue "post-commit.bat" y el archivo VBScript para Subversion

  3. Cree un directorio de "ganchos" en una ubicación común de fácil acceso (preferiblemente sin espacios en la ruta del archivo)

  4. Coloque una copia de los archivos en los directorios de ganchos

  5. Cambie el nombre de los archivos sin la extensión ".safe"

  6. Haga clic derecho en cualquier directorio.

  7. Seleccione "TortoiseSVN> Configuración" (en el menú contextual del último paso)

  8. Seleccione "Scripts de gancho"

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

  1. Haga clic en "Agregar"

  2. Establezca las propiedades de esta manera:

    • Tipo de gancho: Gancho Post-Commit

    • Ruta de copia de trabajo: C: // Proyectos (o cualquiera que sea su directorio raíz para todos sus proyectos. Si tiene varios, necesitará hacer este paso para cada uno).

    • Línea de comando para ejecutar: C: // subversion // hooks // post-commit.bat (esto necesita apuntar a donde coloque su directorio hooks desde el paso 3)

    • También seleccioné la casilla de verificación Esperar a que el script termine ...

ADVERTENCIA: ¡no olvide la doble barra invertida! "//"

Haga clic en Aceptar...

Nota: la captura de pantalla es diferente, siga el texto de las rutas de archivos, NO la captura de pantalla ...

En este punto, parece que podría hacer clic en "Issue Tracker Integration" y seleccionar Fogbugz. no. Simplemente devuelve "No hay proveedores de seguimiento de problemas disponibles".

  1. Haga clic en "Aceptar" para cerrar toda la ventana de diálogo de configuración

Configure las propiedades

  1. Una vez más, haga clic con el botón derecho en el directorio raíz del proyecto desprotegido con el que desea trabajar (debe realizar este paso de "configurar las propiedades" para cada proyecto - Consulte "Migrar propiedades entre proyectos" a continuación)

  2. Seleccione "TortoiseSVN> Propiedades" (en el menú contextual del último paso)

  3. Agregue cinco pares de valores de propiedad haciendo clic en "Nuevo ..." e inserte lo siguiente en "Nombre de propiedad" y "Valor de propiedad", respectivamente:

bugtraq: label BugzID:
bugtraq: mensaje BugzID: %% BUGID %%

bugtraq: número verdadero

bugtraq: url http: // [su URL fogbugz aquí] /default.asp?%BUGID%

bugtraq: warnifnoissue falso

  1. Haga clic en Aceptar"

Compromiso de cambios y visualización de los registros

Ahora cuando se compromete, puede especificar un error al que se dirige el compromiso. Este tipo de fuerzas te obliga a comprometerte después de corregir cada error ...

Cuando ve el registro (haga clic con el botón secundario en el proyecto, TortoiseSVN> mostrar registro) puede ver la identificación del error que corresponde a cada comprobación (1), y puede hacer clic en el número de identificación del error que se tomará para fogbugz para ver ese error automáticamente si está mirando el mensaje de registro real. ¡Bastante ingenioso!

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

Migrar propiedades entre proyectos

  1. Haga clic derecho en un proyecto que ya tiene la configuración de propiedades adecuada

  2. Seleccione "TortoiseSVN> Properties" (del menú del botón derecho del paso 1)

  3. Resalta todas las propiedades deseadas

  4. Haga clic en "Exportar"

  5. Asigne un nombre al archivo después de la propiedad y colóquelo en un directorio de fácil acceso (coloque el mío con los archivos de ganchos)

  1. Haga clic derecho en el directorio raíz del proyecto desprotegido que necesita las propiedades establecidas.

  2. Haga clic en "Importar"

  3. Seleccione el archivo que exportó en el paso 4 anterior

  4. Haga clic en Abrir