Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8088049
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 5, 20262026-06-05T18:58:46+00:00 2026-06-05T18:58:46+00:00

I’m developing a web project that contains several modules (JSP, JS and CSS). What’s

  • 0

I’m developing a web project that contains several modules (JSP, JS and CSS).

What’s the best approach from the SVN point of view when distributing the application for several clients in which each client will have access to a restrict number of modules and may customize the layout of each page.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-05T18:58:47+00:00Added an answer on June 5, 2026 at 6:58 pm

    Take it from a guy who has spent several decades in the swamps and trenches of Configuration Management:

    DO NOT USE BRANCHING

    Sorry for the shouting, but I want to warn you not to go there. Not to even think about going there. Branching means handling the branching, and it never happens. It becomes harder and harder to maintain, and it starts getting neglected. Let’s look at two different strategies:

    Branching Per Customer

    Oh, it sounds so simple. I’ll create a basic project, and mark the differences between clients on separate customer branches. If there’s a change for all customers, I’ll put it on the base branch and merge it to all the various customer branches. What could be simpler?

    I’ve seen companies gone out of business because of this very strategy. They decide to create customized code for a client, so they branch for that client Then, a second client needs customized code, and they branch for that. Then a third. Now, it seems that a change for Client #1 is also required for Client #3. Well, we’ll merge that change from Client #1 to Client #3. Wait, Client #2 needs that change too. Okay, we’ll merge it to Client #2 too.

    But, this feature is now in all of your clients, but not your base code. Your base code is completely out of sync with what your clients have. Some day, you’ll get those changes into that base code and update it, but you never do. Instead, it becomes a festering reminder that you’ve blown it.

    Every five years, you should take your source code, put it through a shredder and start over. That’s because every five years, the entire software environment changes so much that your legacy code becomes a shackle that you’re dragging around. If you had a single project, it wouldn’t be too bad to start a new project. But, you now have six customers and six different projects. There’s no way you have the resources to pull everything together. You’ve written yourself into a virtual corner.

    However, competitors will come by and they’ll have the latest and greatest code, and they will pluck your customers off one-by-one until they’re all gone and so is your job. I’ve seen it over and over. You must keep innovating, but it’s hard when you have customer specific code all over the place.

    Keep a Core Code and Branch Only Specific Customer Stuff

    Sounds easy, if you’ve never programmed in your life. A developer knows exactly what that means: You need to checkout from two or three separate projects and/or branches in order to do development. Some of those combinations will create neat and interesting errors that are hard to track down. You continuous build server will blossom with jobs for each possible combination. Code that was considered customer specific now is base, and must be moved (although that will probably never happen).

    In the end, it’s simply impossible to keep straight. You’ll end up with code that should be client specific in your base and base code spread among your clients. It’s very much like the first scenario, but you’ve also added the fact that your build system is also hell.


    So what should you do?

    • First, use Maven. I am not a great fan of Maven, but there are many things it does.
      • Maven tells you exactly how to lay everything out. You put your source here, you put your JSPs here. No one can argue about it because Maven said so. You may disagree, but you can’t argue. Maven will make you put each jar or war as a separate sub-project with it’s own pom.xml to your project (which will have one pom.xml that ties everything together. That’s the correct way to handle this.
      • Maven has a built in way it handles dependencies. This isn’t just for third party jars, but for jars you produce that multiple projects use. Create a local Maven repository and use it.
      • Don’t know Maven? Learn it. Learn it as if your pay depends upon it because it does. Knowing Maven is probably worth about $20,000 per year for a Java developer. Yes, a developer who knows Maven can get paid a lot more — the difference between a Volkswagon Jetta and an Audi A6.
    • Create a unified release and use configuration records to determine what a client should see. If a Client #1 needs feature “A”, and Client #2 needs feature “B”, you put both A and B in your code, and have a configuration record determine which feature which client sees. This has a purpose of making you think before you code too. It’s very easy to check out a client specific branch and hack away. But, you can’t do this if you have a dozen clients and you have a single code base. You start looking and seeing commonalities and maybe better ways of handling the situation. You end up with better code.
    • There will be client specific code. In that case, make a directory for things like custom JSP screens. Try to keep this to a minimum, and use a Perl or Python script to help build client specific layouts. In fact, use a single centralized script, and come up with a configuration scheme to handle building the client differences. It’ll make it easier to see the differences.
    • Make a single release for all clients, and setup your servers, so the client specific configuration isn’t overwritten by a new release. This makes releases much easier and less error prone.

    90% of coding is in the initial design. The other 90% is in maintenance. Branches create more maintenance and encourage you not to worry about overall design. Don’t branch if you don’t have to.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

That's pretty much it. I'm using Nokogiri to scrape a web page what has
I'm parsing an RSS feed that has an ’ in it. SimpleXML turns this
link Im having trouble converting the html entites into html characters, (&# 8217;) i
For some reason, after submitting a string like this Jack’s Spindle from a text
I have a string like this: La Torre Eiffel paragonata all’Everest What PHP function
I've got a string that has curly quotes in it. I'd like to replace
I have a French site that I want to parse, but am running into
I am doing a simple coin flipping experiment for class that involves flipping a
We are using XSLT to translate a RIXML file to XML. Our RIXML contains
I have a text area in my form which accepts all possible characters from

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.