On Jun 5, 1:10 pm, "Glenn H Tarbox, PhD" <[EMAIL PROTECTED]> wrote: > On Thu, 2008-06-05 at 12:41 -0700, Robert Bradshaw wrote: > > 1) Sage has a non-trivial build process for Cython files. When a .pyx > > file is changed, the .c file needs to be regenerated, as well as .so > > file. Changing a .pxd file can result in a cascade of .c/.so files > > that need to be regenerated. Clones allow one to keep all these auto- > > generated files around without having to commit them or (potentially) > > re-compiling every time one switches branches. This I think is the > > main reason. > > This should all be manageable with proper directory organization or > build rules... as Sage progresses, a mechanism to understand that a > derived type to one system is a source type to another will need to > exist regardless.
The point is that we save time (potentially a lot of time) by having a separate build tree per clone. Are you suggesting that we have a separate build tree per branch, instead? How would that work... would the build system query the version control system for the current branch name? As far as the second half of your response, I'm confused. The build system already understands chains where the output of one step is the input to the next: the .so file is made from the .o file, which is made from the .c file, which is made from a variety of .pyx, .pxd, and .pxi files. When we change a .pxi file, all the required rebuilding is done automatically (which may take 10 or 20 minutes for changes to "core" .pxi files, which is why we don't want to do it every time we change branches). > > 3) Clones are conceptually easier to understand and harder to mess up > > (by, for example, doing working on one task without switching to the > > right branch first). I am not saying that virtual branches are too > > difficult for anyone to figure out, but clones are even easer for > > getting started with the system. > > I'd counter by saying the need for symlinks more than offsets any > advantage and more often than not hides where you are anyway... when you > do a pwd after traversing a symlink it doesn't indicate the true > directory. Are you talking about the sage -> sage-<NAME> symlink? I'm never confused by it because I never use it; I always use sage-<NAME> directly. We could probably figure out a way to avoid this symlink, if we decided it was a problem. > > 4) It's easier to abandon the history of a clone, both for hopelessly > > broken development efforts and refereeing of other people's patches. > > git branch -D badbranch > > as opposed to the usual > > git merge developmentBranch > git branch -d developmentBranch > > (btw, I'm a git user... I'm sure there's something similar in Hg) I don't think there is. (I've looked.) Carl --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---