और हैप्पी न्यू इयर के साथ कमांड लाइन svn पर रंग जोड़ें। क्रिसमस के खाने से ठीक होने के लिए यहां एक मुश्किल मुद्दा है!एसवीएन: अजीब (बैश में)
function svn {
command svn "[email protected]" | awk '
BEGIN {
cpt_c=0;
}
{
if ($1=="C") {
cpt_c=cpt_c+1;
print "\033[31m" $0 "\033[00m"; # Conflicts are displayed in red
}
else if ($1=="A") {
print "\033[32m" $0 "\033[00m"; # Add in green
}
else if ($1=="?") {
print "\033[36m" $0 "\033[00m"; # New in cyan
}
else if ($1=="D") {
print "\033[35m" $0 "\033[00m"; # Delete in magenta
}
else {
print $0; # No color, just print the line
}
}
END {
print cpt_c, " conflicts are found.";
}';
}
कोड के इस भाग को मैं वास्तव में क्या करना चाहते हैं:
यहाँ बैश कोड (मैं फ़ाइल .bashrc में रख) जो काम करता है का एक हिस्सा है। svn फ़ंक्शन (स्थिति, अद्यतन, आदि) रंगों के साथ मुद्रित होते हैं। आंतरिक रूप से जरूरतों के लिए, मैं colorsvn या svn-color जैसी चीजों को स्थापित नहीं करना चाहता हूं।
यहाँ उपरोक्त कोड का एक उदाहरण है: (चित्र पोस्ट करने के लिए enought प्रतिष्ठा है नहीं)
और फिर, वह यह है कि पूरी तरह से है कि मैं क्या चाहते हैं। समस्या तब होती है जब एक संघर्ष पाया जाता है (उदाहरण के लिए, जब मैं एक अद्यतन करता हूं): वास्तव में, जब कोई फ़ाइल विवादित होती है, तो एसवीएन को उपयोगकर्ता को सौंप दिया जाता है, ताकि उसे कुछ अक्षरों को टाइप किया जा सके (नीचे देखें)
# svn update
Conflict discovered in 'test.txt'.
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options:
वहाँ उपयोगकर्ता प्रकार कुछ बताने के लिए awk का कोई तरीका है (उदाहरण ई के लिए, विम विरोध हुआ फ़ाइल में खुला जो) (उदाहरण के लिए के बाद प्रकार ई कुछ पंक्तियों को हटा दें तो बचाने & छोड़ने) कुछ करना, और संघर्ष को हल करने की पुष्टि करने के लिए एक और पत्र टाइप करें, फिर अंततः svn अद्यतन (अन्य फाइलें, आदि) का अगला चरण प्रदर्शित करें?
दूसरे शब्दों में, मैं स्क्रिप्ट के साथ इंटरैक्ट करने के लिए स्क्रिप्ट विच डिस्प्ले रंगों को "रोक" देना चाहता हूं, फिर svn अपडेट चालू करें। मुझे लगता है कि भविष्य के लिए यह बहुत उपयोगी होगा कि यह जानने के लिए कि कॉलर स्क्रिप्ट को कैसे रोकें, फिर फिर से शुरू करें!
क्या मैंने खुद को स्पष्ट रूप से विचार किया? मेरी अंग्रेजी उतनी अच्छी नहीं है जितनी मेरी इच्छा है:/
यदि आपको विवरण चाहिए तो कृपया बेझिझक पूछें!
आपका 'आदेश svn' अभी भी आपका इनपुट प्राप्त करता है। स्वायत्त और संवादात्मक निष्पादन के बीच स्विच करने के लिए 'उम्मीद' जैसे टूल हैं, लेकिन यह यहां बिंदु के बगल में कुछ हद तक हो सकता है। सही समाधान एक निम्न-स्तरीय रैपर है, मुझे लगता है कि आपने जो कहा है, वह आप उपयोग नहीं करना चाहते हैं। आपकी awk स्क्रिप्ट एक इनपुट पाइप को अपने इनपुट प्राप्त करता है लेकिन आप शायद एक मोड जोड़ने के लिए कुछ हैक कर सकते हैं जहां यह '/ dev/tty' या कुछ ऐसे से अतिरिक्त इनपुट पढ़ता है। – tripleee
क्या आप इन सब को संभालने के लिए अपने बैश फ़ंक्शन 'svn' को विस्तारित करना चाहते हैं, या क्या आप कल्पना करते हैं कि' svn' फ़ंक्शन चलाने के बाद आवश्यक 'पॉज़िंग' अलग कोड के रूप में आवश्यक है? संयोग से आपका अंग्रेजी ठीक है! सौभाग्य। – shellter
@shellter: ठीक है, मैं अपने बैश फ़ंक्शन का विस्तार करना चाहता हूं, यह सबसे अच्छा होगा। लेकिन मैं सभी संभावित समाधानों के बारे में खुला हूं;) मेरी अंग्रेजी के लिए टाई! –