How can I branch in SVN and have it branch my svn:external folders as well?

爱⌒轻易说出口 提交于 2019-11-27 20:06:47
Peter Parker

You should use svn:externals as external references from different repositories. So svn:externals should refer to components, modules, 3rd party tools, etc.

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(as you pointed out)
  • 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.

You'll have to manually create a branch in your external repository and then change your svn:external property to point to the correct branch.

When you create a branch within Subversion you are simply creating a cheap copy of the trunk, branch, or tag that you are branching from. This cheap copy will contain all of the same files and properties as the trunk, branch, or tag that you branched from until you begin to modify the properties or files of the new branch.

However, you may be able to modify one of the 'commit' hooks to modify settings automatically once you commit your branch. http://svnbook.red-bean.com/en/1.1/ch05s02.html

Otherwise if you want your externals to be modified on the branch you will need to do so manually.

there are relative externals now. though you should know :) im using them right now - in the middle of solving a few troubles i got, but im progressing. i just tagged a project after creating relative externals inside it. for now its wierd - when i check out the branch, it notifies me the externals are from revision "top revision of the trunk", but the externals themselves are the original ones - which is what I want :)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!