Saya tidak ingin direktori bernama build
atau dist
masuk ke SVN saya tidak peduli seberapa dalam pohon itu.
Apakah ini mungkin? In git saya baru saja menempatkan
build
dist
di saya .gitignore
di root dan secara rekursif mengabaikan. Bagaimana saya melakukan ini dengan svn? Tolong jangan beri tahu saya untuk membuat alat peraga di setiap dir ...
svn
version-control
ignore
Paul Tarjan
sumber
sumber
Jawaban:
Mulai subversi 1.8, sekarang ada
svn:global-ignores
properti yang berfungsi sepertisvn:ignore
tetapi secara rekursif (jadi setel ini di direktori level teratas Anda)sumber
global-ignores
di~/.subversion/config
file, tetapi juga properti yang diwariskan yangsvn:global-ignores
ditetapkan pada direktori di repo SVN, sertasvn:ignore
- dapatkah Anda memberikan ringkasan tentang opsi yang berbeda ini dan bagaimana perbandingannya? Bagaimana--recursive
bendera mempengaruhi mereka juga?obj
folder masih muncul] ( stackoverflow.com/questions/50960188/… ), dapatkah Anda membantu saya untuk melihatnya?svn propset
mengambil--recursive
sebagai opsi, sehingga Anda dapat melakukan ini, dengan dua kelemahan:svn:ignore
properti setiap kali Anda menambahkan direktori barusumber
Tidak mungkin melakukan ini. Hanya ada dua mekanisme pengabaian di Subversion,
svn:ignore
(yang tidak rekursif) danglobal-ignores
(yang tidak spesifik untuk repositori).sumber
Ini bekerja untuk saya:
sumber
tambahkan ke file ~ / .subversion / config atau / etc / subversion / config:
sumber
Anda dapat mengabaikan direktori build dan dist dengan menghapus direktori dari kontrol versi. Triknya adalah dengan menggunakan opsi --keep-local untuk meninggalkan direktori dalam copy pekerjaan. Sebagai contoh:
Direktori tidak akan lagi dilacak oleh subversi tetapi akan tetap ada di copy pekerjaan Anda untuk menampung keluaran kompilator, dll.
tepuk tangan, joe
sumber
Misalnya struktur folder:
Sebaiknya lakukan penghapusan svn dari konten dist sebelum perintah ignore, jadi untuk cabang dist akan kosong.
Bekerja untuk saya, diuji hari ini. Ini adalah halaman yang menjelaskan sedikit
sumber
Untuk mengabaikan semua file semacam itu di semua repositori, Anda dapat menambahkan a
global-ignores
ke file konfigurasi per pengguna Anda.Lihat Opsi Konfigurasi
Sayangnya, tidak ada opsi per repositori untuk melakukan ini. Ini pada dasarnya per pengguna, atau per direktori, jadi kelipatannya
svn:ignores
mungkin cara yang harus dilakukan, sesulit mungkin.sumber
Pertama-tama Anda harus pindah ke folder teratas dari copy pekerjaan Anda dan membuat file di sana (katakanlah .svnignore) di mana Anda harus menempatkan semua pola yang ingin Anda abaikan, misalnya (untuk proyek Android):
Kemudian Anda menjalankan perintah berikut (ingat bahwa Anda harus berada di folder teratas dari copy pekerjaan Anda):
Ini hanya akan berfungsi untuk folder dan file yang belum berada di bawah kendali versi. Jika Anda ingin folder (atau file) yang sedang diversi mulai diabaikan juga, hapus dari kontrol versi dengan menjalankan perintah:
Dapatkan semua ini dari artikel hebat ini yang menjelaskan semuanya: http://superchlorine.com/2013/08/getting-svn-to-ignore-files-and-directories/
sumber
Dalam subversi 1.8 di atas, dimungkinkan untuk menyetel pengabaian global untuk repositori saat ini.
Anda juga dapat membuat folder bernama .svnignore, dan menulis kondisi.
ingat satu kondisi per baris, pengaturan build / * atau dist / debug akan sia-sia. Kemudian lakukan perintah:
sumber
Buat file dan tambahkan pengabaian Anda ke dalamnya
ingore-list:
kemudian terapkan perintah berikut
direktori adalah nama direktori Anda, Anda dapat mengkategorikan juga direktori / sub-direktori. Atau gunakan * untuk mencatat direktori Anda saat ini.
Ini dengan asumsi Anda menggunakan bash sebagai shell Anda
sumber
di mana svn_ignore_rules adalah file yang berisi aturan abaikan - satu per baris
Tentu saja Anda harus menjalankannya kembali setiap kali Anda menambahkan direktori baru ke repo Anda
svn_ignore_rules juga dapat dianggap diperiksa ke dalam repo, agar dapat digunakan kembali oleh pengguna lain yang memiliki akses tulis ke repo
sumber
sumber
set EDITOR=notepad
,,svn propedit svn:ignore .
bekerja dengan baik ...Karena sepertinya tidak ada solusi untuk masalah yang mungkin umum ini, saya ingin membagikan solusi kami. Seperti yang telah dijelaskan oleh yang lain, Anda dapat menggunakan
svn:ignore
properti, ini berlaku untuk satu direktori (dan oleh karena itu bukan untuk yang baru), atau Anda menggunakanglobal-ignores
yang berlaku untuk satu pengguna (tetapi bukan milik repositori).Untuk membuat hidup sedikit lebih mudah saya membuat file reg bernama
Settings.Svn.reg
dan menambahkannya ke root repositori. Sekarang semua orang dapat mengklik ganda regfile ini sekali, dan pengaturannya sudah selesai.Saya akan sangat menghargai solusi dalam repositori SVN, jadi jika ada yang tahu, maukah Anda membagikannya?
sumber
Salah satu caranya adalah dengan menambahkan beberapa jenis cek ke hook sebelum atau sesudah komit tetapi itu akan dicatat langsung jika Anda tidak memiliki server repo.
sumber