hg(1)
NAMN
hg – Mercurial, ett system för källkodshantering
SYNOPSIS
hg kommando [option]... [argument]...
BESKRIVNING
Kommandot hg ger ett kommandoradsgränssnitt till versionshanteringssystemet Mercurial.
Mercurial är ett distribuerat versionshanteringssystem. Det används för att lagra historik över filer, skapa ändringsuppsättningar, arbeta med grenar, klona förråd, hämta och skicka ändringar samt samarbeta med andra utvecklare.
KOMMANDOELEMENT
files...
- Anger ett eller flera filnamn eller relativa sökvägar. Se avsnittet om filnamnsmönster för information om mönstermatchning.
path
- Anger en sökväg på den lokala maskinen.
revision
- Anger en ändringsuppsättning. Den kan anges som revisionsnummer, tagg eller en unik delsträng av ändringsuppsättningens hashvärde.
repository path
- Anger antingen sökvägen till ett lokalt förråd eller en URI till ett fjärrförråd.
GLOBALA OPTIONER
-R, --repository REPO
- Ange rotkatalogen för förrådet eller namnet på en overlay-bundlefil.
--cwd DIR
- Byt arbetskatalog innan kommandot körs.
-y, --noninteractive
- Fråga inte interaktivt. Välj automatiskt det första alternativet vid alla frågor.
-q, --quiet
- Dämpa utmatning.
-v, --verbose
- Aktivera mer utförlig utmatning.
--color TYPE
- Ange när utmatning ska färgsättas. Värden kan vara exempelvis boolean, always, auto, never eller debug.
--config CONFIG[+]
- Sätt eller åsidosätt konfigurationsvärde. Använd formen:
sektion.namn=värde
Optionen kan anges flera gånger.
--debug
- Aktivera felsökningsutmatning.
--debugger
- Starta felsökare.
--encoding ENCODE
- Ange teckenkodning. Standard är UTF-8.
--encodingmode MODE
- Ange kodningsläge. Standard är strict.
--traceback
- Skriv alltid ut traceback vid undantag.
--time
- Mät hur lång tid kommandot tar.
--profile
- Skriv ut exekveringsprofil för kommandot.
--version
- Visa versionsinformation och avsluta.
-h, --help
- Visa hjälp och avsluta.
--hidden
- Ta hänsyn till dolda ändringsuppsättningar.
--pager TYPE
- Ange när sidvisare ska användas. Värden kan vara boolean, always, auto eller never. Standard är auto.
KOMMANDON
Skapa förråd
clone
Skapa en kopia av ett befintligt förråd.
hg clone [OPTION]... KÄLLA [MÅL]
Kommandot skapar en kopia av ett befintligt förråd i en ny katalog.
Om inget målkatalognamn anges används basnamnet för källan.
Platsen för källan läggs till i det nya förrådets fil:
.hg/hgrc
Den används som standardplats för framtida hämtningar.
Endast lokala sökvägar och URL:er av typen ssh:// stöds som mål. För ssh://-mål skapas ingen arbetskatalog eller .hg/hgrc på fjärrsidan.
Om källförrådet har ett bokmärke som heter @ kommer den revisionen normalt att checkas ut i det nya förrådet.
För att checka ut en särskild version används -u eller --update. För att skapa en klon utan arbetskatalog används -U eller --noupdate.
Exempel:
hg clone https://www.mercurial-scm.org/repo/hg/
Skapa en lätt lokal klon:
hg clone project/ project-feature/
Klona från en absolut sökväg på en SSH-server:
hg clone ssh://user@server//home/projects/alpha/
Gör en streaming-klon och checka ut en viss version:
hg clone --stream http://server/repo -u 1.5
Skapa ett förråd som bara innehåller historik fram till en viss revision:
hg clone -r 04e544 experimental/ good/
Klona och följ en namngiven gren:
hg clone https://www.mercurial-scm.org/repo/hg/#stable
Optioner för clone:
-U, --noupdate
- Klonen får en tom arbetskatalog. Endast förrådet skapas.
-u, --updaterev REV
- Revision, tagg eller gren som ska checkas ut.
-r, --rev REV[+]
- Klona inte allt, utan inkludera denna ändringsuppsättning och dess förfäder.
-b, --branch BRANCH[+]
- Klona inte allt, utan inkludera denna grens ändringsuppsättningar och deras förfäder.
--pull
- Använd pull-protokollet för att kopiera metadata.
--uncompressed
- Alias för --stream. Föråldrad.
--stream
- Klona med minimal databearbetning.
-e, --ssh CMD
- Ange vilket ssh-kommando som ska användas.
--remotecmd CMD
- Ange vilket hg-kommando som ska köras på fjärrsidan.
--insecure
- Verifiera inte servercertifikat.
init
Skapa ett nytt förråd i den angivna katalogen.
hg init [-e CMD] [--remotecmd CMD] [MÅL]
Kommandot initierar ett nytt förråd i den angivna katalogen. Om katalogen inte finns skapas den.
Om ingen katalog anges används aktuell katalog.
Det är möjligt att ange en ssh://-URL som mål.
Optioner:
-e, --ssh CMD
- Ange vilket ssh-kommando som ska användas.
--remotecmd CMD
- Ange vilket hg-kommando som ska köras på fjärrsidan.
--insecure
- Verifiera inte servercertifikat.
Hantering av fjärrförråd
incoming
Visa nya ändringsuppsättningar som finns i källan.
hg incoming [-p] [-n] [-M] [-f] [-r REV]... [--bundle FILNAMN] [KÄLLA]
Kommandot visar ändringsuppsättningar som finns i den angivna sökvägen eller URL:en, eller i standardplatsen för pull, men som ännu inte finns lokalt.
Detta är de ändringsuppsättningar som skulle ha hämtats med:
hg pull
Exempel:
Visa inkommande ändringar med patchar och full beskrivning:
hg incoming -vp
Visa inkommande ändringar utan sammanslagningar och spara en bundle:
hg in -vpM --bundle incoming.hg hg pull incoming.hg
Returnerar 0 om det finns inkommande ändringar, annars 1.
Alias:
hg in
outgoing
Visa ändringsuppsättningar som inte finns i målet.
hg outgoing [-M] [-p] [-n] [-f] [-r REV]... [MÅL]...
Kommandot visar ändringsuppsättningar som finns i det lokala förrådet men inte i det angivna målförrådet eller standardplatsen för push.
Detta är de ändringar som skulle skickas om en push gjordes.
Returnerar 0 om det finns utgående ändringar, annars 1.
Alias:
hg out
paths
Visa alias för fjärrförråd.
hg paths [NAMN]
Visar definitionen för det symboliska sökvägsnamnet NAMN. Om inget namn anges visas alla tillgängliga namn.
Sökvägsnamnen definieras i avsnittet [paths] i konfigurationsfiler, bland annat:
/etc/mercurial/hgrc .hg/hgrc
Namnen default och default-push har särskild betydelse. De används som standardplats vid pull och push när ingen plats anges på kommandoraden.
pull
Hämta ändringar från angiven källa.
hg pull [-u] [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [KÄLLA]...
Kommandot hämtar ändringar från ett fjärrförråd till det lokala förrådet.
Som standard uppdateras inte arbetskatalogen. Använd -u eller --update om arbetskatalogen ska uppdateras.
Om KÄLLA utelämnas används sökvägen default.
Viktiga optioner:
-u, --update
- Uppdatera till ny gren-head om nya efterföljare hämtades.
-f, --force
- Kör även om fjärrförrådet inte är besläktat.
--confirm
- Bekräfta pull innan ändringar tillämpas.
-r, --rev REV[+]
- Fjärrändringsuppsättning som ska läggas till.
-B, --bookmark BOOKMARK[+]
- Bokmärke som ska hämtas.
push
Skicka ändringar till angivet mål.
hg push [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [MÅL]...
Kommandot skickar ändringsuppsättningar från det lokala förrådet till det angivna målet.
Som standard tillåter push inte att nya heads skapas i målförrådet, eftersom flera heads kan göra det oklart vilken head som ska användas. I sådana fall bör man normalt först göra pull och merge.
Var försiktig med -f eller --force, eftersom det kan skicka alla nya heads på alla grenar och skapa förvirring för andra som samarbetar i förrådet.
serve
Starta en fristående webbserver.
hg serve [OPTION]...
Startar en lokal HTTP-server för att bläddra i och hämta från förrådet.
Detta kan användas för tillfällig delning och visning av förråd. För längre tids drift bör en riktig webbserver användas.
Observera att servern inte implementerar åtkomstkontroll. Som standard kan vem som helst läsa från servern och ingen kan skriva till den. För autentisering bör en riktig webbserver användas.
Skapa ändringar
commit
Spara angivna filer eller alla utestående ändringar i förrådet.
hg commit [OPTION]... [FIL]...
Kommandot sparar ändringar i de angivna filerna i förrådet. Till skillnad från centraliserade versionshanteringssystem är detta en lokal operation. För att distribuera ändringarna används hg push.
Om ingen fillista anges sparas alla ändringar som visas av:
hg status
Om inget commit-meddelande anges startar Mercurial den konfigurerade textredigeraren.
Exempel:
Spara alla filer som slutar på .py:
hg commit --include "set:**.py"
Spara alla icke-binära filer:
hg commit --exclude "set:binary()"
Ändra aktuell commit och sätt datum till nu:
hg commit --amend --date now
Viktiga optioner:
-A, --addremove
- Markera nya och saknade filer som tillagda eller borttagna innan commit.
--close-branch
- Markera en branch-head som stängd.
--amend
- Ändra föräldern till arbetskatalogen genom att skapa en ny commit.
-m, --message TEXT
- Använd texten som commit-meddelande.
-l, --logfile FIL
- Läs commit-meddelande från fil.
-d, --date DATE
- Registrera angivet datum som commit-datum.
-u, --user USER
- Registrera angiven användare som committer.
Alias:
hg ci
Ändringshantering
abort
Avbryt en oavslutad operation.
hg abort
Avbryter en flerstegsoperation, till exempel graft, histedit, rebase, merge eller unshelve, om den befinner sig i ett oavslutat tillstånd.
backout
Vänd effekten av en tidigare ändringsuppsättning.
hg backout [OPTION]... [-r] REV
Förbereder en ny ändringsuppsättning där effekten av revisionen REV tas bort i aktuell arbetskatalog.
Exempel:
Vänd effekten av arbetskatalogens förälder:
hg backout -r .
Vänd effekten av revision 23 men lämna ändringen osparad:
hg backout -r 23 --no-commit hg commit -m "Backout revision 23"
continue
Fortsätt en avbruten operation.
hg continue
Slutför en flerstegsoperation, till exempel graft, histedit, rebase, merge eller unshelve, om den är i ett avbrutet tillstånd.
graft
Kopiera ändringar från andra grenar till aktuell gren.
hg graft [OPTION]... [-r REV]... REV...
Kommandot använder Mercurials merge-logik för att kopiera enskilda ändringar från andra grenar utan att slå samman grenar i historikgrafen. Detta kallas ibland backporting eller cherry-picking.
Exempel:
Kopiera en enskild ändring till grenen stable och redigera beskrivningen:
hg update stable hg graft --edit 9393
Fortsätt efter att konflikter lösts:
hg graft -c
merge
Slå samman en annan revision i arbetskatalogen.
hg merge [-P] [[-r] REV]
Aktuell arbetskatalog uppdateras med alla ändringar som gjorts i den begärda revisionen sedan den senaste gemensamma föregångaren.
Efter en merge måste en commit göras innan ytterligare uppdateringar kan utföras. Nästa commit får två föräldrar.
För att ångra en ocommittad merge används:
hg merge --abort
Organisationskommandon
bookmarks
Skapa ett nytt bokmärke eller lista befintliga bokmärken.
hg bookmarks [OPTIONER]... [NAMN]...
Bokmärken är etiketter på ändringsuppsättningar som hjälper till att spåra utvecklingslinjer. De är inte versionshanterade och kan flyttas, bytas namn på och tas bort utan att de kopplade ändringsuppsättningarna påverkas.
Ett aktivt bokmärke markeras med *. När en commit görs flyttas det aktiva bokmärket till den nya commiten.
Exempel:
hg book new-feature hg book -i reviewed hg book -m turkey dinner
Alias:
hg bookmark
branch
Visa eller sätt aktuellt grennamn.
hg branch [-fC] [NAMN]
Utan argument visas aktuellt grennamn. Med ett argument sätts arbetskatalogens grennamn. Grenen finns inte i förrådet förrän nästa commit görs.
Observera att namngivna grenar är permanenta och globala. För lättviktiga markörer rekommenderas ofta bokmärken.
branches
Lista namngivna grenar i förrådet.
hg branches [-c]
Visar förrådets namngivna grenar och anger vilka som är inaktiva. Med -c eller --closed visas även stängda grenar.
phase
Visa eller ändra fas för ändringsuppsättningar.
hg phase [-p|-d|-s] [-f] [-r] [REV...]
Faser anger hur delbar en ändringsuppsättning är. Ordningen är:
public < draft < secret
tag
Lägg till en eller flera taggar för aktuell eller angiven revision.
hg tag [-f] [-l] [-m TEXT] [-d DATE] [-u USER] [-r REV] NAMN...
Taggar används för att namnge särskilda revisioner, till exempel versioner, utgåvor eller viktiga förgreningspunkter.
tags
Lista taggar i förrådet.
hg tags
Listar både vanliga och lokala taggar.
Filinnehåll
annotate
Visa ändringsinformation rad för rad för varje fil.
hg annotate [-r REV] [-f] [-a] [-u] [-d] [-n] [-c] [-l] FIL...
Kommandot visar vilken revision som ansvarar för varje rad i en fil. Det är användbart för att se när en ändring gjordes och av vem.
Alias:
hg blame
cat
Skriv ut aktuell eller angiven revision av filer.
hg cat [OPTION]... FIL...
Skriver ut de angivna filerna som de såg ut vid en viss revision. Om ingen revision anges används arbetskatalogens förälder.
copy
Markera filer som kopierade inför nästa commit.
hg copy [OPTION]... (KÄLLA... MÅL | --forget MÅL...)
Markerar målfilen som en kopia av källfilen. Om målet är en katalog placeras kopiorna där.
Alias:
hg cp
diff
Visa skillnader i förrådet eller valda filer.
hg diff [OPTION]... ([-c REV] | [--from REV1] [--to REV2]) [FIL]...
Visar skillnader mellan revisioner för angivna filer. Skillnader visas normalt i unified diff-format.
ANMÄRKNING OM DENNA ÖVERSÄTTNING
Manualsidan för hg(1) är mycket omfattande. Den innehåller en mycket lång fullständig referens över Mercurials kommandon, filnamnsmönster, revisionssyntax, templates, URL-format, extensions, faser, subrepositories, hgweb-konfiguration, merge-verktyg och flera tekniska avsnitt.
Denna MediaWiki-fil innehåller en svensk översättning av manualens inledning, globala optioner och de viktigaste kommandona i den del av manualen som inleds med förrådsskapande, fjärrförråd, commit, merge, taggar, grenar och grundläggande filkommandon.
FILER
Mercurial använder normalt en katalog med namnet:
.hg
i varje förråd. Där lagras förrådets metadata, konfiguration och historik.
Vanliga konfigurationsfiler är bland annat:
.hg/hgrc /etc/mercurial/hgrc ~/.hgrc
SE ÄVEN
Mercurials webbplats:
https://www.mercurial-scm.org/
KORT SAMMANFATTNING
hg är kommandoradsverktyget för Mercurial.
Skapa ett nytt förråd:
hg init
Klona ett förråd:
hg clone URL
Visa status:
hg status
Spara ändringar lokalt:
hg commit -m "Meddelande"
Hämta ändringar:
hg pull
Skicka ändringar:
hg push
Visa historik:
hg log