Remote repositories walkthrough

Last Section:

Remote repositories are fairly similar to local repositories. The biggest difference is that remote repositories are read-only. You cannot create branches or commits remotely. We will continue using our example from the previous section for this section. You may want to revisit the end of the last section before proceeding with this section.

Making a merge request

In order to open a merge request, click either the large merge request button in the remote repositories tab or the notification that pop ups reminding you to open a merge request for Our First Branch.

You can alter the title or the description of the merge request. Like GitHub, by default the title is the name of your branch and the description will be the message of your first commit. You can change these details later.

Requesting reviewers

After you've created your merge request you can request reviewers. You will need to provide write access to your reviewer if this is a personal repository or invite someone to your organization if this is a organization repository.

In the search for reviewers search-bar you can search for users that have access to your repository to review your changes.

In this example, we have the option to merge the branch because we are an administrator of the repository. However, in practice, you will likely not have this option available to you and will require approval from a reviewer before you can merge.

We're going to change accounts to the perspective of the reviewer now

Finally, our reviewer will have the choice of either approving or blocking our merge request.

If a reviewer blocks a request, you will need to push new commits up to your repository to make the requested changes. Once, you are approved, you will be given the option to merge your merge request. Unlike in GitHub, you cannot re-open merge requests once they are merged or closed.

Switching back to our original (requester) perspective

Commit history

From the main branch of your remote repository, you will see a link to commits. If we review the commits of our main branch we should now see, the commit we just merged in.

With our merge request merged, we've now completed nearly the entire work-flow of floro. Before going over merging remote changes into our local repository, we will go over how we control repository access.

Repository settings

When you click on the remote repository settings page, you will see the following.

Depending on if your repository is personal or an organization repository, you will have some slight differences to your repository settings. For example, in private organization repositories, you can control which members of your organization can view the repository.

Repository access can be granted either to individual floro users or by using the roles defined in the organization member settings. Organizations can provide write access to members external to their repositories as well, as long as the repository is private.

We can get even better control over read and write access with branch rules. By default a branch rule for the main branch will already exist.

Branch rules & settings

Once we select a branch from our branch rules page we will see the following. Like repository settings, some of the options may be modified depending on the type of repository.

You can make it so that only certain organization members or users can approve merge requests or merge merge requests. You can also control whether a branch can be directly pushed to, or if the branch should only receive changes through merge request merging.

Revisiting local

If we tab back over to our local repository, we should now go to the branches section and switch our local branch to main. To do this, select the main branch and click the switch branch button.

Pulling branches

All of our changes should now disappear. We will see that the option to pull the remote branch is now available to us.

After pulling we should see our changes reflected back to us on our own local main branch.

Next section

We will return to our local repository in the section following the next. First we will cover merge requests and remote merging.

In the next section we will be covering navigating merging and conflicts.