What are the best methods for moving between version control systems?

In vss, there are about 200 projects in cvs and at least 100 projects. Some of them are inactive code in maintenance mode. Some of them are outdated applications. Some of the older applications are no longer in use. About 10% are in active development. The plan is to transfer everything to my end of 2009.

Has anyone done such a big migration?

Does anyone encounter best practices for migrating from cvs to perforce? Or similar migration. Any bugs to look for?

+4
source share
6 answers

On the VSS side, there are conversion tools available for migration. They can mainly support version history (there are caveats that are explained in readme and docs). I have migrated over 50 VSS projects using the VSS enforcement tool. Retrieving data from VSS can be a little tedious and not very fast, but it works. If you have direct access to disks (i.e., not through a network resource) to the VSS repository, the conversion can go much faster. You can find information about the scripts here .

There is a simlar page for CVS for forced conversion here , although I have no direct experience with this. These links are good places to start. You can also search the Perforce mailing lists in the Perforce knowledge base located here . I'm sure you can find conversion information in the mailing list archives.

Transfer your old projects first. You can make sure your process is running. When we moved the active code to Perforce, I took one weekend and basically refused access to the servers and transferred the code to Perforce. Honestly, it was a fairly easy migration, and when people returned on Monday, they were ready to go. You might consider preparing your employees for Perforce cheat lists after the start of the migration.

The biggest mistakes may actually prepare your people for Perforce. If I did this again, I would first redirect our smaller active projects and prepare fewer people to use Perforce right away. As it was, I had to train more than 120 people on the first day after the migration, and that was not much. In addition, make sure that you do not have another 100 people who hit your server for a new synchronization on day 1. We launched our server several times during the first few days. We used a 32-bit Windows server, which I would not recommend. Now we have a 64-bit server, and it is much more reliable. If you can, I would use Linux as the OS for your perforce server. Again, there should be good performance information on the Perforce site.

+5
source

I did not need to do something on this scale, but I have a few ideas. First of all, start by adopting a small, non-essential project and migrate. This will give you an idea of ​​how many problems it will take to migrate the remaining projects. Immediately after this, you should choose a medium-sized project, as there may be problems transferring a larger project (say, using branches) that might not appear in a small project.

Make sure you spend a little time on how easy it is to convert cvs projects to vss or vice versa. If converting from vss to perforce is a real pain, you can convert vss to cvs and then to perforce. Take your time, but it can help you get out of the sticky situation. I think the key here is gradual.

Backups are good. Period.

Consider the cut-off date, and any projects that are inactive and older than this should be mothballed. Check out the final version and save it to Perforce. Do you really need a 15 year old visual base code?

+2
source

Whatever you do, keep the old repositories in read-only mode somewhere.

+1
source

Excuse me for answering the question with a question, but do not Perforce provide tools for this? Or at least the documentation? I would beat my seller Perforce ...

0
source

Imagine not transferring dead and inactive projects. Just put your repositories in read-only mode. Data will still be available if needed, and you will save time spent migrating it. Just migrate the 10% that are used. Fully document the process.

If one of the non-reprogrammed projects is resurrected for some time in the future, you can easily transfer it using your documentation as a reference.

0
source

We migrated our svn repository using the tool we wrote, and simply revised our starteam projects.

Watch for differences between single-type checks (CVS) and file sets with multiple files (Perforce).

Beware of branches - this is a separate space (CVS) and branches in the file path (Perforce).

0
source

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


All Articles