Git Import from Surround SCM?

后端 未结 3 929
[愿得一人]
[愿得一人] 2020-12-16 01:31

My company has a large codebase in Surround SCM, which was migrated from SourceSafe a few years ago. We\'re looking to move to something more suited to our needs, but gettin

相关标签:
3条回答
  • 2020-12-16 01:34

    Finding myself in this exact scenario, I've take it upon myself to write such a custom importer: export-surround-to-git

    This method is capable of preserving complete history, timestamps, authors, comments, branches, snapshots, etc.

    This script has been tested in a limited number of scenarios, and has proven successful so far. While still a work-in-progress, this may be what you're looking for. It's open-source--so feel free to make improvements to the script on your own!

    0 讨论(0)
  • 2020-12-16 01:40

    Surround SCM has an SDK. I used this to bring a repository from CVS to Surround. Years later, one team was looking at moving to SVN and asked if I could migrate the repository. I came up with a solution, which consisted of walking the Surround repository and creating an intermediate in-memory database, and then processing it. To ensure dates were right, I would reset the clock on the computer. Before I could fully implment the solution, we decided to keep a floating license for that team for when they needed to look at history and planned on them rethinking the entire organization of their projects. (As an FYI, two years on and that team is still using Surround.)

    0 讨论(0)
  • 2020-12-16 01:41

    In this kind of scenario, a script can be written, but not for getting all the history.

    I would recommend only importing:

    • the major labels (for anything older than a year, or whatever period you feel comfortable you won't need the examine in full because it is so old)
    • all the labels (major and minors) for the last years.

    However, migrating to Git requires also a work in order to identify modules or applications within your centralized Surround repository.
    Trying to import all those data into one Git repository would be a mistake, unless it is one giant system which can not be developed in parts independently one from another (like the Linux kernel).

    See:

    • "What are the Git limits?" and
    • "Transferring legacy code base from cvs to distributed repository (e.g. git or mercurial). Suggestions needed for initial repository design."
    0 讨论(0)
提交回复
热议问题