2008-09-26 9 views
52

क्या सीवीएस में दो टैग के बीच बदली गई सभी फ़ाइलों को सूचीबद्ध करने का कोई तरीका है?सीवीएस: टैग (या तिथियों) के बीच बदली गई सभी फाइलों की सूची

हर बार जब हम रिलीज करते हैं तो हम उस रिलीज में सभी फ़ाइलों को एक टैग लागू करते हैं। मैं रिलीज के बीच बदल गई सभी फाइलों को ढूंढना चाहता हूं।

यह भी काम करेगा यदि मैं दो तिथियों के बीच बदल गई सभी फाइलें पा सकता हूं।

उत्तर

31

मुझे लगता है इस आदेश में मदद मिलेगी:

cvs diff -N -c -r RELEASE_1_0 -r RELEASE_1_1 > diffs 

जहां RELEASE_1_0 और RELEASE_1_1 अपने टैग के नाम हैं।

आप सीवीएस diff आदेश here

पर थोड़ा और अधिक जानकारी प्राप्त कर सकते प्लस यह आपकी आवश्यकताओं के लिए रिपोर्ट अधिक suitbable बनाने के लिए एक स्क्रिप्ट बनाने के लिए काफी सरल होना चाहिए, उदाहरण के लिए: फ़ाइलों की संख्या बदल गया है, नष्ट कर दिया बनाया आदि जहां तक ​​मुझे पता है कि सबसे आम सीवी जीयूआई उपकरण (wincvs और कछुए) इस तरह के बॉक्स से बाहर कुछ प्रदान नहीं करते हैं।

आशा है कि यह मदद करता है ;)

+2

एक पर्ल स्क्रिप्ट कहा जाता cvs2cl जो उत्पादन कर सकते हैं नहीं है लॉग के अच्छे प्रारूपित संस्करण, या तो समाप्त रिपोर्ट के रूप में या पाठ या एक्सएमएल के रूप में पोस्ट-प्रोसेस के लिए: http://www.red-bean.com/cvs2cl/ –

+0

बस इसे Google के माध्यम से मिला और उसने मुझे एक काम का भार बचाया, आपका बहुत बहुत धन्यवाद! मैं 'इतिहास' कमांड के माध्यम से पता लगाने की कोशिश कर रहा था, diff के बारे में भूल गया। –

+0

'-N' विंडोज मशीन पर त्रुटि देता है: 'सीवीएस [सर्वर निरस्त]: एनटी आधारित मशीनों पर आरक्षित फ़ाइल नाम' नूल 'का उपयोग नहीं कर सकता है –

4

DLira की विधि सभी परिवर्तन शामिल हैं विस्तार का एक बहुत कुछ देता है।

सिर्फ फ़ाइलों की एक सूची प्राप्त करने के लिए, इस काम करता है:

cvs diff -N -c -r RELEASE_1_0 -r RELEASE_1_1 | grep "Index:" > diffs 
+0

क्षमा करें, मैं वर्बोज़िटी पर टिप्पणी करना भूल गया हूं और आप जो चाहते हैं उसे कैसे प्राप्त करें। लेकिन तुम सही हो! grep केवल वही चीज़ प्राप्त करने का एक शानदार तरीका है जो आपको चाहिए। ;) –

1

सबसे अच्छा उपकरण मैं इस के लिए मिल गया है एक पर्ल स्क्रिप्ट cvs2cl.pl कहा जाता है। यह कई अलग-अलग प्रारूपों में एक परिवर्तन सूची उत्पन्न कर सकता है। यह कई अलग अलग विकल्प है, लेकिन मैं इस तरह टैग करने वाली टैग विकल्पों का उपयोग किया है:

cvs2cl.pl --delta dev_release_1_2_3:dev_release_1_6_8 

या

cvs2cl.pl --delta dev_release_1_2_3:HEAD 

मैं भी यही उपकरण के साथ तारीखों का उपयोग कर की तुलना किया है।

23

मैं उपयोग करने को प्राथमिकता rdiff और -s विकल्प

cvs rdiff -s -r RELEASE_1_0 -r RELEASE_1_1 module > diffs 

rdiff एकसैंडबॉक्स की आवश्यकता नहीं है; -s आपको परिवर्तनों का सारांश देता है।

+0

मैंने यहां अन्य विकल्पों की कोशिश की, और दूसरों के साथ मैं सभी बदलावों को पकड़ नहीं पाया। धन्यवाद! – Victor

+0

यह एक अच्छा है। 'cvs rdiff -s -rvxxxxx -rHEAD मॉड्यूल 2>/dev/null' सारांश देता है "फ़ाइल (से बदल गया | नया है) ...." – gaoithe

11

फ़ाइलों की एक सूची है कि एक संस्करण और एक अन्य के बीच बदल दिया है आदेश मानक सीवीएस का उपयोग कर पाने के लिए:

cvs -q log -NSR -rV-1-0-69::V-1-0-70 2>/dev/null >log.txt 

या वैकल्पिक रूप से, टिप्पणी करने की एक सूची प्राप्त करने के लिए सिर्फ -R ड्रॉप:

cvs -q log -NS -rV-1-0-69::V-1-0-70 2>/dev/null >log.txt 

जहां आप तुलना कर रहे संशोधन के साथ V-1-0-69 और V-1-0-70 को प्रतिस्थापित करते हैं।

+0

अंतिम आदेश वह था जिसे मैं ढूंढ रहा था :) बस एक जोड़ा लाइनों को फ़िल्टर करने के लिए थोड़ा grep मैं नहीं चाहता: grep -vE "^ शाखा |^आरसीएस |^सिर |^ताले |^एक्सेस |^कीवर्ड |^कुल |^विवरण |^संशोधन" – gregers

+0

यह फ़ाइल के लिए अच्छा है परिवर्तन। सीवीएस रॉग के साथ वही झंडे काम करते हैं। अंतिम टैग के बाद से परिवर्तन दिखाने के लिए आप 'cvs -q log -NS -rvxxxx ::' का उपयोग कर सकते हैं। टैग के बाद जोड़े गए फाइलों के लिए आपको "चेतावनी: कोई संशोधन नहीं मिलता है" और आपको सीवी जोड़ते या टिप्पणियां नहीं दिखाती हैं। – gaoithe

16

सीवीएस का उपयोग कर दो तिथियों के बीच फ़ाइलों की सूची प्राप्त करने के लिए:

cvs diff -N -c -D YYYY-MM-DD -D YYYY-MM-DD | grep "Index:" > diff.out 
डी ध्वज के लिए स्वीकार कर लिया तारीखों को

अधिक जानकारी: http://docs.freebsd.org/info/cvs/cvs.info.Common_options.html

7
cvs log -d ">=DATE" -N -S -R > cvs.log 
+1

** उदाहरण **: 'cvs -q log -NSRd"> = 2013-10-20 "'। यदि आप प्रतिबद्ध सारांश भी चाहते हैं तो 'आर' निकालें। –

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