I'd like there to be an option (also for sftp) to create a checkout, but it is fine to not do that by default, even for local paths.
I suppose that answers your .bzrdir question? If there is already a .bzrdir present in the target the normal have-these-branches-diverged code would kick in. Not sure what that does if you just mkdir .bzr and don't add any control files.
Pushing to a nonempty directory when not building a checkout is an interesting question. It might make for a fun way to bzrize a new upstream tarball, you can go straight on to running status and diff. That is the only use case I can think of sanely supporting, having a .bzr that has nothing to do with your working tree could wreak havoc with old revert behaviour, although it looks safe now. Still makes for confusing diff/status output.
I'd like there to be an option (also for sftp) to create a checkout, but it is fine to not do that by default, even for local paths.
I suppose that answers your .bzrdir question? If there is already a .bzrdir present in the target the normal have-these- branches- diverged code would kick in. Not sure what that does if you just mkdir .bzr and don't add any control files.
Pushing to a nonempty directory when not building a checkout is an interesting question. It might make for a fun way to bzrize a new upstream tarball, you can go straight on to running status and diff. That is the only use case I can think of sanely supporting, having a .bzr that has nothing to do with your working tree could wreak havoc with old revert behaviour, although it looks safe now. Still makes for confusing diff/status output.