On Jun 5, 2008, at 11:57 PM, root wrote:

>> I don't exactly understand these distributed control systems very
>> well, so hopefully this isn't an obvious question. Right now as I'm
>> working on symbolics I commonly have files from multiple branches  
>> open
>> (symbolics-stable/backup, symbolics-current, calculus-old).  I also
>> have to frequently have to toggle between them (to test backwards
>> compatibility).
>
> Doing a branch
>
>  git-branch calculus-old
>
> generates a 40 bit key which points to a history tree node. That is
> all the disk space required.
>
>  git-checkout calculus-old
>
> "magically" transforms the files so they conform to the "calculus-old"
> sources and you can work in that tree.
>
>  git-checkout master
>
> will bring you back to the trunk, "magically" transforming the  
> files again.
>
> Note that since git uses hashcodes to track changes it will not  
> duplicate
> files. Two files with the same hash code occupy one file. One side  
> effect
> is that a distro might actually be smaller when moved into git if it
> had copies of files in subdirectories.
>
> Thus the branch only needs to keep the changes as it shares the
> unchanged files by pointing at the same sources. So a branch only  
> costs
> you the disk space and time to maintain the changes.

This is how hg works as well, hashing and all.

>
>
>> It seems like switching to branching would require
>> having three full sage installs at the cost of a huge amount of space
>> if I want to be able to switch between them quickly and edit multiple
>> versions of the same file, which seems like a massive negative side
>> effect.  Do I understand this right?
>
> So, in answer to your question, no it does not require much disk  
> space.
> I have 20+ branches locally and there is almost no disk space overhead
> and changing between the branches happens in about the time it takes
> to type the command.

Same with hg if one uses branching rather than cloning. However, re- 
generating all secondary files (depending on what one is working on)  
may take much longer. I have about half a dozen clones that I work  
with, and switch between them often.

- Robert


--~--~---------~--~----~------------~-------~--~----~
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