【问题标题】:SVN Pre Commit search for a string in fileSVN Pre Commit 搜索文件中的字符串
【发布时间】:2019-06-06 03:32:54
【问题描述】:

我正在尝试为 SVN 存储库创建一个预提交挂钩,如果版本号包含 7.5,它将阻止提交

VERSIONNUM="<COMMENT>7.5"
grep -Fwq "$VERSIONNUM" APP.CFG
    then
    exit 1
    else
    exit 0
    fi

版本号位于 APP.CFG 文件中,行首是 7.5。我不想匹配整行,这就是为什么我在我的 grep 中使用 -w 的原因,我认为如果 $VERSIONNUM 位于文件中的任何位置,它只会返回一个匹配项

这是APP.CFG文件的内容

> <?xml version="1.0" encoding="utf-8"?> <APP AUTH="" PRODUCTS="2"
> VER="hmidesigner"> <VERSION AUTHOR="CODRA" DATE_NEUTRAL="01/11/2019
> 09:48:48" ID="CODRA.Panorama.Persist" SERIAL_VERSION="7">
> <COMMENT>7.5.17.0</COMMENT>

【问题讨论】:

  • 那么现在什么不起作用?
  • 它目前什么都不做,允许每次提交,无论它是否是 7.5 版
  • 所以APP.CFG 包含一行7.5?为什么要使用 &lt;COMMENT&gt; 字符串搜索?
  • 因为 APP.CFG 文件包含其他信息,它可能在其他地方包含 7.5,但它永远不会包含 7.5,除非它引用版本号
  • 脚本无效,因为if then else fi 构造缺少if 关键字,请尝试在grep 之前添加if

标签: bash svn tortoisesvn pre-commit-hook


【解决方案1】:

让它使用与我最初打算使用的方法略有不同的方法

SVNLOOK diff -t "$TXN" "$REPOS" | grep -i "<COMMENT>7.5." > /dev/null && { echo "Trying to Commit version 7.5" 1>&2; exit 1; }
    exit 0;

【讨论】:

    猜你喜欢
    • 2022-01-14
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    相关资源
    最近更新 更多