Re: [sage-combinat-devel] Re: sage-combinat move to git
I have a branch called: remotes/origin/public/combinat/15361-branching-rules I the repository, switched to this branch, calling the local branch 15361-branching-rules. I did some work, then tried to push. Per the instructions at the tentative conventions page (http://wiki.sagemath.org/TentativeConventions) I used the command: $ git push --set-upstream origin 15361-branching-rules:remotes/origin/public/combinat/15361-branching-rules remote: FATAL: W refs/heads/remotes/origin/public/combinat/15361-branching-rules sage bump DENIED by fallthru remote: error: hook declined to update refs/heads/remotes/origin/public/combinat/15361-branching-rules To g...@trac.sagemath.org:sage.git ! [remote rejected] 15361-branching-rules - remotes/origin/public/combinat/15361-branching-rules (hook declined) error: failed to push some refs to 'g...@trac.sagemath.org:sage.git' I am on the right branch. Is this a permission problem? I have an ssh key uploaded for this machine. Or is the above command wrong? Dan -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-combinat-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-combinat-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-combinat-devel. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sage-combinat-devel] Re: sage-combinat move to git
Hi Dan, Most likely, your local branch is already linked to the remote branch, so a simple git push should suffice. You can see how your local branches are linked, look in your $SAGE_ROOT/.git/config If you want to change the default mapping, you can do git branch 15361-branching-rules --set-upstream-to origin/public/combinat/15361-branching-rules and then git push. I think in your example, there should not be any remotes in remotes/origin/public/combinat/15361-branching-rules. I hope this helps, Anne On 11/14/13 2:22 PM, Daniel Bump wrote: I have a branch called: remotes/origin/public/combinat/15361-branching-rules I the repository, switched to this branch, calling the local branch 15361-branching-rules. I did some work, then tried to push. Per the instructions at the tentative conventions page (http://wiki.sagemath.org/TentativeConventions) I used the command: $ git push --set-upstream origin 15361-branching-rules:remotes/origin/public/combinat/15361-branching-rules remote: FATAL: W refs/heads/remotes/origin/public/combinat/15361-branching-rules sage bump DENIED by fallthru remote: error: hook declined to update refs/heads/remotes/origin/public/combinat/15361-branching-rules To g...@trac.sagemath.org:sage.git ! [remote rejected] 15361-branching-rules - remotes/origin/public/combinat/15361-branching-rules (hook declined) error: failed to push some refs to 'g...@trac.sagemath.org:sage.git' I am on the right branch. Is this a permission problem? I have an ssh key uploaded for this machine. Or is the above command wrong? Dan -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-combinat-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-combinat-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-combinat-devel. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sage-combinat-devel] Re: sage-combinat move to git
git push remote local branch name:remote branch name The remote branch name should just be public/combinat/15361-branching-rules, without the remotes/origin/. You don't have write permissions outside u/bump/* and public/* on the remote. Your local repo has internally a ref called remotes/origin/public/combinat/15361-branching-rules for its copy of the remote branch (see git show-ref for the internals). But that only exists on your local repo, not on the remote. On Thursday, November 14, 2013 5:22:25 PM UTC-5, bump wrote: I have a branch called: remotes/origin/public/combinat/15361-branching-rules I the repository, switched to this branch, calling the local branch 15361-branching-rules. I did some work, then tried to push. Per the instructions at the tentative conventions page (http://wiki.sagemath.org/TentativeConventions) I used the command: $ git push --set-upstream origin 15361-branching-rules:remotes/origin/public/combinat/15361-branching-rules remote: FATAL: W refs/heads/remotes/origin/public/combinat/15361-branching-rules sage bump DENIED by fallthru remote: error: hook declined to update refs/heads/remotes/origin/public/combinat/15361-branching-rules To g...@trac.sagemath.org:sage.git ! [remote rejected] 15361-branching-rules - remotes/origin/public/combinat/15361-branching-rules (hook declined) error: failed to push some refs to 'g...@trac.sagemath.org:sage.git' I am on the right branch. Is this a permission problem? I have an ssh key uploaded for this machine. Or is the above command wrong? Dan -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-combinat-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-combinat-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-combinat-devel. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sage-combinat-devel] Re: sage-combinat move to git
Dear Dan, Thank you for making the list. I am a little worried that this might actually not catch all dependencies. For example trac_14847-whittaker.patch definitely depends on the functionality of trac_14102-nonsymmetric-macdonald.patch even though they do not touch the same files. Best wishes, Anne On 11/10/13 7:48 AM, bump wrote: There are two attachments to this message, which may be useful in figuring out what needs to be done in transitioning the queue to git. This requires unravelling the dependencies of the queue. Concerning only patches that apply when the queue is applied to sage-5.12, the first attachment contains (for each relevant file in sage) a list of patches that touch that file. So for example, here are the files that touch root_lattice_realizations: trac_10963-more_functorial_constructions-nt.patch trac_14102-nonsymmetric-macdonald.patch crystal_plots-ts.patch root_system_improvements-ts.patch trac_14901-lie_algebras-ts.patch coxeter_groups-coset_representatives-nt.patch extended_affine_weyl_groups_sd40.patch The second attachment gives, for each patch, a list all earlier patches in the queue that touch a common file. Of the two attachments, the second one may be the most useful. Daniel Bump -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-combinat-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-combinat-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-combinat-devel. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sage-combinat-devel] Re: sage-combinat move to git
Thank you for making the list. I am a little worried that this might actually not catch all dependencies. For example trac_14847-whittaker.patch definitely depends on the functionality of trac_14102-nonsymmetric-macdonald.patch even though they do not touch the same files. And conversely there might be false positives among the reported dependencies if two patches touch the same file but in an independent way. Dan -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-combinat-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-combinat-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-combinat-devel. For more options, visit https://groups.google.com/groups/opt_out.
[sage-combinat-devel] Re: sage-combinat move to git
Hi, Sorry I had to leave yesterday during the discussion of the workflow/searching. It seems like you made a lot more progress on the document. I was reading the searching section and I still don't quite see how to tell who wrote the code or who posted: origin/public/combinat/sf/sp_orth I even searched the logs and I didn't see the name of branch but I did see: - commit 226c37a8561486888d0231095ac6df379aa46323 Author: Travis Scrimshaw tscrim at ucdavis.edu Date: Fri Nov 8 18:59:36 2013 -0800 Initial version of symplectic and orthogonal basis for symmetric functions. Currently this does not work correctly because the basis do not give a Hopf structure by converting to the Schur basis and it is only a filtered basis, not a graded basis. - So I in this case I could realize that this commit message is probably related to this branch, but in general the commit messages are not so helpful: more grammar fixed typo fixed more doc fixes and I had to sift through those to find the one that I wanted. If it had been committed 3 weeks ago I doubt that there would be any chance that I would be able to figure out who is working on it to contact them to let them know I was interested. I'm sure that there is a way to resolve this issue. Is there a command to look up the creator of a branch? I found one way to (maybe) resolve this was to checkout the branch and then execute the command: $ git log HEAD ^master but what didn't work was $ git log --remotes='origin/public/combinat/sf/sp_orth' ^origin/master Shouldn't this command show me the commits on that branch? -Mike -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-combinat-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-combinat-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-combinat-devel. For more options, visit https://groups.google.com/groups/opt_out.
[sage-combinat-devel] Re: sage-combinat move to git
I guess that I should make it clearer that the first time I searched the log with: $ git log to find the commit message by Travis by looking through all of them to find the one relevant to the branch I was interested in. It wasn't until later that I realized that could checkout the branch first and then check the logs only relevant to that branch. The command that I think should work to read the log of a branch without checking it out doesn't seem to work for me. -Mike On Saturday, 9 November 2013 14:24:18 UTC-5, Mike Zabrocki wrote: Hi, Sorry I had to leave yesterday during the discussion of the workflow/searching. It seems like you made a lot more progress on the document. I was reading the searching section and I still don't quite see how to tell who wrote the code or who posted: origin/public/combinat/sf/sp_orth I even searched the logs and I didn't see the name of branch but I did see: - commit 226c37a8561486888d0231095ac6df379aa46323 Author: Travis Scrimshaw tscrim at ucdavis.edu Date: Fri Nov 8 18:59:36 2013 -0800 Initial version of symplectic and orthogonal basis for symmetric functions. Currently this does not work correctly because the basis do not give a Hopf structure by converting to the Schur basis and it is only a filtered basis, not a graded basis. - So I in this case I could realize that this commit message is probably related to this branch, but in general the commit messages are not so helpful: more grammar fixed typo fixed more doc fixes and I had to sift through those to find the one that I wanted. If it had been committed 3 weeks ago I doubt that there would be any chance that I would be able to figure out who is working on it to contact them to let them know I was interested. I'm sure that there is a way to resolve this issue. Is there a command to look up the creator of a branch? I found one way to (maybe) resolve this was to checkout the branch and then execute the command: $ git log HEAD ^master but what didn't work was $ git log --remotes='origin/public/combinat/sf/sp_orth' ^origin/master Shouldn't this command show me the commits on that branch? -Mike -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-combinat-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-combinat-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-combinat-devel. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sage-combinat-devel] Re: sage-combinat move to git
Hi Mike, You can get do the search remotely via $ git log --remotes='origin/public/combinat/sf/sp_orth*' ^origin/master --oneline 8864ef1 Added files. 226c37a Initial version of symplectic and orthogonal basis for symmetric functions. Note there is a * after the name. Best, Anne On 11/9/13 12:34 PM, Mike Zabrocki wrote: I guess that I should make it clearer that the first time I searched the log with: $ git log to find the commit message by Travis by looking through all of them to find the one relevant to the branch I was interested in. It wasn't until later that I realized that could checkout the branch first and then check the logs only relevant to that branch. The command that I think should work to read the log of a branch without checking it out doesn't seem to work for me. -Mike On Saturday, 9 November 2013 14:24:18 UTC-5, Mike Zabrocki wrote: Hi, Sorry I had to leave yesterday during the discussion of the workflow/searching. It seems like you made a lot more progress on the document. I was reading the searching section and I still don't quite see how to tell who wrote the code or who posted: origin/public/combinat/sf/sp_orth I even searched the logs and I didn't see the name of branch but I did see: - commit 226c37a8561486888d0231095ac6df379aa46323 Author: Travis Scrimshaw tscrim at ucdavis.edu http://ucdavis.edu Date: Fri Nov 8 18:59:36 2013 -0800 Initial version of symplectic and orthogonal basis for symmetric functions. Currently this does not work correctly because the basis do not give a Hopf structure by converting to the Schur basis and it is only a filtered basis, not a graded basis. - So I in this case I could realize that this commit message is probably related to this branch, but in general the commit messages are not so helpful: more grammar fixed typo fixed more doc fixes and I had to sift through those to find the one that I wanted. If it had been committed 3 weeks ago I doubt that there would be any chance that I would be able to figure out who is working on it to contact them to let them know I was interested. I'm sure that there is a way to resolve this issue. Is there a command to look up the creator of a branch? I found one way to (maybe) resolve this was to checkout the branch and then execute the command: $ git log HEAD ^master but what didn't work was $ git log --remotes='origin/public/combinat/sf/sp_orth' ^origin/master Shouldn't this command show me the commits on that branch? -Mike -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-combinat-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-combinat-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-combinat-devel. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sage-combinat-devel] Re: sage-combinat move to git
Thanks, I thought the * was to complete the name if I didn't know the ending. -Mike -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-combinat-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-combinat-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-combinat-devel. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sage-combinat-devel] Re: sage-combinat move to git
Sorry I had to leave yesterday during the discussion of the workflow/searching. It seems like you made a lot more progress on the document. Yes, and more this morning! I will send out an e-mail in a second when the page is semi-stable. One thing that Travis and I tried out in practice after you left was the model where a developer keeps a copy of a branch in his/her own user space u/user and in public/ when it is almost finished/being reviewed. But we both did not like that workflow, so I think the best option will be to follow what we currently suggest on the page. We can probably write some scripts for easy searching once the dust settles :-) like - search which branches a user has worked/is working on (i.e. did commits to) relative to master - search for combinat (that is already easy) etc Is there a command to look up the creator of a branch? I found one way to (maybe) resolve this was to checkout the branch and then execute the command: $ git log HEAD ^master but what didn't work was $ git log --remotes='origin/public/combinat/sf/sp_orth' ^origin/master Shouldn't this command show me the commits on that branch? I guess you could do git log --remotes='origin/public/combinat/sf/sp_orth*' ^origin/master | less and then browse this file. The first commit shows the person who created the branch. Best, Anne -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-combinat-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-combinat-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-combinat-devel. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sage-combinat-devel] Re: sage-combinat move to git
Dear Sage Days 54 Participants, Thanks again all for coming to Davis and working on the new git workflow together. Andrew and Volker, thank you for coming and teaching us the basics! The overall sentiment was that the new workflow is a great improvement over the old workflow. Soon we won't have to constantly install new beta-versions of Sage any longer, but can just pull from master. The workflow and interactions with Trac are much easier for a developer! And, the constant hassle with updating the sage-combinat queue will disappear! During the week, we came up with the following document http://wiki.sagemath.org/TentativeConventions which should make it easy to learn the new workflow. Mathieu will test it next week in Montreal. Dan and Travis, thank you for co-organizing! Best, Anne -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-combinat-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-combinat-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-combinat-devel. For more options, visit https://groups.google.com/groups/opt_out.
[sage-combinat-devel] Re: sage-combinat move to git
Hi! Meanwhile I got convinced that the change to git and the use of the new Sage development scripts is mostly a very good thing. My advice would be: Look at what the development scripts do. Some of them answer questions you asked. I am only a bit sceptical in one aspect of git resp. the proposed git-based workflow: History. If I understand correctly, the proposed notion of history includes all aspects of work in progress whose result will eventually be merged into Sage in *future*. Why does the notion of history matter? Well, it is also stated that changing the history is bad. Namely, if Alice works on branch A and Bob works on branch B *on top of* A, and Alice changes a commit message or folds commits *without* changing the resulting code (!), then from the perspective of git A changes essentially. Hence, Bob needs to rebase B because of (trivial) changes in A. On the other hand, this rebasing is really trivial, if I understand correctly: Bob just needs to do git checkout B (in order to change to his branch) and then git merge A (in order to merge all the changes that happened in A since Bob started work on B). Since Alice changed A in a way that did not change the code, this merge should work without problem. (Note: Sorry, I am rather new in git, it could be that the command to use in this case is git rebase A B and not git merge A; git rebase can do other nice things, such as take changes that happened between two commits and move it past other commits) In other words, the consequences of the weird notion of history can easily be fixed, probably in an automated way. On 2013-11-04, Anne Schilling a...@math.ucdavis.edu wrote: - Should we use a fork for sage-combinat? Or branches for the various patches or projects? I have not been an active user of the combinat queue, so take this as an outside view: My impression was that the workflow on the combinat queue was much different from the workflow in the rest of Sage. It happened repeatedly that I had problems reviewing patches from the queue because they have not been posted on trac, and if they have then soon the patch in the queue and on trac became out of sync. Hence, from the viewpoint of workflow, the combinat queue constituted a fork. I think it would be excellent if Sage workflow and sage-combinat workflow would coincide and allow for an easy transition. I guess one option would indeed be to simply say that sage-combinat is just formed by a collection of branches, in the same way as trac is formed by a collection of branches. I am not totally sure about the technical details, but if I am not mistaken, git is able to merge a branch from one repository into a branch from another repository. Hence, it would probably not matter whether sage-combinat is a sub-collection of the branches on trac, of if sage-combinat is a separate repository. That said, I guess reviewing of branches happens on trac. Hence, a branch that is supposed to be reviewed and be merged into the released version of Sage should appear in the trac repository. As I said, it *is* easily possible to take a branch from a separate sage-combinat repository, work on it in a local repository, and push it to a new branch in the trac repository. If I understand correctly, keeping the branch on sage-combinat and the corresponding branch on trac synced is as easy as keeping your local repository synced with the trac repository. Only it needs someone to regularly do so (I could imagine that this someone is in fact a script). * If we don't fork, then is there some way we can tie all of the combinat branches together? Specifically can we list all branches which don't have ticket numbers. If I am not mistaken, git allows to use tags on branches. Hence, I guess it should be possible to implement this based on tags. Ask git experts. Of course, if sage-combinat would become a separate repository (such as sage-on-github and sage-on-trac are separate), the problem would not arise. Is there an automatic way to remove a sage-combinat branch once it has been merged into main sage? There is a sage development skript that removes all the branches from your local repository whose commits have already been merged into the master branch. So, there should be an automated way. - How do we transform the queue into git branches, how do we handle dependencies? How did Andrew Ohana and friends did the corresponding task for the Sage mercurial repository? Handling dependencies is trivial in git, if I understand correctly. - Will it be easy to switch between branches (like experimental code, branches to be reviewed etc)? Switching between branches is totally trivial. Just do git checkout name-of-branch, and you are there. This even holds for a branch that belongs to a different remote repository. Again, just see what the Sage development scripts are doing. There is sage --dev checkout --ticket=12345, which would automatically - create a branch
[sage-combinat-devel] Re: sage-combinat move to git
Hi Nicolas, On 2013-11-04, Nicolas M. Thiery nicolas.thi...@u-psud.fr wrote: - Switching from one branch to the other. As Simon pointed out, this will be easy. However whether it's practical or not will depend on how much time we will have to wait for recompilation in average. Part of the answer will be in the compilation cache[1] infrastructure that Andrew co have been exploring, but I don't know how far this project progressed. Yes, that's a point I forgot to address (even though some of my own patches tend to touch parent.pxd and are thus a pain in the neck). On my laptop, I have installed ccache, and I think it really reduces the time needed to change back and forth considerably. - Mitigation of the divergence between parallel development branches. An important feature of the workflow is to be able to request things like ``pull on my local Sage all the experimental features about tableaux, categories, and semigroups''. Hmm. This might be an idea for a new Sage dev script. I don't know how it is called and how it could be implemented (by lack of knowledge of git). But I am convinced that people on the git-workflow mailing list would know how to write a script that pulls (and then merges) all the branches that are tagged semigroups. Maybe we should leave it open for tiny changes like the finalization of patches that are just about to go into Sage 5.13 (typically if the release manager notices a glitch in a positively reviewed patch, we don't want this to bump that patch to 5.14). I am of course thinking about #10963 here in case the migration would occur soon. In fact, on my laptop, I have a git branch for #10963. Best regards, Simon -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-combinat-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-combinat-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-combinat-devel. For more options, visit https://groups.google.com/groups/opt_out.