SVN- Bagaimana melakukan banyak file dalam satu tembakan

104

Saya mencoba melakukan banyak file di berbagai direktori dalam satu kesempatan seperti di bawah ini,

svn commit –m”log msg” mydir/dir1/file1.c mydir/dir2/myfile1.h mydir/dir3/myfile3.c etc etc

Sejak, saya ingin mengecualikan beberapa file dari daftar komit jadi saya telah menempatkan setiap nama file di baris perintah seperti di atas. Saya menggabungkannya di notepad dan menghasilkan sekitar 25 file. Ketika saya menyalin dan menempelkannya pada baris perintah, beberapa file terakhir hilang dan saya kira ini mungkin batasan buffer baris perintah (?). Apakah ada opsi untuk menambah panjang buffer?

Apakah ada opsi saya dapat meletakkan semua file dalam file teks dan memberikannya sebagai argumen untuk svn commit?

Thi
sumber
8
@Thi - Mereka yang tidak menggunakan GUI untuk subversi adalah masokis. Dapatkan Tortoise SVN atau yang setara dengan Linux.
tpow
1
Jika ada batasan pada panjang buffer, itu tidak akan ada di SVN, itu akan ada di shell apa pun yang Anda gunakan.
Colin Fine
20
@cinquTimo: Anda mungkin lebih suka menggunakan GUI untuk semuanya. Orang lain tidak.
Colin Fine
@ Colin, saya rasa begitu, bagaimana cara meningkatkan panjang buffer shell dalam kasus itu?
Thi
3
"Mereka yang tidak menggunakan GUI untuk subversi adalah masokis." - Masokisme menggunakan subversi, tetapi beberapa dari kita tidak punya pilihan.
Daniel

Jawaban:

157

Anda dapat menggunakan daftar perubahan svn untuk melacak sekumpulan file yang ingin Anda komit bersama.

Halaman yang ditautkan berisi banyak detail, tetapi berikut adalah contoh ringkasan eksekutif:

$ svn changelist my-changelist mydir/dir1/file1.c mydir/dir2/myfile1.h
$ svn changelist my-changelist mydir/dir3/myfile3.c etc.
... (add all the files you want to commit together at your own rate)
$ svn commit -m"log msg" --changelist my-changelist
Mark Pim
sumber
30

Anda dapat menggunakan --targets ARGopsi di mana ARG adalah nama file teks yang berisi target untuk komit.

svn ci --targets myfiles.txt -m "another commit"
Dmitry Yudakov
sumber
Berfungsi untuk saya dalam perintah bash ini:find . -name \*my.mask | xargs svn ci -m"message" --targets -
ASten
28

Saya tidak mengalami masalah saat melakukan beberapa file seperti ini:

svn commit fileDir1/ fileDir2/ -m "updated!"
psy
sumber
Ini tidak berhasil untuk saya. Mendapat kesalahan "svn: '/' bukan copy pekerjaan". Di sini saya telah memposting pertanyaan saya, Anda dapat melihat. askubuntu.com/questions/442742/how-to-update-dir-on-svn-server/…
Ya bekerja dengan baik. Juga di dalam root dokumen saya, saya bisa melakukan semua perubahan dalam struktur pohon copy pekerjaan dengan ini:> svn commit. -m 'pesan komit massal'
Grigoreas P.
3

Gunakan kumpulan perubahan. Anda dapat menambahkan file sebanyak yang Anda suka ke kumpulan perubahan, sekaligus, atau melalui beberapa perintah; dan kemudian melakukan semuanya sekaligus.

Colin Fine
sumber
1
svnbook.red-bean.com/en/1.6/svn.advanced.changelists.html - Kata kunci svn adalah "daftar perubahan", yang dialamatkan pada jawaban pertama dan paling banyak dipilih.
John W. Clark