Friday, December 16, 2016

ForgeSCMC using GIT on Forge.mil

There are many reasons I am excited to see git support on Forge.mil. Below are a few notes on successfully using early versions of the ForgeSCMC tool.

The following scenario assumes you use a different git repository than forge.mil as the primary development repository and that you need to push released code to forge.mil as part of a contractual agreement.

My daily git client is Github for Desktop, and sometimes SourceTree.  I use ForgeSCMC only to push code to forge.mil.

Setting UP
There are several documents, the one you need to read is the "Git-Gerrit Users Guide.docx".  Pay special attention to the sections covering Git Developer and Git Reviewer role setup and the section "Assigning Source Code Permissions to Roles"

Quick Tips
Some of these tips are not fully tested, so your mileage may vary.

If you are a GitHub, GitLab, BitBucket, or VSTS user, your standard workflow will not work for pushing code to Forge.mil. You will need to follow the Gerrit Workflow that is commit based and not branch based.

Create a single commit from a dev branch using
git merge --squash <featurebranch> 

Commits are a bit different than GitHub or VSTS.

git commit -m 'my message' //will not work using ForgeSCMC

git commit -a -m "my message" //works: notice the double quotes and the ammend command.

Amends are required because forge uses Gerrit as the code review tool.  Gerrit is commit based, wile VSTS and GitHub are branch based. I've read that the Google Gerrit team wants to remedy this but, but when they built Gerrit, the copied the workflow of their existing tool.

Keep both remote repositories in sync by add the forge.mil repo as a remote using your primary git client. ForgeSCMC does not support the remote add command. This is a one time step

git add remote forge https://yourProjectUrlHere










No comments:

Post a Comment