0

I am planning to build a j2EE project, using files from multiple branches in my repository.
I want to know whether this should be done or not, provided the problem which I am facing.

Problem is, that I have created a new feature branch(branch_F) out of the development branch(branch_Dev).

The development of new feature(Web_project_2) is in progress in branch_F, but it uses some dependent library jars, whose source code is under development in branch_Dev in the normal line of development.

  1. branches
    • branch_Dev
      • Web_project_1 <--under development
      • Web_project_2
      • Jar_project_1 <--under development
      • Jar_project_2 <--under development
      • Jar_project_3 <--under development
      • Jar_project_4 <--under development
    • branch_F
      • Web_project_1
      • Web_project_2 <--under development
      • Jar_project_1
      • Jar_project_2
      • Jar_project_3
      • Jar_project_4
  2. trunk
  3. tags

Hence, since Web_project_2 is dependent on jar projects 1, 2, 3 and 4, i have to take a checkout of 1, 2, 3, 4 from branch_dev, and checkout of Web_project_2 from branch_F.

Otherwise, I could have used symbolic links, pointing jars 1,2,3,4 to branch_dev, but it would again conceptually mean the same thing. Can any one tell is this allowed in SVN branching system conceptually. And if not, why?

Zoe
  • 27,060
  • 21
  • 118
  • 148
khoks
  • 33
  • 5

1 Answers1

0

Using external (outside of WC root) resources is allowed, conceptually correct (separation of authority and development) and naturally supported in Subversion feature: SVN externals. For externals it does not matter where, how and by whom maintained included external objects (another subtree in the same repository is perfectly valid case).

Common precaution and dilemma of using pegged or HEAD definitions are applicable and should be investigated before starting externals intensively

Lazy Badger
  • 94,711
  • 9
  • 78
  • 110
  • but then, to which release will the Web_Project_2 pertain to? SUppose branch_dev corresponds to release 5.0.0.0, and branch_F pertains to 5.0.0.1. If I mix the resources of these two branches to build Web_project_2, then which release will this build belong to? branch_F is not an experimental branch, it is a proper drop out of the branch_dev. – khoks Jul 15 '14 at 03:42
  • 1
    @khoks - "release" doesn't exist in SVN nor as default term nor as "commonly accepted" term. If release == tag, you can always use linking to tags-subree in externals (or just have a mixture of released versions in your code)... or re-phrase your question, I can't grok it – Lazy Badger Jul 15 '14 at 05:54
  • @Badger Since a code branch is mapped to an environment, and an environment is used to test/develop a particular Release/Build, that is why I am confused. I can create a custom TAG by linking various modules from different branches, there is no doubt in technical feasability here. Question is, whether this approach will mess up things in future, or is it conventionally permitted to do this. – khoks Aug 07 '14 at 06:38