Si votre branche (ancienne) une fois de plus fusionnée vers master ne donne pas le résultat attendu, j'ai utilisé python script pour trouver l'Id de commit de la branche initiale.
git rev-list --first-parent changeset
-premier parent ne suit que le premier commit parent lorsqu'il voit un commit de fusion.
Itérer les changeset de la commande ci-dessus jusqu'à ce que la branche parent soit trouvée.
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)