我的项目具有以下结构
/project/config.mk
/project/dir1/config.mk -> ../config.mk
/project/dir2/config.mk -> ../config.mk
当我使用
diff
创建补丁文件时,/project/config.mk
被正确处理了,但两个符号链接出现了问题。它们都被视为新文件,差异部分是config.mk
文件的全部内容。我尝试查找diff
选项以禁用跟随符号链接,但没有这样的选项可用。欢迎提出任何建议。根据Overbose的建议,我创建了这个脚本。它能够正常工作。感谢大家抽出时间来回答。
#!/bin/sh -v
ori_dir=$1
new_dir=$2
patch_file=./patch_file
if [ -f ${patch_file} ]
then
rm ${patch_file}
fi
ori_files=`cd ${ori_dir} ; find ./ -type f ! -type l`
for i in ${ori_files} ; do
if [ -f ${ori_dir}/$i ]
then
if [ -f ${new_dir}/$i ]
then
diff -rup ${ori_dir}/$i ${new_dir}/$i >> ${patch_file}
fi
fi
done