Documentation
Go to AppSign InSign Up
    Getting Started
    • Introduction to Flux
    • What is Flux?
    • Quick Start
    • The Flux Method
    • Creating an Account
    • Flux for Organizations
    • Setting Up Your Browser
      • Mouse & Trackpad
      • Multi-Screen Operation
      • Keyboard Shortcuts
    • Your First PCB in Flux
      • DFM & Export
      • PCB Layout & Routing
      • Project Setup
      • Schematic
      • Export & Manufacturing
    • KiCAD to Flux
      • Layout
      • Parts & Libraries
      • Schematics
    • Eagle to Flux
    • EasyEDA to Flux
    • Upverter to Flux
    • Altium to Flux
    • Getting Help
    Tutorials
    • Tutorials
    • Getting Started With Flux
      • Customizing Flux
    • Flux Use Cases
      • AI Architecture Design
      • AI Component Research
      • AI Design Reviews
      • AI Testing & Debugging
      • AI Auto-Layout
      • Generative AI
    • Start Learning Flux, No Matter Your Skill Level
      • Advanced Designer
      • First Time Designer
      • Intermediate Designer
    • Power Regulator
      • 1 – Part Selection
      • 2 – PCB Layout
      • 2 – Schematics
    • Routing
      • High-speed Routing
      • High Density Designs (HDI)
      • Working with Polygons
    • Adding Components to the Library
      • Publishing Components to the Library
      • Creating Components from Scratch
      • Importing Components
      • Working with Footprints
      • Working with Symbols
    • What is a Module?
      • Module Design Best Practices
      • Creating Modules
      • Using Modules
    • Generic Components
      • Creating a generic part
    • Copper Fills Tutorial
      • Creating Copper Cutouts
    • Board Outline Shape and Size
    • The Toolbar
    • Using Layout Rules
    • Intro to collaboration
    • Embedding a Flux Project
    • Reviewing component updates
    • Version Control Deep Dive
    • Custom Shapes
    • AI-Assisted Design with Flux
    • PCB Design Reviews (DRC)
    • Component Placement
    • Component Procurement
    • Multi-Layer PCB Design
    • Working with Ground Signals
    • Reusing Projects
      • Useful links
    Reference
    • Flux Context Menu
    • Calculator Tool
    • Change Project Name
    • Code Tool
    • Convert to component
    • Flux ACUs
    • Overview
    • Data Portability
    • Delete & Archive Projects
    • Design Rule Check (DRC)
    • Expressions
    • File Tool
    • FMEA Report Generation
    • Gerber Exports
    • Help Tool
    • Special Part Types
    • JEP30 PartModel Import/Export
    • Knowledge Base
    • Library Tool
    • Managing Units
    • Measuring Distances
    • Model Selection
    • Nets and Traces
      • Curved Traces
      • Impedance Control
      • Trace Width
    • Object Types
      • AssetNode
      • ControlNode
      • ElementNode
      • ElementTerminalNode
      • OutputNode
      • PropertyNode
      • RouteNode
      • RouteTerminalNode
    • Pads & Holes
    • Passive Component Consolidation
    • Layout Rules Reference
      • Layout Rules List
      • Object-Specific Layout Rules
      • Selector-Based Layout Rules
      • Layout Rules Inheritance & Precedence
      • Layout Rules Modifiers
    • Polygons
    • Comments
    • Cursors
    • Forking & Cloning
    • Copper Fills
    • Importing Schematics
    • Importing Components
    • Schematic Inspector
      • Assets Panel
      • Pricing & Availability Panel
      • Properties Panel
      • Simulation Panel
    • The Library
    • Project Launcher
      • New Blank Project
    • Layout Object Tree
      • PCB Object Types
    • Schematic Object List
    • The PCB Editor
      • Locking
      • Layer View Control
      • Positioning & Routing
      • Selecting Objects
      • Stackup Editor
    • Permission Tiers
    • Preloaded Examples
    • The Profile Page
      • Featured Projects
    • The Schematic Editor
      • Positioning & Wiring
    • Global Search
    • Sharing & Permissions
    • History & Version Control
    • Silkscreen
    • Simulator Tool
    • Star a Project (Favorite)
    • Vias
      • Smart Vias
    Copilot
    • Copilot Overview
    • Model Selection
    • Flux ACUs
    • Knowledge Base
    • Flux Context Menu
    • Calculator Tool
    • Code Tool
    • File Tool
    • Help Tool
    • Library Tool
    • Simulator Tool
    • FMEA Report Generation
    • Passive Component Consolidation
    FAQ
    • Schematic Editor
    • General FAQs
    • Flux and AI FAQs
    • PCB Editor FAQs
    • Parts and Modules
    • Pricing
    • Private and public projects
    • Data security and IP protection
    • When things go wrong: Errors and how to handle them
      • Lost connection
    Legal
    • Terms of Service
    • Privacy Statement
    • Main Services Agreement
    • Subprocessors

Tutorials

Version Control Deep Dive

Tutorials

Version Control in PCB Design: Flux's Integrated Approach


No change is ever lost. Flux automatically saves every change into its integrated version control system.

Overview

The software industry has found great benefits in tight version-controlled workflow, but this is something that does not get enough attention in the hardware world. Automated version control is built into Flux, ensuring that no change is ever lost. If someone makes a mistake on a design, you can always roll back to an earlier version.

In this tutorial, we'll show how version control works in Flux and how it's accessed in your projects.

Accessing the Change History

The Change History is a mode where you can see all earlier versions of the project. A new version is created for every change a user makes to a project. A change could be anything, from adding a part, changing a wire, or deleting a trace.

Restoring a Previous Version

If the current project is not to your liking, you can roll it back to an earlier version.

Pro tip: If you decide to roll back to a previous version, that's also considered a change. This means that the roll back can also be reverted by restoring the version previous to the roll back.

Part Updates in Version Control

In some cases, when you open a project in Flux, components in your design may have been updated by the owner. When this happens, you'll see a notification at the bottom of the screen stating that component updates are available. You must choose whether to accept or decline these updates - they won't be applied automatically. But how will those changes impact your design?

One way to find out is to accept the updates and see the impact on your project for yourself. Then, if you don't like what you see, you can easily undo it.

Accepting the update was a change to your project, so it was saved to the Change History. Use Undo or visit the Change History to restore a previous version.

Forking and Cloning in Version Control

You can duplicate a project using either Fork or Clone. Both actions result in a duplicated project but impact the Change History differently:

  • Forking creates a copy of the project and its change history. When you open the forked project, you'll be able to see all earlier changes that were applied to the project. You could also roll back a forked project to a point before you applied the fork.
  • Cloning only creates a copy of the design data. None of the revision history is copied to the cloned project. When cloning a project, you will not be able to revert to a version that existed before the cloning event. Only future revisions, where changes are applied to the project after cloning, can be accessed and reverted.

Benefits of Version Control in PCB Design

Version control in PCB design offers several key advantages:

  1. Design Confidence: Make changes without fear of losing previous work
  2. Collaboration: Multiple team members can work on a design with clear accountability
  3. Design Review: Compare different iterations to evaluate design decisions
  4. Troubleshooting: Identify when and where issues were introduced
  5. Documentation: Maintain a complete history of design evolution

Best Practices for Version Control

To make the most of Flux's version control system:

  • Make incremental changes: Smaller, focused changes make it easier to track and revert if needed
  • Use descriptive comments: When making significant changes, add comments to help identify important versions
  • Review history periodically: Familiarize yourself with the project's evolution
  • Consider forking for major experiments: When trying significant design changes, fork the project to preserve the original

Troubleshooting Common Issues

Missing Previous Versions

If you can't find previous versions of your project:

  • Verify you're looking at the correct project (not a clone)
  • Check if you have the necessary permissions to view the project history
  • Ensure you're using the Change History feature correctly

Reverting Changes

If you're having trouble reverting to a previous version:

  • Make sure you've selected the correct version in the Change History
  • Check that you have edit permissions for the project
  • Remember that reverting is itself a change that will be recorded in the history

Collaboration Conflicts

When multiple people are working on a project:

  • Communicate clearly about who is making what changes
  • Consider using forks for major changes to avoid conflicts
  • Review the Change History before making significant modifications

What's Next

Now that you understand how version control works in Flux, you might want to explore:


Previous

Reviewing component updates

Next

Custom Shapes