Resumen
Software development and exploitation requires to fix stable versions. In the case of support of cross-platform development, usage of different programming language versions or different compilers versions, it becomes necessary to allocate sub-versions of programs. Modern versioning methods are designed to linearly commit code changes, that is, architecturally do not provide the ability to manipulate sub-versions. As a result, the requirement of supporting several sub-versions is associated with additional time costs for manual synchronization of sub-versions, or with an increasing amount of semantically identical sections of code. In the analysis of modern version control systems, their shortcomings were identified for the task of supporting multiversional software. Based on existing approaches of sub-version control, an alternative approach was proposed. The solution involves storing context-sensitive sections of code separately from the main revision. Consequently, each revision can contain several versions of the code that are in the revision itself, but do not duplicate the full program source code. The task of synchronizing sub-versions was transferred to one of the modules of the proposed solution, as a result of which the need for manual synchronization of sub-versions was leveled. This solution allows to reduce software versions development and release time. As a result, the proposed sub-versions allocation approach is a more effective method of solving the problem in comparison with the existing ones.