diff options
Diffstat (limited to 'scripts/tree.rc')
| -rw-r--r-- | scripts/tree.rc | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/scripts/tree.rc b/scripts/tree.rc index 81f641c6..bbc2bd34 100644 --- a/scripts/tree.rc +++ b/scripts/tree.rc @@ -9,11 +9,16 @@ out=$4 fn checkstatus {} -wd=`{pwd} -cd $repo +git -C $repo read-tree --empty +git -C $repo update-index --index-info <$index +tree=`{git -C $repo write-tree} ; checkstatus +git -C $repo update-ref refs/tags/$tag $tree -git read-tree --empty -git update-index --index-info <$wd/$index -tree=`{git write-tree} ; checkstatus -git update-ref refs/tags/$tag $tree -ln -f refs/tags/$tag $wd/$out +if([ -e $out ]) { + oldtree=`{cat $out} ; checkstatus + if(~ $tree $oldtree) + exit 0 +} + +echo $tree >$out.tmp +mv $out.tmp $out |
