2012-09-24 58 views
5

हमारे पास एक स्कूल प्रोजेक्ट में, वीसीएस उपयोग में एसवीएन है।दो फाइलों को दो रिपोजिटरी के बीच सिंक में रखना - प्रतीकात्मक लिंक? या एक और तरीका?

प्रतिबंध:

  • हमारे प्रोफेसर केंद्रीय भंडार में गैर काम कर कोड प्रतिबद्ध करने के लिए नहीं चाहता है।

  • मैं चलते-फिरते कोड पर काम कर रहा हूं। एक लैपटॉप, एक डेस्कटॉप और दिन के अलग अलग समय के दौरान कार्यालय में एक पीसी पर मैं कोड (उत्पादक होने के नाते मुझे लगता है)

  • हम शाखा

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

हालांकि, मुझे नहीं पता कि सिम्लिंक के संबंध में वीसीएस का व्यवहार क्या है।

मैंने पढ़ लिया है an answer here in StackOverflow कि GIT एक फ़ाइल के रूप में एक सिमलिंक संग्रहीत करता है और जब यह पुन: प्राप्त करने में, यह यह एक सिमलिंक रिटर्न भले ही कोई लक्ष्य करता है या मौजूद नहीं है - यह अच्छा नहीं है। मुझे इसके बजाय "मृत फाइलें" मिल रही हैं।

मैंने this documentation for SVN भी पढ़ा है और सिमलिंक को पुनर्प्राप्त करने के बाद क्या आता है इसके बारे में कुछ भी नहीं बताता है।

और इसलिए, मुझे दो फाइलों को एक ही फाइल के साथ सिंक करने के लिए क्या करना चाहिए? क्या मुझे सिम्लिंक के लिए जाना चाहिए या क्या कोई और तरीका है?

+1

क्या आपने गिट-एसवीएन http://www.kernel.org/pub/software/scm/git/docs/git-svn.html पर विचार किया है, यह सबवर्सन <-> गिट ऑपरेशंस को बिना किसी "फ़ाइल को सिमलिंक कर सकता है अन्य "सामान के लिए repo। –

+0

यहां सरल गिट svn वर्कफ़्लो का उदाहरण है http://andy.delcambre.com/2008/03/04/git-svn-workflow.html –

+0

[bzr-svn] (http://doc.bazaar.canonical.com /beta/en/user-guide/svn_plugin.html) भी एक और अच्छी पसंद हो सकती है। सबमिशन लगभग सिमलिंक के लिए गिट के समान ही करेगा। यह इसे आंतरिक रूप से एक विशेष फ़ाइल के रूप में दर्शाता है, और जब आप चेकआउट करते हैं तो लिंक बना देगा। हालांकि लक्ष्य मौजूद नहीं है - बस गिट की तरह। विंडोज़ पर, जहां सिम्लिंक मौजूद नहीं हैं, सबवर्जन लक्ष्य निर्देशिका में इंगित '.lnk' फ़ाइल बनाएगा। '.lnk' फ़ाइलें एक्सप्लोरर लिंक फ़ाइलें हैं। – jszakmeister

उत्तर

2

परिचय:

"कोई मृत कोड" और "कोई शाखाओं" बुरा और बदसूरत विकास नीति है, नीति परिणाम के रूप में एक बहुत बड़ा, गैर प्रबंधनीय प्रतिबद्ध करने के लिए अग्रणी (सबसे बार)

  1. भूल शुद्ध सिमलिंक के बारे में, देशी उपकरणों और तरीकों का उपयोग
  2. (कुछ) बाहरी स्रोतों Subversion externals
  3. मोबाइल विकास का उपयोग कर सबवर्सन रेपो से जोड़ा जा सकता है (लगभग) अप्रासंगिक questi समस्या के पहले भाग के लिए पर: किसी भी (डी) का उपयोग पसंद का VCS है, जो हो सकता है हाल ही में सबवर्सन (मर्क्युरियल, Git, बाजार, जीवाश्म एससीएम/अधिक Git निर्यात /) पर पाट
+1

विकास नीति के बारे में अधिक सहमत नहीं हो सका। – jszakmeister

2

यहाँ मेरा प्रस्ताव है :

  1. Git SVN क्लोन प्रोफेसर रेपो को < यूआरएल>
  2. चरण 1 के बाद आप तोड़फोड़ रेपो के अपने स्थानीय प्रतिलिपि
  3. Git शाखा < शाखा का नाम> - चिंता मत करो अपने प्रोफेसर नहीं अपनी शाखा पर इस शाखा
  4. काम देखते हैं और प्रतिबद्ध जो चाहो जब तक आपका काम पूरा हो जाएगा - सभी काम करता है और परीक्षण पारित कर रहे हैं - यह प्रोफेसर करने के लिए अपने कोड देने के लिए समय आ गया है
  5. Git चेकआउट मास्टर
  6. Git SVN rebase -
  7. Git विलय < SVN मुख्य लाइन से नवीनतम परिवर्तन ले जाएगा अपनी शाखा का नाम> - अगर प्रोफेसर एकल देखना पसंद आप --squash विकल्प का उपयोग कर सकते हैं प्रतिबद्ध
  8. git svn dcommit - मुख्य रूप से

एचटीएच पर आपके परिवर्तन प्रकाशित करेगा।