I have set "Sync method" to "Choose Folder" and linked to a folder beneath "iCloud Drive" that contains, among others, a foo.org file that I am sharing with my wife (with write permissions) via iCloud sharing.
Right after sharing, she can open and modify the file in beorg but after a while the file disappers from her beorg folder. I can still open and modify the file without problems but I am not any longer sharing it with my wife. It looks as if beorg has changed the status of the file as it also disappears from my "shared by me" folder. The other funny thing is that, after a while, (my, I guess) beorg generates a "foo 2.org" file in the same folder.
All in all the behavior seems a bit erratic and unpredictable. If my wife accesses the shared file via "Plain Org" or "Orgro" all seems to work as expected.. Any idea what is going? Thanks, Nicola
Edit: both me and my wife are using beorg version 3.20.2 (285) under iOS 16.4.1
Thank you for reporting this issue. The way beorg currently works is that it copies any files configured via sync to its own sandbox. When the user makes a change that file is then copied back to the cloud sync service. iCloud does work a little differently to some other services such as Dropbox and it must be being seen as a new file by iCloud, thus it loses its sharing status. iCloud is generating the "foo 2.org" file as it thinks a conflict is occurring.
I haven't encountered this issue before, as probably why not many users are sharing files this way and using them with beorg. This is certainly a legitimate use case however, but it will likely take some thought about how to resolve. I don't have an immediate workaround, except to tell beorg that this particular file is readonly on one device, and that device stick to using another method to modify the file.
You can tell beorg that a particular file is readonly by setting the variable file-read-only-list in a beorg init.org. If you want to try this out, and haven't created an init.org before, check out https://beorg.app/learning/initorg/. Once you have an init.org something similar to the below should let beorg know not to touch that file:
(set! file-read-only-list file-read-only-list '("foo.org"))
Thanks Matthew! What would be the recommended method of sharing .org files with somebody that can be used with beorg? I have used iCloud sharing because my wife is used to Apple devices and I can sync my files from different Linux laptops to an iMAC via unison or rsync. But I can try another solution if this allows me to share a .org file with r/w permissions with her.
You may have more luck with something like WebDAV which have less black box conflict detection which is likely what is stopping things from working here.
What is WebDav? How am I supposed to share a file with WebDAV? beorg is a iOS app. Shouldn't it work with .org files under iOS, no matter whether these are shared or not? If beorg is not meant to be used with iOS files that are shared, wouldn't it be possible to issue a warning if a user tries to use it with iOS shared files? That would help avoiding misunderstandings and losses of data.
If you aren't familiar with WebDAV it might not worth trying as an option unless it is something you've already got setup. It is a non proprietory alternative to iCloud, Dropbox, etc which is common with Linux users.
I have added looking into your sharing issue to my list of issues to investigate. Currently this is the first report of such an issue. It might be that others will respond to this forum topic which will then allow to gauge the popularity of this use case and the resource to assign to this problem.
Cloud sync is often a difficult issue for apps to fully get to the bottom of, particularly iCloud as there is limited information provided by the OS when things don't work as expected. Hopefully though I'll be able to look at how beorgs model of syncing (which is a little different to many apps) can be better made to work with your use case.
Thanks for the feedback on WebDAV and for looking into the iCloud issue Matthew! My guess is that all works as expected except for the shared attribute that seems to get lost when the edited file is written back. Perhaps one way of sorting out the problem could be to compare the file generated by 'beorg' to the one generated by 'Plain Org'? The latter seems to work fine with shared files as far as I can say. Just my two cents, my knowledge of iOS is virtually nil!