Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Well, this isn't really a question that fits well with SO.</p> <p>Nevertheless, here are some of my personal thoughts:</p> <p>As was pointed out in the comments to your question, using Github [Enterprise] for this might be somewhat over the top when it comes to teaching Git. While you will need some kind of server to allow the students to get and hand in their data, Github is very focused on its web interface. Even if using Github for collaboration is part of your class, you should put considerable effort in having the students learn Git first.</p> <p>I am not 100% sure about how forking and permissions behave in GHE, but it usually goes like this: A public repository can only be forked to a public repo; if the forking user wants to change the repo's status to private (if GHE even allows that), it will remove the "fork" connection (thereby making Pull Requests impossible). If a user clones a private repository, it will automatically be private, but as far as I know, it will <em>retain the permission list</em> of the original repo. That means: if you give all your students access to the private repo to clone it, all of their forks will (by default) also have those permissions, and once again their code will not be private (enough).</p> <p>Thirdly, I don't think PRs are a good way to have students hand in their assignments. PRs are intended to propagate code/changes into the upstream repo, but that would mix up the code of all students. Instead, have the students <em>tag</em> the commit which they want to submit for grading, and then notify you about the tag somewhere (posting an issue on Github, sending an email, whatever). Expanding on this, you could use a server solution like <a href="http://gitolite.com/gitolite/" rel="nofollow">Gitolite</a>, in which you can forbid users to delete tags -- thus, once submitted, students cannot change or take back their submissions.</p> <p>And finally: depending on the structure of the assignments during this class, I don't know if using a single repo/fork structure is a good way to learn project management. Let's assume assignments work like at my university: every one or two weeks, the students get assignments, which are pretty much self-contained. Following the standard one-repo-per-project convention, that would be somewhere between one to four repos per student per week. Handling this with fork-networks creates considerable overhead for your teaching assistant (at least on Github, when doing it by hand; using the Github API or a more customizable solution like Gitolite, this could be scripted).<br> If, on the other hand, you have a single (or maybe two) projects on which a student works during the whole class, submitting it for review regularly (or once at the end), using a fork-network or something similar is much more feasible. In that way the idea of using tags will also teach the students the convention of using tags to mark important milestones (which, in some contexts, might be releases).</p> <p>That's all from me for now. I certainly advise you to use a more interactive medium suited better to a discussion like this. SO is intended for questions which have a relatively unambiguous answer. You could stop by the IRC channel <code>#git</code> on irc.freenode.com or try the SO chat; or maybe a discussion forum would also work well.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload