I recently transferred Git to a Subvision repository. all went well. I used the git viewer to create different repositories of each module of the software. But now the developers tell me that they often work, which makes changes in some of the main apps and modules, which makes two commits, where it would have been understood to do it in a committed way. It tells me that the modules are not really different from the main app. I would mean a bigger store. On the other hand, our main product is open source and some modules, and we sync those treasures to Zithub and Sourceforge. But there are also some closed source modules, which should not really go out. So they want to put to in a separate repo in our internal gelatelab.
They ask me to make two large (SVN-style) repositories: source for one open source and one stop. On the other hand (QA and release management) I feel as if it is related to different parts and you can not change anything at one place without making any other changes. But I am not a full time developer and I have not opened this special code base in depth.
Another argument: the software exists in Java and C # flavors. The Java version was created from SVN in separate Jenkins jobs, one for each module (so divided GIT repo made a correct understanding from a CI point), while the C # version is a large team job (a large, Svn-style repo).
I know that normal GIT practice is to divide things, but how deep is you to divide?
It depends on how many independent modules one "very" depends on how many of them go together often In our team, we had 4 different Java modules (which went independently), a C # code base, a library of Pearl modules, a suite of DB artifacts and shell scripts.
Our codebase is around 4 -5 years, which leads to a lot of codes, commits and unused branches. Although git is fast and there is a lot of engineering for large repo, after time it is unhealthy to be so furious in VCS (GIT / SVN) due to any reason, and if we have an independent repro, then merge It is easy to do and whenever a developer spoils the repository (sometimes it happens) without affecting the other repo, it is still reset-hard.
In addition to this, we had the same reliance between our C # and Java API layer, where many times where the repo was needed to be rebuilt, but we calculated that the number of individual commitments in the API or C # layer There was more than coordinated commissions, so to run in many repos, It also helps that all of our modules are not tightly coupled and in-house versions are intelligent in the system that helps them in maintaining a micro-service type architecture.
You can set technology related build / test / CI stacks no matter how many repo / single reps you have, so you should not have to decide what to do
No comments:
Post a Comment