Re: finding unmerged branches
- From
Björn Steinbrink <b.steinbrink@gmx.de>
- Date
- Aug 27, 2009, 22:35 UTC
- Message-ID
- <20090827223504.GA18307@atjola.homenet>
- In-Reply-To
- <20090827220241.GA1413@gnu.kitenet.net>
On 2009.08.27 18:02:41 -0400, Joey Hess wrote:
Show 24 quoted lines
> My situation is this: My project has a lot of remotes with > lots of branches; about 250 branches in total. I want to > figure out which of these branches to look at to consider > merging. > > So, I reach for git branch -a --no-merged master; that's what > its man page says its for. But this still finds 120 branches, > and a lot of them are not things I want to look at. Many of > them are copies of some of my own branches. > > What I really want is a way to find remote branches that > are not merged with any of my local branches (or any origin > branches). A slow and stupid implementation of that is in the > attached git-unmerged script, and it weeds the branch list > down to 68 branches, which are mostly really ones I might > want to look at. > > So, three questions: > > * Is this situation somewhat common, or an I doing something wrong? > (Assuming that I have a good reason to want to look at remote > branches rather than waiting to get merge requests.) > * Is there a better way to accomplish this than a slow perl script that > runs git branch -r --merged foreach of my branches?
Hm, not sure if I'd call it "better", but probably at least a bit faster. You could create a "fake" merge to combine all the branches.
git branch -r --no-merged $(
: | git commit-tree HEAD^{tree} $(
git for-each-ref --format='-p %(refname)' \
refs/heads/ \
refs/remotes/origin
)
)Björn