Subversion tidak memiliki fitur "tidak berkomitmen" / "abaikan komitmen" bawaan, pada Februari 2016 / versi 1.9. Jawaban ini adalah solusi baris perintah yang tidak ideal
Seperti yang dinyatakan OP, TortoiseSVN memiliki daftar perubahan bawaan, "ign-on-commit", yang secara otomatis dikecualikan dari komit. Klien baris perintah tidak memiliki ini, jadi Anda perlu menggunakan beberapa daftar perubahan untuk mencapai perilaku yang sama (dengan peringatan) :
- satu untuk pekerjaan yang ingin Anda komit [pekerjaan]
- satu untuk hal-hal yang ingin Anda abaikan [abaikan-komit]
Karena ada preseden dengan TortoiseSVN, saya menggunakan "abaikan-komit" dalam contoh saya untuk file yang tidak ingin saya komit. Saya akan menggunakan "kantor" untuk file yang saya lakukan, tetapi Anda dapat memilih nama yang Anda inginkan.
Pertama, tambahkan semua file ke daftar perubahan bernama "work". Ini harus dijalankan dari akar copy pekerjaan Anda:
svn cl work . -R
Ini akan menambahkan semua file dalam copy pekerjaan secara rekursif ke daftar perubahan bernama "work". Ada kelemahan untuk ini - karena file baru ditambahkan ke copy pekerjaan, Anda harus secara khusus menambahkan file baru atau mereka tidak akan disertakan. Kedua, jika Anda harus menjalankan ini lagi, Anda perlu menambahkan kembali semua file "abaikan-komit" Anda lagi. Tidak ideal - Anda dapat mulai memelihara daftar 'abaikan' Anda sendiri dalam file seperti yang dilakukan orang lain.
Kemudian, untuk file yang ingin Anda kecualikan:
svn cl ignore-on-commit path\to\file-to-ignore
Karena file hanya dapat berada dalam satu daftar perubahan, menjalankan penambahan ini setelah penambahan "work" Anda sebelumnya akan menghapus file yang ingin Anda abaikan dari daftar perubahan "work" dan memasukkannya ke daftar perubahan "abaikan komitmen".
Saat Anda siap untuk mengkomit file yang dimodifikasi yang ingin Anda komit, Anda kemudian cukup menambahkan "--cl work" ke komit Anda:
svn commit --cl work -m "message"
Inilah contoh sederhana di komputer saya:
D:\workspace\trunk>svn cl work . -R
Skipped '.'
Skipped 'src'
Skipped 'src\conf'
A [work] src\conf\db.properties
Skipped 'src\java'
Skipped 'src\java\com'
Skipped 'src\java\com\corp'
Skipped 'src\java\com\corp\sample'
A [work] src\java\com\corp\sample\Main.java
Skipped 'src\java\com\corp\sample\controller'
A [work] src\java\com\corp\sample\controller\Controller.java
Skipped 'src\java\com\corp\sample\model'
A [work] src\java\com\corp\sample\model\Model.java
Skipped 'src\java\com\corp\sample\view'
A [work] src\java\com\corp\sample\view\View.java
Skipped 'src\resource'
A [work] src\resource\icon.ico
Skipped 'src\test'
D:\workspace\trunk>svn cl ignore-on-commit src\conf\db.properties
D [work] src\conf\db.properties
A [ignore-on-commit] src\conf\db.properties
D:\workspace\trunk>svn status
--- Changelist 'work':
src\java\com\corp\sample\Main.java
src\java\com\corp\sample\controller\Controller.java
src\java\com\corp\sample\model\Model.java
M src\java\com\corp\sample\view\View.java
src\resource\icon.ico
--- Changelist 'ignore-on-commit':
M src\conf\db.properties
D:\workspace\trunk>svn commit --cl work -m "fixed refresh issue"
Sending src\java\com\corp\sample\view\View.java
Transmitting file data .done
Committing transaction...
Committed revision 9.
Alternatifnya adalah dengan menambahkan setiap file yang ingin Anda komit ke daftar perubahan 'pekerjaan', dan bahkan tidak mempertahankan daftar abaikan, tetapi ini juga banyak pekerjaan. Sungguh, satu-satunya solusi ideal yang sederhana adalah jika / ketika ini diimplementasikan dalam SVN itu sendiri. Ada masalah lama tentang ini di pelacak masalah Subversion, SVN-2858 , jika terjadi perubahan di masa depan.