초보자를위한 Subversion (SVN) 버전 추적
변경 사항을 추적하고 되돌릴 수있는 기능으로 프로젝트에 참여하고 싶습니까? How-To Geek은 How-To-How를 사용하여 인기있는 버전 추적 시스템 인 Subversion (a.k.a SVN).
분명히 애매한 이미지
프리 로그
이 안내서는 일반적으로 Subversion 클라이언트를 사용할 수있는 기능을 제공하고, 사용자의 DD-WRT 라우터에 Subversion 클라이언트를 사용할 수있는 기능을 제공합니다. 이 가이드는 절대로 Subversion에 대한 확실한 안내서는 아니며 많은 정보는 Subversion Red Book에서 찾을 수 있습니다. 이 가이드는 가장 기본적인 질문에 대한 간단한 답을 제공하기위한 것입니다..
개요
버전 관리 시스템을 사용하는 소프트웨어 프로젝트의 최신 코드를 "체크 아웃"할 수 있기를 원하는 수많은 이유가있을 수 있습니다. 그렇게하면 출시되지 않은 최신 변경 사항, 테스트 및 심지어 개발까지 도와줍니다. 이 가이드에서는 기본적인 SVN 용어를 살펴보고 Linux, Windows에 SVN 클라이언트를 설치하는 방법과 OPKG 지원 DD-WRT 라우터가있는 경우에 대해 설명합니다. 또한 라우터에 대해 체크 아웃하고 사용할 수있는 프로젝트의 예가 포함되어 있습니다..
Subversion이란 무엇입니까??
Subversion은 현존하는 유일한 버전 제어 시스템이 아니라 Git (Linux 커널 창시자 인 Linus Torvalds가 만든), Mercurial 및 PerForce를 포함합니다. 그렇게 말하면서, 그것은 자유로운 것 중의 1 개다 그것은 성숙했고, 세계적으로 광범위하게 사용된다.
서브 버전 "레드 북"에서 :
Subversion은 무료 / 오픈 소스입니다. 버전 제어 시스템 (VCS). 즉, Subversion은 시간이 지남에 따라 파일 및 디렉토리와 그 변경 사항을 관리합니다. 이를 통해 이전 버전의 데이터를 복구하거나 데이터가 변경된 기록을 검사 할 수 있습니다. 이와 관련하여 많은 사람들이 버전 제어 시스템을 일종의 "타임머신"이라고 생각합니다.
참고 :이 책 ~이다. Subversion에 관한 지식의 궁극적 인 컬렉션이며 모든 Subversion 관련 주제에서 참조하십시오..
버전 관리 란 무엇입니까??
버전 관리는 특정 시점의 프로젝트 상태가 저장되는 프로세스입니다. 이러한 종류의 절차는 종종 소프트웨어 개발을 관리하는 데 사용되므로 마지막 전체 "저장"지점에서 변경된 사항을 추적하면서 작업을 계속하여 프로젝트를 개선하거나 기능을 추가 할 수 있습니다. 정교하게, 이런 종류의 절차는 한 사람에게는 유용 할 수 있지만 한 그룹의 사람들에게는 같은 프로젝트에서 작업하는 것이 더 유용 할 수 있습니다. 이는 대개 프로젝트를 그룹으로 작업 할 때 책임의 분배가 존재하고 다른 사람들이 프로젝트의 다른 측면을 변경하기 때문입니다. 버전 관리 메커니즘이 없으면 다른 모든 사람들의 최신 작업 변경 사항에 대해 모든 사람을 동기화 상태로 유지하는 것은 매우 어려울 것입니다..
술어
저장소
저장소는 다양한 장소의 모든 데이터가 저장되는 위치입니다. 전복 세계에서, 클라이언트의 관점에서, 그것은 프로젝트의 데이터베이스를 보유하고있는 서버입니다. 이 데이터베이스에는 과거 버전이 모두 포함 된 프로젝트의 일부인 모든 파일이 포함되어 있습니다..
개정
저장소가 작성되면 개정 번호 0이 제공됩니다. 이 수는? L 트가 수행 될 때마다 1 씩 증가합니다. 개정 번호는 저장소에 대해 전역입니다. 즉, 리포지토리에 개별 파일에 대한 개별 개정 번호가 없다는 것입니다. 특정 커밋에 대해 해당 파일에서 변경된 내용이 없더라도.
작업 카피
작업 복사본은 특정 버전의 로컬 복사본 (또는 "체크 아웃")입니다. 보통 체크 아웃 된이 버전은 "최신"버전 ( "헤드"라고도 함)이지만 이전 버전을 요청할 수 있습니다. 사용자는 최악의 경우 코드를 다시 체크 아웃 할 수 있다는 사실을 알고 자신이 원하는 모든 것을 로컬 복사본과 함께 할 수 있습니다. 또한,이 사본은 "개인"입니다. 이는 복사본을 업데이트하거나 커밋하기 전까지는 다른 사람의 변경 사항을 볼 수 없으며 사용자의 변경 사항을 볼 수 없기 때문입니다.
업데이트 및 충돌 해결
로컬 작업 복사본을 업데이트 할 수 있습니다. 즉, 특정 버전을 "체크 아웃"하고 작업하는 동안 저장소의 버전이 업데이트 된 경우 작업 복사본을 최신 버전으로 업데이트 할 수 있습니다. 실제로 서버는 저장소와 일치하도록 최신 버전으로 업데이트하기 전에 변경 내용을 커밋하지 못하도록합니다. 이것은 저장소에 대한 변경 사항을 커밋하기 전에 충돌을 로컬에서 해결하도록 강제하기 위해 수행됩니다.
병합
병합은 변경된 코드를 하나의 버전으로 혼합하는 프로세스를 의미합니다. 또한 갈등을 해결해야 할 수도 있습니다..
커밋
커밋은 로컬 복사본에 대한 변경 사항을 리포지토리에 다시 병합하는 프로세스입니다. 이것은 프로세스의 가장 위험한 부분입니다. 변경 사항은 동일한 저장소를 사용하는 다른 사람들에게 영향을 미칠 수 있기 때문에 여기에 있습니다. 이것이 대개 팀의 합의하에 그리고 어떤 병합 충돌을 해결 한 후에 약간의 배려를 거쳐 수행되는 이유입니다.
워크 플로우
Subversion을 사용할 때 사용자의 관점에서 가장 기본적인 워크 플로는 다음과 같습니다.
1. 기존 코드를 체크 아웃하십시오 (일반적으로 "헤드")..
2. 변경하고, 파일을 추가하고, 일반적으로 코드를 개발하십시오..
3. 최신 버전으로 업데이트하여 로컬 복사본이 저장소의 업데이트와 동기화되는지 확인하십시오.
4. 필요한 경우 충돌을 로컬에서 병합하고 해결합니다..
5. 병합 된 변경 사항을 저장소에 적용합니다..
6. 2 단계로 가십시오..
깨지게하자.
클라이언트 설치
Subversion을 사용할 수 있으려면 시스템에 클라이언트를 설치해야합니다..
Linux의 경우
패키지를 설치하기 만하면됩니다. Ubuntu / Mint에서는 다음과 같이 처리됩니다.
sudo aptitude install subversion
DD-WRT에서
"홈 라우터에 추가 소프트웨어를 설치하는 방법 (DD-WRT)"을 따르면 다음과 같이 간단히 svn 클라이언트를 설치할 수 있습니다.
opkg 업데이트; opkg install subversion-client
Windows의 경우
우리가 심오하게 괴롭히는 사용자는 때때로 GUI가 존재한다는 사실을 잊어 버릴 수도 있습니다. Windows 클라이언트를 사용하여 SVN 저장소에 연결하려면 가장 인기있는 방법은 "Tortoise"입니다. 그것을 사용하려면 간단히 프로그램을 다운로드하고 정기적 인 "다음, 다음, 완료"방식으로 설치하십시오..
"저장소"생성
이 가이드에서 Subversion 서버를 설정하는 방법에 대해 자세히 설명하지는 않지만 초보 사용자에게는 Google 대안이 좋지 않습니다. Google 저장소를 만들려면 다음 단계를 따르세요.
- Google 코드 호스팅 웹 사이트로 이동하여 새 프로젝트를 만듭니다..
- 다음 페이지에서 필수 필드를 채우고 "버전 제어 시스템"의 유형을 선택하여 전복.
참고 : 프로젝트 용 라이센스를 선택하기 전에 Google에서 제공하는 라이선스의 차이점을. - "Create project"를 클릭하십시오..
프로젝트가 생성되면 "소스"탭에서 프로젝트에 액세스하는 방법에 대한 지침을 찾을 수 있어야합니다.
Google 코드에 대한 좋은 점은 프로젝트에 익명의 읽기 전용 버전을 사용할 수 있다는 것입니다. 자신의 프로젝트를 만드는 번거 로움을 해결하고 싶지 않으면 익명으로이 작가의 저장소를 체크 아웃 할 수 있습니다.
hotfortech 프로젝트에 대한 한 가지 참고 사항 :이 프로젝트는 How-To Geek (개인적으로 사용하는)의 DD-WRT에 추가 된 기능과 몇 가지 개인 조정을위한 래퍼입니다. 이 프로젝트가 howtogeek에 게시 된 기사와 함께 작동하도록 조정되어 있지만, 여전히 내 개인 프로젝트입니다. 즉, 내 버팔로 라우터 (AR71xx 아키텍처), 개인적인 변덕에 매우 적합하며 가끔씩 바보짓을하는 경향이 있습니다.
Linux / DD-WRT에서
작업 할 디렉토리 (예 : DD-WRT)를 다음과 같이 작성하십시오.
mkdir -p / jffs / svn; cd / jffs / svn
Linux의 전체 명령은 SVN 명령 자체, "checkout"지시문, 저장소 주소 및 계산할 디렉토리로 구성됩니다. 빈 디렉토리를 만들고 아래 명령을 실행하십시오 :
svn 체크 아웃 http://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-read-only
위의 예에서 읽기 전용 버전은 체크 아웃 중입니다. 자체 리포지토리를 만들 것을 선택한 경우 httpS 링크를 사용해야합니다..
Windows의 경우
거북은 셸 확장이므로 Windows 파일 탐색기의 상황에 맞는 메뉴 (마우스 오른쪽 단추로 클릭)를 사용해야 만 사용할 수 있습니다. 실제로 시작 메뉴에서 호출하려고하면 다음과 같은 메시지가 표시됩니다.
- 빈 디렉토리 만들기.
- 상황에 맞는 메뉴를 불러 오려면 마우스 오른쪽 버튼을 클릭하십시오..
- "SVN Checkout"을 선택하십시오 :
- "URL"텍스트 상자에 프로젝트 링크 (있는 경우)를 복사하여 붙여 넣으십시오.
- 프로젝트의 크기에 따라 다소 시간이 걸릴 수 있지만 "Checkout"이 완료되면 다음과 같은 내용이 표시됩니다.
- 개발을 시작할 수 있습니다..
작업 복사본 "업데이트"및 "병합"
동료와 코드를 사용하거나 자신이 여러 위치 (예 : 노트북, 데스크톱 또는 라우터)에서 코드를 업데이트하는 경우 최신 변경 사항을 적용하기 전에 작업 복사본을 업데이트해야합니다..
Linux / DD-WRT에서
이러한 POSIX 시스템에서이 작업을 수행하는 명령은 간단합니다.
svn up
Windows의 경우
- 작업 디렉토리를 마우스 오른쪽 버튼으로 클릭하고 "SVN Update"를 선택하십시오 :
- 충돌이 발생하면 화면의 지시 사항을 따르고 그에 대한 조치를 취하십시오.
변경 내용을 "적용"합니다.
즉, 충돌이 없어야하며 변경 사항을 저장소에 업데이트 할 준비가되어 있어야합니다..
여기서 주목할 점은 커밋에 "로그"메시지를 추가하는 것이 일반적으로 변경된 이유를 쉽게 기억할 수 있다는 것입니다. 실제로 Google의 저장소는이 작업을 의무화하기위한 필수 조건으로 만듭니다..
Linux / DD-WRT에서
이것은 내가 hotfortech 프로젝트에했던 커밋의 예입니다.이 프로젝트는 버전 19로 올렸습니다.
svn commit -m "새로운 ant-ads pack 링크를 반영하도록 업데이트 됨"
Windows의 경우
- 작업 디렉토리를 마우스 오른쪽 버튼으로 클릭하고 "SVN Commit"을 선택하십시오 :
- 로그 메시지를 기록 할 수있는 창으로 인사해야합니다.
- 확인을 클릭하고 비밀번호를 묻는 메시지가 표시되면 Google에서 생성 한 비밀번호를 제공합니다..
- 커밋이 성공하면 다음과 같은 내용이 표시됩니다.
- 즉, 당신은 보스처럼 저지를 수 있어야합니다..
최종 견해
이것은 당신을 시작하게하는데 충분할 것입니다. SVN 참고서를 읽으면 SVN의 사용법, 옵션 및주의 사항에 대해보다 깊고 깊게 이해할 수 있습니다. 또한, 우리는 Subversion이 유일한 버전 제어 시스템이 아니며 GIT (리눅스 커널 창시자 리누스 토발즈 (Lius Torvalds)가 만든 것임)가 최근 몇 년 동안 인기를 얻고있는 것으로 생각 나게합니다..
라우터의 hotfortech 프로젝트에서 "running-config.sh"를 실행하도록 선택하면 현재 설치 될 것입니다 : anti-ads-pack, Opkg geek-init 스크립트 및 완전한 GNU "ls", "less", "BASH"등과 같은 것들.
/jffs/svn/hotfortech-dd-wrt/running-conf.sh
더 많은 기능이 보류 중이며 앞으로 추가 될 예정입니다..
시스템 관리자는 코딩 작업을 코드화합니다..