Karo,
You don't say what the existing 'tool' is, and whether there is a way of running both old and new (Git) tooling in parallel.

When using Git branches (and local forks), it is possible for individual devs to 'break' the rules regarding which files they can touch, but only as a temporary measure, thereby allowing the dev to indicate a _potential_ solution to the real owner of that area.

The responsibility for the 'foreign area' is still with the old hands, who get to pick and choose what they use in 'their' area (cherry-picking ideas and code segments from those other branches). Obviously they get to do the same back to the young whippper-snappers (showing who are the wiser coders), and hopefully everyone benefits from the mutual working.

The key step is that the area owners retain responsibility for what they will accept into their segment of the master/trunk, without having to actually do the work (when someone offers a finished work item).

Most of this is careful social engineering using the best parts of each particular tool and the process flows.

HTH

On 18/09/2018 00:37, Karo Zans wrote:
I see.  Thank you for the response.  I agree with what you say.  Unfortunately, I am dealing with about 250 different developers who have been on the same project for 15, 25, and even 35 years and they are all stuck in the old school way of doing things. Asking them to adopt a new tool is like extracting teeth.  I can't tell you how many times I've heard, "What we do now works, so why change?".  Frankly the only reason why we are moving to GIT from the old system is because the old tool isn't being supported anymore.

Thanks for the information on the workflows.  I think I have heard that some people like Google use Gerrit in combination with GIThub.  That is supposed to enforce permissions, is that right?  Where can I find these workflow models?  I think I saw some basic ones in the GIT user manuals, but they didn't seem to work for us.  Is there a good place I can look at several workflows?

Thanks

On Mon, Sep 17, 2018 at 4:23 PM Philip Oakley <[email protected] <mailto:[email protected]>> wrote:

    Hi,

    Most processes are driven by the limitations of the local tool and
    the
    experiences of local staff and managers. This also affects the way
    teams
    are structured (see Conway's Law).

    Git, with it's 'Distributed control' model, tends to break the old
    paradigms which were based on the 'absolute single master ' idea (one
    master drawing / paper record). Git avoids the need to limit peoples
    scope by separating the modification step from the acceptance step.

    Clearly it us reasonable that people generally stay within their lead
    area, but there is nothing wrong with stepping into other areas with
    carefully crafted and explained changes. They won't be accepted, I
    hope,
    if they fail that criteria. It is important to have a high quality
    senior dev at the acceptance stage who is firm but fair.

    The fact that git branches are free and easy makes this freedom
    easier.
    Have a look at the various workflow models, including Nvie's and
    that of
    git itself (4 layer: master, next, pu (potential updates), maint).

    Philip

    On 17/09/2018 21:17, Karo Zans wrote:
    > Hi everyone.  I have a question.  At my current company, we have
    quite a
    > few developers.  Each team has about 10 or 15 developers that
    are only
    > allowed to modify their specific code areas.
    >
    > On our current bug and new development tracking system, we have
    bug ticket
    > that code changes are tied too, and sometimes a bug ticket is
    marked at a
    > CoRequisite of another bug ticket.
    >
    > Basically if a person on another team has to implement a function or
    > feature or bug fix in their code, I will mark my bug ticket as a
    > CoRequisite of their bug ticket, if my code depends on the new
    function
    > they are adding or fixing.
    >
    > So I was wondering, how does GIT enforce this?
    >
    > I realize that I could simply create a branch off of another
    person's
    > branch and that will indicate that my code depends on their
    code, but
    > suppose I finish my code before they finish their code.
    >
    > If a sub branches code is merged into Master before, the parent
    branch is,
    > the code will be broken.
    >
    > How does GIT mitigate/enforce this so that the build isn't broken?
    >
    > Thanks
    >


--
You received this message because you are subscribed to the Google Groups "Git for 
human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to