Best Practices


As with any collaborative environment, your Organization will benefit from adhering to a few good practice items.

Organize Your Repositories

One of the first things to consider is how your repositories are named by the contributors in your Organization.
Based on your specific workflows, there are several options for the structure of the repositories in your Organization. You may choose to designate one repository as the “central” repository. Your structure could also be based on one repository per machine, per client, or a combination of both. There are different ways to organize your repositories based on your job function.
Here are our recommendations:
  • End users - Organize repositories per area or per machine
  • Machine builders - Organize repositories per machine or per client
  • System Integrators - Organize repositories per client or per area. Note that repo names can be changed or edited before handing off to a client.
Git will not allow you to use spaces when naming repositories, so use dashes and underscores as needed. Remember to be specific and consistent with your naming conventions.

Collaborate Using Copia

Copia shines when used in collaboration with multiple engineers. Some of the benefits of using Copia for collaboration include:
  • Ability to invite external users or contractors with read-only seats.
  • Ease of transferring repositories to clients
  • Use of Copia across different Teams and functions as a source of truth for accessing the latest version of a project
To learn more about collaborative features like Organizations, Teams, Issue Tracking, and Wikis, check out the Advanced section.
But generally, there are several rules of thumb to keep in mind when collaborating using Copia:
  • Keep branches short-lived.
    • Generally, the turnaround time of merging a branch should be quick. This also means that branches should be relatively small.
    • Try to have everyone merging into the same branch (Prefer fewer target branches)
      • Generally, everyone on your team should be merging into the same branch (the mainline). Releases and release candidates (RCs) should branch off of the mainline.
  • Merging between multiple non-mainline branches is discouraged.

Integrate With Git LFS (Large File Support)

To support larger files and increase efficiency, Copia offers integration with Git LFS. For projects containing large files, the process of cloning can take a significant amount of time. Git LFS is an extension that uses tiny pointer files to reduce the time and impact of cloning large files.
With the Git LFS extension running in the background, you won’t notice anything different on the front end and will be able to continue your normal workflow.
See the topic on Binary and Large Files for more information.

Manage Virtual Machines

Copia supports the use of virtual machines. You can either run the Copia Desktop App app from within the virtual machine or via the host.
We recommend that you create a shared folder between the virtual and host machines. This way, you can run Copia on the host machine and monitor the shared folder from as many VMs/IDEs as needed.
This suggested workflow allows Copia users to make changes on one machine as opposed to switching back and forth between multiple machines.

Formalize Team Git Practices

It is important to establish a set of common workflows before starting a project. This will ensure that all users are aligned on how changes will be applied.
Here are our top tips to streamline your workflows:
  • Make clean, single-purpose commits
  • Write meaningful commit messages
  • Check which branch you’re on before committing
  • Commit early and often to increase revert options and clarity on individual changes
For a more detailed look at committing, check out our Advanced section.

Establish Branching Protocols

Branching and merging is one of Git’s most complex and powerful feature sets. Depending on the size and structure of your Organization, there are great online resources that detail a number of workflows to take advantage of this feature.
Most important is that you have branching protocols in place -- and that you have your team thoroughly trained on how to use branching. This keeps the process streamlined and allows everyone to keep moving forward. For a detailed look at branching and merging, check out the Branching section.
Last modified 5mo ago