Course - Git Workflows with GitSwarm and Git Fusion
Setup an account in GitSwarm. Create a new project, import a remote repo and invite other team members. Edit and diff a file, commit it on a new branch, and perform a merge request.
Review steps for CentOS and Ubuntu installs. Install Postfix and Curl. Issue single command to install and configure GitSwarm. Change configuration file if desired.
GitSwarm Narrow Cloning
Clone one folder of large project into one repo. Add a second folder from another branch. Make edit in GitSwarm and review change mirrored in Helix.
Git Fusion Overview
Use Perforce and Git together. Examine system architecture and compare Git functionality with a standard Perforce client. Review install methods, permissions features, and other benefits.
Git Fusion SSH Authentication
Set up SSH authentication to access Git Fusion. Generate SSH key pair, create a workspace for all keys, check the public key into Perforce, and copy it to the Git Fusion server.
Git Fusion Permissions
Review different user roles. Map Git users to Perforce accounts, iterate thought permission layers, and add to permissions group. Pull files and push new versions back into Git repo.
Git Fusion Repos
Set up Git repos using configuration files to map relevant portions of the Perforce depot. Use global and repo-specific config files to set up permissions and branches. Watch a Git and Perforce user editing the same file at the same time.
Git Fusion OVA Install
Download the Git Fusion OVA and import it into your VM application. Verify the settings and start the virtual machine. Create the required accounts for administration, login as a user, and perform a Git clone on the sample data to verify operation.
GitSwarm offers users a web interface to collaborate on projects using a Git based workflow while automatically mirroring their work in Helix Enterprise.
You login from the GitSwarm homepage. If your admin has enabled new user sign-up, you create a new account here and login after receiving a confirmation email. I already have my credentials so I am going to login as Tim.
Over in the left panel of the initial dashboard screen, you have an overview of pending tasks such as milestones, issues, and merge requests. In the main screen, you have options to create new projects in GitSwarm and you can also create groups to cluster multiple projects into directories and give users access to several projects at once.
Since this is our first login and we are not involved in any projects, let’s create one. We need to give the project a name, which will double as the path. We will call it P4Jenkins.
Several sources are available if you have accounts setup with these services, or, we could elect to mirror a Helix Git Fusion server to mirror a project in GitSwarm.
For this demo will select “Any repo by URL” and paste the URL for the Perforce Jenkins Plug-in to import the project.
Here we have the option to enter a short description, and we can select the visibility level of the project. We will keep this project private, but you can change this later if you want. Now we select Create Project to kickoff the import.
The progress screen will appear while GitSwarm imports the files. When the import is complete, the screen presents information needed to access the files including SSH and HTTP addresses. If you plan to access the project files via SSH, you will need to add your key.
On the main screen and in the left panel, you are provided several options for reviewing the historical information to get an orientation on previous work completed. Here we see a detailed list of previous commits, and on the graphs screens, we can get a quick overview of the activity by user or commits.
We want to add a couple members to the project so we click on this link and add Jill and John. They will be modifying code and approving merge requests so we give them developer access.
Now we click on Files to have a closer look the content of the project and notice the license file has not been updated in a few years. Clicking on the link to view the content, we see copyright needs an update. We click the Edit button and update the year. If we select the Preview changes tab, we can see the current change along with previous changes to this file.
Next, we want to commit this change so we start by entering a commit message. We will make this change on a new “business” branch for now so we enter the name of the branch we want to create, and lastly we hit Commit changes.
We want to get this update reviewed and into the master branch so we create a merge request. Next, we land on a page to enter some relevant info for the reviewers. A default title is provided based on the previous Commit. Next, we enter a relevant massage to the reviewers, and finally, we assign it to one of the other folks on the project. We will select Jill. Scrolling down, we have the option to enter a milestone or label from this screen, and near the bottom, we see the branches have been assigned. They can be altered if desired.
Just before submitting the request, we decide we want John to have a look so we enter his user name with the @ symbol. The request is still assigned to Jill, but John will also receive an email to have a look at the change. Now we submit the merge request.
After Jill receives the GitSwarm email notification in her inbox, she logs in and notices a new pending merge request. Clicking on the link, she sees the request from Tim and opens it up for review. From the Changes tab, she can quickly review what has been modified. She has the option to add a comment directly to a part of the file, or make the changes herself.
She decides to leave an overall comment for future reference, and accept the merge request as is. After the acceptance is complete, she is given the option to delete the branch created for this change.
Lastly, she clicks on the Network link and sees a graphical view of the change where it was created in the business branch, and then merged back into the master branch.
This concludes the overview of GitSwarm. If you have any technical questions, please contact email@example.com.
Thanks for watching.