Frequently asked questions in regards to cross links.
1. Can you cross link an element from any stream within the depot into your workspaces?
ANS> Yes, through the include/exclude mode of a workspace, you can cross link an element into your workspace from any stream in the depot.
2. Are cross links inherited by child streams?
ANS> Yes, cross links will be inherited into child streams. If the child stream has a time-basis set before the cross link was created, the time-basis will block the inheritance.
3. Can cross links be promoted from a stream or workspace?
ANS> No, cross links are read-only and can not be promoted from a stream or workspace.
4. Is there a way the child stream or workspaces can change a cross link that was inherited from a parent stream?
ANS> A child stream or workspace cannot directly change a cross link from a parent stream, but they can cross link to a different source stream.
For example, if my backing stream cross links /./src to Rel_1, I can create a cross link in my workspace or child stream linking /./src to Rel_2 and see different content.
5. Can you cross links and element into your workspace even if the backing stream has not defined a cross link?
ANS> Yes, you can cross link an element in your workspace even though no crosslink exists in the backing stream
6. Are all cross linked files read-only?
ANS> Cross links are defined as read-only because you cannot perform any AccuRev write operations such as keep or promote.
7. Can you roll back the time of your workspace to see an earlier version of a cross linked element?
ANS> No. If you need an earlier version of a cross linked element, then you will need to change the source streams time basis to reflect the version you are looking for.
8. Are cross links preserved in snapshots?
ANS> Yes, cross links are preserved in snapshots.
9. Can you remove a cross links?
ANS> If you wish to remove a cross link from your workspace or stream, all you need to do is clear the cross link rule from the include/exclude filter.
10. Can you cross link to a cross link?
ANS> You can "chain" or nest cross links, but not within a single stream. For example, stream "GUI" can cross link the directory /./java to stream "JAVA". In the JAVA stream you can cross link /./java/com/product to stream "PRODUCT". But you cannot (in stream GUI) cross link /./java to stream "JAVA" and /./java/com/product to stream "PRODUCT".
11. Can you change or removed a cross link in your workspaces if they were updated from the backing stream.
ANS> You cannot directly change the cross link, but same caveat as (4), you can add a cross link in the workspace to cross link to a different stream.
12. Can cross links be used to create the initial version of an element in a stream or workspace?
ANS> No, the element must already exist in order to perform the cross link operation. This element must have the same eid as the element in the source stream. You cannot create a " dummy" files as a way to have an initial file to setup a cross link.
13. What is the best way to get a first copy of an element that will eventually be cross linked?
ANS> You can perform one of two methods:
1. You can inherit elements from a stream.
2. You can use the "Change Palette" to cross promote elements into a stream.
14. If you define a cross link in your workspace, and the backing stream for that workspace defines a different cross link for the same element(s), and you perform an update. Will you inherit the cross link from the backing stream and overwrite the one you set in the workspace?
ANS> No, see questions (4) and (11). Cross links are inherited, closest first. So if there is a file under the cross link in your workspace the product will get that version, not the version in the cross link in the backing stream.
15. Can you cross links a folder and have all elements in the folder be cross linked or do you need to cross link one element at a time?
ANS> You can cross link the folder and that will cross link all the contents of the folder recursively.
For more information contact AccuRev Support