git-svn-helpers is 'n versameling van command line gereedskap wat baie vergemaklik die gebruik van git vir svn repositories.
git-svn-helpers se hoofdoel is om te maak oprigting van 'n plaaslike git bewaarplek aanleiding van 'n bestaande svn checkout 'n 'no-brainer.
Dit spreek ook die gebruik van 'n enkele git-SVN vir die werk op verskeie kassa van (gewoonlik) verskillende takke en skakel tussen hulle.
Basiese gebruik (voorbeeld)
Uitvoerende opsomming:
> Cd pad / na / svn / repokoers
> Gitify
Hier is 'n monster sessie:
> CD / tmp
> Svn mede https://svn.plone.org/svn/plone/plone.app.form/branches/1.1 plone.app.form
A 1.1 / setup.py
...
Nagegaan hersiening 27.228.
> Cd plone.app.form
> Gitify
Geen git bewaarplek gevind in /Users/tomster/.gitcache/.
Inisiëring kloning in die kas.
Ontleding van svn log ...
Kloning https://svn.plone.org/svn/plone/plone.app.form/ van r10593: 27.155 in /Users/tomster/.gitcache/
Geïnisialiseer leë Git Repository in /Users/tomster/.gitcache/plone.app.form/.git/
...
Git tak 'plaaslike / 1.1' is nou volgende svn tak '1.1':
# On tak plaaslike / 1.1
niks te pleeg (werk gids skoon)
> Git tak
* Plaaslike / 1.1
& Nbsp; meester
Punte om daarop te let:
& Nbsp; * gitify beperk die kloning van die wysigings wat in die svn log van die pakket wortel (hier https://svn.plone.org/svn/plone/plone.app.form/). 'N Groot tyd besparing, veral op 'n groot pakhuise (soos plone.collective)
& Nbsp; * gitify geskep om die git Repository op ~ / .gitcache nie in plek
& Nbsp; * gitify het 'n plaaslike tak plaaslike / 1.1 wat volg op die (remote) svn tak 1.1 en oorgeskakel na dit
Veelvuldige check-outs
In die praktyk sal jy dikwels werk met verskillende plaaslike kopieë van 'n gegewe bron, dws op romp en op 'n funksie tak. Dit is wanneer die .gitcache gids wat hierbo geskep handig te pas kom. Kom ons beweeg ons vorige afhandeling van die weg en die skep van 'n onderhoud afhandeling wat volg stam:
> Cd ..
> Mkdir funksie-tak
> Mv plone.app.form funksie-tak /
> Mkdir onderhoud
> Cd onderhoud /
> Svn mede https://svn.plone.org/svn/plone/plone.app.form/trunk plone.app.form
A plone.app.form / setup.py
...
& Nbsp; U plone.app.form
Nagegaan hersiening 27.228.
Wat gebeur as ons hardloop gitify hier ?:
> Cd plone.app.form /
> Gitify
Git tak 'plaaslike / stam' is nou volgende svn tak 'stam':
# On tak plaaslike / stam
niks te pleeg (werk gids skoon)
Merk dat hierdie operasie het baie vinniger as wat ons nou gebruik het om die bestaande git bewaarplek in die kas directory. Dit kan verder bewys word deur te kyk na die beskikbare plaaslike takke nou:
> Git tak
& Nbsp; plaaslike / 1.1
* Plaaslike / stam
& Nbsp; meester
Valkuilen
'Herwinning' .git op hierdie wyse werk (miskien verrassend) goed in die praktyk, maar jy moet die volgende in gedagte te hou:
Alle kassa deel dieselfde indeks!
Kom ons neem 'n blik op wat dit beteken deur oor te skakel terug na ons funksie tak:
> Cd ../../feature-branch/plone.app.form/
> Git status
# On tak plaaslike / stam
# Verander, maar nie opgedateer:
# (Gebruik "git voeg / RM ..." te werk wat verbind sal word)
# (Gebruik "git afhandeling - ..." veranderinge in werk gids te verwyder)
#
# Modified: docs / HISTORY.txt
...
# Weggelaat: Plone / app / vorm / KSS / toetse / test_kss.py
...
#
# Bijgehouden lêers:
# (Gebruik "git voeg ..." in te sluit in wat verbind sal word)
#
# Plone / app / vorm / toetse / test_kss.py
Wohah! Wat gebeur het, is dat .git wys nou stam en dus die status opdrag toon die verskil tussen dit en ons tak as plaaslike veranderinge, want dit is wat die lêerstelsel verteenwoordig. Ons kan dit toets deur die gebruik van subversions status opdrag:
> Svn st
Sjoe! Alles in orde! Maar wat om te doen met git? Ons het klaar die werk op romp en wil terug na ons funksie tak kry, maar die git indeks is alles verkeerd ?! Eenvoudig: net re-run gitify:
> Gitify
Git tak 'plaaslike / 1.1' is nou volgende svn tak '1.1':
# On tak plaaslike / 1.1
niks te pleeg (werk gids skoon)
Basies, dit is al wat jy nodig het om te onthou wanneer jy met verskeie check-outs van dieselfde pakket: Altyd hardloop gitify wanneer die skakel tussen check-outs
Wat is nuut in hierdie release :
- Die cannonical bewaarplek is nou in https://github.com/collective. [Rossp]
- Fix die hantering wanneer oor te skakel na 'n svn tak wat git het reeds 'n plaaslike tak vir. [Rossp]
Wat is nuut in die weergawe 0.8:
- Maak die init opdrag volg saam as die SVN is oorgeskakel na 'n ander tak. Danksy Calvin Hendryx-Parker vir die aanmelding van die saak. [Tomster]
Wat is nuut in die weergawe 0.7:
- Gebruik vol afskrifte plaas van simboliese skakels werk afskrifte te skep. Dit vermy die kwessie van wat die git en SVN uit sync wanneer met veelvuldige kopieë van dieselfde bron en aansienlik verminder die risiko van konflik.
- Dit beteken ook dat die haal opdrag nou net werk op die kas sonder om die wysiging van die werkende kopie (maak dit veilig om te loop via crontab, byvoorbeeld)
- Running gitify teen 'n ou-styl werkende kopie sal 'n fout maak. Eenvoudig die verwydering van die symlink en re-lopende gitify middels wat egter.
- 'n Ander effek, is dat die init opdrag is nou net een keer wat nodig is vir elke werk kopie (dit is nie meer nodig om weer uit te voer die opdrag na die skakel tussen die verskillende werkende kopieë van dieselfde bron).
- gitify dus nie meer standaard die init opdrag (net soos nie git of svn enigiets doen w / o die verskaffing n eksplisiete aksie). Ook, is dit herdoop van gitify (terug) na init. [Tomster]
- Laat die hulp, version en opdragte haal buite Svn dopgehou [tomster] om te hardloop
Wat is nuut in die weergawe 0.5:
- Bygevoeg gitify update opdrag, wat voer 'n git-svn rebase operasie vir die huidige svn checkout maar hanteer ook onbetrokke plaaslike veranderinge gracelully (anders git svn maar soos svn doen)
- nie meer die meld module vir die gebruiker terugvoer. Die idee was eerder verkeerde
Wat is nuut in die weergawe 0.4:
- Refactored die inskrywing punte tot net gebruik gitify. Alle ander opdragte is nou sub-opdragte van gitify:
- gs-pleeg is vervang met gitify druk
- gs-gelaai is vervang met gitify haal
- Bygevoeg gebruik en help uitset vir elke opdrag.
- verwyder die gs-kloon inskrywing punt as dit net ooit in elk geval gebruik saam met die belangrikste gitify opdrag.
- Gebruik behoorlike meld in plaas van net die druk te stdout
- Bygevoeg omvattende toetse, insluitende funksionele toetse wat die hele update dek / pleeg siklus van kloning 'n SVN en pleeg terug om dit te.
Wat is nuut in die weergawe 0.3.1:
- bugfix: Moenie persoonlike aliasse gebruik, soos hulle kan nie geïnstalleer word nie. Dit besluit http://github.com/tomster/git-svn-helpers/issues#issue/2
- bugfix: uitdruklik lys elementtree as afhanklikheid Dit besluit http://github.com/tomster/git-svn-helpers/issues#issue/1)
Wat is nuut in die weergawe 0.3 Beta:
- Bygevoeg die gs-pleeg opdrag wat help terug te verbind tot svn en hou git en SVN in sync
Wat is nuut in die weergawe 0.2 Beta:
- Bygevoeg die gs-haal opdrag wat help om die kas up-to-date
Vereistes :
- Python
Kommentaar nie gevind