यदि आपकी शाखा (पुरानी एक) एक बार फिर से मास्टर में विलय हो जाती है तो अपेक्षित परिणाम नहीं मिलता है। मैंने प्रारंभिक शाखा कमिट आईडी खोजने के लिए अजगर स्क्रिप्ट का उपयोग किया है।
git रि-लिस्ट --first- पैरेंट चेंजेस
-पहले माता-पिता मर्ज कमिट देखने के बाद केवल पहले माता -पिता का पालन करते हैं।
माता-पिता की शाखा मिलने तक, उपर्युक्त आदेश से परिवर्तन के परिवर्तन।
def status_check(exec_command, exec_dir=None, background=False):
if exec_dir:
os.chdir(exec_dir)
res = subprocess.Popen(exec_command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
if not background:
result = res.communicate()
return result
def findNewBranchCommits(changeset=None):
cmd = "git rev-list --first-parent "+ changeset
rev_list = status_check(cmd,self.module_dir)
rev_list = str(rev_list[0]).split('\n')
rev_list = list(filter(None, rev_list))
for x in rev_list: # Iterate until branch base point
rev_cmd = "git branch --contains " + x
rev_cmd = status_check(rev_cmd,self.module_dir)
rev_cmd = str(rev_cmd[0]).split('\n')
if(len(rev_cmd) > 2):
print "First Commit in xxx branch",x
break
findNewBranchCommits(changeset)