Shell 自动将2个svn目录合并到一个目录中
我有两个目录有相似的结构Shell 自动将2个svn目录合并到一个目录中,shell,svn,Shell,Svn,我有两个目录有相似的结构 ./projectA /directory1 /file1 /directory2 /file2 /file3 /file4 /directory3 /directoryA ./projectB /directory1
./projectA
/directory1
/file1
/directory2
/file2
/file3
/file4
/directory3
/directoryA
./projectB
/directory1
/directory2
/file3
/directory3
/directoryB
我想将projectA合并到projectB中。如果目录或文件存在于a中而不存在于B中,请执行svn从a复制到B的相应目标。如果a中的文件在B中有相应的文件,则回显警告。我怎样才能自动完成这项工作?它可以是shell脚本或工具
谢谢使用此命令,您可以获得
projectA
中但不在projectB
中的所有文件,忽略.svn
文件夹:
diff -qr projectA projectB --exclude=.svn | grep "^Only in projectA:" | cut -d: -f2 | sed 's/^ *//g
使用此命令,您可以获取两个文件夹中存在且不同的所有文件(即复制前可能需要检查的文件): 但是,第二个命令不适用于包含空格的文件
现在,您已经有了两个包含所需文件名的列表,您可以轻松地编写一个小脚本来处理它们。谢谢您的想法。最后,我们有文件名列表。我想改为diff-qr ProjectA ProjectB--exclude=.svn | grep“^仅在ProjectA中| sed's/仅在ProjectA//g'| sed's/:\s//\//g';这样我们就可以得到完整路径的列表。
diff -qr projectA projectB --exclude=.svn | grep "^Files " | cut -d" " -f2 | sed 's!projectA!!g'