문제

소스 제어 초보자가 배우기에 가장 좋은 버전 제어 시스템은 무엇입니까?

도움이 되었습니까?

해결책

Visual Source Safe를 제외한 모든 것;바람직하게는 분기 및 병합 개념을 지원하는 것입니다.다른 사람들이 말했듯이 Subversion은 특히 TortoiseSVN 클라이언트에서 탁월한 선택입니다.

꼭 확인하세요(말장난 죄송합니다) Eric Sink의 소스 제어 HOWTO 기사의 클래식 시리즈.

다른 팁

예를 들어 다음과 같은 Subversion을 사용해 보는 것이 좋습니다. 1-클릭 SVN 설치 프로그램.SO에서 "Subversion"을 검색해 보면 좋은 튜토리얼을 가리키는 답변이 포함된 많은 질문을 찾을 수 있습니다.

행운을 빌어요!

난 바로 갈 텐데 힘내.나는 이전에 Subversion을 사용해 본 적이 있지만 항상 내가 잘못하고 있는 것처럼 느꼈습니다.Git은 첫날부터 이해가 되었습니다.

유용한 리소스:

제가 배워야 할 몇 가지 핵심 개념은 다음과 같습니다.

  1. 체크인/체크아웃(당연히)
  2. 로컬 버전과서버 버전
  3. 로컬 작업공간을 원격 저장소 또는 저장소에 매핑/바인딩합니다.
  4. 변경 사항을 다른 사람의 변경 사항을 포함하는 파일로 다시 병합합니다.
  5. 분기(정의, 사용 시기/이유)
  6. 브랜치의 변경 사항을 다시 메인 브랜치나 트렁크에 병합합니다.

대부분의 최신 소스 제어 시스템에는 위 주제에 대한 지식이 필요하며 이를 학습하는 데 도움이 됩니다.그렇다면 분산 소스 제어가 있는데, 경험은 없지만 상당히 복잡하고 초보자에게는 적합하지 않을 수 있습니다.

파괴 여러분이 원하는 최신 기능을 모두 갖추고 있고 무료이기 때문에 훌륭합니다.

힘내 또한 점점 더 인기 있는 옵션이 되고 있으며 Subversion에 대한 또 다른 무료 또는 매우 저렴한 대안입니다.그러나 Git을 사용하려면 분기 및 병합 개념에 대한 지식이 중요합니다.

당신이 사용할 수있는 풀다 Git과 Subversion을 모두 무료로 쉽게 실험할 수 있는 방법입니다.나는 과거에 작업했던 일부 사이드 프로젝트에 대한 두 개의 Subversion 저장소를 호스팅하는 데 이를 사용합니다.

저는 고급 소스 제어 사용자는 아니지만 배우고 있습니다.소스 제어 제품에 대한 내 경험은 다음과 같습니다.

  1. 오래 전, 제가 당시 근무하던 회사에서 소스 컨트롤을 사용하기로 결정했습니다.그들은 개발자들에게 개념을 소개했고 모든 사람들이 그것을 시도해 볼 의향을 갖게 했습니다.그들은 PVCS를 사용하기로 결정하고 구현했습니다.머지않아 개발자는 모듈과 개체를 잠그거나 잠금 해제하기 위해 조정해야 했고 우리는 실제로 큰 이점을 얻지 못했습니다.

  2. 몇 년 후, 나는 오픈 소스 프로젝트를 만들면서 놀고 있었고 당시 Rubyforge는 CVS 저장소를 제공하고 있었습니다.나는 그것을 시험해 보았고 PVCS보다 약간 더 좋았습니다.물론 나는 저장소를 사용하는 유일한 사람이었습니다.그러나 처음에 파일을 가져온 방식이 마음에 들지 않았기 때문에 파일 구조를 다시 정렬하려고 할 때 좌절감을 느꼈습니다.CVS에서는 실제로 작동하지 않았습니다.

  3. 그로부터 몇 년 후 저는 또 다른 개인 프로젝트를 진행하고 있었는데 웹 호스팅 제공업체에서 쉽게 설정할 수 있는 SVN(Subversion) 저장소를 제공했습니다.올바르게 시작하고 실행하려면 약간의 연구가 필요했지만 초기 학습 곡선을 지나면 마음에 들었습니다.

  4. 얼마 지나지 않아 저는 소스 제어 기능을 좋아하지만 현재 직장에는 소스 제어 기능이 없다는 사실을 깨달았습니다.그래서 전도를 했고, 오랜 시간이 흐른 후 우리 팀은 Visual Studio에서 작업하고 일반적으로 Microsoft 상점이기 때문에 Source Safe를 구현했습니다.나는 그것을 사용하고 싶었지만 얼마 지나지 않아 파일이 손실되고 Visual Studio가 항목을 잘못된 위치에 배치하고 한동안 프로젝트 작업을 한 다음 내 작업을 다른 위치로 내보내는 것을 발견했습니다. 솔루션의 프로젝트 중 일부만 내보내거나 내보내지 않거나 내보낼 수 있음을 확인합니다.이를 통해 나는 "버전 관리 시스템"을 사용하고 있다고 생각했지만 가장 안전하고 강력하며 완전한 코드 복사본이 작업 복사본이라는 것을 깨닫게 되었습니다.소스 제어가 수행하는 작업과 정반대입니다.

  5. 그래서 지난 주에 저는 Source Safe에 너무 질려서 검색을 했습니다.몇 가지 해결책을 살펴본 후 git을 사용해 보기로 결정했습니다.내가 원하는 것을 할 수 있도록 다시 학습 곡선을 가졌기 때문에 모든 것이 장미였다고 말하지는 않겠습니다. 그러나 모든 작업과 개인 프로젝트를 그것으로 전환할 만큼 충분히 마음에 들었습니다.정말 좋은 점 중 하나는 중앙 집중식 저장소가 필요하지 않으므로 직장에서 설치하기 위해 많은 절차를 거치지 않고도 사용할 수 있다는 것입니다.

간단히 말해서 저는 git을 추천하고 싶습니다. Windows에서 Mysysgit을 사용하고 bash 쉘을 제공하는 추가 보너스가 있습니다.Linux에서는 패키지 관리자에서 설치할 수 있습니다.Git이 마음에 들지 않는다면 Subversion을 시도해 보세요.둘 중 하나가 마음에 들지 않으면 CVS나 PVCS도 마음에 들지 않을 것입니다.어떤 상황에서도 Source Safe를 사용해 보세요. 정말 끔찍합니다.

나는 찾았다 http://unfuddle.com SVN이나 git을 설치하는 수고를 덜었습니다.거기에서 무료 계정을 얻고 둘 중 하나를 사용할 수 있습니다. 게다가 거기에서 OpenID도 사용할 수 있습니다.

그러면 올바르게 설정하는 데 어려움을 겪지 않고 어떻게 사용할 것인지에만 집중할 수 있습니다!

SourceGear.com의 Vault는 훌륭합니다.단일 사용자에게는 무료이며 뛰어난 VS 2005/2008 인터페이스를 제공합니다.나는 그것을 좋아한다!

rp

@이안 넬슨:

Source Safe가 소스 제어 시스템으로서 나쁘다는 점에는 동의하지만 Joel Spolsky가 말했듯이 Source Safe를 사용하는 것이 "플로피 디스크를 들고 다니는 것"보다 훨씬 낫다는 점을 명심하십시오.

초보자에게는 소스 제어가 전혀 없으면 비용이 훨씬 더 높기 때문에 나쁜 생각이 아닐 수도 있습니다.

각 도구에는 강점과 약점이 있습니다.귀하의 요구 사항이 무엇인지에 대한 질문입니다.불행히도 이 문제의 경우 다른 많은 도구와 마찬가지로 가장 좋은 도구가 선택되지 않고 누군가에게 익숙한 도구인 경우가 많습니다.예를 들어 많은 지점이 필요하지 않고 팀이 소규모이고 지역적이라면 거의 모든 vc가 작업을 수행합니다(SourceSafe 제외).분기가 필요하고(거의 필요에 따라 병합도 필요함을 의미함), 팀이 분산되어 있고, 고급 보안(하청업체는 전체 소스 트리에 허용되지 않음), 작업 추적 등이 필요한 경우 상황이 달라집니다.세 가지 다른 측면에서 비용 문제도 있습니다.라이센스 비용, 유지 관리 비용(일부 도구는 너무 복잡해서 실제로 리포지토리를 제어하기 위한 사람이 필요함) 및 교육 비용.

따라서 한 도구를 다른 도구보다 제안하는 것은 최고의 프로그래밍 언어가 무엇인지 제안하는 것과 같습니다.

몇 가지 지침:

  • Starteam은 내가 사용한 가장 쉬운 도구입니다.훈련이 거의 필요하지 않았습니다.나는 관리자가 된 이래로 하루 동안 훈련을 받았습니다.이 유지 관리는 주당 30 분도 채 걸리지 않았습니다.사용자는 2 페이지 매뉴얼을 작성하여 "훈련"했으며 그 후에는 대답 할 질문이 거의 없었습니다.
  • Continuus는 사용 편의성에 관한 한 규모의 다른 쪽 끝이었습니다.반면에 작업 처리는 훌륭했고 릴리스 관리에 대한 좋은 지원을 제공했습니다.문제는 릴리스 관리자로서도 릴리스 작성의 용이성(한 번 방법을 배웠지만 상당한 시간이 걸렸음)이 개발자가 수행하는 일상적인 작업보다 더 중요해야 한다고 생각한 적이 없다는 것입니다.
  • 병합 및 분기 생성은 도구간에 크게 다릅니다.일부 도구는 git 및 clearcase와 같이 간단하게 만들어집니다 (후자는 매우 느리지 만) 일부는 기본적으로 손으로 병합을하도록 강요합니다.많이 합병 해야하는 경우 비용이 높아질 수 있습니다.Clearcase는 또한 이전에 언급 된 세 가지 범주 모두에서 비싸다 (그러나 우리는 필요하지 않은 모든 고급 물건을 사용했다고 말해야한다.반면에 git에는 좋은 UI가없고 일부 개념은 당신이 사용하는 것과 다릅니다.GIT의 보안 기능도 부족합니다 (Gitosis는 일부 문제를 해결하지만 전부는 아닙니다).
  • 내가 사용한 대부분의 도구도 매우 느립니다.PVCS/치수와 같은 도구는 느리게 진행하더라도 (저장소에서 디렉토리를 열는 것과 같은 기본 사항), 더 구체적인 방식 (Clearcase와 같은)이 매우 느립니다.

내가 사용한 도구 중에서 개발자가 경험이 많지 않은 경우(그리고 상당히 비싼 라이선스 비용을 지불해도 괜찮다면) StarTeam을 선택하고, 환경을 설정할 수 있는 숙련된 VC 직원이 탑승한 경우 git을 선택합니다. 다른 남자들한테.Mercurial도 흥미로운 경쟁자처럼 보이며 UI가 약간 더 나은 것 같습니다.

Continuus, PVCS/Dimensions 및 ClearCase는 거의 모든 프로젝트에 비해 너무 느리고 복잡하며 비용이 너무 많이 듭니다.누군가 이 중 하나를 선택하라고 고집한다면 저는 ClearCase를 선택하겠습니다.

나는 많은 사람들이 좋아하는 Subversion을 사용하지 않았으므로(아직 가까운 미래에 이것이 바뀔 것 같은 느낌이 들었습니다) 내가 사용한 다른 도구(보통 빌드 및/ 또는 릴리스 관리자).

선택할 첫 번째 도구에 관해서는 Git, Bazaar 및 Mercurial의 문제점은 분산 VC라는 것입니다.이는 중앙 저장소가 있는 기존 서버-클라이언트 모델과 다릅니다.내용을 배우기 위해서는 개념에 대해서도 읽어 보는 것이 좋습니다.예를 들어 분기는 스스로 시도해 보는 것만으로는 올바르게 이해하지 못할 수도 있는 것입니다(상황에 따라 다양한 분기 전략이 있습니다).게다가 저장소에 액세스하는 유일한 사람이라면 매우 다릅니다. 예를 들어 병합 충돌은 문제가 되지 않습니다. (보게 될 수도 있지만 두 분기 모두의 코드를 알고 있기 때문에 쉽게 해결할 수도 있습니다.)물론 체크아웃, 체크인 등에 대해 배우겠지만 애초에 이러한 문제가 특별히 어려운 것은 아니라고 생각합니다.

vcs에 추가된 문제는 그들이 다른 용어를 사용하는 경향이 있다는 것입니다.사용하기 쉬운 StarTeam에서는 어떤 이유에서든 "체크아웃" 및 "체크아웃 및 잠금"이라는 용어를 사용해야 한다고 주장합니다.후자는 대부분의 사람들이 전자가 그렇다고 생각하는 것입니다.여기에는 이유가 있지만(배타적 잠금이 없더라도 파일을 편집할 수 있음) 혼란을 피하기 위해 "가져오기" 및 "체크 아웃"을 호출하는 것이 훨씬 더 합리적입니다.

뭐든지 하지만 저는 git이나 Subversion과 같은 최신 시스템을 직접 배울 것입니다.내 첫 번째 VCS는 RCS였지만 기본 사항을 숙지했습니다.

글쎄, 만약 당신이 스스로 배우고 싶다면 Subversion과 같은 무료 프로그램을 선택해야 한다고 말하고 싶습니다.이전에 소스 제어를 사용해 본 적이 없는 회사라면 필요에 따라 달라질 수 있습니다.

나의 첫 번째 노출은 WinCVS를 클라이언트로 사용하는 CVS였습니다.정말 끔찍했어요.다음은 TortoiseSVN과 Eclipse가 통합된 Subversion이었습니다.그것은 직관적이고 천상의 것이었습니다.나는 SVN이 개정을 처리하는 방식을 선호하지만 TortoiseCVS 및 Eclipse와 함께 CVS를 사용하는 것도 좋을 것이라고 생각합니다.개별 파일이 아닌 체크인할 때마다 전체 저장소의 버전이 관리됩니다.

Subversion도 추천합니다.설정하는 데 시간이 많이 걸리지 않고 무료이며 기본 사항은 물론 일부 고급 주제를 다루는 정말 좋은 책이 온라인에 있습니다. http://svnbook.red-bean.com/

tortoisesvn을 사용한 전복.(tortoisesvn은 시각적으로 무슨 일이 일어나는지 많이 볼 수 있고 명령줄 작업에 대한 좋은 출발점을 제공할 것이기 때문입니다.) 세상에는 수많은 문서가 있으며 아마도 당신의 경력에서 적어도 한 번은 그것을 보게 될 것입니다.내가 일하고 인터뷰한 거의 모든 회사는 SVN을 운영합니다.

시작하는 동안 상용 제품을 배우려는 경우 Perforce는 무료 클라이언트와 서버를 제공하며 서버는 2명의 사용자와 5개의 클라이언트 작업 공간을 지원합니다.

이전 직장에서는 프로그래머의 코드뿐만 아니라 아트 자산과 게임 레벨, 내 문서에도 종교적으로 사용되었습니다.

Subversion은 시작하기에 좋은 곳입니다.매우 안정적이고 현대적인 버전 관리 시스템입니다.Subversion에 대해 배우기 시작하는 가장 좋은 온라인 리소스는 다음과 같습니다. Subversion을 사용한 버전 제어.서버와 클라이언트 소프트웨어에 관한 한 선택의 폭이 넓습니다.나는 개인적으로 (Windows 환경의 경우)를 선호합니다.

  1. VisualSVN 서버

  2. TortoiseSVN 쉘 통합 클라이언트 및

  3. AnkhSVN Visual Studio Subversion 추가 기능

다시 말하지만, Subversion에는 사용할 수 있는 옵션이 많이 있습니다.또한 이는 오래된 SourceSafe와 달리 지속적으로 발전하는 버전 제어 시스템입니다.수많은 자동화된 빌드 도구(CruiseControl, FinalBuilder) 및 버그/문제 추적 시스템(JIRA)과 쉽게 통합될 수 있습니다.

최첨단 버전 제어 시스템을 찾고 있다면 Git(Linus Torvalds 개발)을 선택하세요.그러나 버전 제어 시스템을 완전히 처음 접한다면 Subversion부터 시작하는 것이 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top