Maximizing Efficiency with FreeFileSync: The DevOps Solution You Need 

In the world of DevOps, automation is key. One of the areas where automation can be particularly beneficial is in the synchronization of files across multiple systems. This is where FreeFileSync comes in – it’s a free and open source tool that makes it easy to keep files in sync across multiple machines. In this article, we’ll explore how I use FreeFileSync in a DevOps workflow to improve collaboration and help with version control (complements Git-Hub). (Our corporate git-hub only allows specific developers to access repositories) 

What is FreeFileSync

FreeFileSyncis a free and open source tool that allows you to synchronize files and folders between two or more locations. It’s available for Windows, macOS, and Linux, and it supports a wide range of synchronization options. With FreeFileSync, you can choose to synchronize files bidirectionally or unidirectionally, and you can also specify which files or folders to exclude from the synchronization process. The tool also supports a wide range of file types, including text files, images, videos, and more. It’s conflict management (version control) is also excellent – if the file already exists in the destination a duplicate of the original file will be stored within a folder of your choosing. I set this to a folder to include the date and therefore maintain a copy of the older versions of the file in some destinations. 

Why use FreeFileSyncin a DevOps workflow? 

In a typical DevOps workflow, multiple team members are working on the same codebase or project. Each member may have their own copy of the codebase on their local machine, and they may also have access to a shared repository or server. When changes are made to the codebase, it’s important to ensure that those changes are propagated to all other copies of the codebase, so that everyone is working with the latest version. This is where FreeFileSync comes in – it makes it easy to synchronize files and folders across multiple machines, so that everyone has access to the latest version of the codebase. 

Essentially, the same reason you might use GitHub or GitLab applies to how a developer might use FreeFileSync. For example, a developer might use FreeFileSyncto synchronize specific projects to be shared on SharePoint via a OneDrive sync configuration, since GitLab is not accessible to everyone in their corporation. This enables the broader organization to gain access to the code, which they may be able to leverage for their own applications. By using FreeFileSync, developers can share their code more easily and collaborate with a wider audience. 

Sharepoint Sync Feature

How to use FreeFileSyncin a DevOps workflow:

FreeFileSync also allows the creation of multiple jobs, to synchronize the same source information to several locations. For example: 

  • A back up location – where you want to archive files, or data 
  • A sharing platform – where you may want to share code, or images based on a file naming convention 
  • A production server – where the code will become actively integrated with a live application 
  • A development server – where the code will become actively integrated with a test application – for further testing by another team 

To use FreeFileSync in a DevOps workflow, you’ll need to first set up a synchronization job. This involves specifying the source and target folders (i.e., the folders that you want to synchronize), as well as any synchronization options that you want to use. Once you’ve set up the job, you can run it manually, or you can set up a schedule to run it automatically at regular intervals. 

When setting up to synchronize code, you can also pre-filter files that may contain authentication details. So that usernames and passwords can be excluded before making files available to others. 

In this example I am filtering our some of the xlsx and csv files in addition to other unwanted file types

Here are the steps to set up a synchronization job using FreeFileSync

  • Download and install FreeFileSync on the use machine/s. 
  • Open FreeFileSync and create a new synchronization job. 
  • Specify the source and target folders that you want to synchronize. 
  • Choose any synchronization options that you want to use (e.g., bidirectional synchronization, file exclusions, etc.). 
  • Save the synchronization job. 
  • Run the synchronization job manually to ensure that it’s working correctly. 
  • You can also create batch jobs, to execute multiple jobs at once

There are several benefits to using FreeFileSync in a DevOps workflow: 

  • It will identify files that have changed across a code base – without relying on developers to remember each change they may have made
  • It simplifies the synchronization process. With FreeFileSync, you don’t have to manually copy files from one machine to another – the tool does it for you automatically. 
  • It saves time. Because FreeFileSync automates the synchronization process, team members don’t have to spend time manually synchronizing files. 
  • It reduces the risk of errors. Manual file synchronization can be prone to errors, but with FreeFileSync, you can be confident that all files are synchronized correctly. 
  • It promotes collaboration. By ensuring that everyone has access to the latest version of the codebase, FreeFileSync promotes collaboration among team members. 

Conclusion 

FreeFileSync is a powerful tool that can be used to simplify the synchronization of files and folders in a DevOps workflow. By automating the synchronization process, FreeFileSync saves time, reduces the risk of errors, and promotes collaboration among team members. Whether you’re working on a small team or a large enterprise, FreeFileSync can help.

Leave a Reply

Your email address will not be published. Required fields are marked *