Saya dapat menggunakan perintah ini locate --regex '/.git$' | grep username untuk menemukan semua repositori git di sistem saya, tetapi karena .svn muncul di subdirektori repositori perintah locate --regex '/.svn$' | grep username bekerja juga.
Yang pertama menghasilkan sekitar 120 dan yang kedua lebih dari 14.000.
Nama file atau direktori apa yang harus saya cari untuk menemukan repositori subverson?
Jawaban yang Diterima:
Di Git, setiap copy pekerjaan adalah repositorinya sendiri. Ini tidak berlaku untuk SVN. Jadi, jika Anda benar-benar ingin menemukan repositori , dan mereka berada di lokasi default dan di mesin lokal, ini sudah cukup:
ls /var/svn
Dengan asumsi Anda benar-benar ingin menemukan salinan kerja , SVN sejak versi 1.7 hanya menempatkan .svn file di tingkat atas copy pekerjaan, jadi perintahnya
find / -type d -name '.svn'
akan bekerja dengan baik. Atau, jika Anda telah menggunakan SVN sebelumnya dan direktori ini berserakan, Anda dapat mencoba:
find / -type d -name '.svn' -exec dirname {} \; \
| sort \
| awk 'NR == 1 || $0 !~ "^"LAST { LAST = $0; print}'
Ini mencantumkan semua direktori yang berisi .svn subdirektori, lalu hanya mencetak yang tidak mengandung yang lain sebagai awalan.
Saya menemukan komputer yang berisi locate , di mana
$ 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.
Pada sistem ini, pendekatan yang mirip dengan find final terakhir contoh:
locate -r '/\.svn$' \
| sed 's/^\(.*\)$/"\1"/' \
| xargs dirname \
| sort \
| awk 'NR == 1 || $0 !~ "^"LAST { LAST = $0; print }'