2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

서브버전 SVN의 로그를 필터링하는 방법은?

_____
Q1: SVN 로그를 특정 메시지나 키워드로 필터링하려면 어떻게 하나요?
A1: SVN 자체에는 로그 메시지를 직접 필터링하는 기능이 없으므로, `svn log` 명령어 출력 결과를 `grep`과 같은 텍스트 필터링 도구로 처리합니다. 예:
```
svn log URL| svn log PATH | grep "키워드"
```
예) "fix"라는 단어가 포함된 커밋 메시지 필터링:
```
svn log | grep "fix"
```

---

Q2: 특정 기간 동안의 로그만 보고 싶을 때는?
A2: `-r` 옵션으로 특정 리비전 범위를 지정하거나 `--revision {날짜}` 형식으로 날짜 범위를 지정합니다.
예: 2023년 1월 1일부터 2023년 3월 1일까지 로그 보기
```
svn log -r {2023-01-01}:{2023-03-01}
```

---

Q3: 특정 작성자(author)의 커밋 로그만 보고 싶다면?
A3: `svn log` 명령어로 전체 로그를 출력한 뒤 `grep`으로 작성자명(author) 필터링을 합니다.
예: 작성자가 "johndoe"인 로그만 보기
```
svn log | grep -A 3 "^r[0-9]* | johndoe"
```
(SVN 로그 출력 형식에 따라 적절히 조절 필요, `-A` 옵션은 작성자명 다음 커밋 메시지 등도 포함시키기 위함)

---

Q4: XML 형식의 로그를 받아 필터링하는 방법은?
A4: `--xml` 옵션을 사용해 로그를 XML로 받고, `xmllint`, `xmlstarlet` 등 XML 파서 도구로 필요한 데이터를 필터링합니다.
예:
```
svn log --xml > log.xml
xmlstarlet sel -t -m "/log/logentry[contains(msg,'fix')]" -v "revision" -n log.xml
```

---

Q5: 로그 메시지 내 여러 조건(작성자, 키워드, 기간)을 조합해 필터링하려면?
A5: SVN 명령어로 기간(`-r`), 경로, 작성자 조건을 직접 걸 수 없으므로 전체 로그를 출력 후 스크립트 또는 파이프라인으로 필터링합니다. 예:
```
svn log -r {2023-01-01}:{2023-03-01} | awk '/^r[0-9]+ \| johndoe/ {flag=1} /^-+$/ {flag=0} flag && /fix/'
```
이처럼 여러 조건을 조합해서 원하는 로그 항목만 추출 가능.

---

Q6: GUI 혹은 웹 툴에서 SVN 로그를 필터링하려면?
A6: TortoiseSVN 같은 클라이언트에서는 로그 보기 창에서 작성자, 날짜, 커밋 메시지 키워드 필터 기능을 제공합니다. 웹인터페이스(예: ViewVC)도 검색 기능이 포함되어 있는 경우가 많으므로 이를 활용합니다.

---

요약: SVN 로그 필터링은 기본적으로 `svn log` 명령어 출력 이후 일반 텍스트 처리 도구(`grep`, `awk`), 혹은 XML 파서(`xmlstarlet`)를 조합해 필터링하며, GUI 툴을 이용하면 더 편리하게 조건 검색 가능합니다.
서브버전(SVN)에서 로그를 필터링하는 방법은 여러 가지가 있습니다.

`svn log` 명령어를 사용하여 특정 조건에 맞는 로그를 조회할 수 있으며, 이를 통해 필요한 정보를 효율적으로 찾을 수 있습니다.

아래는 몇 가지 일반적인 필터링 방법입니다.

1. 특정 리비전 번호의 로그 조회 특정 리비전 번호에 해당하는 로그를 조회하려면 `-r` 옵션을 사용합니다.

```bash svn log -r ```

2. 날짜 범위로 필터링 특정 날짜 범위의 로그를 필터링하려면 `-r` 옵션과 함께 날짜를 사용합니다.

날짜는 YYYY-MM-DD 형식으로 입력합니다.

```bash svn log -r {2023-01-01}:{2023-01-31} ```

3. 특정 트리거 사용자 로그 조회 특정 사용자가 커밋한 로그를 조회하려면 로그 메시지를 파이프하여 `grep`으로 필터링할 수 있습니다.

```bash svn log | grep "" ```

4. 키워드로 필터링 커밋 메시지에 특정 키워드가 포함된 로그를 조회하고 싶다면 `grep`을 사용할 수 있습니다.

```bash svn log | grep "" ```

5. 로그의 출력 형식 조정 출력되는 로그의 형식을 조정하려면 `--xml` 또는 `--limit` 옵션 등을 사용할 수 있습니다.

```bash svn log --limit 10 최근 10개의 로그만 보여줌 ```

6. 출력 형식 변경 `--xml` 옵션을 사용하여 XML 형식으로 출력을 받을 수도 있으며, 이를 통해 프로그램matic한 처리가 용이해집니다.

```bash svn log --xml ``` 이와 같은 방법으로 SVN의 로그를 필터링하여 원하는 정보를 효율적으로 찾을 수 있습니다.

필요에 따라 여러 필터링 조건을 조합하여 사용할 수도 있습니다.

작성자: 최서윤 [비회원] | 작성일자: 1년 전 2025-03-21 15:51:35
조회수: 249 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.