2012-04-20 2 views
5

에서 분기 사용 이해 Subversion에 대한 완전한 신조어이지만 SourceSafe의 무서운 그림자를 피하려고합니다. 그래서 나는 배우고, 무엇이 무엇인지를 가르치려고 노력했습니다. 그리고 나는 아직 이해하지 못하는 장애물들을 발견했습니다.Visual Studio 2010, AnkhSVN 및 SVN 1.7.4

SVN 1.7.3은 로컬 Linux 상자에서 실행됩니다. AnkhSVN은 VS 2010 설정 내에 설치됩니다. VS/AnkhSVN은 내 저장소와 대화 할 수 있습니다. 그래서 시작하기 위해 아주 간단한 콘솔 프로젝트를 실험하기 시작했습니다. 지금까지 발견 한 지침에서 제안한대로 트렁크, 분기 및 태그 디렉토리를 만들었습니다.

새로운 콘솔 솔루션을 만들었고 Ankh가 권장 저장소 "트렁크"폴더 아래에있는 저장소에서 해당 프로젝트를 만들도록했습니다. Program.cs에 "Hello, World"행 이상을 추가 한 후에는 변경 내용을 트렁크에 적용합니다. 그게 효과가있어 ... 지금까지, 너무 좋아 ...

저는 이제 사설 지부에서 일하고있는 척하고 싶습니다. 그래서 Subversion-> Branch Project ...를 "trunk"에서 선택하고 "헤드/최신"버전, "생성 후 분기로 전환"확인 그게 잘 될 것 같습니다. 상황이 아슬 아슬 얻을 곳

문제 1.

지금 여기. 개인용 분기의 프로젝트에 단일 소스 파일을 추가하여 파일을 추가하기로 결정했지만 개인 분기에서 트렁크로 파일을 가져올 수 없습니다. 병합/재 통합이 작동하지 않습니다. 업데이트가 작동하지 않습니다. 스위치가 작동하지 않습니다. 자, 브랜치에서 트렁크로 전환을 시도한 후에, VS는 내 프로젝트 파일이 손상되어로드 할 수 없다고 알려줍니다.

분명히, 나는 끔찍한 잘못을 범했지만, 무엇을 모르겠다. 트렁크 작업 복사본을 얻고 병합을 수행해야하지만 VS 프로젝트 폴더 설정에서 어떻게해야합니까?

문제, 서브 버전 관리 프로젝트를 비주얼 스튜디오 측에서 구성되는 방법을 이해하는 문제 (1)의 일부가 될 수 2

나의 다음 문제 또는 질문. Unix 측에서 프로젝트를 로컬 폴더로 가져올 수는 있지만 VS 프로젝트의 일반적인 디렉토리 구조가 Subversion의 영향을받는 방법은 분명하지 않습니다. 로컬 Visual Studio 상자에서도 트렁크 및 분기 폴더를 복제해야합니까? 트렁크에서 사설 브랜치 (또는 그 반대)로 "전환"하는 경우 해당 파일이 VS 폴더의 동일한 집합으로 이동해야하거나 트렁크 및 분기에 해당하는 집합이 있어야합니다. ?

문제 3 이 초보자 SVN 질문을 더하지만, SVN 충돌이있다 나에게 말할 때, 나는 아직이를 해결하는 방법을 이해하지 않습니다. ankhSVN 플러그인에는 충돌을 해결하기위한 특별한 도구가 있습니까? 아니면 전체 svn 도구를 사용하여 호스트 서버에서 수정해야합니까? 그렇다면 해결해야 할 "가장 일반적인"종류의 갈등은 무엇입니까?

+0

다른 답변을 수락하면 전 괜찮습니다. –

+0

감사합니다. 귀하의 답변에 좀 더 깊이를 주셨 기 때문에 당신의 것을 받아 들였습니다. 그러니 SO가 "준우승"응답이나 다른 좋은 대답을위한 "소품"같은 것을 허용 할 수 있기를 바랍니다. tho :) 축복받은 하루 되십시오. –

답변

2

첫 번째 할 일 : Version Control with Subversion의 처음 두 장을 읽고 예제로 재생하십시오. 후자를 수행하려면 Slik SVN과 같은 명령 줄 클라이언트를 사용하는 것이 좋습니다.

AnkhSVN만으로는 SVN 클라이언트가 충분하지 않습니다. SVN을 VS에 통합하기위한 편리한 도구 일뿐입니다. 따라서 GUI 클라이언트 (명령 행 클라이언트 외에도 IMHO는 필수 사항 임)를 사용하려는 경우 Windows에서 가장 많이 사용되는 클라이언트는 Tortoise SVN입니다.

(적극적으로) 서브 버전으로 버전 관리를 읽는 것은 몇 가지 초기의 생각이 여기에 현재 모든 질문에 당신을 도울 수 있지만됩니다

문제 1 당신이 지점을 커밋나요

? 당신은 문제 svn info [repo_url]/branches/[your_branch]

실행하여 확인 할 수 2 그것은 당신의 부분에 약간의 오해가있는 것 같다 : SVN은 또한 로컬 파일 (이 용어는 '체크 아웃'이다) '당긴다'. 책을 읽으십시오 !!!

일반적으로 SVN 구조는 폴더 구조를 반영해야하며 반대의 경우도 마찬가지입니다. 또한 일반적으로 한 번에 하나의 브랜치에서만 작업하고 하나의 브랜치를 체크 아웃합니다. 다른 지점에서 일할 필요가있을 때 'svn switch'를하십시오. 공간을 절약합니다. 이제 당연히 repo 루트에서 시작하는 모든 저장소를 체크 아웃 할 수 있습니다.하지만 왜 그렇게할까요? (나는 그러한 상황을 생각할 수 있지만, 정규 워크 플로우보다는 저장소 유지 보수에 더 관심이있다).

문제 3 충돌 - 당신이 책을 읽을 때까지는 논쟁 할 가치가 없습니다.

올바른 방향으로 알려 주시기 바랍니다. 이 책의 처음 두 장을 읽으면 몇 시간에서 며칠이 걸릴 것입니다.

+0

의견 및 팁 주셔서 감사합니다. 분지는 확실히 투입되었다. 내가 트렁크로 다시 통합하기 전에 그 일을 했습니까? 또한 AnhkSVN 자체가 전체 SVN 클라이언트 역할을하기에 충분히 크지 않다는 것을 깨달았습니다. 그래서 TortoiseSVN을 설치 했으므로 이미 도움이되었습니다. 트렁크의 새로운 복사본을 뽑아 여기에서 내 브랜치를 재 통합했고 추가 소스 파일이 즉시 추가되었습니다. 나는 또한 그 책을 더 읽고 더 많은 통찰력을 얻을 것이다. 교육에 감사드립니다! –

+0

> _I TortoiseSVN_ 을 설치했습니다. 여전히 SVN을 제대로 배우려면 명령 줄 클라이언트가 필요하다고 생각합니다. 학습 곡선은 약간 가파르지만, 더 깊은 통찰력을 얻을 수 있습니다. 그런 다음 몇 가지 고급 사례를 제외하고 대부분 GUI 클라이언트를 사용합니다. 행운을 빕니다! –

+0

malenkiy_scot, 아마 내 나이에 싫증이 있지만, 나는 그 이유 때문에 대부분의 도구에 대한 명령 줄 인터페이스를 선호합니다. 일반적으로 상황이 후드에서 어떻게 작동하는지 이해하는 데 훨씬 더 가까이갑니다. 이번 주말에 더 많은 독서와 실험을하기를 원한다면 정보의 일부가 회색 물질에 균열을 발견하게 될 것입니다. 도움에 감사드립니다. –

2
  1. 파일을 추가하고 커밋 했습니까?

  2. 예 : here에 나와있는 것처럼 동일한 폴더를 유지하는 스위치를 사용하거나 트렁크와 분기에 대해 두 개의 분리 된 폴더를 가질 수 있습니다. 그것은 당신에게 달려 있으며 귀하의 프로젝트에 적합한 것입니다. 프로젝트가 특정 경로 (예 : 웹 서비스)에 있어야하는 경우 스위치를 사용하는 것이 더 좋습니다.

  3. 안타깝게도 내 앞에 Ankh가 없지만 Ankh에 포함 된 도구로 충돌을 편집하거나 해결할 수 있어야하지만 타사 도구를 사용하도록 구성을 변경할 수도 있습니다. 문서 here.

+0

고마워, WhiteKnight. 갈등의 물리적 해결은 Ankh에서 할 수 있습니다. 제 질문은 Ankh가 겉으로는 내 지점을 트렁크와 다시 병합 할 수 없었던 이유입니다. 다른 회신에 대한 응답으로 언급했듯이, 아마도 Ankh의 한계 일 수도 있으므로 내 고객 상자에 TortoiseSVN을 다운로드하고 첫 번째 시도에서 다시 통합 할 수있었습니다. 나는 여전히 배우고 있지만, 지금까지 배운 것은 AnkhSVN 그 자체가 "진정한"SVN 클라이언트로서 적절하지 않다는 것입니다. –

+0

역사적으로 AnkhSVN은 Subversion의 모든 작업을 수행 할 능력이 없었지만 이제는 대부분의 작업을 수행 할 수 있습니다. 필자는 일반적으로 TortoiseSVN을 통해 대부분의 작업을 수행하지만 AnkhSVN을 사용하여 소스 제어에서 발생하는 상황에 대한 정보를 제공합니다. – WhiteKnight