2017-08-03 11 views
7

मेरा प्रश्न Mercurial: List all unmerged branches के समान है लेकिन एसवीएन के लिए, Mercurial नहीं है।सबवर्जन: सभी सक्रिय, अनमोल शाखाओं की सूची कैसे प्राप्त करें

मुझे वर्तमान में खुली शाखाओं को सूचीबद्ध करने का एक तरीका ढूंढना होगा जो कि मेरे (आमतौर पर ट्रंक) में विलय नहीं हुआ है।

जहां तक ​​मुझे पता है हूँ, Git में बराबर सुविधा git branch --no-merged और git branch --merged

स्पष्टीकरण के लिए है, मैं कर रहा हूँ नहीं मर्ज ना किए गए संशोधन की एक सूची के लिए पूछ रहा है, जैसे कई अन्य StackOverflow सवाल है, अतीत में पूछा

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

उदाहरण के लिए

, अगर मैं repo/trunk पर हूँ, और रेपो इन शाखाएं हैं:

  • repo/branches/b1 ट्रंक
  • repo/branches/b2
  • repo/branches/b3 विलय कर दिया गया पिछले एक में नष्ट कर दिया गया में विलय नहीं किया गया है संशोधन और विलय नहीं किया गया
  • repo/branches/b4 विलय होने के बाद हटा दिया गया

आपका समाधान या तो बी 1 या बी 2 वापस करना चाहिए, लेकिन कभी भी बी 3 या बी 4 वापस नहीं करना चाहिए।

+0

क्या आप परिभाषित कर सकते हैं कि आपके परिदृश्य में शाखा "सक्रिय" क्या बनाती है? हाल ही में काम करता है? कम से कम एक प्रतिबद्धता के बाद से इसे ब्रांच किया गया था? –

+0

@ पैट्रिक क्विर्क एक शाखा को सक्रिय माना जा सकता है यदि यह HEAD संशोधन में मौजूद है। – BoffinbraiN

+0

क्या आपने स्क्रिप्ट/बैच बनाने की कोशिश की है जो 'रेपो/शाखाओं' में सभी निर्देशिकाओं को सूचीबद्ध करता है और फिर उनमें से प्रत्येक को 'svn mergeinfo' के साथ जांचें यदि विलय करने की आवश्यकता है? – royalTS

उत्तर

1

सबसे पहले, आप प्रमुख संशोधन में सूची सभी शाखाओं ले जाना है:

svn list repo/branches/ -r HEAD 

और फिर, आप परिणामों के माध्यम से पाश के लिए है, और जाँच mergeinfo।

@echo off 

for /f %%b in ('svn list repo/branches -r HEAD') do call :revisions %%b 

exit /b 

:revisions 
for /f %%r in ('svn mergeinfo --show-revs eligible repo/branches/%1 repo/trunk') do (
    echo repo/branches/%1 
    exit /b 
) 

मैं एक उपयोग कर रहा हूँ: संशोधन सबरूटीन यहाँ, क्योंकि मैं इसे बाहर निकलने के लिए जब मैं पहली बार संशोधन विलय करने के लिए उपलब्ध देखना चाहते हैं यहाँ एक स्क्रिप्ट है कि आप के रूप में * .bat फ़ाइल को बचा सकता है है। यही कारण है कि यह प्रोग्राम डुप्लिकेट शाखाओं को मुद्रित नहीं करेगा।

+0

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

+0

मेरा बुरा। मैंने अपना समाधान तय किया। – Przemek

+0

अच्छी तरह से किया गया! मैंने अपनी पुरानी एसवीएन रेपो पर एक नई शाखा (जो सूची में दिखाई देती है) बनाकर इसका परीक्षण किया है और फिर इसे ट्रंक में विलय कर रहा है (जिससे यह सूची को छोड़ देता है)। इस तरह उत्तर देना जारी रखें और आपके पास बहुत समय में बहुत सारे प्रतिनिधि होंगे। :) – BoffinbraiN

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

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