Asciinema: يحتوي Cast على أمر خروج غير مرغوب فيه

تم إنشاؤها على ٢٤ فبراير ٢٠١٨  ·  3تعليقات  ·  مصدر: asciinema/asciinema

أهلا،

تساءلت عن سبب طباعة exit بعد الضغط على CTRL + D لإنهاء عملية التمثيل باستخدام rec .

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

يبدو طاقم العمل الذي تم إنشاؤه بواسطة Asiinema 1.xx جيدًا - أود التخلص منه مرة أخرى.

قبل

Before

بعد، بعدما

After

التعليق الأكثر فائدة

عند الإصدار 2.0 ، كنت على دراية بهذا الانحدار ، لكنني لم أرغب في حظر الإصدار بسببه. ولكن الآن هو الوقت المناسب لمناقشتها.

هذه هي قوقعتك التي تطبع exit عندما تضغط على ctrl + d بالمناسبة :)

احتفظ الإصدار السابق من asciinema بالتسجيل الكامل في الذاكرة قبل حفظه في ملف ، وكان من السهل اكتشاف "الخروج" في آخر إطار مسجل ورميها بعيدًا (لأن asciinema كان يعرف أنه الإطار الأخير). مع الإصدار الجديد ، جاء تنسيق ملف جديد ، وهو أكثر سهولة في البث المباشر ، ويتم الكتابة على القرص في الوقت الفعلي. نتيجة لذلك ، عند انتهاء جلسة التسجيل ، تمت كتابة "الخروج" بالفعل في ملف. ولا يمكننا التخلص من أي "خروج" مطبوع على محطة طرفية ، يمكننا فقط إزالة الأخير ، لأنه يمكن أن يكون لديك جلسات bash متداخلة ويمكن أن يكون هذا "الخروج" معلومات مفيدة لشخص يشاهد أنك خرجت من الغلاف الداخلي .

هناك عدة حلول محتملة لهذا:

  1. عند التسجيل ، احتفظ بأحدث إطار في الذاكرة واكتبه على القرص عندما يأتي الإطار الجديد ، مما يجعله مخزنًا مؤقتًا بحجم إطار واحد - الجانب السلبي هنا قد يتسبب في فقد البيانات عند التعطل / إغلاق المحطة (إطار واحد فقط) ،
  2. بعد إغلاق الملف في نهاية الجلسة ، يمكننا إعادة فتحه وتصفية "الخروج" النهائي - يجب أن يتم ذلك بطريقة التدفق (لعدم تحميل كل شيء في mem) ، على غرار الحل 1. و
  3. قم بترشيحه في وقت التشغيل بدلاً من وقت التسجيل - سيتطلب هذا نوعًا من القراءة المسبقة مقابل asciinema play .... في المحطة الطرفية ، ولكن يمكن إجراؤه بسهولة في مشغل الويب ، والذي يخزن التسجيل الكامل في mem (وهذا منفصل الموضوع ، من الناحية المثالية ، أود عدم طلب تسجيل كامل في ذاكرة الويب في متصفحات الويب)

بشكل عام أفضل عدم تعديل بيانات المصدر عند التسجيل (تغيير النص ، تغيير التوقيت ، إزالة الإطارات). إزالة "الخروج" النهائي هو إزالة البيانات من البث ، ومع ذلك فهو ليس شيئًا يريده المستخدم حقًا ، لذا لا بأس في التخلص منه.

الحل 2. يبدو لي أبسط حل في الوقت الحالي.

ال 3 كومينتر

عند الإصدار 2.0 ، كنت على دراية بهذا الانحدار ، لكنني لم أرغب في حظر الإصدار بسببه. ولكن الآن هو الوقت المناسب لمناقشتها.

هذه هي قوقعتك التي تطبع exit عندما تضغط على ctrl + d بالمناسبة :)

احتفظ الإصدار السابق من asciinema بالتسجيل الكامل في الذاكرة قبل حفظه في ملف ، وكان من السهل اكتشاف "الخروج" في آخر إطار مسجل ورميها بعيدًا (لأن asciinema كان يعرف أنه الإطار الأخير). مع الإصدار الجديد ، جاء تنسيق ملف جديد ، وهو أكثر سهولة في البث المباشر ، ويتم الكتابة على القرص في الوقت الفعلي. نتيجة لذلك ، عند انتهاء جلسة التسجيل ، تمت كتابة "الخروج" بالفعل في ملف. ولا يمكننا التخلص من أي "خروج" مطبوع على محطة طرفية ، يمكننا فقط إزالة الأخير ، لأنه يمكن أن يكون لديك جلسات bash متداخلة ويمكن أن يكون هذا "الخروج" معلومات مفيدة لشخص يشاهد أنك خرجت من الغلاف الداخلي .

هناك عدة حلول محتملة لهذا:

  1. عند التسجيل ، احتفظ بأحدث إطار في الذاكرة واكتبه على القرص عندما يأتي الإطار الجديد ، مما يجعله مخزنًا مؤقتًا بحجم إطار واحد - الجانب السلبي هنا قد يتسبب في فقد البيانات عند التعطل / إغلاق المحطة (إطار واحد فقط) ،
  2. بعد إغلاق الملف في نهاية الجلسة ، يمكننا إعادة فتحه وتصفية "الخروج" النهائي - يجب أن يتم ذلك بطريقة التدفق (لعدم تحميل كل شيء في mem) ، على غرار الحل 1. و
  3. قم بترشيحه في وقت التشغيل بدلاً من وقت التسجيل - سيتطلب هذا نوعًا من القراءة المسبقة مقابل asciinema play .... في المحطة الطرفية ، ولكن يمكن إجراؤه بسهولة في مشغل الويب ، والذي يخزن التسجيل الكامل في mem (وهذا منفصل الموضوع ، من الناحية المثالية ، أود عدم طلب تسجيل كامل في ذاكرة الويب في متصفحات الويب)

بشكل عام أفضل عدم تعديل بيانات المصدر عند التسجيل (تغيير النص ، تغيير التوقيت ، إزالة الإطارات). إزالة "الخروج" النهائي هو إزالة البيانات من البث ، ومع ذلك فهو ليس شيئًا يريده المستخدم حقًا ، لذا لا بأس في التخلص منه.

الحل 2. يبدو لي أبسط حل في الوقت الحالي.

شكرا على توضيحك.

لقد رأيت أن الأشخاص يستخدمون exit أكثر من CTRL+D وهذا يتسبب في طباعة خروجين. ومع ذلك ، آمل أن يكون هذا خطأ صالحًا وأن يقوم شخص ما بإصلاحه قريبًا.

أي تحديثات على هذا؟ أواجه نفس المشكلة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

lukehinds picture lukehinds  ·  5تعليقات

ThomasWaldmann picture ThomasWaldmann  ·  3تعليقات

SR-Lut3t1um picture SR-Lut3t1um  ·  3تعليقات

ethanboxx picture ethanboxx  ·  6تعليقات

laughedelic picture laughedelic  ·  7تعليقات