2009-05-01 3 views
13

필자는 코드를 체크하고 예전 코드의 리파지토리가있는 많은 사람들과 함께 일한 적이 결코 없었습니다. 이러한 용어가 무엇을 의미하는지조차 알지 못합니다. 모든 코드 변경 사항을 추적하는 자신보다 많은 새로운 프로젝트를 시작하려면 "체크 아웃"(다시 말하지만 그 의미가 무엇인지 모름)을 시작하려면 어떻게해야합니까? 그것은 SVN이 무엇입니까? 다른 것? 코드를 따라 잡는 프로그램을 다운로드합니까?코드를 "체크 아웃"하는 방법은 무엇입니까?

어떻게해야합니까?

모두 집안에 있습니다. 코드 저장을위한 인터넷 없음.

나는 소스 제어라고 부르는 것이 필요한지 잘 모릅니다. 체크 아웃, SVN, 소스 컨트롤 등에 대해 알 수 있습니다. 나는 그것이 모두 똑같은 것을 말하고 있는지 아닌지를 모른다. 오픈 소스를 사용하고 싶었습니다.

Source Control HOWTO

+6

소스 제어는 또한 한 개발자 프로젝트에 매우 유용합니다. 한 번 알면 알게 될 것입니다. – Arjan

+1

Subversion은 오픈 소스이며 git andd mercurial도 마찬가지입니다. –

+0

다른 질문은 대부분 Windows 기반이므로 어떤 IDE를 사용하고 있습니까? IDE에서의 통합은 일부 소스 컨트롤을 사용하기위한 필수 조건은 아니지만 반드시 도움이됩니다. 사실, 이클립스에서 모든 일상 CVS 및 SVN 작업을 수행하면서 나는 더 이상 명령 행을 사용하지 않습니다. Eclipse에서 CVS와 SVN 통합은 좋지만 (후자는 플러그인이 필요함) CVS와 SVN이 내 프로젝트에 좋은 선택이지만 다른 IDE에 대해서는 알지 못합니다. – Arjan

답변

19

옛날 옛날 옛적에, 소스 컨트롤은 라이브러리 메타포를 사용했습니다. 파일을 편집하려면 충돌을 피할 수있는 유일한 방법은 파일을 편집하는 것뿐입니다. 당신이 할 일은 소스 제어 시스템이 그 파일을 "체크 아웃"하도록 요청하는 것입니다.이 파일은 당신이 파일을 편집하고 다른 사람이 파일을 수정하고 파일을 "체크인"할 때까지 편집 할 수 없다는 것을 나타냅니다. 체크 아웃 된 파일을 변경해야한다면, 지난 화요일부터 중요한 정보를 모두 가지고 있던 그 변덕스러운 개발자를 찾아야 만합니다 ...

어쨌든, 소스 제어 더 이상 그렇게 작동하지 않지만 언어는 우리와 붙어 있습니다. 요즘 "코드 체크 아웃"은 코드 저장소에서 코드 사본을 다운로드하는 것을 의미합니다. 파일은 로컬 디렉토리에 표시되므로 필요할 때 코드를 사용하고 코드를 컴파일하고 나중에 저장소로 다시 업로드 할 수있는 소스를 변경할 수 있습니다. 단일 명령으로 코드를 마지막으로 다운로드 한 이후로 다른 개발자가 변경 한 사항을 모두 얻을 수 있습니다. 좋은 물건.

CVS, Git, HG, Perforce, ClearCase 등이 다른 SVN (Subversion이라고도 함)이있는 몇 가지 주요 소스 제어 라이브러리가 있습니다. SVN, Git 또는 HG로 시작하는 것이 좋습니다. 왜냐하면 모두 무료이며 모두 훌륭한 문서를 가지고 있기 때문입니다.

유일한 개발자 인 경우에도 소스 컨트롤을 사용하고자 할 수 있습니다. 어젯밤에 당신이 쓸모없는 것으로 삭제 한 수천 줄의 코드가 실제로는 매우 중요하고 이제는 영원히 사라져 버린 것을 깨닫는 것보다 더 나쁜 것은 없습니다. 소스 컨트롤을 사용하면 파일 내역을 앞뒤로 줌할 수 있으므로 제거하지 말아야 할 물건을 쉽게 복구 할 수 있고 쓸데없는 물건을 삭제하는 것에 대한 확신을 가질 수 있습니다. 게다가, 스스로 혼자서 연습하는 것도 좋은 습관입니다.

소스/개정 제어 소프트웨어에 익숙하면 심각한 소프트웨어 엔지니어의 중요한 직무 기술입니다. 그것을 습득하면 전문 개발자로서 효과적으로 레벨을 올릴 수 있습니다. 프로젝트에 참여하고 팀이 모든 소스를 폴더의 어딘가에 보관한다는 사실을 알게 된 것은 끔찍한 경험입니다. 행운을 빕니다! 당신은 이미 관심을 가지고 옳은 길을 가고 있습니다!

+2

이야기 감각이 아주 멋집니다! –

19

확인? 그렇다면 사용자의 필요에 맞는 소스 제어 시스템을 선택하고 설정 방법에 대한 설명서를 읽으십시오. 기존 프로젝트에 대해 이전에 설정 한 소스 제어 시스템을 단순히 사용하는 경우 해당 프로젝트를 사용하고있는 동료에게 문의하거나 소스 제어 시스템을 설정 한 사람에게 문의하십시오.

대부분의 소스 제어 시스템은 온라인으로 기능을 광범위하게 설명하고 많은 사람들이 평가하거나 완전히 무료 제품을 제공하며 각 개인과 함께 작업하는 것에 대한 많은 일화 적 설명이 많이 있습니다. 소스 제어 시스템은 도움이 될 수 있습니다.

귀하의 온전함과 코드를 중요하게 생각한다면 Microsoft Visual SourceSafe을 사용하지 마십시오.

+4

Upvote (의도적이지 않은) 말 장난 –

+0

그래, 그건 의도하지 않았어. :) ... ...하지만 다시 .. –

+1

지금까지 유망 해 보인다. 그가 판매하는 제품 대신 오픈 소스 솔루션을 제공하기를 희망합니다. 감사합니다 (모두). – johnny

1

당신이 소스 제어를 필요로하는 프로젝트를 만들 : 기사의 에릭 싱크의 우수한 시리즈 밖으로

+0

무료로 훌륭한 VCS 도구를 얻을 수 있다는 것을 명심하십시오. 설치가 매우 쉽습니다. 우수하지 않은 것을 사용하는 유일한 이유는 이미 설치되어 사용중인 경우입니다. –

+0

독점적 인 잠금 기능을 원하는 유일한 파일은 바이너리 파일 (예 : 데이터베이스 파일 또는 비트 맵)입니다. 요즘 대부분의 SCM은 바이너리로 취급하는 파일 유형과 다른 파일 유형에 대한 비 독점적 인 잠금에 대해 독점적 인 잠금을 자동으로 수행합니다.대부분의 SCM은 두 개 이상의 개발자가 동일한 파일을 잠근 상태에서 다른 개발자가 자신의 변경 사항을 확인한 후에 다시 확인하려고하는 경우 텍스트 기반 파일 용으로 적절한 병합 기능을 제공합니다. – RobH

2

매우 유용한 무료 오픈 소스 버전 제어 시스템으로 Git과 을 권장합니다. 힘내는 분산화 작업이 더 쉽다는 점에서 좋은 특징이있다.

+0

코드를 체크 아웃하면 Subversion에서, 나는 확실히 아무것도 배제하지 않습니다. –

+2

그건 "체크 아웃"의 의미 중 하나지만, 점점 더 고풍스러워지고 있습니다. 보다 일반적인 의미는 다른 사람이 가지고있는 것과 관계없이 필요한 모든 복사본을 얻을 수 있다는 것입니다. 현대 VCS는 독점적 인 접근 방식으로 작동하도록 설계되지는 않았지만 일부 기능은 독점적 인 접근 방식을 제공합니다. –

+0

왜 그들은 그가 쓴 것에서 움직이겠습니까? 독점적 인 통제를하는 것이 좋다고 들으십시오. (그냥 이해하려고.) – johnny

2

체크 아웃은 소스 제어 시스템에서 파일을 검색하는 것을 의미합니다. 소스 제어 시스템은 (수정 된 후 체크인 된) 모든 버전의 코드를 보유하는 데이터베이스 (CVS과 같은 일부는 텍스트 파일을 특별히 마크 업했지만 파일 시스템은 데이터베이스이기도 함)입니다.

Microsoft Visual SourceSafe은 정기적으로 유지 관리되지 않고 예약 된 체크 아웃 만 사용하는 경우 손상 될 수있는 독점적 인 데이터베이스를 사용합니다. 그러한 이유 때문에 그것을 사용하지 마십시오.

예약 된 결제와 예약되지 않은 결제 간의 차이점은 예약되지 않은 결제입니다. 두 사람이 한 번에 같은 파일을 수정할 수 있습니다. 체크인 할 첫 번째 문제는 아무런 문제가되지 않으며 두 번째는 코드를 최신 버전으로 업데이트하고 변경 사항을 병합해야합니다 (일반적으로 자동으로 발생하지만 파일의 동일한 영역이 변경된 경우 충돌이 일어나기 전에 해결되어야합니다).

예약되지 않은 결제에 대한 일부 인수는 here을 참조하십시오.

다음은 코드를 독립적으로 체크하고 소스 코드를 작성하는 빌드 프로세스입니다. 따라서 모든 사람의 변경 사항이 함께 빌드되고 배포됩니다.

관련 문제