On Mon, Dec 14, 2015 at 2:48 AM, Jack McLear <mclear7@xxxxxxxxxxxxx> wrote: > Hi > > I’ve recently been made aware of GIT and had a few questions. > I’m currently working on creating a middleware between FORAN (a CAD system) and Teamcenter. > > Do you know if GIT would work between the two? Git is designed to track any kind of contents, so yes, it will work with FORAN and Teamcenter. However! Git is optimized for files which are text. Tracking binary files is not as pleasant as text files. (E.g.: There is no merge driver available, as any binary file has a different format. Also file sizes may be a concern) > > We’re currently using a Centralised version control system. You may or may not want to change the workflow. Git as a distributed version control system allows for more freedom w.r.t. workflows, but a centralized workflow is supported just as well. See [1] for examples (Just a quick search, there are many more articles out there covering workflows) [1] http://blog.endpoint.com/2014/05/git-workflows-that-work.html > > So to check my understanding, using GIT to create a distributed version control would have the following benefits > The CAD designer who has design a pump assembly for example could create an additional branch and “plays around” with the pump to make improvements without editing the main pump branch? Branches are cheap to create. Specially in Git. But other version control systems also allow for creation of branches. The big issue is the merging back to mainline. And in case you have binary files, which have been edited in both branches to merge, you're out of luck unless you write a merge driver yourself. > Could more than one user create independent branches? Branches are local. So everybody who has a copy of the repository can create branches. Depending on the configuration of the server, people may or may not push new branches (or are only allowed to update existing ones). > If both users wanted to merge their independent branch with the main branch, what would happen? Would one take priority? In case of text files, they just merge if they were edited at different positions of the file (plus some margin for error). If they were edited at the same position, you need to resolve the merge conflict manually. Binary files are not merged automatically as Git has no idea of binary file formats. You need to provide your own merge driver[2]. [2] https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html see "Defining a custom merge driver" > > Is that the main benefit in terms of a CAD system, the branching ability? > > Thanks > > Jack > -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html