A integração Fogbugz com o TortoiseSVN com nenhuma URL/Subversão de back-end
-
08-06-2019 - |
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
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:
O TortoiseSVN parte - chegando o TortoiseSVN para inserir o Bugid e hiperlink no svn log
O FogBugz parte - ficar FogBugz para inserir o SVN info e links correspondentes
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
Clique direito sobre o diretório raiz do check-out do projeto que você deseja trabalhar com.
Selecione "TortoiseSVN -> Propriedades"
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
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\
Ir para o FogBugz conta e clique em Extras -> Configurar Integração de Controle de Origem
Transfira o ficheiro de VBScript para Subversion (não se preocupe com o arquivo de lote)
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\
Mudar o nome de VBscript para remover o
.safe
no final do nome do arquivo.Salvar a minha versão do arquivo em lotes em seus ganchos de diretório, como
post-commit-tsvn.bat
Clique direito em qualquer diretório.
Selecione "TortoiseSVN > Definições" (no menu do botão direito do último passo)
Selecione "Scripts De Gancho"
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"
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"
Ir para o fogbugz conta e clique em Extras > Configurar Integração de Controle de Origem
Download "post-commit.bat" e o ficheiro de VBScript para o Subversion
Criar um "ganchos" de diretório em uma localização de fácil acesso (de preferência sem espaços no caminho do arquivo)
Coloque uma cópia dos arquivos em ganchos de diretórios
Mude o nome os ficheiros sem a ".seguro de extensão"
Clique direito em qualquer diretório.
Selecione "TortoiseSVN > Definições" (no menu do botão direito do último passo)
Selecione "Scripts De Gancho"
Clique Em "Adicionar"
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...
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".
- Clique em "OK" para fechar a toda a janela de configurações
Configurar as Propriedades
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)
Selecione "TortoiseSVN > Propriedades" (no menu do botão direito a partir da última etapa)
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
- 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...
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
Clique direito em um projeto que já tem a devida configuração de Propriedades
Selecione "TortoiseSVN > Propriedades" (a partir do menu do botão direito do passo 1)
Realçar todas as propriedades desejadas
Clique Em "Exportar".
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)
Clique direito sobre o diretório raiz do check-out do projeto que necessitam de propriedades definidas para.
Clique Em "Importar"
Selecione o arquivo que você exportou na etapa 4 acima
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?