2010-01-16 14 views
39

क्या मेरे भंडार में केवल फाइलों को दिखाने के लिए कोई आसान तरीका है जिसे स्थानीय रूप से जोड़ा, हटाया गया या संशोधित किया गया है? मुझे पता है कि मैं "सीवीएस स्टेट" टाइप कर सकता हूं और फाइलों की सूची देख सकता हूं, लेकिन यह थकाऊ और त्रुटि-प्रवण है। मैं सोच रहा हूं कि कोई आसान तरीका है या नहीं। मैं मामले में सीवीएस 1.11.17 का उपयोग कर रहा हूं।सीवीएस: स्थानीय रूप से परिवर्तित की गई फ़ाइलों को दिखाएं

cvs -q diff --brief 

उत्तर

70

ए 'डमी' अद्यतन आप इस जानकारी दे देंगे:

+4

अधिक सीवीएस अनुभव के बिना, मुझे उत्सुकता है कि विकल्प क्या हैं -qn ... – dokaspar

+0

क्यों 'diff' का उपयोग नहीं करते? – mmcrae

19

आप सीवीएस diff आदेश का उपयोग मतभेद की एक छोटी सूची प्राप्त कर सकते हैं।

cvs -qn update 

इस्तेमाल किया विकल्पों में से एक संक्षिप्त विवरण:

-q  Cause CVS to be somewhat quiet. 
-n  Do not execute anything that will change the disk. 
4

grep को पाइप यह!

cvs -Q status | grep -i locally 
+0

मैंने कोशिश की, और मुझे यह वास्तव में पसंद नहीं आया। मैं बदले गए फ़ाइलों के लिए पथ देखना चाहता हूं, न केवल फाइलनाम। मैंने सीवीएस स्टेट 2 की कोशिश की>/dev/null | grep स्थानीय-बी 1-ए 4 | grep -vE "^ $" और यह थोड़ा बेहतर था, लेकिन गन्दा और quirky तरह की। –

0

यहाँ, nmake-पर्ल स्क्रिप्ट सूची संशोधित फ़ाइलों है यह पूर्वोक्त सीवीएस अद्यतन -qn पर आधारित है:

DIRS=\ 
    c:\project1\ 
    c:\project2 

all: $(DIRS) 
    !cd $? & cvs -qn update | perl -ne "s!\/!\\!g;print '$?\\'.qq($$1) if /^M (.*)/s;" 
0

एक सीवीएस अद्यतन फ़ाइलें एम के साथ prepended करो फ़ाइलें संशोधित कर रहे हैं।

उदाहरण:

CVS Update 
cvsntsrv server: Updating dat/idv 
M dat/idv/conduct.idv = Modified 
... 
0

एक विकल्प के रूप में आमतौर पर cvs update -qn उल्लेख करने के लिए, आप cvs release आदेश के लिए जा सकते हैं। लेकिन यह एक इंटरैक्टिव है और आउटपुट के अंत में पुष्टि के लिए पूछता है (इसलिए आपको इसे निरस्त करने की आवश्यकता है!)। सामान्य उत्पादन:

> cvs release . 
... 
U some/updated/file 
M some/modified/file 
... 
You have [1] altered files in this repository. 
Are you sure you want to release directory `.': n 
** `release' aborted by user choice. 
> 

सवाल के बाद Are you sure you want to release directory '.': आप कुछ y या Y से अलग कर दिया।

cvs -Q status | grep -A 4 Locally | egrep -v '^\-\-|^ Working|^ Commit|^$' | awk '{print $2 " " $4}' | sed -e 's/\<Locally\>//;s/revision: \CVS-REPOSITORY-PATH/\t\t/' 

आउटपुट::

1

यहाँ मैं क्या उपयोग है

pin_stages.ref 
      tests/unit/ccsn/pin_stages/pin_stages.ref,v 
pin_stages_func.ref 
      tests/unit/ccsn/pin_stages_func/pin_stages_func.ref,v 
0

आप निम्न आदेश का उपयोग कर सकते हैं फ़ाइलों की सूची प्राप्त करने के लिए आप स्थानीय रूप से

सीवीएस -qn अद्यतन संशोधित | grep "एम" | awk '{print $ 2}'

संबंधित मुद्दे