Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

File Monitoring #2306

Closed
cyberduck opened this issue Jul 9, 2008 · 20 comments
Closed

File Monitoring #2306

cyberduck opened this issue Jul 9, 2008 · 20 comments
Labels
cli Command Line Interface enhancement worksforme
Milestone

Comments

@cyberduck
Copy link
Collaborator

39ed87c created the issue

A great feature that seems to be missing from most transfer clients is the ability to keep the remote side of a connection up to date with what is in the local side. By allowing a user to specify a folder to watch and the upload the files with changes allows users to be working on a project and allow the changes to automatically replicate. This makes working on websites easier where the development server where testing is done, isn't on the machine the users is on.

The only application that I have ever seen implement this correctly is WinSCP, unfortunately it is a windows application. :(

Summary: A feature to allow the user to select a folder and it be watched recursively for changes, any change that happens (update, deletion, creation, etc ..) gets uploaded via the protocol the user specified to the destination specified. Thanks!

@cyberduck
Copy link
Collaborator Author

39ed87c commented

I haven't looked at the source for Cyberduck yet but I am assuming it is in Objective-C. I found a FSEvent (file system events) wrapper for the OS 10.5 FSEvents API here ... http://stuconnolly.com/blog/archive/2008/05/08/fsevents-objectivec-wrapper/

Essentially the filesystem would tell Cyberduck when a file has changed, then Cyberduck could do its thing according to how the user set it up to upload the files.

@cyberduck
Copy link
Collaborator Author

39ed87c commented

dkocher, thank you for accepting this feature request, I would like to help in anyway I can. I am new to obj-c. I have started playing with the wrapper I linked to earlier a bit.

I have determined the actions that will be necessary for this to work, I just don't have all the code yet (working on it).

1. Recursively scan a path (taking into considerations ignored files/paths) and build a table of data with filenames, last modified, and perhaps size.
2. Register SCEvents with the path scanned.
3. Listen for events returned, look in the table of data at the path level notified on and rescan finding all changed files.
4. Upload and Update File Database with new modified dates and filenames.

There is another library called UKKQueue that will notify with the specific file (http://www.zathras.de/programming/cocoa/UKKQueue.zip/, which may be better to use in this instance. I haven't played with this one yet so I can't provide any more details as of yet.

Please contact me if you would like my help. Thanks

@cyberduck
Copy link
Collaborator Author

@dkocher commented

I have previously started to work with UKKQueue but never brought it into a finished state. Have a look at ch.cyberduck.core.io.FileWatcher and ch.cyberduck.core.Local#watch().

@cyberduck
Copy link
Collaborator Author

@dkocher commented

Having an infrastructure as described here in place would allow to edit files with an arbitrary editor. See #1028.

@cyberduck
Copy link
Collaborator Author

@dkocher commented

Implemented in 564d0f0. Use

defaults write ch.sudo.cyberduck editor.kqueue.enable true

to enable.

@cyberduck
Copy link
Collaborator Author

183f92a commented

I tested the functionality implemented in 564d0f0 (been able to edit any kind of file in any external editor) but I don't agree that it's what was been asked for in this ticket.

I don't find the feature that will allow you to sync an entire folder and upload any changes automatically at the same moment that they are made. That what I think was the description of this ticket and I would find it extremely useful.

Sorry if I shouldn't have reopen this ticket, I find it more appropriate than creating a new ticket.

@cyberduck
Copy link
Collaborator Author

@dkocher commented

#3834 closed as duplicate.

@cyberduck
Copy link
Collaborator Author

@dkocher commented

Also refer to #3112.

@cyberduck
Copy link
Collaborator Author

@dkocher commented

#5606 closed as duplicate.

@cyberduck
Copy link
Collaborator Author

97b7036 commented

I'd also like to vote on this feature. I work as a web programmer and in simple cases I keep local 1:1 copy of website I'm working on on my hard drive. Doing ANY action after every edit of some file wastes much time, that's why I was looking for some automatic sync feature. I've spent whole evening looking for a FTP client that implement that function properly on Mac. The only one app that implemented it was YummyFTP, but this app isn't on par with other FTP clients, and it also doesn't work very well (it has a delay between modifying file and uploading it, it probably checks for changes periodical, instead of using FSEvents). So if Cyberduck implemented it, I would be very happy :).

@cyberduck
Copy link
Collaborator Author

@dkocher commented

#6009 closed as duplicate.

@cyberduck
Copy link
Collaborator Author

863cfba commented

Vote from me too, any movement on this?

@cyberduck
Copy link
Collaborator Author

Temega commented

Would love this feature. It's annoying if you got shared hosting and you want to use git for your projects...

@cyberduck
Copy link
Collaborator Author

@dkocher commented

#6812 closed as duplicate.

@cyberduck
Copy link
Collaborator Author

@dkocher commented

Refer to Synchronize Folders in general without monitoring.

@cyberduck
Copy link
Collaborator Author

@dkocher commented

We are planing to implement synchronize and upload transfers that allow to continue watching for changes after the initial upload is complete.

@cyberduck
Copy link
Collaborator Author

@dkocher commented

#8573 closed as duplicate.

@cyberduck
Copy link
Collaborator Author

@dkocher commented

Please refer to Watching changes in directory with fswatch and upload for how to use Cyberduck CLI for such a workflow with fswatch.

@cyberduck
Copy link
Collaborator Author

2c69bb7 commented

So thats it? Not working in the version with interface? Is there any simple documentation on how to use monitoring and sync?

@cyberduck
Copy link
Collaborator Author

@dkocher commented

Replying to [comment:23 jonaskarpeta]:

So thats it? Not working in the version with interface? Is there any simple documentation on how to use monitoring and sync?
I recommend that you use Mountain Duck in conjunction with your preferred sync tool such as rsync.

@iterate-ch iterate-ch locked as resolved and limited conversation to collaborators Nov 26, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
cli Command Line Interface enhancement worksforme
Projects
None yet
Development

No branches or pull requests

1 participant