Projects FAQs


What's the difference between projects and namespaces?

Namespaces are used for organizing your source code whereas projects are for managing your code as a shareable package. Think about namespaces as a directory tree and projects as a git repository.

Can I create a project within a project?

No, projects cannot be nested.

How do projects relate to the codebase reflog history?

The reflog and history is separated by project by default. You can learn more about resetting codebase state here.

How do I contribute to an organization's project as a member of the organization? Organizations are coming in the future! As a member of the organization, you'll be able to push to the main branch of the project but it's more common to create a feature branch for your work and merge it in. Currently, you can contribute to another persons project by cloning it and creating a contributor branch. See making a pull request for more details.

Can I push and pull from more than one remote branch?

Yes, one local branch can push and pull from many remote branches, but only one will be remembered by the UCM as the remote mapping shortcut.

How can I see all the remote contributor branches for my project from the UCM command line?

Currently, this is not possible. In the future we're hoping to add tab completion to the clone command so you can enter the name of the project or branch and quickly find a specific remote branch. However, you can see all the contributor branches from the project's homepage by navigating to the branch name dropdown.

How should I version my project?

We recommend you use a semantic versioning scheme with digits to represent major, minor, and patch versions. Currently, Unison Share enforces that new releases are greater than the last released version by exactly one major, minor, or patch version. If your existing versioning scheme is not expressed in this format, when you migrate to a project, pick 1.0.0 as your first release version and increment by one from there.

Support for hotfixes and pre-release versions is incoming.

How do I rename a branch or project on Unison share?

Renaming a remote branch or project is a forthcoming feature! Currently you can push your local project or branch to a new name like this:

oldName/main> project.rename newName
newName/main> push @userHandle/newName

Then confirm that the new repo exists and delete the old one using the Unison Share UI project settings tab.