# Tampere course ###### tags: `Training` Link to this shared note: https://hackmd.io/@coderefinery/tampere-2020 Here we can ask questions and share links. ## For next time - avoid command line (at one point I did something on CL and this was confusing) - for two relatively unrelated exercises we have used "experiment" as branch name example (once on web, once on desktop), avoid reusing the name ## Brief intro - This course is brought to you by https://coderefinery.org/ and https://scicomp.aalto.fi/. - Instructors: - Richard Darst - Radovan Bast - Helper: - Kerstin Lenk - Narayan Puthanmadam Subramaniyam - CodeRefinery: - Past workshops: https://coderefinery.org/workshops/past/ - Lessons: https://coderefinery.org/lessons/ - Course: https://coderefinery.github.io/github-without-command-line/ - We follow [The Carpentries Code of Conduct](https://docs.carpentries.org/topic_folders/policies/code-of-conduct.html) - Please indicate problems with audio, video, readability, speed - Tour of [Zoom mechanics](https://coderefinery.github.io/manuals/zoom-mechanics/) - Tour of HackMD (this page) - We don't record but we would like to share anonymized questions and answers after the workshop (we will create a workshop page to also acknowledge helpers) What is the most important point that you would like to get out of this course? - get thebasic idea and how to start using the tools;) - Identify a suitable workflow in using git ## Basics - is there a max amount of memory we can use in github for our data/scripts? - If you search you can find limits. I seem to remember ~1GB/repo recommended, eithen 10GB or 100GB/repo you might get an email asking what is going on. - https://stackoverflow.com/a/59479166 says hard limit 100GB, but one file max size 100MB - Is TUNI gitlab "safe" to use for manuscripts? - You'll have to check the TUNI info, but usually the point of a local gitlab is to make a safe place for confidential data. Anyone else know? - Thought from class: it's probably OK for stuff you don't want others to see, but don't go putting something like medical records there! - Local service also means you have someone to complain to if things go wrong. - Is forking public for others to see, i.e. does everyone see who's forked what? - Each repo on Github can be private or public. Forks of public repos are by default public. You can probably change it yourself. - Each repo has a public list of all forks (you can see the list of all forks): https://github.com/achael/eht-imaging/network/members - does the original author knows/get notified if someone forked his repository? - There isn't any automatic email notification, but the list above would show them. It's nice to see people interested in your work... - Sometimes this list can help to identify interesting new developments of a derivative project and to start collaborations - if I want to make modifications to someone else work, is it better to make a branch or to fork the repo and then suggest the changes later? - You can create the branch inside the same repository only if you are a *collaborator* - this means that for many projects you have no other choice than to start with a fork first. Within the same group, creating a branch without forking is a bit simpler and absolutely OK. - Is there a public record on git servers of repositories going private/public? i.e. when was this repo first public/private, did it go back/forth - a repo used to be public, now it's private? - I quickly browsed the GitHub API and did not see an entry "since when", it only shows whether public or private. ## Creating a repository through the web interface - Even when working through the command line, you almost always make the repo through the web like this. - The coresponding way thecommit messages work in the command line is one line for the title, blank line, then extended description - (TODO: GitHub automatically takes you to pull request when you create a commit on a branch, update materials) ## Create a repository through GitHub desktop - (no comments) ## Contributing to existing repositories Exercise repo: https://github.com/bast/50_salads - What if there are two changes in one pull request, and the person reviewing doesn't want to accept both changes? - If you make multiple different commits, it is easy to take those commits separate manually (cherry-pick). Often, if these are unrelated changes, we will ask for multiple different PRs for unrelated edits. - Since everything is recorded in git, with a tiny bit of work, you can get the changes and take the edits you want - But, it's better to do something, than do it perfectly. - I don't know how to do that in GitHub Desktop but on the command line you can rewrite history with Git (combine commits, split commits, reorder commits, remove commits) and with this I would be able to edit an open pull request but I consider this a bit advanced. - There is this sqashing or so (when you also have the possibility to merge). I didn't understand the concept - "squashing" means "take every commit that is in the pull request, and make it one new commit". - It "changes commit history" (something you can learn more about later), and remove the appearence of the different branches ever existing - Git/GitHub and images - no problem to track them there, repository size up to 1 GB is usually manageable - for larger files one can use git-annex or Git LFS where large files are stored somewhere and only the metadata is tracked by git ## Feedback Please let us know how what you thought and how to make things better: - Something that was very good - Great rhythm of presentation, easy to keep up - ... - Something that should be improved - A visualization regarding pushing/pulling/commits in local/remote repositories "we're here now" - ...