Managing "evil twins"

"Evil twins" are two elements of the same name that have been created in different versions of the same directory element. When the directory versions are merged, it is not clear which twin has been lost, nor even that the twins may be different versions that need to be merged.

Evil twins can be inadvertently created in scenarios such as the following:

  • Two developers add a file of the same name to source control at the same time.
  • A clearsfimport -downcase operation imports some files that have names that are distinguished only by case. After downcasing, they become indistinguishable.
  • On Windows, when the MVFS is set to be case-sensitive and two files of the same name but different cases exist, both files cannot be loaded into a snapshot view. This is due to the fact that the names are indistinguishable in a snapshot view, which uses the case-insensitive Windows file system.

There are several ways to manage evil twins:

  • The checkvob -evil_twin command finds evil twins.
  • The protectvob command supports several options for managing evil twins; for example, to prevent their creation or to issue a warning when they are created.