[Prophesy] Questions from 40,000 feet

Daniel Phillips phillips at bonn-fries.net
Fri Apr 26 03:11:48 EST 2002


On Friday 26 April 2002 18:02, David A. Desrosiers wrote:
> > is a closed list (i.e. only subscribers can post) and the archives are
> > also private.  I am the owner (because I am a member of AUUG which is
> > hosting the list for us).
> 
> 	Thank you for setting this up.
> 
> 	I guess I'll start with some 40,000-foot topics:
> 
> 	1.) Modus of operation; "How do I edit, save, commit files?"
> 
> 	2.) What tools are (going to be) available?
> 
> 	3.) How can I convert <existing system> to Prophesy?
> 
> 	4.) Who do I send patches and requests to?
> 
> 	There's a bunch of stuff Daniel and I have been talking about back
> and forth, so let's just continue that here, and let others jump in as they
> join the list.

Hi David, and welcome to the Prophesy Armchair Design Committee as well.  
Let's try some 39,000 foot answers...

First, a general remark: Professy, err, Prophesy is our codename for this
*design* project.  It will not necessarily be the name of the working system.
Prophesy stands for "Programmer's Phree Sourcecode Control" system.  That
is, you read it as "Pro-F-S-C".  OK.  Now...

1.) Modus of operation; "How do I edit, save, commit files?"

I'll add to that: "how do I put a directory tree under management"?  You do 
this by pointing Prophesy at the root of the tree, saying "manage that", and 
you are done.  Prophesy will create a .prophesy file in the root of the tree. 
You may not have or make hard links into the tree.  You may not edit the tree 
when Prophesy isn't running, or if you do, you will have to tell Prophesy 
that you did that, and it will resync its database with the changes you made, 
by traversing the whole tree and comparing to its database.

So back to your original question.

You edit with your favorite editor, you edit the source tree you're working 
on.  No changes at all from the case where you have no scm.  You save as 
always.  We are using some dnotify magic to pick up the save and integrate 
the resulting changes into the scm's database.  We have two kinds of commit: 
'edit-commit', which is just a normal save of an edit, and 'delta-commit', 
which rolls up all 'edit-commits' into a single delta since the last' 
delta-commit'.  So we are using the rolled-up delta as the primary currency 
of source code control, and we will use the edit deltas as an internal 
cross-check, and for establishing a nice, friendly revert/unrevert facility 
for the user.
 
2.) What tools are (going to be) available?

I'm not sure I understand this question fully.  Right off, Prophesy will give 
you the ability to control your *own* source, to track changes, revert 
changes, unrevert, and generate deltas between any two versions of the source 
tree.  Furthermore, it will allow you to generate 'filtered' deltas, 
including only selected deltas between two versions of the tree, for example, 
all deltas within a given directory.  It will give you the ability to make 
experimental changes, and not only revert them, but unrevert them as well.  
It will forget none of the changes you made unless told to.

You wll be able to annotate your changes either by inserting metadata in the 
file you are editing, which the scm will remove later, or through a web 
interface, exposing the directory tree with its deltas as an annotable object 
(this object looks like, erm, a directory tree).

A script-level interface will be available, having the same power as the 
editor and/or web interface.  Or greater power, we shall see how it evolves.

3.) How can I convert <existing system> to Prophesy?
 
Point Prophesy at the root of the source tree and say 'manage that'.  Then 
jump into your editor and drive away.

4.) Who do I send patches and requests to?

Which patches?  Patches to Prophesy?  Not needed yet, this is the armchair 
design committee.  Requests for features come here.

-- 
Daniel



More information about the Prophesy mailing list