Differences between revisions 9 and 10
Revision 9 as of 2008-01-19 13:46:43
Size: 2606
Editor: abuehl
Comment:
Revision 10 as of 2008-01-19 14:10:41
Size: 2589
Editor: abuehl
Comment:
Deletions are marked like this. Additions are marked like this.
Line 60: Line 60:
in Mercurial will simply add a new [:Head:head] to the target repository. History is preserved. simply adds a new [:Head:head] to the target repository. History is preserved.

Bazaar is another ["DistributedSCM"] (see http://bazaar-vcs.org/).

A Bazaar "branch" roughly corresponds to a Mercurial [:Repository:repository]. Bazaar's "branch" command corresponds to "[:Clone:clone]" in Mercurial.

TableOfContents

Comparing Use Cases

Push

Bazaar

In Bazaar, the [http://doc.bazaar-vcs.org/bzr.dev/en/user-reference/bzr_man.html#push push command] has an --overwrite option which modifies the history of the target branch. Example:

Assume we have a Bazaar branch in directory bzr1 and branched that to bzr1-1 (using bzr branch bzr1 bzr1-1). Then we commit some changes in both branches, thus making the branches diverge.

Then in bzr1-1 doing:

> bzr push ..\bzr1
bzr: ERROR: These branches have diverged.  Try using "merge" and then "push".

will fail because the two branches have diverged.

But specifying --overwrite will succeed:

> bzr push ..\bzr1 --overwrite
All changes applied successfully.
Pushed up to revision 2.

by changeing the history of bzr1. Some already committed changes to branch bzr1 are deleted (the diverging changes). Quote from Bazaar manual: "If branches have diverged, you can use 'bzr push --overwrite' to replace the other branch completely, discarding its unmerged changes."

Mercurial

In Mercurial, it is not possible to delete already committed changesets when doing a [:Push:push].

Assume we have two Mercurial repositories hg1 and hg1-1 (hg1-1 cloned at some time from hg1) with diverging changes. In hg1-1 doing:

> hg push ..\hg1
pushing to ..\hg1
searching for changes
abort: push creates new remote branches!
(did you forget to merge? use push -f to force)

will fail as with bzr push. But doing:

> hg push --force ..\hg1
pushing to ..\hg1
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)

simply adds a new [:Head:head] to the target repository. History is preserved.

General Comparison

See also

References

Bazaar (last edited 2012-11-06 12:47:33 by abuehl)