Note: this set of features is available ONLY in the Workgroup Edition of Hackolade Studio.
The Workgroup Edition of Hackolade Studio introduces native integration with Git repositories to provide state-of-the-art collaboration, versioning, branching, conflict resolution, peer review workflows, change tracking and traceability. Mostly, it allows to co-locate data models and schemas with application code, and further integrate with DevOps CI/CD pipelines as part of our vision for Metadata-as-Code. Previously, an integration with Git was possible, but required either a separate Git desktop application, or the use of the Git command line interface. Our Workgroup Edition makes it easy for users who are not so familiar with Git to leverage the tremendous power of this popular tool.
Most importantly, user-friendly context-aware screens are provided to review changes, compare versions, commits, and branches, or merge conflicts.
What is a repository?
A repository is a central folder where you can store data models and other files. Using a repository not only allows you to easily share your data models with other users in your organization, it also enables co-authoring, versioning, branching, change tracking, peer reviews, and more. It is the perfect solution for sustaining an efficient collaboration and flow of information between the different stakeholders involved in your design and development process. Such full integration with Git repositories enables the possibility to co-locate data models with code, and it also facilitates Metadata-as-Code.
Note: tool vendors have different definitions of the term "repository". Ours is strictly focused on handling the lifecycle of data model files and schema artifacts. The upcoming Enterprise Edition of Hackolade will bring additional features like data models metadata, reports, and much more.
What is Git?
Git is currently the most popular distributed version control system, originally designed for software source code, and now used for many other purposes, including the operational framework known as GitOps.
In layman's terms, Git allows to:
- undo changes;
- save changes across multiple files as a set;
- split your path so you can go down one road (called "branch") with one series of changes, and another road with another series of changes, or in fact down dozens of roads with dozens of series of changes;
- merging those branches back together, either wholesale or selectively;
- sharing entire sets of changes with coworkers, but selectively, without having to worry about overwriting their changes;
- sharing not just your current version, but the entire undo/redo log behind your current version.
Note: don't confuser Git and GitHub, as they are different. GitHub is a service hosting Git repositories, where Git is a version control system.
Git takes care of tracking all changes that are made in files belonging to specific folders. In Git terms, such a folder is called a repository. A repository is like any other traditional folder: the only specificity being the presence of a sub-folder named .git containing the history of all file changes for the folder.
Git supports setting up a central repository, called "remote", that users can copy (a.k.a. "clone") onto their computer, called "local". They make changes in their local repository, then publish them to the remote repository.
Why use Git for Hackolade data models?
Some industry analysts seem to consider as a drawback that Hackolade does not have its own proprietary repository!?... Our users seem to think otherwise!
We decided to leverage a standard and non-proprietary technology that is already extremely popular for software development: Git, the software code version control technology behind the popular services GitHub, Bitbucket, GitLab, and other DevOps platforms. Git is used by over a hundred fifty million developers worldwide, plus there's a huge advantage to co-locating data models, schemas, and code. Along with DevOps CI/CD pipelines and our Command-Line Interface, our repository integration supports our vision for Metadata-as-Code.
The decision to store data models in non-proprietary JSON format was strategic from day 1 and has allowed us to leverage the powerful Git engine features. We did not have to re-invent the wheel when implementing collaboration, versioning, branching, peer review features. We focused on the integration of the workflow, on the design of a user-friendly and intuitive UI/UX, and mostly on the added value of compare and merge screens in the context of the data modeling mission of users.
Git is a super powerful tool with many features, some of which have not been integrated in Hackolade Studio. Following our agile mindset, we will continue to iteratively develop and ship additional features in upcoming releases. In case you find an important feature to be missing, you may submit a feature request.
Also note some potentially relevant questions and answers.