git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* GIT Branch Maintenance
@ 2020-05-05 22:21 Roman Gelfand
  2020-05-05 23:10 ` Randall S. Becker
  0 siblings, 1 reply; 2+ messages in thread
From: Roman Gelfand @ 2020-05-05 22:21 UTC (permalink / raw)
  To: git

Hello,

I am in a process of designing a git strategy for our vs solution.
The vs solution is a legacy asp .net webforms app which is enormous.
CI is out of the question because of cumbersome db source  setup.  So,
we are pretty much relying on integration testing.  We have roughly 6
people on development team.  Each of developers are assigned separate
feature.  Sometimes, a feature spans several releases.

Here are the branches:
Master - source that made it to prod
Feature - checked out from master Head.  The Head represents previous release.
QA - synchronized with master at the beginning of release development.
Upon completion, each active Feature branch is merged into QA.
Bugfix - in case of bug in current development, QA branch is checked
out to bugfix branch.  Upon completion, it is merged back into QA
branch.

Over time these master and qa branches will be enormous.  How do I
keep it concise preserving detailed history in case I need to hunt
down a specific commit?

Any help is appreciated.

Thanks in advance.

^ permalink raw reply	[flat|nested] 2+ messages in thread

* RE: GIT Branch Maintenance
  2020-05-05 22:21 GIT Branch Maintenance Roman Gelfand
@ 2020-05-05 23:10 ` Randall S. Becker
  0 siblings, 0 replies; 2+ messages in thread
From: Randall S. Becker @ 2020-05-05 23:10 UTC (permalink / raw)
  To: 'Roman Gelfand', git

On May 5, 2020 6:21 PM, Roman Gelfand Wrote:
> Subject: GIT Branch Maintenance
> I am in a process of designing a git strategy for our vs solution.
> The vs solution is a legacy asp .net webforms app which is enormous.
> CI is out of the question because of cumbersome db source  setup.  So, we
> are pretty much relying on integration testing.  We have roughly 6 people on
> development team.  Each of developers are assigned separate feature.
> Sometimes, a feature spans several releases.
> 
> Here are the branches:
> Master - source that made it to prod
> Feature - checked out from master Head.  The Head represents previous
> release.
> QA - synchronized with master at the beginning of release development.
> Upon completion, each active Feature branch is merged into QA.
> Bugfix - in case of bug in current development, QA branch is checked out to
> bugfix branch.  Upon completion, it is merged back into QA branch.
> 
> Over time these master and qa branches will be enormous.  How do I keep it
> concise preserving detailed history in case I need to hunt down a specific
> commit?

Answering a question with questions:

1. Have you looked up the GitFlow process, or perhaps in your case the GitLabFlow? The rest of the answer depends on this.

2. What enterprise git server are you using? GitHub, GitLab, BitBucket? You should consider one of those (no affiliation with any). My company uses all three brands of enterprise servers. Don't ask why - it's a very long discussion.

3. This is not a question: Look up merge --squash. You should consider using squashed merges going into master. If sequencing your features to multiple releases independently is important, then using a Pull Request (Merge Request in GitLab) is going to be important to you to pull in a change branch into a release.

However, I would consider distinct release branches and feature branches (or topic branches). They are sequenced independently, from what you wrote, and I don't think Feature means exactly what you intend. It is more like the development HEAD where developers get their starting point - this may be your default branch, whatever you call it. Each feature  would have its own branch rather than "Feature". So it BitBucket's GitFlow implementation, a branch would be like "feature/1234-topic-being-worked-on". You may not need your QA branch. Your definition of master may require some thought. It may actually represent the current prod release in general use (assuming multiple prod environments) rather than one "prod", somewhat like definitive prod, which is approximately what we use for the latest main release rather than just what made it to prod.

Regards,
Randall



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-05-05 23:10 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-05 22:21 GIT Branch Maintenance Roman Gelfand
2020-05-05 23:10 ` Randall S. Becker

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).