$ svn status
D fish.c
A shrimp.c
M anemone.c
fish.c는 삭제될 것이며, shrimp.c는 추가될 것이며, anemore.c는 변경되었다는 것을 의미한다.
$ svn status --verbose
44 23 sally README
44 30 sally INSTALL
44 35 harry trout.c
D 44 19 ira fish.c
A 0 ? ? shrimp.c
M 0 ? ? anemone.c
44 36 harry things/rocks.txt
첫번째 열은 동일하지만, 두번째는 작업 사본의 개정번호를 보여준다. 세번째와 네번째 열은 각 항목이 마지막으로 변경된 개정번호와 누가 변경했는지를 보여준다.
$ svn status --show-updates --verbose
* 44 23 sally README
44 30 sally INSTALL
* 44 35 harry trout.c
D 44 19 ira fish.c
A 0 ? ? shrimp.c
M * 44 32 sally anemone.c
44 36 harry things/rocks.txt
업데이트될 파일은 *로 표시되는 것을 알 수 있다.
$ svn move foo.c bar.c
A bar.c
D foo.c
이제 bar.c는 저장소에 추가될 것이고, foo.c는 삭제될 것이다.(Subversion은 이동에 대해 추가와 삭제로 보여주며, svn commit을 수행할 때 서버에 변경사항이 반영된다)
$ svn move -m "Move a file" http://svn.red-bean.com/repos/foo.c \
http://svn.red-bean.com/repos/bar.c
위와 같은 명령은 서버에 있는 foo.c를 bar.c로 바로 변경한다.
$ svn copy -m "Tag rc1 rel." http://svn.red-bean.com/repos/trunk \
http://svn.red-bean.com/repos/tags/1.0rc1
위 명령을 사용하여 주요 개발 버전에 대한 태그를 부여한 것이다.(Subversion 용어로는 이를 trunk라 한다.) 트리 확장을 하고 싶다면, trunk를 트리 확장 디렉터리로 복사하면 된다. Subversion에서 태그 부여와 트리 확장은 매우 빠르게 수행된다.
$ svn copy -m "Mixed branch." . http://svn.red-bean.com/repos/branch/1.2-mixed
$ rm I-made-a-boo-boo.txt
$ cvs up I-made-a-boo-boo.txt
U I-made-a-boo-boo.txt
두 번의 절차를 거쳐야 하며, 변경되지 않은 파일을 가져오기 위해 서버와 데이터를 주고 받아야 한다. 그러나 Subversion에서는 각 파일의 원본을 .svn 디렉터리에 보관하고 있으므로 다음과 같이 하면 된다.
$ svn revert I-made-a-boo-boo.txt
Reverted "I-made-a-boo-boo.txt"
이와 같은 방법은 지금 네트워크에 연결되어 있지 않아도 사용할 수 있으며 사용법도 간단하다.
$ svn propset svn:eol-style native halibut.c
$ svn log
------------------------------------------------------------------------
r3 | sally | Mon, 15 Jul 2002 18:03:46 -0500 | 1 line
Added include lines and corrected # of cheese slices.
------------------------------------------------------------------------
r2 | harry | Mon, 15 Jul 2002 17:47:57 -0500 | 1 line
Outline sandwich fixins.
------------------------------------------------------------------------
r1 | sally | Mon, 15 Jul 2002 17:40:08 -0500 | 1 line
Initial import
------------------------------------------------------------------------
각 로그 항목은 항목, 저자, 날짜, 로그에 기록된 라인 수, 로그 메시지를 볼 수 있다. 로그에 변경된 경로까지 보고 싶다면 --verbose 플래그를 사용할 수 있다.
$ svn log --verbose
------------------------------------------------------------------------
r3 | sally | Mon, 15 Jul 2002 18:03:46 -0500 | 1 line
Changed paths:
M /trunk/sandwich.txt
Added include lines and corrected # of cheese slices.
------------------------------------------------------------------------
r2 | harry | Mon, 15 Jul 2002 17:47:57 -0500 | 1 line
Changed paths:
M /trunk/sandwich.txt
Outline sandwich fixins.
------------------------------------------------------------------------
r1 | sally | Mon, 15 Jul 2002 17:40:08 -0500 | 1 line
Changed paths:
A /trunk/sandwich.txt
Initial import
------------------------------------------------------------------------
위 예제에서, log 명령에 특정 파일이나 디렉터리에 대한 정보를 제공하지 않는다는 것을 알 수 있다. 어떤 것도 지정하지 않고 svn log 명령을 사용하면 현재 작업 디렉터리를 참조한다. Subversion은 초기 개정 번호로 1을 사용하며, 최종 개정 번호로 현재 작업 디렉터리의 작업 개정번호로 사용한다.(작업 개정 번호를 알기 위해서는 svn status -v를 사용한다)
$ svn merge -r 303:302 http://svn.example.com/repos/calc/trunk
U oyster.c
$ svn copy --revision 807 \
http://svn.red-bean.com/repos/trunk/perch.c ./perch.c
보다 자세한 것은 Resurrecting deleted items를 참고한다.
$ svn switch http://svn.red-bean.com/repos/branches/vendors-with-fix .
U myproj/foo.txt
U myproj/bar.txt
U myproj/baz.c
U myproj/qux.c
Updated to revision 31.
보다 자세한 것은 Switchting a working copy를 참고한다.이전 글 : Mailgraph로 메일 서버 성능 모니터링
다음 글 : 윈도우 XP SP2 호환성 문제를 위한 조언
최신 콘텐츠