Fundamentals 9 min read

Adopting Gitflow for Scalable Development: Migrating from SVN to Gitlab

The article describes a team's transition from SVN to Gitlab using the Gitflow workflow, detailing the motivations, branch structure, tooling with SourceTree, migration steps, and practical solutions to permission, merge conflict, and integration challenges encountered during rapid development scaling.

DevOps
DevOps
DevOps
Adopting Gitflow for Scalable Development: Migrating from SVN to Gitlab

Background : The team originally used SVN for source control, but rapid growth (10‑20 developers and multiple parallel versions) made merges before releases cumbersome, prompting a switch to Git.

Business Layer Separation : Initially isolated business modules by physical directories, but fast‑moving requirements caused cross‑module changes and conflicts.

Gitflow Adoption : Chose the Gitflow工作流 to assign clear roles to branches (master, develop, feature, release, hotfix) and streamline releases. The workflow adds structure without new commands.

Tooling : Used SourceTree (which includes built‑in Gitflow support) to lower learning overhead. Created branches via the Gitflow button, e.g., feature , release1.2, hotfix1.1.1, with automatic merges and tagging.

Gitlab Integration : Migrated repository hosting to the company's Gitlab instance, configuring project and user permissions (guest, reporter, developer, master) and wiki access accordingly.

Migration Process : Shared Gitflow concepts with teammates, froze SVN, and moved all code to Git. Conducted internal presentations to align business lines on the new workflow.

Issues Encountered and Solutions :

Permission problems : Restricted master rights and protected important branches.

Merge conflicts : Regularly merged develop into feature branches to surface conflicts early.

Push/merge workflow : Protected the develop branch and disallowed direct pushes.

Dependency coordination : Created a shared feature for common interfaces before dependent features.

Packaging challenges : Added multiple Jenkins jobs to handle numerous feature branches.

SVN resource handling : Moved remaining assets into Git or fetched them via command line before packaging.

The migration completed successfully, establishing a more maintainable and scalable development process.

GitLabgitcontinuous integrationversion controlGitflowsvn migration
DevOps
Written by

DevOps

Share premium content and events on trends, applications, and practices in development efficiency, AI and related technologies. The IDCF International DevOps Coach Federation trains end‑to‑end development‑efficiency talent, linking high‑performance organizations and individuals to achieve excellence.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.