4 ms·
Mercurial's branches are server side (learned that the hard way the first time I made a branch), git's are client side.
by ahomescu1 13y ago
Mercurial's branches are server side (learned that the hard way the first time I made a branch), git's are client side.
- tonfa 13y agoI think you are confused, git and hg branches are very similar (I'd try to help but I'm not sure what the confusion is).
- ahomescu1 13y agoIt's simple: I created a local branch, worked on it, then tried the git workflow: 1. Switch to the default branch 2. Cherry-pick (with the equivalent hg command) my changes from my own branch into default 3. Push the changes to the remote repo What happened was that my local branch got pushed to the server, along with the default one. With git this wouldn't happen, it would push the local master to the remote master.
- tonfa 13y agoYes, by default all branches are pushed, (you would have to use --force if it creates new heads, and --new-branch to push new named branches). But I really don't see how it makes anything "server" or "client" side. (and you could in any case decide to push just default: hg push -r default)
- 16bytes 13y agoThis is because hg pushes all changesets by default. There are two workflows in hg that would get you what you want: hg push -b default Pushes only changesets from the default branch. You can also do these with phases by marking your branch as private.
- masklinn 13y agoThis is a description which makes no sense whatsoever, given git and mercurial are both DVCS there's no "client" or "server". 1. Mercurial branches are commit metadata, the branch name lives in the commit. Git branches are pointers to a commit (which move when a new commit is added on top of the existing branch commit), living outside the commit objects. 2. As a separate concern, Git has multiple branch namespaces ("remote" versus "local" branches, where each remote generates a branch namespace, and remote-tracking local branches). Mercurial only has a single namespace.