2010-03-13 18 views
11

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

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

उत्तर

14

में आदेश और SVN शाखाओं के बारे में अधिक जानकारी पा सकते हैं कि वास्तव में तुम कैसे करते (कम से कम सबवर्सन में)।

 
svn cp svn://server/repo/trunk svn://server/repo/branches/experiment 
svn switch svn://server/repo/branches/experiment 
svn commit -m "testing stuff" 

सबवर्सन cp (कॉपी) आपरेशन बहुत सस्ता होने के लिए बनाया गया है और वास्तव में फिर से अपने भंडार में सभी कोड की एक प्रतिलिपि बनाने नहीं करता है: उदाहरण के लिए। यह सिर्फ trunk में आपके द्वारा कॉपी किए गए संशोधन को इंगित करने के लिए पॉइंटर्स सेट करता है।

सभी सिस्टम इस तरह से काम नहीं करते हैं; उदाहरण के लिए गिट में आप एक नई शाखा बना सकते हैं और इसे एक कमांड के साथ स्विच कर सकते हैं: git checkout -b experiment

+0

तकनीकी तौर पर, आप उपयोग कर शाखा बनाना चाहिए टीओटी की बजाय आपकी कामकाजी प्रति का संशोधन, नहीं? –

2

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

मैं शाखाओं को स्विच करने से पहले बैकअप बनाने का सुझाव दूंगा, अगर आप गलती से अपने मौजूदा परिवर्तनों को ओवरराइट करते हैं।

आप मुक्त SVN Book

1

AFAIK एक जीयूआई के साथ सबसे अधिक SVN ग्राहकों (जैसे कछुआ, Subclipse, SvnX एक शाखा आदेश है कि आप के लिए जादू करता है।

अन्यथा ग्रेग के जवाब देखें।

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