2010-01-06 4 views
1

내가 일하는 회사는 CVS를 소스 컨트롤로 사용하며 저장소를 공개하는 인트라넷 응용 프로그램 (Source Forge)이 있습니다. 즉, 해당 인터페이스를 사용하여 소스 파일을 볼 수 있지만 검색 할 수있는 검색 기능을 제공하지 않습니다 주어진 키워드에 대한 코드 스 니펫CVS 저장소를 검색하는 방법은 무엇입니까?

코드 스 니펫을 검색 할 수있는 응용 프로그램을 작성하고 싶습니다 .Ex. 주어진 키워드에 대한 검색을 제공하고 소스 파일을 검색 할 수있는 링크를 제공하는 Koders.com이 될 것입니다. 내가 생각할 수있는 방법은 두 가지가

입니다

CVS 저장소 (이 액세스에 문제가 될 수 있습니다.) 1-검색

2 검색 모든 소스 파일을 노출하는 인트라넷 응용 프로그램을.

너희들은 옳은 접근 방법이라고 생각하니. 나는 별도의 데이터베이스에서 색인을 생성하고 검색을 위해 사용할 계획 이었지만 그렇게하는 방법을 모르고있었습니다. 어떤 도움을 주신 것입니다 :)

+0

왜 데이터베이스와 같은 다른 저장소에 코드 스 니펫을 넣지 않으시겠습니까? –

+0

추가 작업이 필요합니다. 모든 개발자가 CVS의 코드를 체크인하기 때문에 원래 위치에서 검색하는 것이 좋습니다. – Kapil

+0

* 체크인 된 다른 코드와 * 코드 스 니펫 *을 구별하는 점은 무엇입니까? 아니면 단순히 CVS 커밋 코멘트를 통해 검색하고 싶습니까? 코드 스 니펫의 – Tarydon

답변

1

"우리는 CVS 저장소에 somefile.txt라는 파일이 있습니까?"라는 질문을 받았을 때 또는 "파일을 포함하고 있습니까?" (기본 저장소에 대한 액세스 권한이 있었기 때문에) CVSROOT에서 find 명령을 실행했습니다. 이 때 CVS는 RCS를 사용하여 파일을 저장하므로 파일에 ,v이 추가됩니다. 따라서 somefile.txt을 찾으려면 somefile.txt,v이라는 파일을 찾아야합니다.

find $CVSROOT -type f -name somefile.txt,v

또는

find $CVSROOT -type f -exec grep sometext {} \;

(조금 더 복잡 멋지게 작업을 수행하는해야 할 수 있습니다,하지만 당신은 요점 수) 파일이 된 경우

당신이 할 것이다 "삭제" 이 파일은 Attic 디렉토리에 있습니다. 또한 깨지기 쉽기 때문에이 파일을 편집하지 않도록주의하십시오.

액세스 권한이없는 경우 저장소 전체를 체크 아웃 한 다음 로컬 시스템에서 검색해야하지만 실제로 검색하지는 않습니다.

관련 문제