새로운 Work Item Type을 정의해서 시스템에 적용할 필요가 있었다 (ex> 제품요구사항)

먼저 TFS에 이미 정의된 WIT 템플릿을 다운받아 원하는 형태로 WIT를 만들 수 있다

그리고 운영중인 팀 프로젝트에서 Process Template 을 수정해야 할 경우 "도구>Process Editor" 를 통해서 Work Item Type을 수정할 수 있는데

Work Item Type 을 수정하면서 work flow 에 state 를 추가하거나 변경해야 하는데 단순히 work item type 만 수정해서는 반영이 되지 않고 오류가 발생하는 문제가 있었다.

구글링에 수소문(?) 끝에 Visual Studio 의 설치 경로에서 witadmin 으로 xml 을 export 하여 수정후 import 를 하여 문제를 해결 할 수 있었다.

witadmin.exe 파일의 경로는 

* 2015 -> %programfiles(x86)%\Microsoft Visual Studio XX.0\Common7\IDE

* 2017 -> %programfiles(x86)%\Microsoft Visual Studio\2017\[Professional] or [Enterprise]\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer

 

1. 기존의 workitemtype 을 export 하여 수정후 import 하려는 경우 (수정된 wit는 import시 새로운 workitemtype으로 추가된다)

    witadmin exportwitd /collection:http://[도메인명]:8080/tfs/[컬렉션명] /p:[프로젝트명] /f:"C:\RequestProduct.xml" /n:[workitemtype이름]

    witadmin importwitd /collection:http://[도메인명]:8080/tfs/[컬렉션명] /p:[프로젝트명] /f:"C:\RequestProduct.xml"

    - export시엔 수정에 용이한 기존 템플릿을 선택한다 (ex> SCRUM의 요구사항 단위는 workitemtype이름이 "제품 백로그 항목"이다)

    - 제품요구사항이라는 새로운 WIT 로 XML 을 수정하여 import 하면 사용자WIT가 시스템에 적용된다

    - 템플릿에서의 위치 : Agile/WorkItem Tracking/TypeDefinitions/RequestProduct.xml

    - TF26177등 기타 오류로 import 실패시 deletewitd 명령어로 기존 wit를 지우고 import 한다

      ( witadmin destroywitd /collection:http://[도메인명]:8080/tfs/[컬렉션명] /p:[프로젝트명] /n:[workitemtype이름] )

    - 만일 TF26177오류이지만 기존 필드의 속성값(name 또는 type)만 변경하는 것이라면 changefiled 명령을 사용한다

      ( witadmin changefield /collection:http://[도메인명]:8080/tfs/[컬렉션명] /n:[필드참조명] /[새로설정할 속성 및 값:help참고] )

 

2. Categories 를 export 하여 수정후 import 하려는 경우

    witadmin exportcategories /collection:http://[도메인명]:8080/tfs/[컬렉션명] /p:[프로젝트명] /f:"C:\Categories.xml"

    witadmin importcategories /collection:http://[도메인명]:8080/tfs/[컬렉션명] /p:[프로젝트명] /f:"C:\Categories.xml"

    - 칸반에 새로운 wit 를 출력하고 기본 work item 으로 지정

    - 템플릿에서의 위치 : Agile/WorkItem Tracking/Categories.xml

 

3. ProcessConfiguration 을 export 하여 수정후 import 하려는 경우

    witadmin exportprocessconfig /collection:http://[도메인명]:8080/tfs/[컬렉션명] /p:[프로젝트명] /f:"C:\ProcessConfiguration.xml"

    witadmin importprocessconfig /collection:http://[도메인명]:8080/tfs/[컬렉션명] /p:[프로젝트명] /f:"C:\ProcessConfiguration.xml"

    - Process 에서 State 추가 및 수정

    - 템플릿에서의 위치 : Agile/WorkItem Tracking/Process/ProcessConfiguration.xml

 

 

 

- export, import 의 순서는 1->2->3 이다

- export, import 샘플

    > witadmin exportwitd /collection:http://~ /p:Miplatform /f:"C:\RequestProduct.xml" /n:"제품 백로그 항목"

    > witadmin exportcategories /collection:http://~ /p:Miplatform /f:"C:\Categories.xml"

    > witadmin exportprocessconfig /collection:http://~ /p:Miplatform /f:"C:\ProcessConfiguration.xml"

    > witadmin importwitd /collection:http://~ /p:WORKServer /f:"C:\RequestProduct.xml"

    > witadmin importwitd /collection:http://~ /p:WORKServer /f:"C:\Work.xml"

    > witadmin importcategories /collection:http://~ /p:WORKServer /f:"C:\Categories.xml"

    > witadmin importprocessconfig /collection:http://~ /p:WORKServer /f:"C:\ProcessConfiguration.xml"