One of my collegue check-in an exe in multiple places. Whenever we may need to check-in at multiple places, we normally would check-in that in one common place and then create symlink in all the other places.
But he is unaware of that practice and did it. He did that in his stream and delivered that to integration stream.
If we ask him to delete the file and replace it with symlink (then deliver it again to integration stream, will it lead to evil twins?
When evil twins will be created? In UCM if we create some file, is it not safe to delete at all (assume we did not apply baseline ,we just create and delivered) ?
They are created when you add a file with the same name in the same directory for two different branches.
This is not UCM specific, but it will make merges (or in UCM, deliver or rebase) harder because it will stop the merge at the "directory merge" step, asking you to choose between the two files (identically named) within the merged directory.
The problem of "adding to source control twice" a file is that is will generate two different object id, hence two different history: you won't be able to merge the file itself, you will only be able to delete one and keeping the other.
For more, see:
my collegue already delivered a file, if he deleted that in his stream and replace it with symlink and deliver again. Will it lead to evil twins?
Symlink is a good solution to restore the right file (as presented in cleartool ln
), but I usually do that symlink through a merge operation.
You can at any time:
Then you can deliver again, knowing that only the right file with the right oid will be propagated.
Will it lead to evil twins?
It would lead to an evil twin again only if the wrong file was chosen during the merge resolution of the previous deliver.
If the right file was preserved, and if you restore that right file following the process above, then the next deliver will proceed just fine.