7
edits
Line 337: | Line 337: | ||
{{caution|Git-svn erzeugt nicht immer einen Verlauf für das Verschieben oder Umbenennen von Dateien, wie es normalerweise bei einem Subversion Repository der Fall ist.}} | {{caution|Git-svn erzeugt nicht immer einen Verlauf für das Verschieben oder Umbenennen von Dateien, wie es normalerweise bei einem Subversion Repository der Fall ist.}} | ||
Das Problem basiert darauf, dass der SVN Verlauf deutlich robuster ist, als der von Git. Die <code>svn mv</code> und <code>git mv</code> Kommandos sind nicht identisch. Das Subversion Kommando speichert den Verlauf des Verschhiebens direkt im entsprechenden Repositorium. Git tut das jedoch nicht. Stattdessen verwendet Git heuristische Methoden, und versucht so den Verlauf '''nach dem Commit''' zu entdecken. Die Nutzung von SVN-Git führt also dazu, dass das Verschieben nicht registriert wird. Der FGAddon Verlauf zeigt stattdessen das eine Datei oder ein Verzeichnis gelöscht, während eine andere Datei bzw. ein anderes Verzeichnis neu angelegt wurde. Das führt außerdem dazu, dass die Größe des Backends des Repositoriums zunimmt. Das <code>svn mv</code> Kommando hingegen führt zu keinem nennenswerten Anstieg der Größe beim Repository-Backend. Möchtest Du einen besseren historischen Verlauf im FGAddon Reposity haben und gleichzeitig verantwortungsvoll mit der Backend-Größe umgehen, dann is es zu empfehlen, vorrübergehend zu den Subversion Tools zu wechseln. Dafür musst Du zunächst die Repositorien synchronisieren: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git svn dcommit | git svn dcommit | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Anschließend kannst Du die Datei oder das Verzeichnis im lokalen Repo verschieben oder umbennen: | |||
<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> | ||
Und einen Commit für die Änderungen durchführen: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
svn ci | svn ci | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Zurück im lokalen Git-SVN Repositorium kannst Du nun die Änderungen "pullen": | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git svn rebase | git svn rebase |
edits