|Title||Refreshing fails after migration if new workflow doesn't match old workflow|
|Assigned user||Gareth Rees|
|Description||If 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.|
|Analysis||This 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.
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.
|Evidence||Found during testing of release 1.3.0.|
|Created by||Gareth Rees|
|Created on||2001-11-27 19:33:43|
|Last modified by||Gareth Rees|
|Last modified on||2001-12-10 20:00:02|
|History||2001-11-27 GDR Created.|
|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.|