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:
La parte de TortoiseSVN : obtener TortoiseSVN para insertar el Bugid y el hipervínculo en el registro de svn
La parte FogBugz - obtener FogBugz para insertar la información SVN y enlaces correspondientes
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
Haga clic derecho en el directorio raíz del proyecto desprotegido con el que desea trabajar.
Seleccione "TortoiseSVN -> Propiedades"
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
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 /
Vaya a su cuenta de FogBugz y haga clic en Extras -> Configurar integración de control de código fuente
Descargue el archivo VBScript para Subversion (no se moleste con el archivo por lotes)
Crea una carpeta para almacenar los scripts de gancho. Lo puse en la misma carpeta que mis repositorios. p.ej.
//myserver/svn/hooks/
Cambie el nombre de VBscript para eliminar
.safe
al final del nombre de archivo.Guarde mi versión del archivo por lotes en su directorio hooks, como
post-commit-tsvn.bat
Haga clic derecho en cualquier directorio.
Seleccione "TortoiseSVN> Configuración" (en el menú contextual del último paso)
Seleccione "Scripts de gancho"
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"
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"
Vaya a su cuenta fogbugz y haga clic en Extras> Configurar integración de control de código fuente
Descargue "post-commit.bat" y el archivo VBScript para Subversion
Cree un directorio de "ganchos" en una ubicación común de fácil acceso (preferiblemente sin espacios en la ruta del archivo)
Coloque una copia de los archivos en los directorios de ganchos
Cambie el nombre de los archivos sin la extensión ".safe"
Haga clic derecho en cualquier directorio.
Seleccione "TortoiseSVN> Configuración" (en el menú contextual del último paso)
Seleccione "Scripts de gancho"
http://www.chomperstomp.com/img/tortoiseSVNSettings.png
Haga clic en "Agregar"
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".
- Haga clic en "Aceptar" para cerrar toda la ventana de diálogo de configuración
Configure las propiedades
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)
Seleccione "TortoiseSVN> Propiedades" (en el menú contextual del último paso)
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
- 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
Haga clic derecho en un proyecto que ya tiene la configuración de propiedades adecuada
Seleccione "TortoiseSVN> Properties" (del menú del botón derecho del paso 1)
Resalta todas las propiedades deseadas
Haga clic en "Exportar"
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)
Haga clic derecho en el directorio raíz del proyecto desprotegido que necesita las propiedades establecidas.
Haga clic en "Importar"
Seleccione el archivo que exportó en el paso 4 anterior
Haga clic en Abrir