Mamy zbiorcze repozytorium kodu zawierające tysiące folderów i podfolderów, chcę przeszukać ten repozytorium z nazwą pliku lub jakimś słowem.
Root folder
a\
b\
c\
d\
e\
f\ab\
f\ab\cd.txt
Chcę wyszukać cd.txt, ale nie wiem, gdzie jest w repozytorium SVN, ponieważ chcę przeprowadzić wyszukiwanie w folderze głównym SVN, w którym umieszczę nazwę pliku cd.txt i uruchomię polecenie, sprawdzę każdy folder i wyświetli wynik szczegółów pliku ....
Nadzieja jest jasna. Czy możesz mi w tym pomóc?
Odpowiedzi:
Jeśli plik znajduje się w kopii roboczej, to jeśli używasz svn 1.5:
lub wcześniejsza wersja svn:
Jeśli chcesz znaleźć plik w historii (usunięty lub przeniesiony):
i wyszukaj za pomocą:
źródło
... | select-string <filename>
jako zamiennika dlagrep
.... | find "<filename>"
będzie również działać jako zamiennik grep. UWAGA : „są wymagane w okolicach nazwy pliku.svn co --depth empty REPOURL RepoDir
,cd RepoDir
asvn list --depth infinity
następnie pobrać wszystkie ścieżki plików z serwera SVN (prawdopodobnie tworząc miliony linii, jeśli masz miliony).Poniższe działa dla mnie (wersja svn 1.4.6)
źródło
Z dostępem do samego repozytorium użyj (tj. W systemie plików hosta svn)
lub przeszukać wszystkie repozytoria (jeśli masz konfigurację wielu repozytoriów).
opcja --full-path da pełną ścieżkę w repozytorium do pliku (jeśli zostanie znaleziona)
przykład:
przekieruj dane wyjściowe do pliku, jeśli wymagana jest kopia statyczna.
zakłada używanie nix OS.
źródło
svn list --depth infinity <your-repo-here>
aby uzyskać listę plików w repozytorium, a następniesvn cat
pobrać zawartość. Możesz dodać--xml
klucz dolist
polecenia, aby nieco uprościć analizowanie.źródło
grep
jeśli chcesz zobaczyć 1 plik, zwłaszcza jeśli masz tysiące plików w repozytorium, takich jak OP. Istnieje również--incremental
tryb, jeśli chcesz połączyć dane wyjściowe z późniejszymi / wcześniejszymi danymi wyjściowymi XML.Niedawno opublikowałem moje narzędzie do tworzenia listy repozytoriów, jest to znacznie szybsze niż podejście "svn ls --depth infinity". Oto wzorce . Po prostu wywołuje funkcję, która jest dostępna w wewnętrznym API Subversion, ale teraz jest dostępna z linii poleceń.
Więc możesz biec
źródło
Jeśli używasz TortoiseSVN, możesz spróbować tego, JEŚLI chcesz spojrzeć na projekt według projektu - działa dla mnie:
źródło
VisualSVN Server 4.2 obsługuje wyszukiwanie plików według nazwy w interfejsie internetowym. Wypróbuj nową funkcję na serwerze demonstracyjnym .
Możesz pobrać VisualSVN Server 4.2.0 pod adresem https://www.visualsvn.com/server/download/pre-release/ . Zobacz informacje o wersji pod adresem https://www.visualsvn.com/server/download/ .
źródło
Jeśli twoje zdalne repozytorium nie jest ogromne, to prostą metodą jest: Możesz zrobić "pobranie", aby uzyskać lokalne repozytorium. Jeśli pracujesz na komputerze z systemem Windows, użyj polecenia „Wyszukaj”, a na komputerze z systemem Linux, użyj polecenia „Znajdź”.
źródło