1,361
edits
| Line 400: | Line 400: | ||
Wewnętrznie Subversion identyfikuje pliki binarne za pomocą właściwości repozytorium <code>svn:mime-type</code>. Ponieważ jednak git-svn nie może ustawić tej właściwości podczas korzystania z polecenia <code>git add</code>, w rezultacie pliki binarne będą traktowane jako tekst. Różnice binarne będą widoczne podczas korzystania z <code>svn diff</code> lub <code>git diff</code>, a różnica binarna zostanie pokazana w komunikatach [[#FGAddon commitlog mailing list|listy mailingowej commitlog]]. Ponieważ problem ten nie jest unikalny dla git-svn, aby obejść ten problem należy zapoznać się z sekcją [[#Binarny_diff|Binarny diff]]. | Wewnętrznie Subversion identyfikuje pliki binarne za pomocą właściwości repozytorium <code>svn:mime-type</code>. Ponieważ jednak git-svn nie może ustawić tej właściwości podczas korzystania z polecenia <code>git add</code>, w rezultacie pliki binarne będą traktowane jako tekst. Różnice binarne będą widoczne podczas korzystania z <code>svn diff</code> lub <code>git diff</code>, a różnica binarna zostanie pokazana w komunikatach [[#FGAddon commitlog mailing list|listy mailingowej commitlog]]. Ponieważ problem ten nie jest unikalny dla git-svn, aby obejść ten problem należy zapoznać się z sekcją [[#Binarny_diff|Binarny diff]]. | ||
==== | ==== Protokoły inne niż svn+ssh ==== | ||
Polecenie <code>git svn init</code> replikuje całą historię statku powietrznego do lokalnego repozytorium. Jako część tego procesu, generuje git commit ID lub hash dla każdej rewizji Subversion. Problem polega na tym, że git commit ID zależy od protokołu używanego do odczytu z repozytorium Subversion (prawdopodobnie jest to błąd gita). Stąd: | |||
{{#tag:syntaxhighlight| | {{#tag:syntaxhighlight| | ||
| Line 409: | Line 409: | ||
}} | }} | ||
i | |||
{{#tag:syntaxhighlight| | {{#tag:syntaxhighlight| | ||
| Line 416: | Line 416: | ||
}} | }} | ||
spowoduje powstanie dwóch różnych i niekompatybilnych repozytoriów git, mimo że zawierają one te same dane. Niekompatybilność nie jest od razu widoczna, ale będzie problemem później. Załóżmy, że ktoś z dostępem tylko do odczytu do FGAddon używa metody https, a następnie prosi opiekuna FGAddon o zatwierdzenie swoich zmian. Opiekun naturalnie używa svn+ssh, ponieważ jest to jedyny protokół przyznający uprawnienia do zapisu. Gdy opiekun spróbuje scalić klon https z własnym klonem svn+ssh, git będzie narzekał, że oba repozytoria nie mają wspólnej historii i oznaczy każdą zmianę jako konflikt. | |||
Dlatego jeśli planujesz wprowadzić jakiekolwiek zmiany w statku powietrznym, upewnij się, że używasz svn+ssh, nawet jeśli nie masz jeszcze uprawnień do zatwierdzania w FGAddon. svn+ssh nie wymaga uprawnień do zapisu, wymaga jedynie identyfikatora użytkownika SourceForge. | |||
== FGAddon development concepts == | == FGAddon development concepts == | ||
edits