일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 여행
- Sea
- 파타야
- checkout
- 리비전
- 스튜디오
- REST
- revision
- honeyJarStudio
- 스냅
- Street
- 꿀단지스튜디오
- 여름휴가
- snap
- Studio
- 체크아웃
- commit
- 태국
- 사진
- pattaya
- svn
- Photo
- Thai
- Thailand
- travel
- 촬영
- honeyJar
- 바다
- Photograph
- 커밋
- Today
- Total
꽃무늬 키보드
리눅스에서 svn 사용하기 본문
리눅스에서 SVN 클라이언트 설치하기
[root@katie ~]# svn -bash: /usr/bin/svn: 그런 파일이나 디렉터리가 없습니다 [root@katie ~]# rpm -qa|grep subversion [root@katie ~]# |
설치되어 있지 않을 때 위와 같으며, 다음 명령을 통해 설치할 수 있다.
[root@katie ~]# yum install subversion |
SVN으로 버전관리 시작하기
- 내 소스를 저장소에 올리기
- 저장소의 소스를 최초에 체크아웃 받기
- 리비전 키워드
- HEAD : 저장소에 있는 최신 리비전
- BASE : 내 작업 공간에 있는 파일 디렉토리의 원래 리비전
- COMMITTED : BASE 이전 또는 BASE 에서 변경된 아이템이 있는 마지막 리비전
- PREV : 변경이 있던 마지막 리비전 직전의 리비전
기본적으로 반복되는 작업
1. 최신 소스로 업데이트하기
- 다른 사람의 변경점을 모두 받아서 나의 소스를 최신 버전에 맞춘다.
U : 해당 파일이 파일이 갱신 되었다. A : 해당 파일이 내 작업 공간에 추가되었다. D : 해당 파일이 내 작업공간으로부터 삭제되었다. R : 해당 파일이 치환되었다. 해당파일이 삭제되어 같은 이름의 새로운 파일로 추가되었다. 이름은 같지만 저장소에서는 이것을 다른 히스토리를 가진 개체로 간주한다. G : 새로운 변경점을 받았지만 내 작업 공간에서도 수정되었고 충돌하지 않기 때문에 문제없이 합쳤다. C : 내 작업공간과 겹치는 변경점을 받아 충돌이 있다. |
2. 소스 변경하기
- 파일을 저장소에 추가하도록 예약한다. 커밋해야 적용된다.
- 파일을 저장소로부터 삭제하도록 예약한다. 파일이면 내 작업공간에서 즉시 삭제되며, 디렉토리라면 커밋한 후 내 작업공간과 저장소에서 삭제된다.
- 대상파일을 복사하여 새로운 파일을 만든다. 커밋하면 적용되며 대상파일의 복사본이라는 히스토리가 기록된다.
- 새로운 파일이 복사본으로서 추가예약되며 기존 대상파일은 삭제예약된다. 위의 copy와 delete를 한 번에 수행하는 것과 같다
3. 변경점 확인하기
- 모든 파일과 트리에 대한 수정 사항 확인
A : 파일 혹은 디렉토리가 저장소에서 추가 예약되었다. M : 파일의 내용이 변경되었다. D : 파일 혹은 디렉토리가 저장소에서 삭제 예약되었다. ? : 파일 혹은 디렉토리는 버전 관리되고 있지 않다. ! : 파일 혹은 디렉토리는 버전 관리되고 있지만 없어졌거나 불완전하다. ~ : 파일 혹은 디렉토리가 작업 공간과 저장소에 서로 다른 타입의 개체로 존재한다. C : 파일 혹은 디렉토리가 충돌 상태에 있다. 커밋하기 전에 충돌을 해결해야 한다. |
- 자신의 변경점 확인
- 수정한 파일을 수정하기 전으로 되돌리기
4. 다른 사람의 변경과 합치기
- filename.mine : 갱신 전 작업 공간에 있던 파일. 내가 한 마지막 변경이 포함.
- filename.rOLDREV : 작업 공간을 갱신하기 전 .svn의 BASE 리비전에 있던 파일의 내용. 마지막에 편집한 파일의 직전 상태의 파일(체크아웃 시점 상태)
- filename.rNEWREV : 작업 공간을 갱신하면서 서버로부터 받은 파일. 저장소의 HEAD 리비전에 대응.
- '손으로' 충돌 텍스트를 합친다.
- 작업 파일에 임시 파일 중 하나를 덧쓰기 한다.
- svn revert filename 을 실행하여 로컬의 모든 변경을 버린다.
- 충돌 해결 후 반드시 svn resolved를 실행하여 subversion에 그것을 알려야 한다.
5. 나의 변경점을 커밋하기
$ svn commit [대상 파일] -m [로그메세지]
'Version Controll > svn' 카테고리의 다른 글
윈도우에서 svn 사용하기 (0) | 2014.06.20 |
---|---|
svn의 기본개념 (5) | 2014.06.09 |