2

VirtualSVN 서버, TortoiseSVN 및 AnkhSVN을 실험 중이며 모든 것이 아직 완전히 새로운 것입니다.SVN 이진 파일로 인해 병합 충돌이 발생했습니다.

SVN에 Visual Studio 2010 (VB) 솔루션을 추가했습니다. 이 트렁크가 1.0.0 버전을 포함하고 나면 버전 1.0.0을 포함하는 태그와 버전 1.0.0-dev가 포함 된 브랜치를 가지고있었습니다. 필자는 (지점에서) 1.0.0-dev에 대한 작업을 시작했으며, 버전 1.1.0이 준비되었을 때 태그 버전 1.1.0과 새로운 지점 1.1.0-dev을 만들었습니다.

그런 다음이 최신 버전 (1.1.0-dev 분기)을 트렁크에 병합하려고했지만 병합 (tree?) 충돌 목록이 많습니다. 대부분은 dll 파일, 실행 파일 및 기타 이진 파일 때문입니다. 이 파일을 무시하는 것이 좋았습니다. Windows 탐색기에서 각 유형의 파일을 마우스 오른쪽 단추로 클릭하고 컨텍스트 메뉴 "TortoiseSVN - Unversion을 선택하고 목록을 무시하도록 추가 - * .dll"(그 후에 * .exe 및 일부 다른 파일).

이제 노란색 느낌표가 많은 솔루션 디렉토리 트리와 삭제 된 마크가 남았습니다.

내 질문은 :

  1. 가 최신 버전이 포함되어 있으므로 어떻게 트렁크를 업데이트하는 방법은 무엇입니까?
  2. 어쨌든 솔루션을 빌드 할 때 Visual Studio에서 생성되는 DLL을 어떻게 무시합니까?
  3. 빌드되지 않고 저장소에 포함되어야하는 제 3 자 dll이 있지만 파일이 동일하게 유지 될 수 있습니다. 어떻게 처리해야합니까?

답변

3

우선이는 삭제 표시가 당신이, 당신이 처음 변경 사항을 커밋해야 제거 (이 경우 그들은 삭제됩니다). 이 in the SVN Book에 대한 자세한 정보.

둘째, 당신은 내가 그리 좋은 생각 충돌을 해결하기 전에 바이너리 파일을 unversionned 것 같다 ... 난 이런 식으로했을 : 바이너리 파일을 가진

  • 트렁크에 모두 제시를 그리고 dev에 지점에, 당신은 당신이 충돌을 해결
  • 이 바이너리 충돌을 얻을
  • 변경 내용을 병합 (사용 중 분기의 또는 트렁크 버전) 당신이 t에서 해당 바이너리를 삭제 다음
  • 그는 리포지토리 (필요한 경우 무시 목록에 추가)

이 세 가지 마지막 질문에 대답하기 위해

  • svn commit하여 삭제하는 것을 잊지 마세요 :

    1 - 어떻게 내가 업데이트 않는다 트렁크에 최신 버전이 포함되어 있습니까?

    당신이 (당신이 트렁크의 작업 복사본이 있는지, 그리고 분기가 개정 25에서 만든 것으로 가정)과 같은 명령을 사용하여 트렁크에 개발 지점을 병합해야합니다 :

    svn merge -r 25:HEAD http://your/repos/branches/my-branch 
    

    2 - 어쨌든 솔루션을 빌드 할 때 Visual Studio에서 생성되는 dll을 어떻게 무시합니까?

    이 파일을 먼저 추가하지 않아야합니다. 그러나 어쨌든, 당신은 당신의 SVN repo에서 그들을 제거 할 수 있으며, 그들은 다음 빌드 동안 다시 생성됩니다. 자세한 내용은 this question을 (를) 참조하십시오.

    3 - 제 3 자 dll이 빌드되지 않았으며 저장소에 포함되어야하지만 파일이 동일하게 유지 될 수 있습니다. 어떻게 처리해야합니까?

    다른 유형의 파일과 마찬가지로 이진 파일을 저장소에 추가 할 수 있습니다. SVN이 파일이 바이너리인지 제대로 알지 못하는 경우 svn propset 명령을 사용하여 강제로 실행할 수 있습니다 (here).

  • 관련 문제