Search code examples
delphiversion-controlproject-structure

How do you manage your Delphi Projects with third-party components in Version Control?


Installing third-party components always take a long time specially if you have large ones, but also it take more time if you setup the environment in more than one computer.

And I'm thinking to add them to the Version Control (Subversion), so it will be always easy to checkout the project with all it's required components.

So how you manage that, and what's the best practice to manage them inside the VCS?

Also consider some of these third-parties come without source but as Delphi libraries. (BPL).


Solution

  • If we have the source, then we include that in our repository, under a separate folder.

    If we don't have the source, then we just keep the most recent binaries (bpl, dll, whatever) in the repository, and include installation / usage instructions in a setup document.

    It looks like this:

    \root
        \third_party_stuff
            \vendor1  --we *do* have the source for this
                \src
                \bin
            \vendor2  --we *do* have the source for this
                \src
                \bin
            \vendor3  --we don't have the source for this one
                \bin
        \our_stuff
            \project1
                \src
                \bin
            \project2
                \src
                \bin