Bazaar diffs make use of dates instead of revision identifiers, which makes it very hard to properly find the right file. While Bazaar does have a way of matching against dates, it has a few problems:

  1. Dates are not revisions. The date-based revision identifiers are a way of saying "Get me the change for this file with the date/time after (closest) or equal to the given timestamp." If there's a lot of activity on a repository, this can end up fetching the wrong file.
  2. If the date specified matches the very latest revision in a repository, the date-based revision identifier will be considered invalid. Bazaar actually locates the correct revision, but forces a failure if it matches the latest.

There is a plugin for Bazaar that will inject proper revision IDs in diffs, which is compatible with Review Board: https://launchpad.net/bzr-diff-revid