git-svn-pomocníci je kolekce nástrojů příkazového řádku, který výrazně zjednodušuje používání Git pro SVN repozitáře.
Hlavním cílem git-svn-pomocníky je, aby zřízení místní git repozitáře po stávající svn checkout "ne-nasnadě".
Zabývá se také použitím jediného git-svn úložiště pro práci na více pokladen na (obvykle) různých oborech a přepínání mezi nimi.
Základní použití (příklad)
Shrnutí:
> Cd cesta / k / svn / repo
> Gitify
Zde je ukázka sezení:
> Cd / tmp
> Svn co https://svn.plone.org/svn/plone/plone.app.form/branches/1.1 plone.app.form
1.1 / setup.py
...
Odhlásila revize 27.228.
> Cd plone.app.form
> Gitify
No git repository nalezen v /Users/tomster/.gitcache/.
Zahájení klonování do mezipaměti.
Analýza log svn ...
Klonování https://svn.plone.org/svn/plone/plone.app.form/ z r10593: 27.155 do /Users/tomster/.gitcache/
Inicializace prázdné Git repository v /Users/tomster/.gitcache/plone.app.form/.git/
...
Git branch "local / 1.1" je nyní následující svn pobočkou "1.1":
# Na větvi local / 1.1
nic, co by spáchat (pracovní adresář clean)
> Git branch
* Local / 1.1
& Nbsp; master
Důležité body:
& Nbsp; * gitify omezuje klonování k revizím nalezené v svn log kořene balíčku (zde https://svn.plone.org/svn/plone/plone.app.form/). Velký šetří čas, a to zejména na velkých úložišť (např plone.collective)
& Nbsp; * gitify vytvořil git repozitáře v ~ / .gitcache není na místě
& Nbsp; * gitify vytvořil místní pobočku local / 1,1, který následuje (dálkově) svn větev 1.1 a přešel k ní
Více check-out
V praxi budete často pracovat s různými místními kopie daného úložiště, tedy na trupu a na celovečerním větvi. To je, když adresář .gitcache vytvořili výše přijde vhod. Pojďme náš předchozí pokladna z cesty a vytvořit checkout údržby, který následuje kufr:
> Cd ..
> Mkdir funkce, větev
> Mv plone.app.form feature-větev /
> Údržba mkdir
> Údržba 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
Odhlásila revize 27.228.
Co se stane, když narazíme gitify sem ?:
> CD plone.app.form /
> Gitify
Git branch "local / trunk" se nyní po svn pobočkou "kufru":
# Na větvi local / kufru
nic, co by spáchat (pracovní adresář clean)
Všimněte si, že tato operace šlo mnohem rychleji, protože jsme nyní použili existující repozitář v adresáři mezipaměti. Toto může být dále doloženo pohledu na dostupných pobočkách nyní:
> Git branch
& Nbsp; local / 1.1
* Local / trunk
& Nbsp; master
Upozornění
"Recyklací" .git tímto způsobem funguje (možná překvapivě), v praxi dobře, ale je třeba mít na paměti následující:
Všechny pokladny mají stejný index!
Pojďme se podívat na to, co to znamená přechodem zpět k našemu funkce pobočce:
> Cd ../../feature-branch/plone.app.form/
> Stav git
# Na větvi local / kufru
# Změnit, ale není aktualizován:
# (Použijte "git add / rm ..." aktualizovat, co se bude spáchán)
# (Použijte "git checkout - ..." se zbavit změny v pracovním adresáři)
#
# Upravené: docs / history.txt
...
# Vypouští: Portál / app / form / KSS / testy / test_kss.py
...
#
# Nesledovaná soubory:
# (Použijte "git přidat ...", aby do toho, co se bude spáchán)
#
# Plone / app / form / testy / test_kss.py
Wohah! Co se stalo, je, že .git nyní ukazuje na kufru a tím příkaz status ukazuje rozdíl mezi tím i našeho oboru jako místní úpravy, protože to je to, co souborový systém reprezentuje. Můžeme ověřit pomocí příkazu status subverze:
> Svn st
Uf! Všechno v pořádku! Ale co dělat s git? Dokončili jsme práce na kufru a chtějí se dostat zpátky do našeho funkce pobočce, ale index git je všechno špatně ?! Jednoduchý: stačí znovu spustit gitify:
> Gitify
Git branch "local / 1.1" je nyní následující svn pobočkou "1.1":
# Na větvi local / 1.1
nic, co by spáchat (pracovní adresář clean)
V podstatě, to je vše, co potřebujete mít na paměti při práci s více odhlášením stejného balíčku: při přepínání mezi odhlášením Vždy spouštět gitify
Co je nového v této verzi :
- cannonical Úložiště je nyní v https://github.com/collective. [Rossp]
- Při přepnutí svn větev, která Git už má místní pobočku pro Opravit manipulaci. [Rossp]
Co je nového ve verzi 0.8:
- Zkontrolujte, příkaz init následovat, pokud byl svn repository přešel na jinou větev. Díky Calvin Hendryx-Parker pro nahlášení problému. [Tomster]
Co je nového ve verzi 0.7:
- Použít úplné kopie místo symbolické odkazy k vytvoření pracovní kopie. Tím se zabrání problém mít git a svn repozitář synchronizován při práci s více kopií stejného úložiště a výrazně snižuje riziko konfliktů.
- To také znamená, že načtení příkaz nyní pracuje pouze v mezipaměti bez úpravy pracovní kopii (takže je bezpečný pro provoz přes crontab, například)
- Běh gitify proti pracovní kopii starého typu se ohlásí chybu. Pouhé smazání symbolický odkaz a re-běh gitify nápravná opatření, která, jakkoli.
- Dalším efektem je, že příkaz init je nyní zapotřebí jen jednou na každé pracovní kopii (to již není nutné znovu spustit příkaz po přepnutí mezi různými pracovními kopií stejného úložiště).
- gitify tedy již ve výchozím nastavení příkaz init (stejně jako ani git svn ani nic dělat w / o dodávání explicitní akci). Také byl přejmenován z gitify (zpět) init. [Tomster]
- Povolit nápovědy, --version a přinést příkazy, které budou mimo .svn adresáře [Tomster]
Co je nového ve verzi 0.5:
- Přidán příkaz gitify aktualizace, která provádí git-svn rebase Provoz pro aktuální svn pokladny, ale také zpracovává nepotvrzené lokální změny gracelully (na rozdíl od git svn, ale stejně jako svn dělá)
- No dále používat protokolování modul pro zpětnou vazbu uživatelů. Tato myšlenka byla poněkud zavádějící
Co je nového ve verzi 0.4:
- refactored vstupní body jen použít gitify. Všechny ostatní příkazy jsou nyní dílčí příkazy gitify:
- gs-commit byl nahrazen gitify Push
- gs-fetch byl nahrazen gitify přinést
- Přidáno využití a pomoc výstup pro každý příkaz.
- Odstraněno vstupní gs-klon bod, protože to bylo vždy jen použit spolu s hlavním gitify příkazu tak jako tak.
- Použijte místo správného záznam toho jen tisk na stdout
- Přidáno komplexní vyšetření, včetně funkčních testů, které pokrývají kompletní aktualizaci / commit cyklus klonování SVN repozitář a páchání zpět.
Co je nového ve verzi 0.3.1:
- BUGFIX: Nepoužívejte vlastní aliasy, as oni nemusí být nainstalovány. To řeší http://github.com/tomster/git-svn-helpers/issues#issue/2
- BUGFIX: Explicitně seznam elementtree jako závislost To řeší http://github.com/tomster/git-svn-helpers/issues#issue/1)
Co je nového ve verzi 0.3 Beta:
- doplněn příkaz, který pomáhá zavazující zpět na GS-spáchat svn a udržení git svn a synchronizovaně
Co je nového ve verzi 0.2 Beta:
- Přidáno příkaz, který pomáhá udržovat paměť GS-fetch up-to-date
Požadavky na :
- Python
Komentáře nebyl nalezen