diff --git a/2022/2022-05-31_git-trilogy-part-1/slides/best_practices.md b/2022/2022-05-31_git-trilogy-part-1/slides/best_practices.md index f430fdfa5f9c4916cdf1654684259b260ba89a18..c20cfef1c037bbad180aa782d5351d719b6e26af 100644 --- a/2022/2022-05-31_git-trilogy-part-1/slides/best_practices.md +++ b/2022/2022-05-31_git-trilogy-part-1/slides/best_practices.md @@ -1,41 +1,15 @@ -# Wrap-up +# Summary -* Git makes things separated but interlinked! - * separation of changes into commits - compare with standard "versioning" of dropbox/onedrive/owncloud or labeling v1.2 manually - * separation of work into branches - compare with standard work in parallel - making copy of file and renaming, then "putting it together" - * separation of work into forks - compare with "I will make my own copy of the whole folder" +GitLab creates a convenient and efficient working environment + - merge requests + - issues + - assignments + - much much more... -<div class="fragment"> -* GitLab creates a convenient working environment - * merge requests - * issues - * assignements - * and much much more... - - - <div style="position:absolute;left:55%;top:55%"> - <img src="slides/img/fox.png"> - https://pixabay.com/images/id-5236832/ - </div> -</div> - - - - -# Wrap-up -## Glossary -* git -* repository -* fork -* commit -* branch -* merge -* merge/pull request - -## Best practices +# Best practices * Work on your <font color="red">own</font> branch (in your own fork), and **not** on `master` and **not** on `develop` * Do **not commit** to `master`/`develop`, but **submit a merge request (MR)** diff --git a/2022/2022-05-31_git-trilogy-part-1/slides/branches.md b/2022/2022-05-31_git-trilogy-part-1/slides/branches.md index 27473e4527951f92405d86b99afa522dd9a1a37a..a13c2376b5076de940438e4cc5b659869d3a79c6 100644 --- a/2022/2022-05-31_git-trilogy-part-1/slides/branches.md +++ b/2022/2022-05-31_git-trilogy-part-1/slides/branches.md @@ -1,8 +1,8 @@ # New term: <font color="color:red">branch</font> -* A sequence of commits (changes) is referred to as **branch**. -* A new branch can be created by __branching off__ from a commit. -* A **branch** can be understood as a named **version** of your repository. +* A sequence of commits (changes) is referred to as *branch*. +* A new branch can be created by *branching off* from a commit on another branch. +* A *branch* can be understood as a named *version* of your repository. <div style="position:absolute;left:50%;top:1em"> <img src="slides/img/branch_branch-off_detail.png" class="as-is" height="800px"/> @@ -14,7 +14,7 @@ Generally, in a repository, there are guidelines for contributing. -<div class="fragment"> +<br> A common development scheme is dual with a: @@ -48,33 +48,39 @@ Best practice is to <font color="red">create a new **branch**!</font> <img src="slides/img/branch_my-branch.png" height="800em"/> </div> -<br> +<br> Using branches ensures: -* your changes are made separately from other changes -* your version won't be affected by others -* all related changes are aggregated on one place +* your changes are made separately from other (unrelated) changes +* your version will not be affected by other contributors +* all related changes are aggregated in one place * work can continue if the development of one feature gets stuck +<br> Are you working on more features in parallel? -<font color="red">Create a new **branch**!</font> for each of them :) +<font color="red">Create a new **branch**!</font> for each of them! + + +# Quick recap +What is the difference between a *fork* and a *branch*? -# Time to practice! +<div class="fragment"> +<br><br><br> +<div align="center"> +<img src="slides/img/forking_detail-with-branches.png" height="500em"/> +</div> -1. What is the difference between **fork** and **branch**? - <div class="fragment fade-in-then-out"> - <div style="position:absolute;left:10%;top:8em"> - <img src="slides/img/forking_detail-with-branches.png" height="500em"/> - </div> -2. Why is best practice to branch off from `develop`? -3. Switch between branches - <div class="fragment fade-in-then-out"> - <div style="position:absolute;left:10%;top:8em"> - <img src="slides/img/branch_GUI_switch.png" height="500em"/> - </div> + +# How to switch between branches? + +<div style="position:absolute;left:10%;top:8em"> +<img src="slides/img/branch_GUI_switch.png" height="500em"/> +</div> + +Why is best practice to branch off from `develop`? \ No newline at end of file diff --git a/2022/2022-05-31_git-trilogy-part-1/slides/commit.md b/2022/2022-05-31_git-trilogy-part-1/slides/commit.md index e3fdc167a2ba77f061bf64c53da4ad6d9f4a5e22..7c1fd0be48dd30af338ad211b3644b70166540db 100644 --- a/2022/2022-05-31_git-trilogy-part-1/slides/commit.md +++ b/2022/2022-05-31_git-trilogy-part-1/slides/commit.md @@ -4,17 +4,18 @@ * Every change moves the repository to a new state. * Every change added to the sequence of changes is called **commit**. * Every commit has: - * message - why - * author - who - * timestamp - when - * unique identifier + * content - what? + * a message - why? + * an author - who? + * a timestamp - when? + * unique identifier - tracking number <div style="position:absolute;left:60%;top:1em"> <img src="slides/img/commit_history-diagram.png" class="as-is" height="800px"/> </div> <div class="fragment"> -Gitlab UI: +Gitlab: <div style="position:absolute"> <img src="slides/img/commit_GUI_1.png" class="as-is" height="350px"/> </div> @@ -23,9 +24,10 @@ Gitlab UI: # New term: <font color="color:red">commit</font> -## Time to practice! -1. Notice last commit on files +<img src="slides/img/icon-live-demo.png" height="100px"> + +1. Notice last commits that modified files/folders <!-- .element: class="fragment" data-fragment-index="1" --> 1. Review history of your repository <!-- .element: class="fragment" data-fragment-index="2" --> @@ -45,10 +47,5 @@ Gitlab UI: <img src="slides/img/commit_GUI_click-on-commit.png" class="as-is" height="75px"/> </div> <div class="fragment fade-in-then-out" data-fragment-index="3"> -<img src="slides/img/commit_changes.png" class="as-is" height="600px"/> +<img src="slides/img/commit_changes.png" class="as-is" width="90%"/> </div> - -What is this - -Notes: -Congrats! Now you have reviewed recent changes in your repository! \ No newline at end of file diff --git a/2022/2022-05-31_git-trilogy-part-1/slides/forks.md b/2022/2022-05-31_git-trilogy-part-1/slides/forks.md index 6246558f2695d77e929501efd5b27059dd015ed7..f958de248538688433e3f2fd35197eeab3fde2a9 100644 --- a/2022/2022-05-31_git-trilogy-part-1/slides/forks.md +++ b/2022/2022-05-31_git-trilogy-part-1/slides/forks.md @@ -20,18 +20,15 @@ # New term: <font color="color:red">fork</font> ## What is a `fork`? -- In general, by default you can only **read** files in a repository. -- In general, by default you **cannot write** changes. +- In general, by default, you can only **read** files in a repository. You **cannot write**. <div class="fragment"> <img src="slides/img/forking.png" height="400px"> -- You have to work on your **own copy** of the repository +- You have to work on your **own copy** of the repository in order to make changes. - In other words, you have to work on your own <font color="red">**fork**</font>. -<br> -## Why? @@ -39,7 +36,9 @@ Browse to the original repository and click on the button `Fork`: -<img src="https://docs.gitlab.com/ee/user/project/repository/img/forking_workflow_fork_button_v13_10.png" height="250px"> +<div align="center"> +<img src="https://docs.gitlab.com/ee/user/project/repository/img/forking_workflow_fork_button_v13_10.png" height="150"> +</div> <br> @@ -48,19 +47,19 @@ Browse to the original repository and click on the button `Fork`: ## Time to practice! -1. Fork the practice repository: <br><br> -TODO<br><br> +1. Fork the training repository [https://gitlab.lcsb.uni.lu/R3/school/git/basic-practice-pages](https://gitlab.lcsb.uni.lu/R3/school/git/basic-practice-pages) + + +Congrats! Now you have your own **fork**! -Congrats! Now you have your own **fork**! +# How to update my fork? -# How to update my fork? - TODO: move to the end or delete -\ -As you have your own fork, it will not automatically be updated once the original repository is updated. +As you have your own copy (fork), it will not automatically be updated once the original repository is updated.  You have to update it yourself! <br> -**More on that later!** +**More on that later - time permitting** diff --git a/2022/2022-05-31_git-trilogy-part-1/slides/gitlab.md b/2022/2022-05-31_git-trilogy-part-1/slides/gitlab.md index dc042490d5ed684ae6aa99a720f23b3b451bb8f4..2766afcd85681944c3927a7ee18c8bea05b209cc 100644 --- a/2022/2022-05-31_git-trilogy-part-1/slides/gitlab.md +++ b/2022/2022-05-31_git-trilogy-part-1/slides/gitlab.md @@ -1,4 +1,5 @@ # Git repository hosting platforms + <div style="position:absolute; left:70%"> <img src="https://gitlab.com/gitlab-com/gitlab-artwork/raw/master/logo/logo-extra-whitespace.png" alt="GitLab" style="width: 500px;"/> </div> @@ -22,22 +23,15 @@ Another popular platforms: -# Time to practice! - -<img src="slides/img/icon-live-demo.png" height="100px"> +# Login and report and issue 1. Login to [https://gitlab.lcsb.uni.lu](https://gitlab.lcsb.uni.lu) * use your LUMS credentials -2. browse the existing repositories - * Explore -> - * navigate to the training repository +2. Browse the existing repositories + * Explore and Search + * Navigate to the training repository [https://gitlab.lcsb.uni.lu/R3/school/git/basic-practice-pages](https://gitlab.lcsb.uni.lu/R3/school/git/basic-practice-pages) 3. Inspect project/repository folder structure -4. Discover an issue (see README.md) and report it +4. Report an issue -<div class="fragment"> - -Congrats! You are a **reporter** :) -</div> +<img src="slides/img/icon-live-demo.png" height="100px"> -notes: -- reporter is very important role diff --git a/2022/2022-05-31_git-trilogy-part-1/slides/img/commit_GUI_main.png b/2022/2022-05-31_git-trilogy-part-1/slides/img/commit_GUI_main.png deleted file mode 100644 index 3ad39e663903b15ff5656cacb64490d5c0cc6625..0000000000000000000000000000000000000000 Binary files a/2022/2022-05-31_git-trilogy-part-1/slides/img/commit_GUI_main.png and /dev/null differ diff --git a/2022/2022-05-31_git-trilogy-part-1/slides/img/commit_changes.png b/2022/2022-05-31_git-trilogy-part-1/slides/img/commit_changes.png index 7da22c2778c8c8962df516662fd00236cff13929..f00a383ac3aba3fc227fe2b8a6dd2428a564e9af 100644 Binary files a/2022/2022-05-31_git-trilogy-part-1/slides/img/commit_changes.png and b/2022/2022-05-31_git-trilogy-part-1/slides/img/commit_changes.png differ diff --git a/2022/2022-05-31_git-trilogy-part-1/slides/img/commit_history-diagram-branch-only.png b/2022/2022-05-31_git-trilogy-part-1/slides/img/commit_history-diagram-branch-only.png deleted file mode 100644 index 625d366004291f85bb5b6a14b7167c54d9defcc1..0000000000000000000000000000000000000000 Binary files a/2022/2022-05-31_git-trilogy-part-1/slides/img/commit_history-diagram-branch-only.png and /dev/null differ diff --git a/2022/2022-05-31_git-trilogy-part-1/slides/img/forking.svg b/2022/2022-05-31_git-trilogy-part-1/slides/img/forking.svg deleted file mode 100644 index 362d98cde3f9d28de7da6d729cce13a65fbb8966..0000000000000000000000000000000000000000 --- a/2022/2022-05-31_git-trilogy-part-1/slides/img/forking.svg +++ /dev/null @@ -1,240 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - version="1.1" - id="svg2" - width="512" - height="404" - viewBox="0 0 512 404" - sodipodi:docname="forking.svg" - inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"> - <metadata - id="metadata8"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> - </cc:Work> - </rdf:RDF> - </metadata> - <defs - id="defs6"> - <marker - inkscape:stockid="Arrow1Mend" - orient="auto" - refY="0.0" - refX="0.0" - id="Arrow1Mend" - style="overflow:visible;" - inkscape:isstock="true"> - <path - id="path862" - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" - transform="scale(0.4) rotate(180) translate(10,0)" /> - </marker> - <marker - inkscape:stockid="Arrow2Lend" - orient="auto" - refY="0.0" - refX="0.0" - id="Arrow2Lend" - style="overflow:visible;" - inkscape:isstock="true"> - <path - id="path874" - style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1" - d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " - transform="scale(1.1) rotate(180) translate(1,0)" /> - </marker> - <marker - inkscape:stockid="Arrow1Lend" - orient="auto" - refY="0.0" - refX="0.0" - id="Arrow1Lend" - style="overflow:visible;" - inkscape:isstock="true"> - <path - id="path856" - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" - transform="scale(0.8) rotate(180) translate(12.5,0)" /> - </marker> - <clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath4636"> - <rect - style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:14.70300007;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect4638" - width="457.06781" - height="457.06781" - x="-855.93219" - y="191.72882" /> - </clipPath> - <clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath4636-5"> - <rect - style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:14.70300007;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect4638-3" - width="457.06781" - height="457.06781" - x="-855.93219" - y="191.72882" /> - </clipPath> - <clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath4636-6"> - <rect - style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:14.70300007;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect4638-0" - width="457.06781" - height="457.06781" - x="-855.93219" - y="191.72882" /> - </clipPath> - </defs> - <sodipodi:namedview - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="1848" - inkscape:window-height="1016" - id="namedview4" - showgrid="false" - inkscape:zoom="0.41306238" - inkscape:cx="614.44988" - inkscape:cy="412.11085" - inkscape:window-x="72" - inkscape:window-y="27" - inkscape:window-maximized="1" - inkscape:current-layer="svg2" /> - <g - id="g2264" - transform="matrix(0.66901186,0,0,0.66901186,-50.839779,-375.17846)"> - <image - y="0" - x="0" - id="image10" - xlink:href="data:image/png;base64,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 kZJZ/9cg0gjgfru1AAAAAElFTkSuQmCC " - preserveAspectRatio="none" - height="404" - width="512" /> - <image - transform="matrix(0.52247993,0,0,0.52247993,692.85628,25.386292)" - clip-path="url(#clipPath4636)" - width="910" - height="380" - preserveAspectRatio="none" - xlink:href="data:image/png;base64,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 " - id="image927" - x="-825.54236" - y="203.72882" /> - </g> - <path - style="fill:none;stroke:#000000;stroke-width:7.43499994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:7.43499994, 14.86999989;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#Arrow1Mend)" - d="m 398.45698,-229.21991 c 450.88829,-2.07771 512.89649,-2.07771 512.89649,-2.07771" - id="path851" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> - <flowRoot - xml:space="preserve" - id="flowRoot1891" - style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" - transform="translate(-52.106759,-505.88167)"><flowRegion - id="flowRegion1893"><rect - id="rect1895" - width="362.91519" - height="54.779633" - x="-8.5593224" - y="446.7966" /></flowRegion><flowPara - id="flowPara1897" - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:40px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">Original project</flowPara><flowPara - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:40px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start" - id="flowPara2019" /></flowRoot> <flowRoot - xml:space="preserve" - id="flowRoot1891-6" - style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" - transform="translate(1053.0765,-501.84847)"><flowRegion - id="flowRegion1893-4"><rect - id="rect1895-5" - width="220.83046" - height="56.491547" - x="-8.5593224" - y="446.7966" /></flowRegion><flowPara - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:40px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start" - id="flowPara2023">Your fork</flowPara></flowRoot> <flowRoot - xml:space="preserve" - id="flowRoot1891-9" - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:26.66666603px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none" - transform="translate(-241.12253,-896.22096)"><flowRegion - id="flowRegion1893-9" - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:26.66666603px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start"><rect - id="rect1895-4" - width="1294.1694" - height="102.71184" - x="-8.5593224" - y="446.7966" - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:26.66666603px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start" /></flowRegion><flowPara - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:26.66666603px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start" - id="flowPara2019-1">https://gitlab.com/[someone's-name]/<flowSpan - style="fill:#008000" - id="flowSpan2082">[repository-name]</flowSpan>/</flowPara></flowRoot> <flowRoot - xml:space="preserve" - id="flowRoot1891-9-8" - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:26.66666603px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none" - transform="translate(824.56008,-896.22096)"><flowRegion - id="flowRegion1893-9-6" - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:26.66666603px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start"><rect - id="rect1895-4-0" - width="1294.1694" - height="102.71184" - x="-8.5593224" - y="446.7966" - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:26.66666603px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start" /></flowRegion><flowPara - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:26.66666603px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start" - id="flowPara2019-1-4">https://gitlab.com/<flowSpan - style="fill:#ff0000" - id="flowSpan2080">[Your-name]</flowSpan>/<flowSpan - style="fill:#008000" - id="flowSpan2084">[repository-name]</flowSpan>/</flowPara></flowRoot> <g - id="g2264-9" - transform="matrix(0.66901186,0,0,0.66901186,973.83847,-375.17846)"> - <image - y="0" - x="0" - id="image10-7" - xlink:href="data:image/png;base64,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 kZJZ/9cg0gjgfru1AAAAAElFTkSuQmCC " - preserveAspectRatio="none" - height="404" - width="512" /> - <image - transform="matrix(0.52247993,0,0,0.52247993,692.85628,25.386292)" - clip-path="url(#clipPath4636-6)" - width="910" - height="380" - preserveAspectRatio="none" - xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA44AAAF8CAMAAAC37BWdAAAAM1BMVEXwUDPwUDPwUDPwUDPwUDPw UDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPwUDPNJiJ+AAAAEXRSTlMAIFCAsMAQQKDQ /5Bw4DDwYCESAgEAABWfSURBVHgB7N0HgoM8DkBhGYMFSgzc/7K7f29TQZ6YKO87wZS8UC3Lk0pD HqdfjXlIgldUNM/TYn9ZpttdizwY0q3aP9XbqxWJ9bbYu5bbKo8DneytSeVlIOVqb3T4esY62fum VfAS0mxfmh8RJLJ9LEt8KNm+ZS6Cn1UW+8xSJDhotW/aBsFPWqt9rq4SGrIdMAt+zrrZV7bQPWK2 Q6Yi6FAjPVIjly8daqRHajxgkY6okR7jutsJs3REjfQYldopu3REjfQYU6l2ypakC2qkRx5xvDVK T9RIjwGlzc5S6YIa6ZG7qm9N0hU10mM0ZbPzVumKGumRhxw87OhfIz3GtJjDJp1RIz1GksxlkFao kR5xN5dZWqFGesRoLlVaoUZ6xGY+SdCmRnpEMqdB0KZGeoSaUxa0qZEekc1pFjStkR7Jsf97ctRI j5jMaRG0qpEeydFL4K+RHkGOwWr09whypEZ6BDnGq5EeyRH+GukR5BivRm+PIEfNX0rU+JAeQY6z fUmpMXyPGM1pedCXglLjQ3oEL8lVd47UGKBH3C/xCrl9TanxET2CBVbFnyM1BugRxZz0Qd8JytT3 +D2imk8Rv/2lciyLXbdHMLoqR8iRHv2wX+BOzniVHOkRjD1erpIjPYJNASxEjvToh737uep6lRzp EWwoNwTJkR79cOs9Ri5fJUd6BJuRT1FypEc/5M4zVrcoOdKjH0q1U7YkLSQLkyM9+kHtlLs0sXtz pEd65G7OKG3cnDnSIz0yo2Mp0sbiy5Ee6ZFPxZakjWKuHOmRHvlU1FUa2WPmSI9wKKPnTNVhDp5j KvT4o3j8OBdpZoud47ot9IgTtNq31EHaWS10jutmRo84JW/2pS2XHs9Y9GlrpEecVHL1xHhCjZXj 2xrpEQ7DuNlHxl0aWy1cjm9rpEc4DHmyN6Y8SHtzwBzf1kiP8El6z3mefjHnfNfUe+2zPnWN9IhQ k0H0uWukR0Sam6VPXiM9ItDKLn32GukRcRaS6NPXSI8Is+xZn79GekSUVZYaoEZ6xHUNdoBGqJEe EWNiloaokR4RYp6kxqiRHnFJqx2iQWqkRwSYSaFRaqRHXM9sx2iQGukRAbax0zg10iOuZbCjNFCN 9Ijn+ty+oQF+qxg9ghpNg/1W9Ihr0M2O01g10iOuYbczNEiN9IgAe59rgBpP9VjHPOhv7nna6LEh rIudo3FqPNDjvCf5l/VW6bERZDtLg9To3+pEZ3psAFrtNA1Wo6NHSTM9wkknc9BwNTp6FF3oEQ7D ZC45YI2OHiXTI05KuZrXmE9IF6/R0aNu9Hgc0n2xXvTqNTp6XCs9HoI0zNU60svX6OixLPT4TUia x2qd6fVr9PRY6fG8VXXPv7pNv8u/G1T1/+zdB5bjKhCF4QJEKomw/82+nH3GbVfL9biH+jfQM5Y+ gSKkWrgvR/RYiJWXKCNoFHiU/33zmH0oX++fI0bBSlGi+qd3eF6lDKFR7tGzeXw950Ns/F6xXJk+ WzaOChpVPJ7m8bVyOAZLi6dP9LEu46igUcVjaubxy9x1jIV3yGAcFTTqeMz8NPPYz8q89A4ZjaOC RiWP0Tx++fzJ2hyrcdTXKPQoHx7N44zMvD5HNo4LamSu9w2P5jGFxozAMRnHJTVyu+tjJ+bRlcGM wTEbxyU18kWihnl8wMjMKByncVxSI7s71lcwjykMBuIYjOOSGusdn3Q3j3MwI3E8jOOKGvkkWYnN 41/1yIzFMRrHFTWyJ2HNPD7O/GA4DuO4okbuJOxg8/hbrjIeRzaOK2rkbw4J5nEOxuOYjaOCRnWO 5vFkBuTojeOSGiNJ88zmMUWG5BiMo4JGTY6ZzWOvjMnxNI76GmE5gnjsg0E5RuOov8FxOfLouBoB ODbjuOQGHyQtMIZH08hZZsU46m9wfY5yjxgaATg647joBnck7OCtPfbBuByzcVx0g3sSVnlnj6ky MMfLOK6pkQPJSsw7e4yMzDEYxzU1ciRZnnf2eDI0x2gcRRoVSvo7JLxHz1AZRxiNPElU5X09ugHO kY3joho56v8T0T1GBufYz2Ec19MoudVhHi/G4/iQL8M4LqiRC5lH/KmqYIech3FcSKNoeDSPB6Ny fCjNyPo7vCuqsAA0iodH85gZmeND7qraHCnhcOxj6eHcPFbGqMZYQrheWOTcnU15/4n6HHE0ckvm UXs1hBHjGX7viI1vKcZ4vibw2aVW46ivUThdNY83yKllPt56mGdlYWeYOXf6Zj4axzU0Mk/zqDQ4 HtPRD0rzkPGmeyrGcQ2N5lFncGzB0dOcaKWPQPcUjeMaGpm7efz0ZdU25UvvqOyn3jiuoNHGR4V7 jiPQa6VD61rcQ8ZRX6N4oUfz6FhcdPRyfugsfPRQNI6raGQ+knl8XmBp54e/35qNo65GhZo3j09r WmcCqcqnq8YRSKN8SmUeu4JGqcdgHNU1KlSyefxRp5pGotT4rYYzjrgaBa8jm8fGoi6V37MYRzyN co5ue4+ORR1Kbzk74winUc4xlN09XixpJCUcxTjiaZRz5N09HizJq43GzjjiaZRz3N3jYEFR75nu YhwBNco57u2xq+9CTj4tNo5yjTAct/Z4yX9NpeHxMo6IGuUcd/ZYWNDUfIGkGkdIjXKO+B5V99Wh e6ezG0dIjXKO+3pkQUX3OaDTOGJqlHPc1aNjQV73heBmHEE1yjlu6jGzIO0h2RlHuUZQjnt6vIS/ pSqQyzjKNaJy3NJj4PcL2i+RHMZRrhGW444eD34/rz0mD+Mo14jLEd+jyq7a1c9YnXGUa8TliOhR n6P+9VxvHCE1Cjju7ZHfb+j/2WAc8TVKOMJ51OcY9f/sYRzxNYo44ntE4Djkf9I44moUcMT0qM9R VYhxxNco5Ajt0Tgaxz4YnyOoR32OQZ8jO+MIrFHAUeBxxBDyr/lwRkyPEo6HPkfOxhFVo4CjwGO8 /iMln+1DHu3KqnHU17gSRy4kyB/6Ho2jcQTTKOAo80ju0PcIyNHxY8ZRXyMOR6FHyhXJo4RjU3jL 0jiqagTgKPVIJ5JHFqTwlqVx1NUIwFHs0Q8cjyyoK3y+zjjqagTgKPbYG4zHyu83FRbNMo7KGgE4 ij2miuJRsgudCldyjKO2RgCOco8NxOPB71f1P9CTjOMXOSSNUo5ij31geAwsyKkv8ErGUXk+tiZH sUfPN9fSMkt0XMq3OYyj/HI+JkeA+x11me+sVu1lQaJxfF7mXTiKPTa+uUD3l1hS/+CFHOMoqO3D kYv+EUuuQGVDFmUdwTg+bfJGHKV738E3F5dZi9yROH/7yapxbFtxFHp0fHeZbi8oHxhSu/v/bRwn 78WRC8DwqDql9qqjMT3LOB67cWwkySOcPbKo4RQH42Ycn5V4N47nInP6k24vsqia9KZVxTg+y2/H sS9y77HR7V0s61DTyNM4PuvcjWNb5rjl6O46CytaGtkZR8HftSurD/HdzQXuPErnq+UjUwLjOHbj eJGwCPBkzsnSWqbX6/UzJ8zGkXfjmElYAbjV0Vnemei1UmBx3jgax1tetwsAHKmyvDbplWZjcYP+ mXE0jiTNI3Cc/J3aleh56Wq33dwxjsZxrPPiy6D7S4O/1zGfiPTlzkcfjKNxjOtwjCRI4cZVDN7R QzkcCq95GkeAjKP6s+4xhhB8/iUfwhmbyq0d49g241jxOapdAFafnRvHYzOOvA7Hkz6R42ULxlFw +d446vxSk/YaHkcyjl/Vd+PYl+HY6SOlATs4Gkcam3H0qzwk1+hDBdzB0Tiem3E8VzluFfpUlVds knH8OrcZx7rKrD7Tp+owW804PhT34siJRF0oc9VFp6vdOL5U3ozjXGMGOOmDVdTrOMaRyl4cI0ly +oMj/hpIglME45jGVhzZrXDFK9NH87xUoxvHl/N7cSwLHLJO+nAB9aqqcaSwFUd2Cr/QjZ+mwT8F Ock4vlPZiuMhPxfTn7uJi6j3OIwjlR04yn+1A0Djsovo1mQctT0CcJSvPuwVNKp5BNBoHKlsxJGL fKoKo5EoRdSLqsaRykYceQpGGQCN623T2sk4iio7cBR4LLAaiQLqTNU4UtmI4+iAGgX5AarROFLZ hyOPCahRkKv8v1WIjKO+R0SOzJfgaoiiRvwJ60XGUd8jKkcuib6oNwCNkhVuFBqZjKOyRwCO8mWb UmAFjRpdg7U7EhlHfI+aHJkPJ18bBkcjUQq6IMckMo74HpU5MpcuxyjXqN8FOTQaRypbcWSu18MQ 2c/BplFay0R7cgwE5lGBo6B6zky/l/J1PFpE11hg56nGkQo+R0kjVv5epnGERPtyPAnfoz5HeZAa U2Gl2gPGvThG0vdoHME0VtapTiLammOlFTwaR9M4SifanSOTnkfjaBqfr2FuHLu+R+MIpLF/XuP4 y6JxnKTv0TjiaBz8WkN8iyjTXxnHQgt7NI4wGpObZ+S3GjHkRP/MODbS92gccTU+X/Wy+3BE/rpY Qnb0kHHkru/ROKJoFP6kOc8Qjhhj439UY4whXDnTDzOOJy3q0TjCaByO7sk4DlrTo3GE0ciBjONd KyTNJT0aRxyNlYzjbftSS/oejSO+RsHOahwXWJysGEdkjYL9xzheLM+v5tE4AmkcyTg+lPW2vbu6 3KNxRNaocDA3jjw8vVqah2B6Uowjnkb5r2kcE3+rM702LkbhozzFOMJplN9yNI7E36vNryjO0lj+ KE8xjnAa5bccjWPlbzbOTj8oX6V993PtBY2jvd8ov+VoHCN/v3EE/8+/nHIOIbZ7tkIxjqtqlB/W s3H8/M7U4i/xsxyARwFH01huuWVtHCdrNgnW47h+yNE0Tn5IcsvROHbW7CBljwrf8exxe4193HNQ No7EqiVMjyXRk+YA1qh/4thy34Sjl/wlzTwBehyZnpeOrTUGlhR/KfxS/qVEazfUPtZ/QqwTXRZf aX5urNENvqMaYzxDCDPn7Gipst65mWfNBsF5LPLTJ1yNC2yaFmMsIQSfcybQb8Z2erfEqmU0j4VI 3yOSRseyBDp/x5lItX4NFldyWvrk8SQsj4VI7hFJI9R2qb/SnLnTJ3P5Csf3dYxYgn9d5cWaNZDt Lpj99y01Jv5f+9Xl3Sx7DmesfHPxCDM7/cnG8xySx5rojeaGGmnyCrV4XjfMYn0ocXx6YA/hqYHK ml0E5LHTWx37aaTI69Ri8N8yyTqFdWarlXA8BnqvNLbTmHi1Wrk6MsfEqiUYj5Xeze+mkTyvWCsz QXLUH3MmoXjM9HZxM40UeNXi5TA5ZtbsIBCPkd4vb6aRIi9cnAmQI0XWjEA8ZhIU19FoHJlH6Xgc M2vmMTw2kjT30kiDVy9mNI4UWbFCEB4vEjW20kgMUMxgHDsrNgjCoyNRZSuNxBBFB8WRTlasI3hs JGtupZEYpADFMTXW6yQAjyfJSltppMog1Q7EkTLr1QjA4yRhbSeNFBmmC4gjBdbLAXjsJOzYSSMd jFNJOBwpsloXre+RpIWdNFJgoGrC4Zgqa1VJ3yMgRwCN5BnRIwBHRY+RlvcYSVreSSM5hvQIwFHL Y8x0UwWfI7hGogrmEYejisfS6b4KPkdwjXQyVgWFo8L3e1tIdGsFnyO2RnIM1gXAUeVCxOFxvmPW SNpE1igoMlajA3Gk3D41MDqo7wqStLCXRsoMVkXiSOlUeO1sfY+OhJW1NdrwyBcSR6Ieb7boAb+7 m0lY3EwjucFYjQTFkShHvqn2aBHDYyBh4BoFXQxWAONIlAt/vxo67HfpI8nK6BoFFezhEYAjUbqq wrf11t0fEok6l9dozwJwQOD4kBOKrGU6+OOzJ1FtQ42UwDw2EI4PJX9WfqN2hJxIv7LIByg7gkab r3ogjg/lq8Tx0qola+8PCrc6ygIa7XqO9FgbdLqFSc4hnDHG9rgK5swO4PisccI98DUK65WBSmRh eRyJ3i7ga5T3c3t3geg6CEBB9BKCJgT2v9nvrq/UIJ1ZQe3EoNDqtFer44fHrWNE/IU1Sn4veZKi ZguPF2tYJ9HIE52i2cJj0mUtaJwmo9nC49Z/qYpGbh4pPm+1VZ/QOE9W84THDhQRjRPldObwiMZR 4lkOHtE4WZoyPDb9P+/QOFmHThrPV4/y4hq3PF1Bc4bH9B8fNr+4xpbnq2n48Nix+dFSXl1juOjN hRCatXZ1zjHS0RUe62b0x5rLr67R1CsG300IYbfWOucKHPH45tbm9UvHVvLLa1S6IYEjhGCtjc65 Ckc8/jNng9GXQosfLaJxu+PQewih/UMn/+ng2Xt1zqX8JTSGjj+QduY/4txcYloOHv8YGn15wtDC 0bYERzyisf9SddNN822FIx7R2LefXPG6dSbCEY9o/J577rC7SXD8Eh7RGJ7+649wxCMaPxefP0V0 zX1tIjyeSqO59bJDnUvbMg0Aj2iUHWHCtoWjhEc0qoyw6rfPXe0iPJ5J4zHGc5PE/x3xiEbZMa4M VzjiEY1yY6xqalkrB49o1CCnIstKcnhE4zHIEvzu5WcB4BGNajNztCI8nkij7CAXq+zRgUc0ah3j x3+wgxUe0Sg3xgTRjSc5eETjJRyT7pavrJSDRzSqDLEEv+XWUXhEo/IFrXdc5JVJAHhEo4aYk+Zy T6sIj/0ap+dY/d2+TTbowCMalS8q+XG+yyo6l0c0qlzo0ejGecfCHHhEY99tWw26aUvNn2IOAB7R KHe7ffk6MitrOuIRjdd8iNXeCOQR2fgYj2i8egA+Xo/Bt8R2AHhE408tua+yBfVn9jX/HCdHPKJR JndXnQ1eFxf2P+2pyRQAPKJRqvmqirN7MHpLR9it+6tEHqviEY1a801yztkPtfBLu/3Q6lxiE3I8 ovG/tTxfSXRGj2iUyfN1iM7oEY2Sy7NlRXi8q0auVhlyxCMapZqnqnjRWT2iUTbfNL4FivwOuvM1 T9QiwuP9NXJ6ZAkAPKJRKmikQTyiUQGNNIhHNEoWjTSIRzRKCY00iEc0yhdGOGgUj/wOjprHLhkR HofQiMfoRXgcQSMeaxNNWURjZ0fJg+aMaNIiGjvzKY9Y3UXzFtHY28apkQbxiEYp1DxWZRFNXkRj bz5ynUrDeGTcOaRhMFovOkMRjf21AsabRnFqjYAsDYx4ROOXWspPbA0iPKLxeyHm51SsEeHxZ43k m8uPrm6HCI9/0khmf6TIsgURHv+ukXyLNT8gtx8iPP5XIx37eleSaVu8CI9v1UimbS7317FpK+Hx XxrpWOya8o1Kq12MCI/XaCQTdru6mnsrLtrlEOHxdhrJh7Bbuzrn3obQRWuXYER4ROPdcX6u2R8L n/pKkCiikWiYIhqJhimikWiYIhqHiSiikWiWTZoKGh8X0VLz31u9HhcR+TX/pbrosRFRcMOskURE R6z551J7FkYiCtbVrxRjMzpBRO8Bz1DpI+6WrtoAAAAASUVORK5CYII= " - id="image927-5" - x="-825.54236" - y="203.72882" /> - </g> -</svg> diff --git a/2022/2022-05-31_git-trilogy-part-1/slides/img/fox.png b/2022/2022-05-31_git-trilogy-part-1/slides/img/fox.png deleted file mode 100644 index d60776c995e3f83cb4081ed598ae45ca8778a1a8..0000000000000000000000000000000000000000 Binary files a/2022/2022-05-31_git-trilogy-part-1/slides/img/fox.png and /dev/null differ diff --git a/2022/2022-05-31_git-trilogy-part-1/slides/img/icon-fork.png b/2022/2022-05-31_git-trilogy-part-1/slides/img/icon-fork.png deleted file mode 100644 index 39d7ac227ea6351f8319fe28386e2920392b8be9..0000000000000000000000000000000000000000 Binary files a/2022/2022-05-31_git-trilogy-part-1/slides/img/icon-fork.png and /dev/null differ diff --git a/2022/2022-05-31_git-trilogy-part-1/slides/img/merge_GUI_detail.png b/2022/2022-05-31_git-trilogy-part-1/slides/img/merge_GUI_detail.png deleted file mode 100644 index a3daa6c4356af3dd7efc7aa041744b982f0b34f8..0000000000000000000000000000000000000000 Binary files a/2022/2022-05-31_git-trilogy-part-1/slides/img/merge_GUI_detail.png and /dev/null differ diff --git a/2022/2022-05-31_git-trilogy-part-1/slides/img/merge_branch-to-branch.png b/2022/2022-05-31_git-trilogy-part-1/slides/img/merge_branch-to-branch.png deleted file mode 100644 index c31c0b441233223fad386d33b7800a063d8e0107..0000000000000000000000000000000000000000 Binary files a/2022/2022-05-31_git-trilogy-part-1/slides/img/merge_branch-to-branch.png and /dev/null differ diff --git a/2022/2022-05-31_git-trilogy-part-1/slides/img/merge_changes.png b/2022/2022-05-31_git-trilogy-part-1/slides/img/merge_changes.png deleted file mode 100644 index 0c8718911beb15b0adad379dda0e5dd7ac6be5ff..0000000000000000000000000000000000000000 Binary files a/2022/2022-05-31_git-trilogy-part-1/slides/img/merge_changes.png and /dev/null differ diff --git a/2022/2022-05-31_git-trilogy-part-1/slides/img/remote-local_architecture.webp b/2022/2022-05-31_git-trilogy-part-1/slides/img/remote-local_architecture.webp deleted file mode 100644 index a89811917c35e4aa2781343b8caf664f0c156131..0000000000000000000000000000000000000000 Binary files a/2022/2022-05-31_git-trilogy-part-1/slides/img/remote-local_architecture.webp and /dev/null differ diff --git a/2022/2022-05-31_git-trilogy-part-1/slides/index.md b/2022/2022-05-31_git-trilogy-part-1/slides/index.md index 2e22a1125966dfbf32e38f303cd770d86a2d3c83..1ab581759602271205ba4aa36c5d9b9bf570da82 100644 --- a/2022/2022-05-31_git-trilogy-part-1/slides/index.md +++ b/2022/2022-05-31_git-trilogy-part-1/slides/index.md @@ -1,4 +1,4 @@ -# Trilogy of Git Part 1 +# R3.school ## May 31st, 2022 @@ -8,12 +8,13 @@ <div style="top: 5em; left: 60%; position: absolute;"> <img src="slides/img/r3-training-logo.png" height="200px"> - <br><br><br> - <h1>Contribute using Gitlab</h1> + <br><br><br><br> + <h1>Trilogy of git - Part I</h1> + <h2>Contribute using Gitlab</h2> <br><br><br> <h4> - Laurent Heirendt<br><br> - laurent.heirendt@uni.lu<br><br> + Laurent Heirendt, Ph.D.<br> + R3 Team - <a href="mailto:lcsb-r3@uni.lu">lcsb-r3@uni.lu</a><br> <i>Luxembourg Centre for Systems Biomedicine</i> </h4> -</div> +</div> \ No newline at end of file diff --git a/2022/2022-05-31_git-trilogy-part-1/slides/merge.md b/2022/2022-05-31_git-trilogy-part-1/slides/merge.md index c6311a79b8f9cfa3886d1b089878343c9a427bd9..e71182f1b6a9c2aa3f6bf26fd01281a7dd538f50 100644 --- a/2022/2022-05-31_git-trilogy-part-1/slides/merge.md +++ b/2022/2022-05-31_git-trilogy-part-1/slides/merge.md @@ -1,57 +1,41 @@ # New term: <font color="color:red">merge</font> * You have made changes on your branch -* Now you want your changes to be reflected on another branch </br>(most probably `develop` or `master`) +* Now you want your changes to be reflected on another branch </br>(most probably `develop`) -<div style="position:absolute;left:60%;top:1em"> +<div style="position:absolute;left:70%;top:1em"> <img src="slides/img/branch_merge-detail.png" height="800px" > </div> You have to <font color="color:red">merge</font> the branches. -**Remarks**: merging is directional - *Merge branch A to branch B* +- Merging is directional - *Merge branch A to branch B* +- Merging of branches is a process that is initiated via a so called **merge request** (MR): +- Your peers can comment on your changes in a merge request **review**! -### The merge is initiated via so called **merge request** -* *Requesting* someone (from the original repository) to *merge* your changes. -* *merge request* is commonly abreviated as **MR** -Your peers can comment on your changes in a merge request **review**! +# What happened in the background? - -# Our state at the moment? - -<div style="position:absolute;top:2em" > +<div style="position:absolute;top:2em" class="fragment fade-in-then-out" data-fragment-index="1"> <img src="slides/img/fork_branch-diagram-after-commit.png" height="600px" > </div> + <div style="position:absolute;top:2em" class="fragment fade-in-then-out" data-fragment-index="1"> <img src="slides/img/fork_branch-diagram-after-commit-with-back-arrow.png" height="600px" > </div> -# Time to practice! +# Merge request (MR) -* After hitting the Commit button, you get redirected to the submission page for your merge request -* Please make sure that you see that you are proposing to merge your branch (version) into the develop branch. This is shown at the top of the page: -<!-- .element: class="fragment" data-fragment-index="1" --> -* Fill your merge request submission form and select an Assignee. -<!-- .element: class="fragment" data-fragment-index="3" --> -* Good practice is to select Delete source branch when merge request is accepted. (Why?) -<!-- .element: class="fragment" data-fragment-index="4" --> -* Under Changes tab, you can see your... changes :) -<!-- .element: class="fragment" data-fragment-index="5" --> +<img src="slides/img/icon-live-demo.png" height="100px"> +After hitting the *Commit* button, you get redirected to the submission page for your *merge request (MR)* -<div style="position:absolute;left:30%;top:4em" class="fragment fade-in-then-out" data-fragment-index="1"> -<img src="slides/img/merge_GUI_detail.png" height="720px" > -</div> - -<div style="position:absolute;left:30%;top:6em" class="fragment fade-in-then-out" data-fragment-index="2"> -<img src="slides/img/merge_branch-to-branch.png" height="100px" > -</div> +* Propose to merge your branch into the *development branch*. This is shown at the top of the page. +* Fill your merge request submission form and select an *Assignee*. +* Under Changes tab, you can see your changes -<div style="position:absolute;left:5%;top:10em" class="fragment fade-in-then-out" data-fragment-index="5"> -<img src="slides/img/merge_changes.png" height="400px" > -</div> + Good practice is to select *Delete source branch when merge request is accepted*. Why? diff --git a/2022/2022-05-31_git-trilogy-part-1/slides/syncFork.md b/2022/2022-05-31_git-trilogy-part-1/slides/syncFork.md index 52f36f8a32995f751fe9f2ddb5b6db9148305c61..1b3ef3de4b0d696758d481da41c7ebfd844dc666 100644 --- a/2022/2022-05-31_git-trilogy-part-1/slides/syncFork.md +++ b/2022/2022-05-31_git-trilogy-part-1/slides/syncFork.md @@ -1,4 +1,19 @@ # Synchronize your fork -<!-- TODO: do we need this slide? --> -<!-- Should it contain steps for deleting a branch --> \ No newline at end of file +As mentioned earlier, your fork has been created a certain moment in time. + +How to keep it updated? + +## Easy way + +Delete your fork and re-create it! + +- Go to `Settings > General` +- Scroll down to the `Advanced` section and expand it +- Click on `Delete this project` and follow the on-screen instructions + + Before you do this, please make sure that all your merge requests have been accepted. + +## Automatic way + +Follow the instructions on the How-To card: [https://howto.lcsb.uni.lu/?contribute:mirror-fork](https://howto.lcsb.uni.lu/?contribute:mirror-fork) \ No newline at end of file diff --git a/2022/2022-05-31_git-trilogy-part-1/slides/versioning.md b/2022/2022-05-31_git-trilogy-part-1/slides/versioning.md index 4424fd72665e2b79c3ea9dc044b56c1d7a1b0920..e9fa7c83ed6828ab3904cd847703f25123f34450 100644 --- a/2022/2022-05-31_git-trilogy-part-1/slides/versioning.md +++ b/2022/2022-05-31_git-trilogy-part-1/slides/versioning.md @@ -1,9 +1,9 @@ -# Using versioning system? +# Why use a version control system? + Basic feature: -* Ability to recover old versions +* Ability to recover old versions -<div class="fragment"> <div style="position:absolute; left:50%"> <img src="slides/img/version-history_OneDrive.png" height="650px"> </div> @@ -11,20 +11,22 @@ Basic feature: Common tools you are already using supporting "version control": - Owncloud - OneDrive -- DropBox - ... -Its clear **who** changed **which file** and **when** :) Huray! +From the list of files, it is clear *who* changed which file and *when*. + <div class="fragment"> -### But something is missing, right? -- **What exactly** was changed? (which section or row?) -- **Why** it was changed? +But some information is missing: +- *What exactly* was changed? (which section or row?) +- *Why* was it changed? -# Using versioning system? + +# Why use a version control system? + ## Manual file versioning + CHANGELOG <br> @@ -73,7 +75,9 @@ note: overhead for doing this manually is huge # Using versioning system? -What happens if **3** people contribute? + +What happens when **3** people contribute? + ``` my-document_v01_AK.docx my-document_v01_AK_BP.docx @@ -87,14 +91,4 @@ CHANGELOG.txt <div class="fragment"> -What happens when **10** people contribute? -``` - _ ._ _ , _ ._ - (_ ' ( ` )_ .__) - ( ( ( ) `) ) _) - (__ (_ (_ . _) _) ,__) - `~~`\ ' . /`~~` - ; ; - / \ -_____________/_ __ \_____________ -``` +What happens when **10** people contribute? \ No newline at end of file diff --git a/2022/2022-05-31_git-trilogy-part-1/slides/web-ide.md b/2022/2022-05-31_git-trilogy-part-1/slides/web-ide.md index 070d1d378ba410d556d43572e93f3a6ba74a428e..063101298f037b739f1a4ad117aa0dd3613ac5ad 100644 --- a/2022/2022-05-31_git-trilogy-part-1/slides/web-ide.md +++ b/2022/2022-05-31_git-trilogy-part-1/slides/web-ide.md @@ -1,44 +1,39 @@ -# Time to practice! +# Workflow - Web IDE + To change content of a file: +* Browse to *your fork* * Open Web IDE <!-- .element: class="fragment" data-fragment-index="1" --> -* Select a branch you want to work on +* Select the development branch <!-- .element: class="fragment" data-fragment-index="2" --> * Edit file content <!-- .element: class="fragment" data-fragment-index="3" --> * Commit <!-- .element: class="fragment" data-fragment-index="4" --> - * Hit Commit - * Select **Create a new branch** and type your branch name - * Leave the **Start a new merge request** checked - * Hit Commit + * Click Commit + * Select **Create a new branch** + * Type your branch name (optional, but recommended) + * Check **Start a new merge request** + * Click Commit -<div style="position:absolute;left:40%;top:1em" class="fragment fade-in-then-out" data-fragment-index="1"> -<img src="slides/img/commit_GUI_web-ide.png" height="600px" > +<div style="position:absolute;left:30%;top:1em" class="fragment fade-in-then-out" data-fragment-index="1"> +<img src="slides/img/commit_GUI_web-ide.png" width="90%" > </div> <div style="position:absolute;left:40%;top:1em" class="fragment fade-in-then-out" data-fragment-index="2"> -<img src="slides/img/web-ide_select-branch.png" height="600px" > +<img src="slides/img/web-ide_select-branch.png" width="90%" > </div> <div style="position:absolute;left:33%;top:1em" class="fragment fade-in-then-out" data-fragment-index="3"> -<img src="slides/img/web-ide_edit-file.png" height="400px" > +<img src="slides/img/web-ide_edit-file.png" width="90%" > </div> <div style="position:absolute;left:50%;top:1em" class="fragment fade-in-then-out" data-fragment-index="4"> -<img src="slides/img/web-ide_commit-button.png" height="200px" > +<img src="slides/img/web-ide_commit-button.png" width="90%" > </div> <div style="position:absolute;left:50%;top:10em" class="fragment fade-in-then-out" data-fragment-index="4"> -<img src="slides/img/web-ide_commit-detail.png" height="400px" > -</div> - - - -# What have we done? - -<div style="position:absolute;top:2em" class="fragment fade-in-then-out" data-fragment-index="1"> -<img src="slides/img/fork_branch-diagram-after-commit.png" height="600px" > +<img src="slides/img/web-ide_commit-detail.png" width="90%" > </div> diff --git a/2022/2022-05-31_git-trilogy-part-1/slides/what_is_git.md b/2022/2022-05-31_git-trilogy-part-1/slides/what_is_git.md index e6c92a3fdfda2ffb813f9f2d9ab256133c3e5e48..a28044617a900af92461e7d1133c68198b99b513 100644 --- a/2022/2022-05-31_git-trilogy-part-1/slides/what_is_git.md +++ b/2022/2022-05-31_git-trilogy-part-1/slides/what_is_git.md @@ -4,17 +4,14 @@ Designed and implemented in 2005 by **Linus Torvalds** -<div style="position:relative; left:60%;"> +<div align="center"> <img src="slides/img/linus.jpg"> </div> -<div style="position:absolute; left:50%;"> [1] *https://en.wikipedia.org/wiki/Git* -</div> -<br> -<div class="fragment"> + ## The inventor of `git` @@ -24,19 +21,18 @@ Designed and implemented in 2005 by **Linus Torvalds** `I'm an egotistical bastard, and I name all my projects after myself. First Linux, now git.` -Linus Torvald (2007-06-14) +Linus Torvalds (2007-06-14) # What is the use of `git`? -* Ability to recover old versions -<div style="position:absolute;left:45%;top:75%"> -<img src="slides/img/Git-logo.png"> +<div align="center"> +<img src="slides/img/Git-logo.png" height="120"> </div> -<div class="fragment"> - +* Ability to recover old versions +* No need to fully rewrite text or code; **reuse** and **save time** * Keep the changes you made over time (**history**) to every single line * Annotate each change with description * **Backtrack** (if necessary) and undo unwanted changes @@ -48,6 +44,6 @@ note: Other points to mention: -* comes from SW development domain with >100 of people contributing to one project +* git stems from SW development domain with >100 of people contributing to one project * git shall not be considered as a nuisance, but as a tool that should help to track and trace the code. * git is not to track performance. Not using it shows exactly the opposite.