Skip to content

Exercises to try

Things to try in the hands-on session or in your own time

Create a new branch

  • Make a new branch within your project (many guides exist example, ask for help if it's needed)
    git checkout -b <name_of_branch>
    
  • Try make some changes to your MyAnalysis package, add some printouts, a histogram or something similar. Anything simple you have previously done in the Analysis Software Tutorial.
  • Commit and push the new branch

    Now when you commit,

    # instead of
    git push origin main
    # You will do this instead for the branch
    git push origin <name_of_branch>
    

Create merge request

  • If you now check your gitlab project, you should see your added branch

New Branch

  • Have a look at your branch and you should see your recent commit which you didn't have on the main branch. You should now see a 'Create Merge Request' button.

Branch Commit

Start this process and create a merge request for your branch to be merged into main. This is a very common thing to be doing throughout your ATLAS analysis, especially if collaborating with many people on the same project. I would highly recommend getting used to this doing this often. NOTE - The process will differ when committing and merging to the Athena repository or official ATLAS software. - Add as much description to your merge request as you can, let your collaborators know what this branch introduces. - There are lots of options with a merge request but you shouldn't need to worry about the majority of them. Tick the delete source branch option if you don't plan on continuing work on this branch after the merge. - For this exercise you can assign yourself to review the merge request (MR) but this would usually be a maintainer of your analysis software.

Merge a branch into main

Finally, you should see a screen like this

Merge Request

  • Here you can add comments and discuss the request. Go ahead and merge the branch into your main! (Hopefully you had better commit messages than I did)

Merged Branch

Your changes should now be in main, feel free to switch back branches locally

Add a collaborator and approve a merge request

One important part of ATLAS analysis is to collaborate with the analysis team, making sure all commits and changes to the analysis are communicated and added properly between collaborators. You will at some point be adding collaborators to your repository, so we can try this now.

Add a colleague or someone else from the tutorial to your project as a developer, the breakout rooms can help with this. Let us know if you can't find anyone.

Add Members

Have your partner clone your repository, create a new branch and make a small change to the code in this branch (with clear commit messages). Let them push this to the remote branch and submit a merge request to merge into main. This will give you a chance to review the change and choose whether to accept the merge.

Resolve a Conflict

You may at some point have to resolve a conflict where multiple people have been working on the same piece of code locally and one or more lines conflict when trying to merge back into main.

Try make a new branch where you change your MyxAODAnalysis.cxx in some way, make an eta cut on the jets or add another print out in the jet loop.

Have your partner or more people in your group create a new branch and do a similar change. If you both push and submit merge requests, you may have a conflict if you accept one merge over the other. Try the handle this conflict.

Modify and update your submodule

When you added your JetSelectionHelper submodule to the your repository, the added repository is at a certain commit tag.

Submodule Tag

Try to make a change to the JetSelectionHelper package, for example change the jet pT threshold in the src/JetSelectionHelper.cxx. This can be done from your fork on gitlab.cern.ch because it is a small change or you can do this from the terminal.

Guides are available how to update this submodule within your working area repository, try do this for yourself but helpers will be on hand if you're struggling.

Additional Resources