-
Notifications
You must be signed in to change notification settings - Fork 10
Git Migration
Yaswant Pradhan edited this page Sep 18, 2025
·
8 revisions
This project is aimed to migrate the Met Office simulation systems repositories to Git ecosystem. See discussions 394 and 337 for details.

Note
Pre-requisites to run the migration script
-
Test
gitlify
translation tool ✅- Able to convert only svn trunk to Git.
- Able to map svn revisions to Git tag.
- Synchronise trunk updates locally in Git repositories.
- Set-up a (
scron
) job to update code/tags routinely.
- Set-up a (
-
Create/update GitHub repositories under MetOffice
-
svn:um/main
(@trunk) → um (@trunk) -
svn:um/aux
(@trunk) → um_aux (@trunk)- There are some large files in the repository, consider Git-LFS
-
svn:um/meta
(@trunk) → um_meta (@trunk) -
svn:um/doc
(@trunk) → um_doc (@trunk)- Compress/convert large graphics in the repository consulting the authors/IAO, if possible.
- Implement GitHub Action to build/deploy docs: test using texlive docker image
-
svn:um/mule
(@trunk) → mule (@trunk)- Contact metomi owner to deprecate their repository.
-
svn:gcom/main
(@trunk) → gcom (@trunk) -
svn:jules/main
(@trunk) → jules (@trunk)- Check licence agreements, if going public. (JULES in progress...)
- Plan to migrate JULES documentation here (post migration).
-
svn:socrates/main
(@trunk) → socrates (@trunk) -
svn:socrates/spectral
(@trunk) → spectral-data (@trunk) -
svn:utils/shumlib
(@trunk) → shumlib (@trunk)- Contact metomi owner to deprecate their repository.
-
svn:ukca/main
(@trunk) → ukca (@trunk) -
svn:monc/casim
(@trunk) → casim (@trunk) -
svn:moci/main
(@trunk) → moci (@trunk) -
svn:lfric/LFRic
(@trunk) → lfric_core (@trunk)- Repository already exists: ask for admin access to the repository.
-
svn:lfric/GPL-utilities
(@trunk) → rose_picker (@trunk) -
svn:lfric_apps/main
(@trunk) → lfric_apps (@trunk)- Propose
lfric_core
as a submodule in this repository? (post migration)
- Propose
-
svn:monc/main
(@trunk) → monc (@trunk) - Check
config.json
is correct and up-to-date with MOSRS revisions.
-
-
General updates for all repositories (during migration)
- All private with specific team access only.
- Repository Description.
-
README.md
(in progress...) -
LICENCE
(in progress...) -
CONTRIBUTING.md
(CLA) (in progress...) -
CODEOWNERS
- Correct Copyright statements, particularly in planned open-source repositories. (in progress...)
- E.g., (C) Crown copyright, Met Office. All rights reserved.
- Automated Code Quality checks via GitHub Action (in progress...)
-
Map SRS to GitHub username, where possible.
-
Testbed
- Create additional
main
branches. (prior to 1st release on GitHub) - Test Fab (build tool) integration. (post migration)
- Test Simulation System workflows with GitHub.
- Make sure tags/releases are still functional.
- Update Working practices. (in progress...)
- Write branch migration guidelines
- Allow limited number of developers to test their workflows.
- Add/update Issue/PR Templates. (in progress...)
- Create additional
-
During SRS freeze
- Test
trunk
andmain
are able to merge with different history. - Merge
trunk
in future default (main
) and deletetrunk
- Test
-
Update communication plan
- Update Simulation Systems Discussion
- Engage in Simulation Systems Q&A
How long it takes to convert svn repo to Git?
The listing below shows the time taken to convert trunk-only branches and attach svn tags to the Git repository locally usingssd_svn2git.sh
script.
$ tail -n1 *.log
==> 20250330T025505_casim.log <==
2025-03-30 02:56:25 Done: casim in 00:01:20
==> 20250330T025625_moci.log <==
2025-03-30 02:59:42 Done: moci in 00:03:17
==> 20250330T025942_jules.log <==
2025-03-30 03:14:50 Done: jules in 00:15:08
==> 20250330T031450_socrates.log <==
2025-03-30 03:17:04 Done: socrates in 00:02:14
==> 20250330T031704_ukca.log <==
2025-03-30 03:18:06 Done: ukca in 00:01:02
==> 20250330T031806_shumlib.log <==
2025-03-30 03:19:40 Done: shumlib in 00:01:34
==> 20250330T031940_mule.log <==
2025-03-30 03:24:19 Done: mule in 00:04:39
==> 20250330T032419_um_aux.log <==
2025-03-30 03:29:52 Done: um_aux in 00:05:33
==> 20250330T032952_um_doc.log <==
2025-03-30 03:42:31 Done: um_doc in 00:12:39
==> 20250330T034231_um_meta.log <==
2025-03-30 03:46:47 Done: um_meta in 00:04:16
==> 20250330T034647_um.log <==
2025-03-30 05:04:04 Done: um in 01:17:17
==> 20250330T050404_gcom.log <==
2025-03-30 05:06:17 Done: gcom in 00:02:13
==> 20250330T050617_lfric_apps.log <==
2025-03-30 05:11:44 Done: lfric_apps in 00:05:27
==> 20250330T051145_lfric_core.log <==
2025-03-30 05:48:32 Done: lfric_core in 00:36:48
What happens to a tag if the corresponding branch gets deleted?
A branch is simply a way to track a collection of commits. The tag and commit would stull exist if the branch is deleted. Ref: https://github.com/orgs/community/discussions/23918.When will the developers get access to the GitHub repositories
Please refer to the timeline in [Simulation Systems Discussion](https://github.com/MetOffice/simulation-systems/discussions/337). We will announce the opportunity to participate during the later part of migration testbed.© Crown copyright, Met Office. All rights reserved.