SVN pre-commit hook for avoiding changes to tags subdirectories

前端 未结 11 643
陌清茗
陌清茗 2020-11-28 04:25

Is there anybody who has clear instructions on how to add a pre-commit hook that avoids changes to tags subdirectories?

I already searched the internet quite a bit.

11条回答
  •  遥遥无期
    2020-11-28 05:04

    Most of the previously written scripts are incomplete because several cases are not covered. This is my script:

    contains_tags_dir=`$SVNLOOK changed --copy-info -t "$TXN" "$REPOS" | head -1 | egrep "+\/tags\/.*$" | wc -l | sed "s/ //g"`
    
    if [ $contains_tags_dir -gt 0 ]
    then
      tags_dir_creation=`$SVNLOOK changed --copy-info -t "$TXN" "$REPOS" | head -1 | egrep "^A       .+\/tags\/$" | wc -l | sed "s/ //g"`
      if [ $tags_dir_creation -ne 1 ]
      then
        initial_add=`$SVNLOOK changed --copy-info -t "$TXN" "$REPOS" | head -1 | egrep "^A \+ .+\/tags\/.+\/$" | wc -l | sed "s/ //g"`
        if [ $initial_add -ne 1 ]
        then
          echo "Tags cannot be changed!" 1>&2
          exit 1
        fi
      fi
    fi
    

    It might seem complicated but you have to make sure that you are in /tags and you are allowed create /tags if it does not exist and all subsequent folders. Any other change is blocked. Almost none of the previous scripts cover all cases described in the Subversion book for svnlook changed ....

提交回复
热议问题