ignoring OSX Icon\r files on Windows

I followed the directions here: Icon: “filename invalid” when syncing from Mac to Windows

by adding this to my .stglobalignore file:

!Icon[a-z0-9_-]
(?d)Icon?

I get this error message in the GUI:

2017-12-18 22:05:56: Error on folder “XXX” (XXXXX-XXXXX): loading ignores: include of “.stglobalignore”: invalid pattern “icon[a-z0-9_-]” in ignore file (expected close range character)

v14.41 on Windows(64) and OSX

Arguably that’s a bug in the ignore pattern parser. Try:

!Icon[a-z0-9_]
(?d)Icon?

(that is, removing the dash in the brackets)

If you absolutely need to have files called Icon-, match them specifically.

!Icon[a-z0-9_]
!Icon-
(?d)Icon?

Hmmm still getting an error. I think the problem is having two ranges together. [a-z0-9] separating them [a-z][0-9] eliminates the error but obviously functions differently.

loading ignores: include of “.stglobalignore”: invalid pattern “icon[a-z0-9]” in ignore file (expected close range character)

Weird. Well, they can be split up in this case, one line per range.

Right. So, just one range per [] is supported. Alternatives can be within {}. So the following are valid and equivalent:

!Icon{[a-z],[A-Z],[0-9],_,-}

and

!Icon[a-z]
!Icon[A-Z]
!Icon[0-9]
!Icon_
!Icon-

Still no luck. I’m not sure how ignores are precisely handled but from the documentation it seems like they prevent files from being transmitted to other nodes. If so then why does this happen…

  1. create a new empty folder and share it between two instances ONE(mac osx 0.14.41) TWO(windows64 0.14.41)
  2. on both instances set Ignore Patterns to ‘*’ ignore everything.
  3. Create a file ‘cats’ on ONE. As expected nothing happens on TWO.
  4. Create some illegal Windows files on ONE ‘Icon\r’ and 'vert|.txt’ TWO complains with this:

[XXXXX] 13:40:54 INFO: Puller (folder ““zzz” (XXXXX-XXXX)”, file “Icon\r”): need: filename is invalid [XXXXX] 13:40:54 INFO: Puller (folder ““zzz” (XXXXX-XXXX)”, file “vert|.rtf”): need: filename is invalid

Why is TWO even seeing these files? Shouldn’t the ignores on ONE prevent them from being sent out?

Yes/no. Paging @imsodin :slight_smile:

Also the GUI on TWO reports the local state correctly with THREE global files and ZERO local but then it reports two Out of Sync Items.

Yes, the ignores should prevent anything from entering the index. The new invalidation business only happens if the file is already in the index. Are you sure the ignore patterns were in effect (e.g. confirmed by them showing up in the web UI) before you created the files? I can’t think of any other way how this can happen. If ignores are in effect, verbose logs from the osx devices might give a first clue at what’s happening.

The state in the screenshot looks correct: The failed items aren’t added to the local state until they succeed.

This does however show another issue: Checking filename validity on windows happens before checking against ignore patterns. I.e. you cannot ignore files with invalid filenames - that’s what it was like before too, but that’s hardly a good idea. I will fix it.

I’ve been trying to recreate this for two days now and I have not succeeded. So this may have been a temporary glitch or an error on my part. Like Jakob says maybe the ignores were not taking effect.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.