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?


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

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"

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!"

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.