Bash SVN 提交后钩子

Bash SVN 提交后钩子

我有一个有效的提交后挂钩 bash 脚本,该脚本将 Trac 实例与 SVN 提交的最新修订版同步。

#!/bin/sh

TRAC="/var/trac/"

REPOS="$1"
REV="$2"

if [[ "$REPOS" = "*TechReader*"]]; then trac-admin $TRAC"techreader" changeset added $REPOS $REV; fi
if [[ "$REPOS" = "*InteractEnglish*"]]; then trac-admin $TRAC"interactenglish" changeset added $REPOS $REV; fi

trac-admin $TRAC"egloo" changeset added $REPOS $REV

最后的trac-admin调用根据需要运行并更新内部 Trac 实例,但是 if 语句似乎不会触发 Trac 客户端实例的更新。

同步的命令相同,那么条件有问题吗?

答案1

经过一些调整,我能够正确执行此操作。请注意,为了进行测试,我用简单的 s替换了您的trac-admin调用。echo

#!/bin/bash

TRAC="/var/trac/"

REPOS="$1"
REV="$2"

if [[ "$REPOS" == *TechReader* ]]; then echo "first IF" $REPOS $REV; fi
if [[ "$REPOS" == *InteractEnglish* ]]; then echo "second IF" $REPOS $REV; fi

echo "done";

我做的改变

  • 將 bin/sh 修改為 bin/bash
  • 在 ]] 前添加一个空格
  • 删除第二个参数周围的引号

相关内容