Refactoring scenario: move a file

When you move a file in a Dimensions project with attached deployment areas, Dimensions CM will also move the file on disk in any default deployment areas associated with the first stage. The file will continue to reside in its original location in areas associated with other stages.

When you promote this change to another stage, the move will take effect in the deployment areas for that stage. At that time the file will be removed from the original folder and will be placed in the new folder in areas for the selected stage.

Imagine that a Dimensions CM project contains two folders. One folder is called src and contains two files (src/main.java and src/trace.java). The other folder is called utils and only contains the file logging.java, and there are various revisions of these files promoted to different stages.

The following table shows what is in the main project and each area:

Project DEV SIT QA LIVE
src/main.java;4 src/main.java;4 src/main.java;3 src/main.java;2 src/main.java;1
src/trace.java;2 src/trace.java;2 src/trace.java;2 src/trace.java;1 src/trace.java;1
utils/logging.java;7 utils/logging.java;7 utils/logging.java;6 utils/logging.java;5 utils/logging.java;4

The filenames and folder locations are currently all the same in each area and earlier revisions have generally progressed further along the stage lifecycle than newer revisions.

Imagine that the user then moves src/trace.java to the utils folder. Only the project and the initial area are affected:

Project DEV SIT QA LIVE
src/main.java;4 src/main.java;4 src/main.java;3 src/main.java;2 src/main.java;1
utils/trace.java;2 utils/trace.java;2 src/trace.java;2 src/trace.java;1 src/trace.java;1
utils/logging.java;7 utils/logging.java;7 utils/logging.java;6 utils/logging.java;5 utils/logging.java;4

Next, a request is used to track the move, and that request is promoted to SIT. The project and area contents would now be:

Project DEV SIT QA LIVE
src/main.java;4 src/main.java;4 src/main.java;3 src/main.java;2 src/main.java;1
utils/trace.java;2 utils/trace.java;2 utils/trace.java;2 src/trace.java;1 src/trace.java;1
utils/logging.java;7 utils/logging.java;7 utils/logging.java;6 utils/logging.java;5 utils/logging.java;4

If all of the files in the src folder were moved into the utils folder and promoted to SIT, then the empty folder src would remain on disk in your deployment areas. There is no mechanism for the removal of empty folders from deployment areas.

Back to top