On Jun 5, 2008, at 3:37 PM, root wrote: > >> In terms of using patches as a transport, its just a transport. I >> think >> it would be cleaner to import the branch as a branch and have final >> merges into mainline branches controlled using current practice. >> Patches in trac are, IMHO, clumsy although in practice it probably >> doesn't matter much. >> >> I'd also say that the patch approach is more appropriate to SVN style >> controls than DCVS controls. > > I'm not sure about bzr or hg but I suspect they support the same > mechanisms as git.
Yes, it's very similar. > In a DCVS (I use git), the appropriate way to transport changes is > with pull/push. I use github as a host for Axiom. After the first > clone all else is push/pull. If I like the change I commit, otherwise > I reset. Since git uses a crypto-style hashcode I'm guaranteed that I > have the correct source tree which matches the host. > > A git-push or git-pull is blindingly fast even for large changes so > managing a large repository (Axiom is about 1/5 the size of Sage) is > much more efficient. Given the same changes applied to a git repo and > the sourceforge SVN repo I can do the whole git-commit/git-push in the > time it takes for the svn commit to print another progress period. > > Branching in git requires 40 bytes whereas cloning can require > 100meg. The disk saving and time saving is significant. > > For journal purpose I publish the diff-Naur (git-diff) form to the > mailing lists but the rest of the work occurs "within the system". > I do use the diff-Naur patches against the SVN and CVS copies of > Axiom (sourceforge and savannah) despite the fact that git can update > those repo styles. Old habits die hard. > > DCVS is a completely different way of looking at software development. > It took a while before I "got it" and started using the branch/push/ > pull > tools properly. Once you understand the ideas it really does change > the > way you work. I have 20ish branches locally and they take up a minimal > amount of space, especially compared to 20 clones. The "DCVS" way of thinking, which is a great concept, is orthogonal to the issue of branches vs. clones. Personally, I think branches and clones are essentially two manifestations of the same things--clones are simply branches that have a physical presence on ones hard drive and independent state from each other. This is useful when one has a lot of secondary files (like in the Sage library). > Again, I'm not sure about bzr and hg but I suspect they are equivalent > in design. It would be much more lightweight in bandwidth, space, and > time if Sage were hosted in a DCVS where users could just do a pull. > The real struggle is unlearning the CVS/SVN master site mindset. Sage hosts its repositories here: http://hg.sagemath.org/ One can pull from them freely (though pushing is restricted). When you - upgrade a pull is made into your personal sage-main (sage-ext, ...) repositories. To show true distributed style, I am hosting a separate branch here http://cython.org/coercion/hgwebdir.cgi/ (which, of course, I hope gets merged into the main distribution soon). I pull and push between my various clones all the time. The refereeing system through with all code must pass through before getting included into the official Sage releases does promote the "master repository" mindeset, but this is a social (rather then technical) barrier and does wonders for code quality. All big projects have some sort of official release at the end. - 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 -~----------~----~----~----~------~----~------~--~---