我有一个要求,我需要通过python将Clearcase特定版本的目录和子目录文件复制到另一个位置。当我使用shutil.copytree函数时,它会复制文件夹文件,但问题是它会将文件创建为目录类型。
ex:
source = "testfolder/@@/main/1"
destination = "/home/myid/test"
shutil.copytree(source, destination)
对于上面的代码,我将所有文件名称作为目录类型。
你能帮我解决一下如何将特定版本的文件夹复制到python或unix中的其他位置(clearcase)
答案 0 :(得分:0)
如果你可以从python执行系统命令,最好调用 clearfsimport
,这是为了将文件复制(和导入)到ClearCase视图(进行必要的结账) / mkelem /检入)
查看syntax example for this command here。
你可以在这里看到一个python包装器:erichschroeter/clearcase-wrapper-scripts/clearcase/import.py
答案 1 :(得分:0)
实际上,问题是您在副本中使用版本扩展命名。由于源目录是testfolder @@而不是testfolder,因此您已将CD放入 ELEMENT 目录中。执行此操作时,所有元素都将成为目录,分支将成为目录,版本将成为“文件”。
如果你有一个带有3个分支(main,br1和br2)的元素和每个分支上的2个版本,你会得到这样的结果:
foo.c @@(目录)
foo.c @@ / main(目录)
foo.c @@ / main / br1(目录)
foo.c @@ / main / br2(目录)
foo.c @@ / main / [0-2] as files
foo.c @@ / main / LATEST(以及文件上的任何其他标签)作为文件。
这实际上是动态视图中的合并工具如何访问当前视图未选择的贡献版本。在快照视图中,合并工具必须使用相当于“cleartool get -to”命令的方式下载它们。
避免将整个元素树拉过来的最佳方法是什么?使用视图选择要访问的目录版本。