Topic: Recommendations for choice hierarchies of projects and structure VCS
There are many various projects from big to the small. There can be one , and can be in addition and more than ten dll ( - projects). Dll can be specific to the project, and can be and the general. There is enough of clients at which can be from one to several projects, and the standard project can be for requirements of this client. Lifetime of projects can be and more than 10 years. Projects "are often completed" at clients, well type to write down the data on the server of the client. Projects are fastened with the equipment so all in firm generally can be impossible. it is necessary to know precisely at whom what version it is installed, as sometimes it is necessary or to correct a specific error or what to add. Candidate solutions (only some, improper) 1. We get a repository on the project where all code is thrown off, with daddies on clients where in the daddy there can be "branch" of the client. The master code is marked by a label of release for the client. For SVN and projects from one it is convenient enough. But as soon as there are general subprojects it is necessary to double or take away all the data from several repositories. 2. We get the general repository on all projects and it is scattered all on the daddy as well as in a variant 1. There is a control possibility the general sub-projects which however "kills" versions of clients. An example: in January project 1, with subprojects 1 and 2 is given, in May project 1, with changed versions 1 and 2 is given, in September changes for 1 are required, and it is not compiled any more with versions 1 and 2 or there is a probability of appearance of new errors specific only for 1 in connection with changes 1 and 2. Well and for remote SVN access (the Internet often happens is accessible only through a mobile phone) the big repository simply not even if simply structure to look. Though problems SVN can be solved GIT th (only like in studio 2013 access types what that do not suffice to it) Well and for the general not clearly for which subprojects it is necessary to do a label/branch for the specific client/project. While the initial way sees in creation of the general repository, trunks/labels/branches on each project and with a trunk/labels/branches on the general subprojects.