Difference between revisions of "Subversion Repository"

From Nutwiki
Jump to: navigation, search
(How to move from CVS to SVN)
m (1 revision imported)
(No difference)

Latest revision as of 18:03, 27 October 2016


Starting with 4.9beta, the Nut/OS code will move from CVS to SVN.

The purpose of this page is to provide a scrapbook for planning the move.

Why Subversion

CVS is rock solid and most developers are quite familiar with this tool. Over the last years many projects and almost all CVS developers moved to its successor, Subversion. CVS is no longer maintained.

There had been a discussion thread in the Ethernut mailing list about Subversion and possible alternatives.

Nowadays distributed version control has become popular with Open Source Projects, because they offer some advanced features, which are not available in centralized systems. On the other hand they require different update strategies, which are sometimes confusing newbies and developers used to work with CVS-like tools. The Ethernut project leader recommended to go with Subversion, which was almost silently accepted. ;-)

Problems with current repository structure

In order to work flawlessly with relative paths, the Nut/OS configuration expects a specific directory structure.

  • Top project folder
    • Top source folder (nut)
      • Sample application folder
      • Source module folders
    • Specific build folder 1
    • Specific application folder 1, related to build folder 1
    • ...
    • Specific build folder n
    • Specific application folder 1n, related to build folder n

While the Windows installation creates a compatible structure, this is not possible for the source tree (used to install Nut/OS on Linux and OS X). This problem is cause by the folder hierarchy of the repository.

  • Top source folder (nut)
    • Source module folders
      • Sample application folder
      • Source module folders

To overcome this problem, the following workaround is currently used on Linux and OS X.

  1. Create a new folder named ethernut, which is the top project folder
  2. Move the source package to this folder
  3. Unpack the package
  4. Create a link named nut to the unpacked directory
  5. Change to nut to configure, make and install
  6. Always call the Configurator from the top project folder

This could be avoided with the following SVN structure:

  • trunk
    • ethernut
      • nut

How to move from CVS to SVN

In order not to lose the repository's history, we will stay at SourceForge.

Any recommended documents?