Synctrain v2

With Syncthing v2.0 around the corner, it is time to start testing builds of the Synctrain app for iOS/iPadOS/macOS based on Syncthing v2 as well. Luckily there were not that many changes needed to support v2, and I’ve actually been tracking @calmh’s v2 branch for quite a while now. I have now made the switch myself ‘in production’ and am running v2 builds on iOS and macOS, and everything seems quite stable (if not slightly slower). Those who want to help test can do so through TestFlight:

(Note, this link is specifically for v2. If you want v1 from TestFlight, go here)

I will quote the TestFlight release note caution here:

CAUTION: once you install and open this version on a device that already had the app installed before, the local Syncthing database will be upgraded to v2. Switching from 2.x and 1.x builds is NOT supported and may lead to issues. In case of issues, the suggested resolution is to fully delete the app and reinstall the desired version, then reconfiguring and resyncing folders.

Syncthing’s migration from v1 to v2 is quite robust, but especially on mobile devices like an iPhone, many things can happen that could disturb it (i.e. simply locking the device or swiping out of the app while the migration is running could have an effect). This is why it’s necessary to take proper time to test the v2 version before releasing. If all goes well I want to release a v2-based version shortly after Syncthing v2 is released. This should be the next version on the App Store, but if necessary I’ll release another v1-based version in between.

6 Likes

Do you need more beta testers, or do you have enough? Is there any chance mixing V1 and V2 could corrupt files or mess up the V1 devices?

Currently very few. The more the better, especially for those using exotic setups (i.e. many folders or devices, many photos, older devices, etc.).

You should not switch back from Synctrain v2 to v1 on a device. Connecting Syncthing v1 to v2 clients is supported and should not lead to any issues (and if so they are likely in Syncthing’s code rather than Synctrain’s). By extension Synctrain v1 and v2 devices can be mixed.

Hi @pixelspark, I’ve tried to change to Synctrain V2 on my phone, but weird things have happened so far.

I regularly have an alert “All devices are paused” even tough they are still all activated when checking. When I force restart the app, all my devices connect again, but when I then try to navigate in my Folders, I can only see subdirectories that are already synced with the phone (I can’t see anymore the other subdirectories as previews). Moreover, while nagivating through the directories I often have flashing grey screen with the spinning wheel and need to wait a lot

EDIT : It seems that unsynced folder are coming back, but very slowly. Maybe it’s just a very long migration process !

Which version are you running? The ‘paused devices’ issue should be fixed as of 2.0.47 (released yesterday on TestFlight, the one with the new icon).

As for the migration, that happens only on first startup while you see the spinner, and after that it should be done. If you see partial folders it looks like Syncthing is redownloading the full index instead of using what it had in the database before (which should not happen but also shouldn’t cause any problems, just let it do its thing for a while).

Synctrain is an iOS/macos app and doesn’t run on Linux, you should probably ask someone/where else about Syncthing 2.0.

Have you given any further thought to the concept of a closer linking between photos folders and syncthing folders?

I would still love to be able to manage and sync photos directly to the camera roll (in both directions) from a laptop and backup images to a server without having to duplicate things in the files app. Currently using mobius sync but it’s one way only, and being able to have a direct link would allw my kids to backup and manage their phone storage/images from a laptop (i.e. transferring pics off the phone or moving images and videos to cloud storage, and also moving images from a laptop onto a phone (and ideally into an album.)

Anyway, I know it’s a bit off topic on the v2 changes, but the tool is so good otherwise.

I confirm I’m using 2.0 version 47, with the new icon. Things seem to have stabilized now and I can see all my tree of directories including the ones not synced locally on the iphone.

However, each time I come back to the root of my main folder it takes between 15 and 20 seconds of showing only the spinner before displaying the directories.

Once the root is loaded, the time to display a directory content can differ a lot (but remains always the same for a given directory)

  • I have an empty directory which spins for almost 10 seconds before showing “There are currently no files in this folder”
  • I have very heavy directories with a lot of subdirectories that load up almost instantly (I don’t see the spinner)

Hm, the spinner shows that the app is waiting for Syncthing to enumerate the files in the tree (basically it queries the new database). If this is slow it is likely an issue there and I can’t do much to improve. I would suggest to remove and re-add the folder, that recreates the local database from scratch, could fix any corruption there.

Also, how large is this folder exactly, and what device are you on? Can you provide a screenshot of the statistics page? For a folder with 82k files I get a spinner at the root level for about half a second at most, on an iPhone 15 Pro.

What functionality exactly are you looking for? The app currently supports one-way direct sync of selected photo albums, with limitations (no movies, slower with large albums mainly).

Two-way sync is going to be tricky due to iOS limitations (can’t delete a photo from an album without the user confirming it each time, for instance). If möbius can do it however, we should be able to :slight_smile:

Ok. It didn’t always. I see it was added a month ago with version 1.1. That’s good.

Mobius can’t do two way sync either.

But it would be great to create a syncthing folder that would push images to an album on the phone.

Would there be a way, when there’s a delete required to keep in sync that the app could queue all the deletes and post them all at once and ask the user “Synctrain would like to delete 217 images from the camera roll, okay?” and let the user answer?

Anyway, Maybe it’s too difficult or it doesn’t work that way at all.

I am going to try synctrain again. Thanks.

EDIT: A few questions, not related to v2.0. Is there a general support thread for Synctrain?

This would technically be possible I think, but the use case seems rather limited (especially given Synctrain itself offers a nice grid view and even remote thumbnails)

I considered this approach, but the issue is that it creates another reality to sync against (what if I queue a delete and then the user decides to restore a photo? what about updates to photos? what if a queued delete is actually restored again? et cetera). It would also be very confusing for users to decide on deleting a large number of photos (are they all still synced or did I delete some from the synced folder already?). In general it just can’t be made as smooth as I want it to be.

For now, GitHub discussions is the most appropriate place for Synctrain-specific questions.

The use case for me is to be able to transfer a bunch of images from a separate camera via my laptop to my phone or tablet. Then easily by using the native photos app, favorite the best images, perhaps make a few edits, and then post or share to some other app/social media.

Currently I do this in multiple steps with möbius sync.

I think the other use case and perhaps wider use use case would be for people to sync photos from a photo library on their computer directly to their camera albums and be able to have access to this images in the native environment they are used to instead of having to use the files or Synctrain app to view them.

OK, thanks for the explanation (always interesting to hear how people want to use the app!). I will investigate when I have the time.

1 Like