# 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"
- ...