Pergunta

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

Isso significa que eu não tenho uma "subversão" do servidor, por si só.

Como faço para integrar o TortoiseSVN e Fogbugz?

Editar:inserido itálico

Foi útil?

Solução

Eu estive a investigar este problema e conseguiu fazê-lo funcionar.Há um par de pequenos problemas, mas eles podem ser trabalhadas-volta.

Existem 3 partes distintas para este problema, como segue:

  1. O TortoiseSVN parte - chegando o TortoiseSVN para inserir o Bugid e hiperlink no svn log

  2. O FogBugz parte - ficar FogBugz para inserir o SVN info e links correspondentes

  3. O WebSVN parte - assegurar as ligações do FogBugz, na verdade, o trabalho

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

Só para confirmar, estamos olhando usando o TortoiseSVN SEM um servidor SVN (ie.com base em arquivo de repositórios)

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

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

Parte 1 - O TortoiseSVN

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

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

Configurar as Propriedades

  1. Clique direito sobre o diretório raiz do check-out do projeto que você deseja trabalhar com.

  2. Selecione "TortoiseSVN -> Propriedades"

  3. Adicionar cinco de valor de propriedade de pares clicando em "Novo..." e inserir o seguinte no "Nome da Propriedade" e de "Valor de Propriedade", respectivamente:(certifique-se de marcar "Aplicar a 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 em "OK"

Como Jeff diz, você vai precisar fazer isso para cada cópia de trabalho, então siga as suas instruções para a migração das propriedades.

É isso.O TortoiseSVN irá adicionar um link para a correspondente FogBugz bugID quando você confirmar.Se o que você deseja, você pode parar aqui.

Parte 2 - FogBugz

Para este trabalho precisamos configurar o script de gancho.Basicamente, o arquivo em lotes é chamado após cada confirmação, e este por sua vez chama o script VBS que faz o envio para FogBugz.O script VBS, na verdade, funciona bem nesta situação, então nós não precisamos de o modificar.

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

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

<repository-path> <revision>

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

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

Então é por isso que não funciona, os parâmetros estão errados.Precisamos alterar o arquivo em lotes portanto, passa os parâmetros corretos para o script VBS.

Você vai notar que TSVN não passa o caminho de repositório, o que é um problema, mas ele não funciona nas seguintes circunstâncias:

  • O nome do repositório e cópia de trabalho de nome são as mesmas
  • Você faz o commit na raiz da cópia de trabalho, não uma subpasta.

Eu vou ver se eu posso corrigir esse problema e irá postar aqui, se eu fazer.

Aqui está o meu alterada arquivo em lotes que não funciona (por favor, desculpe o excesso de comentários...)

Você precisará definir o gancho e repositório de diretórios 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 vou assumir os repositórios estão em \\myserver\svn\ e cópias de trabalho são todas `C:\Projects\

  1. Ir para o FogBugz conta e clique em Extras -> Configurar Integração de Controle de Origem

  2. Transfira o ficheiro de VBScript para Subversion (não se preocupe com o arquivo de lote)

  3. Criar uma pasta para armazenar os scripts de gancho.Eu colocá-lo na mesma pasta como o meu repositórios.por exemplo. \\myserver\svn\hooks\

  4. Mudar o nome de VBscript para remover o .safe no final do nome do arquivo.

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

  6. Clique direito em qualquer diretório.

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

  8. Selecione "Scripts De Gancho"

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

    • Gancho Tipo:Post-Commit Gancho

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

    • Linha De Comando Para Executar: \\myserver\svn\hooks\post-commit-tsvn.bat (este precisa apontar para onde você colocar o seu ganchos diretório no passo 3)

    • Tick "Esperar para que o script terminar"

  10. Clique em OK duas vezes.

Da próxima vez que você confirmar e entrar em um Bugid, ele será submetido a FogBugz.Os links não funcionam, mas pelo menos a revisão de informações está lá e você pode procurar manualmente o registo do TortoiseSVN.

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

Parte 3 - WebSVN

Errr, eu ainda não o fez :-)

Da leitura do WebSVN docs, parece que WebSVN, na verdade, não se integrar com o SVN server, ele apenas se comporta como qualquer outro cliente SVN, mas apresenta uma interface web.Em teoria, em seguida, ele deve funcionar bem com um arquivo baseado no repositório.Eu não tentei ainda.

Outras dicas

Esta resposta é incompleta e imperfeita!Ele só funciona a partir de TortoisSVN para Fogbugz, mas não a outra maneira ao redor.Eu ainda preciso saber como fazê-lo funcionar para trás a partir do Fogbugz (como ele é projetado para) para que eu possa ver o número de Revisão de um erro é abordada a partir de Fogbugz enquanto olha para um bug.


URLS útil

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

http://tortoisesvn.net/issuetracker_integration


Definir os "Ganchos"

  1. Ir para o fogbugz conta e clique em Extras > Configurar Integração de Controle de Origem

  2. Download "post-commit.bat" e o ficheiro de VBScript para o Subversion

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

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

  5. Mude o nome os ficheiros sem a ".seguro de extensão"

  6. Clique direito em qualquer diretório.

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

  8. Selecione "Scripts De Gancho"

  1. Clique Em "Adicionar"

  2. Defina as propriedades assim:

    • Gancho Tipo:Post-Commit Gancho

    • Caminho Da Cópia De Trabalho:C:\\Projects (ou qualquer que seja o seu diretório raiz para todos os seus projectos.Se você tem vários que você precisará fazer este passo para cada um).

    • Linha De Comando Para Executar:C:\\subversion\\hooks\\post-commit.bat (este precisa apontar para onde você colocar o seu ganchos de diretório a partir do passo 3)

    • Eu também selecionou a caixa de verificação de Esperar para que o script terminar...

AVISO:Não se esqueça de dupla barra de volta!"\\"

Clique em OK...

Adding a Hook Script

Nota:a imagem é diferente, seguir o texto para os caminhos de arquivo, e NÃO a imagem...

Neste ponto, parece que você pode clicar em "Rastreador de problemas de Integração" e selecione Fogbugz.não.Ele retorna apenas "não Há nenhum problema-tracker provedores disponíveis".

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

Configurar as Propriedades

  1. Mais uma vez, clique com o Direito sobre o diretório raiz do check-out projeto que você deseja trabalhar (você precisa para fazer isso "configurar as propriedades" passo para cada projeto, Consulte "Migração de Propriedades Entre Projetos" abaixo)

  2. Selecione "TortoiseSVN > Propriedades" (no menu do botão direito a partir da última etapa)

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

bugtraq:rótulo BugzID:
bugtraq:mensagem de BugzID:%%BUGID%%

bugtraq:número verdadeiro

bugtraq:url http://[seu fogbugz URL aqui]/padrão.asp?%BUGID%

bugtraq:warnifnoissue falso

properties window adding new property

  1. Clique em "OK"

Cometer Alterações e Visualizando os Logs

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

specifying bug addressed when commiting

Quando você exibir o log (botão Direito do mouse raiz do projeto, o TortoiseSVN > mostrar log) você pode ver o erro de identificação que cada verificar corresponde a (1), e você pode clicar o bug número de identificação a ser levado para o fogbugz para ver que bicho automaticamente se você está olhando para a real mensagem de log.Muito bacana!


A Migração De Propriedades Entre Projetos

  1. Clique direito em um projeto que já tem a devida configuração de Propriedades

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

  3. Realçar todas as propriedades desejadas

  4. Clique Em "Exportar".

  5. O nome do arquivo depois a propriedade, e coloque-o em um diretório acessível (eu coloquei o meu com os ganchos de arquivos)

save properties dialogue

  1. Clique direito sobre o diretório raiz do check-out do projeto que necessitam de propriedades definidas para.

  2. Clique Em "Importar"

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

  4. Clique Em Abrir

Por que você não pode simplesmente instalar um servidor subversion?Se você download VisualSVN Server, que é gratuita, você terá um servidor http para seu código-fonte e, portanto, podem usar o FogBugz scripts para integrar os dois.

A razão que eu estou perguntando é porque todos os scripts e documentação para longe pressupõe que você tenha o servidor, scripts do lado do cliente são demasiado novos para FogBugz para ter modelos para eles, então você está muito à esquerda para seus próprios dispositivos.

O problema é que FogBugz vai o link para uma página da web, e file:///etc não é uma página da web.Para obter a integração de duas maneiras, você precisa de um servidor web para o seu repositório subversion.Configurar o Apache ou de qualquer outra coisa que pode hospedar as coisas da maneira adequada.

Eu não tenho certeza eu segui-lo.Você tem os repositórios na rede ou na sua unidade C:\?De acordo com dois dos seus posts, você tem ambos, ou nenhum, ou de um deles ou...

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

Se você tem os repositórios no seu disco rígido local, gostaria de instalar o VisualSVN, ou integrá-lo no Apache.VisualSVN pode funcionar bem junto com o Apache por isso, se você ir por esse caminho, você só tem que instalá-lo.Seus repositórios existentes também podem ser copiados para o diretório raiz do repositório do VisualSVN e você está pronto e funcionando.

Eu não tenho certeza por que grande post aqui é rotulado como "incompleto", como ele detalha as etapas necessárias para configurar um script de gancho para informar o FogBugz sobre as novas revisões vinculada aos casos, que deve ser o que o incompleto mensagem diz que não fazer.É que não está funcionando?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top