RemoteRepository.get_rev_id_for_revno fails on empty stacked repository
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Confirmed
|
High
|
Unassigned |
Bug Description
It's common to have a stacked repository that is completely empty (e.g. if pushing a stacked branch whose tip rev is already in the stacked-on repository). In this case RemoteRepositor
Probably we should both:
* Fix the server to reply with history-incomplete in this case (using the known-pair sent by the client)
* Fix the client to interpret a nosuchrevision error for the revid in the known-pair as history-incomplete.
Fixing both sides means that old clients will start working in this case if the server is upgraded to a fixed version, and vice-versa.
This causes strangeness like breaking "bzr log -rN" and "bzr uncommit -r …" against stacked branches with empty repos hosted on a smart server.
A workaround is to avoid the smart calls, e.g. use SFTP or add the nosmart+ URL prefix