Difference between revisions of "Mercurial/Tips And Tricks"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (Using TortoiseHg in Cygwin)
(Tips and Tricks)
Line 4: Line 4:
  
 
= Tips and Tricks =
 
= Tips and Tricks =
 
+
== Preparing a local repo for a cws ==
 +
* If you want to create a local repo for an existing cws, take care to clone ''to the milestone of the cws''.
 +
<pre>
 +
hg clone -r <CWS_milestone> <local_prestine copy> <local_cws_repo>
 +
</pre>
 +
If the cws is on <code>DEV300_m60</code> and you pull it into a local repo that is on <code>DEV300_m61</code>, you will create new heads in the local repo. If you not comfortable in handling multiple heads, then '''dont do that!'''
 
== After pulling/merging ==
 
== After pulling/merging ==
 
* <code>hg log --follow-first</code> is a convenient way to display your CWS changes at the top of the log.
 
* <code>hg log --follow-first</code> is a convenient way to display your CWS changes at the top of the log.

Revision as of 11:59, 27 October 2009

Mercurial.png

Mercurial

Quick Navigation

About this template


This is the page to add your favorite Mercurial tip.

Tips and Tricks

Preparing a local repo for a cws

  • If you want to create a local repo for an existing cws, take care to clone to the milestone of the cws.
hg clone -r <CWS_milestone> <local_prestine copy> <local_cws_repo>

If the cws is on DEV300_m60 and you pull it into a local repo that is on DEV300_m61, you will create new heads in the local repo. If you not comfortable in handling multiple heads, then dont do that!

After pulling/merging

  • hg log --follow-first is a convenient way to display your CWS changes at the top of the log.
  • hg log --follow-first -P <original_clone_milestone> will show only the CWS changesets.
  • hg outgoing works as well, of course.

Combined diff which contains exactly the changes of your CWS without anything pulled from master

  • If your current milestone tag is locally available: hg diff -r <current_milestone_tag>
  • If your current milestone tag is *not* locally available (might happen, see above):
    • search for your last pull/merge from the master with hg log -m
    • hg diff -r <second_parent_of_last_master_merge>
    • Alternatively, if you just did a pull/merge from master: hg export --switch-parent tip

Styles

The default output format of some commands does not suit you? Use styles:

  • hg log --style=compact
  • hg outgoing --style=changelog"
  • Or create your own format with the template engine:
    • hg outgoing --template '{date|shortdate} {author|person} {desc}\n' --newest-first

On Windows/cygwin

TortoiseHg

Depending on the cygwin version, using cygwins hg (and other tools) sometimes fails. TortoiseHg (http://bitbucket.org/tortoisehg/stable/wiki/Home) can be used as alternative.

To get rid of cygwin's hg rename /usr/bin/hg.

You can decide which ssl support you use in the cygwin shell. If you want to use the ssh-agent then you have to specify the following line in the [ui] section of ~/.hgrc:

ssh = <Windows path to cygwin>\bin\ssh.exe -C

For the graphical interface of TortoiseHg Putty's pageant is the default ssh key provider. TortoiseHg allows easy graphical access to hg repositories within the Windows Explorer.

Accessing repository over ssh

  • If you want to use the ssh client of your Cygwin shell (and also ssh-agent), add the following to the [ui] section of your mercurial.ini:
ssh = ssh -C
Personal tools