문제

제가 일하는 곳에서는 SVN과 TortoiseSVN(Windows XP)을 클라이언트로 사용하고 있습니다.출퇴근 시간이 길어서 그 동안 오프라인으로 작업합니다.
이제 로컬에서 일종의 "확장 실행 취소"를 수행하고 싶습니다.즉.예를 들어 감히 리팩터링을 수행하기 위해 SVN 작업 복사본의 로컬 버전 제어를 갖고 싶습니다.
예를 들어 완전히 전환합니다.자식, 머큐리얼 등회사는 SVN을 사용하므로 옵션이 아닙니다.

내가 알고 싶은 것은 로컬 SVN 작업 복사본의 버전 관리에 경험이 있는 사람이 있는지, 아마도 로컬 git 또는 이와 유사한 실행을 통해 수행할 수 있는지입니다.
잠재적인 단점이 있나요?(아마도 .svn 폴더 등을 망칠 수도 있습니다)

도움이 되었습니까?

해결책

나는 보통 이것을 좋아한다 :

  1. SVN 저장소를 작업 사본으로 가져옵니다.
  2. 이 작업 사본에서 git 저장소를 초기화하십시오.
  3. 해킹 해킹;
  4. 내 git repo에 헌신하십시오.
  5. 회사 SVN에서 업데이트.
  6. 갈등을 해결합니다.
  7. 회사 SVN Repo에게 완전한 기능을 제공하십시오.

다른 팁

나는 GIT를 일을 위해 로컬 파괴 고객으로 사용하며 훌륭하게 작동합니다. 당신이 할 때 git svn clone Subversion Repository의 경우, 당신이 얻는 체크 아웃에는 숨겨져 있지 않습니다. .svn 디렉토리이지만 대신 그 자체로 완전한 git 저장소입니다. 내 자신의 개발을 조직하기 위해 로컬의 경량 지점을 사용하는 능력은 나에게 킬러 기능입니다.

내가 항상 사용하는 다른 기능은입니다 git stash, 무대 커밋 및 git add -p.

SVN 내보내기를 사용하여 작업의 스냅 샷을 만들고 나만의 전복 저장소를 작성하고 작업 저장소의 스냅 샷을 초기 체크인으로 사용할 수 있습니다.

그런 다음 변경할 때까지 변경하고 전복 (로컬 저장소 사본)을 사용할 수 있습니다. 물론 메인 작업 저장소에서 정기적으로 병합하여 콘텐츠가 최신 상태인지 확인할 수 있습니다. 마지막으로, 피로서가 완료되면 단순히 로컬 저장소의 SVN 내보내기 스냅 샷을 수행하여 메인 작업 저장소로 다시 병합합니다.

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

일에 충분히 충분히 액세스 할 수있는 경우. 컨텐츠의 분기를 만들고 작업 저장소에서 분기에서 작업을 독점적으로 만 수행 할 수 있으며 확장되지 않은 실행 취소 기능이 필요할 때 로컬 리포지토리 메소드를 사용할 수 있습니다. 이 시점에서 물론 로컬 버전 제어 시스템을 사용하면 전복으로 제한되지 않으므로 선택하십시오.

당신은 시도하고 싶을 수도 있습니다 SVK 전복에 기초한 탈 중앙화 된 VC. 노트북의 공식 저장소를 반영하고 공식 트렁크와 커밋을 동기화하는 데 사용할 수 있습니다.

지난번 SVN 현황을 확인해 보니 로컬 체크인 지원은 여전히 ​​장기적인 기능 계획이었습니다.반면에 Git은 git-svn과 함께 확실히 옵션입니다.즉, 아키텍처가 Unix, AFAIK인 경우 git-svn은 아직 Windows 플랫폼에서 지원되지 않습니다.

로컬 SVN 서버를 실행하는 것을 방지하는 것은 없습니다. 나는 그것을 그렇게 사용하고 있습니다.

git은 좋은 해결책이 될 것입니다 (많은 지점을 매우 쉽게 만들고 병합 할 수 있기 때문에).

  • 수정을 SVN에 다시 가져 오면 먼저 GIT에서 만든 많은 중간 분기를 정리해야합니다.
  • git-svn은 git의 Windows 배포와 함께 작동하지 않으므로 Windows에서 작업중인 경우 Linux 가상 이미지를 사용할 수 있습니다.
  • GIT-SVN을 실행할 수 있다면 다음에 설명 된대로 git2svn et svn2git Ruby 스크립트를 사용하십시오. 이 질문
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top