버전관리 툴인 cvs를 사용하다보면
cvs log index.php
를 이용해서 index.php에 히스토리를 확인할 수 있습니다.
그런 후 과거 파일을 불러오는 경우가 있는데요.
cvs up -r 1.1 index.php 이런식으로 하면 1.1 버전을 불러오게 됩니다.
cvs commit: sticky tag is not a branch
위와 같은 에러는 index.php 가 현재 버전과 과거 버전이 다르기 때문에 commit을 할 수 없는 상태입니다.
이럴 경우
cvs up -A index.php
이렇게 하면 sticky tag를 제거하게 됩니다.
index.php파일을 꼭 백업 하고 명령어를 사용하셔야 합니다.
CVS 사용방법
1.저장소에 등록
cvs commit [-m "log message"] [filename]
-m을 사용하였을 경우 log message의 내용을 같이 저장한다.
2. 최신버전을 작업공간으로 가져오기
cvs update
저장소에 있는 해당 디렉토리와 그 하위 디렉토리에 있는 최신 내용을 모두 가져온다.
cvs update -dP
3. 파일의 로그 보기
cvs log filename
4. 새로운 파일이나 디렉토리 추가하기
저장소에 버전관리할 새로운 파일과 디렉토리가 생겼다는 사실을 알려주어야 한다.
cvs add new_filename
cvs add new_dirname
이렇게 해주면 저장소에 버전관리할 새로운 파일이나 디렉토리가 있다는 사실만을 알려준 것이지 그 내용을 저장한 것은 아니다.
그래서 이후
cvs ci new_filaname
cvs ci new_dirname
cvs add *
cvs ci
현재 디렉토리와 그 하위 디렉토리에 있는 새로 생성된 디렉토리와 파일을 모두 CVS 저장소에 포함시키기 위해서는
find . -type d -print | grep -v CVS | xargs cvs add
find . -type f -print | grep -v CVS | xargs cvs add
cvs ci
linux command와 혼합해서 사용하여야 한다.
5. 파일 제거하기
cvs remove [filename]
CVS는 저장소에 해당파일을 버전관리 대상에서 제외할 것이라는 것을 통보하게 되고
실제로 이 파일을 지우는 것은 cvs add에서와 같이
cvs ci
를 통해 이루어지게 된다.
filename이 명시되어 있다면 해당 파일을 제거하고,
명시되어 있지 않다면 CVS는 작업공간의 현재 디렉토리와 그 하위 디렉토리에는 없지만 저장소에는 있는 파일을 모두 찾아 저장소에서 제거하게 된다.
cvs add명령와는 달리 cvs remove는 recursive하게 현재 디렉토리와 그 하위 디렉토리를 모두 찾아 이를 처리해주게 된다.
해당 파일을 저장소에서 제거하였다 하더라도
이후 특정 버전으로 파일을 복구 시키는 것이 가능하다. 이 명령어는 아래에서 설명하도록 한다.
가끔 cvs remove를 하는 도중
cvs server: cannot remove file `filename' which has a numeric sticky tag of `1.3'.
이와 같은 에러 메세지가 뜨곤 하는데 이는 해당 파일에 sticky tag가 붙어 있어서 그렇다.
이러한 경우 해당 파일을
cvs update -A filename
해주어서 sticky tag를 제거하고 cvs remove를 하면 문제가 해결된다.
6. 디렉토리 제거하기
cvs update -P
비어 있는 디렉토리를 CVS가 자동적으로 제거해 준다.
7. 특정 버전으로 파일 되돌리기
cvs up -r version -p old_filename > new_filename
version: 여기에서 명시해야할 버전은 cvs log 명령어를 통해 확인할 수 있다.
old_filename: 복구할 파일 이름
new_filename: 복구해서 저장할 파일 이름
8. 파일의 특정 부분을 어느 사용자가 수정했는지 확인
cvs annotate filename
cvs ann filename
9. 작업공간의 파일과 저장소의 최신버전의 차이 확인
cvs diff filename
10. 버전별로 파일의 차이 확인
cvs diff -r version1 -r version2 filename
version1, 2: 여기에서 명시해야할 버전은 cvs log 명령어를 통해 확인할 수 있다.
11. 특정 시점으로 파일 되돌리기
cvs up -D YYYY-MM-DD HH-MM [filename]
YYYY-MM-DD: 날짜 (예: 2005-02-22)
HH-MM: 시간 (예: 05:00)
filename을 명시해 주었을 경우 해당 파일을 되돌리고
명시하지 않았을 경우 해당 디렉토리와 그 하위 디렉토리의 내용을 모두 명시한 시점으로 되돌린다.
12. 태그 생성
cvs tag tag_name
해당 디렉토리와 그 하위 디렉토리의 내용에 tag_name의 tag를 붙인다.
13. 태그를 건 시점으로 되돌리기
태그를 생성하였다면 그 태그가 생성된 시점으로 내용을 복구할 수 있다.
cvs up -R tag_name
과 같이 하면
해당 디렉토리와 그 하위 디렉토리의 내용을 tag_name이 지정된 시점으로 복구한다.
14. Revision Number 바꾸기
큰 변화에 따른 revision number를 바꾸기가 가능하다
cvs ci -m "updating major revision number" -r new_version
'리눅스' 카테고리의 다른 글
리눅스 tar.xz 압축풀기 (0) | 2016.10.11 |
---|---|
cvs diff 명령어 (0) | 2016.07.31 |
우분투 openvpn id password 기반 인증 방식 vpn 클라이언트 다운로드 (0) | 2016.07.05 |
우분투 openvpn 설치 easy-rsa 설정 openvpn 인증서 초기화 (1) | 2016.07.03 |
리눅스 한글 Locale LANG=ko_KR.UTF-8 (0) | 2016.07.02 |