При этом: git svn dcommit committing wrong file?, теперь у меня есть одна - последняя версия в хранилище на стороне сервера SVN ошибочна; Я хотел бы удалить его. Я знаю, что могу сделать svnadmin dump/filter/load согласно How do I fix a repository with one broken revision?, но я надеялся, что есть более простое решение.Вручную удаляет только последнюю версию из онлайн-хранилища SVN?
Так что я попробовал этот тест:
cd /tmp
svnadmin create newRepo
svn co file:///tmp/newRepo newRepo-checkout
# Checked out revision 0.
cd newRepo-checkout/
echo aaa > AA.txt
svn add AA.txt
# A AA.txt
svn ci -m 'first commit'
# Adding AA.txt
# Transmitting file data .
# Committed revision 1.
echo bbb > BB.txt
svn ci -m '2ns commit'
svn add BB.txt
# A BB.txt
svn ci -m '2nd commit'
# Adding BB.txt
# Transmitting file data .
# Committed revision 2.
echo ccc > CC.txt
svn add CC.txt
# A CC.txt
svn ci -m '3rd commit'
# Adding CC.txt
# Transmitting file data .
# Committed revision 3.
Теперь, если я просто удалить соответствующие файлы последней ревизии (3) в дБ/оборотах дБ/Свойства ревизии, я получаю это:
$ cd ../newRepo
$ svnadmin verify .
* Verified revision 0.
* Verified revision 1.
* Verified revision 2.
* Verified revision 3.
$ ls db/revprops/0/
0 1 2 3
$ ls db/revs/0/
0 1 2 3
$ rm db/revs/0/3
$ rm db/revprops/0/3
$ svnadmin verify .
* Verified revision 0.
* Verified revision 1.
* Verified revision 2.
svnadmin: No such revision 3
Через некоторое оглавлению выясняется, есть файлы ./db/txn-current
и ./db/current
с содержанием «3», поэтому я стараюсь, чтобы изменить это:
$ echo 2 > ./db/current
$ echo 2 > ./db/txn-current
$ svnadmin verify .
* Verified revision 0.
* Verified revision 1.
* Verified revision 2.
... а также svn co file:///tmp/newRepo newRepo-checkout2
похоже работа.
Итак, мой вопрос: насколько разумно безопасно, или есть еще что-то относительно хранения ревизии на сервере SVN?
Файл 'db/current' может содержать другие записи в строке, в зависимости от формата файла subversion, см. Http://zeroset.mnim.org/2012/06/03/svn-repository-corruption-svndbcurrent- end-of-file-found/и http://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_fs_fs/structure – sdaau