![]() |
Telelogic DOORS (steve huntington) | ![]() |
new topic :
profile :
search :
help :
dashboard :
calendar :
home
|
||
Latest News:
|
|
Topic Title: Discard changes since last baseline Topic Summary: Created On: 13-Jun-2006 14:06 Status: Post and Reply |
Linear : Threading : Single : Branch |
![]() |
![]()
|
![]() Answer: I would avoid any sort of "undo" function that does not create history - even if it is possible. History is one of the best features of doors - and messing with your audit trail is a bad idea. If I wanted to "revert" to an earlier baseline I would do the following: Compare current version to the selected baseline. for each object that exists in both, copy all attributes accross from baselline to current version. if an object has been soft-deleted then undelete it if an object has been purged then you have no option but to issue a warning and maybe create a new object to replace it. move objects that have been moved. soft-delete objects that have been created since the baseline - again I would issue a warning for this. create a new baseline. Now you have the current version, showing no history, that is the same as the baseline. | |
![]() |
|
Hi,
Does anyone have a method for discarding all changes to a module since the last baseline? Thanks Neal |
|
![]() |
|
![]() |
|
Well, actually I have been thinking of the same problem as a DXL script. Here's what I have come up:
As the history is cleared at each baseline to revert to the baseline in DXL, you have to go through each object and roll back each change in history for each object (set the attribute value changed in that history record to be the current value for that attribute, similar as the Restore button in DOORS GUI). Of course these changes would then produce new history records... No implementation on this yet ;-) ------------------------- Pekka.Makinen@softqa.fi SoftQA Oy -http://www.softqa.fi/ |
|
![]() |
|
![]() |
|
We're also looking at doing a script for this, since it could be so useful. The algorithm that we had come up with was pretty much exactly the same as Pekka's. But, the fact that every change makes more history hadn't occurred to me, and it _is_ a little scary.
I was also looking through the history functions in the kitchen scripts for inspiration. I think one could just automate the "Undo changes on current object" script to go as far back as possible, for each object. One problem is that it leaves empty objects for any that were created. But it also gives some hope for avoiding history loops since it doesn't seem to have trouble with it. I think this has come up on the forums before... Chris |
|
![]() |
|
![]() |
|
I would avoid any sort of "undo" function that does not create history - even if it is possible.
History is one of the best features of doors - and messing with your audit trail is a bad idea. If I wanted to "revert" to an earlier baseline I would do the following: Compare current version to the selected baseline. for each object that exists in both, copy all attributes accross from baselline to current version. if an object has been soft-deleted then undelete it if an object has been purged then you have no option but to issue a warning and maybe create a new object to replace it. move objects that have been moved. soft-delete objects that have been created since the baseline - again I would issue a warning for this. create a new baseline. Now you have the current version, showing no history, that is the same as the baseline. ------------------------- Tony Goodman http://www.smartdxl.com |
|
![]() |
|
![]() |
|
Thanks! That was really complete description of what is needed.
The easiest way to revert to baseline is of course to copy the baseline as a new module and delete the existing current version ;-) ------------------------- Pekka.Makinen@softqa.fi SoftQA Oy -http://www.softqa.fi/ |
|
![]() |
|
![]() |
|
The only problem with copying a baseline to a new module is that the object ids are reset in the new module. So it would be a good idea to copy them to an attribute to preserve that information before you do it.
|
|
![]() |
|
![]() |
|
I like Goodman's approach. But if you wanted to plow through History you could do it as follows: loop for objects in the entire module. Loop through history of each object. For modify history, put into a skip list the attribute name and the (rich text) "old" value from history. Notice that when a 2nd history for that object attribute is detected, the skip put command will ignore the newer value, preserving the old. Since the History loop is sequencial move forward in time, you'll end up with a skip list with all the new values you want. Then loop through the skip updating that object's attribute values. Then go to the next object.
- Louie |
|
![]() |
Telelogic DOORS
» DXL Exchange
»
Discard changes since last baseline
|
![]() |
FuseTalk Standard Edition v3.2 - © 1999-2009 FuseTalk Inc. All rights reserved.