the branch parent check is either misguided or under-documented
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
codetree |
Fix Released
|
Undecided
|
Tim Kuhlman |
Bug Description
I do not understand why codetree includes an explicit check that the branch parent of the existing copy matches the location given in the collect file. It seems to me that it would be much more natural to simply "bzr pull" the given location (without --overwrite, and perhaps with --remember to refresh parent_location) and let bzr's existing handling of diverged branches be a reasonable sanity check.
Branches get moved and merged all the time, and this is normal in distributed development. The branch parent check means that we have had to include "overwrite=true" in many more places than would otherwise be the case, and I believe it also means that the more interesting "this branch was rebased or replaced" uses of this option become harder to spot.
We should either document the rationale for this behaviour, or remove it.
---
References (none of which seem to have captured the rationale):
https:/
https:/
Message-ID: <email address hidden> (Subject: 2013-10-31 (Wednesday) EOD Report for David Ames)
Related branches
- Tim Kuhlman (community): Approve
- Joel Sing (community): Approve (+1)
-
Diff: 61 lines (+13/-12)2 files modifiedcodetree/handlers/bzr.py (+9/-5)
tests/test_bzr_handler.py (+4/-7)
Changed in codetree: | |
assignee: | nobody → Paul Collins (pjdc) |
Changed in codetree: | |
status: | New → In Progress |
assignee: | Paul Collins (pjdc) → Tim Kuhlman (timkuhlman) |
Changed in codetree: | |
status: | In Progress → Fix Released |
We got bitten by this in https:/ /bazaar. launchpad. net/~canonical- ca-hackers/ software- center- agent/trunk/ revision/ 3066 when the upstream project changed the team owning the branch.
It has fallouts in various parts of our CI infrastructure so chiming here to mention that while the error message is clear and provides good feedback to the user, a warning would seem more appropriate, provide the same feedback but doesn't require users to remove the offending existing branch.