चेतावनी: रिफिट 'xxx' git-svn का उपयोग करते समय अस्पष्ट है




branch ambiguity (3)

यदि आप git svn clone कमांड के लिए --prefix=svn/ flag को पास करते हैं, तो सभी सबवर्सन शाखाओं को remotes/svn/branchname तरह नाम दिया जाएगा। यदि यह आपको स्वीकार्य है, तो यह "refname अस्पष्ट है" चेतावनी को ठीक करता है। यह आपको दूरस्थ svn शाखाओं को संदर्भित करने का एक अच्छा तरीका भी देता है, उदाहरण के लिए यदि आप एक स्थानीय ट्रैकिंग शाखा बनाना चाहते हैं तो यह कुछ इस तरह होगा:

$ git checkout -b branchname svn/branchname

स्थानीय शाखा का नाम दूरस्थ svn शाखा के रूप में समान है, और अस्पष्ट अस्पष्ट नाम समस्या नहीं है।

मैं तोड़फोड़ के रूप में उपयोग कर रहा हूँ तोड़फोड़ (git svn के माध्यम से)।

तो, हर svn ट्रंक / शाखा के लिए "git" / xxx "नाम की रिमोट शाखा है। उदाहरण के लिए "रिमोट / ट्रंक", "रीमोट्स / कूलफ़िएट"।

अब मैं चाहता हूं कि प्रत्येक दूरस्थ शाखा के लिए एक "डिफ़ॉल्ट" स्थानीय शाखा हो, जो इसे dcommit के लिए उपयोग करे। समस्या यह है कि मैं चाहता हूं कि इस तरह की शाखाओं का नाम "ट्रंक", "कूलफ़िएचर" जैसे सबवर्सन शाखाओं के नाम पर रखा जाए, इसलिए मेरे पास निम्नलिखित शाखाएँ हैं:

trunk
coolfeature
remotes/trunk
remotes/coolfeature

समस्या यह है कि हर बार जब मैं "ट्रंक" या "कूलफ़िएट" संदर्भ का उल्लेख करता हूं, तो शिकायत होती है कि शाखा का नाम अस्पष्ट है। बड़ी बात नहीं है, लेकिन मैं असहज महसूस करता हूं।

सवाल यह है कि मैं उस चेतावनी से कैसे निपट सकता हूं, यह मानते हुए कि बस शाखाओं का नाम बदलने से वह नहीं होता जो मैं करना चाहता हूं। ऐसे मामलों के लिए सर्वोत्तम अभ्यास क्या हैं?


यदि आप केवल चेतावनी से छुटकारा पाना चाहते हैं, तो core.warnAmbiguousRefs को false सेट करें:

git config --global core.warnambiguousrefs false

यदि आप इस व्यवहार को केवल एकल रिपॉजिटरी के लिए चाहते हैं, तो छोड़ दें --global झंडा झंडा।


संघर्ष संदेश से बचने के लिए, स्थानीय शाखाओं का हवाला देते हुए, उन्हें heads/ साथ उपसर्ग करें heads/

उदाहरण के लिए, परस्पर विरोधी शाखा topic

$ git diff topic remotes/topic
warning: reframe 'topic' is ambiguous.
...

हो जाता है

$ git diff heads/topic remotes/topic
...




ambiguity