These are activities to generate the hard link profiles to use during extraction and generation validation. Some of the activities are designed to explore supported usage scenarios. The various content captures are designed to provide references for the user experience. These profiles are designed to verify the extraction and generation process. Multiple hard links to a single file should be suitable for isolation of the "interesting" cases. NOTE: Multiple extracts to capture intermediate state. Only 4 files are interesting: dx.in, dxraw.raw, fx.in, and fxraw.raw. They are saved with alternate suffixes to identify the sequence they relate to. NOTE: Be sure to use extracts that include hidden files (find -nvisible). NOTE: Content saves should be copies of the directory structure. This is to capture the user experience in case that becomes significant to the migration of content. NOTE: Save names are designed to be unique within a sequence so that the sequence can be modified without needing to change save references. >>> Context: * A unique VOB is best for isolation. A unique directory can also be used. The unique directory requires filtering when generating the .in extraction files. >>> Basic add * All operations are done relative to a top level directory call HL. * Config spec: main * Action: Create the subdirectory HL/Base. In Base create the file 'Source'. Content is the single line "Source line 1". * Check in. Use action text as comment. * Action: Create the subdirectory HL/Copy1. In Copy1 create a hard link to the file HL/Base/Source. * Check in. Use action text as comment. * Action: Create the subdirectory HL/Copy2. In Copy2 create a hard link to the file HL/Copy1/Source. Does this work? Or, must you hard link to HL/Source/Copy1? ANSWER: You can indeed crewate a hard link to the hard link. * Check in. Use action text as comment. Be sure to answer question in comment. * Action: Create the subdirectory HL/Copy3. In Copy3 create a hard link to the file HL/Base/Source. * Check in. Use action text as comment. * Extract. Save dxraw.raw and fxraw.raw using 'add.raw' as the suffix. Save dx.in and fx.in using 'add.in' as the suffix. dxdb.db and fxdb.db don't need to be generated or saved. * Capture HL directory structure contents as HL_A1. >>> Basic edit and branching. * Action: Check out HL/Copy2/Source. Change the content to 'Copy2 line 1'. * Check in. Use action text as comment. * Capture HL directory structure contents as HL_E1. * Config spec: branch HLb1 then main * Action: Check out HL/Base/Source. Change the content to 'Source line 2'. * Check in. Use action text as comment. * Capture HL directory structure contents as HLb1_E1. * Config spec: branch HLb2 then main * Action: Check out HL/Copy3/Source. Change the content to 'Copy3 line 1'. * Check in. Use action text as comment. * Capture HL directory structure contents as HLb2_E1. * Config spec: main * Capture HL directory structure contents as HL_E2. * Config spec: HLb1 then main * Capture a copy of the HL directory structure contents as HLb1_E2. * Extract. Save dxraw.raw and fxraw.raw using 'eb.raw' as the suffix. Save dx.in and fx.in using 'eb.in' as the suffix. dxdb.db and fxdb.db don't need to be generated or saved. >>> Deletes and renames. * Config spec: main. * Action: Delete HL/Copy3/Source. * Check in. Use action text as comment. * Capture HL directory structure contents as HL_DR1 * Config spec: HLb1 then main * Capture HL directory structure contents as HLb1_DR1 * Config spec: HLb2 then main * Capture HL directory structure contents as HLb2_DR1 * Config spec: HLb2 then main * Action: delete HL/Copy1/Source. * Check in. Use action text as comment. * Capture HL directory structure contents as HLb2_DR2 * Config spec: HLb1 then main * Capture HL directory structure contents as HLb1_DR2 * Config spec: main * Capture HL directory structure contents as HL_DR2 * Config spec: HLb2 then main * Action: Rename HL/Copy2/Source to HL/Copy2/Other_Copy2. * Check in. Use action text as comment. * Capture HL directory structure contents as HLb2_DR3 * Config spec: HLb1 then main * Capture HL directory structure contents as HLb1_DR3 * Config spec: main * Capture HL directory structure contents as HL_DR3 * Action: Rename HL/Base/Source to HL/Base/Other_Base. * Check in. Use action text as comment. * Capture HL directory structure contents as HL_DR4 * Config spec: HLb1 then main * Capture HL directory structure contents as HLb1_DR4 * Config spec: HLb2 then main * Capture HL directory structure contents as HLb2_DR4 * Extract. Save dxraw.raw and fxraw.raw using 'dr.raw' as the suffix. Save dx.in and fx.in using 'dr.in' as the suffix. dxdb.db and fxdb.db don't need to be generated or saved. >>> Merge * Config spec: as needed * Merge banch HLb1 back to main - all directories and files. * Check in. Use action text as comment. * Config spec: main * Capture HL directory structure contents as HL_M1 * Config spec: HLb1 then main * Capture HL directory structure contents as HLb1_M1 * Config spec: HLb2 then main * Capture HL directory structure contents as HLb2_M1 * Config spec: as needed * Merge branch HLb2 back to main - all directories and files. * Check in. Use action text as comment. * Config spec: main * Capture HL directory structure contents as HL_M2 * Config spec: HLb1 then main * Capture HL directory structure contents as HLb1_M2 * Config spec: HLb2 then main * Capture HL directory structure contents as HLb2_M2 * Extract. Save dxraw.raw and fxraw.raw using 'm.raw' as the suffix. Save dx.in and fx.in using 'm.in' as the suffix. dxdb.db and fxdb.db don't need to be generated or saved. >>> Directory hard links. * Config spec: main * Action: Create the directory HL/DB containing the four files 'file1', 'file2', 'file3', and 'file4' with the line 'HL content' as their content. * Action: Create the directory HL/D1 as a hard link to directory HL/DB. * Action: Create the directory HL/D2 as a hard link to directory HL/DB. * Action: Create the directory HL/D3 as a hard link to directory HL/DB. * Check in. Use the action texts as the comment. * Capture HL directory structure contents as HL_DA1. * Extract. Save dxraw.raw and fxraw.raw using 'da1.raw' as the suffix. Save dx.in and fx.in using 'da1.in' as the suffix. dxdb.db and fxdb.db don't need to be generated or saved. * Action: Checkout and edit the file HL/DB/file1. 'DB change' is the content. * Action: Checkout and edit the file HL/D1/file1. 'D1 change' is the content. Does this work? It is possible that the checkout will not be allowed. * Action: Checkout and edit the file HL/D1/file2. 'D1 change' is the content. * Action: Rename 'HL/D1/file1' to 'HL/D1/rnfile1'. No change of content. Does this work? It is possible that the checkout will not be allowed. * Action: Rename HL/D2/file3 to HL/D2/rnfile3. No change of content. * Action: Delete 'HL/D3/file1'. Does this work? It is possible that the delete will not be allowed. * Action: Delete 'HL/D3/file4'. * Check in. Use the action texts with answers as the comment. * Capture HL directory structure contents as HL_DA2. * Extract. Save dxraw.raw and fxraw.raw using 'da2.raw' as the suffix. Save dx.in and fx.in using 'da2.in' as the suffix. dxdb.db and fxdb.db don't need to be generated or saved. * Action: Rename HL/D1 to HL/rnD1. * Action: Edit HL/rnD1/file2. 'rnD1 change' is the content. * Check in. Use the action texts as the comment. * Capture HL directory structure contents as HL_DA3. * Extract. Save dxraw.raw and fxraw.raw using 'da3.raw' as the suffix. Save dx.in and fx.in using 'da3.in' as the suffix. dxdb.db and fxdb.db don't need to be generated or saved. * Config spec: HLb1 then main * Action: Edit HL/D1/file2. 'HLb1 change' is the content. * Action: Add the file HL/D2/file5. 'HLb1 content' is the content. * Action: Delete HL/D3. * Capture HL directory structure contents as HLb1_DA4. * Extract. Save dxraw.raw and fxraw.raw using 'da4.raw' as the suffix. Save dx.in and fx.in using 'da4.in' as the suffix. dxdb.db and fxdb.db don't need to be generated or saved. * Config spec: main * Action: delete HL/D2. * Capture HL directory structure contents as HL_DA5. * Extract. Save dxraw.raw and fxraw.raw using 'da5.raw' as the suffix. Save dx.in and fx.in using 'da5.in' as the suffix. dxdb.db and fxdb.db don't need to be generated or saved. * Config spec: as needed. * Action: Merge HLb1 changes to main. * Config spec: main * Capture HL directory structure contents as HL_DA6. * Extract. Save dxraw.raw and fxraw.raw using 'da6.raw' as the suffix. Save dx.in and fx.in using 'da6.in' as the suffix. dxdb.db and fxdb.db don't need to be generated or saved.