2008-11-12 7 views
37

मुझे अंततः स्रोत समूह से सबवर्सन में स्विच करने के लिए मेरा समूह मिला। दुर्भाग्यवश, मेरा प्रबंधक अभी भी प्रत्येक फ़ाइल पर विशेष ताले का उपयोग करना चाहता है। इसलिए मैंने प्रत्येक फाइल पर svn: जरूरत-लॉक प्रॉपर्टी सेट की है और यह सुनिश्चित करने के लिए कि प्रीसेट सेट रहता है, प्री-प्रतिबद्ध हुक बनाया गया है।सबवर्सन में कौन सी फाइलें लॉक हैं यह देखने का सबसे अच्छा तरीका क्या है?

हम लिनक्स सर्वर पर सबवर्जन चला रहे हैं। हम में से अधिकांश विंडोज मशीनों का उपयोग करते हैं और कुछ मैक का उपयोग करते हैं। हम विभिन्न एसवीएन क्लाइंट्स (टोर्टोइज एसवीएन, स्मार्टएसवीएन, सबक्लिप्स इत्यादि) का उपयोग कर रहे हैं।

हमें अब जो चाहिए वह सभी फ़ाइलों को देखने के लिए एक अच्छी/आसान विधि है जो वर्तमान में पूरे भंडार में बंद हैं (और उन्हें किसने लॉक किया है)। मैंने कछुए और उपclipse में थोड़ा सा poked है, लेकिन जो मैं खोज रहा हूँ उसे नहीं मिला है। हमारी परियोजनाओं में कई उपनिर्देशिकाएं हैं जो कई स्तरों को गहरी हैं, इसलिए प्रत्येक व्यक्तिगत निर्देशिका को देखने में बहुत समय लगेगा।

मुझे जो भी पसंद है वह एक रिपोर्ट है जिसे मैं चला सकता हूं जो वर्तमान में लॉक की गई सभी चीजों को सूचीबद्ध करता है और इसे लॉक कर दिया गया है। इस प्रकार की जानकारी प्राप्त करने का सबसे अच्छा तरीका क्या है?

+5

मैं तुम यह जानते हो पता है के लिए the svnbook देखते हैं, लेकिन इन ताले कोड के साझा क्षेत्रों में एक उत्पादकता हत्यारा होने जा रहे हैं। विलय उपकरण अब बहुत अच्छे हैं और आपके बॉस को लगता है कि एक साथ परिवर्तन विलय करना आसान है। –

+0

@TomLeys आप स्रोत कोड के मामले में, या किसी भी अच्छे विलय योग्य फ़ाइल प्रकार में सही हो सकते हैं। लेकिन यह हमेशा ऐसा नहीं होता है, उदाहरण के लिए कभी-कभी एसवीएन का उपयोग डेटा फ़ाइलों या कार्यालय दस्तावेजों के प्रबंधन के लिए किया जाता है, उनमें से कोई भी आसानी से पहुंचने योग्य, व्यापक रूप से उपयोग मर्ज टूल्स नहीं होता है। – peterh

+0

* बकाया एक नए उत्तर के लिए है, जो बताता है, हम लॉक की गई फ़ाइलों की सूची कैसे प्राप्त कर सकते हैं 1) रिमोट रिपोजिटरी से 2) कमांड लाइन क्लाइंट के साथ। * – peterh

उत्तर

32

आप जो देख रहे हैं वह svnadmin lslocks कमांड है।

मैंने यह काम पर स्थापित किया है क्योंकि हम अपने सबवर्सन रिपोजिटरी में कुछ वर्ड दस्तावेज़ रखते हैं (svn:needs-lock के साथ)। मेरे पास एक क्रॉन जॉब स्थापित है जो हर दिन, ताले की सूची की जांच करता है और पूरे टीम को 7 दिनों से अधिक पुराने सभी ताले की रिपोर्ट करता है। इस तरह हम बता सकते हैं कि लंबे समय तक दस्तावेज़ की लॉक कॉपी पर कौन धीमा हो रहा है और बैठा है।

+1

कार्यालय 2003 अब शब्द दस्तावेज़ों के विलय में बनाया गया है। मुझे नहीं पता कि यह सुविधा कब पेश की गई थी, लेकिन इसका मतलब यह हो सकता है कि अब आपको अपने शब्द दस्तावेज़ों को लॉक करने की आवश्यकता नहीं है। –

+0

धन्यवाद ग्रेग। फॉलो-अप के रूप में, क्या आप मुझे बता सकते हैं कि आप सूची कैसे बनाते हैं केवल एक्स दिनों से पुराने ताले दिखाते हैं? – Shane

+0

मैंने अभी एक स्क्रिप्ट लिखी है जो "svnadmin lslocks" के आउटपुट को पार करती है, प्रत्येक लॉक के लिए बनाई गई तारीख को देखती है, और उससे दिनों की संख्या की गणना करती है। मेरी वास्तविक लिपि काम पर है और मुझे इस समय तक इसका उपयोग नहीं है, लेकिन इसे समझना काफी आसान होना चाहिए। –

21

यह वह उत्तर नहीं हो सकता है जिसे आप ढूंढ रहे हैं, लेकिन आपको प्रबंधक को यह समझाने की कोशिश करनी चाहिए कि ताले वास्तव में सर्वोत्तम विकास अभ्यास नहीं हैं। इस विषय पर बहुत कुछ लिखा गया है, इसलिए मैं इसे यहां दोहराना नहीं चाहूंगा।

जब आप लॉकिंग वातावरण से किसी भी लागू चेकआउट लॉक के साथ जाते हैं, तो पहले आपको लगता है कि यह अराजकता का कारण बन जाएगा, लेकिन यह वास्तव में नहीं करता है। एसवीएन परिवर्तनों को विलय करने में अच्छा होता है जब दो लोग एक ही फाइल पर काम कर रहे होते हैं, और यदि आप विवादों के साथ समाप्त होते हैं, तो उन्हें ठीक करने में इतना बुरा नहीं है।

उस व्यक्ति के लिए प्रतीक्षा करने से काफी बेहतर जो एक महत्वपूर्ण फाइल के साथ दोपहर के भोजन के लिए इंतजार कर रहा था, या फिर भी बदतर, छुट्टी पर चला गया।

+3

मैं इसे एक समय में एक कदम उठाने की कोशिश कर रहा हूं। सोर्ससेफ के समूह को सिर्फ एक लड़ाई मिल रही थी। एक बार जब वे एसवीएन के साथ सहज हो जाते हैं, तो मैं विशेष लॉकिंग को छोड़ने से निपटने की योजना बना रहा हूं। – Shane

+3

तालाब फाइलों पर काम करते समय लॉक अमूल्य हैं जिन्हें माइक्रोसॉफ्ट ऑफिस दस्तावेजों की तरह विलय या भिन्न नहीं किया जा सकता है। – DanB

21

यह देखने के लिए कि आप और अन्य लोगों के ताले क्या हैं, आप टोर्टोइज एसवीएन → संशोधनों के लिए जांच सकते हैं .... स्थानीय रूप से लॉक टोकन तुरंत दिखाई देते हैं। दूसरों द्वारा आयोजित ताले की जांच करने के लिए (और यह देखने के लिए कि आपके किसी भी ताले टूटे हुए हैं या चोरी हो गए हैं) आपको चेक रिपोजिटरी पर क्लिक करना होगा।

+0

यह केवल TortoiseSVN के साथ काम करता है। – peterh

19

आप svn status --show-updates का उपयोग कर स्थानीय चेकआउट से ताले खोज सकते हैं जो सर्वर पर लॉक की गई सभी फ़ाइलों से पहले O डाल देगा।

उदा।

$ svn status --show-updates 
    O  279532 LockedFile 
?     UncommittedFile 
M   279532 ModifiedFile 

अधिक जानकारी के

+0

यह केवल स्थानीय प्रतिनिधि पर काम करता है। – peterh