Nonaktifkan Windows 7 Dari Indexing .svn metadata secara otomatis

26

Ada masalah yang diketahui dengan repositori SVN dan layanan pengindeksan windows memperebutkan file metadata .svn. Di sini untuk lebih jelasnya.

Bagaimana kita mengaturnya sehingga secara otomatis tidak ada masalah memiliki repositori subversi yang diindeks oleh windows (Vista / Win7). (Kami tidak ingin harus melakukan sesuatu secara manual setiap kali kami menambahkan direktori repo.)

Satu ide adalah mengatur Windows untuk secara otomatis tidak mengindeks folder bernama ".svn", namun saya tidak dapat menemukan cara untuk melakukan ini.

Saya tahu Anda dapat menonaktifkan ekstensi tertentu, tetapi tampaknya tidak berfungsi karena file metadata svn ada di folder.

Catatan: The

James Van Boxtel
sumber
Repositori SVN tidak mengandung file .svn, tetapi copy pekerjaan SVN. Ini mungkin tentang mengatasi masalah penyalinan
Sander Rijken,

Jawaban:

11

Saya mengalami masalah yang sama dan menemukan solusi. Semua kode saya disimpan di bawah satu folder:

F: \ proyek \

Di bawah folder itu terdapat pohon kode dan file proyek terkait yang totalnya lebih dari 2GB. Saya terus-menerus perlu mencari pohon dan jendela Pengindeksan ini sebenarnya merupakan alat yang sangat berguna untuk melakukan pencarian cepat, jadi mematikannya bukan pilihan. Saya ingin mengecualikan folder SVN karena mereka mengacaukan hasil pencarian saya, (2) hambatan yang tidak perlu pada sistem saya, (3) SVN, Win7, dan MS Security Essentials tampaknya tidak berfungsi dengan baik ketika melakukan operasi SVN besar.

Sebelum Anda mencoba solusinya, buat ulang masalahnya:

  1. Di Windows Explorer, navigasikan ke root proyek Anda yang diindeks (F: \ projects \ di mesin saya).
  2. Menggunakan bilah pencarian di sudut kanan atas jendela Explorer, cari "svn" (tanpa tanda kutip)
  3. Anda akan melihat triliun file & folder SVN yang tidak berguna seperti ".svn", dan "svn-base" muncul di hasil.

Larutan:

  1. Kunjungi http://code.msdn.microsoft.com/windowssearch/
  2. Unduh CrawlScopeCommandLine.zip
  3. Ekstrak ke suatu tempat di mesin Anda, dan kompilasi proyek
  4. Buka jendela Konsol dengan hak administratif (Ctrl + Shift + Klik kiri pada item "Prompt Perintah" di menu Mulai).
  5. Arahkan ke mana pun Anda menyusun proyek di atas.
  6. Jalankan csmcmd.exe dengan param / add_rule (gunakan /? First untuk sintaks).
  7. Dalam kasus saya, saya memasukkan perintah berikut: csmcmd.exe /add_rule file:///F:\projects\*\.svn\* /USER /EXCLUDE

Saya menemukan ini dengan terlebih dahulu menjalankan perintah:, csmcmd.exe /enumerate_rulesuntuk mendaftar semua yang sudah ada. Sudah ada beberapa aturan dengan asterix (*) wildcard yang digunakan oleh Windows, jadi itu membuktikan bahwa ini mungkin.

Sekarang ulangi langkah-langkah untuk mereproduksi masalah, dan Anda seharusnya tidak lagi melihat kekacauan SVN di hasil pencarian Anda. Berikan komputer kapan-kapan untuk memperbarui indeks - ini membutuhkan waktu kurang dari 5 menit pada sistem saya. Terkadang memulai kembali layanan Pencarian, memulai pembangunan kembali / pengindeksan ulang, atau reboot membantu memindahkan semuanya.

Pembaruan : Beberapa proyek SVN saya menggunakan ".svn", dan beberapa menggunakan "_svn", jadi saya telah menambahkan dua aturan ini ke setiap drive:

csmcmd.exe /add_rule file:///F:\*\.svn\* /DEFAULT /EXCLUDE csmcmd.exe /add_rule file:///F:\*\_svn\* /DEFAULT /EXCLUDE

Giscard Biamby
sumber
ada pembaruan tentang kemanjuran ini?
Jonathan Day
Bekerja untukku! Penjelasan yang bagus, Giscard!
Christopher Oezbek
Saya telah menggunakan metode ini selama satu tahun sekarang dan telah bekerja dengan sempurna untuk saya.
Giscard Biamby
1
Tautan sudah mati, tetapi ini adalah contoh aplikasi yang disertakan dengan MS SDK, dan juga tersedia secara terpisah. Sumber ada di sini: msdn.microsoft.com/en-us/library/windows/desktop/… - tidak yakin apakah Microsoft masih menyimpan biner. Saya menggunakan file `. \ Csmcmd / add_rule": /// c: * \ .git * "/ DEFAULT / EXCLUDE` untuk mengecualikan repositori git saya.
Ryan Pavlik
5

AFAIK, layanan Pengindeksan Windows pada Windows 7 hanya terlihat dalam folder Users sebagai default (koreksi saya jika saya salah). Jika Anda memiliki repositori SVN di dalam folder pribadi Anda, Anda dapat:

a) Menempatkan repositori SVN Anda di tempat lain

b) Dengan mengecualikan folder tersebut dari indeks. Di sini Anda akan menemukan cara mengecualikan folder.

Pria Tertawa
sumber
7
Saya ingin memiliki repositori saya diindeks, hanya saja bukan file meta-data svn.
James Van Boxtel
4

Perbaikan yang jelas akan mengubah Subversion untuk mengatur bendera "jangan indeks" ini setiap kali ia membuat direktori .svn. Masalahnya adalah bahwa fitur ini tidak lagi diperlukan ketika diperkenalkan.

Masalah yang diketahui kemungkinan besar akan hilang dalam versi Subversion yang saat ini sedang dikembangkan (versi 1.7). Akan ada jauh lebih sedikit operasi file di dalam direktori .svn, dan juga hanya 1 .svn direktori per copy pekerjaan.

Ini memperkecil kemungkinan masalah akan terjadi, dan juga membuatnya lebih mudah untuk menonaktifkan pengindeksan, karena hanya ada satu folder .svn.

Sander Rijken
sumber
2

Metode kekerasan

  1. lakukan pencarian untuk semua direktori .svn
  2. pilih semua (ctrl + a)
  3. Properti klik kanan mouse
  4. klik "maju ..."
  5. hapus centang pada "Indeks folder ini untuk pencarian lebih cepat"
  6. terapkan perubahannya

Kebijakan Grup WDS memiliki opsi untuk Prevent Indexing Certain Paths, tetapi tidak terdaftar untuk Windows Vista menurut bagan fitur.

Didukung pada: Windows XP, Windows Server 2003 dengan Windows Search 3.01, atau versi Microsoft Windows apa pun dengan Windows Search 4.0 atau yang lebih baru.

Aula Darren
sumber
1
Saya menyadari solusi ini, namun tidak otomatis. Tujuannya adalah agar folder baru yang dibuat secara otomatis memiliki perilaku ini.
James Van Boxtel
1

Jika jawaban Darren Halls adalah pendekatan "Brute Force", maka jawaban saya haruslah pendekatan "Brute Force and Ignorance". :)

Ini adalah sesuatu yang baru-baru ini mengganggu saya karena kami menggunakan SVN untuk manajemen dokumen dan proyek yang dapat berarti pengindeks Windows sangat berguna ketika datang untuk dapat mencari dokumen yang tidak jelas, tetapi menangkap semua file penyimpanan svn tidak berguna.

Ini adalah solusi saya (agak jelek) dalam file batch windows:

 ATTRIB /S /D -H ".svn"

 ATTRIB /S /D +I ".svn"
 ATTRIB /S /D +I "all-wcprops"
 ATTRIB /S /D +I "entries"
 ATTRIB /S /D +I "tmp"
 ATTRIB /S /D +I "props"
 ATTRIB /S /D +I "text-base"
 ATTRIB /S /D +I "prop-base"
 ATTRIB /S /D +I "*.svn-base"

 ATTRIB /S /D +H ".svn"

Baris pertama dan terakhir ada karena ATTRIB menolak untuk menerapkan + I beralih ke folder tersembunyi, setidaknya itu berlaku untuk saya. Anda harus menyalin ini ke file seperti "svnNoIndex.bat" dan menjalankannya di direktori checkout SVN Anda, dengan repositori besar itu bisa memakan waktu ...

Saya saat ini sedang menguji ini di bawah Vista dengan paket layanan terbaru, saya berharap itu berfungsi pada Windows 7. Saya tidak tahu apakah indeks perlu dibangun kembali untuk memperhitungkan file yang sekarang ditandai sebagai tidak diindeks oleh melakukan ini, tetapi saya perlu membangun kembali tambang saya sehingga itulah yang saya lakukan karena hanya beberapa hari sementara indeks dibangun kembali.

Untuk menjadikan "otomatis" ini, Anda dapat menambahkan file batch sebagai kait pasca-pembaruan yang dijalankan setelah pembaruan ... jika itu berantakan, tetapi mungkin berfungsi.

Mokubai
sumber
1

Anda pada dasarnya dapat memberitahu Pencarian Windows untuk mengabaikan folder .svn dengan mengubah registri.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\DefaultRules\11]
"URL"="file:///*\\.svn\\*"
"Include"=dword:00000000
"Suppress"=dword:00000000
"Default"=dword:00000001
"Policy"=dword:00000000

URL cocok dengan folder bernama ".svn" di mana saja di sistem file Anda. (Angka setelah aturan default harus unik - yaitu jika Anda sudah memiliki aturan standar 11, pilih nomor lain).

Grynn
sumber
Saya perhatikan bahwa DefaultRules berisi kata ItemCount. Tidak yakin itu perlu, tapi saya meningkatkan nilai ini untuk memperhitungkan aturan tambahan.
gapple