git-svn-pomocnicy to zbiór narzędzi wiersza polecenia, które znacznie upraszcza przy użyciu git repozytoriów SVN.
Głównym celem git-svn-pomocników jest, aby ustawienie lokalnego repozytorium git po istniejącej SVN Checkout "nie myślenia".
Wiąże się to również za pomocą jednego repozytorium git-svn do pracy na wielu kas (zazwyczaj) z różnych branż i przełączanie między nimi.
Podstawowe użycie (przykład)
Streszczenie:
> Ścieżka cd / do / svn / repo
> Gitify
Oto przykładowa sesja:
> Cd / tmp
> Svn co https://svn.plone.org/svn/plone/plone.app.form/branches/1.1 plone.app.form
1.1 / setup.py
...
Wyrejestrowany 27228 rewizji.
> Plone.app.form cd
> Gitify
Nie repozytorium git znaleźć w /Users/tomster/.gitcache/.
Inicjowanie klonowania do pamięci podręcznej.
Analizowanie dziennika svn ...
Klonowanie https://svn.plone.org/svn/plone/plone.app.form/ z r10593: 27155 do /Users/tomster/.gitcache/
Zainicjowany repozytorium Git w /Users/tomster/.gitcache/plone.app.form/.git/ pusty
...
Git branch "local / 1.1 'obserwuje teraz oddział svn' 1.1 ':
# Na oddziale lokalnym / 1.1
nic nie popełnić (katalog roboczy czyste)
> Oddział git
* Local / 1.1
& Nbsp; mistrzem
Do zapamiętania:
& Nbsp; * gitify ograniczone klonowanie do zmian występujących w svn log z głównego pakietu (tutaj https://svn.plone.org/svn/plone/plone.app.form/). Duża oszczędność czasu, zwłaszcza na dużych repozytoriów (takich jak plone.collective)
& Nbsp; * gitify stworzył repozytorium git w ~ / .gitcache nie na miejscu
& Nbsp; * gitify stworzył lokalny oddział lokalny / 1.1, który śledzi (zdalne) oddział svn 1.1 i włączeniu do niego
Wiele check-out
W praktyce często można pracować z różnymi lokalnymi kopiami danego repozytorium, czyli w bagażniku i na oddział fabularnego. To wtedy katalog .gitcache stworzony przede przydaje. Przejdźmy nasz poprzedni kasę z drogi i stworzyć kasę konserwacyjnych, które następuje bagażnik:
> Cd ..
> Mkdir Oddział w funkcje
> Mv plone.app.form funkcje oddziału /
> Konserwacji mkdir
> Konserwacja cd /
> Svn co https://svn.plone.org/svn/plone/plone.app.form/trunk plone.app.form
Plone.app.form / setup.py
...
& Nbsp; U plone.app.form
Wyrejestrowany 27228 rewizji.
Co się stanie, jeśli będziemy działać gitify tutaj ?:
> Plone.app.form cd /
> Gitify
Git branch "local / trunk 'obserwuje teraz svn oddziałów" kufer ":
# Na oddziale lokalnym / bagażnika
nic nie popełnić (katalog roboczy czyste)
Zauważ, że ta operacja poszła znacznie szybciej, a teraz mamy stosować istniejące repozytorium git w katalogu pamięci podręcznej. To może być dalej świadczy patrząc na dostępnych lokalnych oddziałów teraz:
> Oddział git
& Nbsp; local / 1.1
* Local / bagażnika
& Nbsp; mistrzem
Ostrzeżenia
.git "Recykling" w ten sposób działa (być może zaskakująco) dobrze w praktyce, ale trzeba mieć na uwadze, co następuje:
Wszystkie Kasy podziela to indeks!
Rzućmy okiem na to, co to oznacza, poprzez przełączenie z powrotem do naszej funkcji oddziału:
> ../../feature-branch/plone.app.form/ Cd
> Git status
# Na oddziale lokalnym / bagażnika
# Zmienione ale nie zaktualizowane:
# (Wykorzystanie "git add / mb ..." w celu aktualizacji, co będzie zobowiązana)
# (Wykorzystanie "git checkout - ...", aby odrzucić zmiany w katalogu roboczym)
#
# Zmodyfikowane: docs / HISTORY.txt
...
# Usunięte: Plone / app / Formularz / KSS / testy / test_kss.py
...
#
# Nieśledzone pliki:
# (Wykorzystanie "git add ..." w celu włączenia w to, co będzie zobowiązana)
#
# Plone / app / Formularz / testy / test_kss.py
Wohah! Co się stało, że teraz wskazuje na .git bagażnik, a tym samym polecenie stanu pokazuje różnicę pomiędzy tym i naszego oddziału jako lokalnych modyfikacji, ponieważ to, co system plików reprezentuje. Możemy to sprawdzić za pomocą polecenia stanu subversions:
> Svn st
Uff! Wszystko w porządku! Ale co zrobić z git? Skończyliśmy pracę na pniu i chcesz wrócić do naszej funkcji oddziału, ale indeks git jest wszystko nie tak ?! Proste: wystarczy ponownie uruchomić gitify:
> Gitify
Git branch "local / 1.1 'obserwuje teraz oddział svn' 1.1 ':
# Na oddziale lokalnym / 1.1
nic nie popełnić (katalog roboczy czyste)
W zasadzie, to wszystko trzeba pamiętać podczas pracy z wieloma wymeldować tego samego pakietu:! Zawsze uruchomić gitify podczas przełączania się wymeldować
Co nowego w tym wydaniu :
- cannonical repozytorium jest teraz w https://github.com/collective. [Rossp]
- Fix obsługę podczas przełączania do oddziału git svn, że już ma lokalnego oddziału dla. [Rossp]
Co nowego w wersji 0.8:
- poleceń startowych podążać, jeśli repozytorium SVN jest przełączony w innej gałęzi. Dzięki Calvin Hendryx-Parker za zgłoszenie problemu. [Tomster]
Co nowego w wersji 0.7:
- Użyj pełnych kopii zamiast dowiązania symboliczne do tworzenia kopii roboczych. W ten sposób unika się kwestią o repozytorium git i svn zsynchronizowane podczas pracy z wielu kopii tego samego repozytorium i znacznie zmniejsza ryzyko kolizji.
- Oznacza to również, że teraz działa polecenie pobrania tylko na pamięci podręcznej bez modyfikacji kopii roboczej (co czyni go bezpiecznie uruchomić poprzez crontab, na przykład),
- Prowadzenie gitify przeciwko kopii roboczej w starym stylu spowoduje błąd. Po prostu usunięcie dowiązania i ponownie uruchomiony gitify środki zaradcze, które jednak.
- Innym efektem jest to, że polecenie init teraz potrzebne tylko raz dla każdej kopii roboczej (nie jest już konieczne, aby ponownie uruchomić komendę po włączeniu różnych kopii roboczych w tym samym repozytorium).
- gitify więc już domyślnie poleceniu startowym (tak jak nie git svn nic zrobić, ani w / o dostarczanie wyraźne działanie). Ponadto, została zmieniona z gitify (tylnym) init. [Tomster]
- Zezwalaj na pomoc, --version i pobrać poleceń uruchomić poza katalogów .svn [tomster]
Co nowego w wersji 0.5:
- Dodano polecenie gitify aktualizacja, która wykonuje git-svn rebase praca dla bieżącego SVN Checkout, ale obsługuje również niewykorzystane lokalne zmiany gracelully (git svn, ale w przeciwieństwie do jak svn nie)
- Nie dłużej używać modułu rejestracji na opinie użytkowników. Ten pomysł był raczej błędne,
Co nowego w wersji 0.4:
- refactored punkty wejścia po prostu używają gitify. Wszystkie inne polecenia są teraz pod-Komendy gitify:
- gs-commit został zastąpiony gitify naciśnięciem
- gs-fetch został zastąpiony gitify pobrać
- Dodane użytkowania i wyjście pomoc dla każdego polecenia.
- Usunięto punkt wejścia gs-klon jak to było zawsze tylko używany wraz z głównym dowództwem gitify tak.
- Użyj zamiast prawidłowego logowania po prostu drukowanie na stdout,
- Dodane kompleksowych testów, w tym testów funkcjonalnych, które obejmują cały aktualizacji / commit cykl klonowania repozytorium SVN i zatwierdzamy powrotem do niego.
Co nowego w wersji 0.3.1:
- Błąd: Nie używaj niestandardowych aliasów, jak Nie mogą być one zamontowane. Rozwiązuje ten http://github.com/tomster/git-svn-helpers/issues#issue/2
- Błąd: Jawnie listy elementtree w zależności rozwiązuje ten http://github.com/tomster/git-svn-helpers/issues#issue/1)
Co nowego w wersji 0.3 Beta:
- Dodano komendę, która pomaga zobowiązującego powrotem do gs-commit svn i git i svn utrzymywanie synchronizacji
Co nowego w wersji 0.2 Beta:
- Dodano komendę, która pomaga utrzymanie cache GS-fetch up-to-date,
Wymagania :
- Python
Komentarze nie znaleziono