CTA Gitlab project and repository migration

Hello everyone,
as discussed in https://gitlab.cern.ch/cta/CTA/-/issues/52 we have gone ahead and cleaned up the CTA repo a bit. Here are some things to be aware of with the changes we made:

What has been done

We have taken the old CTA Gitlab project and moved it to https://gitlab.cern.ch/cta/CTA-old/. The old project is archived, so one cannot push to it or update issues, but one can still access old files and review existing issues.
The new official Gitlab project can be found at https://gitlab.cern.ch/cta/CTA (note that this is the same URL as before, nothing changed here. However, be aware that we re-wrote the commit history during our cleanup, so this will not match with your existing local clone. All open issues were moved to the new Gitlab project, so you may continue work on them there.

During the cleanup we have moved/removed the following directories from the project:

We have also moved from using master as the primary branch to using main. Furthermore, the problem with files exceeding the default Gitlab file size limit is now resolved.

Things to do on your end

Migrate your feature branch

If you have a feature branch you are working on you may use the following commands to create a new merge request or migrate an existing one. Beware that this rewrites the history of the local repo. It is a good idea to create a backup of the CTA directory before you do this.

You will need an install of git >= 2.22.0 and an install of the git-filter-repo tool (not included in git).

CC7 machines can get a modern version of git through the LCG releases Sign in to CERN. if your machine has the /cvmfs/sft.cern.ch repo enabled you can easily use the existing git install as described here Introduction for end users - SPI/LCG Documentation .

If your distribution does not have a package for it, git-filter-repo can be installed using pip git-filter-repo · PyPI .

Scenario A: I have an existing local clone of the old CTA repo (made before 20.07.2022)

# Check out your feature branch commit all remaining local changes you want to include, then:
git-filter-repo --force --invert-paths --path doc/ --path LTO_RAO/ --path migration/ --path EOSCTATAPE/
git push -u origin <your_branch_name>
# Then create merge request as usual

Scenario B: I don’t have a local clone of the CTA repo, all of my changes are in the old CTA repository

git clone https://gitlab.cern.ch/cta/CTA-old.git
git checkout <your_branch_name>
git remote remove origin 
git remote add origin https://gitlab.cern.ch/cta/CTA.git
git-filter-repo --force --invert-paths --path doc/ --path LTO_RAO/ --path migration/ --path EOSCTATAPE/
git push -u origin <your_branch_name>
# Then create merge request as usual

Re-clone the CTA repo

If you are starting a new branch from scratch it would be easier to clone the new repository instead of doing the history rewrite above. Simply delete or move your existing clone of the CTA repo, then clone the new one. Note that main now replaces master as the primary branch.


I need a previous tag/release of the CTA project, where should I get it?

Existing tags (4.7.8-1 and earlier) may be affected by the history rewrite in the new repo. Please fetch these from the old repo at https://gitlab.cern.ch/cta/CTA-old/, to ensure you get the unmodified contents.

1 Like