Организация решений, проектов и SVN

Мне нужна помощь в настройке проекта в SVN в отношении структуры каталогов. Я прочитал несколько ответов по этому поводу на SO, но, поскольку я новичок в этом, большинство из них трудно понять.

Я создаю одну библиотеку, от которой зависит несколько других отдельных проектов:

Мне нужна возможность легко экспортировать MyLibrary (только заголовки и .lib) для использования третьими сторонами

MyLibrary1

  • Зависит во внешних библиотеках должна быть возможность управлять разными версиями этих библиотек!

MyLibrary2

  • Зависит от внешних библиотек fmod, glew, ...

Project 1, 2, 4, 5, 6 ...

  • Зависит от MyLibrary1, 2 или обоих
  • Каждый проект могут потребоваться версии для нескольких платформ (osx, windows ...)

Я хотел бы знать, как это организовать, имейте в виду, что я новичок в этом - более педантичный ответ был бы полезен. Например, если вы пишете что-то вроде /src, объясните, что в нем должно быть! Я бы догадался, но не уверен =)

///////////////////////////////// ////////////////////////////////////////////////// /////////////////////////

// Редактировать

Я не могу поместить это в комментарий, так что вот: @ J.N, спасибо за развернутый ответ, я хотел бы кое-что прояснить, надеюсь, я правильно понял, что вы имели в виду:

root
    library foo
        /branches           // old versions of foo
        /tags               // releases of foo
        /trunk              // current version
            /build          // stuff required by makefiles
            /tools          // scripts to launch tests ect
            /data           // test data needed when running
            /output         // binaries, .exe files
            /dependencies   // libraries that foo needs
                /lib name
                    include
                    lib
            /docs           // documentation
            /releases       // generated archives
            /sample         // sample project that shows how to use foo
            /source         // *.h, *.cpp

    program bar
        /branches           // old versions of bar
        /tags               // releases of bar
        /trunk              // current version
            /build          // stuff required by makefiles
            /tools          // scripts to launch tests ect
            /data           // test data needed when running
            /output         // binaries, .exe files
            /dependencies   // libraries that bar needs
                /lib name
                    include
                    lib
            /docs           // documentation
            /releases       // generated archives
            /sample         // sample project that shows how to use bar
            /source         // *.h, *.cpp

1) Где находятся файлы *.sln файлы идут? В /сборке?

2) нужно ли копировать foo/source в bar/dependencies/foo/include? Ведь bar зависит от foo

3) Куда деваются файлы *.dll? Если у foo есть зависимости от dll-файлов, то всем программам, использующим foo, нужен доступ к одним и тем же dll-файлам. Должно ли это идти в root/dlls?

6
задан aCuria 2 March 2012 в 18:58
поделиться