VSCode telah menambah fungsi untuk mengekalkan sejarah fail setempat Artikel ini akan bercakap dengan anda tentang strategi penyimpanan sejarah dalam VSCode.
Mengemas kini VSCode semalam dan mendapati VSCode turut menambah fungsi untuk mengekalkan sejarah setempat fail. Saya masih ingat bahawa tidak lama dahulu, untuk menambah fungsi rakaman sejarah pada Yank Note, saya menggaru kepala saya dan memikirkan strategi penyimpanan sejarah untuk masa yang lama. Saya mengeluh bahawa jika VSCode telah dikeluarkan beberapa bulan lebih awal, saya akan mempunyai rujukan. [Kajian yang disyorkan: "Pengenalan kepada Tutorial vscode"]
Tetapi apabila saya melihat strategi penyimpanan sejarah VSCode: Sangat kasar?
Sejarah fail setempat boleh dipaparkan dalam garis masa versi VSCode 1.66 Kesannya adalah seperti ini
Untuk fungsi ini, VSCode juga telah menambah beberapa konfigurasi:
Terdapat juga tetapan baharu untuk berfungsi dengan sejarah tempatan:
workbench.localHistory.enabled
- Dayakan atau lumpuhkan sejarah setempat (lalai:true
).workbench.localHistory.maxFileSize
- Had saiz fail semasa membuat entri sejarah setempat (lalai:256 KB
).workbench.localHistory.maxFileEntries
- Entri sejarah setempat menghadkan setiap fail (lalai:50
).workbench.localHistory.exclude
- Corak glob untuk mengecualikan fail tertentu daripada sejarah setempat.workbench.localHistory.mergeWindow
- Selang dalam beberapa saat yang seterusnya perubahan ditambahkan pada entri terakhir dalam sejarah fail setempat (lalai10s
).
Klik kanan entri sejarah dan terdapat menu untuk mencari salinan sejarah tertentu rekod fail terus dalam pengurus sistem.
Oleh itu, boleh disimpulkan bahawa VSCode menyimpan fail ke folder dalam tetingkap masa tertentu (default 10s) untuk setiap operasi simpan/buat asal. Rekod sejarah terletak melalui penamaan fail khas (mengekalkan maklumat masa).
Ini terlalu biadap, satu fail hanyalah satu versi.
Kemudian mari kita bercakap tentang strategi Typora yang telah disiasat pada masa itu. Typora mempunyai antara muka penjejakan belakang sejarah fail yang sangat cantik pada macOS
Nampaknya ia harus menggunakan "mesin masa" sistem untuk melaksanakan penjejakan balik versi. Jadi ciri ini tidak lagi tersedia pada Windows.
Versi sejarah yang saya bayangkan mempunyai beberapa matlamat:
Matlamat yang paling penting adalah untuk mencuba mengelakkan kehilangan data.
Rekod sejarah tidak boleh mengambil terlalu banyak ruang. Sebaiknya merekodkannya secara berperingkat.
Dalam kes yang melampau, adalah perlu untuk memudahkan pengguna memulihkan data.
Sejarah seharusnya boleh menandai dan mengulas
Untuk matlamat pertama, saya berharap untuk mengekalkan versi terbaharu pengguna yang disunting dan tidak membuang ia. Dan Yank Note mempunyai fungsi penjimatan automatik, jadi ia mempunyai matlamat kedua, tidak mengambil terlalu banyak ruang, dan tidak menjana terlalu banyak fail. Jadi strategi penjimatan fail tetingkap masa yang saya fikirkan pada asalnya, serupa dengan VSCode, tidak akan berfungsi.
Untuk matlamat ketiga, saya tidak mahu memperkenalkan format tersuai, seperti Git atau pangkalan data. Kerana jika pengguna kehilangan data dan menyusahkan untuk mencari rekod sejarah dalam perisian (perisian rosak, fail terpadam secara tidak sengaja, dll.), pengguna mesti boleh memasuki direktori sejarah dan mendapatkan semula fail.
Susulan: Seorang pengguna telah memadamkan dokumen secara tidak sengaja dan tong kitar semula tidak menemuinya, jadi dia memulihkannya melalui kaedah ini.
Memandangkan matlamat keempat, akhirnya saya memilih untuk menggunakan fail zip untuk menyimpan versi sejarah fail, walaupun ia akan menggunakan sedikit prestasi pengkomputeran dalam sejarah penulisan dan pembacaan (bersaiz lebih daripada 10 megabait ) Sejarah fail pada asasnya tidak dapat dilihat), tetapi kesan akhir masih sangat baik.
Penyelesaian akhir:
Setiap dokumen dicincang oleh nama fail dan laluan untuk mengeja nama fail pakej zip
Setiap kali Tulis fail dan tulis versi baharu fail ke dalam fail zip ini pada masa yang sama
Tukar nama fail zip secara serentak apabila mengalih dan menamakan semula fail
Boleh terdapat had pada bilangan maksimum versi sejarah.
Nota versi dan maklumat teg boleh disimpan dalam medan nota termampat.
Biasanya apabila mengedit fail, disebabkan oleh mekanisme penjimatan automatik, perbezaan antara versi semasa dan versi sebelumnya adalah sangat kecil, jadi secara teori, fail versi baru ditambah pada fail termampat dan dimampatkan Peningkatan saiz fail keseluruhan hendaklah sangat kecil. Tetapi kemudian saya mendapati bahawa ini tidak berlaku Barulah saya menyedari ciri-ciri pemampatan fail Zip: setiap fail dimampatkan secara berasingan dan kemudian dibungkus bersama. Maksudnya, apabila menambah fail pada pakej termampat, ia tidak akan dimampatkan bersama dengan fail lain.
Sebagai tindak balas kepada situasi ini, saya menggunakan strategi dua pemampatan: kali pertama, saya menetapkan kadar mampatan kepada 0 dan hanya membungkusnya, supaya pakej zip mengandungi maklumat asal fail. Keseluruhan fail yang dibungkus dimampatkan sekali untuk kali kedua Sekarang program pemampatan boleh mempertimbangkan maklumat keseluruhan untuk pemampatan, yang mencapai tujuan "kemas kini tambahan".
Menulis skrip kemudian untuk diuji, fail dengan panjang biasa, menyimpan 1000 versi, hanya mengambil masa 50KB.
Selepas menggunakannya selama beberapa bulan, direktori fail sejarah saya hanya menggunakan lebih daripada 700 KB ruang, dan kebanyakan fail sejarah di dalamnya hanya bersaiz beberapa KB. Mengimbas kembali VSCode, direktori sejarah menduduki 2M dalam dua hari lalu.
Untuk penyimpanan sejarah, saya telah memikirkan lebih lanjut tentang beberapa strategi pemeliharaan
Secara relatif Pada penjimatan masa terakhir, simpan:
- Setiap versi dalam 10 minit yang lalu
- Satu versi seminit dalam 1 jam yang lalu
- Setiap jam yang lalu 24 jam Satu versi
- Simpan satu versi setiap hari
- Sandaran bertanda
Namun, nampaknya ia tidak diperlukan sekarang mudah, setiap Ia juga memenuhi jangkaan saya.
Untuk pengetahuan lanjut tentang VSCode, sila lawati: tutorial vscode! !
Atas ialah kandungan terperinci Mari kita bincangkan tentang strategi penyimpanan sejarah dalam VSCode. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!