Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

A new Data Days event is coming soon! This time we’re going bigger than ever. Fabric, Power BI, SQL, AI and more. Don't miss out.

Improve Git Branch Switching in Fabric Workspaces to Avoid Full Reconciliation (Align with ADFv2)

Currently, switching Git branches in a Fabric workspace forces a full reconciliation of the workspace state, including creating, updating, and deleting items to match the selected branch. This behavior makes feature branching workflows difficult to use safely and efficiently.

 

A more developer-friendly model - similar to Azure Data Factory (v2) - would allow branch switching without destructive or full-state updates to the workspace runtime.

 

Problem Description
In Microsoft Fabric today:

  • A workspace can only be connected to one branch at a time
  • Switching branches triggers a full synchronization
  • Fabric attempts to:
    • delete items not present in the target branch
      recreate items from the branch
    • reconcile dependencies and runtime state

This behavior introduces several challenges:

 

1. Destructive branch switching

Switching from a feature branch back to main may result in:

  • deletion of in-progress artifacts
  • recreation of items with new internal identities
  • loss of intermediate workspace state

2. Inconsistent runtime environments
Because workspaces are runtime environments (not just code views), switching branches can leave the workspace in:

  • partially updated states
  • inconsistent dependency conditions
  • mismatched configuration or data states

3. Difficult debugging and validation
It becomes unclear whether an issue originates from:

  • the code in the branch
  • the workspace state
  • environment-specific differences

4. Reduced viability of feature branching
Standard Git workflows such as:

  • working on multiple feature branches
  • quickly switching between branches
  • isolating changes safely
  • are significantly harder to implement due to the cost and risk of each branch switch.

5. Limits ability to work on multiple tasks in parallel
For individual developers or small teams, this model makes it difficult to work on multiple tasks simultaneously. Since a workspace can only be connected to one branch at a time, developers are forced to either:

  • constantly switch branches and risk overwriting or losing state
  • or create additional workspaces solely for isolation and need to re-setup Workspace configurations

This introduces unnecessary overhead and reduces productivity, especially when compared to platforms where developers can freely move between branches without impacting runtime state.

 

Comparison to ADF v2
In Azure Data Factory (v2):

  • Developers can switch between branches without affecting the live runtime
  • More than one developer can work on two branches at once at the same time
  • Changes are staged and only applied upon publish
  • Branch switching is non-destructive and lightweight

This allows:

  • safe experimentation
  • parallel feature development
  • clean separation between authoring and runtime environments

Impact
This limitation leads to:

  • Increased risk of accidental data or configuration loss
  • Reduced developer productivity due to cautious workflows
  • Need for additional workspaces solely for isolation
  • More complex CI/CD implementations than necessary
  • Friction for teams migrating from ADF v2 or other modern Git workflows

This is particularly challenging for small teams or single-developer environments. In these scenarios, creating multiple workspaces for isolation is often impractical, and the inability to safely switch branches within a single workspace forces trade-offs between productivity and stability.

 

Suggested Improvement
Introduce a model that separates Git branch context from workspace runtime state.

Potential solutions:

  1. Non-destructive branch switching - Allow switching branches without immediately applying changes to the workspace
  2. Preview or staging mode - Load branch changes for inspection without enforcing them on the runtime
  3. Explicit apply or publish step - Similar to ADF v2, where changes are only applied when explicitly promoted
  4. Selective sync - Allow developers to choose which items to reconcile rather than forcing a full workspace sync

Desired Outcome
Enable Fabric to support:

  • Standard Git feature branching workflows
  • Safe branch switching without destructive side effects
  • Clear separation between development and runtime environments
  • Reduced need for excessive workspace duplication
Status: New