0

I am trying to onboard some code to GitHub Enterprise and am experiencing a lot of difficulty. I am attempting to build a pipeline of sorts using VMware vRO 8.x in a brownfield scenario. These four instances are meant to be the basis of the code lifecycle like this:

[DEV] --> [INT] --> [QA] --> [PRD]

[DEV] will eventually go away to be replaced by feature branches created from [QA]

What should have happened was that all of this integration between vRO and GitHub was completed before the first line of code was written and then GitHub used to promote from one environment to the next. That didn't happen. The code has been manually promoted between each instance using the vRO equivalent of a tarball. The code promotion process has been imperfect which means that the code is not 100% the same across the environments. I can configure the git client (Eclipse jGit) in vRO for each environment to similarly named branches in the same repo in GitHub. There are a number of problems that complicate matters:

(1) Only a limited amount of functionality has been exposed to the user interface for jGit in vRO. This means that any kind of 'fixing' requires use of a separate git client such as Git for Windows (GitBash).

(2) Pushing ALL of the content from a lower branch into a higher branch is not an option especially between DEV and INT as not all content should be promoted. Referring to #1 above the only way to de-scope files and folders is to clone the branch using GitBash make the fixes (git rm), commit and push back to GitHub. Yes, I am aware of .gitigore but that isn't has helpful as I hoped due to the peculiarities of how VMware has implemented the git client in vRO.

(3) Because the manual promotion process is imperfect I'm trying to figure out how to onboard the content from each vRO environment to GitHub so that I can use the web GUI to diff between branches. In some cases I may opt to fix the differences directly in vRO and then commit/push to GitHub. In previous attempts to do a merge I discovered that there are over 300 files in an given environment/branch.

(4) In case anyone is wondering, yes, I already contacted VMware support about this. Any kind of meaningful fix will not happen soon enough.

I have researched this for weeks and read dozens of articles and posts on how to do this and I'm still lost. Some examples:

Git refusing to merge unrelated histories on rebase

"This branch has conflicts that must be resolved" but it's already merged

https://linuxpip.org/git-accept-all-incoming-changes

There isn't anything to compare. Nothing to compare, branches are entirely different commit histories

https://www.educative.io/answers/the-fatal-refusing-to-merge-unrelated-histories-git-error

... and so on.

My problems end up being that I have two branches that don't have any differences according to GitHub or only have differences if their order is reversed to allow promoting from higher to lower branches instead of lower to higher branches, or disjoint commit histories, or 300+ merge conflicts.

How do I get all of these bits of code in to GitHub such that I can make meaningful comparisons and be able to promote from lower to higher? Any help would be greatly appreciated.

P.S. Before anyone complains about the lack of specific examples that I have tried and failed, my response is that I have tried so many scenario that including them here would be pointless.

Thank-you.

aenagy
  • 37
  • 6

0 Answers0