Topic "Keep Up To Date doesn't work within 1 minute intervals"

Author Message
martynj
[View user's profile]

Joined: 2009-10-14
Posts: 3
Hi

I'm trying to set up winSCP (keepuptodate function) with FileZilla server (all latest versions) between two win XP machines, using FTP, and am experiencing a problem with file changes that occur within the same minute.

On saving a tracked file, winSCP detects changes and uploads the file. However on subsequent saves within the same minute, winSCP detects the change (twice) but doesn't upload the changed file. This file then remains un-synchronised until a future file change outside of the one minute boundary.

The problem appears to be that the remote timestamp resolution as seen by winSCP has a precision no greater than one minute.

Running FileZilla client instead of winSCP shows remote timestamps with the full resolution.

I'm working within a continuous-testing environment, and file changes occur quicker than one minute.

Is there a workaround for this problem?

Thanks in advance

Martyn
Advertisements
martin
[View user's profile]
Site Admin
Joined: 2002-12-10
Posts: 25015
Location: Prague, Czechia
Can you post a log file both from WinSCP and Filezilla showing directory listing?
_________________
Martin Prikryl
martynj
[View user's profile]

Joined: 2009-10-14
Posts: 3
Hi Martin

Here are the logs...

WinSCP...

> 2009-10-16 10:43:19.826 [Background 2] PWD
< 2009-10-16 10:43:19.826 [Background 2] 257 "/spec" is current directory.
. 2009-10-16 10:43:20.295 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:20.311 Synchronizing local directory 'C:\s\sprockets\spec\' with remote directory '/spec/', params = 187
. 2009-10-16 10:43:20.342 Copying 1 files/directories to remote directory "/spec/"
. 2009-10-16 10:43:20.342 PrTime: Yes; PrRO: No; Rght: rw-r--r--; PrR: No (No); FnCs: N; RIC: 01; Resume: Y (102400); CalcS: Yes; Mask: *.*
. 2009-10-16 10:43:20.342 TM: M; ClAr: No; CPS: 0; ExclM(No):
. 2009-10-16 10:43:20.342 AscM: *.rb *.c *.spec *.*html; *.htm; *.txt; *.php; *.php3; *.cgi; *.c; *.cpp; *.h; *.pas; *.bas; *.tex; *.pl; .htaccess; *.xtml; *.css; *.cfg; *.ini; *.sh; *.xml
. 2009-10-16 10:43:20.342 File: "C:\s\sprockets\spec\state_machines_spec.rb"
. 2009-10-16 10:43:20.342 Copying "C:\s\sprockets\spec\state_machines_spec.rb" to remote directory started.
. 2009-10-16 10:43:20.342 Binary transfer mode selected.
. 2009-10-16 10:43:20.342 Starting upload of C:\s\sprockets\spec\state_machines_spec.rb
> 2009-10-16 10:43:20.342 CWD /spec/
< 2009-10-16 10:43:20.342 250 CWD successful. "/spec" is current directory.
> 2009-10-16 10:43:20.342 PWD
< 2009-10-16 10:43:20.342 257 "/spec" is current directory.
> 2009-10-16 10:43:20.342 TYPE A
< 2009-10-16 10:43:20.342 200 Type set to A
> 2009-10-16 10:43:20.342 PORT 192,168,10,57,6,173
< 2009-10-16 10:43:20.342 200 Port command successful
> 2009-10-16 10:43:20.342 LIST -a
< 2009-10-16 10:43:20.342 150 Opening data channel for directory list.
< 2009-10-16 10:43:20.342 226 Transfer OK
> 2009-10-16 10:43:20.358 TYPE I
< 2009-10-16 10:43:20.358 200 Type set to I
> 2009-10-16 10:43:20.358 PORT 192,168,10,57,6,175
< 2009-10-16 10:43:20.358 200 Port command successful
> 2009-10-16 10:43:20.358 STOR state_machines_spec.rb
< 2009-10-16 10:43:20.358 150 Opening data channel for file transfer.
< 2009-10-16 10:43:20.358 226 Transfer OK
> 2009-10-16 10:43:20.358 MFMT 20091016094319 state_machines_spec.rb
< 2009-10-16 10:43:20.358 213 modify=20091016094319; /spec/state_machines_spec.rb
. 2009-10-16 10:43:20.358 Upload successful
. 2009-10-16 10:43:20.373 Retrieving directory listing...
> 2009-10-16 10:43:20.373 TYPE A
< 2009-10-16 10:43:20.373 200 Type set to A
> 2009-10-16 10:43:20.373 PORT 192,168,10,57,6,177
< 2009-10-16 10:43:20.373 200 Port command successful
> 2009-10-16 10:43:20.373 LIST -a
< 2009-10-16 10:43:20.373 150 Opening data channel for directory list.
< 2009-10-16 10:43:20.373 226 Transfer OK
. 2009-10-16 10:43:20.373 Directory listing successful
. 2009-10-16 10:43:20.920 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:26.748 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:27.279 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:30.904 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:31.436 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:33.186 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:33.701 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:35.936 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:36.467 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:38.311 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:38.826 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:40.889 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:41.404 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
> 2009-10-16 10:43:49.826 [Background 2] TYPE A
< 2009-10-16 10:43:49.826 [Background 2] 200 Type set to A
. 2009-10-16 10:43:49.826 [Background 2] Retrieving directory listing...
> 2009-10-16 10:43:49.826 [Background 2] TYPE A
< 2009-10-16 10:43:49.826 [Background 2] 200 Type set to A
> 2009-10-16 10:43:49.826 [Background 2] PORT 192,168,10,57,6,180
< 2009-10-16 10:43:49.826 [Background 2] 200 Port command successful
> 2009-10-16 10:43:49.826 [Background 2] LIST -a
< 2009-10-16 10:43:49.826 [Background 2] 150 Opening data channel for directory list.
< 2009-10-16 10:43:49.842 [Background 2] 226 Transfer OK
. 2009-10-16 10:43:49.842 [Background 2] Directory listing successful
> 2009-10-16 10:43:50.826 REST 0
< 2009-10-16 10:43:50.826 350 Rest supported. Restarting at 0
. 2009-10-16 10:44:15.717 [Background 2] Disconnected from server
. 2009-10-16 10:44:15.717 Disconnected from server

FileZilla Server...

> 2009-10-16 10:43:19.826 [Background 2] PWD
< 2009-10-16 10:43:19.826 [Background 2] 257 "/spec" is current directory.
. 2009-10-16 10:43:20.295 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:20.311 Synchronizing local directory 'C:\s\sprockets\spec\' with remote directory '/spec/', params = 187
. 2009-10-16 10:43:20.342 Copying 1 files/directories to remote directory "/spec/"
. 2009-10-16 10:43:20.342 PrTime: Yes; PrRO: No; Rght: rw-r--r--; PrR: No (No); FnCs: N; RIC: 01; Resume: Y (102400); CalcS: Yes; Mask: *.*
. 2009-10-16 10:43:20.342 TM: M; ClAr: No; CPS: 0; ExclM(No):
. 2009-10-16 10:43:20.342 AscM: *.rb *.c *.spec *.*html; *.htm; *.txt; *.php; *.php3; *.cgi; *.c; *.cpp; *.h; *.pas; *.bas; *.tex; *.pl; .htaccess; *.xtml; *.css; *.cfg; *.ini; *.sh; *.xml
. 2009-10-16 10:43:20.342 File: "C:\s\sprockets\spec\state_machines_spec.rb"
. 2009-10-16 10:43:20.342 Copying "C:\s\sprockets\spec\state_machines_spec.rb" to remote directory started.
. 2009-10-16 10:43:20.342 Binary transfer mode selected.
. 2009-10-16 10:43:20.342 Starting upload of C:\s\sprockets\spec\state_machines_spec.rb
> 2009-10-16 10:43:20.342 CWD /spec/
< 2009-10-16 10:43:20.342 250 CWD successful. "/spec" is current directory.
> 2009-10-16 10:43:20.342 PWD
< 2009-10-16 10:43:20.342 257 "/spec" is current directory.
> 2009-10-16 10:43:20.342 TYPE A
< 2009-10-16 10:43:20.342 200 Type set to A
> 2009-10-16 10:43:20.342 PORT 192,168,10,57,6,173
< 2009-10-16 10:43:20.342 200 Port command successful
> 2009-10-16 10:43:20.342 LIST -a
< 2009-10-16 10:43:20.342 150 Opening data channel for directory list.
< 2009-10-16 10:43:20.342 226 Transfer OK
> 2009-10-16 10:43:20.358 TYPE I
< 2009-10-16 10:43:20.358 200 Type set to I
> 2009-10-16 10:43:20.358 PORT 192,168,10,57,6,175
< 2009-10-16 10:43:20.358 200 Port command successful
> 2009-10-16 10:43:20.358 STOR state_machines_spec.rb
< 2009-10-16 10:43:20.358 150 Opening data channel for file transfer.
< 2009-10-16 10:43:20.358 226 Transfer OK
> 2009-10-16 10:43:20.358 MFMT 20091016094319 state_machines_spec.rb
< 2009-10-16 10:43:20.358 213 modify=20091016094319; /spec/state_machines_spec.rb
. 2009-10-16 10:43:20.358 Upload successful
. 2009-10-16 10:43:20.373 Retrieving directory listing...
> 2009-10-16 10:43:20.373 TYPE A
< 2009-10-16 10:43:20.373 200 Type set to A
> 2009-10-16 10:43:20.373 PORT 192,168,10,57,6,177
< 2009-10-16 10:43:20.373 200 Port command successful
> 2009-10-16 10:43:20.373 LIST -a
< 2009-10-16 10:43:20.373 150 Opening data channel for directory list.
< 2009-10-16 10:43:20.373 226 Transfer OK
. 2009-10-16 10:43:20.373 Directory listing successful
. 2009-10-16 10:43:20.920 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:26.748 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:27.279 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:30.904 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:31.436 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:33.186 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:33.701 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:35.936 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:36.467 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:38.311 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:38.826 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:40.889 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
. 2009-10-16 10:43:41.404 Collecting synchronization list for local directory 'C:\s\sprockets\spec\' and remote directory '/spec/', mode = 0, params = 187
> 2009-10-16 10:43:49.826 [Background 2] TYPE A
< 2009-10-16 10:43:49.826 [Background 2] 200 Type set to A
. 2009-10-16 10:43:49.826 [Background 2] Retrieving directory listing...
> 2009-10-16 10:43:49.826 [Background 2] TYPE A
< 2009-10-16 10:43:49.826 [Background 2] 200 Type set to A
> 2009-10-16 10:43:49.826 [Background 2] PORT 192,168,10,57,6,180
< 2009-10-16 10:43:49.826 [Background 2] 200 Port command successful
> 2009-10-16 10:43:49.826 [Background 2] LIST -a
< 2009-10-16 10:43:49.826 [Background 2] 150 Opening data channel for directory list.
< 2009-10-16 10:43:49.842 [Background 2] 226 Transfer OK
. 2009-10-16 10:43:49.842 [Background 2] Directory listing successful
> 2009-10-16 10:43:50.826 REST 0
< 2009-10-16 10:43:50.826 350 Rest supported. Restarting at 0
. 2009-10-16 10:44:15.717 [Background 2] Disconnected from server
. 2009-10-16 10:44:15.717 Disconnected from server

Thanks again for your assistance

Martyn
martynj
[View user's profile]

Joined: 2009-10-14
Posts: 3
I can only assume that this is indeed a bug within winSCP (one that should be documented).
I've found an alternative route using watchr library, and direct ftp calls that works correctly.
pursual

Guest


martynj wrote:
I can only assume that this is indeed a bug within winSCP (one that should be documented).
I've found an alternative route using watchr library, and direct ftp calls that works correctly.


I have the same problem, it detects a change and does nothing. Is there no way for it to upload based on both file timestamp AND changes in size? Im using Dropbox which does not change the file timestamps, however you would think that if WINSCP notices the changes it would initiate a synchro.
gml

Guest


I have the same problem synchronizing between windows PC and a Unix box.
Nothing fancy going on here... just editing files on PC machine and expecting the changed file to be uploaded to Unix box.
Again, Windows side WinSCP detects the change, but only uploads if the change is outside the 1 minute interval.
I also see that the timestamp using Norton-like interface, on the Unix side has 1 minute precision, and on windows has 1 second precision...
martin
[View user's profile]
Site Admin
Joined: 2002-12-10
Posts: 25015
Location: Prague, Czechia
gml wrote:
I have the same problem synchronizing between windows PC and a Unix box.
Nothing fancy going on here... just editing files on PC machine and expecting the changed file to be uploaded to Unix box.
Again, Windows side WinSCP detects the change, but only uploads if the change is outside the 1 minute interval.
I also see that the timestamp using Norton-like interface, on the Unix side has 1 minute precision, and on windows has 1 second precision...

So that is the explanation.
_________________
Martin Prikryl
escherial

Guest


Is there any way to decrease or remove the 1 minute interval? I can see how you'd not want to tax your connection with excessively frequent uploads, but having to wait for one minute between small changes makes developing stuff quite slow. Sad
martin
[View user's profile]
Site Admin
Joined: 2002-12-10
Posts: 25015
Location: Prague, Czechia
escherial wrote:
Is there any way to decrease or remove the 1 minute interval? I can see how you'd not want to tax your connection with excessively frequent uploads, but having to wait for one minute between small changes makes developing stuff quite slow. Sad

That's not the reason. The reason is that the remote file timestamp has a minute precision, so unless the minute component of the time changes WinSCP cannot tell that the file is different.
_________________
Martin Prikryl
escherial

Guest


You're right, I misunderstood the problem. If it's a matter of deciding which one is newer, then it makes sense that it's impossible to determine that within the resolution of the timestamp.

Is it possible to detect specifically which file was changed on the local side, or just that there was a change in the directory? If you can tell which file, it'd be nice if there was a setting to force WinSCP to upload the file, regardless of the timestamp. The situation as it stands makes it a little difficult to rapidly test small changes.

Hrm, I just noticed that the project is open-source, too. I'll take a look at it if you don't feel that it's important enough to warrant attention. Smile Thanks for your response so far.
martin
[View user's profile]
Site Admin
Joined: 2002-12-10
Posts: 25015
Location: Prague, Czechia
As it is implemented now, WinSCP can tell that there was a change in a directory only.
_________________
Martin Prikryl
jakelauer

Guest


This is still an issue. Anybody know how to fix or if it will be fixed soon?
Advertisements

You can post new topics in this forum






Search Site

What is WinSCP?

It is award-winning SFTP client, SCP client, FTPS client and FTP client integrated into one software program for file transfer to FTP server or secure SFTP server. [More]

And it's free!

Donate

About donations

$9   $19   $49   $99

About donations

Recommend

WinSCP Privacy Policy

WinSCP License