TFS 2010이 Visual Studio 외부의 파일에 대한 변경 사항을 감지하도록하려면 어떻게해야합니까?


118

Visual Studio 2010과 함께 Team Foundation Server 2010을 사용하고 있습니다.

Visual Studio 외부에서 파일을 수정할 때마다 TFS는 파일에 대한 변경 사항을 감지하지 못하므로 수정 된 파일을 체크인 할 수있는 옵션을 제공하지 않습니다.

이 문제를 어떻게 해결할 수 있습니까?


18
Subversion 또는 Git (및 기타)은 파일을 체크인 / 아웃하기 위해 API 대신 파일의 해시를 비교합니다. 훨씬 더 간단하고 덜 위험합니다!
Steve B

8
더 나쁜 TFS는 변경된 파일을 체크인해야한다는 것을 알아 차리지 못하므로 동료가 파일을 체크 아웃하고 코드가 컴파일되거나 작동하지 않는다는 것을 깨닫기 전까지는 종종 잊어 버릴 수 있습니다. 사람들이 TFS가 "스테로이드에 대한 VSS"라고 말하는 것은 당연합니다.하지만 여전히 VSS의 많은 문제가 있습니다.
gbjbaanb 2013

스테로이드가 몸을 파괴하는 것과 같은 방식으로 스테로이드에 대한 VSS입니다.
Ian Kemp

답변:


48

Visual Studio 외부에서 작업하는 동안 서버에 네트워크 연결이있는 경우 tf 명령 줄 클라이언트를 사용하거나 Windows 탐색기 셸 통합을 사용하여 파일을 편집하기 전에 확인하는 것이 가장 좋습니다. TFS Power Tools 릴리스 에서 사용할 수 있습니다 . (또한 점점 더 많은 다른 도구에 TFS 통합 기능이있어이를 자동으로 수행하지만 메모장을 사용하는 경우에도 여전히 수동 단계가 필요합니다.)

물론 작업 중일 때 파일을 확인할 수있는 네트워크 연결이없는 경우가 많습니다.

수정 한 파일을 알고있는 경우 Visual Studio 내에서 체크 아웃 한 다음 다시 체크인 할 수 있습니다.

편집 한 파일을 모를 경우 tfpt online명령 (Power Tools 릴리스의 일부)을 실행하여 변경 사항을 감지 할 수 있습니다 . 이렇게하면 로컬에서 수정 된 파일을 찾고 서버에서 이러한 파일을 체크 아웃합니다.


Visual Studio는 파일을 체크 아웃하는 것만으로 파일 변경 사항을 감지하지 못하는 것 같습니다. 방금 폴더를 확인하려고했는데 내용이 편집으로 보류중인 변경 내용으로 표시되었습니다. 그런 다음 파일 탐색기에서 폴더를 삭제하고 보류중인 변경 사항을 새로 고쳤지만 Visual Studio는 보류중인 변경 사항에서 파일이 삭제되었다고 말하지 않았습니다. 또한 파일은 여전히 ​​솔루션 탐색기에있었습니다.
Kyle Delaney

160

TFS에는이를위한 "조정"명령이 있습니다.

  1. 소스 제어 탐색기 열기
  2. 변경 사항이있는 폴더를 마우스 오른쪽 버튼으로 클릭하고 비교를 선택합니다.
  3. 조정할 파일을 선택하십시오 (모든 파일을 선택하려면 CTRL+ A를 누르십시오 ).
  4. 조정 버튼을 클릭 합니다
  5. 폴더 차이 조정 대화 상자 에서 옵션을 설정합니다 . 확인 변경을 보류중인없는 파일 로 설정되어 체크 아웃을
  6. 클릭 OK
  7. 로컬 변경 사항이있는 경우 체크 아웃 대화 상자가 표시됩니다. 선호하는 잠금 유형 설정
  8. 체크 아웃을 클릭합니다.

폴더 차이 조정

참고 항목 : 폴더 간의 차이점 조정


13
명령 줄이나 위험한 '보류중인 변경 실행 취소'가 필요하지 않기 때문에 이것이 최선의 대답입니다.
NickH 2015 년

4
내 하루를 구했습니다! 나는 당신의 단계를 정확하게 따랐고 예상대로 정확하게 작동했습니다. :-)
Gilad Barner

4
설명대로 작동했습니다. 최고의 답변이되어야합니다.
Nicolas

불행히도 전체 프로젝트에서이 작업을 수행 할 때 지정한 경로, 파일 이름 또는 둘 다 너무 깁니다. 라는 오류가 발생 합니다. 정규화 된 이름은 260 자 미만이어야하며 디렉토리 이름은 248 자 미만이어야합니다. 변경 한 모든 파일 디렉토리를 기억할 수 없기 때문에 개별 폴더를 선택하는 것은 옵션이 아닙니다. 어떤 생각?
kraftwer1 2015

2
VS 2015 업데이트 3에서 완벽하게 작동합니다. 감사합니다. 가장 좋은 대답을해야 더 복잡한 명령이 작동하지 않습니다합니다
니콜라스 Leucci을

35

이것은 TFS Power Tools를 사용하여 나를 위해 일했습니다.

tfpt online /adds /deletes /diff /noprompt /recursive directory-name

(여기서 directory-name은 업데이트 할 디렉터리의 경로입니다. 그렇지 않으면 전체 TFS 저장소에서 변경 사항을 감지합니다.)

실제로 변경하지 않고 수행 할 작업을 알고 싶다면 /preview스위치 를 추가하여 강제 실행을 수행하도록 할 수 있습니다 .


팁 @Adam Batkin에 감사드립니다. 부적처럼 일했고 이제 고쳐 졌어요! +1
iOnline247 2013-01-23

9
* .user, BIN \, OBJ, 등등 ... :이 명령 줄은 원하지 않는 파일이 포함됩니다,주의
스티브 B

1
건배, 로컬 Git 리포지토리에서 회사의 TFS 업데이트를 자동화 할 수 있도록 명령 줄 방식을 찾고있었습니다!
Mark K Cowan

2
@SteveB가 /exclude:fld_name/*,filename많이 나 halped 원치 않는 파일을 제외하고 사용할 수 있습니다 스위치는 ..
크레 Pendic

1
이렇게 달리고 tfpt online /deletes /noprompt /recursive directory-name천 개의 파일을 '변경'해야하므로 실행 취소해야합니다. 그러나 나는 이것들을 만진 적이 없으며 단지 삭제 된 폴더입니다.
Dzmitry Lahoda

16
*1- make changes outside of Visual Studio
2- go to Visual Studio and open Source Control Explorer
3- right click on the folder > "Check Out for Edit" > "Check Out"
4- right click on the same folder > "Undo Pending Changes..." > "Undo changes" > "No to All"*

이 해결 방법을 지점에서 테스트했는데 많은 도움이되었습니다. 그러나 수동으로 수행해야하는 새 파일과 새 폴더 만 있습니다.

작업 전에 분기를 만드는 것이 좋습니다. 그것은 당신에게 수술 시간을 격리시킵니다.

참고 :이 기술은 TFS가 항상 수정 된 것으로 표시하는 동일한 파일 정리도 수행합니다.


3
이것은 새로운 답변이 아니라 alga 의 게시물 에 대한 의견이어야합니다 . 어쨌든, 나는 조류가 위에서 제안했을 때 반대하는 것과 같은 이유로 이것을 권장하지 않습니다.
Edward Thomson

정말 훌륭합니다! 정확히 제가 찾고 있던 것입니다 (회사가 TFS 서버를 옮긴 후 TFS / VS2010이 당황했습니다). 이제 편집 한 파일을 체크 아웃했습니다. 감사!
Mike Gledhill 2014 년

이것은 작동하지만 MS는이를위한 더 나은 방법을 제공해야합니다. 좋은 제품에는 명령 줄과 해킹이 필요하지 않아야합니다 (특히 VS에 포함 된 경우). SVN과 Mercurial은 재미로이 작업을 수행합니다 ...
user2173353

대신 점 4, 당신은 사용할 수있어서 tftp UU stackoverflow.com/a/544285/10245
팀 아벨

이것은 당신이 한 일을 취소합니다. Visual Studio에서 사용자가 수행 한 작업을 인식하지 못합니다.
Kyle Delaney

7

이 시도. 일종의 해결 방법이지만 작동합니다.

  1. Visual Studio 외부에서 변경
  2. Visual Studio로 이동하여 소스 제어 탐색기를 엽니 다.
  3. 폴더> "편집을 위해 체크 아웃" > "체크 아웃"을 마우스 오른쪽 버튼으로 클릭합니다.
  4. 같은 폴더에 마우스 오른쪽 버튼으로 클릭> "취소 보류중인 변경 ..." > "취소 변경" > " 아니오 모두에 "

그게 다야. 이제 변경 사항이 표시됩니다.


3
나는 이것에 대해 정말로 반대 할 것을 권하고 싶다. 가장 큰 걱정은 내가이 문제를 찌르고 실수로 나의 모든 합법적 인 변경을 취소 할 것이라는 것이다. 또한 클라이언트 및 서버 구성에 따라 일부 또는 가능한 모든 파일을 잠그고 체크 아웃시 최신 정보를 얻을 수있는 모든 파일을 체크 아웃합니다.
Edward Thomson

1
이것은 당신이 한 일을 취소합니다. Visual Studio에서 사용자가 수행 한 작업을 인식하지 못합니다.
Kyle Delaney

새 항목을 만들거나 추가 한 경우 해당 세션에서 : Gone baby, gone!
Christian

4

TFS가 Visual Studio 외부에서 변경된 파일을 파악하도록하는 또 다른 솔루션이 있습니다.

  1. 오프라인으로 솔루션 열기
  2. 솔루션 탐색기에서 솔루션 파일을 선택한 다음 온라인으로 이동 단추 ( GoOnline 버튼 아이콘) 를 누릅니다.

이후 TFS는 솔루션에서 변경 사항을 자동으로 검색합니다.

1 단계는 여러 가지 방법으로 달성 할 수 있습니다. 다음은 몇 가지입니다.

  • GoOffline Extension을 사용하십시오 -매우 간단하고 효과적입니다.
  • 솔루션을 열 때 TFS 자격 증명을 요청하는 경우 (자동 도메인 인증 없음) 자격 증명을 입력하지 마십시오. 솔루션이 오프라인으로 열리고 온라인으로 이동 버튼을 누른 후 로그인합니다.
  • (극단적 인 해결책) 네트워크 케이블을 분리하십시오. 솔루션을 엽니 다. 네트워크 케이블을 연결합니다.

3

Visual Sourcesafe도 이와 같이 작동하며 VSS 또는 TFS에서 변경 사항을 확인하는 방법은 Visual Studio 내에서 파일을 한 번 체크 아웃하는 것입니다.


1

소스 제어를 열고 TFS 폴더로 이동하십시오. 폴더를 마우스 오른쪽 버튼으로 클릭하고 '비교'를 선택합니다.

편집 한 파일은 빨간색으로 표시됩니다.

나는 이것이 tfpt online읽기 전용이 아니고 편집되지 않은 파일을 얻는 것보다 낫다는 것을 알았 습니다.


1

과거에 인터넷이 다운되고 오프라인으로 작업했을 때이 문제가 있었는데 대부분의 변경 사항이 팀 탐색기에 나타나지 않았습니다.

다음 단계를 따르십시오. 먼저 솔루션 탐색기에서 조정하려는 폴더 (저에게는 전체 솔루션 폴더)를 선택하고 비교 ...를 선택 합니다. 필터 수정을여기에 이미지 설명 입력 클릭 하고 필터 텍스트에서 상자에 다음을 입력 할 수 있습니다.

*.cs;!obj\;!bin\;!packages\;

이 예에서는 C # 파일 만 검색에 포함하고 bin, obj 및 packages 폴더에서 제외합니다.

Pending Change 열에 는 파일이 편집, 추가 등으로 표시되었는지 여부에 대한 정보가 있습니다.

  • 편집으로 표시 하려면 (로컬 항목에 일치하는 서버 항목이있는 경우) 파일을 선택 하고 편집을 위해 체크 아웃 ...을 선택합니다 .
  • 추가로 표시하려면 (로컬 항목에 서버 항목이없는 경우) 파일을 선택하고 파일 추가를 선택합니다.

마지막으로, 프로젝트가 여기에 나열되지 않은 이유가 확실하지 않으므로 (* .cs 필터를 제거한 후에도 여전히 표시되지 않음) 솔루션을 다시 빌드하여 프로젝트도 업데이트되는지 확인하십시오.

+ 솔루션에서 Go Online 이라고 표시된 연결 버튼 (표시되는 경우)을 클릭합니다 .


0

Visual Studio 2015에서 프로젝트가 열려있는 상태에서 Visual Studio는 파일이 외부에서 수정되었음을 스스로 발견하고 아무것도하지 않아도 자동으로 체크 아웃했습니다. 정상적인 방법으로 프로젝트를 체크인하면 외부 수정 사항이 저장됩니다.


0

제 경우에는 다음이 작동했습니다 (적어도 한 번 시도했습니다).

  1. 보류중인 변경 사항으로 이동 패널로
  2. 선택 보기 옵션을포함 또는 제외 된 변경에서 .
  3. 간 전환 모두 표시 솔루션 변경 사항 표시
  4. 원하는 경우 다시 전환

TFS 변경 새로 고침

보기 옵션을 변경하면 수정 된 파일이 강제로 새로 고쳐집니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.