Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!mcnc!thorin!unc!cheung From: cheung@unc.cs.unc.edu (Clement Cheung) Newsgroups: comp.software-eng Subject: Re: Re: Source Code Control Message-ID: <8664@thorin.cs.unc.edu> Date: 27 Jun 89 23:57:19 GMT References: <133@tirnan.UUCP> <9630003@hpirs.HP.COM> Sender: news@thorin.cs.unc.edu Reply-To: cheung@unc.cs.unc.edu (Clement Cheung) Organization: University Of North Carolina, Chapel Hill Lines: 35 In article <9630003@hpirs.HP.COM> runyan@hpirs.HP.COM (Mark Runyan) writes: > >If there are any technical papers available to the general public on how >this reconciliation/merge process is accomplished, I would be extremely >interested in reading them! The "need" for exclusive locks exists because >of the difficulty of merging changes back in (at least, in my experience). >If NSE solves this problem to handle the merge automatically, I'd like >to know how its done. (Of course, it may be a company secret for SUN, >in which case, I'll not know. But if SUN wants to make it a paper at >the next USENIX Workshop on Software Management, I'll be the attentive >one in the front row... :-) > >Mark Runyan There is nothing that will automatically merge 2 lines of development into one yet. What NSE does is to put up some windows on your workstation showing the 2 versions and highlighting the differences. A person has to merge the differences manually using the diff utility. One of the assumption the authors made is that the chance that 2 teams want to work on the same section of code is rare as well as semantic conflicts. This is described in the paper on NSE in the Proceedings of the 11th Conference on Software Engineering. As an aside, there has been research conducted on merging versions of programs considering the semantics, not just blind merge. There is a paper on this research in the 8th Conference on the Principles of Programming Languages Record by Reps, Prins, and Horwitz. (Prins is one of the faculty here at UNC.) As far as I know, the algorithm they came up with can handles only simple programming constructs. It may be awhile before the algorithm can work on full blown languages like C. Clement Cheung