2008-09-16 2 views
11

수동으로 내 지사를 추적하고 내 저장소에서 병합하는 것에 지쳤습니다. 너무 오류가 발생하기 쉽습니다. 모든 사람이 중복을 줄이고 모든 것을 자동화하는 아이디어를 얻는 것처럼 보일 때, Subversion 분기/병합은 80 년대에 남겨진 것처럼 느껴집니다. 분산 형 SCM 패러다임의 복잡성을 추가하지 않고 우수한 분기 및 병합 지원 기능을 갖춘 Subversion에 대한 좋은 대안은 무엇입니까? 이상적으로 그것은 자유로울 것이나, 나가 약간 현금을 밖으로 내야하는 경우에 나는 그것이 충분히 좋다면 나는 기울어 질지도 모른다.우수한 분기 및 병합 지원 기능을 가진 우수한 Subversion 대신 우수한 분산 형 서비스는 무엇입니까?

+2

호기심에서 벗어난 이유는 왜 분산 시스템보다 중앙 집중식 시스템을 원하십니까? 중앙 집중식 워크 플로우를 에뮬레이트하기 위해 일부 dvcs를 설정할 수 있습니다. Git과 Bazaar는이 점을 염두에두고 있습니다. – baudtack

답변

3

분산 솔루션. 젠장, 수은 등. 내 취향은 자식 될 것입니다.

2

git

나는 그와 사랑에 빠졌어요.

7

Git과 같은 분산 버전 제어에 대해 살펴 보셨습니까? 각 "체크 아웃"은 본질적으로 지점입니다 ... 소스 제어에 대해 생각하는 방식이 상당히 다릅니다.

젠투는 Linus Torvalds가 만든 것으로 리눅스 용으로 많이 사용된다.

+2

그는 비 분배라고 말했다. :) –

+2

이 질문에 대한 답변이 이전에 게시되었습니다. – Luke

6

Perforce은 훌륭한 도구이지만 2 명 이상의 사용자는 전문가 대상으로 비용이 많이들 것입니다. 우리는 꽤 무거운 브랜칭 스키마 (주요 개발 중 기능 당 1 개의 브랜치)와 함께 사용하며 잘 작동합니다. Microsoft (Perforce의 수정 된 이전 버전 사용)에서 사용하는 "Spider web"브랜칭과 같은 종류이지만 지금은 온라인에서 이야기를 찾을 수 없습니다.

+0

Perforce 도구는 무료이지만 (P4V) 사용자 라이센스가 비싸다! –

1

ClearCase를 많이 사용했습니다. 병합 작업을 자주 수행하는 동안에는 손쉽게 작업을 수행 할 수 있으며 백그라운드에서 병합 작업을 수행 할 수도 있습니다. 병합 충돌이있을 경우 개입해야합니다.

그러나 비용이 많이 들고 숙련 된 Clearcase 관리자를 찾기가 어려울 수 있습니다.

+0

개인적으로 불쾌감을 느끼지 않지만 ClearCase가 싫습니다! 우리는 나의 마지막 회사에서 그것을 사용했고, SVN은 신선한 공기의 숨결이었습니다! 나는 체크 아웃/수정/체크 인 방법론을 견딜 수 없으며, 원자 checkins가 부족하다는 것을 알고 있습니다. –

+0

나는 실제로 checkout/modify/checkin 방식을 선호하지만 ClearCase에는 문제가 있음을 인정합니다. WAN이나 VPN을 통한 성능은 매우 시끄러운 프로토콜을 사용하기 때문에 끔찍합니다. 그것은 CCRC의 주소였으며 가까운 장래에이 제품이 주요 제품에 포함될 것으로 믿습니다. –

0

Git, 의욕, 바자, Darcs

1

억지로는 최대 2 사용자를위한 무료입니다.

저는 자동화 할 수있는/수행해야 할 내용에 대해 100 % 확실하지 않지만, perforce는 매우 높은 품질입니다. 가지를 쉽게 만들고 유지 관리 할 수 ​​있으며 쉽게 병합 할 수 있습니다. 체리를 사용하여 하나의 브랜치에서 변경 한 특정 변경 사항을 에서 선택하고 높은 수준의 자동화로 다른 브랜치에 병합하는 것은 매우 쉽습니다.

2

분기/병합 작업이 많은 이유는 무엇입니까? 개발 프로세스를 단순화 할 수있는 방법이 있습니까?

Subversion, IMHO는 KISS (간단하고 어리 석다) 원칙을 잘 적용합니다. 번역 : 내 경험상보다 복잡한 도구를 만드는 것보다 개발 프로세스 간소화로 인한 생산성 향상 효과가 훨씬 클 것입니다.

+0

일부 개발자 역할에서는 작동하지만 일부에서는 작동하지 않을 수 있습니다. 팀에 도움을 요청하거나 무언가를 시도하는 개발자가있을 수 있습니다. Subversion에서는 작업 공간을 깨끗하게 유지할 수있는 합리적인 방법이 없습니다. git을 사용하면 변경 내용을 숨기거나 새로운 로컬 브랜치/문제를 시작할 수 있습니다. – jrudolph

0

나는 아마도 이것을 위해 불타 오르게 될 것이지만, 무료 제품을 원하지 않는다면 MS Team Foundation Server를 살펴볼 가치가 있습니다. 이름이없는 채로 남아있는 다른 MS 제품과 달리 소스 컨트롤은 완전하고 완벽합니다.IDE 통합, 자동화 된 빌드/테스트 엔진 및 작업 관리 기능과 결합하면 매우 좋습니다. 물론, 회사를 겨냥하여 가격을 책정해야합니다.

참고 : 주로 Visual Studio에서 개발하지 않은 경우에는 신경 쓰지 않아도됩니다.

25

Subversion 1.5로 업그레이드하셨습니까? 여기에는 자동화 된 병합 추적 기능이 포함됩니다. 이것은 귀하의 문제를 해결할 수 있습니다. 이미 도구 자체에 익숙하고 무료입니다. 따라서 현재 솔루션을 1.5로 업그레이드하면 학습 곡선이 거의없고 비용이 거의 들지 않으며 기존 코드를 새로운 소스 코드 제어 시스템으로 이식해야하는 번거 로움을 겪지 않아도됩니다.

+0

svnmerge.py보다 훨씬 나쁜 IMHO, svn 1.5의 병합 추적 기능이 작동합니다. +1 아래에있는 모든 답변에 대해 Git을 제안하고 dVCS 기능을 무시합니다. –

+1

제 경험상 SVN 1.5는 병합 및 병합 추적과 관련하여 다소 거친 부분을 가지고있었습니다. 그러나이 글을 쓰면서 우리는 현재 1.7.x 시리즈에 있으며 병합은 훨씬 더 낫습니다. –

5

또한 서브 버전의 이전 버전에서 이러한 제한 아팠다. 그러나 우리 회사의 다른 누구도 분기 및 병합을 사용하지 않습니다. 그들 각각은 새로운 기능을 시도 할 때 다른 체크 아웃을 얻었고, 해킹을 해킹하고 악의적 인 경우 제거했습니다. 가끔씩 그들은 뭔가 나쁜 것을 저 지르려고했다.)

그래서 git + svn을 사용하기 시작했다. 의미 : 나는 svn 체크 아웃을 가지고 있고이 디렉토리에서 git를 시작했다. 지금 나는 병합과 분기가 있으며 다른 어떤 것도 중단하지 않습니다. 새로운 기능 X를 사용해보고 싶다면 branch/checkout/hack-hack을 실행하면된다. SVN 저장소에서 중요한 업데이트를 가져 오려면 지금 필요합니다. git stash, git checkout master, svn update, git commit -a, git checkout feature-X, git rebase, git stash apply (이 모든 것은 git-svn이 Windows에서 작업).

많은 작업처럼 보이지만 속도가 빠릅니다. 나는 정말로 빠르다. 필요한 유연성을 제공하십시오 (my article on git + visual studio 참조).

나는 바사가 비슷한 것을 할 수 있고 일 수도 있다고 생각합니다.은 더 쉽게 할 수 있습니다 : 그것은 쉽게 non-distributed, central-repository based development을 지원할 수 있습니다.

0

DarenW에 추가하기 만하면됩니다. Windows의 경우 실제로 무료 인 Subversion 서버 제품이있어 꿈을 꾸으십시오 (VisualSVN Server). 이 패키지는 최신 Subversion 빌드를 단일 MSI 설치 프로그램으로 패키지하고 매우 유용한 관리 콘솔을 추가합니다.

-1

GIT와 같이 DVCS에 대해 복잡한 점이 무엇이라고 생각하십니까? 클라이언트/서버가없고 다른 장소에서 작업 디렉토리가있는 한 곳에서 repo하지 않으며 사용자 관리가 내장되어 있지 않습니다 (필요한 경우 ssh 사용). Jim Puls가 말했듯이 원하는 경우 비 분산 형 DVCS를 사용할 수 있습니다. 저는 GIT를 한 사람 만의 프로젝트에 사용합니다. 심지어 몇 주간 지속되는 프로젝트도 있습니다.Tortoise와 똑같은 것은 없지만 SVN에서 본 것보다 gitk, qgit 및 git-gui가 더 좋습니다. 나는 guis를 선호 했었지만 지금은 git 명령 줄을 아주 좋아합니다.하지만 약간의 improvents를 확인하십시오.

3

나는 Perforce 가게에서 Subversion shop으로 와서 Perforce가 가지고있는 위대한 분기 및 병합 지원을 놓쳤습니다. 그래서, 퍼포는 나의 첫 번째 추천이 될 것이지만 그 다음에는 돈이 들게됩니다 :).

Subversion 1.5는 병합 추적 지원이 유망 해 보이지만 근본적인 것으로 표시되어 조만간 수락 할 수있는 (즉, Perforce와 같은) 병합 지원이 최소화 된 것처럼 보이지 않습니다. 분기

  1. 을 실제 잘 작동을 병합 및 방법에 나는
  2. 그것은이 centralized workflow
  3. Supports Subversion branches, working copies, and repositories 사용할 수 있습니다 기대 :

    그래서, 내가 특별히 바자, 분산 VCS쪽으로 기울고 있어요 . 즉, 우리 팀은 Subversion을 사용하는 대규모 조직에서 Bazaar를 사용할 수 있으며 그와 함께 코드를 공유 할 수 있습니다.

3

Accurev를 확인해야합니다. 브랜치와 같이 새로운 스트림 생성을 가리키고 클릭하면 스트림을 통과하는 코드의 전체 개념이 병합과 병목 현상을 덜 수 있습니다. 관리가 매우 간편하고 3 명의 사용자가 무료로 라이센스를 취득 할 수 있으며 멋진 시각화 도구가 내장되어 있습니다.

+0

+1 우리 가게에서는 AccuRev를 사용하지 않습니다. 스트림 기반 패러다임은 처음 엔 어려움을 겪기는 어렵지만, 일단 그것을 얻으면 갑자기 내가 현재 시스템으로 할 수없는 모든 것을 보았습니다. ( – Benjol

1

Plastic SCM은 모두 분기 및 병합과 관련이 있습니다. GUI를 확인하고 다른 대안과 비교하십시오.

관련 문제