2009-05-13 3 views
0

우리 팀은 Visual Studio 2008을 사용하여 SSIS 패키지를 개발하고 Perforce를 소스 제어 시스템으로 사용합니다. 사용자가 프로젝트에 파일을 추가하면 현재 버전인지 여부를 확인하지 않고 프로젝트가 자동으로 체크 아웃됩니다. 파일을 체크 아웃하기 전에 Visual Studio에서 최신 버전의 파일을 가져 오도록 강제 할 수 있습니까?Visual Studio 2008의 PERFORCE 문제

우리는 일반적으로 Visual Studio에서 파일이 "누락"된 후에 이러한 현상이 발생했는지 확인합니다. 일반적으로 발생하는 상황은 다음과 같습니다.

  1. 사용자 A가 프로젝트에 파일을 추가합니다.
  2. 사용자 A는 프로젝트와 새 파일을 체크인합니다.
  3. 사용자 B가 최신 버전을 가져 오지 않고 프로젝트를 체크 아웃합니다.
  4. 사용자 B가 파일을 추가합니다.
  5. 사용자 B는 프로젝트와 새 파일을 모두 체크인합니다.
  6. 사용자 A는 최신 프로젝트 정의를 가져 와서 해당 파일이 "누락 됨"을 알립니다.

방지 조치로 파일을 추가하기 전에 즉시 팀 구성원에게 최신 프로젝트 정의를 적용해야합니다. 이 예방 조치에도 불구하고 실수는 계속 발생하고 파일은 사라집니다. PERFORCE에서 수동으로 가져 와서 프로젝트 정의에 다시 추가 할 수 있지만,이 고통을 전혀 겪어서는 안됩니다. Perforce가 파일에 대한 변경 사항을 자동으로 감지 할 수 있다는 것을 알고 있습니다. 퍼 포스는 자동으로 로컬 복사본을 서버 버전과 비교하고 체크 아웃 취소 취소를 선택할 때 차이점을 발견하면 로컬 버전을 교체합니다. 파일을 VSS처럼 체크 아웃 할 수있게하기 전에 검사하도록 강제 할 수있는 방법이 있어야합니다. 개발자가 VSS로 돌아가고 싶다고 말하면 슬프다.

+1

5 단계는 어떻게 수행됩니까? 나는 제출을하기 위해 p4v를 사용하고, 파일을 수정 한 후에 제출하지 않을 것이다. 그렇다면 갈등이 없더라도 여전히 해결해야합니다. 내가 다른 사람의 변경 사항을 풀어 줄 수있는 유일한 방법은 해결하는 동안 변경 사항을 무시하도록 선택하는 것입니다. –

+0

우리 사이트에서 이런 종류의 행동을 보지 못했습니다. 현재 사용중인 Visual Studio PERFORCE 플러그인의 버전은 무엇입니까? VS 통합을 더 잘 만든 지난 몇 가지 릴리스에 대해 많은 좋은 변경 사항이있었습니다. 현재 버전은 2008.2입니다. (3) 단계에서 개발자는 최신 버전으로 동기화하라는 메시지를 표시해야합니다. 난 그냥 우리의 환경에서 헤드 버전이 아닌 프로젝트에 새 cpp 파일을 추가하여 테스트했습니다. 프로젝트 파일의 최신 버전과 동기화하라는 메시지가 표시되었습니다. – Mark

답변

1

"공유"작업 영역 클라이언트가 P4SCC 및 Visual Studio와 함께 사용되는 경우 문제 일 수 있습니다. 작업 공간 클라이언트는 각 사용자 및 시스템에 고유해야합니다. PERFORCE는 작업 공간 클라이언트를 사용하여 특정 시스템의 작업 공간 내용을 추적합니다.

다음은 두 사용자가 동일한 작업 공간 클라이언트를 사용하는 경우가 발생하는 방법은 다음 최신 버전에 모두 사용자 A와 B의 힘 동기가 "표준 _1"클라이언트를 사용하여

  • . 테이블 이 서버에 업데이트되어 프로젝트 "foo"가 리비전 # 12에 있음을 알립니다.

  • 사용자 B는 "foo"를 체크 아웃하고 파일을 추가하고 을 제출합니다. 이제 테이블이 이고 프로젝트 "foo" 이 standard_1 작업 공간의 수정본 # 13에 있습니다. 억지로가 이미 작업 공간 생각 #을 가지고 때문에 표준 _1 작업 공간에서 개정 # 14 -

  • 사용자 A는 이제 파일을 추가, 프로젝트 "foo는"을 확인하고 제출 - 충돌없이 13.

해결 방법은 각 사용자가 자신의 컴퓨터에 고유 한 작업 영역 클라이언트 사양을 갖고 있는지 확인하는 것입니다. 이렇게하면 각 사용자 작업 영역에 대한 보유 목록이 분리되고 체크인시 편집 및 충돌에 대한 경고가 매번 작동합니다.

+0

나는 지난 금요일에 퍼 포스 (Perforce)에 전화를 걸어 기술 대표와 대화를 나눴다. 그는 우리의 전화에 대한 그의 기록을 검토 한 후에 같은 결론에 도달했습니다. 모든 팀 구성원이 이제 자신의 작업 영역 클라이언트를 사용하고 있으며 문제가 해결되었습니다. 게시물을 가져 주셔서 감사합니다! –