Version control system for not very smart programmers

Problem :

A huge code base, covering several million SLoCs, is supported (support / active improvements, etc.) by a horde of second / third speed programmers (most of them do not really care). Decades ago, several smart guys created a wrapper that uses CVS below, and this is the system of developers currently used (90% of them did not use CVS directly, or heard / used a different command-line source control system).

Effect :

Using CVS and several commands working through several modules, inevitably => the CVS branch merges into a trunk. This will be an activity practiced in the most religious and ritually possible way. [=> brute force; Planned weeks ahead, involving a dozen guys for 2/4 days. Hundreds (sometimes thousands) of sources are processed manually. The funny part is that the people involved are not the original owners of the fix, and they just check the differences; really, I'm not joking!] This leads to a lot of inconsistencies in the sanity of the library / modules / functionality and too much effort is spent on fixing defects due to regression during these merges.

And now the question is:

What alternative version control system can lead to some positive changes and improve the life of programmers / managers and everyone else in the environment?

Since everyone around seemed to have drunk KoolAid (and sang "This-such-things-things-everywhere-everywhere"), without even thinking about finding an alternative, the time has come when someone does it. But, considering the people who will use the system, the following aspects should be considered.

  • Easy to use && you see, even Joe Coder should be able to use it without fuss. (In any case, this will not be needed, since the wrapper will hide the real material under the hood from people).
  • HUGE code base (consisting of sources in several languages) with several (about 30) active branches at any given time.
  • Easy merging with various branches. (given that the scope of the changes is quite huge)
  • Commercial support for the system will be enjoyable, if available.
  • Development takes place on UNIX servers (should be run at least on HP-UX / Solaris)
  • It should scale well (thousands of users / hundreds of thousands of sources).
  • Good documentation
  • Simple / clear browser-based interface for comparing / viewing changes / copies.
  • There are no binaries in the repository, so they don’t need to worry.
  • Providing for importing the contents of the current repository into the new system.

So please suggest. Is there hope && Exit? :) I'm sure things like git will be rejected directly (they think that "git is only for smart people")

EDIT: I also have Mercurial and BitKeeper in mind, and mentioned this to the people in the chain. Hoping for the best! Thank you :)

+4
source share
5 answers

You may have heard the old adage of good, fast, and cheap. The same goes for here. With a rich set of functions, a certain degree of complexity arises. I do not believe that you can fulfill this list of requirements without choosing a tool that will involve some complexity. I wish you good luck in trying, but if it were me, I would choose a good tool and spend some time training users.

+8
source
I'm sure things like git will be rejected directly (they believe that "git is only for smart people")

If this is purely a matter of “perception” —that they “perceive” git too hard, try suggesting Mercurial or Bazaar — they may not be familiar enough with them to form an inaccurate prejudice.

+3
source

Mercurial will be my suggestion. To avoid "complexity", perception, take a look at this site .

This is Joel Spolsky's “Friendly Introduction to Mercurial DVCS”, and it provides an excellent tutorial for users (and part of the subversion recovery) that takes them through step-by-step editing, fixing, merging, etc.

+3
source

I will throw away the proposal to switch to Subversion. This is not a sexual distributed source control that all cool kids use, but that’s why I suggest it, SVN should be easily migrated from CVS. It has been installed, well used, and conceptually similar to CVS in some respects. (Now, if your developers are so far from this, this may not help.)

Many, many people have made this migration. There are utilities to port your code from CVS to SVN (but not without pain).

It should satisfy most of your requirements (although a simple merger can be controversial).

Bottom line: your task is not technology. This is acceptance. If your team does not want to change, this is not so. And, unfortunately, any decision will be doomed. You must convince them that they need a change in the first place. It is best to turn to your laziness (I mean it positively) and show that "life will be better" if they change.

+1
source

Any tool needs training. I would say that if you are sure that you will move to some other system, then it makes sense to spend some time on training the guys, so that in the long run it would be very useful. Looking at your set of requirements, I would try looking at svn or sos. The advantage of using sos is that you get 24 * 7 support for questions. They can handle big data. They also have a cool browser interface.

0
source

Source: https://habr.com/ru/post/1316686/


All Articles