로컬 Subversion 변경 사항을 다른 시스템으로 전송하는 가장 힘든 방법은 무엇입니까?


3

나는 내 노트북에서 변화를 찾고있다. 아직 저장소에 제출할 준비가되지 않았지만 내 데스크톱에서도 계속 작업하고 싶습니다. 내 변경 집합은 매우 크고 수정 내용이 포함되어있을뿐만 아니라 새 파일과 삭제 된 파일도 포함됩니다.

전체 로컬 작업 복사본을 다른 컴퓨터에 복사하고 변경 내용을 적용 할 수 있습니다. 그러나 (다른 컴퓨터에서 메타 데이터를 오염시키기 때문에) 더러운 솔루션처럼 들리지만 불필요하게 빌드 아티팩트도 전송 중입니다.

TortoiseSVN을 사용하여 .patch 파일을 전송하려고했으나 "패치가 이전 버전에 속합니다"(사실이 아니며 상관합니까?) 또는 "행이 일치하지 않습니다"(예 : 그들을 바꿨다). 나는 "continuous error popups"경험을 전혀 좋아하지 않았다.

Cygwin을 설치하고 싶지 않으므로 명령 줄 패치가 도움이되지 않습니다.

마지막 옵션은이 기능에 대한 새 분기를 포크하고 "checkin/update"루프로 이동하는 것입니다. 그러나 이것들은 거기에 오염을 일으키는 trac 역사에 나타나 있습니다.

더 좋은 아이디어가 있습니까? 아니면 내가 놓친 게 있니?

  0

4 개의 대답은 아직 모두 동일합니다. 이 주제에 관한 아주 드문 합의 ... 21 feb. 092009-02-21 22:49:15

  0

분기가 올바른 방향이라고 확신합니다. 모두에게 감사드립니다. 가장 빠른 답변을 올바른 답으로 선택하겠습니다. "svn switch"트릭에 대한 보너스를주었습니다. 21 feb. 092009-02-21 22:56:28

5

분기가 깨끗한 해결책입니다. 이 거대한 변화를 위해 노력하는 동안 백업을 제공한다는 추가적인 이점이 있습니다. 말할 필요도없이, 기계 간의 미래 변화에 대한 쉬운 동기화.

하지만 전체 작업 디렉토리를 압축하여 다른 컴퓨터의 어딘가에 버릴 수도 있습니다.


1

이 목적으로 임시 분기를 만들 것입니다. 이렇게하면 SVN 도구 만 사용할 수 있으며 메타 메타를 오염 시키거나 아티팩트를 복사하지 않습니다.

또한 간격을두고 코드를 체크인하는 것처럼 보이며 분기를 사용하면 하드 드라이브가 손상 될 경우 데이터 손실을 방지 할 수 있습니다.


1

마지막 옵션이 아닙니다. 첫 번째 옵션은 실제로 너무 많은 변경 사항이있는 경우 이미 오래 전에 feature-branch를 만들어야합니다.

, 단지 체크인을 당신은 분기 디렉토리에 서버에서 작업 복사에서 svn의 사본을 수행하여 여전히이 작업을 수행 할 수 있습니다, 그래서 당신은 "체크인/업데이트의 루프를"필요하지 않습니다

, 단지 갱신/스위치.

처럼 SVN은 MyWorkingCopy SVN을 복사 : //theserver/프로젝트/지점/기능/내-기능 지점


0

글쎄, 대부분의 사람들은 "변경 세트가 아주 큰"만일 당신이 확실히 확인해야한다고 주장 변경 사항 (필요한 지점에서)!

  0

그들은 정말로 :) 감사합니다. 21 feb. 092009-02-21 23:01:45

  0

아 글쎄, 느리게 입력하는 것 같습니다; 22 feb. 092009-02-22 19:34:59


7

새 분기를 만들고 svn switch을 사용해 보셨습니까? 초기 작업 개정에서 분기 할 경우 저장소의 다른 부분으로 이동하고 변경 사항을 유지합니다.


6

다른 방법으로는 을 믹스에 추가 할 수 있습니다. GIT의 분산 소스 코드 제어 모델을 사용하면 데스크탑과 랩톱간에 변경 집합을 앞뒤로 이동할 수 있습니다.그리고 GIT는 로컬 파일 시스템에 대한 변경 집합 정보를 관리하므로 TRAC 시스템이 모니터링하는 스트림에는 양쪽에 커밋 된 커밋이 나타나지 않습니다.

그래서 기본적으로 'subversion을 사용하여 오프라인으로 전환'하고 GIT 커밋을 사용하여 작업을 완료하십시오. 일을 마쳤 으면, 전체 장비와 카 부들을 당신의 Subversion 트렁크에 체크인하십시오.

피쳐 브랜치는 Subversion에서 가벼우 며 이와 같은 기능 관련 작업을 보완하는 데 적합합니다. Subversion 1.5 이상을 사용하는 경우 전체 동기화 및 병합 프로세스가 1.4보다 훨씬 쉬워집니다.

  0

좋은 생각이지만 사진에 다른 개정 제어 시스템을 추가하고 싶지 않습니다. 나는 갈라진 채로 붙어있을거야. 21 feb. 092009-02-21 22:59:46

  0

'git svn'이 Windows에서 잘 작동하지 않는다는 것은 말할 필요도 없습니다. 22 feb. 092009-02-22 09:16:18


1

데스크톱에 복제본 만 있으면 Live Sync가 해당 시나리오에서 완벽하게 작동한다는 것을 알았습니다. 노트북 컴퓨터와 두 대의 데스크톱에서 내 체크 아웃 폴더를 복제하도록 설정 했으므로 세 컴퓨터에서 정확하게 동일한 상태가됩니다. 그리고 모든 것은 백그라운드에서 계속 발생합니다.

또는 지점으로 이동하여 바탕 화면으로 이동하기 전에 랩톱에서 변경 내용을 커밋해야합니다. :-)

편집 : 댓글에 응답 있음 - 예, 두 컴퓨터가 동기화 과정에서 파일 편집을 시작하면 문제가 발생할 수 있습니다. 최악의 상황은 장비 중 하나의 편집을 풀어 버리는 것입니다. 실제로 이런 일이 발생할 확률은 아주 적습니다.

  0

또 다른 좋은 생각이지만 Live Mesh에 문제가 있습니다. 22 feb. 092009-02-22 00:14:55


0

시도해 볼 수 있습니다 SVK. 블로그 게시물과 SVK 사이트에서 일반적인 SVK 사용 시나리오는

  • 다음 컴퓨터에 지점을 만들 원격 저장소를 기존

    • 거울,
    • 로컬 인이 나뭇 가지에 작동하고,
    • 완료되면 미러 트렁크에 다시 병합하십시오.
    • 마지막 단계는 원격 저장소를 투명하게 업데이트합니다.

    SVK 사용에 관한 실무 경험이 없습니다. 하지만 당신 시나리오와 일치한다고 생각합니다. 이 블로그 게시물에 더 자세히 설명되어 있습니다 http://www.bieberlabs.com/archives/2004/11/30/using-svk/

    Windows 버전의 SVK를 사용할 수 있으며 (SVKWin32) TortoiseSVN은 업데이트/커밋을 위해 리포지토리의 로컬 미러를 사용할 수 있다고 생각합니다.