diff --git a/doc/bugs/git_annex_forget_--drop-dead_can_lose_group_information.mdwn b/doc/bugs/git_annex_forget_--drop-dead_can_lose_group_information.mdwn new file mode 100644 index 0000000000..c9e94389e6 --- /dev/null +++ b/doc/bugs/git_annex_forget_--drop-dead_can_lose_group_information.mdwn @@ -0,0 +1,154 @@ +### Please describe the problem. + +If multiple remotes edit group information and one of them does `git annex forget --force --drop-dead` some of those edits can be lost on sync. + +### What steps will reproduce the problem? + +Make a temporary directory and `cd` into it. Then run this script: + +[[!format sh """ +#!/bin/bash + +git annex version + +git init a +cd a +git annex init +touch test +git annex add test +git annex sync +cd .. +git clone a b +cd b +git annex sync + +cd ../a +git annex group here ga +git annex sync +cd ../b +git annex group here gb +git annex forget --force --drop-dead +git annex sync + +cd ../a +git annex sync +cd ../b +git annex sync + +cd ../a +echo "A IS IN GROUP:" +git annex group . +cd ../b +echo "B IS IN GROUP:" +git annex group . + +"""]] + + +### What version of git-annex are you using? On what operating system? + +6.20170101-1+deb9u2 on Debian Stretch but I also tested this occurs in version 6.20180719 + +### Please provide any additional information below. + +Here's the output of the above script. The interesting part is the last two lines which show that remote 'b' is not in any group despite being added to group 'gb'. + +[[!format sh """ +git-annex version: 6.20170101.1 +build flags: Assistant Webapp Pairing Testsuite S3(multipartupload)(storageclasses) WebDAV Inotify DBus DesktopNotify ConcurrentOutput TorrentParser MagicMime Feeds Quvi +key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_224 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 SHA1E SHA1 MD5E MD5 WORM URL +remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav tahoe glacier ddar hook external +Initialized empty Git repository in /home/matthew/test-git-annex/a/.git/ +init ok +(recording state in git...) +add test ok +(recording state in git...) +commit +[master (root-commit) ffcf48d] git-annex in matthew@thorium:~/test-git-annex/a + 1 file changed, 1 insertion(+) + create mode 120000 test +ok +Cloning into 'b'... +done. +(merging origin/git-annex into git-annex...) +commit (recording state in git...) + +On branch master +Your branch is up-to-date with 'origin/master'. +nothing to commit, working tree clean +ok +pull origin +ok +push origin +Counting objects: 3, done. +Delta compression using up to 4 threads. +Compressing objects: 100% (3/3), done. +Writing objects: 100% (3/3), 409 bytes | 0 bytes/s, done. +Total 3 (delta 0), reused 0 (delta 0) +To /home/matthew/test-git-annex/a + * [new branch] git-annex -> synced/git-annex +ok +group here ok +(recording state in git...) +commit +On branch master +nothing to commit, working tree clean +ok +group here ok +(recording state in git...) +forget git-annex (recording state in git...) +ok +(recording state in git...) +commit +On branch master +Your branch is up-to-date with 'origin/master'. +nothing to commit, working tree clean +ok +pull origin +remote: Counting objects: 3, done. +remote: Compressing objects: 100% (3/3), done. +remote: Total 3 (delta 0), reused 0 (delta 0) +Unpacking objects: 100% (3/3), done. +From /home/matthew/test-git-annex/a + e9a879d..000eb8e git-annex -> origin/git-annex +ok +(merging origin/git-annex into git-annex...) +(recording state in git...) +(recording state in git...) +push origin +Counting objects: 11, done. +Delta compression using up to 4 threads. +Compressing objects: 100% (10/10), done. +Writing objects: 100% (11/11), 1.03 KiB | 0 bytes/s, done. +Total 11 (delta 3), reused 0 (delta 0) +To /home/matthew/test-git-annex/a + + e9a879d...00986fa git-annex -> synced/git-annex (forced update) +ok +(merging synced/git-annex into git-annex...) +(recording state in git...) +commit +On branch master +nothing to commit, working tree clean +ok +commit +On branch master +Your branch is up-to-date with 'origin/master'. +nothing to commit, working tree clean +ok +pull origin +remote: Counting objects: 3, done. +remote: Compressing objects: 100% (3/3), done. +remote: Total 3 (delta 0), reused 0 (delta 0) +Unpacking objects: 100% (3/3), done. +From /home/matthew/test-git-annex/a + + 000eb8e...965b6af git-annex -> origin/git-annex (forced update) +ok +(merging origin/git-annex into git-annex...) +A IS IN GROUP: +ga +B IS IN GROUP: +"""]] + +### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders) + +Yes, git-annex is slowly replacing all of my other sync and backup systems I've cobbled together over the years.