Warping minds with the phrase "changeset"
John A Meinel
john at arbash-meinel.com
Tue Jan 31 00:50:50 GMT 2006
Jan Hudec wrote:
> On Mon, Jan 30, 2006 at 22:02:29 +1100, Martin Pool wrote:
>> On 30 Jan 2006, Jan Hudec <bulb at ucw.cz> wrote:
>>
>>> I have read the part and I'd say, that it's not changesets that allow
>>> the cross-repository merges. What allows that are globally unique
>>> revision identifiers.
>> True. You could quite happily do cross-repo merges with only per-file
>> changes.
>>
>>> Note, that svk can do with just globally unique repository identifiers,
>>> but it does not allow convergence. To achieve convergence revision
>>> identifiers must be repository-independent, so you can copy a revision
>>> and keep it's id.
>>>
>>> Changesets are something different. They are first-class citinzens only
>>> in quilt. In all version control systems, they are subordinate to their
>>> base and target revision.
>> I think they are first-class in Darcs too; it doesn't really even *have*
>> a concept of revisions.
>
> I would actually say that before I wrote that very sentense. But there
> is a difference between quilt and darcs that prevented me writing them
> side by side. In quilt, patch is a patch, without any context. But in
> darcs, patch depends on it's prerequisite set of patches, which makes
> kind-of revision. So in darcs it's more sets of changesets than
> individual changesets.
Except if you apply that to another tree, it can be re-ordered. My
understanding is that Darcs doesn't preserve history. So if I pull
changes from you, it may alter my history. In which case all of my 'sets
of changesets' have now changed.
>
>> Anyhow, I think it's fairly clear that the word 'changeset' is at least
>> sometimes used in a way that encompasses what we do. Google finds many
>> people talking of svn changesets, and they don't even have unique ids
>> (well, kinda, if you consider repo uuid + path + revno).
>
> Yes, they are changesets. (One of the) definition(s) of changeset is: A
> difference between two successive revisions. In this sense subversion
> and even CVS do have changesets. Another definition (as in
> "Changeset-CVS" or "CVS-Patchsets") is that it's a change introduced by
> a single commit - and this spanning the whole tree.
>
Well, to uniquely identify a file contents, you need to include path.
I'm a little curious how it all works, since it seems to make your
working directory rather precious. (I have revno 1500 for this
directory, and 1505 for this directory, and ..., and now everything works.)
Hopefully we'll get by-reference tree merging, which will make this sort
of thing very nice in bzr.
Anyway, I agree with your summaries of atomic commits, and globally
unique ids.
John
=:->
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 249 bytes
Desc: OpenPGP digital signature
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20060130/1b46eb13/attachment.pgp
More information about the bazaar
mailing list