В настоящее время я переношу репозитории и создал некоторые ключевые переменные для использования в моей транзакции Subversion, наиболее важными из которых являются сообщение Commit, и Date, которую я пытаюсь зафиксировать с этими переменными как часть svn ci
, сообщение довольно просто, поскольку я могу использовать сообщение svn ci -m"$(LOGMSG)"
, но я понятия не имею, как явно добавлять поля DATE и AUTHOR в коммит, может ли кто-нибудь помочь?BASH-переменные для фиксации SVN
for ((r=$CURREV; r<$ENDREV+1; r++))
do
git svn fetch -r $CURREV
# move whitelists subversion folder
find "$GIT_FOLDER" \
-mindepth 1 \
-maxdepth 1 \
-regextype posix-egrep \
-not -regex ".*/(${EXCLUDE_PATTERN})$" \
-exec mv -t "$SVN_FOLDER" '{}' '+'
# set opts for SVN logging
CID=$(git log --format=oneline |awk '{print $1}')
AUTHOR='Jd Daniel <[email protected]>'
DATE=$(git log --date=iso |grep 'Date' |awk -v N=2 '{sep=""; for (i=N; i<=NF; i++) {printf("%s%s",sep,$i); sep=OFS}; printf("\n")}')
LOGMSG=$(git log --oneline |awk -v N=2 '{sep=""; for (i=N; i<=NF; i++) {printf("%s%s",sep,$i); sep=OFS}; printf("\n")}')
# move to svn
cd $SVN_FOLDER
ADD=$(svn st |grep '?\|M' |awk '{printf "%s ", $2}'); [ -z "$ADD" ] || svn add $ADD
REM=$(svn st |grep 'D\|!' |awk '{printf "%s ", $2}'); [ -z "$REM" ] || svn rm $REM
# do commit
svn ci -m 'GIT ID: '$CID$'\n'$LOGMSG
break # just on rev for now
done
Попробуйте привязки python svn: http://stackoverflow.com/questions/1448894/subversion-python-bindings-documentation. Один парень здесь каким-то образом находит способ решить эту проблему: http://www.wandisco.com/svnforum/threads/38846-Change-svn-author-on-commit. И этот сценарий может дать концепцию: http://svn.apache.org/repos/asf/subversion/trunk/tools/examples/revplist.py – konsolebox