2009-03-02 4 views
3

제 일의 자리에는 SVN과 TortoiseSVN (Windows XP)을 클라이언트로 사용합니다. 나는 길고 통근하고 오프라인 기간 동안 일한다.
이제 로컬에서 "확장 실행 취소"기능을 사용하고 싶습니다. 즉, 예를 들어 리팩터링을 감히하기 위해 SVN 작업 사본의 로컬 버전 관리를하고 싶습니다.
예 : git, mercurial 등은 SVN을 사용하기 때문에 옵션이 아닙니다.SVN 작업 복사본의 로컬 버전 제어 경험이 있습니까?

내가 알고 싶은 것은 다른 사람이 로컬 SVN 작업 복사본을 버전 관리하는 데 경험이 있거나 로컬 git 또는 비슷한 것을 실행하는 것입니다.
잠재적 인 단점이 있습니까? (아마도 .svn 폴더 또는 그와 유사한 부분을 망친다.)

답변

1

에 설명 된대로, 나는 보통 다음과 같이 수행

  1. 복사 작업으로 SVN 저장소를 가져옵니다.
  2. 이 작업 카피에서 Git 저장소를 초기화하십시오.
  3. 핵 해킹 핵;
  4. 내 힘내 레포에 대한 책임.
  5. 회사에서 새롭게 업데이트.
  6. 충돌을 해결하십시오.
  7. 회사 SVN repo에 완전한 기능.
+0

일부 "바닐라"SVN 클라이언트를 사용하여 모든 SVN 저장소 통신을 수행합니까, 아니면 어떤 시점에서 어떤 자식/Subversion 통합 도구를 사용합니까? – Niklas

+0

TortoiseSVN입니다. Windows에서 SVN 지원 MSysGit은 잘 포팅되지 않습니다. 회사의 repo에서 어떤 것도 파괴 할 위험이 없습니다. 따라서 "회사"의 "표준"SVN 클라이언트와 "나"의 Git 클라이언트를 사용합니다. –

+0

오프라인으로 작업 할 때 다른 버전 제어 시스템을 사용하는 것이 어떻습니까? 예 : 로컬 VSS? –

3

나는 Git을 작업을위한 로컬 Subversion 클라이언트로 사용한다. Subversion 저장소의 git svn clone을 실행하면 얻은 계산에 숨겨진 .svn 디렉토리가 없지만 그 대신 자체적으로 완전한 Git 저장소입니다. 로컬, 라이트 웨이트 브랜치를 사용하여 내 자신의 개발을 구성하는 기능은 저에게있어 가장 중요한 기능입니다.

내가 항상 사용하는 기타 기능은 git stash, 준비 완료 커밋 및 git add -p입니다.

+0

Windows 버전인가요? – Niklas

+0

실제로 그것은 OS X 및 Linux에 있습니다. 나는 당신이 Windows를 사용하고 있고, git-svn이 Windows에서 한 번에 작동하지 않는다는 것을 안다. 아마도 지금은 그렇습니다. –

+0

아니, 자식 - svn 창문에 아주 잘 작동하지 않습니다 - 최소한 MSysGit를 사용합니다. –

0

지난번에 SVN의 상태를 확인한 후에도 로컬 체크인 지원은 여전히 ​​장기적인 기능 계획이었습니다. 힘내, 반면에, 확실히 선택 사항입니다, 자식 - svn. 즉, 아키텍처가 Unix 인 경우 AFAIK, git-svn은 Windows 플랫폼에서 아직 지원되지 않습니다.

1

svn 내보내기를 사용하여 작업의 스냅 샷을 만든 다음 고유 한 Subversion 저장소를 만들고 작업 저장소의 스냅 샷을 초기 체크인으로 사용할 수 있습니다.

그런 다음 변경 사항을 적용하고 완료 될 때까지 Subversion (로컬 저장소 사본)을 사용할 수 있습니다. 물론 주 작업 저장소에서 정기적으로 병합을 수행하여 콘텐츠가 최신 상태인지 확인할 수도 있습니다. 마지막으로, 당신의 refectoring가 완료되면 간단하게 로컬 저장소의 svn 내보내기 스냅 샷을 수행하고 그것을 주 작업 저장소로 병합하십시오.

이것은 약간 미숙하지만이 유형의 작업 흐름을 관리하는 유일한 방법입니다.

정규 근무할 수있는 충분한 권한이있는 경우. 컨텐츠의 분기를 작성하고 작업 저장소의 분기에서 독점적으로 작업하고 확장 실행 취소 기능이 필요할 때 로컬 저장소 메소드를 사용할 수 있습니다. 물론 로컬 버전 제어 시스템을 사용하는이 시점에서 당신을 전복으로 제한하지 않으므로 선택하십시오.

0

아무 것도 로컬 SVN 서버를 실행하지 못하게합니다. 나는 그런 식으로 사용하고있다.

0

힘내 (당신이하고 아주 쉽게 여러 가지를 병합 할 수 있기 때문에) 좋은 해결책이 될 수 있지만 것입니다 : 때

  • 는 SVN에 수정을 다시 가져 오기 당신은 정리 먼저 많은 중간 지점 당신은 아래에 생성한다 자식; 당신이 윈도우
  • 에서 작업하는 경우 git2svn 등 svn2git 루비 스크립트를 사용하여, 자식 - svn을 실행 할 수 있습니다 경우
  • 자식-SVN은 망할 놈의 Windows 배포 작동하지 않습니다, 그래서 당신은 리눅스 가상 이미지를 사용할 수 있습니다 this question
1

전복을 기반으로 한 분산 형 VCS 인 SVK을 사용해 볼 수 있습니다. 노트북의 공식 저장소를 미러링하고 공식 트렁크와 커밋을 동기화하는 데 사용할 수 있습니다.

+0

+1 왜냐하면 SVK는 본질적으로이 문제를 해결하기 위해 설계 되었기 때문입니다 (오프라인 SVN이 커밋). 하지만 불행히도 TortoiseSVN에서는 작동하지 않는 작업 복사본 형식이 있습니다. –

+0

: P TortoiseSVN에 대해 몰랐습니다 ... 오 ... –

관련 문제