注:而2路hunk則在"===="后加上1,2或3來指出引起不同的那個文件.
$diff3 sigrot.2 sigrot.1 sigrot.3
產(chǎn)生如下的輸出(在這里因為空間的原因?qū)敵鲎隽私財?:
====
1:3c
#Version 2.0
2:3c
#Version 1.0
3:3c
#Version 3.0
====1
1:9,10c
srcdir=$HOME/doc/signatures
srcfile=$srcdir/$sigfile
2:8a
3:8a
====1
1:12c
old=$(cat $srcdir/num)
2:10c
3:10c
old=$(cat num)
...
第一個hunk是3路hunk,其他的都是2路hunk.從sigrot.1或sigrot.3中生成sigrot.2時,必須把從sigrot.2中來的下面兩行添加到sigrot.1或sigrot.3的第8行后:
srcdir=$HOME/doc/signatures
srcfile=$srcdir/$sigfile
類似地,若要依據(jù)sigrot.2來生成sigrot.1,必須把sigrot.1的第10行改為sigrot.2中來的第12行.
可以使用-m或--merge選項來告訴diff3對文件進行合并,然后再手工對結(jié)果排序:
$diff3 -m sigrot.2 sigrot.1 sigrot.3 > sigrot.merged
程序清單6.7 使用diff3合并選項產(chǎn)生的輸出
#!/usr/local/bin/bash
#sigrot.sh
<<<<<<< sigrot.2
#Version 2.0
|||||||sigrot.1
#Version 1.0
=======
#Version 3.0
>>>>>>> sigrot.3
#Rotate signatures
#Suitable to be run via cron
############################
sigfile=signature
srcdir=$HOME/doc/signatures
srcfile=$srcdir/$srcfile
old=$(cat $srcdir/num)
let new=$(expr $old+1)
if [ -f $srcfile.$new ]; then
cp $srcfile.$new $HOME/.$sigfile
echo $new > $srcdir /num
else
cp $srcfile.1 $HOME/.$sigfile
echo 1 > $srcdir /num
fi
return 0
"<<<<<<<"標記對應(yīng)myfile,">>>>>>>"對應(yīng)yourfile,"|||||||"對應(yīng)oldfile.在本例中,只需要最新的版本號,為了成功合并3個版本,將刪除標記行和1.0及2.0版本指定的行.
$diff3 sigrot.2 sigrot.1 sigrot.3
產(chǎn)生如下的輸出(在這里因為空間的原因?qū)敵鲎隽私財?:
====
1:3c
#Version 2.0
2:3c
#Version 1.0
3:3c
#Version 3.0
====1
1:9,10c
srcdir=$HOME/doc/signatures
srcfile=$srcdir/$sigfile
2:8a
3:8a
====1
1:12c
old=$(cat $srcdir/num)
2:10c
3:10c
old=$(cat num)
...
第一個hunk是3路hunk,其他的都是2路hunk.從sigrot.1或sigrot.3中生成sigrot.2時,必須把從sigrot.2中來的下面兩行添加到sigrot.1或sigrot.3的第8行后:
srcdir=$HOME/doc/signatures
srcfile=$srcdir/$sigfile
類似地,若要依據(jù)sigrot.2來生成sigrot.1,必須把sigrot.1的第10行改為sigrot.2中來的第12行.
可以使用-m或--merge選項來告訴diff3對文件進行合并,然后再手工對結(jié)果排序:
$diff3 -m sigrot.2 sigrot.1 sigrot.3 > sigrot.merged
程序清單6.7 使用diff3合并選項產(chǎn)生的輸出
#!/usr/local/bin/bash
#sigrot.sh
<<<<<<< sigrot.2
#Version 2.0
|||||||sigrot.1
#Version 1.0
=======
#Version 3.0
>>>>>>> sigrot.3
#Rotate signatures
#Suitable to be run via cron
############################
sigfile=signature
srcdir=$HOME/doc/signatures
srcfile=$srcdir/$srcfile
old=$(cat $srcdir/num)
let new=$(expr $old+1)
if [ -f $srcfile.$new ]; then
cp $srcfile.$new $HOME/.$sigfile
echo $new > $srcdir /num
else
cp $srcfile.1 $HOME/.$sigfile
echo 1 > $srcdir /num
fi
return 0
"<<<<<<<"標記對應(yīng)myfile,">>>>>>>"對應(yīng)yourfile,"|||||||"對應(yīng)oldfile.在本例中,只需要最新的版本號,為了成功合并3個版本,將刪除標記行和1.0及2.0版本指定的行.