2014-10-05 14 views
0

Я перенесил репозиторий с сервера 1 на сервер 2 с помощью svnadmin dump/load cycle, но я просто сбросил последние 100 реверсий (600 ~ 700). Я обнаружил, что новая ревизия репозитория была от 1 до 100, а не от 600 до 700. Вот проблема, после переноса рабочей копии, я обновляю ее, а затем получаю ошибку «Нет такой версии 700». Похоже, новая ошибка версии репозитория?svn migrating но дамп часть репозитория

Любые предложения?

ответ

1

кажется, что вам нужно generate empty padding revisions для вашего SVN репо перед загрузкой отвала:

Однако, когда он загружается обратно в новое хранилище (svnadmin load mynewrepo < repo.dump), пересмотры перенумеровываются начиная с 1, так что что было ревизией 1234, становится ревизией 1. Это нежелательно, так как у меня есть существующие ошибки и изменения, относящиеся к номерам ревизий SVN, поэтому я создал небольшой скрипт (svn-generate-empty-revisions), чтобы создать несколько пустых ревизий.

При использовании, это наиболее полезно для сращивания его выход в начале в SVN отвала, например:

svnadmin dump -r 1234:HEAD /path/to/repo > repo.dump 
# Extract the first few lines of the dump, which contain metadata 
head -n 4 repo.dump > repo-padded.dump 
# Splice in some empty "padding" revisions to preserve revision numbering 
# Note that the first revision is 1234, so we want 1233 empty revisions at start 
./svn-generate-empty-revisions.sh 1233 >> repo-padded.dump 
# Add the rest of the original repository dump to the file 
tail -n +4 repo.dump >> repo-padded.dump 

svn-generate-empty-revisions сам скрипт:

#!/bin/bash 
# Generate a number of empty revisions, for incorporation into an SVN dump file 
# 2011 Tim Jackson <[email protected]> 

if [ -z "$1" ]; then 
    echo "Usage: svn-generate-empty-revisions.sh NUMREVISIONS [TIMESTAMP]" 
    exit 1 
fi 

timestamp=$(date +%Y-%m-%dT%H:%M:%S.000000Z) 
if [ ! -z "$2" ]; then 
    timestamp=$2 
fi 

for i in $(seq 1 $1); do 
cat <<EOF 
Revision-number: $i 
Prop-content-length: 112 
Content-length: 112 

K 7 
svn:log 
V 38 
This is an empty revision for padding. 
K 8 
svn:date 
V 27 
$timestamp 
PROPS-END 

EOF 
done 
+0

убедитесь, чтобы сделать новый исполняемый файл: 'chmod + x svn-generate-empty-revisions.sh' – avs099