Re: [Monotone-devel] monotone disapprove does not give correct branch cert

2005-10-26 Thread Zbynek Winkler

Nathaniel Smith wrote:


people who haven't yet internalized
monotone's model of branches are dazed and confused at the idea of a
revision that is in no branch, and we should try to not confuse such
people when we can avoid it.  There's a tension, in general, where a
system should simultaneously work more-or-less-okay for people who
don't really understand it at all and are applying some unknown vague
model they got from somewhere else, and at the same time, should have
a simple, clear and consistent model for people who _do_ take the time
to figure it out...
 

What would be the clear and consistent model this time? I also like 
clear and consistent models but I think this time it is not as clear... 
IMHO clear and consistent model could be if each branch had exactly one 
branch point (one revision in each branch would be the *first* revision) 
and all revisions in the said branch would be descendants of this 
revision (thus the branches would not have holes).


I guess this is close to the model described by Wim later in this thread 
for propagate behavior...(adding the D revision on the main branch)?


The only model I see now in branches is that branch is a set of 
revisions sharing a branch certificate. I miss the single origin and 
the continuity :(


Zbynek

--
http://zw.matfyz.cz/ http://robotika.cz/
Faculty of Mathematics and Physics, Charles University, Prague, Czech Republic



___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


[Monotone-devel] monotone disapprove does not give correct branch cert

2005-10-25 Thread Wim Oudshoorn
In our repository we have a few revisions with no branch certificate.
It seems that they are caused by using

monotone disapprove REVISION

AFAICT monotone disapprove tries to figure out the branch
from the current working directory and uses that branch
to certify the disapprove node.  
If the command is given outside any working tree it 
does not give any branch certificate to the disapprove node.

Wim Oudshoorn.



___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] monotone disapprove does not give correct branch cert

2005-10-25 Thread Emile Snyder
Yuck.  cert.cc:guess_branch(revision) defaults to using
app.branch_name() if one is set; ie. you are in a working copy.
There are 4 commands using guess_branch to decide how to cert a new
revision:

approve
disapprove
checkout
commit

I would argue that only commit should default to using the working copy
value if one is set.  approve and disapprove both take a revision as a
specific argument; I can sort of see using the value of the working copy
branch if that given revision has no branch cert, but not the other way
around.

Am I missing something?

thanks,
-emile

On Tue, 2005-10-25 at 16:52 +0200, Wim Oudshoorn wrote:
 In our repository we have a few revisions with no branch certificate.
 It seems that they are caused by using
 
 monotone disapprove REVISION
 
 AFAICT monotone disapprove tries to figure out the branch
 from the current working directory and uses that branch
 to certify the disapprove node.  
 If the command is given outside any working tree it 
 does not give any branch certificate to the disapprove node.
 
 Wim Oudshoorn.
 
 
 
 ___
 Monotone-devel mailing list
 Monotone-devel@nongnu.org
 http://lists.nongnu.org/mailman/listinfo/monotone-devel
 



___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] monotone disapprove does not give correct branch cert

2005-10-25 Thread Wim Oudshoorn
Emile Snyder [EMAIL PROTECTED] writes:

 Yuck.  cert.cc:guess_branch(revision) defaults to using
 app.branch_name() if one is set; ie. you are in a working copy.
 There are 4 commands using guess_branch to decide how to cert a new
 revision:

 approve
 disapprove
 checkout
 commit

From these only commit and disapprove will create a new revision
in the database.   So approve and checkout should not add any branch
certificate.

Now commit makes only sense inside a working directory, so taking
by default the revision of the current working directory is fine.

But disapprove you give an explicit revision, so in which directory
you are should be irrelevant.  AFAICT there are two more or less
reasonable options,

  disapprove REV

should get:

* all branch certificates from REV
or
* no branch certificate at all.

I lean towards the second options for the following reason,
it is not clear beforehand what the full collection of branch
certificates of REV is.  A sync can add new branch certificates 
to an existing revision. 

 I would argue that only commit should default to using the working copy
 value if one is set.  approve and disapprove both take a revision as a
 specific argument; I can sort of see using the value of the working copy
 branch if that given revision has no branch cert, but not the other way
 around.

No I would be against taking some arbitrary branch just because
an explict revision argument does not have a branch certificate
by itself.

 Am I missing something?

I don't know, but I don't think so.

 thanks,
 -emile

Wim Oudshoorn.


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel