Automatically handle moving duplicates across when duplicating a bug with dupes
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Launchpad itself |
Fix Released
|
High
|
Deryck Hodge |
Bug Description
This is a follow-up to bug 2796, and works around the constraint that says you cannot dupe a bug with dupes against another bug.
Essentially, we have made Launchpad intelligent enough to detect when you try to dupe a bug (with no dupes itself) against a bug which is a dupe, and we automatically Do The Right Thing duping against the "master" bug. That makes the constraint bug 2796 proposed doing away with almost harmless.
However, when you have a situation in which bug A has dupes W and X, and bug B has dupes Y and Z, you cannot dupe A against B without manually reduping W and X against B first. I'd like us to detect that situation and handle it automatically, prompting the user first (he may be unaware of the fact) and then doing the magic.
Related branches
- Abel Deuring (community): Approve (code)
-
Diff: 1018 lines (+214/-276)31 files modifiedlib/canonical/launchpad/fields/__init__.py (+0/-11)
lib/canonical/launchpad/mail/commands.py (+21/-11)
lib/lp/bugs/browser/bug.py (+27/-0)
lib/lp/bugs/browser/tests/bug-subscription-views.txt (+1/-1)
lib/lp/bugs/browser/tests/bug-views.txt (+5/-4)
lib/lp/bugs/browser/tests/special/bugs-fixed-elsewhere.txt (+1/-1)
lib/lp/bugs/browser/tests/special/bugtarget-recently-touched-bugs.txt (+1/-1)
lib/lp/bugs/configure.zcml (+0/-2)
lib/lp/bugs/doc/bug.txt (+13/-14)
lib/lp/bugs/doc/bugactivity.txt (+9/-7)
lib/lp/bugs/doc/bugnotification-sending.txt (+3/-2)
lib/lp/bugs/doc/bugsubscription.txt (+2/-2)
lib/lp/bugs/doc/bugtask-package-bugcounts.txt (+1/-1)
lib/lp/bugs/doc/bugtask-search.txt (+1/-1)
lib/lp/bugs/doc/bugzilla-import.txt (+3/-4)
lib/lp/bugs/doc/checkwatches.txt (+2/-2)
lib/lp/bugs/doc/malone-karma.txt (+1/-1)
lib/lp/bugs/interfaces/bug.py (+3/-4)
lib/lp/bugs/model/bug.py (+3/-5)
lib/lp/bugs/scripts/bugimport.py (+2/-2)
lib/lp/bugs/scripts/bugzilla.py (+1/-1)
lib/lp/bugs/stories/duplicate-bug-handling/10-mark-bug-as-duplicate.txt (+0/-48)
lib/lp/bugs/stories/duplicate-bug-handling/20-show-bug-is-duplicate.txt (+0/-41)
lib/lp/bugs/stories/duplicate-bug-handling/xx-mark-duplicate-validation.txt (+0/-76)
lib/lp/bugs/tests/bug.py (+2/-1)
lib/lp/bugs/tests/bugs-emailinterface.txt (+1/-27)
lib/lp/bugs/tests/bugtarget-bugcount.txt (+1/-1)
lib/lp/bugs/tests/test_bugchanges.py (+6/-3)
lib/lp/bugs/tests/test_bugnotification.py (+1/-1)
lib/lp/bugs/tests/test_duplicate_handling.py (+102/-0)
lib/lp/registry/browser/tests/person-views.txt (+1/-1)
Changed in malone: | |
importance: | Undecided → High |
status: | Unconfirmed → Confirmed |
Changed in malone: | |
status: | Confirmed → Triaged |
Changed in malone: | |
status: | Triaged → In Progress |
assignee: | nobody → Deryck Hodge (deryck) |
Changed in malone: | |
milestone: | none → 10.06 |
Changed in malone: | |
milestone: | 10.07 → 10.08 |
Changed in malone: | |
status: | Fix Committed → Fix Released |
This is important; see bug 14911 for one of many examples of people not bothering with otherwise-obvious gardening because this is so inconvenient. This makes it unnecessarily complex to garden duplicates for often-duplicated bugs, which are the ones which need it most.