我在项目中引入git属性时遇到了一些问题。
我试图处理配置文件,具体取决于我们所在的分支机构。 (如果是开发环境,有效的集成等,则开发......)。
经过一些研究,我发现git属性的想法非常有用,尤其是filter属性。
所以现在,我正在尝试对此进行编码。实际上我有一些适合我的代码:
#!/bin/bash
############# Script parameters #############
while getopts "d" opt; do
case $opt in
d) source_conf="${branche}_dev_conf.txt" ; file_to_find="job_dev.properties" ;;
esac
done
########################################################
source_conf="${source_conf:-${branche}_conf.txt}"
file_to_find="${file_to_find:-job.properties}"
job_to_trt="$(find $PWD -type f -name $file_to_find)"
if [ ! -z "$job_to_trt" ] ; then
cp "$job_to_trt" "$backup_dir/$(basename $job_to_trt)"
while read key value
do
echo -e "\t key=$key, value=$value" >> "$log_file"
grep "$key=$value" "$backup_dir/$(basename $job_to_trt)" ; res="$?"
if (( $res != 0 )) ; then
sed -i "s|$key=.*|$key=$value|g" "$job_to_trt"
fi
done < "$util_dir/conf/$source_conf"
fi
if [ "$(ls $branche_dir | wc -l)" -gt 10 ] ; then
for dir in $(ls -t $branche_dir | tail -n $(($(ls $branche_dir | wc -l) - 10)))
do
rm -rf "$branche_dir/$dir"
done
fi
此脚本(取决于&#39; d&#39;参数)正在我的git项目中查找作业[_dev] .properties,并在必要时重置其中的一些变量。
此脚本在clean和smudge操作上执行。
但现在问题是,当我的其他人试图拉动项目时,两个文件的作业[_dev] .properties都是空的,我不明白为什么......
我错过了重要的事情吗?
有关信息: Git版本: git版本1.7.1
.gitattributes:
job.properties filter=LHRJob
job_dev.properties filter=LHRJobDev
.gitconfig(global):
[filter "LHRJob"]
clean = /data/atl_sncftn/utils/util_git/util_lhr/cleanJob.sh
smudge = /data/atl_sncftn/utils/util_git/util_lhr/cleanJob.sh
[filter "LHRJobDev"]
clean = /data/atl_sncftn/utils/util_git/util_lhr/cleanJob.sh -d
smudge = /data/atl_sncftn/utils/util_git/util_lhr/cleanJob.sh -d