Hi all-

I have a branch history that looks like this:

 ----------M-----M-- master
  \       /     /
   x---------------- feature
    \             \
     x-------------A- maint

In other words we had a new feature that was "so cool" that after testing on 
master was back-ported to maint (luckily we knew ahead of time this was 
likely).  When it came time to merge feature into maint the process looked 
something like this:

Yesterday (not shown above):
 $ git checkout master
 $ git merge maint

 $ git checkout maint
 $ git merge feature
 Merge made by the 'recursive' strategy.
 $ git checkout master
 $ git merge maint
 Already up-to-date!
 Merge made by the 'recursive' strategy.
 $ git --version
 git version

In the past, I've only seen "Already up-to-date!" when there is literally 
nothing to do (all commits are reachable from HEAD).  In this case, the merge 
of feature into maint (commit A) is the only commit not reachable from HEAD, 
and Git does create a merge commit (though the new commit and the first parent 
point to the same tree).  The fact that a commit is created makes me call this 
something more than a no-op, even though no content changed.

So what is the actual meaning of "Already up-to-date!"?  Is it based on the 
tree, the reachable commits, or something more complicated?

To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to