On Fri, Nov 18, 2016 at 12:39 AM, David Roe <roed.m...@gmail.com> wrote: > > On Fri, Nov 18, 2016 at 2:45 AM, Volker Braun <vbraun.n...@gmail.com> wrote: >> >> On Friday, November 18, 2016 at 8:12:32 AM UTC+1, David Roe wrote: >>> >>> Create a new git trac subcommand to replace `git trac checkout 1234`, say >>> `git trac old 1234`. This would fetch the branch, check it out into a >>> completely separate folder within ($SAGE_ROOT/merge_tree or something), >>> merge in develop. If the merge is successful, create a new branch and pull >>> the changes in. This ends up with only a few files changing if you started >>> at develop. If the merge is not successful, report to the user and ask them >>> to fix the merge in >>> $SAGE_ROOT/merge_tree. There would then be some way to resume and pull >>> in the changes. >>> >>> There are some details to fill in, but I think that an approach like this >>> can work. It does mean having another 100MB working tree floating around >>> just for merging into, and also stepping a bit further away from normal git >>> practices. >>> >>> Any other ideas? >> >> >> I'd just clone the repo to a separate directory, nothing except the >> standard git commands necessary.
+1 Hopefully with a good ccache/cycache rebuilding from a fresh clone should be fast too. > Yeah, just cloning is probably better. I was thinking for a bit that we > could avoid the duplicated space of having a separate .git folder, but I > don't think it's worth the added complications. > > Certainly, the ideal solution is to fix Cython so that the timestamp changes > don't cause trouble, either by fixing the problems with cycache or by using > hashes as William suggests. But that's not going to happen quickly, and I'd > like to have a workaround. A new git trac command is opt-in and fairly easy > to implement. Volker, does this sound like a reasonable pull request for > git-trac-command? When you do a git checkout, it only changes the timestamps of changed files. When you do a cython build, it skips the build if the .c file is newer than the .pyx file *and all its dependencies*. When switching between versions of Sage, you are likely to touch dependencies for a large portion of the library. In other words, I think it's still rebuilding as little as it can, but that happens to be a lot. (Changing to a hash wouldn't help here--though it would add complexity as you'd have to store the has of all dependencies somewhere to compare against.) -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.