summaryrefslogtreecommitdiff
path: root/doc/bugs/Incorrect_merge___40__a_special_case__41__.mdwn
blob: 8e25ed6cbc9a3857293aa03ab0e42370fd60d4b4 (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
### Please describe the problem.
(Minor issue.)

Incorrect merge of direct repos in the special case where at repo A a symlink to a file whose contents aren't yet available, are overwritten, while at repo B the file is deleted.

Result: file is deleted on both side.

Expected: B.f is gone, A.f is still present

### What steps will reproduce the problem?

[[!format sh """
# setting up stuff
test/a$ git init
test/a$ git annex init
test/a$ git annex direct
test/a$ touch firstfile
test/a$ git annex add firstfile
$ git clone test/a
$ mv a test/b
test/b$ git annex direct

# actual scenario
test/b$ echo bbbb > f
test/b$ git annex add f
test/b$ git annex sync
test/a$ git annex sync
test/a$ echo aaaa > f
test/a$ git annex add f
test/a$ git annex sync
test/b$ rm f
test/b$ git annex sync
test/a$ git annex sync
# test/a/f is now gone, lost
"""]]

### What version of git-annex are you using? On what operating system?
[[!format sh """
git-annex version: 4.20131031-g7d99d14
build flags: Assistant Webapp Pairing Testsuite S3 WebDAV Inotify DBus XMPP DNS Feeds Quvi TDFA CryptoHash
key/value backends: SHA256E SHA1E SHA512E SHA224E SHA384E SKEIN256E SKEIN512E SHA256 SHA1 SHA512 SHA224 SHA384 SKEIN256 SKEIN512 WORM URL
remote types: git gcrypt S3 bup directory rsync web webdav glacier hook

Linux ceilingcat 3.11.6-1-ARCH #1 SMP PREEMPT Fri Oct 18 23:22:36 CEST 2013 x86_64 GNU/Linux
"""]]

> [[fixed|done]]; direct mode now freezes the content directory as indirect
> mode already did. fsck will fix up the permissions too. --[[Joey]]