SVN 리포지토리 검색 [닫기]


155

코드 스 니펫에 대한 SVN 저장소를 검색 할 수있는 좋은 소프트웨어가 있습니까? 'FishEye'를 찾았지만 비용은 1,200이며 예산을 벗어났습니다.


6
리포지토리 내역을 검색해야합니까? 아니면 그냥 머리?
swilliams

4
FishEye를 무료 버전이 있습니다 - www.atlassian.com/starter은
데이비드 D의 C 전자 Freitas의

1
@DavidFreitas 무료 옵션이 없습니다
bahrep

FishEye의 $ 10 버전이 있습니다 : www.atlassian.com/software/starter/overview , @bahrep. 일단 꺼지면 모든 사람들이 자선 단체로갑니다.
David d C e Freitas

1
새로운 svn log --search옵션이 있으며 간단한 리포지토리 기록 검색을 원하는 사람에게 편리 할 수 ​​있습니다.
bahrep

답변:


69

파일 이름 만 검색하는 경우 다음을 사용하십시오.

svn list -R file:///subversion/repository | grep filename

윈도우 :

svn list -R file:///subversion/repository | findstr filename

그렇지 않으면 체크 아웃하고 파일 시스템 검색을 수행하십시오.

egrep -r _code_ .

3
완전히 명확하지는 않지만 이러한 명령은 파일이 아닌 svn 서버에 액세스하는 모든 방법에 적용됩니다 (예 : svn : 및 svn + ssh : 또한 작동)
Alex Marshall

2
//, 각각에 대한 실제 사례를 제공 하시겠습니까?
Nathan Basanese 2016 년

1
OP는 파일 이름뿐만 아니라 파일을 검색하려고했습니다. 파일 시스템 검색 예제는 그다지 유용하지 않습니다.
erict


12

2020 년 1 월 업데이트

VisualSVN Server 4.2는 웹 인터페이스에서 파일 및 폴더 찾기를 지원합니다. 데모 서버의 저장소 중 하나에서 새로운 기능을 사용해보십시오 !

버전 4.2 릴리스 정보를 참조하고 기본 다운로드 페이지 에서 VisualSVN Server 4.2.0을 다운로드하십시오 .

여기에 이미지 설명을 입력하십시오


이전 답변

Subversion 1.8--searchsvn log 부터는 command 와 함께 option을 사용할 수 있습니다 . 이 명령은 저장소 내에서 전체 텍스트 검색을 수행하지 않으며 다음 데이터 만 고려합니다.

  • 개정 저자 ( svn:author버전이없는 재산),
  • 날짜 ( svn:date버전이없는 속성)
  • 로그 메시지 텍스트 ( svn:log버전이없는 속성)
  • 변경된 경로 (예 : 특정 개정의 영향을받는 경로) 목록.

다음은 이러한 새로운 검색 옵션에 대한 도움말 페이지입니다.

 If the --search option is used, log messages are displayed only if the
 provided search pattern matches any of the author, date, log message
 text (unless --quiet is used), or, if the --verbose option is also
 provided, a changed path.
 The search pattern may include "glob syntax" wildcards:
     ?      matches any single character
     *      matches a sequence of arbitrary characters
     [abc]  matches any of the characters listed inside the brackets
 If multiple --search options are provided, a log message is shown if
 it matches any of the provided search patterns. If the --search-and
 option is used, that option's argument is combined with the pattern
 from the previous --search or --search-and option, and a log message
 is shown only if it matches the combined search pattern.
 If --limit is used in combination with --search, --limit restricts the
 number of log messages searched, rather than restricting the output
 to a particular number of matching log messages.

1
이 방법은 빠르게 작동하지만 파일이 있는지 검색하는 데 사용해서는 안됩니다. 이 검색 옵션은 각 개정판에서 명시 적으로 변경된 경로 목록 만 구문 분석하므로 특정 파일이있는 폴더 사본 (트렁크에서 작성된 새 분기)을 작성할 수 있지만이 방법으로 나열되지는 않습니다.
Pieter-Jan Busschaert 10

@ Pieter-JanBusschaert 의견은 svn log --search 명령을 사용하는 것에 관한 것입니다. 새로운 웹 기반 검색에 대한 업데이트 된 답변을 참조하십시오. 이 제한이 없습니다.
bahrep


9
  1. git-svn해당 저장소의 미러를 작성하십시오 .
  2. git에서 추가되거나 제거 된 문자열을 검색 git log -S'my line of code'하십시오.gitk

서버와 네트워크 연결을로드하지 않고도 많은 검색을 로컬에서 수행 할 수 있다는 이점이 있습니다.


8

이 예제는 리포지토리의 전체 내용을 파일로 파이프 한 다음 편집기에서 파일 이름을 빠르게 검색 할 수 있습니다.

svn list -R svn://svn > filelist.txt

이는 저장소가 비교적 정적이며 SVN 서버에서 모든 항목을 반복적으로로드하지 않고 빠른 검색을 수행하려는 경우에 유용합니다.


4
필자의 경우 http프로토콜 ( svn list -R http://repo/svn/etc) 로 사용해야 했습니다 .
Charles Wood

OP는 파일 이름이 아닌 파일을 검색하려고했기 때문에 다운 보트되었습니다. svn list 명령은 저장소의 파일 이름 만 덤프합니다.
erict


4

참고로 FishEye (및 많은 다른 Atlassian 제품)에는 $ 10 Starter Edition이 있으며, FishEye의 경우 5 개의 리포지토리와 최대 10 개의 커미터에 액세스 할 수 있습니다. 이 경우 돈은 자선 단체에 간다.

www.atlassian.com/starter


더 이상? 페이지에 무료 옵션이 표시되지 않습니다.
bahrep

@bahrep, 나는 대답을 업데이 트했습니다, 당신이 그것에 대해 생각하면 효과적으로 "무료"인 자선 단체에 간다 지금 $ 10입니다.
David d C e Freitas

3

단일 파일 또는 작은 리포지토리의 기록을 검색하는 경우 고통스럽고 느리게 구현되지만 svn log 및 svn cat 조합이 작동합니다.

svn log filetosearch |
    grep '^r' |
    cut -f1 -d' ' |
    xargs -i bash -c "echo '{}'; svn cat filetosearch -'{}'" 

파일이 변경된 각 개정 번호와 파일을 출력합니다. 항상 각 개정판을 다른 파일로 분류 한 다음 변경 사항을 grep 할 수 있습니다.

추신. 이 작업을 올바르게 수행하는 방법을 보여주는 사람에게 대규모 투표를하십시오!


3
그냥 사용하십시오 git-svn. Git은 커밋 히스토리에서 코드를 기본적으로 검색합니다. 그러나 사용하려면 커밋 기록 전체를 다운로드해야합니다 git-svn.
Vi.

2

당신이 정말로 절망적이라면, repo의 덤프 ( "svnadmin dump"를보십시오)를 수행 한 다음 grep하십시오. 예쁘지는 않지만 검색 결과를 살펴보고 파일과 개정판을 나타내는 메타 데이터를 찾은 다음 더 나은 모양을 확인하십시오.

SVN은 과거 체크인 (또는 과거 로그 파일, AFAIK)을 검색하는 기능을 제공하지 않습니다.


1

많은 SVN 저장소는 "간단한"HTTP 사이트이므로 SVN 루트를 가리킬 수있는 기성품 "웹 크롤링"검색 앱을 살펴보면 기본 기능을 제공 할 수 있습니다. 그것을 업데이트하는 것은 약간의 트릭 일 것입니다. 해커 리의 일부 SVN 검사는 색인을 간지러워 변경 사항을 버리고 다시 색인을 생성 할 수 있습니다.

그냥 큰소리로 생각해


1
오버 헤드가 엄청 나기 때문에 이것은 아마도 좋은 생각이 아닙니다. 또한 SVN 서버는 일반적으로 일반 웹 페이지는 아니지만 webdav를 통해 노출되는 svn 저장소입니다.
torkildr


1

이 도구를 사용하기 시작했습니다

http://www.supose.org/wiki/supose

시각적 UI가 없어도 잘 작동하지만 빠르고 다소 유지 관리됩니다.


1
요즘 (2012 년 8 월) 프로젝트가 중단 된 것 같습니다 ...
anol

2012 년 12 월에 그들은 새로운 것을 발표했습니다 (0.7.1)
sendmoreinfo

2
disappeard을 갖고있는 것 같아요
fbstj

0

// 편집 : 도구는 이미 다른 답변에서 언급되었으므로 모든 크레딧을 Kuryaki에 제공하십시오.

방금 색인을 작성하기 위해 저장소를 스캔하고 나중에 특정 종류의 조회에 응답 할 수있는 Java 기반 명령 행 도구 인 SupoSE 를 찾았 습니다 . 우리는 여전히 도구를 평가하고 있지만 유망한 것으로 보입니다. 소스 코드 파일과 일반적인 사무실 형식을 포함한 모든 개정판의 전체 색인을 작성한다는 점은 언급 할 가치가 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.