Szukałem pokrewnych pytań, ale nie mogłem znaleźć niczego pasującego do mojej konkretnej sytuacji: Mam kilka starych archiwów repozytorium z serwera SVN, który został usunięty wiele lat temu. Są to paczki z oryginalną strukturą repozytorium na serwerze. Chciałbym przekonwertować je do repozytoriów git jako podstawę przyszłej pracy/ożywienia projektów. Przeczytałem już kilka tutoriali na temat procesu konwersji i myślę, że mogę wymyślić konwersję autorów, mapowanie gałęzi itp., Ale wszyscy zakładają, że masz serwer SVN i adres URL dla repozytorium. Czy muszę zainstalować i skonfigurować serwer SVN, aby wykonać tę konwersję, czy jest jakiś sposób, aby wskazać na git clone
(lub inne narzędzie) na repo Dump mam?Konwertowanie lokalnego pliku repo svn do git
Odpowiedz
zainstalować Subversion lokalnie, aby importować dum p, a następnie z pakietem git-svn.
Można użyć git svn clone file:///path/to/svn/repo /path/to/empty/dir
Już znalazłem to eksperymentowanie zeszłej nocy i działało, b ut to jest poprawna odpowiedź. Dzięki i + 1/zaakceptowany! Witamy w SO. :-) –
dziękuję bardzo! – Asenar
- Wszystko svn (?) -> Przetworniki git wymagają żywo repozytorium Subversion,
- Drzewo kopii repozytorium nie jest nora, to zwykle kopii zapasowej na poziomie plików.
Masz:
- Instalowanie i konfigurowanie dowolnego serwera Subversion (jeśli przetwornica nie może obsługiwać protokół
file:///
dla SVN, w przeciwnym razie nie jest to konieczne - wystarczy rozpakować archiwum (s) i sprawdzić repo z SVN klient) - Przeczytaj o git-svn
- Zastosowanie git-svn
Pobierz listę wszystkich committers Subversion:
svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > authors-transform.txt
sklonować repozytorium Subversion przy użyciu git-svn:
git svn clone [SVN repo URL] --no-metadata -A authors-transform.txt --stdlayout ~/temp
Konwersja svn: ignore właściwości .gitignore:
cd ~/temp
git svn show-ignore > .gitignore
git add .gitignore
git commit -m 'Convert svn:ignore properties to .gitignore.'
push repozytorium gołego repozytorium git:
git init --bare ~/new-bare.git
cd ~/new-bare.git
git symbolic-ref HEAD refs/heads/trunk
Następnie wciśnij repozytorium temp do nowej gołej repozytorium.
cd ~/temp
git remote add bare ~/new-bare.git
git config remote.bare.push 'refs/remotes/*:refs/heads/*'
git push bare
Zmień nazwę „pnia” branch „master”:
cd ~/new-bare.git
git branch -m trunk master
oczyścić gałęzie i tagi:
cd ~/new-bare.git
git for-each-ref --format='%(refname)' refs/heads/tags |
cut -d/-f 4 |
while read ref
do
git tag "$ref" "refs/heads/tags/$ref";
git branch -D "tags/$ref";
done
referencyjny: http://john.albin.net/git/convert-subversion-to-git
Take plik zrzutu w swoim zrywa:
svnadmin dump "repopath or url" > import.bkp git svn clone "back"
Przejdź do ścieżki klonu a następnie otwarty git bash i uruchomić te polecenia:
git svn show-ignore > .gitignore git add .gitignore git commit -m "with message" git check in "git url"
- 1. Jak znaleźć URL dla lokalnego repo GIT
- 2. Użyj git-svn z istniejącym repo brakującym .git/svn/
- 3. Wymuszenie nadpisania lokalnego pliku z jakiego źródła pochodzi repo?
- 4. Migracja Git-2-SVN?
- 5. mean.io git push repo
- 6. Instalowanie artefaktów Mavena do lokalnego repo programowo
- 7. Dodawanie struktury katalogu do SVN Repo
- 8. Nie można wcisnąć do Heroku po dodaniu pilota Heroku repo do mojego istniejącego lokalnego repo
- 9. Publikowanie repozytorium "git svn"
- 10. Jak dokonać repozytorium Git na pusty serwer SVN z repo?
- 11. Maven nie używa lokalnego repo
- 12. Konwersja Git Repo do Darcs
- 13. Skopiuj część repozytorium SVN do nowego repo?
- 14. Napisz bezpośrednio do zdalnego repozytorium Git, bez dodawania obiektów do lokalnego indeksu/repo?
- 15. Konwersja repo svn na git za pomocą reposurgeon
- 16. utwórz nowy oddział svn z git-svn
- 17. git: Uzyskaj bezwzględną ścieżkę pliku w stosunku do repo
- 18. Git-SVN: Zaktualizuj repozytorium Git ze scentralizowanego serwera SVN
- 19. git pull (tylko aktualizacja lokalnego pliku)
- 20. git initialize remote repo
- 21. Git push nie powiodło się po "git reset - hard HEAD ~ 1" lokalnego repo
- 22. Eksportuj repozytorium git do svn
- 23. Cloning git repo
- 24. Git zagnieżdżone repo
- 25. Reinitialize Git Repo
- 26. repo przy użyciu lokalnego manifestu nie działa
- 27. klon git svn z jednego katalogu repozytorium SVN
- 28. git svn braku migracji z svn 1.8
- 29. Git-svn - import pełną historię
- 30. "git rebase <branch>" na git svn repo zmienił cel zdalnego śledzenia?
edycja Standard VisualSVN Server jest darmowy, więc jest plan B. – Dialecticus
Myślę, że instalacja oryginalnego serwera SVN byłaby znacznie łatwiejsza niż ta .. –