2015-12-14 3 views
1

Я пытаюсь перенести проект svn в git, и мне не удается перенести всю историю файлов, которые были скопированы внутри моего svn-репозитория.svn to git migration сохранение истории скопированного файла

мне удалось воспроизвести ошибку, я с следующими шагами:

# create a test repository 
svnadmin create test 

# checkout the project and create a file 
svn co svn://localhost/test 
cd test 
touch original.txt 
svn add original.txt 
svn commit -m "add original.txt" 

# add an item in the file's history 
echo "change 1" >> original.txt 
svn commit -m "change 1 in original.txt" 

# create a sub folder 
mkdir sub 
svn add sub 
svn commit -m "add sub" 

# cp original to sub 
svn copy svn://localhost/test/original.txt svn://localhost/test/sub/ 

# migrate to git 
cd .. 
git svn clone svn://localhost/test/sub test-sub 

Теперь, если я получаю историю GIT из original.txt Я вижу только:

> git log 
author: (no author) <(no author)@1505a309-be06-4361-bd01-fbca4a25f6d8> 
copy original.txt 

В то время как, если я получаю история СВН суб/original.txt Я вижу:

> svn log 
r4 | (pas d'auteur) 
copy original.txt 

r2 | (pas d'auteur) 
change 1 in original.txt 

r1 | (pas d'auteur) 
add original.txt 

Как я могу перенести эту папку мерзавцу сохраняя та же самая история, которую я вижу в svn?

ответ

0

Git действительно не отслеживает переименование или копирование файлов. Он просто пытается распознать, был ли файл скопирован или переименован с помощью heuristic-based approach.

Поскольку в Git нет истинного отслеживания переименования, есть chance of losing file history after renaming or copying it. Я предполагаю, что вы столкнулись с this particular scenario.

Смежные вопросы