summaryrefslogtreecommitdiff
path: root/doc/todo/wishlist:_turn_a_directory_into_a_git-annex_direct_repository.mdwn
blob: c15dca727ff1b5733e81461a09e2eb5f62239a85 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
It would be nice to have a simple command that can safely turn a plain directory into a git-annex direct repository.

This is the use case:

* I use git-annex to manage a directory full of files, including many huge files.
* These files are also stored in an S3 repository.
* It takes days to download those files.
* I have another computer with a directory that contains 80% of these files.
* I would like to turn that directory into a git-annex repository.
* I would like to download only the 20% missing files.

What I would like to have a command that turns that directory into a direct repository without dealing with the gory details I will describe later. This command could be something like

    $ cd Documents
    $ git annex setup --direct example.org:~/annex/Documents.git

This command should take care of:

* cloning the git repository `example.org:~/annex/Documents.git` to `.git`,
* switching to direct mode (carefully setting up all the needed branches),
* create symlinks _only_ for the missing files,
* record that the existing files are present in this repository.

These are just the main problems that one faces in this task; they are mostly caused by the fact that the repo is in direct mode.

There are workarounds, like those sketched at <http://unix.stackexchange.com/questions/75557/init-gix-annex-additional-repo-with-existing-files>, but they are all time-consuming and fragile.