هل هناك طريقة للحصول على وضع CVS قصيرة من سطر الأوامر؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

عند القيام cvs update، يمكنك الحصول على ملخص لطيفة من حالة المخزون، على سبيل المثال:

M src/file1.txt
M src/file2.txt
C src/file3.txt
A src/file4.txt
? src/file5.txt

هل هناك طريقة للحصول على هذا دون تحديث فعلا؟ أعرف أن هناك cvs status، ولكن هذا هو الطريق إلى مطول:

===================================================================
File: file6.txt        Status: Up-to-date

Working revision:    1.2
Repository revision: 1.2     /var/cvs/cvsroot/file6.txt,v
Sticky Tag:          (none)
Sticky Date:         (none)
Sticky Options:      (none)

وأنا يمكن بالطبع جعل برنامج نصي للقيام تحول من الأخير إلى الأول، ولكن يبدو مضيعة للوقت منذ السير الذاتية يمكن أن تنتج من الواضح السابق.

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

المحلول

ويمكنك استخدام العلم -n للحصول على الناتج التحديث دون تحديث الواقع الملفات. يمكنك أيضا إضافة -q (الهدوء) لقمع أي رسائل الخادم.

cvs -q -n update

نصائح أخرى

وjmcnamara: معلومات جيدة

وكل هذا الوقت لقد تم استخدام هذا البرنامج النصي باش:

cvs -q status "$@" | grep '^[?F]' | grep -v 'Up-to-date'

ولدي بعض الأسماء المستعارة، والتي قد تكون مفيدة لشخص ما:

alias cvsstatus_command='cvs -q status | grep "^[?F]" | grep -v "Up-to-date" | \
    grep -v "\.so" | grep -v "\.[c]*project"'

alias cvsstatus_color='nawk '"'"'BEGIN \
    { \
        arr["Needs Merge"] = "0;31"; \
        arr["Needs Patch"] = "1;31"; \
        arr["conflicts"] = "1;33"; \
        arr["Locally Modified"] = "0;33"; \
        arr["Locally Added"] = "0;32" \
    } \
    { \
        l = $0; \
        for (pattern in arr) { \
            gsub(".*" pattern ".*", "\033[" arr[pattern] "m&\033[0m", l); \
        } \
        print l; \
    }'"'"

alias cvsstatus='cvsstatus_command | cvsstatus_color'

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

إذا كنت تستخدم CVSNT يمكنك أيضا مجرد القيام cvs status -q التي سوف تنتج أيضا إخراج إيجازا بكثير من مركز القيادة العادية (كما سطر واحد فقط لكل ملف). مع المزيد من الإصدارات الأخيرة حتى يمكنك القيام cvs status -qq التي سيتم تخطي الملفات ما يصل إلى التاريخ.

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