Q:

What's the difference between a stacked branch and a stacked push in bzr?

What's the difference between a stacked branch (bzr branch --stacked source-url my-dir) and a stacked push (bzr push --stacked)?  Well, other than the obvious that one is a branch and the other is a push.  Meaning, the documentation for stacked branches says that stacked branches and pushes can be used in concert.  From what I can tell, a stacked branch eliminates extra information on the client side whereas a stacked push eliminates extra information on the server side.  Is this correct?  What are use scenarios where we would use one, but not the other?

A:

One creates a local branch that is stacked, and one creates a remote branch that is stacked.
E.g. if you do:
bzr push -d local-branch --stacked bzr+ssh://example.com/foo/bar

then that will create a remote branch that is stacked (on local-branch, or something else if the remote server overrides the stacked branch like Launchpad does).
bzr branch bzr+ssh://example.com/foo/bar /tmp/bar

will create a local branch /tmp/bar that is stacked on bzr+ssh://example.com/foo/bar

