gitgit-annex

How to define an alternative remote url for a git remote repository?


I'm using git-annex to manage my files. Some of my remotes are available using 2 or 3 methods, for example ssh and nfs, but the nfs access is only possible on my local network, of course. Then, git-annex chooses the fastest method to sync or get the files (nfs, if available, ssh instead, using scores to choose). For now, I define a remote per repository and per access method (example: server-by-ssh, server-by-nfs), but that's not a really git-annex way to do the job, as it is not compliant with the numcopies option, which ckecks that the files in the annex are kept with enough replications (with my current method, many remotes are in fact the same folders on a hard drive).

Then, my question applies to both git and git-annex, since the remotes are added in git, not git-annex: I wonder if it is possible to define alternative url for a given remote.

I have tried to use the git remote set-url --add command, but it doesn't really work as I would expect. Indeed, if the nfs url is not reachable, git hangs up and waits.

Any idea?


Solution

  • I got the answer from the git-annex forum, where I had asked a question similar. It doesn't matter if there are many remotes pointing to the same repositories, using different accessing methods. Indeed, each repository gets an UUID when initialized by git-annex. Then, this UUID is associated to the remote when added and synced. Consequently, git-annex considers the different remotes that have the same UUID as a single repository.