2010-10-26 3 views
13

मेरा मानना ​​है कि शीर्षक यह कहता है। मैं स्रोत नियंत्रण चीज़ के लिए नया हूँ।एक ही फाइल को समेकित रूप से संपादित करने वाले दो लोग कैसे प्रबंधित किए जाते हैं?

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

क्या यह सही है?

स्पष्ट करें। धन्यवाद।

उत्तर

29

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

class Foo { 
    public void printAWittyMessage() { 
     // TODO: Be witty 
    } 
} 

ऐलिस और बॉब दोनों फ़ाइल को संशोधित:

मान लीजिए हम एक फ़ाइल Foo.java है। ऐलिस करता है:

class Foo { 
    public void printAWittyMessage() { 
     System.out.println("Alice is the coolest"); 
    } 
} 

और बॉब इस करता है:

class Foo { 
    public void printAWittyMessage() { 
     System.out.println("Alice is teh suk"); 
    } 
} 

ऐलिस पहले में उसके संस्करण की जाँच करता है। जब बॉब उसकी जांच करने का प्रयास करता है, तो गिट उसे चेतावनी देगा कि एक संघर्ष है और प्रतिबद्ध को मुख्य भंडार में धकेलने की अनुमति नहीं देगा। बॉब को अपने स्थानीय भंडार को अद्यतन करना है और संघर्ष को ठीक करना है। उन्होंने कहा कि कुछ इस तरह मिल जाएगा:

class Foo { 
    public void printAWittyMessage() { 
<<<<< HEAD:<some git nonsense> 
     System.out.println("Alice is the coolest"); 
===== 
     System.out.println("Alice is teh suk"); 
>>>>> blahdeblahdeblah:<some more git nonsense> 
    } 
} 

<<<<<, ===== और >>>>> मार्करों दिखाने जो लाइनों एक साथ बदल रहे थे। बॉब को कुछ समझदार तरीके से संघर्ष को हल करना होगा, मार्करों को हटा देना होगा, और परिणाम देना होगा।

तो क्या अंततः भंडार में रहती है:

मूल संस्करण -> ऐलिस संस्करण -> बॉब की संघर्ष-तय संस्करण।

संक्षेप में प्रस्तुत करने के लिए: पहले प्रतिबद्ध करने के लिए बिना किसी समस्या के में हो जाता है, दूसरा प्रतिबद्ध करने के लिए संघर्ष भंडार में हो रही से पहले हल करना चाहिए। आपको किसी के परिवर्तनों को स्वचालित रूप से क्लॉन्ग किए जाने के साथ कभी खत्म नहीं होना चाहिए। जाहिर है बॉब गलत तरीके से संघर्ष को हल कर सकता है लेकिन संस्करण नियंत्रण की सुंदरता यह है कि आप गलत फिक्स वापस ले सकते हैं और इसे सुधार सकते हैं।

+0

आप इसे अच्छी तरह से कहा! Claps :-) –

4

बहुत सिस्टम प्रयोग कर रहे हैं उस पर निर्भर करता है।

हालांकि आम मामले में है: जो करता है उसके परिवर्तन दूसरा एक "मर्ज" कार्रवाई करने के लिए होगा। मतलब है कि उसे दो फाइलों की तुलना करने और विलय संस्करण के साथ आने की आवश्यकता होगी। हालांकि (!) कई लोकप्रिय सिस्टम (आईडीई समेत) स्मार्ट टूल के साथ आता है ताकि आप ऐसा करने में सहायता कर सकें।

यहाँ की तरह है कि तुलना में कुछ उपकरण हैं: http://en.wikipedia.org/wiki/Comparison_of_file_comparison_tools

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