Berurusan dengan repo subversi dan pengguna baru yang tidak mengerti cara kerjanya.
Singkat cerita, karena struktur lokal mereka berantakan karena menyalin folder .svn acak tentang, saya melakukan hal berikut:
- menyalin struktur lokal ke folder yang disebut staging
- secara rekursif menghapus semua folder .svn dari direktori staging
- memeriksa repo ke "folder bersih"
Sekarang kita berada pada langkah terakhir - mendapatkan isi folder pementasan untuk menimpa konten bersih.
Saya perlu perintah menyalin isi direktori pementasan ke direktori bersih, menghapus semua yang hanya ada di direktori bersih, TETAPI meninggalkan folder .svn folder bersih dalam kebijaksanaan.
Ini terdengar seperti pekerjaan untuk rsync. Apakah perintah berikut ini benar?
rsync -avr --exclude=.svn* [staging] [clean]
rsync
subversion
SeanKilleen
sumber
sumber
rsync
dengan--dry-run
opsi untuk mencari tahu!Jawaban:
The
-C
pilihan untuk rsync mungkin apa yang Anda inginkan.Jangan biarkan deskripsi singkat di halaman manual menipu Anda. Tampaknya opsi hanya berlaku untuk CVS, tetapi tergantung pada versi rsync Anda, itu akan melewatkan file dari hampir setiap sistem kontrol versi umum yang ada.
sumber
*.a
adalah untuk iOS Static Libraries.Hampir - ini seharusnya
atau bentuk kutipan lainnya yang mencegah shell dari memperluas wildcard. (Wildcard hanya akan cocok dengan file yang tidak biasa yang namanya dimulai dengan
--exclude=.svn
, tetapi lebih baik untuk tidak mengambil risiko, dan juga untuk bekerja dengan benar bahkan jika shell dikonfigurasi untuk tersedak wildcard yang tidak cocok atau untuk memperluasnya ke daftar kosong. )-r
sudah termasuk dalam-a
. Ekstrar
hanya berlebihan, tidak akan membahayakan.--exclude
menyebabkan file yang cocok dengan argumennya tidak disalin, atau dipertimbangkan untuk traversal rekursif. Kesulitan yang biasa terjadi dengan rsync adalah sebaliknya, tidak termasuk direktori kecuali untuk bagian tertentu. Lihat filter Rsync: menyalin satu pola saja untuk beberapa tips.Dalam kasus khusus ini, mengecualikan direktori kontrol versi adalah cara cepat untuk mendapatkan apa yang Anda inginkan.
sumber