Как перенести репозиторий SVK в Git, с историей? - PullRequest
0 голосов
/ 19 августа 2009

У меня есть репозиторий svk, который был полон зеркал и местных жителей и т. Д., Я очистил его пошагово, потому что я пытаюсь от него избавиться и оцениваю, что должно остаться. Там есть только один проект, над которым я хочу продолжать работать, и для этого я хочу перенести его в git, чтобы я мог покончить с svk навсегда.

Он находится в //local/foo, у него нет svn-хранилища.

Итак, я думаю, что я хочу создать локальный пустой репозиторий SVN и перенести изменения из SVK в него, а затем использовать git svn, чтобы клонировать его.

Но это было так давно, когда я последний раз использовал svk Я больше не представляю, как это сделать.

Если бы один пользователь svk был так любезен, чтобы указать мне путь ...

Этот почти полезен, но он не фиксирует историю в svn, он просто делает один коммит.

1 Ответ

1 голос
/ 20 августа 2009

Хорошо, я понял:

# create a local svn repo
cd $HOME/src/svk
svnadmin create foosvn

# mirror that in svk
svk mirror file://$HOME/src/svk/foosvn //mirror/foosvn
svk sync //mirror/foosvn

# finally, merge your local svk path into the new svn repo
svk smerge --incremental --baseless //local/foo //mirror/foosvn

# Just to be sure things migrated properly:
svn log file://$HOME/src/svk/foosvn

# Now, from svn to git
git svn clone file://$HOME/src/svk/foosvn foogit

# Again, just to be sure things migrated properly:
cd foogit
git log --pretty=oneline --abbrev-commit

Вот и все. Затем я немного прибрался:

mv $HOME/src/svk/foogit $HOME/src/foo.git
rm -rf mv $HOME/src/svk
# This gets rid of your entire svk existence. 
# Be very sure you really want to do this.
rm -rf $HOME/.svk
...