Asciinema: Cast berisi perintah keluar yang tidak diinginkan

Dibuat pada 24 Feb 2018  ·  3Komentar  ·  Sumber: asciinema/asciinema

Halo,

Saya bertanya-tanya mengapa exit dicetak setelah menekan CTRL + D untuk menyelesaikan pemeran menggunakan rec .

redaxmedia<strong i="10">@redaxmedia</strong>:~$ exit
asciinema: recording finished
asciinema: press <enter> to upload to asciinema.org, <ctrl-c> to save locally

Gips yang dihasilkan oleh asciinema 1.xx terlihat bagus - saya ingin menyingkirkannya lagi.

Sebelum

Before

Setelah

After

Komentar yang paling membantu

Saat merilis 2.0 saya mengetahui regresi ini, tetapi tidak ingin memblokir rilis karena itu. Tapi sekarang adalah saat yang tepat untuk membahasnya.

Ini shell Anda mencetak exit ketika Anda menekan ctrl+d btw :)

Versi asciinema sebelumnya menyimpan seluruh rekaman dalam memori sebelum menyimpannya ke dalam file, dan dengan mudah mendeteksi "keluar" dalam bingkai rekaman terakhir dan membuangnya (karena asciinema tahu bahwa itu adalah bingkai terakhir). Dengan versi baru datang format file baru, yang lebih real-time, streaming friendly, dan menulis ke disk secara real-time. Karena ini ketika sesi perekaman selesai, "keluar" telah ditulis ke file. Dan kami tidak bisa begitu saja membuang "keluar" yang dicetak ke terminal, kami hanya dapat menghapus yang terakhir, karena Anda dapat memiliki sesi bash bersarang dan "keluar" ini dapat menjadi informasi yang berguna bagi seseorang yang melihat bahwa Anda keluar dari shell bagian dalam .

Ada beberapa solusi potensial untuk ini:

  1. saat merekam, simpan frame terbaru di memori dan tulis ke disk ketika yang baru datang, menjadikannya buffer ukuran 1 frame - kelemahannya di sini adalah dapat menyebabkan kehilangan data saat crash/terminal close (hanya 1 frame),
  2. setelah menutup file di akhir sesi, kami dapat membukanya kembali dan memfilter "keluar" terakhir - perlu dilakukan secara streaming (untuk tidak memuat semuanya dalam mem), mirip dengan solusi 1. ,
  3. memfilternya pada waktu pemutaran alih-alih waktu perekaman - ini akan memerlukan beberapa bentuk baca-maju untuk asciinema play .... di terminal, tetapi dapat dengan sangat mudah dilakukan di pemutar web, yang menyangga seluruh rekaman dalam mem (itu terpisah topik, idealnya saya ingin tidak memerlukan seluruh rec di mem browser web)

Secara umum saya lebih suka untuk tidak mengubah sumber data saat merekam (mengubah teks, mengubah waktu, menghapus bingkai). Menghapus "keluar" terakhir adalah menghapus data dari aliran, namun itu bukan sesuatu yang benar-benar diinginkan pengguna, jadi tidak masalah bagi saya untuk menyingkirkannya.

Solusi 2. tampaknya paling sederhana bagi saya saat ini.

Semua 3 komentar

Saat merilis 2.0 saya mengetahui regresi ini, tetapi tidak ingin memblokir rilis karena itu. Tapi sekarang adalah saat yang tepat untuk membahasnya.

Ini shell Anda mencetak exit ketika Anda menekan ctrl+d btw :)

Versi asciinema sebelumnya menyimpan seluruh rekaman dalam memori sebelum menyimpannya ke dalam file, dan dengan mudah mendeteksi "keluar" dalam bingkai rekaman terakhir dan membuangnya (karena asciinema tahu bahwa itu adalah bingkai terakhir). Dengan versi baru datang format file baru, yang lebih real-time, streaming friendly, dan menulis ke disk secara real-time. Karena ini ketika sesi perekaman selesai, "keluar" telah ditulis ke file. Dan kami tidak bisa begitu saja membuang "keluar" yang dicetak ke terminal, kami hanya dapat menghapus yang terakhir, karena Anda dapat memiliki sesi bash bersarang dan "keluar" ini dapat menjadi informasi yang berguna bagi seseorang yang melihat bahwa Anda keluar dari shell bagian dalam .

Ada beberapa solusi potensial untuk ini:

  1. saat merekam, simpan frame terbaru di memori dan tulis ke disk ketika yang baru datang, menjadikannya buffer ukuran 1 frame - kelemahannya di sini adalah dapat menyebabkan kehilangan data saat crash/terminal close (hanya 1 frame),
  2. setelah menutup file di akhir sesi, kami dapat membukanya kembali dan memfilter "keluar" terakhir - perlu dilakukan secara streaming (untuk tidak memuat semuanya dalam mem), mirip dengan solusi 1. ,
  3. memfilternya pada waktu pemutaran alih-alih waktu perekaman - ini akan memerlukan beberapa bentuk baca-maju untuk asciinema play .... di terminal, tetapi dapat dengan sangat mudah dilakukan di pemutar web, yang menyangga seluruh rekaman dalam mem (itu terpisah topik, idealnya saya ingin tidak memerlukan seluruh rec di mem browser web)

Secara umum saya lebih suka untuk tidak mengubah sumber data saat merekam (mengubah teks, mengubah waktu, menghapus bingkai). Menghapus "keluar" terakhir adalah menghapus data dari aliran, namun itu bukan sesuatu yang benar-benar diinginkan pengguna, jadi tidak masalah bagi saya untuk menyingkirkannya.

Solusi 2. tampaknya paling sederhana bagi saya saat ini.

Terima kasih atas penjelasan Anda.

Saya telah melihat gips adalah orang yang menggunakan exit lebih dari CTRL+D dan ini menyebabkan dua pintu keluar dicetak. Namun, saya harap ini adalah bug yang valid dan seseorang akan segera memperbaikinya.

Ada pembaruan tentang ini? Saya menghadapi masalah yang sama.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat