“Git 사용자를위한 SVN”리소스는 어디에서 찾을 수 있습니까? [닫은]


18

그래서 나는 회사가 SVN을 사용하는 직책을 맡았습니다 (그러나 언젠가는 Git으로 옮길 것입니다). 문제는 SVN을 모른다는 것입니다. 나는 수많은 Google 쿼리를 시도했지만 SVN-> Git 튜토리얼, "SVN보다 Git이 더 나은 이유"블로그 및 (일부) 비교 가능한 명령을 제공하는 특정 "치트 시트"만 찾을 수 있습니다 ...

짧은 있습니다 (하지만 무엇 SVN에 오라일리 책을 읽고 짧은, 너무 브리핑) 망할 놈의 사용자를위한 SVN에 대한 지침?


3
a) && 자식 푸시 D 커밋 자식 =) 분기가 ;-) ... 디렉토리 에뮬레이션 확약 SVN 인덱스, b) 최대 svn을 = 자식 손잡이, c)가 없음 요컨대
요하네스

1
이 주제에 대해 어떻게 더 많은 정보를 얻을 수 있는지 잘 모르겠습니다.
agent154

5
절대 안돼. P.SE에서 가장 중요한 것은 주제입니다.
JensG

@ agent154는 귀하를 위해 크라우드 소스 검색 엔진이되도록 요청하지 않습니다. 당신이 겪고있는 문제를 식별하십시오. 문제는 "svn에서 어떤 것을 찾을 수있는 곳"이 아닙니다. 해당 명령이 'svn'명령과 관련이 있고 작성 방법을 찾고 있다면 스택 오버플로를 요청하십시오. 그것이 svn의 워크 플로우와 구성에 관한 것이면 (분기 시점, 병합 시점, 다른 개발자와 작업하는 방법)-여기에 문의하십시오.

2
확인 된 문제는 SVN을 Git 사용자로 이해하기 위해 약간의 원격 준비가 가능한 리소스가 부족하다고 생각합니다. 솔직히 말해서, OP / 언급 한 것 이외의 다른 것을 찾지 못한 Google / DuckDuckGo 결과의 여러 페이지를 쏟은 후에이 슈퍼에 대한 토론이 유용하다는 것을 알았습니다.
Metagrapher

답변:


8

표준 참조는 Subversion RedBook 입니다. 과거의 기술에 관계없이 최신 정보를 읽고 필요한 모든 사용 정보를 얻을 수 있습니다. 어렵거나 완전히 외계인이 아니며 대부분의 사람들은 SVN이 git보다 이해하기가 훨씬 쉬우므로 주 명령을 조금만 읽으면 괜찮을 것입니다. 기본적인 사용법의 장 을 일어나서 문제없이 실행해야한다.

두 가지 주요 차이점이 있습니다.

  • 커밋 = 중앙 저장소로 푸시. 리베이스 또는 로컬 커밋이 없으며 풀도 없습니다.
  • 분기는 디렉토리별로 이루어집니다. 전체 리포지토리를 디렉토리 구조로 생각하면 분기는 마치 COW (Copy-On-Write) 시맨틱으로 심볼릭 링크를 만드는 것과 같습니다. git에서는 전체 저장소를 분기하고 그들 사이를 전환하여 새 분기가 작업 사본을 '오버레이'하고 SVN을 사용하면 저장소 조각을 바꿀 수 있습니다. 일반적으로 사람들은 최상위 폴더 (보통 분기라고 함)에 분기하므로 전환은 git의 '오버레이'작업 스타일과 훨씬 비슷해집니다.

분기는 사소한 것이며, 병합은 DVCS 사과 학자들이 만들고 싶어하는 것만 큼 나쁘지 않습니다. 특히 최상위 폴더의 "표준"트리오 (트렁크, 분기 및 태그라고 함)를 고수한다면 더욱 그렇습니다.

SVN이 git in bit하는 몇 가지 비트가 있으며 스파 스 디렉토리가 염두에 둡니다. 리포지토리의 일부만 체크 아웃합니다. 더 많은 부품이 필요할 때 필요한 것만 업데이트합니다. 거대한 저장소 (예 : 핵심 제품 및 많은 플러그인)가 있다면 훌륭합니다.

git만큼 좋지 않은 몇 가지 비트가 있습니다. 두려운 트리 충돌이 염려됩니다-디렉토리 수준에서 충돌이있는 곳 (예 : 누군가가 편집 한 파일을 삭제했습니다)

Windows를 사용하는 경우 TortoiseSVN을 사용하십시오. 그것은 주로 흔들린다.


다릅니다. SVN과의 병합은 파일이 누군가에 의해 이동되고 (기본적으로 SVN 자체에서 관리되는 삭제 + 추가 형식) 다른 사람에 의해 변경되면 나빠집니다. 그 외에는 좋은 대답입니다.
JensG

1
트리 충돌 문제에 대해 언급했습니다 ...이 상태는 다른 scms에 문제가되지만 git은 휴리스틱을 사용하여 이동 된 파일이 같은 파일인지 감지한다는 것을 이해하지만 변경 사항이 중요한 경우 여전히 잘못 얻을 수 있습니다 ( 예를 들어 파일이 2)로 분할됩니다.
gbjbaanb

Git은 트리 변경을 감지하기 위해 휴리스틱이 필요하지 않습니다. 사용자는 파일을로 이동해야합니다 git mv. SVN은 svn move있지만 SVN에서의 브랜칭과 병합은 일종의 해킹이므로 git처럼 트리 충돌을 자동으로 해결할 수 있다고 생각하지 않습니다 ...
Idan Arye

3
@IdanArye git mv는 add + remove로 구현됩니다. git은 휴리스틱을 사용하여 커밋 중에 이동 또는 복사가 발생했는지 확인합니다 (기본값은 "파일의 80 % 이상이 동일합니까?")
Izkata

3

가능하다면 git svn을 사용하십시오. 나는 당신의 상황에 있었고 반년의 좌절 끝에 git svn으로 전환했으며 그 이후로 행복했습니다.

Git svn을 사용하면 리포지토리를 로컬로 사용할 수 있으며 SVN 서버 커밋은 git svn rebase로컬 변경 사항을 하위 버전 트렁크로 git svn dcommit리베이스 한 다음 리베이스 된 커밋을 커밋합니다.

어쩌면 고급 Subversion 사용에는 적합하지 않지만 git을 로컬로 사용하기 때문에 모든 것이 좋습니다.

git clone을 사용할 때는 서브 버전 루트 폴더를 대상으로하지 말고 대상 디렉토리를 직접 복제해야합니다 (clone trunk). 이렇게하면 git이 훨씬 빨리 실행됩니다. 그렇지 않으면 작업 복사본이 커질 수 있습니다.

면책 조항 : Subversion 브랜치 등을 만들고 싶을 때 상황이 어떻게되는지 모르겠습니다. 함께 일한 팀은 브랜치를 사용하지 않았습니다 (나만 로컬 git 브랜치).

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