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

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T18:11:11+00:00 2026-05-23T18:11:11+00:00

I’m facing the following problem and don’t have an answer to it: We have

  • 0

I’m facing the following problem and don’t have an answer to it:

We have a repo that was cloned from an SVN repo. The project stored in that repo is something like a platform software that gets used by various projects. The structure of the repo is like this:

platform
  |- core
  |- additional

The structure of that repo cannot be changed for some reasons. Both, core and additional contain data that are part of that platform.

If a project wants to use the platform and add some functionality, it creates a new folder under additional containing the sources and adds a header for that functionality to additional/includes

Currently, we simply branch off new projects from master and everything goes into the same repo. This leads to a branch inflation and my (central) repo grows more and more because all of the commits being made in the single projects go to the central repo (my colleagues are used to SVN, so they push nearly after each commit — just to be sure…).

First I had in mind were submodules: keep platform as a submodule under a superproject (called super) and then go to super/platform/additional/mystuff, create the sources there and add them to super. But this obviously doesn’t work because the files are inside the platform submodule.

Is there any better way to organize my repo, so that:

  • users of the platform are able to update their working copy from the central repo
  • AND users of the platform are able to apply bug fixes to the repo of platform
  • AND the projects using platform don’t mess up the repo of platform?

EDIT 1: Highly coupled git submodules covers quite a bit of the scenario I’m in: tightly coupled stuff, me the only one knowing a bit more than absolute basics of git, “Most of the developers have only a very cursory knowledge of git”. Perfect match!


EDIT 2:
While the answer from Michael looks promising, I think that it’s a bit too complex to use. I’m looking for some really simple thing that doesn’t need that much interaction.

  • 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-23T18:11:12+00:00Added an answer on May 23, 2026 at 6:11 pm

    I found your usage of master a bit confusing as I never knew
    whether you meant the platform repository as a whole or just its
    master branch.

    My solution to this would be the following:

    • You have one central repository for the platform.
    • You have one central repository per project.
    • Every developer has his/her own repository local.

    The central platform repository

    This is where only the platform code goes to. Use e.g. your
    existing repo as a starting point here.

    The central project repository

    This is a clone of the platform repository and keeps all the code
    of a project. Init it with

    $ git clone --bare /path/to/platform
    

    The developer’s local repository

    Init

    You, as a developer, start by cloning the project repository.

    $ git clone /path/to/project
    

    Making changes to the project

    Now, make your changes, commit them and push them to the projects
    bare repo.

    $ editor some-file
    $ git add -p some-file
    $ git commit
    $ git push
    

    Pull changes made by other developers to the projects bare repo
    by using git pull.

    Making changes to the platform

    As you also want to make changes to the platform itself, you also
    need a way to access the platform repo. So you add it as a
    remote repo to your local repo:

    $ git remote add platform /path/to/platform
    $ git fetch platform
    

    As you can see now with git branch -a, your local repo knows
    about the platform. Now you want to make some changes to the
    platform. First you create a local branch central which is a
    clone of the master branch of the platform repo:

    $ git checkout -b central platform/master
    

    You can always check which branch you’re on by using git branch
    or git status. Now you make your changes and commit them (to
    central, where your on). As central is connected to
    platform/master (checkout cat .git/config) you can push your
    changes to the platform repo by simply using git push. Also
    git pull works without any other arguments.

    Use git checkout master and git checkout central to change
    between your branches.

    Get a new platform version into your project

    Note: You need to have done the work from the previous section.

    First change to your platform branch and pull in the new version
    of the platform:

    $ git checkout central
    $ git pull
    

    Now go back to your project branch and merge the changes made in
    the platform into your project branch.

    $ git checkout master
    $ git merge central
    

    If a conflict occurs, something like this happens:

    $ git merge central
    Auto-merging index.html
    CONFLICT (content): Merge conflict in index.html
    Automatic merge failed; fix conflicts and then commit the result.
    

    Open the files with the conflicts, resolve them, add them to the
    staging area and commit the merge:

    $ editor index.html
    $ git add index.html
    $ git commit
    

    Now push your changes to the project’s bare repo:

    $ git push
    

    More about merge conflicts: Pro Git: Basic Merge Conflicts

    If you do not want to change the platforms repo, but merge
    changes from there into your project use

    $ git remote add platform /path/to/platform
    $ git fetch platform
    $ git merge platform/master
    

    The git remote add is only needed the first time you merge.
    The other two are always required.


    The part about merging is based on the Pro Git Book which is
    licensed under cc-by-sa. All other content of this post may be
    considered public domain.

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

Sidebar

Related Questions

I have a bunch of posts stored in text files formatted in yaml/textile (from
I have a string like this: La Torre Eiffel paragonata all’Everest What PHP function
I have a French site that I want to parse, but am running into
I am currently running into a problem where an element is coming back from
I'm parsing an RSS feed that has an ’ in it. SimpleXML turns this
I have a text area in my form which accepts all possible characters from
I ran into a problem. Wrote the following code snippet: teksti = teksti.Trim() teksti
link Im having trouble converting the html entites into html characters, (&# 8217;) i
That's pretty much it. I'm using Nokogiri to scrape a web page what has
I have just tried to save a simple *.rtf file with some websites and

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.