I am looking at a repository to which I contribute, going through the commit history manually, and I see "open" (unmerged) branches. For example, the branch my-branch
is "unmerged" because this command:
$ git log $(git merge-base origin/master origin/my-branch)..origin/my-branch
reveals the commits on my-branch
that are not merged. So I was treating this as an unmerged branch. Another contributor said, "no, it's been merged, using squash." Sure enough, if I look at the branch list (it's hosted at Bitbucket), it does not show up in the list. It doesn't show up in the "Active" list and it doesn't show up in the "Merged" list either.
So it has been merged, or closed, or something, according to Bitbucket. (But it's still in the clones coming from Bitbucket.) Is that a Bitbucket feature -- that's somehow keeping track of squash merges done through its interface? Is it a git
feature, the concept of "active?" What does it mean?
Update: According to Bitbucket's blog entry about the squash feature, the feature is not available for Mercurial because in Mercurial it requires "obsolescence markers" (presumably to mark the squashed commits as obsolete?). Does git
have its own version of whatever this is?