Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

migrate from subversion to git #84

Open
5 tasks
kayiwa opened this issue Aug 12, 2024 · 0 comments
Open
5 tasks

migrate from subversion to git #84

kayiwa opened this issue Aug 12, 2024 · 0 comments
Assignees

Comments

@kayiwa
Copy link
Member

kayiwa commented Aug 12, 2024

User story

As a Special Collections user,
I want to be able to use version control with LDAP authentication instead of the lastpass generated password.

Acceptance criteria

  • Git with Large File System is successfully installed and configured.
  • LDAP authentication is integrated with Git.
  • The existing SVN repository is converted to Git and imported into Git without data loss.
  • All project stakeholders are informed about the migration and provided with training and support.
  • Project documentation is updated to reflect the new system and workflows.

Concrete example

Implementation notes below as a Design Document

Software Design Document: Migration from Subversion to Gitea (Forgejo) with LDAP Authentication

1. Introduction

Purpose:
This document outlines the strategy and steps required to migrate our project's version control system from Subversion (SVN) to Gitea Forgejo, primarily driven by the need for LDAP authentication support.
Scope: This migration encompasses the code repository, historical commit data, and user access management.
Benefits: The move to Gitea will provide enhanced collaboration features, better integration with modern development workflows, and seamless LDAP authentication for streamlined user management.

2. Current System

Version Control System: Subversion
Authentication: Potentially a mix of local SVN user accounts and potentially other mechanisms.
Challenges: Lack of LDAP integration, limited collaboration tools, and potential leaks for passwords

3. Proposed System

Version Control System: Gitea (Forgejo), a self-hosted Git service with a user-friendly web interface.
Authentication: Gitea will be configured to utilize LDAP for user authentication and authorization, leveraging our existing LDAP infrastructure.
Advantages:
Robust LDAP integration
Distributed version control with Git and Large File System
Enhanced collaboration features (pull requests, code reviews, issue tracking)

4. Migration Process

Gitea Installation and Configuration:

Install Gitea on a suitable server.
Configure Gitea to connect to the LDAP server for authentication.
Set up user groups and permissions within Gitea as needed.
SVN to Git Conversion:

Utilize git svn or a dedicated migration tool (e.g., svn2git) to convert the SVN repository to a Git repository.
Carefully map SVN users to Git users to preserve commit history.
Test the converted Git repository to ensure data integrity.
Data Migration:

Import the converted Git repository into Gitea.
Migrate any additional project-related data (e.g., issue trackers, wikis) as needed.
User Transition:

Communicate the migration plan to all project stakeholders.
Provide training and support to users on the new Git workflow and Gitea interface.
Ensure users update their local Git configurations to point to the new Gitea repository.
Testing and Validation:

Thoroughly test all aspects of the migrated system (code access, commits, pull requests, etc.).
Address any identified issues or inconsistencies.
Deployment:

Switch over to the new Gitea system in a controlled manner, potentially with a period of parallel operation.
Decommission the old Subversion system once the migration is complete and validated.

5. Risks and Mitigation

Data Loss: Mitigate by performing thorough backups of both the SVN and Gitea repositories before and during the migration process.
User Adoption Challenges: Address by providing comprehensive training and support to users throughout the transition.
Integration Issues: Minimize by testing the integration with existing tools and workflows early in the migration process.

6. Conclusion

This migration to Gitea (Forgejo) will streamline our development process, enhance collaboration, and provide a more secure and efficient way to manage user access through LDAP authentication. Careful planning and execution of the migration steps outlined in this document will ensure a smooth and successful transition.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant