문제

TotroiseSVN이 설치되어 있고 대부분의 저장소가 C:\subversion\에서 체크인 및 체크아웃됩니다. 그리고 네트워크 공유에서 체크인 및 체크아웃하는 커플(처음에 이 질문을 게시했을 때 이 사실을 잊어버렸습니다).

이는 "전복" 서버 자체가 없다는 것을 의미합니다.

TortoiseSVN과 Fogbugz를 어떻게 통합하나요?

편집하다:이탤릭체 삽입

도움이 되었습니까?

해결책

나는 이 문제를 조사해 왔으며 작동하도록 관리했습니다.몇 가지 사소한 문제가 있지만 해결할 수 있습니다.

이 문제에는 다음과 같이 세 가지 부분이 있습니다.

  1. TortoiseSVN 부분 - TortoiseSVN이 svn 로그에 Bugid 및 하이퍼링크를 삽입하도록 가져오기

  2. FogBugz 부분 - FogBugz가 SVN 정보와 해당 링크를 삽입하도록 하기

  3. WebSVN 부분 - FogBugz의 링크가 실제로 작동하는지 확인

파트 1에 대한 지침은 실제로 필요한 것보다 더 많은 작업을 수행하지만 다른 답변에 있습니다.후크에 관한 내용은 실제로 파트 2에 대한 것이며, 지적한 대로 "즉시" 작동하지 않습니다.

확인을 위해 TortoiseSVN을 사용하려고 합니다. 없이 SVN 서버(예:파일 기반 저장소)

UNC 경로를 사용하여 저장소에 액세스하고 있지만 로컬 드라이브나 매핑된 드라이브에서도 작동합니다.

이 모든 기능은 TortoiseSVN v1.5.3 및 SVN Server v1.5.2에서 작동합니다. (2부에서는 SVN Server를 설치해야 합니다. svnlook.exe 이는 서버 패키지에 있습니다.실제로 SVN 서버로 작동하도록 구성하지 않았습니다.) 그냥 복사하는 것도 가능할 수도 있습니다 svnlook.exe 다른 컴퓨터에서 가져와 경로 어딘가에 넣으세요.

1부 - TortoiseSVN

SVN 로그에서 링크를 가져오는 데 필요한 것은 TortoiseSVN 속성을 만드는 것뿐입니다.

이전 지침은 잘 작동합니다. 편의를 위해 여기에 인용하겠습니다.

속성 구성

  1. 작업하려는 체크아웃된 프로젝트의 루트 디렉터리를 마우스 오른쪽 버튼으로 클릭합니다.

  2. "TortoiseSVN -> 속성"을 선택합니다.

  3. "새로 만들기..."를 클릭하고 "속성 이름"과 "속성 값"에 각각 다음을 삽입하여 5개의 속성 값 쌍을 추가합니다.(각 항목에 대해 "재귀적으로 속성 적용"을 선택했는지 확인하세요)

    bugtraq:label    BugzID:
    bugtraq:message  BugzID: %BUGID%
    bugtraq:number   true
    bugtraq:url      http://[your fogbugz URL here]/default.asp?%BUGID%
    bugtraq:warnifnoissue   false
    
  4. "확인"을 클릭하세요

Jeff가 말했듯이 각 작업 복사본에 대해 이 작업을 수행해야 하므로 속성 마이그레이션에 대한 지침을 따르십시오.

그게 다야.이제 TortoiseSVN은 커밋할 때 해당 FogBugz bugID에 대한 링크를 추가합니다.그게 전부라면 여기서 멈춰도 됩니다.

2부 - FogBugz

이것이 작동하려면 후크 스크립트를 설정해야 합니다.기본적으로 배치 파일은 각 커밋 후에 호출되며 이는 차례로 FogBugz에 제출하는 VBS 스크립트를 호출합니다.VBS 스크립트는 실제로 이 상황에서 잘 작동하므로 수정할 필요가 없습니다.

문제는 배치 파일이 다음과 같이 작동하도록 작성되었다는 것입니다. 섬기는 사람 후크가 필요하지만 고객 훅.

SVN 서버는 다음 매개변수를 사용하여 커밋 후 후크를 호출합니다.

<repository-path> <revision>

TortoiseSVN은 다음 매개변수를 사용하여 커밋 후 후크를 호출합니다.

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

이것이 작동하지 않는 이유입니다. 매개 변수가 잘못되었습니다.VBS 스크립트에 올바른 매개변수를 전달하도록 배치 파일을 수정해야 합니다.

TSVN은 문제가 되는 저장소 경로를 전달하지 않지만 다음과 같은 상황에서는 작동합니다.

  • 저장소 이름과 작업 복사본 이름이 동일합니다.
  • 하위 폴더가 아닌 작업 복사본의 루트에서 커밋을 수행합니다.

이 문제를 해결할 수 있는지 알아보고 해결되면 여기에 다시 게시하겠습니다.

작동하는 수정된 배치 파일은 다음과 같습니다(과도한 설명을 양해해 주시기 바랍니다...).

설정과 일치하도록 후크 및 저장소 디렉터리를 설정해야 합니다.

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

저장소가 다음 위치에 있다고 가정하겠습니다. \\myserver\svn\ 작업 복사본은 모두 `C:\Projects\에 있습니다.

  1. FogBugz 계정으로 이동하여 Extras -> Source Control Integration 구성을 클릭합니다.

  2. Subversion용 VBScript 파일을 다운로드합니다(배치 파일은 신경쓰지 마세요).

  3. 후크 스크립트를 저장할 폴더를 만듭니다.내 저장소와 같은 폴더에 넣었습니다.예. \\myserver\svn\hooks\

  4. 제거하려면 VBscript의 이름을 바꿉니다. .safe 파일 이름 끝에.

  5. 내 버전의 배치 파일을 다음과 같이 후크 디렉토리에 저장하십시오. post-commit-tsvn.bat

  6. 임의의 디렉토리를 마우스 오른쪽 버튼으로 클릭하십시오.

  7. "TortoiseSVN > 설정"을 선택합니다(마지막 단계의 마우스 오른쪽 버튼 클릭 메뉴에서).

  8. "후크 스크립트"를 선택하세요

  9. "추가"를 클릭하고 다음과 같이 속성을 설정합니다.

    • 후크 유형:커밋 후 후크

    • 작업 사본 경로: C:\Projects (또는 모든 프로젝트의 루트 디렉터리가 무엇이든 상관없습니다.)

    • 실행할 명령줄: \\myserver\svn\hooks\post-commit-tsvn.bat (이것은 3단계에서 후크 디렉토리를 어디에 두었는지 가리켜야 합니다)

    • "스크립트가 완료될 때까지 대기"를 선택합니다.

  10. 확인을 두 번 클릭합니다.

다음에 Bugid를 커밋하고 입력하면 FogBugz에 제출됩니다.링크는 작동하지 않지만 최소한 개정 정보는 있으므로 TortoiseSVN에서 로그를 수동으로 조회할 수 있습니다.

메모:저장소 루트가 배치 파일에 하드 코딩되어 있음을 알 수 있습니다.결과적으로 동일한 루트가 없는 저장소에서 체크아웃하는 경우(예:하나는 로컬 드라이브에 하나는 네트워크에 있음) TSVN 설정의 후크 스크립트 아래에 배치 파일 2개와 해당 항목 2개를 사용해야 합니다.이를 수행하는 방법은 2개의 별도 작업 복사본 트리(각 저장소 루트마다 하나씩)를 갖는 것입니다.

3부 - WebSVN

에, 저는 이것을 하지 않았습니다 :-)

WebSVN 문서를 읽어보면 WebSVN은 실제로 SVN 서버와 통합되지 않고 다른 SVN 클라이언트처럼 동작하지만 웹 인터페이스를 제공하는 것으로 보입니다.이론적으로는 파일 기반 저장소에서 잘 작동할 것입니다.나는 그것을 시도하지 않았습니다.

다른 팁

이 답변은 불완전하고 결함이 있습니다!TortoisSVN에서 Fogbugz로만 작동하지만 그 반대는 작동하지 않습니다.버그를 보면서 Fogbugz에서 버그가 해결된 개정 번호를 볼 수 있도록 Fogbugz에서 거꾸로 작동하도록 하는 방법(설계된 대로)을 여전히 알아야 합니다.


유용한 URL

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

http://tortoisesvn.net/issuetracker_integration


"후크" 설정

  1. Fogbugz 계정으로 이동하여 Extras > Source Control Integration 구성을 클릭하십시오.

  2. Subversion용 "post-commit.bat" 및 VBScript 파일을 다운로드하세요.

  3. 일반적으로 쉽게 액세스할 수 있는 위치에 "후크" 디렉터리를 만듭니다(파일 경로에 공백이 없는 것이 좋음).

  4. 후크 디렉터리에 파일 복사본을 저장합니다.

  5. ".safe" 확장자 없이 파일 이름을 바꿉니다.

  6. 임의의 디렉토리를 마우스 오른쪽 버튼으로 클릭하십시오.

  7. "TortoiseSVN > 설정"을 선택합니다(마지막 단계의 마우스 오른쪽 버튼 클릭 메뉴에서).

  8. "후크 스크립트"를 선택하세요

  1. "추가"를 클릭하세요

  2. 다음과 같이 속성을 설정합니다.

    • 후크 유형:커밋 후 후크

    • 작업 사본 경로:C:\\Projects(또는 모든 프로젝트의 루트 디렉터리가 무엇이든 상관없습니다.여러 개 있는 경우 각각에 대해 이 단계를 수행해야 합니다.)

    • 실행할 명령줄:C:\\subversion\\hooks\\post-commit.bat (이것은 3단계의 후크 디렉터리를 저장한 위치를 가리켜야 합니다)

    • 또한 스크립트가 완료될 때까지 대기 확인란을 선택했습니다.

경고:이중 백슬래시를 잊지 마세요!"\\"

확인을 클릭하세요...

Adding a Hook Script

메모:스크린샷이 다릅니다. 스크린샷이 아닌 파일 경로에 대한 텍스트를 따르세요...

이 시점에서 "Issue Tracker Integration"을 클릭하고 Fogbugz를 선택할 수 있을 것 같습니다.아니요."이용 가능한 이슈 추적기 제공업체가 없습니다."라는 메시지만 반환됩니다.

  1. 전체 설정 대화 창을 닫으려면 "확인"을 클릭하십시오.

속성 구성

  1. 다시 한 번, 작업하려는 체크 아웃 프로젝트의 루트 디렉토리를 마우스 오른쪽 버튼으로 클릭하십시오 (각 프로젝트에 대한 "속성 구성"단계를 수행해야합니다. "아래 프로젝트간에 속성 마이그레이션"을 참조하십시오).

  2. "TortoisesVn> Properties"를 선택하십시오 (마지막 단계에서 오른쪽 클릭 메뉴에서)

  3. "새 ..."를 클릭하고 "속성 이름"및 "속성 값"에 각각 다음을 삽입하여 5 개의 속성 값 쌍을 추가하십시오.

bugtraq:레이블 BugzID:
bugtraq:메시지 BugzID:%%버그 발생%%

bugtraq:숫자 true

버그트랙:url http://[당신의 FOGBUGZ URL 여기] /default.asp?%Bugid%

bugtraq:warnifnoissue false

properties window adding new property

  1. "확인"을 클릭하세요

변경 사항 커밋 및 로그 보기

이제 커밋할 때 커밋이 해결하는 버그 하나를 지정할 수 있습니다.이런 종류의 경우 각 버그를 수정한 후 커밋을 수행해야 합니다.

specifying bug addressed when commiting

로그를 보면(프로젝트 루트를 마우스 오른쪽 버튼으로 클릭하고 TortoiseSVN > 로그 표시) 각 검사가 (1)에 해당하는 버그 ID를 볼 수 있으며, Fogbugz로 이동될 버그 ID 번호를 클릭하면 해당 버그를 자동으로 볼 수 있습니다. 실제 로그 메시지를 보고 있다면.꽤 멋지다!


프로젝트 간 속성 마이그레이션

  1. 이미 적절한 속성 구성이 있는 프로젝트를 마우스 오른쪽 버튼으로 클릭하세요.

  2. "TortoiseSVN > Properties"를 선택합니다(1단계의 마우스 오른쪽 버튼 클릭 메뉴에서).

  3. 원하는 속성을 모두 강조 표시합니다.

  4. "내보내기"를 클릭하세요

  5. 속성에 따라 파일 이름을 지정하고 쉽게 액세스할 수 있는 디렉터리에 배치합니다(나는 Hooks 파일과 함께 배치했습니다).

save properties dialogue

  1. 속성 설정이 필요한 체크아웃된 프로젝트의 루트 디렉터리를 마우스 오른쪽 버튼으로 클릭합니다.

  2. "가져오기"를 클릭하세요.

  3. 위의 4단계에서 내보낸 파일을 선택하세요.

  4. 열기를 클릭하세요

단순히 Subversion 서버를 설치할 수 없는 이유는 무엇입니까?다운로드하면 VisualSVN 서버, 무료이며 소스 코드에 대한 http 서버를 얻을 수 있으므로 두 가지를 통합하기 위해 FogBugz 스크립트를 사용할 수 있습니다.

내가 묻는 이유는 지금까지의 모든 스크립트와 문서에서는 서버가 있다고 가정하고 클라이언트 측 스크립트는 FogBugz가 템플릿을 갖기에는 너무 새롭기 때문에 사용자는 자신의 장치에 거의 맡겨져 있기 때문입니다.

문제는 FogBugz가 웹페이지로 연결되는데 file:///etc가 웹페이지가 아니라는 것입니다.두 가지 방법으로 통합하려면 Subversion 저장소용 웹 서버가 필요합니다.Apache를 설정하거나 이러한 것들을 적절한 방식으로 호스팅할 수 있는 다른 것을 설정하십시오.

내가 당신을 따르고 있는지 잘 모르겠습니다.네트워크나 C:\ 드라이브에 리포지토리가 있습니까?귀하의 게시물 중 두 개에 따르면 둘 다 있거나 둘 다 없거나 둘 중 하나이거나...

VisualSVN 또는 Apache가 네트워크 공유에서 리포지토리를 안전하게 제공하도록 할 수 없습니다.원래 C:\ 드라이브에 리포지토리가 있다고 말했으므로 이에 대한 조언을 얻으십시오.다른 설정이 있는 경우 이에 대해 알려주셔야 합니다.

로컬 하드디스크에 저장소가 있다면 VisualSVN을 설치하거나 Apache에 통합하겠습니다.VisualSVN은 Apache와 함께 잘 실행될 수 있으므로 해당 경로로 가면 설치만 하면 됩니다.기존 리포지토리를 VisualSVN의 리포지토리 루트 디렉터리에 복사하면 바로 실행할 수 있습니다.

여기 있는 큰 게시물이 왜 불완전한 것으로 표시되었는지 잘 모르겠습니다. 이는 FogBugz에게 사례에 연결된 새 개정판을 알리기 위해 후크 스크립트를 설정하는 데 필요한 단계를 자세히 설명하기 때문입니다. 불완전한 메시지에는 그렇지 않다고 나와 있습니다.작동하지 않나요?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top