Shared components throughout all projects, is there a better alternative than svn:externals?

后端 未结 5 1488
独厮守ぢ
独厮守ぢ 2020-12-17 15:37

My situation: I have several components, which sometimes have changes to them, and are shared across a lot of different projects. Each project puts these in a subfolder ca

5条回答
  •  执念已碎
    2020-12-17 16:09

    I stated this on a similar question: You should use svn:externals as external references from different repositories. So svn:externals should refer to components, modules, 3rd party tools, etc. which reside in different repositories.

    You should not use svn:externals to emulate a "symbolic link"-behaviour by using externals to point into the same repository.

    You can solve such issues most of the time by modifying your build-structure, or use checkout-scripts and sparse checkout feature.

    svn:externals have a lot of problems most of them are difficult to see, track and repair: see an example here

    • commits cannot span over externals(no atomic commits)
    • branches will not branch their externals
    • tags will not "freeze" their externals so latter builds may result in different/broken builds
    • merging and reeintegrate merge will not work on externals

    If you use externals to point to other repositories, you will most of the time do not have these problems.

提交回复
热议问题