Hello

By reading the Git documentation and other resources, I am convinced that the 
Integration Manager Workflow would be best for continuing with the development 
on a broader basis of a certain project - this is out of question - I want the 
IMW.

This project got a few years of history by a single developer using Subversion 
(a few hundreds of commits and about 100 source files). I managed already to 
'git svn clone ...' the whole original SVN history into a bare repository on a 
dedicated server (FreeBSD), and I called this one "Commons.git". I am able to 
clone a working copy of it to my development machine, and pushing/pulling does 
work as expected, also the whole SVN commit history is accessible, so up to 
this point everything looks fine.

Now, I want to set up the requisites for the Integration Manager Workflow for 2 
developers (I expect more to join the project later, however let's start with 
2). Now, reading some tutorials, I am stuck already right at the beginning. 
Some start by setting up empty repositories from the scratch (which does not 
match my case) in another tutorial I read "1. Fork your existing repository 
...", however the actual Git commands, how to "fork" are missed out, and Git 
does not have a fork command, I can clone something or create branches, though.

Questions:

1)   In order to set up the public developer "Derivate-A.git" and 
"Derivate-B.git" repositories from the "Commons.git" (blessed) repository, what 
does forking mean in terms of actual Git commands on the server side?

Would I simply do:
   cd /path/to/the/git-repositories/TheTinyThing
   git clone --bare Commons.git Derivate-A.git
   git clone --bare Commons.git Derivate-B.git

Developer A and developer B then would simply clone respective working copies 
to their local developer machines and would start working, won't they?

Or would I need to do some sort of branching? In this case please can somebody 
give a pointers on where (server or client side) and how the branches would be 
created and perhaps uploaded to the repository server, again in terms of actual 
Git commands?


2)   Developer A made some changes on his Derivate A, which were already pushed 
to the respective repo on the server. What does the Integration Manager who 
knows already about the exact details of the changes need to do in terms of 
actual Git commands to get the changes pushed or pulled or merged or whatever 
from "Derivate-A.git" into "Commons.git"?


3)   So, the changes from Developer A which were integrated into "Commons.git" 
are interesting for Developer B as well. What would the Integration Manager or 
Developer B need to do in terms of actual Git commands in order to update 
"Derivate-B.git" with all the changes which made it into "Commons.git" since?

GitHub, GitLab or alike are not an option, so please may I ask to give your 
advices in terms of plain git commands. We are using Git version 2.21.0 on the 
FreeBSD server and the developer machines.

Many thanks for any help.

Best regards

Rolf

Reply via email to