Попробуй, (только что понял)
1) проверить рабочую копию репозитория, который вы синхронизируете с
2a) сгенерируйте патч с помощью svn diff -rcurrent: затем из исходного репозитория
(таким образом, текущая является текущей версией, а следующая является следующей, которая повреждена)
тем не менее, большинство из найденных мной svn diff все еще работает
2b) или добавьте фиктивный файл в репозиторий, с которым вы синхронизируете, и отметьте его (чтобы вы могли
могу проверить что-нибудь)
3) выполните svn ci -m 'syncfix', который увеличит репозиторий, который вы синхронизируете с
4) после этого синхронизация svnsync будет продолжаться большую часть времени
5) иногда он будет жаловаться, что ГОЛОВА - это одна ревизия в будущем. Чтобы исправить это
перейти к / db / revprops / 0
отредактируйте файл 0,
chmod + w 0
поднять ревизию,
....
svn:sync-last-merged-rev
V 4
8499 <--- this one, add one to it so 8500 in this example
END
6) после этого синхронизация svnsync продолжится
7) ниже приведен скрипт, который я только что сделал, чтобы преодолеть неровности,
конечный результат, вероятно, не будет идеальным, но он получит большую часть материала.
затем вы можете исправить конечный результат, экспортировав в него из HEAD хранилища
Вы синхронизируете с.
set -x
SYNC_REPO=/repo/reelbox.org-sync
SRC_WD=/src/Multimedia/Reelbox/reelbox.org
SYNC_WD=/src/Multimedia/Reelbox/reelbox.org-sync
bumpRevision()
{
SYNC_REPO_FILE=$SYNC_REPO/db/revprops/0/0
cd $SYNC_WD
svn update
CUR_REV=`svn update | awk '{print $3}' | sed s/\.$//`
echo $CUR_REV
NEXT_REV=`expr $CUR_REV + 1`
echo $NEXT_REV
cd $SRC_WD
echo svn diff -r$CUR_REV:$NEXT_REV, >>SYNCLOG
svn diff -r$CUR_REV:$NEXT_REV 2>>SYNCLOG >$SYNC_WD/patch.in
echo >>SYNCLOG
LOG=`svn log -r$NEXT_REV`
cd $SYNC_WD
patch -p0 < patch.in
RESULT=`svn diff`
echo $LOG
echo $RESULT
if [ -n "$RESULT" ]; then
echo patched
svn ci -m "syncfix:$LOG"
else
echo not patched
if [ ! -f FIXFILE ]; then
echo $NEXT_REV > FIXFILE
svn add FIXFILE
else
echo $NEXT_REV >> FIXFILE
fi
svn ci -m "syncfix:nothing patched:$LOG"
fi
}
doSync()
{
svnsync sync file://$SYNC_REPO
STATUS=$?
if [ $STATUS == 1 ]; then
ECODE=`svnsync sync file://$SYNC_REPO 2>&1 | awk '{print $2}' | sed s/:$//`
echo $ECODE
case $ECODE in
E000022)
exit 1
;;
esac
fi
return $STATUS
}
# bumpRevision
doSync
while [ $? == 1 ]; do
bumpRevision
doSync
done
Ондрей Попп