aboutsummaryrefslogtreecommitdiff
path: root/doc/bugs/interference_with_Dropbox_results_in_data_loss.mdwn
blob: baa59951c505e04007f7ea95391ad4e75ac77bba (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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
### Please describe the problem.

When working with git-annex in a folder managed by Dropbox, the folders names in .git/annex/objects/ are mangled by Dropbox. This leads to lost files.

This is not a git-annex bug, but the problem is severe and it would be helpful when git-annex can deal with it somehow. Possibilities are:

* include a warning in documentation (this will be probably found after someone encounters the problem actually)
* issue a warning when running in a Dropbox managed folder
* avoid using filenames that differs in case only (this would make git-annex also more robust against corruption i.e. when a repository is copied over filesystems/protocols without filename case support)

Dropbox file name limitations: [[https://www.dropbox.com/help/145/en]]

### What steps will reproduce the problem?
    cd ~/Dropbox
    mkdir test_annex
    cd test_annex
    git init
    git annex init "test_annex"
    cp ~/somefiles/* .
    git annex add *
    # wait for Dropbox to upload and mangle folder names in .git/annex/objects/
    find -L . -type l | wc -l # print number of broken symlinks
    git annex fsck # prints all the missing files


### What version of git-annex are you using? On what operating system?

* git-annex 3.20130207
* Fedora 19

### Please provide any additional information below.

[[!format sh """
# folder names mangled by Dropbox

$ ls .git/annex/objects/
Ff/                      M9 (Case Conflict (1))/  x8 (Case Conflict (1))/
Ff (Case Conflict)/      pF/                      x9/
Ff (Case Conflict (1))/  pF (Case Conflict)/      x9 (Case Conflict)/
Ff (Case Conflict (2))/  pF (Case Conflict (1))/  Zf/
Ff (Case Conflict (3))/  pF (Case Conflict (2))/  Zf (Case Conflict)/
Ff (Case Conflict (4))/  pF (Case Conflict (3))/  Zf (Case Conflict (1))/
Ff (Case Conflict (5))/  pF (Case Conflict (4))/  Zf (Case Conflict (2))/
Ff (Case Conflict (6))/  PG/                      Zf (Case Conflict (3))/
...

# End of transcript or log.
"""]]

> [[done]] --[[Joey]]