Apakah ada cara untuk melakukan hanya daftar file tertentu (mis. Hanya salah satu dari daftar file yang ingin dilakukan SVN).
Saya sedang mengerjakan MAC OS X di bawah Terminal, tanpa UI apa pun.
Apakah ada cara untuk melakukan hanya daftar file tertentu (mis. Hanya salah satu dari daftar file yang ingin dilakukan SVN).
Saya sedang mengerjakan MAC OS X di bawah Terminal, tanpa UI apa pun.
Jawaban:
Tentu. Cukup daftarkan file:
$ svn ci -m "Fixed all those horrible crashes" foo bar baz graphics/logo.png
Saya tidak mengetahui cara mengatakannya untuk mengabaikan sekumpulan file tertentu. Tentu saja, jika file yang ingin Anda komit mudah terdaftar oleh shell, Anda dapat menggunakannya:
$ svn ci -m "No longer sets printer on fire" printer-driver/*.c
Anda juga dapat meminta perintah svn membaca daftar file yang akan dikomit dari file:
$ svn ci -m "Now works" --targets fix4711.txt
svn add
digunakan untuk menambahkan file ke repositori.
Gunakan daftar perubahan. Keuntungan daripada menentukan file adalah bahwa Anda dapat memvisualisasikan dan mengonfirmasi semua yang Anda inginkan sebenarnya sudah termasuk sebelum Anda melakukan.
$ svn changelist fix-issue-237 foo.c
Path 'foo.c' is now a member of changelist 'fix-issue-237'.
Setelah selesai, svn sekarang memisahkan Anda. Ini membantu saat Anda menyulap banyak perubahan
$ svn status
A bar.c
A baz.c
--- Changelist 'fix-issue-237':
A foo.c
Akhirnya, katakan padanya untuk melakukan apa yang ingin Anda ubah.
$ svn commit --changelist fix-issue-237 -m "Issue 237"
svn changelist fix-issue-237 --recursive path/to/directory
Anda pada dasarnya meletakkan file yang ingin Anda komit di baris perintah
svn ci file1 file2 dir1/file3
Karena keadaan subversi saya, saya harus menjadi kreatif. svn st
ditampilkan M
, A
dan ~
status. Saya hanya ingin M
dan A
...
svn st | grep ^[A\|M] | cut -d' ' -f8- > targets.txt
Perintah ini mengatakan temukan semua baris keluaran dengan svn st
yang dimulai dengan M
atau A
, potong menggunakan pembatas ruang, kemudian dapatkan kolom 8 sampai akhir. Buang ke dalam target.txt dan timpa.
Kemudian modifikasi target.txt untuk memangkas daftar file lebih lanjut. Kemudian jalankan di bawah ini untuk melakukan:
svn ci -m "My commit message" --targets targets.txt
Mungkin bukan kasus penggunaan yang paling umum, tetapi mudah-mudahan ini membantu seseorang.
grep -v '^~'
untuk daftar hitam apa yang Anda inginkan.
Selain mendaftarkan file secara eksplisit seperti yang ditunjukkan oleh melepas dan Wienczny , Anda dapat mengatur daftar perubahan dan checkin ini. Ini memungkinkan Anda untuk mengelola set perubahan yang terpisah untuk copy pekerjaan yang sama.
Anda dapat membacanya di versi online dari buku SVN yang luar biasa .
coba skrip ini ..
#!/bin/bash
NULL="_"
for f in `svn st|grep -v ^\?|sed s/.\ *//`;
do LIST="${LIST} $f $NULL on";
done
dialog --checklist "Select files to commit" 30 60 30 $LIST 2>/tmp/svnlist.txt
svn ci `cat /tmp/svnlist.txt|sed 's/"//g'`
Saya membuat (sub) folder bernama "sembunyikan", memindahkan file yang tidak ingin saya komit di sana. Kemudian lakukan komit saya, mengabaikan keluhan tentang file yang hilang. Kemudian pindahkan file tersembunyi dari sembunyikan kembali ke ./
Saya tahu tidak ada kerugian dari taktik ini.