태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

VS 2013 ALM/TFS 20132014.11.20 17:47

[프로페셔널 TFS 간단정리] 2장. 배포 계획(1) - TFS 제한사항

이 장에서는 Team Foundation Server와 관련된 제한사항에 대해 알아본다.

 

1. 팀 프로젝트 이름 변경

팀 프로젝트를 생성한 이후에는 이름을 변경할 수 없다. 그러나 팀 프로젝트 컬렉션은 이름을 변경할 수 있다.

 

2. 작업 항목 이동

다른 팀 프로젝트로 작업 항목을 이동시킬 수 없다. 대신 작업 항목을 복사해야만 한다. 작업 항목을 복사하면 동일한 필드의 값들은 그대로 복사가 된다. 단, 상황(state)는 복사가 되지 않는다.

 

3. Office Excel, Project, Project Server에서 여러 팀 프로젝트의 작업 항목 관리

Microsoft Office Excel과 Project에서는 여러 팀 프로젝트의 작업 항목을 조회, 편집, 추가할 수 없다.

TFS와 Project Server는 양방향 동기화를 할 수 있는데, Project Server의 엔터프라이즈 프로젝트 계획은 오직 하나의 팀 프로젝트에만 매핑되지만, 하나의 팀 프로젝트에는 여러 개의 엔터프라이즈 프로젝트 계획이 매핑될 수 있다.

 

4. 팀 및 용량 계획 관리

Team Web Access의 용량 계획 도구는 오직 같은 팀 프로젝트 내의 작업에 대해서만 계획을 세울 수 있다.

 

5. 여러 팀 프로젝트의 분기에 걸쳐있는 병합된 변경 내용 추적

팀 프로젝트 경계에 걸쳐있는 분기에 대해서는 분기 시각화 및 병합된 변경 내용 추적 시각화 기능을 사용할 수 없다.

 

6. 팀 프로젝트 컬렉션 간 팀 프로젝트 이동

팀 프로젝트를 다른 팀 프로젝트 컬렉션으로 이동시킬 수 없다. 이를 해결할 수 있는 한 가지 방법은 팀 프로젝트 컬렉션을 분할하는 것이다. 즉, 팀 프로젝트 컬렉션 복사본을 만든 다음, 각 팀 프로젝트 컬렉션에서 필요하지 않은 팀 프로젝트 제거하는 방식이다.

 

7. 팀 프로젝트 컬렉션으로 범위가 제한된 아티팩트

하나의 팀 프로젝트 컬렉션 안에 포함된 모든 아티펙트는 다른 팀 프로젝트 컬랙션과 격리된다. 따라서 다른 팀 프로젝트 컬렉션에 있는 파일, 변경 집합, 작업 항목, 빌드 등과 연결할 수 없다.

팀 프로젝트 컬렉션에 걸친 분기 및 병합은 불가능하다.

테스트 컨트롤러와 에이전트 뿐만 아니라 빌드 컨트롤러와 에이전트는 오직 하나의 팀 프로젝트 컬렉션으로 범위가 제한된다.

여러 팀 프로젝트 컬렉션의 팀 프로젝트들에서 작업 항목을 가져오기 위한 작업 항목 쿼리를 만들 수 없다. 단, 보고서 웨어하우스는 모든 팀 프로젝트 컬렉션과 팀 프로젝트에 저장된 아티팩트의 정보를 포함하고 있기 때문에 이 모든 정보를 보여주는 사용자 지정 보고서를 만들 수 있다.

 

8. 팀 프로젝트 컬렉션 및 팀 프로젝트 개수

TFS가 설치된 서버의 하드웨어 사양에 따라 수천 개의 팀 프로젝트 컬렉션을 지원할 수도 있다. 이 제한사항은 SQL Server가 설치된 서버의 하드웨어와 더 많은 관계가 있다. 일반적으로 하나의 SQL Server 인스턴스는 30~100개 사이의 활성화된(팀에서 매일 접근하는) 팀 프로젝트 컬렉션을 지원할 수 있다. 이 범위는 SQL에서 사용할 수 있는 물리적인 메모리와 관계가 있다.

팀 프로젝트 컬렉션에 포함할 수 있는 팀 프로젝트는 프로세스 템플릿에 정의된 작업 항목 형식의 복잡도에 따라 제한된다. TFS의 표준 프로세스 템플릿(예, MSF for Agile Software Development v6.0)을 기준으로 했을 때 500개 이상의 팀 프로젝트를 지원한다.

 

감사합니다.

webmars.

 

Posted by webmars
VS 2013 ALM/TFS 20132014.11.20 17:17

[프로페셔널 TFS 간단정리] 2장. 배포 계획(1) - TFS 특징 및 도입 시 고려사항

이 장에서는 TFS를 도입할 때 고려해야 할 TFS의 특장점과 도입 단계에 대해 설명한다.

 

Team Foundation Server(이하 TFS)는 소프트웨어 개발팀을 위해 통합된 형태로 협업 기능을 제공하는 제품이다. TFS에서 제공하는 협업 기능은 다음과 같다.

  • 프로젝트 관리
  • 작업 항목 추적
  • 버전 제어
  • 테스트 사례 관리
  • 빌드 자동화
  • 보고서
  • 가상 환경 및 랩(Lab) 관리
  • 피드백 관리

 

1. TFS 특장점

1.1. 릴리즈 및 프로젝트 투명성

소프트웨어 개발 수명 주기의 시작부터 끝까지의 다양한 결과물(소스 코드, 요구사항, 빌드, 테스트, 문서 등)을 모두 저장하며, 결과물 간의 관계를 처음부터 마지막까지 보여준다.

 

1.2. 여러 팀 및 역할 간의 협업

TFS에 저장된 소프트웨어 프로세스의 다양한 결과물에 대한 정보와 변경 이력을 손쉽게 확인할 수 있기 때문에 원활한 협업이 가능하다.

 

1.3. 컴파일, 테스트, 패키지, 배포 자동화

빌드 자동화 기능을 통해 빌드 프로세스의 복잡도를 낮출 수 있으며, 빌드 절차를 주기적으로 또는 개발자가 적용한 변경사항에 의해 반복적으로 수행되도록 전환할 수 있다.

 

1.4. 테스트 계획 관리

테스트 사례를 관리할 수 있으며, 릴리즈 주기 동안 테스트 수행 과정을 관리할 수도 있다.

 

1.5. 병렬 개발

이전 릴리즈 버전, 현재 릴리즈 버전, 차기 릴리즈 버전 등 여러 개의 버전을 관리하고, 각각의 버전에 수정된 코드를 통합하는데 필요한 시간과 오류를 줄일 수 있는 분기 및 병합 도구를 제공한다. 이 도구를 통해 언제 어떻게 코드가 변경되었는지 알 수 있으며, 어떤 분기에 변경사항이 통합되었는지도 쉽게 알 수 있다.

 

2. 도입 시 고려사항

2.1. 단계적 도입

팀의 역량 및 내부 상황을 고려하여 여러 단계에 걸쳐서 TFS의 각 부분별로 도입하는 것이 가장 효과적이다. TFS 부분별 도입 단계는 일반적으로 다음과 같다. 그러나 반드시 이 단계를 따라야 하는 것은 아니며, 팀의 핵심 문제를 해결하는데 가장 필요한 기능부터 도입하는 것이 중요하다.

  • 1단계: 버전 제어
  • 2단계: 작업 항목 추적
  • 3단계: 빌드 자동화
  • 4단계: 테스트 사례 관리
  • 5단계: 보고서
  • 6단계: 가상 환경 및 랩(Lab) 관리

 

2.2. TFS 설치 서버

소프트웨어 개발을 위주로 하는 조직에서는 버전 제어 저장소가 작업을 완료하는데 아주 중요하다. 따라서 TFS는 조직의 다른 중요 업부 응용프로그램과 같은 수준으로 취급되어야 한다.

TFS는 한 대의 서버 또는 다중 서버에 호스트될 수 있다. 각 서버는 물리적 메모리, 디스크, CPU 등 충분한 자원을 가져야 한다.

만약 업그레이드, 구성 변경, 교육 등을 진행할 경우에는 테스트 용 TFS를 사용해야 한다.

 

2.3. TFS 관리자

TFS 환경을 구성하고 상태를 책임질 인원을 식별해야 한다. 일반적으로 TFS 관리 업무는 회사 내의 타 업무와 병행하여 수행하도록 하며, 여의치 않을 경우 외부 전문 회사에 TFS 관리 서비스를 의뢰하기도 한다.

 

2.4. 파일럿 프로젝트

TFS를 새로 도입하거나 커스터마이징을 해야 할 부분을 찾아내고자 할 때는 미리 테스트하는 것이 좋으며 이를 위한 소규모 팀 프로젝트를 식별해야 한다. 이와 같이 파일럿 프로젝트를 수행함으로써 도움이 될 수 있는 많은 정보를 얻을 수 있다.

 

감사합니다.

webmars.

Posted by webmars
VS 2013 ALM/TFS 20132014.01.07 17:55

TFS의 작업 항목 필드 중 담당자(Assigned To)에는 기본적으로 TFS에 등록된 모든 사용자의 이름이 표시됩니다.

사용자 수가 적을 때는 별 문제가 없지만, 몇 십 명에서 몇 백 명 이상이 되면 너무 많은 사용자 이름이 표시되기 때문에 특정 사용자를 찾는게 쉽지 않습니다.

물론 오름차순으로 정렬이 되어 있으서 스크롤을 쭈~욱 내리면서 찾으면 되겠지만, 그래도 매번 그 많은 사용자 중에서 스크롤을 내려가면서 특정 사용자를 찾는다는게 여간 귀찮은 작업이 아니죠.

만약 담당자 필드에 특정 그룹 또는 특정 팀의 멤버만 표시되도록 할 수 있다면 좀 더 편리하겠죠?

 

이 글에서는 담당자 필드에 TFS의 특정 그룹 멤버만 표시되도록 하는 방법에 대해 알아보려고 합니다.

 

먼저 담당자 필드에 어떤 규칙이 설정되어 있길래 TFS에 등록된 모든 사용자의 이름이 표시되는지부터 살펴보겠습니다.

다음은 작업(Task) 작업 항목 형식 정의 중 담당자 필드가 정의된 부분입니다.

<FIELD name="담당자" refname="System.AssignedTo" type="String" syncnamechanges="true" reportable="dimension">
    <ALLOWEXISTINGVALUE/>
    <VALIDUSER/>
</FIELD>

['작업' 작업 항목 형식 - Visual Studio Scrum 2013 (한글)]

 

담당자 필드에는 'ALLOWEXISTINGVALUE'와 'VALIDUSER' 두 개의 규칙이 설정되어 있습니다.

각 규칙에 대해 잠깐 살펴볼까요?

  • ALLOWEXISTINGVALUE: 허용된 값이 아니더라도 기존의 값을 그대로 유지하도록 합니다.
  • VALIDUSER: TFS에 등록된 사용자만 입력할 수 있도록 지정합니다.

 

위의 규칙 중에서 VALIDUSER 규칙에 의해서 담당자 필드에 TFS 사용자 목록이 표시됩니다.

 

따라서 담당자 필드에 특정 그룹 멤버만 표시되도록 하기 위해서는 VALIDUSER 규칙을 제거하고 다른 규칙을 설정해야 합니다.

 

필드의 규칙 중에는 ALLOWEDVALUES라는 규칙이 있습니다.

이 규칙은 필드에 사용할 수 있는 값의 목록을 지정하고, 그 목록에서 선택할 수 있는 값만 허용하고자 할 때 사용합니다.

예를 들어, 위험도 필드에 High/Medium/Low 값 중 하나만 입력하게 하고 싶을 때는 그 필드에 ALLOWEDVALUES 규칙을 설정하고 허용되는 값을 High/Medium/Low로 지정합니다.

만약 ALLOWEDVALUES 목록에 없는 값을 입력하고 저장하려고 하면 오류 메시지가 표시됩니다.

 

자 이제 담당자 필드에 특정 그룹 멤버만 표시되도록 하기 위해 ALLOWEDVALUES 규칙을 적용해 보겠습니다.

그리고 허용되는 값으로 팀 프로젝트의 기본 그룹인 Contributors 그룹의 멤버를 지정해 보겠습니다.

다음은 이와 같은 규칙을 적용한 후의 담당자 필드 정의 부분입니다.

      <FIELD name="담당자" refname="System.AssignedTo" type="String" syncnamechanges="true" reportable="dimension">
        <ALLOWEXISTINGVALUE />
        <ALLOWEDVALUES expanditems="true" filteritems="excludegroups">
          <LISTITEM value="[project]\Contributors" />
        </ALLOWEDVALUES>
      </FIELD>
      <FIELD name 

 

여기서 주의해야 할 점은 [project]에서 project를 팀 프로젝트 이름으로 대체하는 것이 아니라 있는 그대로 '[project]'라고 명시해야 한다는 것입니다.

 

이렇게 ALLOWEDVALUES 규칙을 적용하면 담당자 필드에는 해당 팀 프로젝트의 Contributors 그룹에 포함된 사용자들만 표시가 됩니다.

 

눈치를 채셨겠지만, 'Contributors' 대신 어떠한 팀 프로젝트의 그룹(예를 들면, Project Administrators, Readers 등)을 지정해도 됩니다.

또한 다음과 같이 TFS 2012부터 추가된 (Team)을 지정할 수도 있습니다.

      <FIELD name="담당자" refname="System.AssignedTo" type="String" syncnamechanges="true" reportable="dimension">
        <ALLOWEXISTINGVALUE />
        <ALLOWEDVALUES expanditems="true" filteritems="excludegroups">
          <LISTITEM value="[project]\ScrumTeamA" />
        </ALLOWEDVALUES>
      </FIELD>
      <FIELD name 

 

이상으로 담당자 필드에 특정 그룹 사용자만 표시하는 방법에 대해 살펴보았습니다.

 

감사합니다.

webmars.

 

Posted by webmars
VS 2013 ALM/TFS 20132014.01.03 17:10

TFS 버전 제어 기능 중에 레이블(label)이라는게 있습니다. 흔히 '라벨'이라 부르는 것이지요.

이 기능은 소스 코드의 베이스라인(또는 스냅숏)을 설정하는데 활용됩니다.

예를 들어, 2014년 1월 3일 배포한 DLL 및 EXE를 빌드하는데 사용된 소스 코드들에 대해 레이블을 적용해 두면, 향후에 레이블을 이용하여 이 소스 코드들을 가져다가 버그를 수정하거나 새 기능을 추가하는데 편리하죠.

 

레이블은 주로 폴더에 대해 적용하게 되는데, 레이블을 적용하기 위해서는 해당 폴더에 대한 레이블 권한이 필요합니다.

그런데 레이블 권한이 적용되는 것이 우리가 일반적으로 생각하는 것과는 차이가 있습니다.

어떤 차이가 있는지 아래의 예로 설명을 해보겠습니다.

 

다음과 같은 폴더 구조가 있다고 가정해 보겠습니다.

$/MyTeamProject

/MySource

/MySolution1

/MySolution2

 

그리고 A라는 개발자가 있다고 가정해 보죠.

자, 이제 A에게 MySolution2 폴더에 대해서는 레이블 적용을 할 수 없게 하고, MySolution1 폴더에 대해서 레이블을 적용할 수 있게 하고 싶습니다.

어떻게 하면 될까요?

 

직관적으로 생각을 할 때는 MySolution1 폴더에서 A에게 레이블 권한을 부여하기만 하면 될 것 같은데요.

하지만 여기서 우리가 일반적으로 생각하는 것과의 차이가 있습니다.

 

만약 위와 같이 레이블 권한을 부여한 다음에 A가 MySoluction1 폴더에 대해 레이블을 적용하려고 하면 다음과 같은 오류 메시지가 표시됩니다.

 

루트 폴더인 $/MyTeamProject에 대해 레이블 권한이 필요하다는 메시지입니다.

레이블을 MySolution1 폴더에 적용하려고 하는데, 루트 폴더에 대한 레이블 권한이 없다는 것이지요.

 

한 가지 더 재밌는 사실이 있습니다.

만약 A에게 MySolution1 폴더에 대해서만 읽기/쓰기 권한을 부여했을 경우 즉, 그 외 다른 폴더에 대해서는 읽기/쓰기 권한이 없게 했을 경우인데요.

A에게 루트 폴더($/MyTeamProject)에 대한 레이블 권한을 부여하여 MySolution1 폴더에 레이블을 적용했다 하더라도 루트 폴더에 '읽기' 권한이 없으면 레이블을 찾을 수 없다는 것입니다.

레이블 찾기를 하면 아래와 같은 메시지가 표시됩니다.

 

따라서 특정 개발자에게 특정 폴더에 대해서만 레이블을 적용하고 나중에 그 레이블을 찾을 수 있게 하고 싶더라도 루트 폴더에 대한 레이블읽기 권한을 허용해야 한다는 것입니다.

 

왜 TFS가 이와 같이 특정 폴더에 대해 레이블을 적용하고자 할 때도 루트 폴더에 대한 레이블 권한을 요구하는지, 그리고 레이블을 찾고자 할 때도 루트 폴더에 대한 읽기 권한을 요구하는지 아직은 잘 모르겠습니다.

어떤 이유가 있을 수도 있고 아니면 버그일 수도 있겠죠.

어찌됐건 폴더 별로 개발자에 대한 레이블 권한을 다르게 관리하고자 할 때는 이와 같은 내용을 참고하셔서 적용하셔야 합니다.

 

감사합니다.

webmars.

 

 

Posted by webmars
VS 2013 ALM/TFS 20132014.01.03 10:52

지난 글(오프라인 상태에서 변경한 내용 체크 인 하기)에서 오프라인 상태에서 변경한 내용을 TFS에 체크 인 하는 방법에 대해 살펴보았는데요.

그 중에서 TFS Power Tools의 TFPT 유틸리티를 사용하는 경우에 매번 명령 프롬프트 창에서 TFPT Online 명령을 실행하는 것이 번거로울 수 있죠.

이와 같은 경우에는 TFPT Online 명령을 Visual Studio의 외부 도구로 등록하여 사용하면 편리합니다.

 

이 글에서는 Visual Studio의 외부 도구에 TFPT Online 명령을 등록해서 좀 더 편리하게 오프라인 상태에서의 변경 내용을 TFS에 체크 인하는 방법에 대해 설명합니다.

 

우선 다음과 같은 간략한 절차를 따라해 보시죠.

  1. Visual Studio 실행
  2. TOOLS > External Tools... 선택
  3. External Tools 대화 상자에서 Add 버튼 클릭
  4. Title 항목에 'TFPT ONLINE' 입력
  5. Command 항목의 ... 버튼을 클릭하여 TFPT.exe를 찾아서 선택
  6. Arguments 항목에 'Online /recursive' 입력
  7. Initial directory 항목에서 ▶ 버튼을 클릭한 다음 Solution Directory를 선택
    • Solution Directory를 선택한 경우에는 솔루션을 오픈한 상태에서 이 명령을 실행해야 합니다.
    • 만약 솔루션을 오픈하지 않은 상태에서도 이 명령을 실행하고 싶다면, 이 항목에 솔루션 폴더 경로를 직접 입력합니다(예: D:\Work\MySource\MySolution).
  8. OK 버튼 클릭

위의 절차는 (다들 아시겠지만) TFPT Online 명령을 Visual Studio의 외부 도구로 등록하는 방법입니다.

그리고, 다음 그림은 External Tools 대화 상자에서 TFPT ONLINE을 등록하는 화면입니다.

 

위의 절차를 마쳤다면 이제 Visual Studio의 TOOLS 메뉴에서 TFPT ONLINE이 정상적으로 등록되었는지 확인해 봅니다.

 

자, 이제 등록된 TFPT Online을 실행시켜 보죠.

Visual Studio에서 TOOLS > TFPT Online을 차례로 선택하여 실행시킵니다.

(TFPT ONLINE을 등록할 때 Initial directory를 $(SolutionDir)로 설정했기 때문에 솔루션이 열려 있어야 합니다.)

 

다음 그림은 TFPT Online을 실행시킨 결과 화면입니다.

 

화면에서 변경 내용을 보류 시킬 항목을 선택한 다음 Pend Changes 버튼을 클릭하면, 선택한 항목들이 Pending Changes 창에 표시됩니다.

마지막으로 Pending Changes 창에서 체크 인을 클릭하면 됩니다.

 

이상으로 TFPT Online 명령을 Visual Studio의 외부 도구로 등록하여 좀 더 편리하게 사용하는 방법에 대해 설명하였습니다.

감사합니다.

webmars.

 

Posted by webmars
VS 2013 ALM/TFS 20132014.01.02 15:40

이 글에서는 TFS와의 연결이 끊긴 오프라인 상태에서 또는 Visual Studio나 Eclipse가 아닌 개발 도구에서 파일을 변경한 다음, 해당 파일을 TFS에 체크 인 하는 방법에 대한 팁을 얘기할까 합니다.

 

TFS 2012에서 새로 추가된 로컬 작업 영역(local workspace)을 사용할 경우에는 팀 탐색기가 TFS와 연결되는 시점에서 자동으로 로컬의 변경 내용을 검사(detection)해 주기 때문에 손쉽게 체크 인을 할 수 있죠.

그러나, TFS 2010 이하 버전을 사용하거나 서버 작업 영역(server workspace)를 사용할 경우에는 오프라인 상태에서의 변경 내용을 팀 탐색기가 자동으로 인지하지 못하기 때문에 사용자가 별도의 작업을 해야 합니다.

 

체크 아웃하기

가장 간단한 방법은 TFS와 연결을 한 다음 변경된 파일들이 포함된 상위 폴더를 체크 아웃하는 것입니다.

이 방법이 가장 간단하기는 하지만 체크 아웃 한 폴더의 모든 파일이 '보류 중인 변경 내용' 창에 전부 표시가 되기 때문에 내가 어떤 파일을 편집했었는지는 체크 인 하기 전까지 알기가 어렵죠.

결국 체크 인을 한 다음 변경 집합의 상세 정보를 확인해야지만 알 수가 있습니다.

 

TFPT 유틸리티 이용하기

다른 방법으로는 TFS Power Tools에 포함된 TFPT 유틸리티를 이용하는 것입니다.

이 도구를 설치해야 하는 번거로움이 있기는 하지만 한 번 설치해 두면 여러모로 쓸모가 있기 때문에 TFS를 사용하시는 분들이라면 꼭 설치하시길 권장합니다.

 

TFS Power Tools는  Visual Studio와 TFS 별로 버전이 따로 있기 때문에 현재 사용하시는 버전을 잘 확인하신 후 설치해야 합니다.

TFS 2013, Visual Studio 2013 용 버전은 아래 URL에서 다운로드 받을 수 있습니다.

http://visualstudiogallery.msdn.microsoft.com/f017b10c-02b4-4d6d-9845-58a06545627f

(이 도구를 설치하는 방법은 간단하기 때문에 여기서 설치 과정을 설명하는 것은 생략하겠습니다.)

 

자 이제 TFS Power Tools를 이용하여 오프라인 상태에서 변경한 내용을 체크 인하는 방법에 대해 살펴보겠습니다.

  1. 명령 프롬프트 창을 연다
  2. TFS Power Tools를 설치한 폴더로 이동
  3. TFPT ONLINE /recursive <filepath> 입력한 다음 엔터(filepath: 변경한 파일들이 포함된 폴더 경로)
  4. Go Online 대화 상자에서 '보류 중인 변경 내용' 창에 표시할 파일 선택
  5. 'Pend Changes' 버튼 클릭
  6. Visual Studio 실행(또는 '보류 중인 변경 내용' 창에서 새로 고침)
  7. '보류 중인 변경 내용' 창 확인
  8. '보류 중인 변경 내용' 창에서 '체크 인' 버튼 클릭

 

아래 그림은 Go Online 대화 상자의 예입니다.

 

이상으로 TFS와의 오프라인 상태에서 변경한 내용을 체크 인 하는 방법에 대해 살펴보았습니다.

 

감사합니다.

webmars.

 

 

 

 

 

 

Posted by webmars
VS 2012 ALM/TFS 20122013.10.22 15:54

TFS에 체크 인 할 때 추가적으로 할 수 있는 작업이 몇 가지가 있는데, 그 중 대표적인 작업이 설명(comment)을 입력하는 겁니다.

그런데 어찌된 것인지 변경 집합 찾기 대화 상자에는 검색 조건이 폴더/파일, 사용자, 변경 집합 번호 범위, 체크 인한 날짜 범위 밖에 없습니다. 즉, 설명으로는 검색을 할 수가 없는 것이죠.

(VIsual Studio에서 변경 집합을 찾는 일반적인 방법은 여기에서)

 

TFPT SearchCS 명령줄 도구

나중에 보려고 이런 저런 내용을 적어 놨는데, 검색을 할 수 없다? 이게 은근히 불편합니다. 다행히 TFS Power Tools에서 명령 줄 도구(tfpt)를 이용하면 설명으로도 찾을 수가 있네요.

명령 프롬프트를 열고 TFS Power Tools가 설치된 폴더로 이동합니다(예: C:\Program Files (x86)\Microsoft Team Foundation Server 2012 Power Tools).

(TFS 2012 Power Tools 다운로드는 여기에서)

다음 명령어를 입력하고 엔터를 칩니다.

TFPT SearchCS

그러면, 아래 그림과 같은 Search Changesets 대화 상자가 나타납니다.

 

이 대화상자에서 Server name, Under server path, And comment contains 등의 항목을 입력한 후 Start Search 버튼을 클릭합니다. 물론, comment contains 항목이 설명에 해당되는 항목입니다.

각 항목의 입력 예는 다음과 같습니다.

  • Server name: http://tfseservername:8080/tfs/DefaultCollection
  • server path: $/almpilot/MySolution/Main/Source/MyProject
  • comment contains: Login
  • 이와 같이 하면, $/almpilot/MySolution/Main/Source/MyProject 폴더(하위 포함)에 체크 인된 이력 중에 '설명' 부분에 'Login'이 포함된 모든 변경 집합을 찾아 줍니다.

* 한 번 입력한 항목 내용은 저장되기 때문에 Server name이나 server path 등을 매번 입력할 필요가 없습니다.

Start Search 버튼을 클릭하면 Search Results에 검색 결과가 나타납니다.

 

TFPT SearchCS 명령줄 도구를 VS 외부 도구로 추가

그런데, 설명으로 변경 집합을 찾을 때마다 명령 프롬프트를 띄우려니 이것도 불편합니다.

자 그럼 이 대화 상자를 Visual Studio에서 띄워볼까요?

Visual Studio의 메뉴에서 도구 -> 외부 도구를 차례로 클릭합니다. 그럼 외부 도구 대화 상자가 나타나죠.

이 대화 상자에서 추가 버튼을 클릭하고, 다음과 같이 각 항목을 입력합니다.

 

 

  • 제목: 변경 집합 찾기(TFPT)
  • 명령: C:\Program Files (x86)\Microsoft Team Foundation Server 2012 Power Tools\TFPT.EXE
  • 인수: searchcs

확인 버튼을 클릭합니다.

 

이제 아래 그램과 같이 Visual Studio의 도구 메뉴에 변경 집합 찾기(TFPT)가 추가되었습니다. 이 메뉴를 클릭하면 Search Changesets 대화 상자가 나타납니다.

 

 

감사합니다.

webmars.

Posted by webmars
VS 2012 ALM/TFS 20122012.11.16 14:36

지난 포스트에서 5명 이하의 소규모 팀에서 TFS를 무료로 사용할 수 있는 TFS Express 2012를 소개해 드렸습니다. 이번 포스트에서는 이 TFS Express 2012를 어디서 구하고 어떻게 설치하는지에 대해 살펴 보겠습니다.

 

TFS Express 2012 다운로드

TFS Express 2012는 마이크로소프트의 Visual Studio 사이트에서 쉽게 다운로드 받을 수 있습니다. 구글에서 'TFS Express 2012 다운로드'라고 검색을 하시면 상단에 관련 사이트 링크가 나타납니다.

TFS Express 2012 다운로드 결과

검색 결과에서 세 번째 링크(Download: Visual Studio Team Foundation Server Express 2012)를 클릭하시면 다운로드 페이지로 바로 이동합니다. 이 링크의 URL은 http://www.microsoft.com/ko-kr/download/details.aspx?id=30675 입니다.

 

TFS Express 2012 다운로드 페이지에는 다운로드 받을 수 있는 파일이 두 개가 있습니다.

  • tfs_express.exe : 웹 설치 관리자. 설치할 때 컴퓨터가 인터넷에 연결되어 있어야 함. 파일 크기가 작다(740KB).
  • VS2012_TFS_EXP_kor.iso: DVD5 ISO 이미지. 파일 크기가 크다(487.1MB).

이 중 VS2012_TFS_EXP_kor.iso 파일을 다운로드 받는 걸 추천합니다.

 

시스템 요구 사항

TFS Express 2012를 설치하기 전에 시스템 요구 사항을 살펴 보겠습니다. 다운로드 페이지에 설명된 내용은 다음과 같습니다.

지원 운영 체제

Windows 7 Service Pack 1, Windows 8, Windows Server 2008 R2 SP1, Windows Server 2008 Service Pack 2, Windows Server 2012

  • Windows 7 SP1(x86 및 x64)
  • Windows 8(x86 및 x64)
  • Windows Server 2008 R2 SP1(x64)
  • Windows Server 2012(x64)

하드웨어 요구 사항

  • 2.2GHz 이상의 프로세서
  • 1GB RAM
  • 4GB의 하드 디스크 여유 공간

지원되는 운영 체제에 Windows 7과 Windows 8이 있는게 보이시죠? TFS를 설치하기 위해 Windows Server OS를 설치할 필요없이 여러분들이 사용하고 있는 클라이언트 OS에 바로 TFS를 설치할 수 있습니다. 또한 TFS를 설치하기 위해 별도로 서버 OS를 구매할 필요가 없습니다. TFS Express가 무료라서 사용하려고 했더니 Windows Server를 구매해야 한다? 그렇다면 망설여질 수도 있었을텐데요. 다행히(?) 그럴 필요가 없는거죠.

 [Note]

TFS가 클라이언트 OS를 지원하기 시작한 것은 2010버전 부터였습니다. TFS 2010에는 구성 유형이 3가지가 있는데, 그 중 기본(Basic) 유형으로 구성할 때는 클라이언트 OS에서도 가능했습니다. 이는 TFS 2012에서도 마찬가지입니다. 그러나, 클라이언트 OS에 TFS를 구성할 경우에는 TFS 보고서 및 SharePoint 기반의 팀 포탈 사이트를 사용할 수 없습니다.

 

TFS Express 2012 설치

자, 이제 TFS Express 2012를 설치해 보죠.

다운로드 받은 ISO 이미지 파일을 데몬과 같은 도구를 사용해서 마운트시킵니다. 다음은 TFS Express 설치 절차입니다.

1. Windows 탐색기를 통해 마운트시킨 폴더로 이동

2. tfs_express.exe 파일을 더블 클릭

3. 'Team Foundation Server Express 설치' 화면에서 'Team Foundation Server Express 사용 약관에 동의함' 확인란을 체크

4. '지금 설치' 클릭

5. '구성 센터' 화면의 '새 서버' 페이지에서 '마법사 시작' 클릭

6. '새 서버 구성 마법사' 화면의 '시작' 페이지에서 '다음' 클릭

7. '준비 검사' 페이지에서 준비 검사가 모두 통과되었으면 '구성' 클릭

8. '구성' 페이지에서 구성이 완료되면 '다음' 클릭

9. '완료' 페이지에서 '마침' 클릭

 

TFS Server를 설치해 보신 분들은 아시겠지만 TFS Express 2012는 설치가 매우 쉽습니다. 특히 SQL Server Express를 자동으로 설치해 주기 때문에 설치 절차가 간단해졌습니다.

[Note]

TFS Express 2012는 SQL Server Express Edition만 지원합니다.

 

이렇게 해서 TFS Express 2012를 다운로드 받아서 설치하는 것까지 알아보았습니다. 다음 포스트에서는 TFS 클라이언트인 Team Explorer를 설치하고 사용자를 등록하는 방법에 대해 살펴보겠습니다.

 

감사합니다.

webmars.

 

Posted by webmars
VS 2012 ALM/TFS 20122012.11.14 16:31

여러분들도 아시겠지만 TFS는 마이크로소프트 사의 상용 제품입니다. 즉, TFS를 쓰려면 돈을 지불해야 한다는 뜻이죠. 대략 서버 1대에 40~50만원 정도하고, 1 user 당 라이선스 비용도 40~50만원 정도합니다(라이선스 유형에 따라 금액에 차이가 있습니다). 만약 5명의 개발팀에서 TFS를 사용하려면 240~300만원의 비용이 필요하게 되는거죠. 이 비용이 적다면 적은 금액이지만 어느 개발팀에게는 부담이 될 수도 있는 금액입니다. 

TFS 도입을 고려하는 개발팀의 대부분은 그동안 Visual Studio + SourceSafe 조합으로 버전 제어하고 있던 팀들입니다. SourceSafe가 단종이 되면서 다른 버전 제어 도구로 전환을 해야 하는데, 같은 마이크로소프트 제품이면서 기능, 용어, 사용자 인터페이스 등이 익숙하기 때문이죠. 하지만, 앞에서 언급한 것처럼 어떤 개발팀에게는 비용이 부담스럽습니다. 그래서 Subversion이나 CVS와 같이 무료로 사용할 수 있는 버전 관리 도구로 전환하는 것을 심각하게 고민하게 됩니다. 익숙하진 않지만 비용의 부담이 크기때문에 어쩔 수 없는 상황인거죠.

 

지난 9월에 Visual Studio 2012 버전이 발표되었습니다. Visual Studio 2012에는 여러 개의 에디션과 제품이 있는데요, 이번에 흥미로운 제품이 하나 새롭게 추가되었습니다. 바로 Team Foundation Server Express가 그것입니다. 제가 왜 이 제품을 흥미롭다고 표현했냐면 바로 '무료'이기 때문입니다. 즉, TFS를 무료로 사용할 수 있다는 것이지요! (TFS가 비싸서 쓰지 못했던 분들에게는 흥미롭지 않나요? ^^;) 무료라고 해서 유료 버전과 기능상으로도 큰 차이가 없습니다. 가장 큰 차이는 최대 5명까지만 사용할 수 있다는 것이지요. 그렇기 때문에 5명 이하의 소규모 개발팀에서는 TFS Express를 사용할 경우 '무료로' TFS를 사용할 수가 있습니다.

 

다음은 TFS Express에서 사용할 수 있는 기능입니다.

  • 버전 제어
  • 작업 항목
  • 빌드 자동화

즉, TFS의 주요 기능은 모두 사용할 수 있습니다. 실질적으로 TFS Express는 TFS를 기본(Basic) 유형으로 구성했을 때와 같다고 보시면 됩니다.

다음은 TFS Express의 제약 사항입니다.

  • 최대 5명까지만 사용할 수 있다
  • SQL Server Express 버전만 지원한다 (SQL Analysis Service 및 Reporting Service 기능 사용 불가)
  • 단일 서버로만 설치 가능하다 (TFS와 SQL Server 분리 불가)
  • TFS Proxy 및 Preemptive analytics add-on과 연동할 수 없다

 

위의 기능 및 제약 사항을 요약해 보면, '버전 제어 정도의 기능을 사용하고자 하는 5명 이하의 소규모 개발팀에서는 TFS를 '무료로' 사용할 수가 있다'라는 것입니다. 물론 추가적으로 작업 항목이라던지 빌드 자동화 기능도 사용할 수가 있구요.

 

제가 그 동안 TFS 세미나 및 교육 때문에 많은 기업을 방문하기도 하고 교육장에서 많은 분들을 만나기도 했었는데요. 의외로 5명 이하의 개발팀을 가지고 있는 회사가 많았습니다(절대적으로 많다는 의미는 아닙니다. 생각보다 많았다는 것이지요). 만약, 그 회사에서 TFS를 사용하고자 한다면 이제는 별도의 비용을 들일 필요가 없게 된 것입니다.

마이크로소프트에서 왜 최대 5명까지 무료로 사용할 수 있는 TFS Express를 내놓았는지는 그 의도를 정확히 알 수는 없습니다. 다만, 기존의 SourceSafe 사용자들과 Subversion과 같은 무료 버전 제어 도구를 사용하는 사용자들을 잡아 TFS 시장을 넓히기 위한 전략이 아닐까 추측해 볼 수는 있을 것 같습니다. 어쨌든 사용자 입장에서는 무료로 사용할 수 있는 TFS가 생겼기 때문에 나쁘지 않은 것만은 분명합니다.

 

이상으로 5명 이하 소규모 개발팀에서 TFS를 무료로 사용할 수 있는 TFS Express를 소개해 드렸습니다.

다음 포스트에서는 TFS Express를 어디서 구하고 어떻게 설치해야 하는지에 대해 알아보겠습니다.

 

[Note]

'TFS Express를 사용하다가 사용자 수가 6명 이상으로 증가하면 어떻게 해야 하나?' 라는 생각이 들 수도 있을 것 같습니다. 그건 어렵지가 않습니다. 그냥 5명을 초과하는 인원 수 만큼의 사용자 라이선스(CAL)를 구매하기만 하면 됩니다. 서버를 다시 설치해야 할 필요는 없습니다.

 

감사함니다.

webmars.

Posted by webmars
VS 2010 ALM/TFS 20102012.11.06 17:26

TFS를 활용한 Java 프로젝트 통합 빌드 두 번째 강좌로 정의된 빌드를 실행하고, 그 결과를 확인하는 방법에 대해 알아보겠습니다.

  • 통합 빌드 환경 구성 및 빌드 정의하기
  • 빌드 실행하고 결과 확인하기

 


 

   빌드 실행하기

빌드를 실행하려면 빌드 정의를 큐에 대기시켜야 합니다. 큐에 대기된 빌드는 빌드 에이전트에 의해 실행이 됩니다. 빌드가 실행되는 순서는 빌드 우선 순위 및 큐에 대기 중인 다른 빌드에 의해 결정됩니다.

빌드가 큐에 대기되는 시점은 빌드 정의에 명시된 빌드 트리거에 의해 결정됩니다. 그러나, 어떤 빌드 정의라도 수동으로 큐에 대기시킬 수 있습니다. 여기서는 수동으로 빌드 정의를 큐에 대기시켜 실행하는 방법에 대해 설명합니다.

1.      “Team Explorer” 창에서 팀 프로젝트를 확장합니다.

2.      “Builds” 폴더를 확장한 다음, 실행시킬 빌드 정의에 우 클릭한 다음, “Queue New Build”를 선택합니다.

3.      “Queue Build” 창의 “Build definition”, “Build controller”, “Drop folder for this build” 항목 값이 제대로 설정되었는지 확인합니다.

4.      빌드 정의의 우선 순위를 조정하려면 “Priority in queue” 목록에서 값을 변경합니다.

5.      “Position” 항목에는 빌드 에이전트와 우선 순위에 따라 이 빌드 정의가 실행될 순서가 표시됩니다.

6.      “MSBuild command-line arguments (optional)” 항목에는 MSBuild 매개 변수를 입력할 수 있습니다.

A.     예를 들어, 다음과 같은 매개 변수를 입력할 수 있습니다.

                         i.         /v:diag /p:versionToGet="myVersion"

                        ii.         /v : 로그의 상세 수준을 정의합니다. /p : 속성과 값을 지정합니다.

7.      “Queue”를 클릭하면 빌드가 큐에 들어갑니다.

 

   Build Explorer에서 빌드 진행 상황 및 결과 확인하기

“Build Explorer”에서 큐에 대기 중인 빌드나 실행 중인 빌드, 그리고 완료된 빌드에 대한 상세 정보를 조회하거나 관리할 수 있습니다. “Queued” 탭에서는 5분 이내에 큐에 대기된 빌드를 볼 수 있으며, “Completed” 탭에서는 5분 이상 대기 중이거나 완료된 빌드를 볼 수 있습니다.

 

 Build Explorer 열기

다음은 “Build Explorer” 창을 여는 방법입니다.

1.      “Team Explorer” 창에서 팀 프로젝트를 확장합니다.

2.      “Builds” 폴더에 우 클릭한 다음, “View Builds”를 선택합니다.

3.      “Build Explorer” 창이 나타납니다.

 

 빌드 상세 정보 조회하기

다음은 “Build Explorer” 창에서 빌드의 상세 정보를 조회하는 절차에 대한 설명입니다.

1.      “Build Explorer” 창을 엽니다.

2.      다음 중 하나의 작업을 수행합니다.

A.     현재 큐에 대기 중인 빌드의 상세 정보를 조회하려면 “Queued” 탭을 선택합니다.

B.      완료된 빌드 또는 5분 이상 큐에 대기 중인 빌드의 상세 정보를 조회하려면 “Completed” 탭을 선택합니다.

3.      “Build Explorer” 창에서 상세 정보를 조회할 빌드 정의에 더블 클릭합니다.

A.     “Queued” 탭에서 빌드 정의에 더블 클릭하면 빌드 진행 상황을 조회할 수 있습니다.

B.      “Completed” 탭에서 빌드 결과에 더블 클릭하면 빌드 결과에 대한 상세 정보를 조회할 수 있습니다.

C.      만약, 조회할 빌드 정의 또는 빌드 결과가 보이지 않는다면 “Build Explorer” 창에서 빌드 결과를 필터링합니다. 빌드 결과를 필터링하는 방법은 빌드 결과 필터링하기를 참조합니다.

4.      빌드에 대한 상세 정보가 새 창에 표시됩니다.

 

 빌드 결과 필터링하기

“Build Explorer”에서 큐에 대기 중인 빌드나 완료된 빌드를 빌드 정의 이름, 상태, 빌드 컨트롤러, 품질, 실행 기간 등으로 필터링할 수 있습니다.

다음은 대기 중인 빌드 또는 빌드 결과를 필터링하는 절차입니다.

1.      “Build Explorer”를 엽니다.

2.      최근에 큐에 대기된 빌드 결과를 보려면 “Queued” 탭을 선택하고, 완료된 빌드 결과를 보려면 “Completed” 탭을 선택합니다.

3.       “Queued” 탭에서 다음 중 하나의 작업을 수행합니다.

A.     특정 빌드 정의에 대한 빌드를 조회하려면, “Build Definition” 목록에서 해당 빌드 정의를 선택합니다.

B.      특정 상태에 있는 빌드를 조회하려면, “Status filter” 목록에서 상태를 선택합니다.

C.      특정 컨트롤러에서 제어한 빌드를 조회하려면, “Controller filter” 목록에서 컨트롤러를 선택합니다.

4.      “Completed” 탭에서 다음 중 하나의 작업을 수행합니다.

A.     특정 빌드 정의에 대한 빌드를 조회하려면, “Build Definition” 목록에서 해당 빌드 정의를 선택합니다.

B.      특정 품질에 대한 빌드를 조회하려면, “Quality filter” 목록에서 빌드 품질을 선택합니다.

C.      특정 기간에 완료된 빌드를 조회하려면, “Date filter” 목록에서 기간을 선택합니다.

5.      필터 조건을 지정하면 바로 그 결과가 표시됩니다.

 

 빌드 결과에 품질 지정하기

빌드가 완료되면 해당 빌드 결과에 대한 품질을 지정할 수 있습니다. 빌드 품질에는 거부됨”, “릴리즈됨”, “배포 준비 완료”, “사용자 승인 테스트 통과”, “초기 테스트 준비 완료등이 있습니다. 빌드 결과에 품질을 지정하게 되면 해당 빌드에 대해 팀에서 커뮤니케이션하는데 도움이 됩니다. 예를 들어, 개발팀에서 어떤 빌드 결과의 품질을 초기 테스트 준비 완료로 지정해 놓으면, 테스트 팀에서는 품질이 초기 테스트 준비 완료인 빌드의 결과물에 대해 초기 테스트를 수행하게 됩니다.

다음은 빌드 결과에 품질을 지정하는 절차입니다.

1.      “Build Explorer” 창을 엽니다. “Build Explorer 열기를 참조합니다.

2.      “Completed” 탭을 선택합니다.

3.      필요한 경우, 빌드 결과를 필터링합니다. “빌드 결과 필터링하기를 참조합니다.

4.      품질을 지정할 빌드 결과를 선택합니다.

5.      “Build Quality” 셀에서 드롭다운 박스를 클릭합니다.

6.      품질을 선택합니다.

 

 빌드 품질 목록 관리하기

TFS는 기본적으로 거부됨”, “릴리즈됨”, “배포 준비 완료 8개의 빌드 품질 목록을 제공합니다. 그러나, 필요에 의해 이 목록에 있는 품질을 추가하거나 제거할 수 있습니다.

다음은 빌드 품질 목록을 추가 또는 제거하는 방법입니다.

1.      “Team Explorer” 창에서 팀 프로젝트를 확장합니다.

2.      “Builds” 폴더에 우 클릭한 다음, “Manage Build Qualities”를 선택합니다.

3.      “Edit Build Qualities” 창에서 품질을 추가하거나 제거합니다.

 

이상으로 Java 개발자를 위한 TFS 사용 방법 강좌를 마칩니다.

그 동안의 강좌에서 살펴보았듯이 Eclipse에서 Java 프로젝트를 개발할 때도 마이크로소프트의 Team Foundation Server를 사용하여 소스코드 버전제어 및 통합 빌드가 가능합니다. 따라서, Java 개발팀에서 버전제어 도구 또는 ALM 도구로 TFS를 고려해 보시는 것도 좋을 것 같습니다.

 

감사합니다.

webmars.

 

 

Posted by webmars