728x90
SVN(Subversion)에서 svnversion 명령은 작업 사본(working copy)의 리비전 상태를 한 줄로 요약해 줍니다. 빌드 스크립트에서 배포 버전을 태깅하거나, 작업 사본이 깨끗한지 확인할 때 유용합니다. 그런데 출력에 4123:4168MS 같은 기호가 붙으면 무슨 뜻인지 헷갈립니다. 각 표기를 정리합니다.
출력 표기 해석
| 출력 예 | 의미 | 설명 |
4168 |
단순 리비전 | 모든 파일이 같은 리비전 (깨끗한 상태) |
4123:4168 |
mixed revision | 혼합 리비전 — 파일마다 리비전이 다름(선택적 업데이트 등) |
4168M |
modified | 수정된 작업 사본 (커밋 안 된 변경 있음) |
4123S |
switched | 전환된 작업 사본 (일부가 다른 URL로 switch됨) |
4123P |
partial | 부분 작업 사본 (sparse checkout으로 듬성듬성 받음) |
4123:4168MS |
혼합+수정+전환 | 여러 상태가 겹친 경우 기호가 함께 붙음 |
svn info와의 차이
비슷해 보이는 svn info와 목적이 다릅니다.
- svn info — 작업 사본의 상세 메타데이터(URL, 마지막 커밋 리비전 등)를 여러 줄로 출력. 사람이 읽는 용도.
- svnversion — 전체 작업 사본의 리비전 상태를 한 줄로 압축. 스크립트/자동화에 적합. 특히 혼합 리비전(mixed)을 한눈에 보여준다는 점이 핵심 — svn info로는 파악하기 어렵습니다.
그래서 "현재 작업 사본 전체를 대표하는 리비전으로 태깅"하려면 svnversion이 정답입니다.
활용 예
# 빌드에 리비전 정보 심기
svnversion > build_version.txt
# 깨끗한 상태(M/S 없음)인지 확인 후 배포
if svnversion | grep -qE "[MS]"; then
echo "작업 사본에 미커밋 변경/전환 있음 — 배포 중단"
exit 1
fi
참고로 SVN 후속인 Git에서는 git describe나 git rev-parse HEAD가 유사한 역할을 하며, git status --porcelain이 "깨끗한지" 확인에 해당합니다.
what is the difference b/w svn info and svnversion
I need to tag my project with the latest revision(working copy).I thought about using svn info command,but I am doing selective updates so what i have is a working copy with mixed revision and while
stackoverflow.com
728x90
'푸닥거리' 카테고리의 다른 글
| 웹사이트에서 사용된 기술을 식별하는 크롬 확장팩 (0) | 2022.04.15 |
|---|---|
| SQLSTATE[HY000] [2002] Permission denied (0) | 2022.04.15 |
| [일학습병행] 한국기술교육대학교 고숙련마이스터 과정 22년도 (0) | 2022.04.13 |
| 22년도 직업능력개발훈련교사 자격교육 연간일정 (0) | 2022.04.12 |
| Cloud Native의 이해-1 (0) | 2022.04.10 |
댓글