15

We are just switching to Mercurial where I work this week. I'm starting to read material, and was hoping somebody could succinctly answer this question:

What's the difference between Mercurial's "tip" tag and the "default" branch?

Dexygen
  • 297
  • 1
  • 3
  • 8

2 Answers2

19

Tip is the most recent changeset in the repository. Default is a branch. Tip is a special Tag (a named changeset) which always refers to the most recently changed Head.

Dan R
  • 2,275
  • 1
  • 19
  • 27
  • 7
    So does this mean that tip will move around from one branch to another as people push changesets on different branches? If so, what's the point of it, since you can't rely on it being in any one place? Thanks! – Jonathan Hartley Nov 22 '10 at 20:40
  • 2
    True, I can't think of any usecases for Tip aside from checking how old my repo is or sharing the id of my tip when talking with other developers. Also as giszmo points out, hg update -r tip is a quick way to get to the newest code regardless of branch. – Dan R Nov 22 '10 at 21:06
  • 1
    `tip` is just an alias for the last changeset in your repo. Sometimes it comes in handy, e.g. you make a change in branch `supercalifragilisticexpialidocious` which you would then like to merge into branch `default`; so then you update to branch `default` and because you *know* that the work you want to merge into `default` is at the tip of your local repository (because you’ve just committed it), instead of doing `hg merge supercalifragilisticexpialidocious` you may do `hg merge tip`. – dwardu Jan 17 '15 at 16:35
8

tip can be on a different branch than default.

hg uses the latest revision your "-r somewhat" matches. if somewhat is a branch, it updates to its latest head. if somewhat is a tag it updates to the revision this tag is associated with.

  • 3
    note to future readers: "somewhat" is a a placeholder here for a tag or branch name. It is not a special branch, tag, term, or keyword in mercurial, like I originally thought. – Rachel Frei Sep 13 '18 at 20:30