Re: [Monotone-devel] monotone disapprove does not give correct branch cert
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
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
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
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