arx-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Arx-users] Further thoughts on ArX and simplicity


From: Kevin Smith
Subject: Re: [Arx-users] Further thoughts on ArX and simplicity
Date: Sat, 30 Jul 2005 09:05:56 -0400
User-agent: Mozilla Thunderbird 1.0.2 (X11/20050404)

Walter Landry wrote:
Kevin Smith <address@hidden> wrote:


An archive is be a collection of branches. Each branch is an ordered collection of patches.


Right now, everything is ordered.  But with revision hashes, they
would become partially ordered.  That is inevitable if you are going
to allow two people to work independently on the same line of
development.

Can you define "partially ordered" for me?


If you have three revisions A, B, and C, you might be able to say that B
and C come after A, but you can't say whether B comes before or after C.

Ah. Would it be accurate to say that *conceptually* a branch would be partially ordered, but a branch *as stored in a particular archive* would be fully ordered? If not, how would you represent partial ordering on disk?

With the current ArX format, there is effectively a "vector" of patches, due to the ,nn directory naming. If you switch to hashes, would you still represent a vector by listing the hashes in a text file somewhere, or would you switch to more of a linked-list where each revision would point to its parent(s)? Or both?


I must have been thinking of revisions, since (I guess) patches wouldn't have sequence numbers.

Now you are confusing me.  Both patches and revisions have sequence
numbers.  In mathematical terms, patches are the dual of revisions.

Oh. I was thinking that a "patch" was essentially a diff/patch file, whereas a "revision" was a patch within the context of a branch, thus having a revision number. But it looks like a revision can contain multiple patches.

I'm not a math/science guy, so "dual" doesn't really help.

I wish we had a wiki so we could have an easily maintainable glossary.

Hm. So given a patch that's already in a revision in my branch, and a patch that someone sends me, how would ArX know whether or not that patch was already in my branch? I thought that was how cherry-picking got into this discussion, but I guess not.


ArX looks at the embedded name of the patch.  If you did something
like change the metadata, then you have a different patch.  Metadata
is important too.

What is the "embedded name"? Is that just the commit text? Or is it the hash of the patch+metadata?

It is unlikely that you will get exactly the same patch from two
sources.  Some people will agglomerate different fixes, change
whitespace in different ways, etc.  The most likely way is that
someone will submit an ordinary, non-ArX patch that two different
people will incorporate.

Moreover, it _is_ important to know that Fred has approved a patch
rather than Wilma, since we know who is the real boss ;)

Ok. I guess I'm convinced. I haven't worked much with the patch utility, but I suppose it can tell if the same patch (with different metadata) has already been applied, so we don't need to pre-detect that case specially. Regardles, I'll take your word for it.

Kevin




reply via email to

[Prev in Thread] Current Thread [Next in Thread]