This PR introduces the ability to add new remotes to a repository. To accompany the add-remote command, a number of other commands for remote management are added. Here's a rundown of everything:
add-remote: Add a remote for a local repository as an upload destination. This can be a local directory, a gin server, or any other kind of server.
remove-remote: Pretty self explanatory. Removes a remote from the local configuration.
use-remote: Set default remote. Specifies the default remote where annexed content will be uploaded when performing a gin upload.
remotes: List configured remotes. The current default is noted.
add-server: Add a GIN server configuration. This adds a GIN server to the client configuration that can be used to create and add remotes to repositories. Full usage of multiple servers will be in the next PR.
Notes
The gin client tracks the default remote separately from git. It stores a config key in the local git configuration called gin.remote. This is used to upload the annexed content when performing a gin upload with no --to argument. The --to argument can be used to override the default. The special keyword all can be used to upload annexed content to all configured remotes.
This PR introduces the ability to add new remotes to a repository. To accompany the add-remote command, a number of other commands for remote management are added. Here's a rundown of everything:
gin upload
.Notes
The gin client tracks the default remote separately from git. It stores a config key in the local git configuration called
gin.remote
. This is used to upload the annexed content when performing agin upload
with no--to
argument. The--to
argument can be used to override the default. The special keywordall
can be used to upload annexed content to all configured remotes.