Integrando Fogbugz com TortoiseSVN sem URL backend / Subversion

votos
15

Eu tenho TotroiseSVN instalado e ter uma maioria de meus repositórios de check-in e de C: \ subversão \ e um par check-in e para fora de um compartilhamento de rede (eu esqueci sobre isso quando eu originalmente publicado esta pergunta) .

Isso significa que eu não tenho um servidor de subversão per-se.

Como faço para integrar o TortoiseSVN e Fogbugz?

Editar: inserido itálico

Publicado 06/08/2008 em 17:10
fonte usuário
Em outras línguas...                            


5 respostas

votos
18

Eu tenho vindo a investigar este problema e conseguiram fazê-lo funcionar. Há um par de problemas menores, mas eles podem ser trabalhados-around.

Existem 3 partes distintas para este problema, como se segue:

  1. A parte TortoiseSVN - obter TortoiseSVN para inserir o BUGID e hyperlink no log de svn

  2. A parte FogBugz - ficando FogBugz para inserir a informação SVN e links correspondentes

  3. A parte WebSVN - assegurar as ligações de FogBugz realmente funcionam

Instruções para a parte 1 estão em outra resposta, embora ele realmente faz mais do que necessário. O material sobre os ganchos é realmente para a parte 2, e como é recordado - ele não funciona "fora da caixa"

Só para confirmar, nós estamos olhando usando TortoiseSVN SEM um servidor SVN (ie. Repositórios baseados em arquivo)

Eu estou acessando os repositórios usando caminhos UNC, mas também funciona para unidades locais ou unidades mapeadas.

Tudo isso funciona com o TortoiseSVN v1.5.3 e v1.5.2 servidor SVN (Você precisa instalar SVN Server porque parte 2 necessidades svnlook.exeque está no pacote do servidor. Você não realmente configurá-lo para funcionar como um servidor SVN) Pode até ser possível simplesmente copiar svnlook.exede outro computador e colocá-lo em algum lugar no seu caminho.

Parte 1 - TortoiseSVN

Criando as propriedades TortoiseSVN é tudo que é necessário para obter os links no log do SVN.

instruções anteriores funcionam bem, eu vou citá-los aqui por conveniência:

Configurar as propriedades

  1. Botão direito do mouse no diretório raiz do projeto check-out você quer trabalhar.

  2. Selecione "TortoiseSVN -> Propriedades"

  3. Adicionar cinco pares de valor de propriedade, clicando em "Novo ..." e inserir o seguinte em "Nome da propriedade" e "Propriedade Valor", respectivamente: (certifique-se que você marque "Aplicar propriedade recursivamente" para cada um)

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

Como Jeff diz, você precisa fazer isso para cada cópia de trabalho, então siga as suas instruções para migrar as propriedades.

É isso aí. TortoiseSVN irá agora adicionar um link para o correspondente FogBugz bugID quando você comete. Se isso é tudo que você quer, você pode parar aqui.

Parte 2 - FogBugz

Para que isso funcione é preciso configurar os scripts de gancho. Basicamente o arquivo de lote é chamado após cada commit, e este, por sua vez, chama o script VBS que faz a apresentação para FogBugz. O script VBS realmente funciona bem nesta situação para que não precisa modificá-lo.

O problema é que o arquivo de lote é escrito para funcionar como um servidor de gancho, mas precisamos de um cliente gancho.

servidor SVN chama o post-commit gancho com estes parâmetros:

<repository-path> <revision>

TortoiseSVN chama o post-commit gancho com estes parâmetros:

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

Então é por isso que ele não funciona - os parâmetros estão errados. Precisamos alterar o arquivo de lote assim que passa os parâmetros corretos para o script VBS.

Você notará que TSVN não passar no caminho do repositório, que é um problema, mas ela não funciona nas seguintes circunstâncias:

  • O nome do repositório eo nome da cópia de trabalho são os mesmos
  • Você a comprometer na raiz da cópia de trabalho, e não uma subpasta.

Vou ver se posso corrigir esse problema e irá postar de volta aqui se eu faço.

Aqui está o meu arquivo de lote alterada, que faz o trabalho (por favor, desculpe os comentários excessivas ...)

Você precisará configurar os diretórios gancho e repositório para corresponder à sua configuração.

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

Eu estou indo supor que os repositórios estão em \\myserver\svn\e cópias de trabalho estão todos sob `C: \ Projects \

  1. Vá para a sua conta FogBugz e clique em Extras -> Integração Configurar Controle de origem

  2. Baixe o arquivo VBScript para Subversion (não se preocupar com o arquivo de lote)

  3. Crie uma pasta para armazenar os scripts de gancho. Eu colocá-lo na mesma pasta que meus repositórios. por exemplo.\\myserver\svn\hooks\

  4. Mudar o nome VBscript para remover o .safeno fim do nome do ficheiro.

  5. Salvar a minha versão do arquivo de lote em seu diretório ganchos, como post-commit-tsvn.bat

  6. Botão direito do mouse em qualquer diretório.

  7. Selecione "TortoiseSVN> Configurações" (no menu do botão direito do último passo)

  8. Selecione "Scripts gancho"

  9. Clique em "Adicionar" e defina as propriedades da seguinte forma:

    • Tipo gancho: gancho post-commit

    • Cópia de Trabalho Caminho: C:\Projects(ou qualquer que seja o seu diretório raiz para todos os seus projetos é.)

    • Linha de comando para executar: \\myserver\svn\hooks\post-commit-tsvn.bat(isso precisa apontar para onde quer que você colocar o seu diretório ganchos no passo 3)

    • Carrapato "Aguarde até que o script para terminar"

  10. Clique em OK duas vezes.

Da próxima vez que cometer e entrar em um BUGID, ele será submetido a FogBugz. Os links não vai funcionar, mas pelo menos a informação de revisão está lá e você pode olhar manualmente o log em TortoiseSVN.

NOTA: Você notará que a raiz do repositório é embutida no arquivo de lote. Como resultado, se você verificar a partir de repositórios que não têm a mesma raiz (ex. Um na unidade local e um na rede), então você vai precisar usar 2 arquivos em lotes e 2 entradas correspondentes sob Hook Scripts no TSVN configurações. A maneira de fazer isso seria ter 2 árvores cópia de trabalho separados - um para cada raiz do repositório.

Parte 3 - WebSVN

Errr, eu não fiz isso :-)

Após a leitura dos docs WebSVN, parece que WebSVN na verdade não se integrar com o servidor SVN, ele só se comporta como qualquer outro cliente SVN, mas apresenta uma interface web. Em teoria, em seguida, ele deve funcionar bem com um repositório baseado em arquivo. Eu não tentei-lo embora.

Respondeu 16/12/2008 em 01:03
fonte usuário

votos
11

Esta resposta é incompleto e imperfeito! Ele só funciona a partir TortoisSVN para Fogbugz, mas não o contrário. Eu ainda preciso saber como fazê-lo funcionar para trás a partir Fogbugz (como ele é projetado para) para que eu possa ver o número de revisão de um bug é dirigida a partir Fogbugz enquanto olha para um bug.


URLS votos

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

http://tortoisesvn.net/issuetracker_integration


Defina os "ganchos"

  1. Vá para a sua conta FogBugz e clique Integração Extras> Configurar o controle de origem

  2. Download "pós-commit.bat" eo arquivo VBScript para Subversion

  3. Criar um "ganchos" diretório em um local comum de fácil acesso (de preferência sem espaços no caminho do arquivo)

  4. Coloque uma cópia dos arquivos nos diretórios ganchos

  5. Renomear os arquivos sem a extensão ".safe"

  6. Botão direito do mouse em qualquer diretório.

  7. Selecione "TortoiseSVN> Configurações" (no menu do botão direito do último passo)

  8. Selecione "Scripts gancho"

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

  1. Clique em "Adicionar"

  2. Definir as propriedades da seguinte forma:

    • Tipo gancho: gancho post-commit

    • Cópia de Trabalho Path: C: (., Ou qualquer que seja seu diretório raiz para todos os seus projetos é se você tiver múltiplos você precisará fazer este passo para cada um.) \\ Projects

    • Linha de comando para executar: C: \\ subversão \\ ganchos \\ pós-commit.bat (este precisa apontar para onde quer que você colocar o seu diretório ganchos do passo 3)

    • Eu também selecionou a caixa de seleção para esperar o script para terminar ...

AVISO: Não se esqueça do double back-slash! "\\"

Clique OK...

Adicionando um script de gancho

Nota: a imagem é diferente, siga o texto para os caminhos de arquivo, e não a imagem ...

Neste ponto, parece que você pode clicar em "Issue Tracker Integration" e selecione Fogbugz. Não. Ele só retorna "Não há provedores questão-Tracker disponíveis".

  1. Clique em "OK" para fechar toda a janela de diálogo configurações

Configurar as propriedades

  1. Mais uma vez, clique com o botão direito no diretório raiz do projeto check-out você quer trabalhar com (o que você precisa para fazer isso "configurar as propriedades" passo para cada projeto - Consulte "Migrando Propriedades entre projetos" abaixo)

  2. Selecione "TortoiseSVN> Propriedades" (no menu do botão direito do último passo)

  3. Adicionar cinco pares de valor de propriedade, clicando em "Novo ..." e inserir o seguinte em "Nome da propriedade" e "Propriedade Valor", respectivamente:

bugtraq: label BugzID:
bugtraq: mensagem BugzID: %% BUGID %%

bugtraq: número real

bugtraq: url http: // [seu URL FogBugz aqui] /default.asp?%BUGID%

bugtraq: warnifnoissue falsa

A janela de propriedades adicionando nova propriedade

  1. Clique OK"

Cometendo Alterações e visualizando os Logs

Agora, quando você está cometendo, você pode especificar um bug que a cometer endereços. Este tipo de força a cometer depois de corrigir cada bug ...

especificando bug abordadas quando cometer

Quando você exibir o log (clique raiz Direito de projeto, TortoiseSVN> Mostrar log) você pode ver o ID de bug que cada verificação corresponde a (1), e você pode clicar no número bug id para ser levado para o FogBugz para ver que o bug automaticamente se você está olhando para a mensagem de registo real. nifty bonita!

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


Migrando Propriedades entre projetos

  1. Botão direito do mouse em um projeto que já tem a configuração adequada Propriedades

  2. Selecione "TortoiseSVN> Propriedades" (a partir do menu do botão direito do passo 1)

  3. Realce todas as propriedades desejadas

  4. Clique em "Export"

  5. Nomeie o arquivo depois que a propriedade, e coloque em um diretório de fácil acesso (eu coloquei o meu com os arquivos ganchos)

salvar as propriedades diálogo

  1. Botão direito do mouse no diretório raiz do projeto check-out precisando propriedades definidas para.

  2. Clique em "Importar"

  3. Selecione o arquivo que você exportou na etapa 4 acima

  4. Clique em Abrir

Respondeu 06/08/2008 em 17:12
fonte usuário

votos
2

Porque você não pode simplesmente instalar um servidor de subversão? Se você baixar VisualSVN servidor , que é gratuito, você tem um servidor http para o seu código fonte e pode, assim, usar os scripts do FogBugz para integrar os dois.

A razão que eu estou pedindo é porque todos os scripts e documentação até agora assume que você tem os scripts do servidor, do lado do cliente são muito novo para FogBugz ter modelos para eles para que você está praticamente deixado a seus próprios dispositivos em que.

Respondeu 08/08/2008 em 12:02
fonte usuário

votos
1

O problema é que FogBugz irá conectar-se a uma página web e file: /// etc não é uma página web. Para conseguir a integração de duas maneiras, você precisa de um servidor web para o seu repositório Subversion. Ou configurar o Apache ou qualquer outra coisa que pode hospedar essas coisas da maneira adequada.

Respondeu 13/08/2008 em 14:08
fonte usuário

votos
0

Não tenho a certeza que eu segui-lo. Você tem os repositórios na rede ou em seu C: \ drive? De acordo com duas das suas mensagens, você tem ambos, ou nenhum, ou um deles ou ...

Você não pode obter VisualSVN ou Apache para servir com segurança repositórios a partir de um compartilhamento de rede. Desde que inicialmente disse que tinha os repositórios na sua unidade C: \, que é o que você obter aconselhamento para. Se você tem uma configuração diferente, você precisa nos dizer sobre isso.

Se você tem os repositórios no seu disco rígido local, eu iria instalar VisualSVN, ou integrá-lo em Apache. VisualSVN pode correr bem ao lado de Apache por isso, se você ir por esse caminho você só tem que instalá-lo. Seus repositórios existentes também pode simplesmente ser copiado para o diretório raiz do repositório de VisualSVN e você está instalado e funcionando.

Estou inseguro por isso que grande post aqui é rotulado como incompleta, uma vez que detalha as etapas necessárias para configurar um script de gancho para informar FogBugz sobre as novas revisões relacionados com os casos, o que deve ser o que o incompleta mensagem diz que não faz . É que não está funcionando?

Respondeu 08/08/2008 em 12:34
fonte usuário

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