성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] Java - How to use the Foreign Funct...
[정성태] 제가 큰 실수를 했군요. ^^; Delegate를 통한 Bein...
[정성태] Working with Rust Libraries from C#...
[정성태] Detecting blocking calls using asyn...
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
[정성태] "props[i].GetValue(props[i])" 코드에서 ...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>TFS - Team Project Collection 이전하는 방법</h1> <p> TFS의 "Team Project Collection"은 이전이 가능합니다. 예를 들어, 기존에 운영되던 TFS 2010 을 그대로 둔 체 TFS 2012를 새로 설치한 경우를 생각해 보면, 기존 TFS 2010 에 있던 Project Collection들을 새롭게 설치한 TFS 2012에 옮겨야 할 수 있습니다. (물론, 업그레이드 하는 것이 더 편하지만!)<br /> <br /> 방법도 그리 어렵지는 않습니다. 우선, 소스가 되는 TFS 에서 해당 "Team Project Collection"을 분리(Detach)하는 것으로 시작합니다.<br /> <br /> <img alt='tfs_collection_mig_1.png' src='/SysWebRes/bbs/tfs_collection_mig_1.png' /><br /> <br /> 분리 작업이 완료되기 전에 "Verify" 버튼으로 유효성 검사를 할 수 있는데요. 만약, 여러분들이 쓰는 TFS 가 "SQL Server 2008 (이상) Enterprise" 버전을 쓰고 있다면 이 과정에서 다음 화면과 같이 경고가 하나 뜰 수 있습니다.<br /> <br /> <img onclick='toggle_img(this)' class='imgView' alt='tfs_collection_mig_2.png' src='/SysWebRes/bbs/tfs_collection_mig_2.png' /><br /> <br /> 만약 경고 메시지가 다음과 같고,<br /> <br /> <div style='BACKGROUND-COLOR: #ccffcc; padding: 10px 10px 5px 10px; MARGIN: 0px 10px 10px 10px; FONT-FAMILY: Malgun Gothic, Consolas, Verdana; COLOR: #005555'> <span style='color: blue; font-weight: bold'>This collection has SQL Enterprise features enabled</span>. If you are moving the collection across SQL Server Editions please read the documentation (http://go.microsoft.com/fwlink/?LinkId=166007) to see how this impacts you. </div><br /> <br /> 여러분들이 이전하려는 대상 TFS 서버가 "Enterprise" 버전 이외의 SQL 서버를 사용한다면 압축 옵션을 해제해 주어야 합니다. 이에 대해서는 별도로 정리해 두었으니 참고하세요.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Database '...' already exists. Choose a different database name. (Microsoft SQL Server, Error: 1801) ; <a target='tab' href='http://www.sysnet.pe.kr/2/0/1331'>http://www.sysnet.pe.kr/2/0/1331</a> </pre> <br /> 경고와 상관없이 진행은 그대로 할 수 있고 분리 작업은 성공적으로 완료됩니다.<br /> <br /> <img onclick='toggle_img(this)' class='imgView' alt='tfs_collection_mig_3.png' src='/SysWebRes/bbs/tfs_collection_mig_3.png' /><br /> <br /> <hr style='width: 50%' /><br /> <br /> 분리된 Team Project Collection을 붙이는 작업은 분리했던 것과 반대로 진행하면 됩니다.<br /> <br /> 예제의 Team Project Collection 이름이 "TestCollection"이기 때문에 데이터베이스 파일은 "Tfs_TestCollection.mdf", "Tfs_TestCollection_log.ldf" 파일이 됩니다. 이 파일들을 대상 TFS 서버가 사용하는 SQL 서버가 설치된 컴퓨터에 복사하고, SSMS 관리도구를 이용하여 SQL 서버에 연결(attach)합니다.<br /> <br /> 그런 다음 "Team Foundation Server Express Administration Console"을 실행하고 "Team Project Collections" 노드에서 "Attach Collection" 링크를 선택합니다.<br /> <br /> <img onclick='toggle_img(this)' class='imgView' alt='tfs_collection_mig_4.png' src='/SysWebRes/bbs/tfs_collection_mig_4.png' /><br /> <br /> 그럼, 다음과 같이 창이 뜨고 목록에는 현재 TFS 에는 존재하지 않는 Team Project Collection 을 자동으로 보여줍니다. <br /> <br /> <img onclick='toggle_img(this)' class='imgView' alt='tfs_collection_mig_5.png' src='/SysWebRes/bbs/tfs_collection_mig_5.png' /><br /> <br /> "Verify" 버튼을 눌러서 유효성 검사를 하고 통과하면 "Attach" 버튼을 누르는 것으로 Collection 이전 작업이 완료됩니다.<br /> <br /> (혹시나 궁금하신 분들이 있을지도 몰라서 미리 말씀드리면, "Detach/Attach" 과정은 반드시 필요합니다. 예를 들어, 단순하게 mdf/ldf 파일만 복사해서 다른 TFS에서 attach 시키려 해도 아예 DB 목록에서 해당 DB는 나타나지 않습니다.)<br /> <br /> <hr style='width: 50%' /><br /> <br /> 제 경우에는 실습을 TFS 2010 에서 <a target='tab' href='http://www.sysnet.pe.kr/2/0/1330'>TFS 2012 Express</a>로 이전을 해봤습니다.<br /> <br /> 이런 경우에 SharePoint를 사용했던 Team Project가 있다면 해당 Collection을 attach시킬 때, 다음과 같은 경고가 발생합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > [2012-08-23 01:53:58Z][Warning] Exception Message: TF30063: You are not authorized to access http://testpc:17012/_vti_bin/TeamFoundationIntegrationService.asmx. (type TeamFoundationServerUnauthorizedException) Exception Stack Trace: at Microsoft.TeamFoundation.Client.Channels.TfsHttpWebRequest.SendRequest() at Microsoft.TeamFoundation.Client.Channels.TfsHttpRequestChannel.Request(TfsMessage message, TimeSpan timeout) at Microsoft.TeamFoundation.Client.Channels.TfsHttpClientBase.Invoke(TfsClientOperation operation, Object[] parameters, TimeSpan timeout, Object[]& outputs) at Microsoft.TeamFoundation.Client.Channels.TfsHttpClientBase.Invoke(TfsClientOperation operation, Object[] parameters, Object[]& outputs) at Microsoft.TeamFoundation.Admin.SharePointConfigurationHelper.ValidateAutoconfigureWebApplication(Uri adminUrl, Uri siteUrl, ITFLogger logger) ... [이하 생략] ... </pre> <br /> 상관없습니다. TFS Express에는 SharePoint가 없기 때문에 발생하는 것이니 무시해도 좋습니다.<br /> <br /> <hr style='width: 50%' /><br /> <br /> 마지막으로 한가지 더 시행착오를 말씀드리면, "Team Project Collection"을 이전한 후 Team Explorer에서는 기존 프로젝트 들에 대해서 "Workspace"의 경로 매핑을 하려 할 때 다음과 같은 오류가 발생할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > The working folder ... is already in use by the workspace ...;... on computer ... </pre> <br /> 이 오류에 대해서는 웹에서 검색해 보면 다양한 사례들이 나오는데요. 일단 제 경우에는 재현 시나리오가 다음과 같습니다.<br /> <br /> <ol> <li>A컴퓨터에서 T1 TFS 서버로 접속했었고,</li> <li>A컴퓨터의 운영체제를 새로 설치하고 Team Explorer를 새로 설치하고,</li> <li>A컴퓨터에 T2 TFS를 설치하고,</li> <li>T1 TFS의 Team Project Collection을 T2 TFS 로 이전하고,</li> <li>A컴퓨터에서 이전된 바로 그 Team Project Collection에 연결하려 할 때!</li> </ol> <br /> 따라서 이 오류를 해결하기 위해서는 이전 바인딩 정보를 해제해야 하는데요. 이를 위한 별도의 명령은 없고, 직접 DB를 열어서 "tbl_WorkingFolder" 의 WorkspaceId 와 tbl_Workspace 의 WorkspaceId 값을 찾아내서 이전 값들을 보관하고 있는지 확인하고, 바로 그 이전 WorkspaceId값들을 가진 데이터를 tbl_WorkingFolder에서 삭제해 주면 됩니다.<br /> <br /> 사실, 위와 같은 경우가 발생할 수 있는 확률이 낮으므로... 이 정도 설명으로 마치겠습니다. ^^<br /> </p><br /> <br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1528
(왼쪽의 숫자를 입력해야 합니다.)