1

我有两个不同的文件,每个文件都有自己的历史,我想将它们合并为一个,但保留两个历史。

例如(我的实际问题):在从旧的视觉工作室转换到新的视觉工作室之后,我有x.vcprojand x.vcxproj(我什至不记得这些是哪些了)。基本上在转换之后,我们一起停止使用旧格式。

那时应该做的是编写一个遍历所有转换项目的脚本(在向 clearcase 添加任何内容之前):

  • 签出 x.vcproj及其包含的文件夹。
  • 重命名x.vcxproj为一些临时文件,比如说x.vcxproj.temp
  • 用于cleartool重命名x.vcprojx.vcxproj
  • x.vcxproj_x.vcxproj.temp
  • 签入x.vcxproj文件。

这在当时就可以做到,但还没有做到,现在大多数<Project Name>.vcxproj已经有了自己的广泛历史。

这两个文件的历史可以统一起来,还有一些如何模拟上述流程?

视觉示例:

从:

x.vcproj                              x.vcxproj
 [main]                                 [main] 
   |                                      |
  (0)                                    (0)
   | \                                    | \
   |  \                                   |  \
   |  (0) [v1]                            |  (0) [v2]
   |   |                                  |   |
   |  (1)                                 |  (1) <<- First Node of x.vcxproj  
   |   | \                                |   |      
   |  (2) \                              (1)<(2) 
   |   |  (0) [v1.1]                      |   | \  
  (1)<(3)  |                              |   |  \ 
   |      (1)                             |   |  (0) [v2.1]
   |       |                              |   |   |
  (2)<----(2)                            (2)<(3)<(2)
   |                                      |       |  
  (3)                                    (3)<----(3)
   | \                                    | 
   |  \                                  (4) 
   |  (0) [v2]                            | \ 
   |   |                                  |  \
  (4)<(1) <<- Last node of x.vcproj       |  (0) [v3]
                                          |   |
                                         (5)<(1)

我想得到以下结果树:

x.vcproj -+-> x.vcxproj
       [main]           
         |                
        (0)               
         | \              
         |  \             
         |  (0) [v1]        
         |   |            
         |  (1)           
         |   | \          
         |  (2) \         
         |   |  (0) [v1.1]  
        (1)<(3)  |        
         |      (1)       
         |       |        
        (2)<----(2)       
         |                
        (3)               
         | \              
         |  \             
         |  (0) [v2]        
         |   |            
        (4)<(1) <<- Last node of x.vcproj          
         |   |
         |  (2) <<- First Node of x.vcxproj   
         |   |      Original Node (1) of [v2]
        (5)<(3) 
         |   | \  
         |   |  \ 
         |   |  (0) [v2.1]
         |   |   |
        (6)<(4)<(2)
         |       |  
        (7)<----(3)
         | 
        (8) 
         | \ 
         |  \
         |  (0) [v3]
         |   |
        (9)<(1)
4

1 回答 1

1

这两个文件的历史可以统一起来,还有一些如何模拟上述流程?

不是通过本机单个 cleartool 命令,而是使用脚本,该脚本将存在 x.vcxproj 和 x.vcproj 的文件夹:

  • 签出父文件夹
  • 删除 x.vcxproj
  • 签出 x.vcproj,将其重命名为 x.vcxproj,然后签入
  • 然后,对于 x.vcxproj 的每个版本,通读动态视图,访问父文件夹的先前版本(两个文件仍然存在的那个):
    • 结帐 x.vcxproj,
    • 用旧版本覆盖其内容x.vcxproj
    • 报到

用于:cleartool get_

cleartool get –to x.vcxproj /path@@/main/<previousVersion>/x.vcxproj@@/main/x
于 2021-08-03T13:18:59.293 回答