2009-08-21 17 views
16

मुझे अभी गिट के बारे में एक त्वरित सवाल था - पिछला संगत गिट रिपॉजिटरीज़ कैसे हैं? उदाहरण के लिए, मैंने गिट 1.6.4 और svn2git रूबी स्क्रिप्ट का उपयोग करके एक रिपॉजिटरी बनाई है, लेकिन मैं इसे एक मशीन पर रखना चाहता हूं जो डेबियन लेनी चला रहा है, जिसमें 1.5.6.5 गिट है। क्या मैं अभी भी भंडार के साथ ठीक से बातचीत कर पाऊंगा?गिट रिपोजिटरी पिछड़ा संगतता

उत्तर

7

यह जानकारी के वास्तविक भंडारण के संदर्भ में बेहद पिछड़ा संगत है, जो आप इस मामले में चिंतित हैं। मैं कुल विशेषज्ञ नहीं हूं, लेकिन मुझे संदेह है कि पहली स्थिर रिलीज के बाद से यह बदल गया है।

एकमात्र संगतता समस्या जो मैं सोच सकता हूं, यह है कि यदि गिट के दो संस्करण सटीक उसी रेपो (क्लोन नहीं) पर काम कर रहे हैं और वहाँ/git/config में सेट विकल्प/उपनाम हैं जो नए में काम करते हैं संस्करण लेकिन पुराने संस्करण में [पूरी तरह से] लागू नहीं किया गया था ... लेकिन फिर भी आपको इस नज़दीकी संस्करणों के साथ बहुत मेहनत करनी होगी। और फिर, रेपो में वास्तविक जानकारी के साथ ऐसा कुछ भी नहीं है, केवल आपके द्वारा प्रबंधित करने के लिए उपयोग किए जाने वाले आदेश। यही वह जगह है जहां गिट का विकास हो रहा है।

+0

ठीक है, मुझे पता है कि 1.5 रिलीज की शुरुआत में रिपोजिटरी प्रारूप बदल दिया गया था, लेकिन मुझे लगता है कि यह सब कुछ है। धन्यवाद, मैं शायद अपने काम के साथ आगे बढ़ सकता हूं। मुझे आश्चर्य है कि, क्या पुराने संस्करणों के साथ गिटोसिस में समस्याएं होंगी? मैं इस नए लेनी सर्वर पर गिटोसिस स्थापित करना चाहता हूं। मुझे लगता है कि यह धक्का और सामान ठीक करने में सक्षम होना चाहिए। – Ibrahim

+0

कुछ चीजें 1.5 के साथ बदल गईं, लेकिन यहां देखें कि वे कितने सावधान हैं: http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.0.txt डिफ़ॉल्ट रूप से बदली गई चीजें सेटिंग, संस्करण 1.4.3 (कम से कम) से काम करते हैं। – u0b34a0f6ae

+0

हा! +1 के साथ 666 की अपनी पूरी बुरी प्रतिष्ठा को नष्ट करना! – Bombe

7

गिट भंडार के लेआउट में बहुत कम असंगत परिवर्तन थे; इस अर्थ में असंगतता कि पुराने संस्करण नए संस्करण के साथ बनाए गए भंडार से निपटने में सक्षम नहीं हो सकते हैं, या नए सर्वर के साथ एक एक्सचेंज (fetch या push) कर सकते हैं।

आपको अपने द्वारा उपयोग किए जाने वाले संस्करणों के बीच कुछ असंगत परिवर्तन होने पर यह पता लगाने के लिए आपको RelNotes (उदा। here से) जांचना चाहिए।

कुछ (शायद सभी) उन incompatibile परिवर्तन के होते हैं:

  • submodules समर्थन करते हैं: submodule समर्थन से पहले Git संस्करण Git कोर में पेश किया गया था नहीं रिपोजिटरी को संभालने के लिए (यदि ऐसा नहीं होता जो submodules का उपयोग करता है में सक्षम हो जाएगा subtree/gitlink प्रविष्टियों को समझें)
  • पैक किए गए रेफरी: पुराने गिट संस्करण को नए भंडार से HTTP के माध्यम से लाने में सक्षम नहीं होगा जो पैक किए गए रेफ (.git/packed-refs) का उपयोग करता है। पुराने गिट के साथ वही भंडार का उपयोग करते हुए नए गिट के रूप में
  • ऑफसेट डेल्टा पैकफाइल: पुराने गिट गिट पैकफाइल (ऑफ-डेल्टा) के नए (अधिक कॉम्पैक्ट) संस्करण को समझ में नहीं आता है। यह लाने और धक्का देने में कोई समस्या नहीं है, क्योंकि क्लाइंट द्वारा सर्वर द्वारा समर्थित सुविधाओं की खोज की जा रही है।

इनमें से कोई भी 1.6.4 और 1.5.6 के बीच था, मुझे लगता है।

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