내 시스템에서 모든 Subversion 저장소를 어떻게 찾나요?

내 시스템에서 모든 Subversion 저장소를 어떻게 찾나요?

이 명령을 사용하여 locate --regex '/.git$' | grep username내 시스템의 모든 git 저장소를 찾을 수 있지만 .svn저장소의 하위 디렉터리에 나타나므로 이 명령 locate --regex '/.svn$' | grep username도 작동합니다.

전자는 약 120대의 차량을 생산한 반면, 후자는 14,000대 이상의 차량을 생산했습니다.

Subverson 저장소를 찾으려면 어떤 파일이나 디렉터리 이름을 검색해야 합니까?

답변1

Git에서 각 작업 복사본은 자체 저장소입니다. SVN에서는 그렇지 않습니다. 그러니 정말로 찾고 싶다면저장소, 기본 위치와 로컬 시스템에 있으면 이것으로 충분합니다.

ls /var/svn

당신이 정말로 찾고 싶다고 가정 해 봅시다작업 사본, SVN 버전 1.7부터 .svn작업 복사본의 최상위 수준에만 파일을 배치하므로 이 명령은

find / -type d -name '.svn'

잘 작동할 겁니다. 또는 이전 버전의 SVN을 사용했고 이러한 디렉터리가 흩어져 있는 경우 다음을 시도해 볼 수 있습니다.

find / -type d -name '.svn' -exec dirname {} \; \
| sort \
| awk 'NR == 1 || $0 !~ "^"LAST { LAST = $0; print}'

그러면 하위 디렉터리가 포함된 모든 디렉터리가 나열 .svn되고 접두사로 다른 디렉터리가 포함되지 않은 디렉터리만 인쇄됩니다.


locate나는 그 내용이 담긴 컴퓨터를 발견했다.

$ locate --version
mlocate 0.26
Copyright (C) 2007 Red Hat, Inc. All rights reserved.
This software is distributed under the GPL v.2.

This program is provided with NO WARRANTY, to the extent permitted by law.

이 시스템에서는 find마지막 예와 유사한 접근 방식을 취합니다.

locate -r '/\.svn$' \
| sed 's/^\(.*\)$/"\1"/' \
| xargs dirname \
| sort \
| awk 'NR == 1 || $0 !~ "^"LAST { LAST = $0; print }'

관련 정보