هل هناك طريقة للحصول على وضع CVS قصيرة من سطر الأوامر؟
-
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
التي سيتم تخطي الملفات ما يصل إلى التاريخ.