[RFC] Revision id aliases

John Arbash Meinel john at arbash-meinel.com
Mon Jun 19 18:26:27 BST 2006


Jelmer Vernooij wrote:

...

>> If you are at 'D' and you push into Z to create Q, that just needs to be
>> marked as a merge of Z+D, and then 'bzr merge' would try to merge Q (and
>> maybe install XYZ as merged revisions).
>> 'bzr pull' would probably try to grab Q, and then change your history to
>> AXYZQ.
> Ah - the "push marked as merge" bit is was what confused me. This
> actually makes more sense, thanks! I hadn't thought of this solution
> previously. This means I'll be able to get rid of the special revision
> properties. 
> 

I'm glad I could help. :)

>> I'm not sure what keys would make sense for your needs, since you end up
>> with 2-way aliasing. I suppose you could use:
>> alias:revX\trevY => 'True'
>> And the file could just version if that line exists or not.
> Wouldn't just adding 
> 'revX' => 'revY' 
> and
> 'revY' => 'revX' work? That seems to make more sense to me.

Yes, but now you are introducing 2 lines which should never be versioned
separately. You wouldn't want to end up with
revX => revY
and revY => revZ

If you always sort the revisions lexicographically, you remove any
ambiguities. And you have a unique identifier that you can reference.

The piece I was mentioning was having a versioned 'key/value' pairs,
where the key is fixed, and the value is versioned.

You need to have a unique key to have this work well. And
revX => revY, revZ
revY => revX
revZ => revX

has weird scaling properties.
Though transitivity of '==' does cause problems here as well....

> 
>> I got a little off topic, but I would like to see tags happen. Just
>> getting them 'right' is difficult.
> Same here - tags are imho the big missing features from Bazaar at the
> moment.
> 
> Cheers,
> 
> Jelmer
> 

Well, they are present, just only implemented in a plugin which doesn't
propagate them.
Or as your own versioned property file, which has all the problems
associated with it. (reverting to an old version gives you the old
version of the tag, removes new tags, etc).

It would be trivial to write a plugin for the latter. But it still
doesn't seem 'correct'. My spec on the Wiki isn't all that hard to
implement, but it is a little bit more complicated than I'd like. (But
may be not be more complicated than required).

John
=:->

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 254 bytes
Desc: OpenPGP digital signature
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20060619/1fa3ce3b/attachment.pgp 


More information about the bazaar mailing list