---
# System prepended metadata

title: Tampere course
tags: [Training]

---

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

