Support for multi-versioning in the context of software development

Anna Copiy


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.

Full Text:

PDF (Russian)


Loeliger J., McCullough M. Version Control with Git: Powerful tools and techniques for collaborative software development. O'Reilly Media, Inc., 2012

Spinellis D. Version control systems. IEEE Software, 2005, Т. 22., №. 5., 108-109 p.

Pilato C. M., Collins-Sussman B., Fitzpatrick B. W. Version control with subversion: next generation open source version control. O'Reilly Media, Inc., 2008.

Lebanon G., El-Geish M. A Few More Things About Programming. Computing with Data, Springer, Cham, 2018, 441-470 p.

Meyer S. Quality assurance for open source software configuration management. 15th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing. IEEE, 2013, 454-461 p.

Stroustrup B. The C++ programming language. Pearson Education India, 2000.

Lutz M. Programming python. O'Reilly Media, Inc., 2001.

Jetbrains/Bunches. Set of utils for supporting patchsets branches. (accessed: 4 April 2020).

Knittl-Frank D. Analysis and comparison of distributed version control systems. Bachelorarbeit, University of Applied Sciences, Upper Austria. 2010.

Lanubile F. Collaboration tools for global software engineering. IEEE software, 2010, Т. 27., №. 2., 52-55 p.

Rana A. I., Arfi M. W. Software release methodology: A case study. Student Conference on Engineering Sciences and Technology. IEEE 2005, 1-10 p.

Swicegood T. Pragmatic version control using Git. Pragmatic Bookshelf, 2008.

Collberg C. A system for graph-based visualization of the evolution of software. ACM symposium on Software visualization, 2003.

Logan S. Cross-platform development in c++: building mac os x, linux, and windows applications. Pearson Education, 2007.

Nanjekye J. Package Imports. Python 2 and 3 Compatibility. Apress, Berkeley, CA, 2017, 47-52 p.

Yu Y., Leite J. C. S. P., Mylopoulos J. From goals to aspects: discovering aspects from requirements goal models. 12th IEEE International Requirements Engineering Conference, 2004, 38-47 p.

Krinke J. Identifying similar code with program dependence graphs. Eighth Working Conference on Reverse Engineering, IEEE, 2001, 301-309 p.

Brooks F. P. Mythical Man-Month T. Essays in Software Engineering. Adisson-Wesley, Reading, Mass, 1975.

Jones N. D. On modeling and programming. International Symposium on Leveraging Applications of Formal Methods, Springer, Cham, 2018. 22-34 p.

Chacon S., Straub B. Git and Other Systems. Pro Git. Apress, Berkeley, CA, 2014, 307-356 p.

Blischak J. D., Davenport E. R., Wilson G. A quick introduction to version control with Git and GitHub. PLoS computational biology, 2016, Т. 12, №. 1


  • There are currently no refbacks.

Abava  Absolutech Convergent 2020

ISSN: 2307-8162