2008-08-12 12 views
51

मैं अपनी वर्तमान कंपनी के साथ टीएफएस से एसवीएन (टोर्टोइज एसवीएन) में स्थानांतरित हो गया हूं। मैं वास्तव में टीएफएस की "शेल्व" सुविधा याद करता हूं। मैंने एसवीएन के साथ "शेल्व" के बारे में विभिन्न लेख पढ़े हैं, लेकिन मैंने कुछ भी नहीं पढ़ा है जो "शेल्फ" काम के लिए एक बहुत ही सरल अनुभव देता है।TortoiseSVN में शेल्व?

आदर्श रूप में, मुझे टोर्टोइज़ एसवीएन संदर्भ मेनू में अतिरिक्त आइटम जोड़े जाना चाहिए - "शेल्व" & "अनशेल्व"। "शेल्व" वर्तमान शेल्व सेट को हटा देगा, और उपयोगकर्ता विकल्पों द्वारा परिभाषित उपयुक्त पथ के तहत कार्यशील निर्देशिका अपलोड करेगा। "अनशेल्व" काम की प्रतिलिपि के साथ सेट मर्ज करेगा।

मौजूद कुछ इस तरह है? क्या कोई भी इस सुविधा को जीयूआई में "हैक" करने के किसी भी तरीके का सुझाव दे सकता है?

नोट: नीचे दिए गए लिंक वास्तव में उपयोगकर्ता अनुभव मैं खोज रहा था प्राप्त नहीं करता है:

Shelving Subversion

TFS टांड़ के बारे में सबसे बड़ी बातों में से एक कितना आसान है उपयोग करने के लिए है ...

उत्तर

29

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

इस समस्या को हल करने के लिए, मैं एक DVCS जैसे git या mercurial उपयोग करते हुए, मुझे शाखा/मर्ज/SVN करने के लिए वापस सामग्री धकेलने से पहले स्थानीय स्तर पर स्थगित अनुमति देने के लिए का सहारा लिया। यह तर्कसंगत रूप से एक कड़वाहट का थोड़ा सा है, लेकिन यह वास्तव में अच्छी तरह से काम करता है।

मुझे उम्मीद है कि इससे मदद मिलती है। सौभाग्य!

+3

मुझे नहीं लगता कि यह एक क्लूज एल है- मैंने टीमों के साथ काम करते समय वर्षों के लिए एक अलग व्यक्तिगत वीसीएस का उपयोग किया है जहां हमारे पास चेकइन पर सख्त नियंत्रण था (और विशेष रूप से लॉकिंग आधारित वीसीएस जैसे सोर्ससेफ)। –

+3

आप सही हैं, यह एक कट्टरपंथी नहीं है। ईमानदार होने के लिए मुझे नहीं पता कि मैंने यह क्यों कहा, संभवत: लैम्बस्टेड से बचने के लिए एक अस्वीकरण का थोड़ा सा :) मैं मानक सीवीसीएस को धक्का देने से पहले स्थानीय शेल्विंग के लिए डीवीसीएस का उपयोग करने से बहुत खुश हूं। –

+3

देखें: एक साथ Mercurial और svn का उपयोग कैसे करें http://stackoverflow.com/questions/4605668/how-to-use-mercurial-and-svn-together – AndyM

2

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

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

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

15

आप समझते हैं कि SVN शाखाओं काम करते हैं, SVN में टांड़ की नकल तो एक चाहती हैं:

  1. भंडार में एक शाखा बनाएँ (सर्वर पर)
  2. यह करने के लिए अपने स्थानीय प्रतिलिपि स्विच
  3. नई शाखा
  4. में अपने परिवर्तन कमिट अपने स्थानीय प्रतिलिपि ट्रंक

पर वापस जाएं जब आप वापस पाने के लिए तैयार कर रहे हैं अपने शेल्फ किए गए परिवर्तनों ("असहनीय") के लिए, शेल्फ शाखा को अपनी स्थानीय प्रतिलिपि में वापस विलय करें।

  1. है:

    आप कमांड लाइन SVN और न ही कछुआ SVN अच्छी तरह से ऊपर करने के लिए पर्याप्त नहीं जानते हैं, तो यहाँ एक सुपर विस्तृत कैसे कछुआ SVN में यह करने के लिए पर कदम दर कदम निर्देश है ट्रंक के नवीनतम संस्करण में अपनी कार्यशील प्रति को अपडेट करने के लिए "एसवीएन अपडेट"। इस तरह आपकी स्थानीय प्रतिलिपि और ट्रंक के बीच केवल अंतर ही आपके परिवर्तन हैं।

  2. संदर्भ मेनू से "शाखा/टैग"
  3. "भंडार में HEAD संस्करण" विकल्प का चयन डिफ़ॉल्ट रूप से किया जाता है। उसे रखे।
  4. शाखा नाम निर्दिष्ट करने के लिए "यूआरएल" बदलें, उदा। http://server/repository/project1/branches/shelf1
  5. चेक "नई शाखा/टैग करने के लिए काम की नकल स्विच" बॉक्स
  6. क्लिक शाखा बनाने और इसे करने के लिए स्विच करने के लिए ठीक है
  7. "SVN प्रतिबद्ध ..." और नव निर्मित शाखा में अपने परिवर्तन के लिए प्रतिबद्ध
  8. संदर्भ मेनू से "स्विच करें ..."
  9. ट्रंक यूआरएल जैसे "यूआरएल" में बदलें http://server/repository/project1/trunk
  10. ठीक क्लिक करें ट्रंक

पर बदलने में भी अधिक जानकारी के लिए इस लिंक और इसके बाद के संस्करण की कमांड लाइन बराबर देखें:
Shelves in Subversion

+8

बड़े भंडारों पर, यह एक दर्दनाक धीमा है (और अगर यहां और वहां हटाए गए हैं तो त्रुटि प्रवण) प्रक्रिया – Samaursa

+1

@ सैमौर्स, कौन सा कदम धीमा है? साथ ही, मेरे लिए कभी भी समस्या नहीं थी, जब तक कि काम करने वाली प्रतिलिपि में अनवरोधित आइटम न हों (जिसे आपको स्विच करने से पहले साफ करना चाहिए, इसे पढ़ें: (http://subversion.apache.org/faq.html#switch-problems) – zvolkov

+0

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

8

एक अन्य विकल्प का उपयोग करने के 'निर्मित है पैच फ़ाइल बनाने और परिवर्तनों को वापस करने के लिए TortoiseSvn में पैच सुविधा। पैच फ़ाइल को बाद में वापस पाने के लिए पुनः लागू किया जा सकता है जहां आप थे।

यदि आप कामकाजी प्रति संशोधन को अद्यतन करना चाहते हैं तो भी आप कुछ चिपचिपा विलयों के साथ समाप्त हो सकते हैं।

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