1,361
edits
| Line 367: | Line 367: | ||
==== Przenoszenie lub zmiana nazwy plików ==== | ==== Przenoszenie lub zmiana nazwy plików ==== | ||
{{caution|Git-svn | {{caution|Git-svn nie zawsze zachowuje historię przenoszenia lub zmiany nazwy plików, która jest zwykle obecna w repozytorium Subversion.}} | ||
Problem ten wynika z faktu, że historia SVN jest bardziej solidna niż historia git. Polecenia <code>svn mv</code> i <code>git mv</code> nie są równoważne. Polecenie Subversion przechowuje historię przeniesień bezpośrednio w repozytorium, podczas gdy git tego nie robi (git zamiast tego używa metod heurystycznych, aby spróbować wykryć historię po zatwierdzeniu). Rezultatem używania git-svn jest to, że często przeniesienie nie zostanie wykryte, a historia FGAddon pokaże, że jeden plik lub katalog został usunięty, a inny dodany. Powoduje to również wzrost rozmiaru zaplecza repozytorium, podczas gdy <code>svn mv</code> nie spowoduje znaczącego wzrostu rozmiaru. Jeśli chcesz mieć lepszy zapis historyczny w repozytorium FGAddon i dbać o zaplecze repozytorium, zaleca się tymczasowe przejście na narzędzia Subversion. Po pierwsze, należy zsynchronizować repozytoria: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git svn dcommit | git svn dcommit | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Następnie w lokalnym repozytorium SVN przenieś lub zmień nazwę pliku: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
svn mv Aircraft/<aircraft>/<file_path1> Aircraft/<aircraft>/<file_path2> | svn mv Aircraft/<aircraft>/<file_path1> Aircraft/<aircraft>/<file_path2> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
I zatwierdzić zmianę: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
svn ci | svn ci | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Z powrotem w lokalnym repozytorium git-svn, pobierz zmiany za pomocą: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git svn rebase | git svn rebase | ||
edits