Version Control and Cloud Drives: Better Keep 'em Separated

Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.

Version Control and Cloud Drives: Better Keep 'em Separated

Version control is a game-changer for Access developers, enabling better collaboration, history tracking, and project management.

If you're like me, you develop your Access applications on multiple devices:

  • A powerful desktop for day-to-day work
  • A laptop for on-site client work and business travel
  • A home computer for occasional emergencies
  • Environment-specific machines for 32-bit vs. 64-bit compilation, old versions for testing or compiling .accde/.mde files, etc.

To simplify my life, I store my Access front-end files in OneDrive so that they automatically sync to each of these machines. It makes it easy to flow from one environment to another without any hassle (there are pitfalls you need to be aware of, but that's a topic for another day).

If you're not careful, though, this convenience can lead to problems when using version control add-ins like Adam Waller's excellent open-source Access Version Control Addin.

The Pitfalls of Using Cloud Drives for Version Control

The Access Version Control add-in works by exporting your application's components (forms, reports, queries, and code modules) as text files into a "Source Code" subfolder.

By default, this subfolder is created in the same directory as your Access front-end file. While this setup works well for local storage, it can cause issues when your front-end file is stored in a cloud drive.

  1. Excessive churning and strain on cloud drives

    • Version control systems create numerous small files to track changes
    • Cloud drives constantly sync these files, leading to increased network traffic and potential performance issues
  2. Potential corruption due to syncing conflicts

    • If multiple users are working on the same repository, syncing conflicts may arise
    • Cloud drives are not designed to handle complex merging and conflict resolution, which can result in repository corruption

Best Practices for Access Version Control

To avoid these issues and ensure a smooth version control experience, you have two options:

  1. Move the Access front-end file out of the cloud drive folder
    • Store your front-end file on a local drive or network share
    • This keeps the version control repository separate from the cloud drive sync process
    • Prevents issues related to excessive syncing and potential corruption

OR

  1. Change the default output folder for the version control add-in
    • If you prefer to keep your front-end file in the cloud drive, you can change the export folder for the version control add-in:
      1. Go to the "Version Control" tab in the Access ribbon
      2. Click "View Options"
      3. Click on the "Export" tab
      4. In the "Export Folder" text box, specify a folder outside the cloud drive for storing the "Source Code" files
    • This ensures the repository is not affected by cloud drive syncing
    • Allows for better control over repository storage and sharing

By choosing one of these options, you can prevent the issues associated with storing your version control repositories in cloud drives while still enjoying the benefits of the Access Version Control add-in.

Recommendations for Sharing Access Version Control Repositories

When it comes to sharing your Access version control repositories, it's best to use dedicated version control hosting platforms like GitHub, GitLab, or Helix TeamHub.

These platforms offer:

  • Reliable and efficient syncing of repositories
  • Collaboration features like pull requests and code reviews
  • Integration with issue tracking and project management tools
  • Secure access control and permissions management

By using these platforms, you can ensure your repositories are properly backed up, easily accessible to your team, and protected from the potential issues associated with cloud drive storage.

Conclusion

While cloud drives are convenient for storing and sharing Access front-end files, they should be kept separate from your version control repositories.

By following best practices like moving your front-end file out of the cloud drive folder or changing the default output folder for the Access Version Control add-in, you can avoid potential syncing and corruption issues. When it comes to sharing your repositories, opt for dedicated version control hosting platforms to ensure reliable collaboration and secure access control.

By keeping these principles in mind, you can enjoy the benefits of version control without the headaches associated with improper repository storage and sharing.

Acknowledgements
  • Article excerpt generated with the help of Claude-3-Opus
  • Initial draft generated with the help of Claude-3-Opus
  • Cover image generated by DALL-E-3

All original code samples by Mike Wolfe are licensed under CC BY 4.0