#!/usr/bin/env bash
MANIFEST="AndroidManifest.xml"
if [ -f $MANIFEST ]
then
LINE=$(grep -o ${MANIFEST} -e 'android:versionCode="[0-9]*"');
declare -a LINE;
LINE=(`echo $LINE | tr "\"" " "`);
VERSION=(${LINE[1]});
INCREMENTED=$(($VERSION+1))
sed "s/android:versionCode=\"[0-9]*\"/android:versionCode=\"${INCREMENTED}\"/" $MANIFEST > $MANIFEST.tmp && mv $MANIFEST.tmp $MANIFEST
git add $MANIFEST
echo "Updated android:versionCode to ${INCREMENTED} in ${MANIFEST}";
fi
ただし、Windows SVNサーバー(VisualSVN)でTortoiseSVNを使用しているので、svnの事前コミットフックがこれを実行できるように、これを何らかの方法でcygwinコマンドに入れることができるかどうか疑問に思っていますか?私は cygwin をあまり使用していませんが、コミットがビルドされるたびにバージョン名を更新する方法を探しています。
編集:実際には、ツール呼び出し FART http://fart-it.sourceforge.net/を使用してテキストを検索および置換できるように見えるため、SVN pre-commit でバッチスクリプトを記述して検索および置換できる場合があります。テキストを置き換えます。
編集 #2: FART はもっと複雑です。最初のスクリプトを使用してみますが、「git add」を「svn add」に置き換えて、それが機能するかどうかを確認します。