1,361
edits
| Line 927: | Line 927: | ||
Następnie można usunąć tymczasowe repozytorium lokalne. | Następnie można usunąć tymczasowe repozytorium lokalne. | ||
=== | === Połączenie istniejącego repozytorium git do FGAddon === | ||
{{Note| | {{Note|Scenariusz: Jesteś indywidualnym programistą lub liderem zespołu z dostępem do zatwierdzania FGAddon i chcesz połączyć istniejące wcześniej zdalne repozytorium git z FGAddon, aby wysłać wszystkie zmiany z powrotem do FGAddon.}} | ||
Jeśli istnieje już zdalne repozytorium git zawierające opracowany statek powietrzny, możliwe jest połączenie go ze zdalnym repozytorium FGAddon za pomocą narzędzi git-svn. Poniższy sposób wykorzystuje technikę [[#Dedykowana_gałąź_FGAddon|dedykowanej gałęzi FGAddon]]. Po pierwsze, należy skonfigurować most do FGAddon za pomocą git-svn w repozytorium per-statku powietrznego: | |||
{{#tag:syntaxhighlight| | {{#tag:syntaxhighlight| | ||
{{fgaddon source|cmd=git svn init|protocol=svn+ssh|login=<username>|type=svn|path=Aircraft/<aircraft>|full=1}} | {{fgaddon source|cmd=git svn init|protocol=svn+ssh|login=<username>|type=svn|path=Aircraft/<aircraft>|full=1}} | ||
| Line 937: | Line 937: | ||
}} | }} | ||
Gdzie <code><aircraft></code> jest nazwą katalogu statku powietrznego w FGAddon. Należy pamiętać, że ten krok można wykonać bez dostępu do zatwierdzania do FGAddon, używając zamiast tego adresu URL SVN tylko do odczytu, ale wtedy zmiany nie mogą zostać wypchnięte z powrotem do FGAddon ([[#Synchronizacja|dcommitowane]], jak to jest znane w terminologii git-svn). Pozwala to jednak na zintegrowanie zmian FGAddon ze zdalnym repozytorium git, ułatwiając w ten sposób przygotowanie zmian do przesłania w celu włączenia FGAddon za pomocą łatek wysłanych na listę mailingową lub wysłanych innymi kanałami. | |||
Teraz pobierz bieżący stan ze zdalnego repozytorium FGAddon: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git svn fetch | git svn fetch | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Pobrana historia SVN znajduje się w zdalnej gałęzi <code>remotes/git-svn</code>. Aby zatwierdzić zmiany w SVN, potrzebujesz lokalnej gałęzi, która śledzi tę zdalną gałąź. Utwórz lokalną gałąź <code>fgaddon</code>, której będziesz używać do zatwierdzania aktualizacji: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git branch fgaddon remotes/git-svn | git branch fgaddon remotes/git-svn | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Po zatwierdzeniu nowych rzeczy w gałęzi <code>master</code>, aby przekazać je do FGAddon, przełącz się na gałąź <code>fgaddon</code> i zaktualizuj ją z SVN na wypadek, gdyby ktoś inny dokonał zmian statku powietrznego w zdalnym repozytorium FGAddon: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git checkout fgaddon | git checkout fgaddon | ||
| Line 955: | Line 955: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Wybierz nowe zatwierdzenia z <code>master</code> do <code>fgaddon</code>, aby zachować liniową historię: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git cherry-pick <commit hash 1> | git cherry-pick <commit hash 1> | ||
| Line 963: | Line 963: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Aby zobaczyć zmiany ustawione w kolejce do wysłania do FGAddon jako zatwierdzenia lub diff, wpisz: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git log git-svn..HEAD | git log git-svn..HEAD | ||
| Line 969: | Line 969: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Jeśli wszystko wygląda w porządku, dcommituj lokalne zatwierdzenia w gałęzi <code>fgaddon</code>, aby wysłać je do zdalnego repozytorium FGAddon SVN: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git svn dcommit | git svn dcommit | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Przełącz się z powrotem do gałęzi głównej dla dewelopmentu lokalnego: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git checkout master | git checkout master | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Aby pobrać zmiany z upstreamu, można po prostu pobrać je za pomocą: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git svn fetch | git svn fetch | ||
</syntaxhighlight> | </syntaxhighlight> | ||
lub pobrać je i wyrównać (rebase) Twoją gałąź <code>fgaddon</code> do nich: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git checkout fgaddon | git checkout fgaddon | ||
edits