by popular demand, I've reluctantly agreed to bring up hg clone yet
again because I think that beating a dead horse is under-rated.... you
can never beat a dead horse enough!!

Turns out, there are 2, and I'm pretty sure, only 2 reasons for the use
of clone over branch....

1) Deleting History - You can't remove a branch or points along a
branch... so its better to clone so you can wack the entire directory as
though nothing happened

2) Branch Toggling - because compiling cython can be expensive, if you
toggle branches using Hg, you need to recompile at each toggle.

Basically 1) is an Hg specific "feature" which speaks to inferior
architecture (and its inevitable demise given the alternatives).
However, it turns out you can get 1) without cloning "before the fact"

So, you branch instead of clone... forge ahead, wildly adding changes
and committing.... and are just shy of proving the Riemann Hypothesis,
when to your horror, you discover that some of your underlying analysis
might have been flawed.

Fortunately, you've told nobody of your activities and figure, if I can
just roll back to a point in time... but not all the way back,
everything would be fine and you can keep your job, get tenure etc.

Turns out, you can do that with Hg... USING CLONE!!!

So, what you do is clone the repo to a specific revision... which will
create a clone without any of the history beyond the revision you
indicate.

And, 2) is a corner case for a relatively small percentage of
developers.  To recap, developers, for the most part, stick with a
single branch.  The good news is that clone will work for those unlucky
few for whom toggling is a way of life.

So, my conclusion is that we should be using branch instead of clone as
the general development strategy with clone limited to those who are
working specific types of problems and need to deal with it.

All this leads to one of my original points:  We might want to consider
using Hg as designed...

Heretic!!!

OK, what Glenn means to say is:

I suggest there's a better way to manage the sage development process
using the features of Hg. Realizing that Sage's current process "works"
and there's undoubtedly a significant amount of debate ahead of us, the
Bolsheviks of the finance / dsageng activities are going to use an
alternative (Hg's intended) approach of branching and merging as the
sole mechanism for distributed development and version control

Accordingly, there will be an hg server with various branches associated
with the development activities.  Synchronization with Sage
distributions will occur with patch sets or using an out-of-band
coordination with the Central Committee.  How to view / use / contribute
to the finance / dsageng activities will be explained on the wiki and
announced in a few days once the infrastructure has been instantiated.

-glenn

-- 
Glenn H. Tarbox, PhD || 206-494-0819 || [EMAIL PROTECTED]
"Don't worry about people stealing your ideas. If your ideas are any 
 good you'll have to ram them down peoples throats" -- Howard Aiken


--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to