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ąć.
2 answers
Najlepszy sposób pracy na repozytorium Subversion poprzez Git:
-
git svn init -s https://svn.repo/app/ myrepo
zakładając, że pod https://svn.repo/app / repo zawiera standard/trunk
,branches
oraztags
podkatalogi - 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). - 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ę.
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.
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