Subversion Repository를 복원하고 모든 사람의 로컬 변경으로 최신 정보를 얻습니다.

StackOverflow https://stackoverflow.com/questions/1440950

문제

나는 HotCopy를 사용하여 내압 저장소를 백업하지 않았습니다. 거북이와 함께 Visual SVN 서버 (최신)를 사용합니다. 나는 C : 리포지토리를 복사하고 며칠 전에 그것을 뒷받침했으며 지금은 복원하고 싶습니다.

백업 된 저장소 폴더를 복사 한 상태에서 지금 저장소를 사용할 수 있습니다.

그리고 이제 나는 팀의 모든 사람의 지역 프로젝트를 수동으로 진행하여 누가 Lates 개정판을 가지고 있는지 확인 했습니까? 그렇다면 몇 시간이 걸릴 것입니다.

이것이 올바른 방법인지 유일한 방법인지 아는 사람이 있습니까? 이 매뉴얼입니까? 나는 모든 사람이 로컬에서 다른 변화를 가지고 있기 때문이라고 생각합니다.

도움이 되었습니까?

해결책

이 접근법은 어떻습니까, 각 개발자 :

  1. TortoisesVN-> 현재 유효하지 않은 작업 사본을 임시 위치로 내보내십시오.
  2. 복원 된 저장소에서 새로운 체크 아웃을받습니다
  3. 새 작업 사본의 상단 위에 내보낸 작업 사본 (예 : No .SVN Dirs)을 사본
  4. 평소에 따라 업데이트 및 커밋

평소보다 더 많은 병합 충돌을 얻을 수 있지만 일반적인 방식으로 해결 될 수 있습니다.

다른 팁

백업 이후에 이루어진 모든 변경 사항은 저장소에 존재하지 않으며 모든 사람은 복원 된 저장소에서 새로운 체크 아웃을해야합니다. (개정 번호가 바뀌었고 그렇지 않으면 엉망이 될 것입니다.)

개발자의 현지 사본의 변경 사항을 구제하는 데는 그렇습니다. 그렇습니다. 이는 다소 매뉴얼이 될 것입니다. 그러나 "diff"와 "patch"는 당신의 친구입니다. Cygwin에 익숙하지 않은 경우,이를 얻고 Diff, Patch, Diffutils 및 Patchutils 패키지를 얻으려면 'diff'명령과 '패치'명령을 얻을 수 있습니다. "diff"명령을 사용하여 소스 트리의 한 사본과 다른 사본 사이에 델타가 포함 된 파일을 만들 수 있습니다. 다음과 같이 사용하고 싶을 것입니다.

diff -urN --exclude=.svn fresh_check_from_new_repo old_working_copy > developer1changes.patch

각 개발자의 작업 사본에 대해 그렇게하십시오. 다음과 같은 "Patch"명령을 사용하여 해당 파일을 가져 와서 새로운 체크 아웃에 변경 사항을 적용 할 수 있습니다.

cd working_copy
patch -p1 -i ...../developer1changes.patch

이제 변경 사항이있는 작업 사본이 있습니다. (SVN이 추가되지 않으면 SVN RMS 및 속성이 변경됩니다.) 여기에서 커밋해야 할 사항을 결정하십시오.

"FilterDiff"명령을 사용하여 패치 파일을 가져 와서 변경 사항의 부분을 가져 와서 패치로 파이프를 사용하면 변경 사항 만 적용 할 수 있습니다.

편집하다:또 다른 옵션 : 각 개발자의 경우 지점을 만들고 해당 지점을 확인한 다음 해당 새로운 작업 사본 및 커밋의 파일을 통해 로컬 사본을 복사하십시오.

그것은 저장소의 모든 작업을 잃어 버리지 않는 저장소의 모든 작업을 가져옵니다. 그런 다음 지점을 트렁크로 병합하려고 할 때 갈등을 처리해야합니다. 이 시점에서 GUI 도구를 사용하여 보관하거나 던지는 변경 사항을 선택할 수 있어야합니다.

그러나 짧은 대답은 다음과 같습니다. 최근 repo의 백업이 없기 때문에해야 할 일이 많습니다. 따라서 다시 작업 할 수있게되면 훨씬 더 빈번한 백업 일정을 설정하십시오. .

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top