솔로 개발자를 위해 DVCS를 사용하면 이점이 있습니까?


19

지금은 서버에서 시각적 svn을 사용하고 개인 컴퓨터에 ankhsvn / totoise가 있습니다. 그것은 충분히 잘 작동하며 변경할 필요가 없지만 DVCS 사용의 이점을 볼 수 있다면 갈 수 있습니다.

그러나 다른 사람들없이 사용했을 때 요점이나 차이점이 없다면 귀찮게하지 않을 것입니다.

다시 한 번 질문하지만, 유일한 개발자 인 경우 DVCS를 사용하면 어떤 이점이 있습니까?


1
stackoverflow에서 비슷한 게시물을 참조하십시오 : stackoverflow.com/questions/179161/… . 알아야 할 모든 것이 잘 요약되어 있습니다.
ysolik

그래서 내 질문은 이것과 똑같이 복제되었습니다. 불행히도이 질문은 내 대답에 맞지 않습니다. 솔로 개발자 일 때 마스터에서 밀고 당기나요, 아니면 분기하고 병합합니까? DVCS를 사용하는 올바른 방법이 당신이 혼자있을 때
어떤지 보려고합니다

1
백업은 본질적으로 다른 복제 일뿐입니다. 언젠가는 매우 중요 할 수 있습니다. 또한 git 툴링은 svn보다 수년 앞서 있습니다.

서버에서 멀리 떨어진 랩톱에서 작업 한 적이 있습니까?
JBR 윌킨슨

답변:


19

예! 가장 큰 이점은 많은 DVCS가 제공하는 더 나은 분기 + 병합 지원입니다. 분기 및 병합은 SVN의 엉덩이에 일종의 고통입니다. 빠른 기능 추가, 버그 수정 또는 실험을 위해 작고 수명이 짧은 브랜치를 만드는 데는 시간이 걸리지 않을 정도로 성가 시지만 병합도 오래 걸리는 브랜치를 만드는 데 어려움이 있습니다. 반면, 분기 및 병합은 Git에서 매우 쉬워서 작업하는 거의 모든 버그 수정 또는 기능에 대해 (로컬) 분기를 만듭니다.

repos, grepping log 등을 시각화하기 위해 Git이 제공하는 도구는 SVN보다 훨씬 뛰어납니다 (DVCS에 비해 Git이 더 중요합니다).

DVCS에는 중앙 서버가 필요하지 않습니다. SVN을 개발자로 사용하는 경우 모든 저장소에 전체 히스토리가 포함되므로 로컬 저장소를 작성해야합니다 .Git에는 필요하지 않습니다. 결과적으로 리포지토리를 보관하는 것은 프로젝트를 압축하는 문제 일뿐입니다. 백업 할 "중앙 데이터베이스"는 없습니다.

SVN을 얼마 동안 사용한 후 거의 4 년 전에 Git을 사용하기 시작했지만 되돌아 보지 않았습니다.



4
DVCS는 병합을 더 쉽게 만들지 않지만 DVCS 사용자는 병합을 수행하는 데 더 많은 연습이 있다는 견해 있습니다. 이렇게하면 주관적인 모양의 병합이 더 쉬워집니다. 물론 그것은 주관적인 관점입니다.
Richard Richard

3
DVCS는 git과 독점적으로 동일하지 않습니다
Murph

6
@Richard 그러나 잘못된 것은 중앙 집중식 도구가 복잡한 병합을 잘 지원하지 않는 선형 이력을 갖는 경향이 있습니다.
대안

2
@ 머프 : 이것은 사실이지만 Git을 사용하므로 예제에서 사용했습니다.
mipadi

7

저는 개인적으로 DVCS를 많이 사용합니다. (나는 git $ HOME에 있는 사람들 중 하나입니다 .) 몇 가지 장점이 있습니다.

  • 랩톱과 데스크톱 및 랩 컴퓨터 간의 복제가 매우 쉽습니다. SVN에서도 마찬가지이지만 ...
  • 인터넷에 연결되어 있지 않아도 랩톱을 사용할 수 있습니다.
  • 백업은 간단합니다 git pull.
  • git citool커밋을 결정하기 전에 관련이없는 많은 변경을 수행 한 경우에도 많은 변경 사항을 논리적 크기의 커밋으로 나눌 수 있습니다 . Subversion 에서이 작업을 수행하는 도구를 모릅니다.
  • 오픈 소스 프로젝트를 패치해야 할 때 패치하는 소스 트리의 두 번째 사본을 만드는 것보다 프로젝트 디렉토리에 새로운 자식 저장소를 만들어서 정리하는 것이 더 쉽습니다. (하드 디스크의 다른 곳에 별도의 저장소가 필요하기 때문에 Subversion을 사용하면이 작업을 쉽게 수행 할 수 없습니다.)
  • 쉬운 분기 기능을 사용하여 다른 사람들로부터 얻은 개정판을 체크인합니다. 예를 들어, 고문과 함께 회의 보고서를 편집 할 때 저장소에 액세스 할 수 없더라도 종이 사본을 보내서 보낸 버전을 기반으로 지점에서 개정을 확인할 수 있습니다. 그런 다음 git merge자신의 수정 사항을 그 동안 내가 한 일과 병합 하는 데 사용 합니다.

Git은 Subversion보다 훨씬 많은 논리적 변경 사항에 대해 생각하는 데 익숙해졌습니다.


(또는 미러에 대한 git fetch)

5

너무 늦어서 잠이 들지 않으면 어머니가 모뎀을 끕니다. DVCS를 사용하면 모뎀이 꺼진 후에도 VCS를 계속 사용할 수 있습니다.


1
"비행기에서 일할 수있는 것"또는 "bitbucket.com이 다운 될 때 일할 수있는 것"이라고 말하지만 오프라인 사례를 다루기 위해 +1이라고합니다.
Wyatt Barnett

3G 네트워크가없는 실외 장소.
linquize

3

기본 대답은 "(지금 사용하는 것이 무엇이든) 효과가 있다면 왜 바꾸겠습니까?"입니다.

그러나 변경 이유가 없더라도 DVCS를 사용하는 것이 "이전 모델"보다 다소 쉽다는 것을 알게되었습니다. 다음은 내가 가장 많이 사용하는 Mercurial의 경우이므로 사용할 시스템에 따라 마일리지가 다를 수 있습니다.

  • 정말 사용하기 쉽습니다-한 시간 정도면 필요한 모든 명령을 알아 냈습니다.
  • 모든 것이 로컬 (원격 서버가 온라인 일 필요는 없음)
  • 매우 쉬운 분기 / 병합-더 이상 그런 것들에 대해 생각조차하지 않습니다.
  • 쉬운 클로닝 (또한 브랜치 유형)-일반적으로 훨씬 더 사용자 친화적 인 인터페이스 (창에서 git보다 즐겁습니다. 또한 일부 개념은 더 간단합니다. 즉 내 측면에서 생각할 필요가 없으므로 VS로 더 적은 어려움을 겪고 더 많은 작업을 수행)
  • svn과 잘 작동합니다

의욕에 대한 소개에 게이트 점프블로그 (꽤 색상 ;-) 유용한 팁 .


흠, CVS는 우리를 위해 일했지만, 우리가 옮길 때 Subversion뿐만 아니라 근처에도 없습니다. 새로운 장난감이 당신에게 새로운 기능을 제공합니다. 그래서 정확하게 이런 이유로 Mercurial이 더 나은 옵션이 될 수 있는지 (특히 FogBugz를 사용할 때) 또한 진실의 가능성을 찾고 있습니다.
Murph

3
SVN에서 Mercurial로 전환 한 것은 나를위한 계시였습니다. Joel의 멋진 hginit.com에서 영감을 얻었으며 결코 뒤돌아 보지 않았습니다.
Adam Crossland
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.