Batalkan svn tambahkan tanpa mengembalikan suntingan lokal

157

Saya tidak sengaja berlari svn add *dan menambahkan banyak file yang seharusnya tidak ada di repositori. Saya juga memiliki pengeditan lokal di beberapa file yang ingin saya simpan. Apakah ada cara sederhana untuk membatalkan svn addtanpa mengembalikan suntingan lokal? Saran utama yang saya lihat di Google adalah svn revert, yang seharusnya membatalkan pengeditan lokal.

jonderry
sumber

Jawaban:

282

Itu akan menjadi:

svn rm --keep-local

Hal yang sama terjadi pada saya. :-P

Banyak orang berkomentar bahwa Anda harus menggunakan:

svn rm --keep-local FILENAME

untuk menerapkan perintah pada satu atau banyak file, alih-alih semuanya, yang mungkin memiliki efek samping yang tidak diinginkan.

Nostradamus1935
sumber
1
Ini tidak berpengaruh bagi saya. Saya menjalankan kode seperti di atas (termasuk periode trailing) dari folder dasar. Tidak yakin apakah saya melewatkan sesuatu.
zzz
8
Perhatikan bahwa Anda harus menambahkan nama file ke perintah sehingga akan menjadi svn rm --keep-local FILENAME. The FILENAMEdapat menggunakan * untuk mencocokkan beberapa file (jika Anda cukup beruntung untuk memiliki pola).
Adam Badura
4
peringatan! - Menggunakan perintah ini saat menggunakan svn eksternal menghapus semua eksternal terlampir juga ...
kostja
2
Jika Anda melakukan ini, bukankah komit akan menyertakan penghapusan file yang dimaksud dari repo?
jwg
1
//, aku punya pertanyaan yang sama dengan jwg. Saya mengedit beberapa file terkontrol SVN. Saya ingin menyimpan hasil edit secara lokal. Namun, saya tidak ingin menghapus file dari repositori sama sekali. Saya hanya tidak ingin mendorong suntingan lokal ke file.
Nathan Basanese
34

Jika file-file itu berada di bawah direktori yang belum dilakukan, Anda dapat menghapus seluruh isi direktori dari komit berikutnya dengan melakukan:

svn delete --keep-local /path/to/directory

Namun, jika file-file itu sudah ada di repositori dan sekarang berisi perubahan yang tidak ingin Anda komit, Anda bisa mengkomit sisa file menggunakan daftar perubahan:

svn changelist somename /file/to/be/committed
svn commit --changelist somename
Juampy NR
sumber
7

Anda dapat memperbaiki checkout Anda dengan cara berikut:

  1. Cadangkan file lokal Anda
  2. Kembalikan checkout SVN
  3. Kembalikan file

-

rsync -av --exclude .svn/ YOURDIR/ YOURDIR.bak
svn revert -R YOURDIR
rsync -av YOURDIR.bak/ YOURDIR 
Brice M. Dempsey
sumber
Perintah terakhir selalu membuat level direktori tambahan, yaitu diakhiri dengan YOURDIR/YOURDIR/, meskipun saya pikir masalahnya ada pada pembuatan perintah cadangan awal YOURDIR.bak/YOURDIR/.
James
Untuk menghindari itu, rsync memerlukan garis miring pada direktori sumber. Saya mengedit jawabannya.
Brice M. Dempsey
3

Saya memiliki masalah yang sama, saya tidak sengaja menambahkan direktori / via svn addyang berisi binari dan file yang dikompilasi. Perintah ini sebenarnya menghapus direktori.

svn rm --force <directory-name>

Dalam kasus saya, saya tidak perlu direktori sehingga aman untuk dihapus. Jika Anda ingin menyimpan file / direktori simpan kemudian ke suatu tempat sebelum menerapkan perintah dan setelah menyalinnya kembali

pushya
sumber