P4DTI issue job000422

TitleRefreshing fails after migration if new workflow doesn't match old workflow
Statusclosed
Prioritycritical
Assigned userGareth Rees
OrganizationRavenbrook
DescriptionIf you have fixes in Perforce with statuses other than "closed", and if you migrate your jobs from Perforce to the defect tracker and in doing so change the workflow so that some fix statuses disappear, then the P4DTI can't refresh the fixes after the migration.
AnalysisThis is because the set of legal statuses has changed as a result of migration, but the P4DTI hasn't translated the fix statuses accordingly. This is likely to happen during migration to Bugzilla, but less likely when migrating to TeamTrack because the TeamTrack workflow is configurable and so likely to correspond more closely to the old Perforce workflow.
This never happens with fixes to "closed" because we always make "closed" a valid state. So many organizations won't notice this. (This also explains why our test case passed.)
This is closely related to job000249.

Possible solutions:
1. Update Perforce jobspec so that every fix status appears as a valid job status (even if they are no longer in the workflow). Problem: distracting or misleading to P4Win users.
2. When replicating/migrating fixes from Perforce to the defect tracker, translate the fix status to something. Disadvantage: changes the meaning of the fix.
3. When replicating fixes from defect tracker to Perforce, notice if fix status is not valid and change it to somethig that is. Disadvantage: changes the meaning of the fix.
4. Change the way that refresh works so that it doesn't delete jobs that are about to be replicated anyway. Hence fixes don't go away and this issue will only come up when you delete a job and it gets re-replicated from the defect tracker.
How foundmanual_test
EvidenceFound during testing of release 1.3.0.
Observed in1.3.0
Introduced in1.3.0
Test procedure<http://www.ravenbrook.com/project/p4dti/master/test/test_p4dti.py>, section 17
Created byGareth Rees
Created on2001-11-27 19:33:43
Last modified byGareth Rees
Last modified on2001-12-10 20:00:02
History2001-11-27 GDR Created.

Fixes

Change Effect Date User Description
24539 closed 2001-11-28 21:15:41 Gareth Rees Don't delete jobs when refreshing, just update them. This avoids deleting fixes, and so prevents problems arising from fixes with old or otherwise invalid statuses.