Android Studio-SVN शाखा से विलय करने में असमर्थ




android-studio intellij-idea (2)

थोड़ी देर में, SVN का उपयोग नहीं किया ...

लेकिन जो मैं याद कर सकता हूं कि Branch locations आपके शाखा फ़ोल्डर वाले फ़ोल्डर होना चाहिए (और प्रत्येक व्यक्तिगत शाखा फ़ोल्डर नहीं)।

आप देखते हैं, आम तौर पर एक SVN रेपो एक मानक नामकरण सम्मेलन और फ़ोल्डर संरचना का अनुसरण करता है:

trunk/
branches/
  Feature_A2/
  Feature_A3/
tags/
  v1.01/
  v1.02/

and so on...

trunk वह जगह है जहां मुख्य विकास होता है, और branches सुविधाओं, दीर्घकालिक या जोखिम भरी परियोजनाओं, या विभिन्न चरणों (जैसे क्यूए और पूर्व-ठेस) के लिए होती हैं।

इसलिए, जहाँ तक मुझे याद है, एंड्रॉइड स्टूडियो आपसे Branch locations को branches फ़ोल्डर में सेट करने की अपेक्षा करता है। आपके मामले में मुझे लगता है कि यह http://192.168.0.64/svn/.../Android/Feature होना चाहिए।

साथ ही, आपका trunk Feature_A2 नहीं है - Feature_A2 सिर्फ एक और शाखा है।
हालाँकि मैं सामग्री नहीं देख सकता, मुझे लगता है कि http://192.168.0.64/svn/.../Android/Development आपका ट्रंक हो सकता है।

जो आपको ज्यादा परेशान नहीं करना चाहिए, क्योंकि आपको अपने ट्रंक में विलय करने की आवश्यकता नहीं है, आप शाखाओं के बीच विलय भी कर सकते हैं (उदाहरण के लिए Feature_A3 को Feature_A2 में मर्ज करें)।

तो, पुनरावृत्ति करने के लिए:

  1. यद्यपि अनिवार्य नहीं है, मैं आपके फ़ोल्डरों का नाम बदलने की सलाह देता हूं ताकि आप सम्मेलनों से मिलान कर सकें (आप इसे कछुए SVN में राइट क्लिक करके आसानी से कर सकते हैं, लेकिन केवल सभी टीम के साथी प्रतिबद्ध हैं, अन्यथा मर्ज उनके लिए HELL होगा)।
  2. http://192.168.0.64/svn/.../Android/Feature Branch locations सेट करने का प्रयास करें
  3. और Trunk से http://192.168.0.64/svn/.../Android/Development (केवल अगर इसमें वास्तव में स्रोत हैं, तो Feature_A2 / 3 के समान)
  4. एक tags फ़ोल्डर में अपनी रिलीज़ को "टैगिंग" पर विचार करें (यह बहुत ही ट्रंक / शाखा फ़ोल्डर को टैग करने के लिए कॉपी कर रहा है, लेकिन आपके पास इसके लिए एक कमांड है)।

    यदि आप ऐसा करते हैं, तो आप Branch locations tags फ़ोल्डर भी जोड़ सकते हैं, इस तरह आप अपने वर्तमान स्रोत की तुलना किसी भी पिछले रिलीज़ (जो कि आसान है) से कर पाएंगे।

पुनश्च: "unresolved conflicts" error का मतलब यह भी हो सकता है कि आपके पास अनसुलझे संघर्ष (डु :)) हैं। विरोध आमतौर पर तब होता है जब आप और एक टीममेट दोनों फ़ाइल में एक ही पंक्तियों को बदलते हैं (या यदि वह आपके द्वारा बदली गई फ़ाइल को हटाता है) और आप उसके परिवर्तन प्राप्त करने के लिए अपडेट होते हैं।

SVN आपको तब तक मर्ज नहीं करने देगा, जब तक आप इन विरोधों / परिवर्तनों को मैन्युअल रूप से हल नहीं करते।

आप नीचे दिए गए Version Control टैब में संघर्ष पा सकते हैं, वे लाल रंग में चिह्नित होंगे।
(लेकिन मुझे नहीं लगता कि आपके मामले में यह समस्या थी)


मुझे बताना अगर ये आप के लिए काम करता है!

हमने अपने मोबाइल एप्लिकेशन में हर नई सुविधा के लिए एक नई SVN शाखा बनाने की प्रक्रिया का पालन करने का निर्णय लिया है। इसके पीछे अंतिम लक्ष्य हर एक कोड परिवर्तन के लिए इतिहास को संरक्षित करना है (यह तब नहीं होता है जब हम शाखाओं को बनाने और विलय करने के बजाय SVN में प्रोजेक्ट फ़ोल्डर्स को मैन्युअल रूप से कॉपी करते हैं)।

मेरी समस्या यह है कि अब तक मैं एक शाखा से दूसरी शाखा में परिवर्तन को विलय करने में असमर्थ हूं।

मैंने निम्नलिखित पदों को पहले ही सफलता के बिना संदर्भित कर दिया है:

  • एंड्रॉइड स्टूडियो में एसवीएन का उपयोग करके ट्रंक के साथ शाखा का विलय कैसे करें

  • एंड्रॉइड स्टूडियो अपडेट प्रोजेक्ट: मर्ज बनाम रिबेस बनाम ब्रांच डिफॉल्ट

  • एंड्रॉइड स्टूडियो के साथ एसवीएन में शाखा का विलय कैसे करें

  • एंड्रॉइड स्टूडियो 2.0 में शाखा से ट्रंक के लिए विशिष्ट svn संशोधन कैसे मर्ज करें

यहाँ मैंने अभी तक कोशिश की है:

मेरी दो फीचर शाखाएँ हैं जिन्हें कछुआ एसवीएन में नीचे देखा जा सकता है:

मैं शाखा Feature_A3 में शाखा Feature_A2 में परिवर्तनों को मर्ज करना चाहता हूं। ऐसा करने के लिए, मैं A2 कार्यशील प्रति से Android Studio के VCS में विकल्प Merge from का उपयोग कर रहा हूं:

यह तब मुझे (A3) से विलय करने के लिए शाखा का चयन करने या अन्य शाखाओं को कॉन्फ़िगर करने के लिए कहता है:

मैं कॉन्फ़िगर शाखाएँ पर क्लिक करता हूँ, बस आपको मौजूदा शाखा विन्यास दिखाने के लिए:

जैसा कि आप देख सकते हैं, A2 ट्रंक है और A3 ब्रांच है क्या ये सही है?

यह तब मुझसे पूछता है कि मैं A3 के किस भाग को A2 में मर्ज करना चाहता हूं। मैं /src निर्देशिका का चयन करता हूं (जहां प्रासंगिक परिवर्तन मौजूद हैं):

यह तब उदारता से मुझे मर्ज ऑपरेशन करने के लिए तीन अलग-अलग तरीके देता है:

मैं तीसरे विकल्प का चयन करता हूं क्योंकि यह सीधे मुझे उन परिवर्तनों को देता है जिन्हें मुझे मर्ज करने की आवश्यकता है:

मैं Merge Select और BAM पर क्लिक करता हूँ !!! मुझे हर बार यह त्रुटि मिलती है:

इस बात का कोई सुराग नहीं है कि "अनसुलझे संघर्ष" या "स्केप्ड आइटम" क्या हैं। मुझे यह त्रुटि क्यों हो रही है, और मुझे A3 में A2 में परिवर्तनों को मर्ज करने के लिए क्या करना चाहिए ??? क्या कोई मदद कर सकता है? सभी उत्तरों की सराहना की जाएगी। धन्यवाद ...

मैं नीचे दिए गए आधिकारिक Intellij IDEA प्रलेखन का पालन कर रहा हूं:

कृपया ध्यान दें कि:

  • वर्तमान में मैं तोड़फोड़ का उपयोग कर रहा हूं, गिट का नहीं।

  • मेरी स्थानीय कार्य प्रतियों की निर्देशिका संरचना एसवीएन रिपो के समान नहीं है। क्या यह त्रुटि का कारण हो सकता है?

उत्तर ...

अपनी बहुमूल्य प्रतिक्रिया के लिए पीटर पार्कर और विशेष रूप से योआ अहरोनी का धन्यवाद। जैसा कि योव ने सही ढंग से बताया, यह वास्तव में शाखा स्थानों के फ़ोल्डर को निर्दिष्ट करने का तरीका था। इसे शाखाओं वाले फ़ोल्डर होने की आवश्यकता है, न कि शाखा फ़ोल्डर्स स्वयं: और जैसा कि पीटर ने ठीक कहा, "मर्ज किए गए संशोधनों को शामिल करें" की जाँच करना मर्ज किए गए इतिहास को दर्शाता है। अब मैं खुद IDE के भीतर से विलय कर सकता हूं, और TortoiseSVN में विलय किए गए इतिहास को देख सकता हूं। कोई कमांड लाइन! वाह!!!

हालाँकि, एक अंतिम समस्या यह है कि मैं मर्ज स्रोत में वर्णित के रूप में Android Studio (Intellij IDEA) में मर्ज किए गए इतिहास को देखने में असमर्थ हूं। क्या किसी को पता है कि एंड्रॉइड स्टूडियो में इसे कैसे प्राप्त किया जाए?


मैं एसवीएन विशेषज्ञ नहीं हूं, लेकिन मुझे लगता है कि आपको निर्देशिका संरचना बदलने की आवश्यकता होगी। मेरा मानना ​​है कि भले ही यह सिर्फ एक सम्मेलन है, लेकिन svn शाखाओं के विलय के लिए निर्देशिका संरचना का उपयोग करता है। तो आपकी निर्देशिका संरचना होनी चाहिए:

SVN
   /Android
      /branches
         /production
         /featureA2
         /featureA3
      /tags 
      /trunk
  /IOS
      /branches
         /production
         /featureA2
         /featureA3
      /tags 
      /trunk

हालांकि TortoiseSVN रेपो-ब्राउज़र आपको अपनी निर्देशिकाओं को इधर-उधर करने की अनुमति देगा, प्रत्येक निर्देशिका पर बहुत अधिक मेटा-डेटा संग्रहीत किया जाता है और मर्ज प्रक्रिया को संभालने के लिए उपयोग किया जाता है, इसलिए आपको अपना रेपो फिर से शुरू करना पड़ सकता है। अपने रिपॉज को सेटअप करने के तरीके के बारे में अधिक जानकारी के लिए रिपॉजिटरी लेआउट के लिए तोड़फोड़ सर्वोत्तम प्रथाओं गाइड और रणनीतियों देखें सभी ने कहा, मैं शाखाओं के विलय की तरह भारी उठाने के लिए एंड्रॉइड स्टूडियो के svn एकीकरण पर भरोसा करने में संकोच करूंगा (हालांकि JetBrains टूलिंग में अधिकांश चीजें शानदार हैं) यह वांछित होने के लिए एसवीएन पत्तियों को संभालती है।






branching-and-merging