git - Creating a list of merge commits present in development, but not in master -
our git process involves merging features development, feature branches, , when stable, these merged master.
if bug found in feature, branch reverted development making little difficult figure out going master.
i thinking of simple shell script generate list of merges (that not reverted), in development, not in master, cant figure out how generate this. know can done using basic git , bash, pointers appreciated.
update:
from answer here, close with:
git rev-list release_2013_05_20 --not master --merges | xargs -l1 git name-rev | grep -oe '[0-9a-f]{40}\s[^\~\^]*'
but shows multiple entries if feature reverted, , merged again.
what shape of history, , trying do? description, understood far is:
you have faulty merge commit m in development branch coming topic branch (heads commits: a, b):
---o---o---o---m---x---x / ---a---b and revert $ git revert -m 1 m this:
---o---o---o---m---x---x---w / ---a---b then, make more changes topic branch , development branch:
---o---o---o---m---x---x---w---x / ---a---b-------------------c---d and merge development m2 when feel mature:
---o---o---o---m---x---x---w---x---m2 / \ ---a---b-------------------c---d now, want find out m commits don't have corresponding w commit, correct? only way (assuming full generality) take patch text of m , verify inverse of patch text of w. since, w regular commit, have walk every single commit , compare every merge commit comes before in entire branch. how else handle clusterfuck?
---o---o---o---m1---x---x---m2---x---x--w1---m3---x---w3---x / \ \ ---a---b-----------c---d------------e---f have conclusively proved workflow broken, , must change ways? go read gitworkflows(7) , reflect on disaster.
Comments
Post a Comment