تجاهل Emacs السيارات-الملفات التي تم إنشاؤها في مهرجان دبي السينمائي الدولي

StackOverflow https://stackoverflow.com/questions/33073

سؤال

كيف يمكنني جعل diff تجاهل الملفات المؤقتة مثل foo.c~?هل هناك ملف التكوين من شأنها أن تجعل تجاهل المؤقتات الافتراضي ؟

عموما:ما هي أفضل طريقة لتوليد "نظيفة" التصحيح من كتل القطران?أنا أفعل هذا نادرا ما يكفي (تقديم إصلاح الخلل إلى برمجيات المصدر المفتوح المشروع عن طريق البريد الإلكتروني) التي دائما صراع معها...

تحرير:حسنا الجواب القصير هو

diff -ruN -x *~ ...

هل هناك أفضل إجابة ؟ E. g. ، وهذا يمكن أن يذهب في تكوين الملف ؟

هل كانت مفيدة؟

المحلول

هذا لا بدقة الإجابة على سؤالك, ولكن يمكنك تجنب هذه المشكلة عن طريق تكوين Emacs استخدام دليل معين للحفاظ على نسخة احتياطية من الملفات في.هناك تطبيقات مختلفة على Emacs أو XEmacs.

في جنو إيماكس

    (defvar user-temporary-file-directory
      (concat temporary-file-directory user-login-name "/"))
    (make-directory user-temporary-file-directory t)
    (setq backup-by-copying t)
    (setq backup-directory-alist
      `(("." . ,user-temporary-file-directory)
        (,tramp-file-name-regexp nil)))
    (setq auto-save-list-file-prefix
      (concat user-temporary-file-directory ".auto-saves-"))
    (setq auto-save-file-name-transforms
      `((".*" ,user-temporary-file-directory t)))

في XEmacs

    (require 'auto-save) 
    (require 'backup-dir) 

    (defvar user-temporary-file-directory
      (concat (temp-directory) "/" (user-login-name)))
    (make-directory user-temporary-file-directory t)
    (setq backup-by-copying t)
    (setq auto-save-directory user-temporary-file-directory)
    (setq auto-save-list-file-prefix 
         (concat user-temporary-file-directory ".auto-saves-"))
    (setq bkup-backup-directory-info
      `((t ,user-temporary-file-directory full-path)))

يمكنك أيضا إزالة كل منهم مع بسيطة تجد الأمر

    find . -name “*~” -delete

علما بأن النجمة و تيلدا في التنصيص لوقف قذيفة على توسيعها.

بالمناسبة هذه ليست بدقة مؤقت ملفات.فهي نسخة احتياطية من الإصدار السابق من الملف بحيث يمكنك يدويا "التراجع" آخر تحرير في أي وقت في المستقبل.

نصائح أخرى

يمكنك إنشاء تجاهل الملف, مثل هذا:

core.*
*~
*.o
*.a
*.so
<more file patterns you want to skip>

ثم قم بتشغيل diff مع -X الخيار, مثل هذا:

diff -X ignore-file <other diff options you use/need> path1 path2

هناك تستخدم ليكون .diffignore ملف "إغلاق" على نواة لينكس (ربما غير رسمية الملف) ولكن لم أستطع العثور عليه بعد الآن.عادة يمكنك الاستمرار في استخدام هذا تجاهل الملف ، إضافة أنماط جديدة تريد تجاهلها.

يمكنك إنشاء صغير sunction/script إليها, مثل:

#!/bin/bash
olddir="/tmp/old"
newdir="/tmp/new"

pushd $newdir
for files in $(find . -name \*.c)
do
  diff $olddir/$file $newdir/$file
done
popd

هذا هو طريقة واحدة فقط هذا السيناريو.طريقة بسيطة.ولكن أعتقد أن لديك فكرة.

اقتراح آخر هو تكوين في emacs نسخة احتياطية dir لذا ملفات النسخ الاحتياطي تذهب دائما إلى نفس المكان خارج العمل dir!

ملصق وقد سرد هذا 'الجواب القصير':

diff -ruN -x *~ ...

ولكن تغذية هذا إلى شل سوف يتسبب في * أن تكون globbed قبل مهرجان دبي السينمائي الدولي هو الاحتجاج.

هذا هو أفضل:

diff -r -x '*~' dir1 dir2

أنا حذفت -u -N الأعلام مثل تلك المتعلقة بالذوق و لا ذات الصلة إلى مسألة في متناول اليد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top