Benutzer-Werkzeuge

Webseiten-Werkzeuge


becki:linux:mercurial_tips

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
becki:linux:mercurial_tips [2015-02-19 14:06]
becki
becki:linux:mercurial_tips [2018-05-15 15:49] (aktuell)
becki [Undoing Changes]
Zeile 122: Zeile 122:
 [[http://​mercurial.selenic.com/​wiki/​QuickStart#​Setting_up_a_new_Mercurial_project|Source]] [[http://​mercurial.selenic.com/​wiki/​QuickStart#​Setting_up_a_new_Mercurial_project|Source]]
  
 +==== Templates and Styles ==
 +
 +Log-like commands can be formatted with froatting strings, wich ar called templates. A style is simply a precanned template. Command to list all installed styles:
 +
 +  hg log --template list
 +
 +Command to incluce phase info into the log:
 +
 +  hg glog --template phases
 +  hg glog -T phases
  
 ==== Converting Repo from CVS == ==== Converting Repo from CVS ==
Zeile 221: Zeile 231:
 ''​hg histedit''​ e.g. for merging serveral changesets into one. See [[hg>​wiki/​HisteditExtension|Wiki]] ''​hg histedit''​ e.g. for merging serveral changesets into one. See [[hg>​wiki/​HisteditExtension|Wiki]]
  
 +Wrong histeds may be reverted by ''​hg unbundle .hg/​strip-backup/<​backupfile>''​. This works for wrong ''​hg rebase''​s as well.
 ==== '​cherry-picking == ==== '​cherry-picking ==
  
Zeile 246: Zeile 257:
 hg qpush -a              # apply all patches to repo hg qpush -a              # apply all patches to repo
 </​code>​ </​code>​
 +
 +===== Collaboration models ==
 +
 +Basically there is [[hgbook>​collaborating-with-other-people.html#​id372641|Pull-only versus shared-push]] collaboration. See also [[hg>​wiki/​WorkingPractices]]
  
 ===== Publishing with Webserver == ===== Publishing with Webserver ==
Zeile 275: Zeile 290:
 Clone some repositories into ''/​home/​share/​hgroot''​ and point browser to ''​http://​localhost/​cgi-bin/​hgweb/''​ Clone some repositories into ''/​home/​share/​hgroot''​ and point browser to ''​http://​localhost/​cgi-bin/​hgweb/''​
  
-===== Todo ==+===== Working with Git Repositories ​== 
 + 
 +With the [[hg>​wiki/​HgGit|HgGit]] extension you can push/pull to/from a remote (or local) Git repo while doing all the work in a local Hg repo. A nice way to get around Git commands :-) 
 + 
 +See http://​hg-git.github.io/​ for more info. 
 + 
 +==== Install == 
 + 
 +HgGit needs dulwich. Both is available on www.slackbuilds.org 
 + 
 +==== Working with HgGit == 
 + 
 +Local repo (L) is hg, remote repo (R) is git. 
 +We want to push/pull to/from branch master on R 
 + 
 +FIXME Verify: 
 + 
 +  - L needs a (manually created) //​bookmark//​ ''​master''​ which tells HgGit to push to / pull from which branch on R. Checkout if that bookmark must point to tip in order to get pushed all commits! Checkout if the bookmark must be active on L! 
 +  - The //tag// ''​default/​master''​ is autmatically created and moved on L on every push to / pull from R 
 +  - In order to push from L to R, R must not be on the branch to which to L wants to push (see [[git#​push]]) 
 + 
 +See https://​www.mercurial-scm.org/​wiki/​HgGit 
 +==== Access Github == 
 + 
 +To push an existing Mercurial repository to Github: 
 +  - [[https://​help.github.com/​articles/​generating-ssh-keys/​|Import]] your public SSH key to Github 
 +  - [[https://​help.github.com/​articles/​create-a-repo/​|Create]] an empty repo, e.g. ''​foo''​ on Github 
 +  - Cd into your local Hg repo and do <​code>​ 
 +hg bookmark -r default master # make a bookmark of master for default, so a ref gets created 
 +hg push git+ssh://​git@github.com/​becki/​foo.git</​code>​
  
-  * Checkout the export/​import feature: http://​mercurial.selenic.com/​wiki/​TutorialExport 
  
becki/linux/mercurial_tips.1424354760.txt.gz · Zuletzt geändert: 2015-02-19 14:06 von becki

Impressum - Datenschutzerklärung