# Forking the DASP Monorepo
> [TOC]
## Why
Gitlab currently allows a DASP developer to fork projects into thier own namespace. This is a plus for doing one off projects such as innovation week or exploration of a new idea that may not make it into the core DASP monorepo. By forking, the repo is cloned into it's own seperate project and changes can not be directly merged into the orginal repo with out some extra steps. This also leaves the orginal repo with cleaner / not orphaned branches in case the idea or project do not go any further.
## How
1. In gitlab from the DASP Monorepo page click the fork button in the upper left.
2. Select your own namespace from the list shown. At this point the project will be cloned to your namespace.
3. Example: https://gitlab.spectrumxg.com/henketr/spectrum-web
4. From here you can clone the project locally just like you would normally.
5. You can now administer your local fork. I highly recommend changing the name of your project to not confuse yourself from the spectrum-web project.
### Setting to private
In case you do not want your fork of the DASP Monorepo to be accessed by any other user you can make it a private repo.
1. From your forked project go to Settings->General.
2. Expand the **Visibility, project features, permissions** section and change the visibility to private.
If you want to allow only specific users to collaborate on your fork you will need to go the the Settings->Members section and invite individuals to the project.
### Keeping your fork up to date
In order to keep your fork up to date with the DASP Monorepo project, you will need to create an upstream branch on your project to pull changes in.
**Creating the upstream branch**
```
git remote add upstream git@gitlab.spectrumxg.com:spectrum-web/spectrum-web.git
```
Once the upstream is in place do a fetch from the monorepo:
```
git upstream fetch
```
And then merge in changes:
```
git merge upstream/develop
```