Version Control

Content

Overview

Genio Hub provides a modern Version Control System (VCS) that brings the familiar GenioSVN experience into a Git-based environment. The goal is to combine the simplicity and collaboration features of GenioSVN with the flexibility, performance, and ecosystem support of Git.

With this system, teams can manage the evolution of their models in a structured way, collaborate on parallel developments, and maintain a clean history of changes. Compared to GenioSVN, the new approach allows more flexible workflows, smoother integration with external tools, and better alignment with DevOps practices.

Requirements and Setup

To configure version control in Genio Hub, the model owner must access the Version Control tab. The setup process requires a valid connection to a Git repository, which should be validated before proceeding.

See here how to set up a model with Version Control on Genio Hub.

Once the setup is completed: - The main branch is created automatically.

This ensures that every project starts with a stable reference branch, which can then be extended into other collaboration workflows.

Branches and Workflows

The Version Control tool supports multiple branching strategies, giving teams the flexibility to choose how they want to collaborate. From the Models page, users can navigate through available branches and switch between different workflows.

There are two main workflows:

commit Trunk-Based (Default)

This lightweight workflow is ideal for continuous delivery. All changes are integrated directly into the main branch, keeping the process simple and efficient.

Advantages:

  • Minimal overhead for small teams.
  • Faster delivery cycles.
  • Easy to maintain, with fewer merge conflicts.

branch Feature-Based

A more structured workflow designed for projects with distinct release cycles. Developers work on isolated branches and use external tools such as GitLab for code reviews before merging into main branches.

Advantages:

  • Better suited for large teams.
  • Enables controlled release management.
  • Supports review and approval processes.

By allowing both approaches, Genio Hub adapts to different team sizes and development strategies.

Core Operations

The Version control includes a set of familiar operations, most of which map directly to traditional Git or SVN actions:

  • Commit: Persist changes from the branch database to the Git repository.
  • Update: Bring changes from the source branch into your branch.
  • Integrate: Merge your branch into the source branch (similar to "commit" in GenioSVN).
  • Pull: Update the branch database with the latest changes from Git (feature-based only).
  • Show Changes: Compare the branch database with the corresponding Git branch.
  • Log: Review the history of commits, with direct links to your Git provider.
  • Revert: Create a new commit that undoes the changes from a specific commit.
  • Discard: Abandon local changes in the branch database and reset to the Git version.

These operations give developers a clear and consistent way to track and manage their work, whether they are following a lightweight or structured workflow.

Conflict Resolution

Conflicts are handled automatically whenever possible. The system prioritizes the source branch version, merging changes silently when there is no ambiguity.

For manual code conflicts, Genio Hub applies Git-style markers if the merge cannot be resolved automatically. Developers can then edit the conflicting sections, resolve them, and mark the conflict as complete.

This approach minimizes interruptions while still giving teams full control over tricky merges.

Advanced Use Cases

For teams that need more structure, Genio Hub also supports a dev & main branching model:

dev_branch

  • main branch acts as the official release history.
  • dev branch is used as an integration branch for new features.
  • New feature branches are created from dev.
  • The project owner decides when to merge dev into main.

Advantages: - Maintains a clean release history.

  • Provides a safe staging area (dev) for testing features together.
  • Reduces risk by controlling when changes reach production.