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 7089981
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 28, 20262026-05-28T07:59:20+00:00 2026-05-28T07:59:20+00:00

Firstly, let me introduce general architecture of a project. It is hierarchical. We develop

  • 0

Firstly, let me introduce general architecture of a project.

It is hierarchical. We develop server application for our customers. It is stored on main server.

Say, local server 1, local server 2, …, local server n are the servers (main application instances) in different companies. Each company has one local server. Mostly all local servers have the same functionality (say, core module), but each company can have it’s own. As an idea it was decided to solve this problem via git branching.

Let’s consider some cases.

Case 1
One company (local server x) wants some specific feature that is needed only in that company. Following the logic our of idea of branches we do the following steps:

  1. create git branch on main server
  2. develop needed functionality for that server
  3. create git branch (branch y) on local server x
  4. push changes to main server
  5. switch branch y on local server x
  6. switch to master branch on main server

Case 2
We developed some functionality (changes in core module) that is common to all companies

Case 3
We developed some functionality that is common only to some companies

Want to hear your advises about how to solve “Case 2” and “Case 3“.

  • 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-05-28T07:59:20+00:00Added an answer on May 28, 2026 at 7:59 am

    Technically, @VonC is correct in saying that branches would be the way to go.

    There is a caveat though. You’re mixing 2 different paradigms here. SCM (git is a tool) means managing source code and its different versions.

    Enabling/disabling product features is product management. Essentially, it boils down to development and deployment of your application.

    What you’re trying to do is combine feature management of your product with version management.

    It is certainly doable (via SCM alone) and depending on your requirements, it may actually work well for you.

    However, over a period of time, you’ll end up in a branching/merging soup. Not only will it increase time and effort to maintain and upkeep each branch (and keep the “main” and other “branches” in sync), it’ll also be counterproductive as every time there is change or new feature, you spend more time on planning on how to keep your branches up-to-date than the actual feature. This gets compounded over time with new hires who have no prior knowledge of your branch management techniques and if you end up having distributed teams who might want to create their own branch for a variety of reasons.

    If I may suggest, keep one version of your application and implement a mechanism to enable/disable “features”. This will make your SCM easier to understand, cleaner to implement and maintain.

    A middle ground is to have core branch for the core module and then each submodule or feature is its separate branch. Anyone can install core module and as per need/permission, they can go and install separate “features” from their respective branches.

    Hope this provides some clarity. If you have any questions, I’ll be happy to elaborate on them.

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

Sidebar

Related Questions

Firstly, let me say that I know that http://sphinxsearch.com/docs/current.html#conf-sql-attr-string says strings can only be
Firstly, let me just say that I'm very new to JSR-170 and Jackrabbit/Lucene in
Firstly let me say I believe immutability is one of the best things one
Firstly, let me say that I've been on this issue for pretty much 2
Let's say I have some email: some_email@yahoo.com . Firstly I would want to remove
Firstly, let me set out what I'd like to do. Assume I have three
Firstly, let me start by saying that I haven't ever directly used SQL views.
I need to develop a lightweight web application, it will: have a simple webgui
Firstly, let me give a brief description of the scenario. I'm writing a simple
Firstly, let me apologise for the title, I honestly couldn't think how to word

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.