Changeset identity

Russel Winder russel.winder at concertant.com
Wed Jul 30 08:18:54 BST 2008


Aaron,

On Wed, 2008-07-30 at 18:49 +1200, Aaron Bentley wrote:

> > So the question is, what is the officially approved way of naming a
> > changeset so that it may be applied from one branch to another.
> 
> Well, generally, just a -r spec.  I'm not sure I really understand the
> question.

I think there are two aspects to the question:

1.  Git (and Mercurial?) label a changeset and that label can be used to
refer to the changeset.  Bazaar appears not to have this, a changeset
can only be referred to by a revision number relative to a branch.

2.  When I tried using revision numbers to do a merge -r XXX appeared to
imply a range of changesets and not a particular changeset.  I ended up
having to say -r(XXX-1)..XXX to get the single changeset.

> > Is push
> > an acceptable technique here
> 
> Push will not work unless one project the project you're pushing into is
> an ancestor of the project you're pushing from.  Even if it did, it
> would probably reorder your log messages in ways you wouldn't like.

True.  In this context this is actually the case, my branch has push and
pull branches the same and that remote branch is the mainline for a
project -- i.e. I have  what is effectively a checkout but not using a
bound branch.

I have never had push or pull rearrange logs, but maybe I have never had
a complicated enough situation.

Rebase rearranges but then that is exactly what it is supposed to do :-)

> > or is merge and commit mandated?  The issue
> > then is that the changeset already has a commit message
> 
> Bazaar doesn't have changesets.  It has revisions.

I guess part of my goal here is to pin down the semantics of certain
labels used in Subversion, Perforce, Git, Mercurial, and Bazaar.
Differences in nomenclature have to be sorted out so they can be
presented.  Clearly different DVCS systems have different needs for
jargon terms, but where the concept is the same, it is good to use the
same jargon term or at least have an equivalence table.  Which of course
raises the issue of what is the difference between a Bazaar revision and
a Mercurial or Git changeset?  Also what is the difference between a
Subversion revision and a Bazaar revision? 

> > and no new
> > commit message is needed so any sequence that requires an explicit
> > commit seems sub-optimal, indeed unnecessary.
> 
> When you merge, you're creating a new tree state that has never existed
> before, and you may have to resolve conflicts and such.  Any lines you
> have to change due to conflict resolution should be attributed to a
> commit, and should have a message associated with them.
> 
> So yes, commit messages are required.

Agreed for the case where a pull is not possible because the ancestory
of the branches is not identical.  I guess I am more involved with the
central mainline context than with the more general distributed context.
I just like to keep as linear a history as possible!

-- 
Russel.
====================================================
Dr Russel Winder                 Partner

Concertant LLP                   t: +44 20 7585 2200, +44 20 7193 9203
41 Buckmaster Road,              f: +44 8700 516 084
London SW11 1EN, UK.             m: +44 7770 465 077
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20080730/10e95aad/attachment.pgp 


More information about the bazaar mailing list