Subversion : 로컬 리비전을 밀어 넣지 않고 커밋하고 나중에 밀어 넣을 수 있습니까? 아니면이 기능이 부족하여 "중앙화 된"이유가 무엇입니까?svn : local 커밋
답변
Subversion으로 로컬 커밋을 수행 할 수 없습니다.
이것은 중앙 집중식 버전 제어 시스템으로 인해 로컬 작업 복사본에 서버가 이전 버전, 로그 항목 등에 대해 가지고있는 정보가 모두 포함되어 있지 않기 때문입니다. 분산 버전 제어 시스템 (DVCS).
Subversion 작업 복사본에는 체크 아웃 된 모든 파일의 복사본이 포함되어 있으므로 서버에 연결하지 않고 변경된 파일을 되돌릴 수 있습니다.
로컬 커밋을 실제로 수행하려면 Subversion 위에 구축되어 DVCS와 유사한 기능을 제공하는 SVK을 살펴 봐야합니다.
SVK에 대한 경험이 있습니까? 나는 그것을 조금 사용했고 괜찮아 보였지만, 나는 더 이상 부드러운 svn 사용에 대한 믿음이별로 없다. 나는 그것의 위에 지어지는 무엇이라도 단지 흔들 거리는 것과 같을 것이다라고 생각할 것이다. – jskulski
@jskulski : SVK에 대한 경험이 없지만 "antiFUD"페이지에서 질문에 답합니다. http://svk.bestpractical.com/view/SVKAntiFUD – Catskul
이 대답은 약간 오해의 소지가 있습니다. SVN이 중앙 커밋되어 로컬 커밋이 불가능하기 때문이 아닙니다. 단순히 생략 된 구현 세부 사항입니다. 로컬 커밋을 repo에 배치 푸시 할 수있는 변경 집합의 큐로 처리하는 것은 기술적으로 가능합니다 (svk가이를 보여줍니다) - SVN이 사용하기가 더 어려워지는 지점으로 UX를 변경합니다 (표준 워크 플로 사용). SVN은 기능이 아니라 사용의 편의성을 최적화하기로 선택합니다. 하지만 아무 것도 깨뜨리지 않고 Subversion에 해킹 당할 수 있습니다. –
그래서 중앙 집중식이라고합니다. 레포 내부에서 레포를 사용해 볼 수도 있습니다. 하나는 로컬이고 다른 하나는 원격입니다. 그런 다음 내부 저장소 전체를 원격지로 커밋합니다.
SVN 서버와 GIT 또는 Mercurial Bridge를 연결하면 그렇게 할 수 있습니다. GIT와 Mercurial은 로컬 커밋을 수행 할 수 있기 때문에 그런 식으로 사용할 수 있습니다. 어쩌면 자식 - svn 또는 뭔가 similiar 체크 아웃 (나는 거기에 바자 - svn 있지만 확실하지 기억).
이 변형은 SVN 작업 복사본에서 'git init'을 사용하는 것입니다. 로컬 커밋을 오프라인으로 설정하십시오. 나중에 SVN에 최종 상태 (또는 중간 상태)를 커밋합니다. 이 후 .git 디렉토리를 삭제할 수도 있습니다. 이것은 작업 복사본이 git-repo가 아닌 SVN 작업 복사본으로 유지된다는 것을 의미합니다. – fmarc
아니요! git하지만이 작업을 수행 할 수 있으며 git-svn을 사용하여 을 원래 저장소와 동기화 할 수 있습니다.
하는 두 세계의 최고 얻으려면, SVK는
다른 사람이 아니, 말했듯이 ... 서브 버전의 상단,하지만 로컬 커밋을 할 수 있도록 지역의 상태를 유지 관리에 지어졌습니다.
내가 은 원격으로 janky를 svn과 함께 사용하는 것이 좋습니다.
필자는 SVK를 사용하지 않았지만 충분히 좋았습니다. 그러나 나는 SVN의 최상위에 구축 된 것을 프로젝트 전체에 사용하는 것에 회의적이다. 나는 SVN을 충분히 사용하여 조심하지 않으면 정기적 인 작업주기라도 토스트 할 수 있음을 알고있다.
직장에서 SVN을 사용합니다. 나는 bzr 및 bzr-svn을 사용하여 모든 상호 작용을 수행했으며 은 멋지게입니다.내 워크 플로우는 뭔가 같은 :
$ bzr branch file:///var/svn/project ~/project
(해킹, 해킹, 해킹)
$ bzr commit -m "commit log"
(반복)
내가 준비가
$ bzr push
예, 설치 당신이 $ bzr merge
이 변경을 커밋 업데이트 EAD도있다 (아마도 당신이 작업하는 것을 선반)하지만 지역 커밋이 매우 좋은 점, 그리고 이을 선반 (등으로을 되돌릴 수있다 쉘빙 저장)
나는 이것을 잘 처리한다고 생각한다. 나는 그것이 bzr-svn만큼 완벽하지 않다고 들었지만, 나는 그것을 확증 할 수 없다.
하지만 svn 저장소가있는 DVCS를 사용하는 것은 좋은 방법입니다! (
패키지 "자식-SVN을"사용을 고려 :
위의 대부분은 한물되고,이 질문은 여기 "SVN 지역 커밋"에 대한 구글 검색에서 히트로 등장하기 때문에 업데이 트입니다했다 "git-gui"와 함께 git을 모르는 경우) 완전한 원격 SVN 통합으로 로컬 커밋을 가능하고 쉽게 만들 수 있습니다. 알맞은 개요/튜토리얼/사용 사례는 here입니다. Sourceforge 프로젝트에서이 프로세스를 사용하기 시작 했으므로 아직 어떤 문제도보고 할 수 없습니다. 작성자 파일을 올바르게 가져 오십시오!
편집 : 링크가 업데이트되었습니다. 고마워, HDL!
+1 - 여분의 중복에 대해. 나는 SVN이 지역 커밋을 소개 할 것이라는 것을 어느 곳에서나 읽었다 고 생각한다. – Seth
링크가 작동하지 않습니다. – thirtythreeforty
@thirtythreeforty : Archive.org에는 웹 페이지 사본이 있습니다. https://web.archive.org/web/20130924234957/http://utsl.gen.nz/talks/git-svn/intro.html – newenglander
BobC의 답변에 더해서 수은의 경우 hgsubversion
을 사용합니다.
- 1. -m없이 svn 커밋
- 2. SVN 커밋 쿼리
- 3. SVN 강제 원격 커밋
- 4. SVN 커밋 규정
- 5. SVN Windows XP에서 커밋
- 6. SVN 커밋 인증 실패
- 7. svn 커밋 메시지
- 8. SVN 커밋 오류 (윈도우 서버의 SVN)
- 9. SVN 분기 수준의 커밋 권한
- 10. SVN 커밋 실패 : 디렉토리가 오래되었습니다.
- 11. 크루즈 컨트롤을 사용하여 SVN 커밋
- 12. SVN 클라이언트 게시물 커밋 후크
- 13. Hudson, Svn & 커밋 후 알림이
- 14. SVN 체크 인/커밋 오류
- 15. 이전 날짜/시간으로 SVN 커밋
- 16. SVN 커밋 중에 작업을 실행
- 17. svn 커밋 메시지를 변경하는 방법
- 18. svn 커맨드 라인 커밋 수 tortoisesvn 커밋 수
- 19. 자식 svn : svn rebase 후 단일 병합 커밋 유지
- 20. SVN 저장소의 로컬 복사본에 대한 커밋 만들기
- 21. svn : 승인 된 사용자에게 트렁크 커밋 제한
- 22. SVN 커밋 오류 : " '. 작업 복사본이 아닙니다 "
- 23. SVN 그래뉼 포스트 커밋 메일 후크
- 24. git-svn Kerberos를 사용한 커밋 후 dcommit
- 25. Tortoise 사전 커밋 사용자에게 메시지 표시 SVN
- 26. SVN 사전 커밋 후크 Windows에서 업로드 FTP
- 27. 허드슨은 svn 커밋 후 건물이 없습니다
- 28. git-svn 병합 및 커밋 정보
- 29. SVN - 코드 형식을 검사하기위한 사전 커밋 훅
- 30. 사전 커밋 SVN 후크 + 이미지 최적화 스크립트
Git을 사용하십시오. 기능이 있습니다 – nightingale2k1