Git-SVN: aktualizacja Git repo z centralnego serwera SVN

Pracuję nad projektem, dla którego każdy używa SVN jako scentralizowanego serwera i każdy pcha zmiany, które robi na tym serwerze. Chcę używać Git lokalnie i jestem całkiem nowy w git svn. Zrobiłem git svn clone z repozytorium z git svn clone -r HEAD https://svn.repo/app/branch i chcę zrobić aktualizację przez git.

Potrzebuję polecenia 'git pull like', ale do ściągnięcia z konkretnej rewizji repo serwera SVN. Czy istnieje również polecenie "fetch like" do pobrania z określonej wersji repo serwera SVN?

I nie mam żadnych .svn folderów w moim sklonowanym projekcie i git remote nic mi nie daje. Jednak zrobiłem git config -l i dostaję adres URL serwera SVN, więc jakoś jestem połączony z serwerem SVN. Nie wiem, jak aportować lub ciągnąć.

Dzięki!
Author: Jacob Krieg, 2013-05-31

2 answers

Najlepszy sposób pracy na repozytorium Subversion poprzez Git:

  1. git svn init -s https://svn.repo/app/ myrepo zakładając, że pod https://svn.repo/app / repo zawiera standard /trunk, branches oraz tags podkatalogi
  2. wykonaj git svn fetch w myrepo dopóki nie zostaną pobrane żadne commity (może to potrwać trochę czasu i czasami przerywać działanie pod Windowsem).
  3. Sprawdź konkretną gałąź lub pnia Subversion poprzez git checkout -b trunk remotes/trunk

Następnie możesz po prostu przeglądać, hakować i zatwierdzać do Repo Git zawiera wszystkie commity i gałęzie Subversion.

  • Aby pobrać nowe commity z SVN użyj git svn rebase
  • aby wypchnąć lokalne commity do SVN użyj git svn dcommit

Aby przejść do konkretnej rewizji Subversion, wystarczy przejrzeć historię za pomocą git log i wyszukać commit odzwierciedlający odpowiedni commit subversion. Możesz łatwo zauważyć rewizję Subversion w linii git-svn-id: komunikatu zatwierdzającego. Po prostu użyj git checkout <commithash>, aby wyraźnie sprawdzić tę wersję.

 41
Author: Benjamin Schmid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-31 15:22:26

Dobry początek:

Aby pobrać nowy commit svn do lokalnego repo : git svn rebase

Aby przesunąć lokalny commit do SVN : git svn dcommit

Prawdopodobnie będziesz musiał użyć git stash i git stash pop, przed użyciem dwóch powyższych komend, gdy twoja kopia robocza ma niezatwierdzone zmiany.

 11
Author: Guillaume Darmont,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-31 14:21:00